您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 数据通信与网络 > 2006年4月全国计算机等级考试二级C语言笔试试题及解析
12006年4月全国计算机等级考试二级C语言笔试试卷一、选择题((1)-(10)每题2分,(11)-(50)每题1分,共60分)下列各题四个选项中,只有一个选项是正确的,请选出正确答案(1)下列选项中不属于结构化程序设计方法的是0001A)自顶向下B)逐步求精C)模块化D)可复用(2)两个或两个以上模块之间关联的紧密程度称为1000A)耦合度B)内聚度C)复杂度D)数据传输特性(3)下列叙述中正确的是0001A)软件测试应该由程序开发者来完成B)程序经调试后一般不需要再测试C)软件维护只包括对程序代码的维护D)以上三种说法都不对(4)按照“后进先出”的原则组织数据的数据结构是0100A)队列B)栈C)双向链表D)二叉树(5)下列叙述中正确的是1000A)线性链表是线性表的链式存储结构B)栈与队列是非线性结构C)双向链表是非线性结构D)只有根结点的二叉树是线性结构(6)对如下二叉树00012进行后序遍历的结果为A)ABCDEFB)DBEAFCC)ABDECFD)DEBFCA(7)在深度为7的满二叉树中,叶子结点的个数为0010A)32B)31C)64D)63(8)“商品”与“顾客”两个实体集之间的联系一般是0001A)一对一B)一对多C)多对一D)多对多(9)在E-R图中,用来表示实体的图形是0100A)矩形B)椭圆形C)菱形D)三角形(10)数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是0010A)DB包含DBS和DBMSB)DBMS包含DB和DBSC)DBS包含DB和DBMSD)没有任何关系(11)以下不合法的用户标识符是0100A)j2_KeyB)DoubleC)4dD)_8_(12)以下不合法的数值常量是0010A)011B)1e1C)8.0E0.5D)0xabcd(13)以下不合法的字符常量是1000A)'\018'B)'\'C)'\\'D)'\xcc'(14)表达式3.6-5/2+1.2+5%2的值是0001A)4.3B)4.8C)3.3D)3.8(15)以下能正确定义字符串的语句是0001A)charstr[]={'\064'};B)charstr=\x43;C)charstr=;D)charstr[]=;\0;;(16)以下数组定义中错误的是0100A)intx[][3]={0};B)intx[2][3]={{1,2},{3,4},{5,6}};C)intx[][3]={1,2,3},{4,5,6};D)intx[2][3]={1,2,3,4,5,6};(17)若要求从键盘读入含有空格字符的字符串,应使用函数01003A)getc()B)gets()C)getchar()D)scanf()(18)以下四个程序中,完全正确的是0100A)#include〈stdio.h〉B)#include〈stdio.h〉main();main(){/*programming*/{/*/programming/*/printf(programming!\n);}printf(programming!\n);}C)#include〈stdio.h〉D)include〈stdio.h〉main()main(){/*/*programming*/*/{/*programming*/printf(programming!\n);}printf(programming!\n);}(19)若有定义:flotx=1.5;inta=1,b=3,c=2;则正确的switch语句是0010A)switch(x)B)switch((int)x);{case1.0:printf(*\n);{case1:printf(*\n);case2.0:printf(**\n);}case2:printf(**\n);}C)switch(a+b)D)switch(a+b){case1:printf(*\n);{case1:printf(*\n);case2+1:printf(**\n);}casec:printf(**\n);}(20)若各选项中所用变量已正确定义,函数fun中通过return语句返回一个函数值,以下选项中错误的程序是1000A)main()B)floatfun(inta,intb){……}{……x=fun(2,10);……}main()floatfun(inta,intb){……}{……x=fun(I,j);……}C)floatfun(int,int);D)main()main()floatfun(inti,intj);{……x=fun(2,10);……}……x=fun(i,j);……}floatfun(inta,intb){……}floatfun(inta,intb){……}(21)在以下给出的表达式中,与while(E)不等价的表达式是0010A)(!E==0)B)(E0‖E0)C)(E==0)D)(E!=0)4(22)要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义以下正确的程序段是:1000A)while((ch=getchar())!='N')printf(%c,ch);B)while(ch=getchar()!=N)printf(%c,ch);C)while(ch=getchar()=='N')printf(%c,ch);D)while((ch=getchar())=='N')printf(%c,ch);(23)已定义以下函数0100intfun(int*p){return*p;}fun函数返回值是A)不确定的值B)一个整数C)形参p中存放的值D)形参p的地址值(24)若有说明语句:double*p,a;则能通过scanf语句正确给输入项读入数据的程序是:0001A)*p=&a;scanf(%1f,p);B)*p=&a;scanf(%f,p);C)p=&a;scanf(%1f,*p);D)p=&a;scanf(%1f,p);(25)现有以下结构体说明和变量定义,如图所示,指针p、q、r分别指向一个链表中继续的三个结点。0001structnode{chardata;structnode*next;}*p,*q,*r,现要将q和r所指结点交换前后位置,同时要保持链表的连续以下不能完成此操作的语句是:A)q-next=r-next;p-next=r,r-next=q;AdatanextdatanextBdatanextdatanextCdatanextdatanextpqr5B)p-next=r;q-next=r-next;r-next=q;C)q-next=r-next;r-next=q;p-next=r;D)r-next=q;p-next=r;q-next=r-next;(26)有以下程序段0010structst{intx;int*y;}*pt;inta[]={1,2},b[]={3,4];structstc[2]={10,a,20,b};pt=c;以下选项中表达式的值为11的是:A)*pt-yB)pt-xC)++pt-xD)(pt++)-x(27)设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp)的返回值为:0100A)EOFB)非0值C)0D)NULL(28)设有以下语句0001inta=1,b=2,c;c=a^(b2);执行后,c的值为A)6B)7C)8D)9(29)有以下程序0001#includestdio.hmain(){charc1,c2,c3,c4,c5,c6;scanf(%c%c%c%c,&c1,&2,&3,&4);c5=getchar();c6=getchar();putchar(c1);putchar(c2);6printf(&c&c\n,c5,c6);}程序运行后,若从键盘输入(从第1列开始)123回车45678回车则输出结果是A)1267B)1256C)1278D)1245(30)有以下程序0100main(){inty=10;while(y--);printf(y=%d\n,y);}程序执行后的输出结果是A)y=0B)y=-1C)y=1D)while构成无限循环(31)有以下程序0001main(){inta=0,b=0,c=0,d=0;if(a=1)b=1;c=2;elsed=3;printf(%d,%d,%d,%d\n,a,b,c,d);}程序输出A)0,1,2,0B)0,0,0,3C)1,1,2,0D)编译有错7(32)有以下程序0100main(){inti,j,x=0;for(i=0;i2;i++){x++;for(j=0;j=3;j++){if(j%2)conture;x++;}x++;}printf(x=%d\n,x);}程序执行后的输出结果是A)x=4B)x=8C)x=6D)x=12(33)有以下程序0100intfun1(doublea){retruna*=a;}intfun2(doublex,doubley){doublea=0,b=0;a=fun1(x);b=fun1(y);return(int)(a+b);}main(){doublew;w=fun2(1.1,2.0);……}程序执行后变量w中的值是:A)5.21B)5C)5.0D)0.08(34)有以下程序0100main(){inti,t[][3]={9,8,7,6,5,4,3,2,1};for(i=0;i3;i++)printf(%d,t[2-i][i]);}程序执行后的输出结果是:A)753B)357C)369D)751(35)有以下程序0100fun(charp[][10]){intn=0,i;for(i=0;i7;i++)if(p[i][0]=='T')n++;returnn;}main(){charstr[][10]={Mon,Tue,Wed,Thu,Fri,Sun};printf(%d\n,fun(str));}程序执行后的输结果是:A)1B)2C)3D)09(36)有以下程序0010main(){inti,s=0,t[]={1,2,3,4,5,6,7,8,9}'for(i=0;i9;i+=2)s+=*(t+i);printf(%d\n,s);}程序执行后的输出结果是:A)45B)20C)25D)36(37)有以下程序1000voidfun1(char*p){char*q;q=p;while(*q!='\0'){(*q)++;q++;}}main(){chara[]={Program},*p;p=&a[3];fun1(p);printf(%s\n,a);}程序执行后的输出结果是:A)ProhsbnB)PrphsbnC)ProgsbnD)Program(38)有以下程序0010voidswap(char*x,char*y){chart;t=*x;*x=*y;*y=t;}main()10{char*s1=abc,*s2=123;swap(s1,s2);printf(%s,%s\n,s1,s2);}程序执行后的输出结果是:A)123,abcB)abc,123C)1bc,a23D)321,cba(39)有以下程序1000intfun(intn){if(n==1)return1;elsereturn(n+fun(n-1));}main(){intx;scanf(%d,&x);x=fun(x);printf(%d\n,x);}执行程序时,给变量x输入10,程序的输出结果是:A)55B)54C)65D)45(40)有以下程序0010intfun(intx[],intn){staticintsun=0,i;for(i=0;in;i++)sum+=x[i];retrunsum;}11main(){inta[]={1,2,3,4,5},b[]={6,7,8,9},s=0;s=fun(a,5)+fun(b,4);printf(%d\n,s);}程序执行后的输出结果是:A)45B)5
本文标题:2006年4月全国计算机等级考试二级C语言笔试试题及解析
链接地址:https://www.777doc.com/doc-3075832 .html