版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
国家二级(C语言)笔试模拟试卷26(共9套)(共475题)国家二级(C语言)笔试模拟试卷第1套一、公共基础选择题(本题共10题,每题1.0分,共10分。)1、对长度为n的线性表进行顺序查找,在最坏的情况下所需要的比较次数为______。A、log2nB、n/2C、nD、n+l标准答案:C知识点解析:顺序查找的最坏情况是所找的元素在线性表的最后,因此查找的比较次数是线性表的长度,即n。2、下列描述中正确的是______。A、程序就是软件B、软件开发不受计算机系统的限制C、软件既是逻辑实体,又是物理实体D、软件是程序、数据与相关文档的集合标准答案:D知识点解析:程序是软件的一部分,软件是一种逻辑实体,它的开发、运行都依赖计算机系统,因此出现了软件的移植问题。3、在软件设计中,不属于过程设计工具的是______。A、PDL(过程设计语言)B、PAD图C、N-S图D、DFD图标准答案:C知识点解析:DFD(DataFlowDiagram)是数据流图结构化分析的常用工具。软件设计中,常见的过程设计工具如下。(1)图形工具:程序流程图,N-S,PAD,HIPO(2)表格工具:判定表(3)语言工具:PDL(过程设计语言)4、下列叙述中正确的是______。A、程序设计就是编制程序B、程序测试必须由程序员自己去做C、程序经调试改错后还应进行再测试D、程序经调度改错后不必进行再测试标准答案:C知识点解析:软件测试包括需求分析、结构功能模块设计、编制程序等阶段。程序的测试可以由专门的测试人员来完成。程序经调试改错后还应进行再测试。5、以下叙述中正确的是______。A、用C语言实现的算法必须要有输入和输出操作B、用C语言实现的算法可以没有输出但必须要有输入C、用C程序实现的算法可以没有输入但必须要有输出D、用C程序实现的算法可以既没有输入也没有输出标准答案:C知识点解析:根据算法的特性,算法必须有。个或多个输入,和1个或多个输出。6、以下4个选项中,不能被看作是一条语句的是______。A、{;}B、a=0,b=0,c=0;C、if(a>O);D、if(b==0)m=1;n=2;标准答案:D知识点解析:选项D中有两条语句。7、下列选项中,合法的C语言关键字是______。A、VARB、cherC、integerD、default标准答案:D知识点解析:本题考查C语言基本知识。本题中default是C语言的关键字。8、在16位C编译系统上,若定义longa;,则能给变量a赋值40000的正确语句是______。A、a=20000+20000;B、a=4000*10;C、a=30000+10000;D、a=4000L*1OL;标准答案:D知识点解析:本题中a是长整型变量,故应将一个长整型常量赋值给a,选项A、B、C中的数值的末尾都没有加L或1,所以不正确。9、以下程序运行后的输出结果是______。main(){charm;m=’B’+32;printf("%c\n",m);}A、aB、bC、cD、d标准答案:B知识点解析:字符参与运算的值是其对应的ASCII码,小写英文字符的ASCII值比大写英文字符的ASCII值大32,执行语句m=’B’+32;得出结果m=66+32=98,以“%c”的格式输出结果为b。10、设有定义:intk=1,m=2;floatf=7;则以下选项中错误的表达式是______。A、k=k>=kB、-k++C、k%int(f)D、k>=f>=m标准答案:C知识点解析:A、D选项是关系运算表达式,在C语言中,只要关系运算符两边是合法的表达式就可以了。C选项中,%只能对整型进行运算,其中对f进行了强制类型转换,但是转换的表达式错了,应为:(int)(f)。二、选择题(1分)(本题共10题,每题1.0分,共10分。)11、若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是______。A、abs(x-y)<10B、x-y>-10&&x-y<10C、!(x-y)<-10||!(y-x)>10D、(x-y)*(x-y)<100标准答案:C知识点解析:选择项C中逻辑运算!的优先级高于关系运算>、<,因此该表达式不能正确表示数学关系|x-y|<10。12、以下程序段的输出结果是______。inta=1234;printf("%2d\n",a);A、12B、34C、1234D、提示出错、无结果标准答案:C知识点解析:本题考查printf函数中附加格式字符的用法。本题中的“2”是附加格式字符,其作用是指定变量a的输出宽度为两列,而本题中a的值为1234,已经超过两列,所以按实际值输出,正确答案为选项C。13、设有定义:longx=123456L;,则以下能够正确输出变量x值的语句是______。A、printf("x=%d\n",x);B、printf("x=%1d\n",x)C、printf("x=%8dL\n",x);D、printf("x=%LD\n",x);标准答案:B知识点解析:x是长整型变量,因此其输出格式字符应为“%1d”,所以正确答案为选项B。14、有以下程序:main(){inta=5,b=4,c=3,d=2;if(a>b>c)printf("%d\n",d);elseif((c-1>=d)==1)printf("%d\n",d+1);elseprintf("%d\n",d+2);}执行后输出结果是______。A、2B、3C、4D、编译时有错,无结果标准答案:B知识点解析:执行if(a>b>c)时,首先判断a>b的值,5>4结果为真(C语言中规定真用1表示),然后比较1>c,结果为假,执行第一个else后的语句,判断条件(c-1>=d)==1是否成立,即判断(3-1>=2)==1,结果为真,所以执行printf("%d\n",d+1),输出结果3。15、下列条件语句中,功能与其他语句不同的是______。A、if(a)printf("%d\n",x);elseprintf("%d\n",y);B、if(a==0)printf("%d\n",y);elseprintf("%d\n",x);C、if(a!=0)printf("%d\n",x);elseprintf("%d\n",y);D、if(a==0)printf("%d\n",x);elseprintf("%d\n",y);标准答案:D知识点解析:本题中选项A、选项B和选项C中的if条件语句都是在a==0时输出y,a!=0时输出x。16、有以下程序:main(){intI;For(i=0;i<3;i++)switch(i){case0:printf("%d",i);case2:printf("%d",i);default:printf("%d",i);}}程序运行后的输出结果是______。A、22111B、21021C、122D、12标准答案:C知识点解析:本题考查switch语句的执行过程。如果case语句中没有break语句,则顺序执行。因此第一次循环i=0被输出了3次,i=1被输出一次,i=2被输出两次。17、有以下程序:main(){intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;while(i++<7)if(p[i]%2)j+=p[i];printf("%d\n",j);}程序运行后的输出结果是______。A、42B、45C、56D、60标准答案:B知识点解析:此程序实现了将p[1)~p[7]中的奇数求和的功能,因此,最后的输出结果是j=13+15+17=45。18、执行下列程序时输入:123<空格>456<空格>789<回车>,输出结果是______。main(){chars[100];intc,i;scanf("%c",&c);scanf("%d",&i);scanf("%s",s);printf("%c,%d,%s\n",c,i,s);}A、123,456,789B、1,456,789C、1,23,456,789D、1,23,456标准答案:D知识点解析:根据给定的数据输入格式:123<空格>456<空格>789<回车>,第一个scanf语句中,格式字符为“%c”,只能得到一个字符’1’,第二个scanf语句中格式字符为“%d”,变量i得到的数值为23,第三个scanf语句中格式字符为“%s”,遇到空格就自动结束,因此字符数组s得到的是"456\0”。因而正确答案为选项D。19、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是______。A、INPUTx、y、z;B、scanf("%d%d%d",&x,&y,&z);C、scanf("%d%d%d",x,y,z);D、read("%d%d%d",&x,&y,&z);标准答案:B知识点解析:选项A和选项D都不是C语言中的输入方法,选项C中的变量名前面缺少取地址符“&”。20、若有说明语句:inta,b,c,*d=&c;,则能正确从键盘读入3个整数分别赋给变量a、b、c的语句是______。A、scanf("%d%d%d",&a,&b,d);B、scanf("%d%d%d",&a,&b,&d);C、scanf("%d%d%d",a,b,d);D、scanf("%d%d%d",a,b,*d);标准答案:A知识点解析:scanf函数中格式控制后面应为变量地址列表,因此选项C和选项D都错误,选项B中“&d”是指针变量d的地址,与题目不符。由题目可知指针变量d中存放的是变量c的地址,所以正确答案为选项A。三、选择题(2分)(本题共20题,每题1.0分,共20分。)21、若变量已正确定义,要求程序段完成5!的计算,不能完成此操作的程序段是______。A、for(i=1,p=1;i<=5;i++)p*=i;B、for(i=1;i<=5;i++){p=1;p*=i;}C、i=1;p=1;while(i<=5){p*=i;i++;}D、i=1;p=1;do{p*=i;i++;}while(i<=5);标准答案:B知识点解析:选项B中每次执行循环体都要执行p=1,无法保存上次的运算结果,执行完while循环后p=5。22、有以下程序main(){inti,s=0;for(i=1;i<l0;i+=2)s+=i+1printf("%d\n",s);}程序执行后的输出结果是______。A、自然数1~9的累加和B、自然数1~10的累加和C、自然数1~9中奇数之和D、自然数1~10中偶数之和标准答案:D知识点解析:本题中s=(1+1)+(3+1)+(5+1)+(7+1)+(9+1)=2+4+6=8+10。23、下面程序的功能是输出以下形式的金字塔图案:****************main(){inti,j;for(i=1;i<=4;i++;){for(j=1;j<=4-i;j++)printf("");for(j=1;;j<=________;j++)printf("*");printf("\n");}}在下划线处应填入的是______。A、iB、2*i-1C、2*i+1D、i+2标准答案:B知识点解析:根据题意可知第二个j循环结束的条件是第i行打印出的"*"的个数。24、已定义以下函数:fun(char*p2,char*p1){while((*p2=*p1)!=’\0’){p1++;p2++}}函数的功能是______。A、将p1所指字符串复制到p2所指内存空间B、将p1所指字符串的地址赋给指针p2C、对p1和p2两个指针所指字符串进行比较D、检查p1和p2两个指针所指字符串中是否有’\0’标准答案:A知识点解析:while循环语句的功能是将p1所指存储单元的内容赋值给p2所指的存储单元,然后p1++、p2++,分别指向下一个存储单元,直到p1指向符号串的结束字符’’\0’为止。故函数的功能是将p1所指字符串复制到p2所指内存空间。25、有以下程序:voidsort(inta[],intn){inti,j,t;for(i=0;i<n-1;i+=2)for(j=i+2;j<n;j+=2)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){intaa[10]=(1,2,3,4,5,6,7,8,9,10),i;sort(aa,10);for(i=0;i<10;i++)printf("%d",aa[i]);printf("\n");}其输出结果是______。A、1,2,3,4,5,6,7,8,9,10,B、10,9,8,7,6,5,4,3,2.,1,C、9,2,7,4,5,6,3,8,1,10,D、1,10,3,8,5,6,7,4,9,2,标准答案:C知识点解析:函数sort的功能是将a[0]、a[2]、a[4]、a[6]和a[8]按照由大到小的次序排序,其他元素值不变。正确答案为C。26、设有定义:intA,*pA=&A;,以下scanf语句中能正确为变量A读入的数据是______。A、scanf("%d",pA);B、scanf("%d",A);C、scanf("%d",&pA);D、scanf("%d",*pA);标准答案:A知识点解析:选项B中不是变量A的地址,错误;选项C是指针pA的地址,错误;选项D中*pA表示变量A的值,错误。27、有以下程序:#include<string.h>voidf(char*s,char*t){chark;k=*s;*s=*t;*t=k;s++;t--;if(*s)f(s,t);}main(){charstr[10]="abcdefg",*p;p=str+strlen(str)/2+1;f(p,p-2);printf(~%s\n",str);}程序运行后的输出结果是______。A、abcdefB、gfedcbaC、gbcdefaD、abedcfg标准答案:B知识点解析:p=str+strlen(str)/2+1=str+4,f(p,p-2)的功能是将p[4]与p[2]互换,p[5]与p[1]互换,p[6]与p[0]互换,最后的结果为gfedcba。28、有以下程序:main(){chars[]="\n123\\";printf(%d,%d\n",strlen(s),sizeof(s));}执行后的输出结果是______。A、赋初值的字符串有错B、6,7C、5,6D、6,6标准答案:C知识点解析:本题中定义字符数组s时没有指定数组长度,s初始化后存放的内容为"\n123\\\0",其中’\n’和’\\’是转义字符,所以strlen(s)=5,sizeof(s)=6。29、有以下程序:main(){char*p[10]={"abc","aabdfg","dcdbe","abbcf’,"cd"};printf("%d\n",strlen(p[4]));}执行后的输出结果是______。A、2B、3C、4D、5标准答案:A知识点解析:本题中p[4]="cd",所以strlen(p[4])=2。30、以下关于函数的叙述中正确的是______。A、每个函数都可以被其他函数调用(包括main函数)B、每个函数都可以被单独编译C、每个函数都可以单独运行D、在一个函数内部可以定义另一个函数标准答案:B知识点解析:main函数是不能被其他函数调用的,函数可以单独编译,但不能单独运行,C语言中,一个函数内部是不能再定义另一函数的。31、下列函数定义中,会出现编译错误的是______。A、max(intx,inty,int*z){*z=x>y?x:y;}B、intmax(intx,y){intz;z=x>y?x;y;returnz;}C、max(intx,inty){intz;z=x>y?x:y;return(z);}D、intmax(intx,inty){return(x>y?x:y);}标准答案:B知识点解析:本题考查函数的定义。选项B中函数形参y没有说明数据类型。32、有以下程序:#include<stdio.h>main(){inta[]={1,2,3,4,5,6,7,8,9,10,11,12},*p=a+5,*q=NULL;*q=*(p+5);printf("%d%d\n",*p,*q);}程序运行后的输出结果是______。A、运行后报错B、66C、611D、510标准答案:A知识点解析:指针q没有指向确定的存储单元,故不能赋值。33、有以下程序:voidfun(int*a,inti,intj){intt;if(i<j){t=a[i];a[i]=a[j];a[j]=t;}fun(a,++i,--j);}}main(){inta[]={1,2,3,4,5,6},i;fun(a,0,5);for(i=0;i<6;i++)printf("%d",a[i]);}执行后的输出结果是______。A、654321B、432156C、456123D、123456标准答案:A知识点解析:本题考查指针变量作函数形参的问题。指针变量作函数的形参,实现的是地址传递,形参的改变可以影响实参。fun由数的功能是将a所指数组中的内容逆置。在main函数中调用fun函数后,实参数组s中元素的值变为:a[0]=6、a[1]=5、a[2]=4、a[3]=3、a[4]=2、a[5]=1。34、有以下程序:voidfun(char*a,char*b){a=b;(*a)++;)main(){charc1=’A’,c2=’a’,*p1,*p2;p1=&c1;p2=&c2;fun(p1,p2);printf("%c%c\n",c1,c2);}程序运行后的输出结果是______。A、AbB、aaC、AaD、Bb标准答案:A知识点解析:本题中函数fun的形参是指针变量,因此实参与形参之间是地址传递,即形参的改变可以影响实参。main函数中p1指向c1,p2指向c2,函数调用语句fun(p1,p2)的功能是将p2所指存储单元的内容的值加1,即将c2的值加1得c2=’b’,故printf函数的输出结果为Ab。35、有以下程序:voidf(inty,int*x){y=y+*x;*x;=*x+y;}main(){intx=2,y=4;f(y,&x);-printf("%d%d\n",x,y);}执行后的输出结果是______。A、84B、88C、48D、42标准答案:A知识点解析:函数{的形参Y是简单变量,x是地址变量,故Y=4,x=2+4+2=836、设有定义语句:intx[6]={2,4,6,8,5,7},*p=x,i;要求依次输出x数组6个元素中的值,不能完成此操作的语句是______。A、for(i=0;i<6;i++)printf("%2d",*(p++));B、for(i=0;i<6;i++)printf("%2d",*(p+i));C、for(i=0;i<6;i++)printf("%2d",*p++);D、for(i=0;i<6;i++)printf("%2d",(*p)++);标准答案:D知识点解析:选项D中(*p)++的意思是将p所指向的存储单元的值加1,与题意不符,错误。37、设有定义:intn=0,*p=&n,**q=&p;,则以下选项中,正确的赋值语句是______。A、p=1;B、*q=2C、q=pD、*p=5标准答案:D知识点解析:本题中n是int型变量,p是指向int型的指针变量,q是指向指针的指针变量,故正确答案为D。38、已有定义:inti,a[10],*p;;,则合法的赋值语句是______。A、p=100;B、p=a[5];C、p=a[2]+2;D、p=a+2;标准答案:D知识点解析:因p是指针变量,故选项D正确。39、下列选项中正确的语句组是______。A、chars[8];s={"Beijing"};B、char*s;s={"Beijing"};C、chars[8];s="Beiiing";D、char*s;s="Beijing";标准答案:D知识点解析:C语言规定可以对字符指针变量直接赋字符串常量,但不能给字符数组直接赋字符串常量,对字符数组赋字符串常量应使用的是strcpy函数。正确答案为选项D。40、已定义以下函数:fun(int*p){return*p;}该函数的返回值是______。A、不确定的值B、形参p中存放的值C、形参p所指存储单元中的值D、形参p的地址值标准答案:C知识点解析:函数fun的形参是指针变量,*p的含义是指针变量p所指存储单元的内容,因此正确答案为C。四、公共基础填空题(本题共5题,每题1.0分,共5分。)41、问题处理方案的正确而完整的描述称为【】。标准答案:算法知识点解析:算法给出了问题处理方案的准确而完整的描述。42、数据结构分为逻辑结构和存储结构,循环队列属于【】结构。标准答案:存储知识点解析:循环链表是在线性链表的基础上增加了一个表头结点指向第一个元素,并使链表中的最后一个结点指向表头结点形成一个环状链,它给出了数据的逻辑结构在计算机空间的存储形式,因此是一种存储结构。43、在面向对象方法中,类之间共享属性和操作的机制称为【】。标准答案:继承知识点解析:继承是类间的一种基本关系,是在某个类的层次关联中不同的类共享属性和操作的一种机制。在“is-a”的层次关联中,一个父类可以有多个子类,这些子类都是父类的特侧,父类描述了这些子类的公共属性和操作。一个子类可以继承它的父类(或祖先类)中的属性和操作。这些属性和操作在子类中不必定义,子类中还可以定义它自己的属性和操作。一个子类只有唯一的一个父类,这种继承称为单一继承。一个子类也可以有多个父类,它可以从多个父类中继承特性,这种继承称为多重继承。例如,“水陆两用交通工具”类既可继承“陆上交通工具”类,又可继承“水上交通工具”类的特性。44、在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块(桩模块)。其中【】的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果。标准答案:驱动模块知识点解析:承接模块(桩模块)是用于代替被测试模块调用的其他模块,它仅作少量的数据操作,是一个模拟子程序,不必将子模块的所有功能带入。45、在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是【】。标准答案:数据库系统知识点解析:数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。(1)人工管理阶段。这一阶段的计算机主要用于科技计算。外存只有磁带、卡片和纸带等,软件只有汇编语言,尚无数据管理方面的软件。数据处理方式是批处理。(2)文件系统阶段。文件系统是数据库系统发展的初级阶段,它提供了简单的数据共享与数据管理能力,但是它无法提供完整的、统一的管理和数据共享的能力。由于它的功能简单,因此它附属于操作系统而不能成为独立的软件,目前一般将其看成仅是数据库系统的雏形,而不是真正的数据库系统。(3)数据库系统阶段。数据库阶段用数据模型表示复杂的数据模型,有较高的数据独立性。数据库系统为用户提供了方便的用户接口,用户可使用查询语言或终端命令操作数据库,也可以用程序方式(用COBOL、C一类高级语言和数据库语言编制的程序)操作数据库。数据库管理系统提供了数据控制功能。五、填空题(本题共5题,每题1.0分,共5分。)46、若x和y都是double型变量,且x的初值为3.0,y的初值为2.0,则表达式pow(y,fabs(x))的值为【】。标准答案:8知识点解析:fabs函数功能是求x的绝对值,计算结果为double型。pow功舱是计算x的y次方的值,计算结果同样为double型。所以本题表达式相当于2.0的3.0次方,结果为8.000000。47、没有char,a,b;,若要通过a&d运算屏蔽掉a中的其他位,只保留第2位和第8位(右起为第1位),则b的二进制是【】。标准答案:10000010知识点解析:运算“&”的规则是只有当两个相应的二进制位都为1时,该位的结果才为1。要保留第2、8位,只要将其与二进制数10000010相与。48、下面程序执行后输出的结果是【】。intm=13;intfun(intx,inty){intm=3;return(x*y-m);}main(){inta=7,b=5;Printf(“%d\n",fun(a,b)/m);}标准答案:2知识点解析:本题变量m既是外部变量(值是13),又是fun函数的局部变量(值为3)。函数fun(x*y-m)的值为7*5-3=32,在main函数中,fun(a,b)/m中的m外部变量的值13,因此输出2。49、下列执行后输出的结果是【】。main(){intarr[10],i,k=0for(i=0;i<10;i++)atr[i]=ifor(i=1,i<4;i++)k+=arr[i]+i;printf("%d\n",k);}标准答案:12知识点解析:本题的第—个for循环用于始数组arr赋初值,第二个for循环用于求和运算。由于第二个for循环初始值为1,而循环条件为i<4,所以求的是arr[1]到arr[3]及i的和,所以输出结果为12。50、下面程序有两个printf语句,如果第一个printf语句输出的是194,则第二个printf语句的输出结果是【】main(){inta[10]={1,2,3,4,5,6,7,8,9,0},*p;p=aprintf("%x\n",p);printf("%x\n",p+9);}标准答案:la6知识点解析:对于指针变量的运算,就是对地址的运算。本题中由于指针指向的是整型变量,所以,使指针变量移动9个位置也就是移动18个字节。注意,本题是以十六进制输出的。国家二级(C语言)笔试模拟试卷第2套一、选择题(1分)(本题共10题,每题1.0分,共10分。)1、下列数据结构中,能用二分法进行查找的是()。A、无序线性表B、线性链表C、二叉链表D、顺序存储的有序表标准答案:D知识点解析:二分法查找只适用于顺序存储的有序表,表中的元素按值从小到大排列。2、下列叙述中,不属于设计准则的是()。A、提高模块独立性B、使模块的作用域在该模块的控制域中C、设计成多入口、多出口模块D、设计功能可预测的模块标准答案:C知识点解析:大量软件设计表明,以下的设计准则是可以借鉴为设计的指导和对软件结构图进行优化,这些准则是:提高模块独立性;模块规模适中:深度、宽度、扇出和扇入适当;使模块的作用域在该模块的控制域中;应减少模块的接口和界面的复杂性;设计成单入口、单出口的模块;设计功能可预测的模块。3、下列队列的描述中,正确的是()。A、队列属于非线性表B、队列在队尾删除数据C、队列按“先进后出”进行数据操作D、队列按“先进先出”进行数据操作标准答案:D知识点解析:队列是只允许在一端删除,在另一端插入的顺序表,允许删除的一端叫做队头,允许插入的一端叫做队尾。队列的操作数是依据先进先出的原则进行的。因此队列亦称作先进先出的线性表,或后进后出的线性表。4、对下列二叉树进行前序遍历的结果为()。A、ABCDEFGHB、ABDGEHCFC、GDBEHACFD、GDHEBFCA标准答案:B知识点解析:暂无解析5、对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是()。A、冒泡排序为n(n-1)/2B、简单插入排序为nC、希尔排序为nD、快速排序为n/2标准答案:A知识点解析:暂无解析6、为了使模块尽可能独立,要求()。A、内聚程度要尽量高,耦台程度要尽量强B、内聚程度要尽量高,耦合程度要尽量弱C、内聚程度要尽量低,耦合程度要尽量弱D、内聚程度要尽量低,耦合程度要尽最强标准答案:B知识点解析:暂无解析7、下列选项中不属于软件生命周期开发阶段任务的是()。A、软件测试B、概要设计C、软件维护D、详细设计标准答案:C知识点解析:暂无解析8、数据独立性是数据库技术的重要特点之一。所谓数据独立性是指()。A、数据与程序独立存放B、不同的数据被存放在不同的文件中C、不同的数据只能被对应的应用程序所使用D、以上三种说法都不对标准答案:D知识点解析:暂无解析9、在学校中,“班级”与“学生”两个实体集之间的联系属于()关系。A、一对一B、一对多C、多对一D、多对多标准答案:B知识点解析:暂无解析10、软件调试的目的是()。A、发现错误B、改善软件的性能C、改正错误D、验证软件的正确性标准答案:C知识点解析:暂无解析二、填空题(本题共15题,每题1.0分,共15分。)11、若有定义:inta=4,b=5,c=6;然后顺序执行下列语句后,变量b中的值是()。c=(a-=(b-5));c=(a%3)+(b=1);标准答案:1知识点解析:本题考查的是基本赋值运算符和赋值表达式。a-=(b-5)等价于a=a-(b-5)=4,c=a=4;a%3=1,c=(a%3)+(b=1)=2,其中b的值被b=1确定为1。12、以下程序运行后的输出结果是()。main(){inta,b,c;a=10;b=20;c=(a/b<1)&&(a%b<1);printf("%d%d%d\n",a,b,C);}标准答案:10200知识点解析:本题考查的是混合运算。“(a/b<1)&&(a%b<1)”的运算顺序为:括号>算术运算符>关系运算符>逻辑运算符。其中a%b=10,a,b=0,所以a%b<1的值为0,a/b<1的值为1,故整个表达式的结果为0,所以输出的a,b,c的值为10200。13、以下程序运行后的输出结果是()。#definePower2(x)x*xmain(){inti=6,j=8;printf("%d\n",Power2(i+j));}标准答案:62知识点解析:本题考查的是宏定义。带参数的宏定义是按#indefine命令行中指定的字符串从左到右进行转换。本题中替换的式子为:6+8*6+8,代入i,j的值得到62。14、以下程序中,fun函数的功能足求3行4列二维数组每行尢素中的最大值。请填空。voidfun(int,int,int(*)[4],int*);main(){inta[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},b[3],i;fun(3,4,a,B);for(i=0;j<3;i++)printf("%4d",b[i]);printf("\n");}voidfun(intm,intn,intar[][4],int*br){inti,j,x;for(i=0;i<m;i++){x=ar[i][0];for(j=0;j<n;j++)if(())x=ar[i][j];br[i]=x;}}标准答案:x<ar[i][j]知识点解析:本题考查的是循环的嵌套。本题定义了二维数组a,存放3行4列的数组元素,定义了,一维数组b用于存放每行的最大数。存函数fun中,通过二重for循环求每行的最大数,外层for循环用于控制行数,内层for循环用于控制列数。当外层循环执行一次时,内层循环则执行4次,并求出了这一行的最大值x,最后将每一行求出最大值x赋值给存放最大值的数组br,故本题答案为x<ar[i][j]。15、下面程序的功能是:输出100以内能被4整除且个位数为8的所有整数,请填空。main(){inti,j;for(i=0=();i++){j=i*10+8;if(j%4!=0)continue;printf("%d",j);}}标准答案:i<10知识点解析:分析程序:当(i=0,1,2,…)时,“j=i*10+8”语句的运行结果是(8,18,28,…)个位数字为8的所有整数;题中要求是100以内的整数,所以i<10;“if(j%4!=0)continue;”语句的功能是当条件不能被4整除时,继续循环不执行操作,直到能被4整除时输出该数,所以输出的数满足条件100以内能被4整除且个位数为8。16、以下程序的输出结果是()。#include<stdio.h>fun(){staticinta=0;a+=3;printf("%d",A);}main(){intcc;for(cc=1;cc<5;cc++)fun();printf("\n");}标准答案:36912知识点解析:本题考查最基本的for循环。for(cc=1;cc<5;cc++)规定循环次数为4次,每次a+=3,即每次a的值增加3,但因为fun函数中变量a为static类型,所以每次调用完子函数之后,变量a所做的改变都要保存。17、下面程序的运行结果是()。#include<stdio.h>#defineSIZE12main(){chars[SIZE];inti;for(i=0;i<SIZE;i++)s[i]=’A’+i+32;sub(s,5,SIZE-1);for(i=0;i<SIZE;i++)printf("%c",s[i]);printf("\n");}sub(char*a,intt1,intt2){charch;while(t1<t2){ch=*(a+t1);*(a+t1)=*(a+t2);*(a+t2)=ch;t1++;t2--;}}标准答案:abcdelkjihgf知识点解析:本题先给字符型数组s的12个元素赋值a到1的12个字母,函数sub(shar*a,intt1,intt2)的功能是将数组a的从第t1+1个元素到t2+1个元素进行逆置,在主函数中调用sub(s,5,SIZE-1)函数,是将数组s的第6个元素到第12个元素进行逆置,其他元素位置不变。18、下面程序的运行结果是()。#include<stdio.h>main(){chara[80],*p="AbabCDcd";inti=0,j=0;while(*(p++)!=’\0’){if(*p>=’a’&&*p<=’z’){a[i]=*p;i++;}}a[i]=’\0’;puts(A);}标准答案:babcd知识点解析:C语言中“\0”表示字符串的结束。程序将p指针指向字符串“AbabCDcd”的首地址,循环开始后若指针不是指向当前字符串的结束标志位,则进入循环体。循环中每次检验字符串中字母是否在’a’与’z’之间,若满足则将当前值赋值给数组a,最后给数组添加字符结束标志。此程序可以筛选出字符串中的小写字母。19、“printf("%d\n",strlen("\t\"\023\xAB\nC"));”语句的输出结果是()。标准答案:6知识点解析:strlen()函数的作用是计算字符串的长度并作为函数的返回值,这里的长度不包括串尾的结束标志’\0’。’\t’是转义字符,代表横向跳若干格;’\"’是转义字符,代表双引号:’\023’也只代表一个字符,而不管转义字符后面有几个符;’\xAB’是以两位十六进制数AB表示的ASCII码字符,只代表一个字符;’\n’是转义字符,代表回车换行。题中语句中的字符串有5个字符常量各代表一个字符,再加上字母C,所以返回的长度是6。20、下面程序的运行结果是()。#defineP(A)printf("%d",A)main(){intj,a[]={1,2,3,4,5,6,7},i=5;for(j=3;j>1;j--){switch(j){case1:case2:P(a[i++]);break;case3:P(a[--i]);}}}标准答案:55知识点解析:分析程序执行过程,第一次循环时,j=3,i=5,因为switch(3),所以执行case3,调用P(a[--i])=P(a[4])=P(5),输出5;第二次循环时,j=2,i=4,因为switch(2),所以执行case2,调用P(a[i++])=P(a[4])=P(5),输出5,之后i自加等于5。21、在算法正确的前提下,评价一个算法的两个标准是空间复杂度和()。标准答案:时间复杂度知识点解析:在算法正确的前提下,评价一个算法的两个标准是空间复杂度和时间复杂度。算法的时间复杂度,是指执行算法所需要的计算工作量。算法的空间复杂度是指执行这个算法所需要的内存空间。22、二叉树的遍历可以分为三种:前序遍历、()遍历和后序遍历。标准答案:中序知识点解析:二叉树的遍历可以分为三种:前序遍历、中序遍历和后序遍历。前序遍历是指在访问根结点、遍历左子树与遍历右子树这三者中,首先访问根结点,然后遍历左子树,最后遍历右子树;并且遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。中序遍历指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历左子树,然后访问根结点,最后遍历右子树;并且遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树。后序遍历指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历右子树,然后访问根23、软件危机出现于20时纪60年代末,为了解决软件危机,人们提出了()的原理来设计软件,这就是软件工程诞生的基础。标准答案:软件工程学知识点解析:为了消除软件危机,通过认真研究解决软件危机的方法,认识到软件工程是使计算机软件走向工程科学的途径。逐步形成了软件工程的概念,开辟了工程学的新兴领域——软件工程学。24、()是指用户的应用程序与数据库的逻辑结构是相互独立的,也就是说,数据的逻辑结构改变了,用户程序也可以不变。标准答案:逻辑独立性知识点解析:数据独立性包括数据的物理独立性和逻辑独立性。物理独立性是指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。数据在磁盘上的数据库中怎样存储是由DBMS管理的,用户程序不需要了解,应用程序要处理的只是数据的逻辑结构,这样当数据的物理存储改变时。应用程序不用改变。逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的,也就是说,数据的逻辑结构改变了,用户程序也可以不变。25、程序测试分为静态测试和动态测试。其中()是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。标准答案:静态测试知识点解析:暂无解析国家二级(C语言)笔试模拟试卷第3套一、公共基础选择题(本题共10题,每题1.0分,共10分。)1、算法的时间复杂度是指A、执行算法程序所需要的时间B、算法程序的长度C、算法执行过程中所需要的基本运算次数D、算法程序中的指令条数标准答案:C知识点解析:算法的复杂度主要包括算法的时间复杂度和空间复杂度。所谓算法的时间复杂度是指执行算法所需要的计算工作量,即算法执行过程中所需要的基本运算的次数;算法的空间复杂度一般是指执行这个算法所需要的内存空间。2、常采用的两种存储结构是()。A、顺序存储结构和链式存储结构B、散列方法和索引方式C、链表存储结构和数组D、线性存储结构和非线性存储结构标准答案:A知识点解析:线性表的存储通常要用两种存储结构:顺序存储结构和链式存储结构。3、下列叙述中,不属于软件需求规格说明书的作用的是A、便于用户、开发人员进行理解和交流B、反映出用户问题的结构,可以作为软件开发工作的基础和依据C、作为确认测试和验收的依据D、便于开发人员进行需求分析标准答案:D知识点解析:软件需求规格说明书(SRS,SoftwareRequirementSpecification)是需求分析阶段的最后成果,是软件开发中的重要文档之一。它具有以下几个方面的作用:①便于用户、开发人员进行理解和交流;②反映出用户问题的结构,可以作为软件开发工作的基础和依据;③作为确认测试和验收的依据。4、线性表的链式存储结构是一种______的存储结构。A、随机存储B、顺序存储C、索引结构D、散列结构标准答案:2知识点解析:线性表的链式存储结构中的每一个存储结点不仅含有一个数据元素,还包括指针,每一个指针指向一个与本结点有逻辑关系的结点。此类存储方式属于顺序存储。5、下列叙述中正确的是()。A、黑箱(盒)测试方法完全不考虑程序的内部结构和内部特征B、黑箱(盒)测试方法主要考虑程序的内部结构和内部特征C、白箱(盒)测试不考虑程序内部的逻辑结构D、上述3种说法都不对标准答案:1知识点解析:黑箱测试方法完全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测试用例,选项A是正确的,选项B错误。白箱测试是根据对程序内部逻辑结构的分析来选取测试用例,选项C错误。6、设a=2、b=3、c=4,则表达式a+b>c&&b==c&&a||b+c&&b+c的值为______。A、5B、8C、0D、1标准答案:8知识点解析:暂无解析7、下列程序的输出结果是______。#include<stdio.h>main(){inti=1,j=3;printf("%d,",i++);{inti=0;i+=j*2;printf("%d,%d,",i,j);}printf("%d,%d\n",i,j);}A、1,6,3,1,3B、1,6,3,2,3C、1,6,3,6,3D、1,7,3,2,3标准答案:2知识点解析:暂无解析8、已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历为A、GEDHFBCAB、DGEBHFCAC、ABCDEFGHD、ACBFEDHG标准答案:2知识点解析:利用前序和中序遍历的方法可以确定二叉树的结构,具体步骤如下:①前序遍历的第一个结点A为树的根结点;②中序遍历中A的左边的结点为A的左子树,A右边的结点为A的右子树;③再分别对A的左右子树进行上述两步处理,直到每个结点都找到正确的位置。9、数据库的物理设计是为一个给定的逻辑结构选取一个适合应用环境的______的过程,包括确定数据库在物理设备上的存储结构和存取方法。A、逻辑结构B、物理结构C、概念结构D、层次结构标准答案:2知识点解析:根据数据库物理设计的概念可知:为一个给定的逻辑数据模型选取一个最合适应用要求的物理结构的过程,就是数据库的物理设计。数据库的物理结构就是指数据库在物理设备上的存储结构与存取方法。10、对建立良好的程序设计风格,下列描述正确的是()。A、程序应该简单、清晰、可读性好B、符号名的命名只需要符合语法C、充分考虑程序的执行效率D、程序的注释可有可无标准答案:1知识点解析:“清晰第一,效率第二”,在考虑到程序的执行效率的同时,一定要保证程序清晰、可读;对符号名的命名,除了要符合语法要求外,还要具有一定的含义;程序的注释可以帮助程序员理解程序,不是可有可无的。二、选择题(1分)(本题共11题,每题1.0分,共11分。)11、下列关于函数的叙述中正确的是()。A、每个函数都可以被其他函数调用(包括main函数)B、每个函数都可以被单独编译C、每个函数都可以单独运行D、在一个函数内部可以定义另一个函数标准答案:B知识点解析:在C语言中,函数定义是平行的,函数不能嵌套定义,即函数之间没有从属关系。虽然函数之间可以相互调用,但main()函数不能被调用,选项A错误:C程序从main()函数开始执行,当main()数执行完毕时,整个程序就结束了。c程序的执行必须从main()函数开始,选项C选项错误;函数不能嵌套定义,选项D错误。12、设a和b均为int型变量,且a:6、b=11、c=3,则能使值为3的表达式是()。A、b%(c%4)B、b%(c-a%5)C、b%a-a%5D、(b%a)-(a%4)标准答案:D知识点解析:本题首先判断a>b,当a>b时结果等于a,否则等于“d>c?d:b”,因为a>b,所以直接输出a的值,注:这里“a:d>c?d:b”是用来干扰考生的。13、在下述程序中,判断i>j共执行的次数是()。main(){inti=0,j=10,k=2,s=0;for(;;){i+=k;if(i>j){printf(“%d”,s);break;}s+=i:}}A、4B、7C、5D、6标准答案:B知识点解析:本题考查的是结构和数组元素所占的字节数。题目中定义的结构st因为包含x、y、z这3个元素,所以slze(structst)=2+2+2=6;而联合体所占的字节数,由于最后存入的元素会把前面存入的元素覆盖掉,所以联合体所占的字节数就是占据最多存储单元的元素所占的字节数,sizeof(un)=sizeof(long)=4。14、在关系中凡能惟一标识元组的最小属性集称为该表的键或码。二维表中可能有若干个键,它们称为该表的()。A、连接码B、关系码C、外码D、候选码标准答案:D知识点解析:在关系中凡能惟一标识元组的最小属性集称为该表的键或码。二维表中可能有若干个键,它们称为该表的候选码或候选键。从二维表的所有候选键中选取一个作为用户使用的键称为主键或主码。15、下列程序执行后的输出结果是()。voidfune(int*a,intb[]){b[0]=*a+b;}main(){inta,b[5];a=0;b[0]=3;func(&a,b);printf("%d\n",b[0]);}A、6B、7C、8D、9标准答案:A知识点解析:本题考查函数的调用,从主函数传递到调用函数中,*a的值为0,因此当执行完调用函数后,b[0]的值为6。16、下列程序执行后的输出结果是()。main(){inta[3][3],*p,i}.p=&a[0][0];for(i=p;i<9;i++)p[i]=i+1;printf("%d\n”,a[1][2]);}A、3B、6C、9D、随机数标准答案:D知识点解析:程序执行在for循环,当i=p,时.i中放的是p的地址,类型不符合,因此输出随机数,故选择D选项。17、有定义语句:intb;charc[10];,则正确的输入语句是()。A、scanf("%d%s",&b,&c);B、scanf("%d%s",&b,c);C、scanf("%d%s",b,c);D、scanf("%d%s",b,&c);标准答案:2知识点解析:本题中4个选项的格式控制字符串都是“%d%s”,其中包括两个格式控制符%d和%s,它们分别表示输入一个十进制整数和输入一个字符串,其对应的参数应该分别为一个整型变量的地址和一个字符型数组的首地址。变量的地址可以通过对变量做取地址(&)运算来得到,而字符型数组的首地址则可以直接通过数组名来得到。所以,4个选项中选项B符合题意。18、表达式18/4*sqrt(4.0)/8值的数据类型为______。A、intB、floatC、doubleD、不确定标准答案:4知识点解析:根据数据类型转换时的就长转换规则,可以得到最后的结果应是实型。19、表达式(double)(20/3)的值为()A、6B、6C、2D、3标准答案:2知识点解析:暂无解析20、下面程序输出的结果是______。main(){inti=5,j=9.x;x=(i==j?i:(j==7));printf("\n%d,%d",i,j);}A、5,7B、5,5C、语法错误D、7,5标准答案:1知识点解析:条件表达式的一般形式为:表达式1?表达式2:表达式3;先求解表达式1,若为真则求解表达式2;若表达式1的值为假,则求解表达式3。本题中先判断i==j不等,执行j=7。然后执行x=7。故本题为A。21、设有定义:10ngx=-123456L,则以下能够正确输出变量x值的语句是()。A、printf("x=%d\n",x);B、printf("x=%1d\n",x);C、peintf("x=%8dL\n",x);D、printf(’x=%LD\n",x);标准答案:2知识点解析:x为一个长整型的变量,而且是一个十进制的数,它的输出控制符是%1d,所以排除选项A和选项C;由于C语言中是区分大小写的,1d中的d不能为大写,故排除选项D。4个选项中B正确。三、选择题(2分)(本题共20题,每题1.0分,共20分。)22、整型变量X和Y的值相等,且为非0值,则以下选项中结果为0的表达式是______。A、X||YB、X|YC、X&YD、X^Y标准答案:D知识点解析:“||”为或运算符,当其左右表达式中只要—个为非零则整个表达式的值1。|是按位或,&是按位与,^是按位异或,这三位运算符是按值的二进制位来比较的。23、若有下列说明和语句,则对结构体变量st中成员i的引用方式不正确的是()。Structstu{inti;intname;}st,*#p;p=&St;A、st.iB、*p.iC、(*p).iD、p->i标准答案:B知识点解析:本题主要考查结构指针:p=&st,访问结构体的成员,可以通过结构变量访问,即st.i,也可以用等价的指针形式即(*p).i和p->i。24、下列叙述中正确的是()。A、break语句只能用于switch语句体中B、continue语句的作用是使程序的执行流程跳出包含它的所有循环C、break语句只能用在循环体内和switch语句体内D、在循环体内使用break语句和continue语句的作用相同标准答案:C知识点解析:只能在循环体内和switch语句体内使用break语句。当break出现在循环体的switch语句体内时,其作用只是跳出该switch语句体,并不能中止循环体的执行。若想强行中止循环体的执行,可以在循环体中,但并不在switch语句中设置break语句,满足某种条件,则跳出本层循环体。25、有以下程序#includemain(){FILE*fp;intk,n,a[6]={1,2,3,4,5,6};fp=fopen("d2.dat","w");fprintf(fp,"%d%d%d\n",a[0],a[1],a[2]);fprintf(fp,"%d%d%d\n",a[3],a[4],a[5]);fclose(fp);fp=fopen("d2.dat","r");fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n);fclose(fp);}程序运行后的输出结果是A、12B、14C、1234D、123456标准答案:D知识点解析:将有6个元素的整型数组分两行输出到一个文件中,因为输出的都是数字并且每行都没有分隔符,所以当再对其进行读取操作时,每一行都会被认为是一个完整的数,而换行符则作为它们的分隔符。26、在C语言中,函数调用时()。A、实参和形参各占独立的存储单元B、实参和形参共用存储单元C、由系统自动确定实参和形参是否共用存储单元D、由用户指定实参和形参是否共用存储单元标准答案:A知识点解析:本题考查函数调用时的参数传递。函数的形参是函数定义时由用户定义的形式上的变量,实参是函数调用时,主调函数为被调函数提供的原始数据。在函数调用时,实参和其所对应的形参分别占用不同的存储单元,彼此之间不影响。27、以下程序运行后,输出结果是#definePT5.5#defineS(x)PT*x*x#includemain(){inta=1,b=2;printf("%4.1f\n",S(a+b));}A、49.5B、9.5C、22D、45标准答案:A知识点解析:考查宏替换的使用。宏替换用"#define宏名宏体"的形式来定义。在进行编译预处理时,将把程序中宏定义之后的所有宏名用宏体替换。宏虽然可以带参数,但宏替换过程中不像函数那样要进行参数值的计算、传递及结果返回等操作;宏替换只是简单的字符替换,不进行计算,因而本题中的S(a+b)进行宏替换后为PT*1+2*1+2=5.5*1+2*1+2=9.5。28、下列选项中,能够满足“若字符串s1等于字符串s2,则执行ST”要求的是()。A、if(strcmp(s2,s1)==0)ST;B、if(s1===s2)ST;C、if(strcpy(s1,s2)==1)ST;D、if(s1,s2==0)ST;标准答案:A知识点解析:strcmp(char*,char*),函数strcmp用于比较两个字符串的长度,长者为大,若字符个数也一样,则从左至右依次比较相同位上的字符,字符大小按ASCⅡ表值计算,直到最后一个字符,若还相同,则两个字符串相等,返回值0。选项A中if(strcmp(s2,s1)=0)ST,若s2等于s1,则返回值0,0等于0,所以逻辑表达式strcmp(s2,s1)=0为真执行ST。29、在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量使用的存储类别是______。A、externB、registerC、autoD、static标准答案:D知识点解析:暂无解析30、以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下:main(){intn.k;floatscore.sum,ave;sum=0.0;for(n=1;n<=10;n++){for(k=1;k<=4;k++){scanf("%f",&score);sum+=score;}ave=sum/4.0;printf("NO%d:%f\n",n,ave);}}上述程序运行后结果不正确,调试中发现有—条语句出现在程序中的位置不正确。这条语句是A、sum=0.0;B、sum+=score;C、ave=sun/4.0;D、printf("NO%d:%f\n",n,ave);标准答案:1知识点解析:程序中使用了两层for循环,外层循环的作用是控制人数,循环一次是求一个人的成绩和,然后除以4得到平均成绩。每个人的成绩总和一开始时都必须清0,否则就会出现后面人的总成绩越来越大。“sum=0.0”;应在外层循环中。选项A正确。31、以下叙述中正确的是()。A、全局变量的作用域一定比局部变量的作用域范围大B、静态(static)类别变量的生存期贯穿于整个程序的运行期间C、函数的形参都属于全局变量D、未在定义语句中赋初值的auto变量和static变量的初值都是随机值标准答案:2知识点解析:若在函数中定义与全局变量名字相同局部变量,则全局变量在该函数中将不起作用,因此全局变量的作用域并不一定比局部变量的作用域大,故选项A不正确;静态变量一旦定义,将在整个程序的运行期间都存在,故选项B正确;函数的形参只在函数调用的时候分配存储空间,在退出函数时收回存储空间,因此是局部的,故选项C不正确;没有赋值的auto型变量的初值是随机的,没有赋值的static型变量的初值是0,故选项D不正确。所以,B选项为所选。32、以下程序执行后sum的值是______。main(){inti,sum;for(i=1;i<6;i++)sum+=i;printf("%d\n",sum);}A、15B、14C、不确定D、0标准答案:4知识点解析:变量sum在使用时未赋初值,所以无法确定sum最终的值。33、根据下面的定义,能打印出字母M的语句是()。structperson{charname[9];intage;};structpersonclass[10]={"John",17,"Paul",19,"Mary",18,"Adam",16};A、printf("%c\n",class[3].name};B、printf("%c\n",class[2].name[0]);C、printf("%c\n",class[3].name[1]);D、printf("%c\n",class[2].name[1]);标准答案:2知识点解析:在结构体数组class[10]的初始化列表中只有第5个初始值中包含大写字母M,而该结构体只有两个成员变量,所以每两个初始值初始化一个数组元素,故第5个初始值是属于第3个数组元素class[2]的前一个成员变量的,选项A和C不正确。又因为‘M’是“Mary”的第一个元素,所以应该输出class[2]的name[0],B是正确答案。34、若有如下程序:main(){chara[]={"1234"};inti,t=0;for(i=0;a[i]>=’0’&&a[i]<=’9’;i+=2)t=10*t+a[i]一-’0’;printf("%d\n’,t);}则程序运行后的输出结果是()。A、13B、1234C、24D、123标准答案:1知识点解析:程序中首先以字符串常量定义并初始化了一个字符数组a,此时数组a包含5个元素{’1’,’2’,’3’,’4’,’\0’},然后定义了一个变量t,并初始化为0。接下来是一个for循环,循环变量i从0开始每次递增2,循环条件a[i]是一个数字字符。因为a[0]、a[2]分别是数字字符’1’、’3’而a[4]不是,所以循环体执行了两次,第一次执行前t为0,执行后t=10*t+a[i]-’0’=10*0+’1’-’0’=1,所以第二次执行结果为t=10*t+a[i]-’0’=10*1+’3’-’0’=13。程序运行后的输出结果是13,本题选A。35、以下程序的输出结果是#include<stdio.h>#include<string.h>main(){charb1[8]=“abcdefg”,b2[8],*pb=b1+3;while(--pb>=b1)strcpy(b2,pb);printf(“%d\n”,strlen(b2));}A、8B、3C、1D、7标准答案:8知识点解析:strcpy()函数的作用是把第二个参数代表的字符串,复制到第一个参数指向数组中。首先定义了两个字符数组b1和b2,并用一个字符串给b1赋初值,然后定义了一个字符型指针变量pb,通过赋初值使它指向b1[3]。接着执行while循环,该循环执行了3次:第一次判断条件“--pb>=b1”,使pb的值为“b1+2”,执行“strcpy(b2,pb);”后,b2中的内容为“cdefg”;第二次判断条件“--pb>=b”,使pb的值为“b1+1”,执行“strcpy(b2,pb);”后b2的内容为“bcdefg”第三次判断条件“--pb>:b1”使pb的值为“b1”,执行“strcpy(b2,pb);”后b2的内容为“abcdefg”。最后输出b2数组中存放的字符串长度,显然是7。(这里还有一个关键点:就是每当执行一次while循环判断条件,就执行一次“--pb”,使得指针pb自减1,即前移一位)。36、执行下面语句后的输出结果为()inti=-1;if(i<=0)print{("****\n");elseprintf("%%%%\n");A、****B、%%%%%C、%%%%cD、有语法错误,不能正确执行标准答案:8知识点解析:暂无解析37、若有说明inta[][3]={1,2,3,4,5,6,7,8,9},则a数组第一维的大小是()。A、2B、3C、4D、无确定值标准答案:2知识点解析:本题考查二维数组第一维的大小如何确定。二维数组第一维的大小由下列规则确定:①当初值的个数能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小:②当初值的个数不能被第二维的常量表达式的值除尽时,第一维的大小等于所得商数加1。38、设有程序段:intk=12;while(k=1)k=k-1;则下列描述中正确的是()。A、while循环执行10次B、循环是无限循环C、循环体语句一次也不执行D、循环体语句执行一次标准答案:4知识点解析:本题考查while循环。while循环的控制表达式k=1是个赋值表达式而不是逻辑表达式,所以循环体一次也不执行。39、有以下程序main(){char*p[10]={“abc”,”aabdfg”,”dcdbe”,”abbd”,”cd”};printf(“%d\n”,strlen(p[4]));}执行后输出结果是()A、2B、3C、4D、5标准答案:A知识点解析:数组指针p[4]指向字符串"cd",所以其长度为2。40、有以下程序main(){chars[]="abcde";s+=2;printf("%d\n",s[0]);}执行后的结果是______。A、输出字符a的ASCⅡ码B、输出字符c的ASCⅡ码C、输出字符cD、程序出错标准答案:D知识点解析:此题中s是—个字符数组,而字符数纽是在编绎时为它分配内存单元的,即此字符数组的地址在编译时是确定的,所以对此地址变量并不能赋值,故语句“s+=2;”错误,故程序出错。41、有以下程序#include<stdio.h>main(){FILE*fp;intk,n,a[6]={1,2,3,4,5,6};fp=fopen("d2.dat","w");fprintf(fp,"%d%d%d\n",a[0],a[1],a[2]);fprintf(fp,"%d%d%d\n",a[3],a[4],a[5]);fclose(fp);fp=fopen("d2.daf","r");fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n);fclose(fp);}程序运行后的输出结果是A、12B、14C、1234D、123456标准答案:D知识点解析:将有6个元素的整型数组分两行输出到一个文件中,因为输出的都是数字并且每行都没有分隔符,所以当再对其进行读取操作时,每一行都会被认为是一个完整的数,而换行符则作为它们的分隔符。故本题答案为D)。四、公共基础填空题(本题共4题,每题1.0分,共4分。)42、按照“先进先出”的原则组织数据的结构是______。A、队列标准答案:知识点解析:队列是一种特殊的线性表,只允许在表的一端插入元素,在表的另一端删除元素,插入元素的一端叫做“队尾”,删除元素的一端叫做“队头”,先插入的元素先被删除,是按先进先出的原则组织数据的。43、关系模型的完整性规则是对关系的某种约束条件,包括实体完整性、【】和自定义完整性。标准答案:参照完整性知识点解析:关系模型允许定义三类数据约束,它们是实体完整性、参照完整性以及用户定义的完整性约束,其中前两种完整性约束由关系数据库系统自动支持。实体完整性约束要求关系的主键中属性值不能为空,这是数据库完整性的最基本要求,因为主键是惟一决定元组的,如为空则其准一性就成为不可能的了。参照完整性约束是关系之间相关联的基本约束,它不允许关系引用不存在的元组:即在关系中的外键要么是所关联关系中实际存在的元组,要么是空值。自定义完整性是针对具体数据环境与应用环境由用户具体设置的约束,它反映了具体应用中数据的语义要求。44、按照逻辑结构分类,结构可以分为线性结构和非线性结构,栈属于______。标准答案:线性结构知识点解析:数据的逻辑结构是指数据元素之间的逻辑关系,分为线性结构和非线性结构。常见的线性结构有线性表、栈和队列等,常见的非线性结构有树、二叉树等。45、线性表的存储结构主要分为顺序存储结构和链式存储结构。队列是一种特殊的线性表,循环队列是队列的【】存储结构。标准答案:顺序知识点解析:本题考查数据结构的队列。队列是一种特殊的线性表,即限定在表的一端进行删除,在表的另一端进行插入操作的线性表。允许删除的一端叫做队头,允
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高压线安全隔离施工方案
- 《涉税服务实务》税务师考试试卷及解答参考(2024年)
- 软件开发公司员工劳动合同模板
- 机场地面运输车辆管理方案
- 建筑工地安全事故处理方案
- 纳税计缴与申报(第四版)课件9.7 特别纳税调整
- 怀化学院《网络舆情分析与应对》2023-2024学年期末试卷
- 2024上海市技术开发合同范本
- 人事处处长的绩效考核工作总结
- 2024质押借款合同协议
- T-CRHA 046-2024 标准手术体位安置技术规范
- 阳光食品APP培训考核题库(含答案)食品生产企业端
- 中考数学专题训练一元二次方程(50道计算题)(无答案)
- 村卫生室静脉输液规范和安全管理制度
- 人教版高中化学选择性必修1第1章化学反应的热效应测试含答案
- 超声技能操作评分表
- 分子筛催化剂的研究进展
- 河南中职语文-基础模块上册-(高教版)第一单元测试题含答案
- 湖北省宜都市马家台矿区电石用、建筑石料用、水泥用石灰岩矿矿产资源开发利用与生态复绿方案
- DLT 817 立式水轮发电机检修规程
- 工程设计管理岗位面试问题
评论
0/150
提交评论