《全国计算机等级考试二级c语言真题》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
全国计算机等级考试二级真题2004年4月全国计算机等级考试二级C语言笔试试题(含参考答案)2004年4月一、选择题,(1-40)每题1分,(41-50)每题2分,共60分)下列各题A)、B).C).D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得(1)1MB等于A)1000字节B)1024字节C)1000x1000字节D)1024x1024字节(2)与十六进制数200等值的十进制数为A)256B)512C)1024D)2048(3)所谓“裸机”是指A)单片机B)单板机C)不装备任何软件的计算机D)只装备操作系统的计算机(4)能将高级语言编写的源程序转换成目标程序的是A)链接程序B)解释程序C)编译程序D)编辑程序
1(5)在64位计算机中,一个字长所占的字节数为A)64B)8C)4D)1(6)在Windows环境下,当一个应用程序窗口被最小化后,该应用程序A)继续在后台运行B)继续在前台运行C)终止运行D)暂停运行(7)在Windows环境下,能实现窗口移动的操作是A)用鼠标拖动窗口中的任何部位B)用鼠标拖动窗口的边框C)用鼠标拖动窗口的控制按钮D)用鼠标拖动窗口的标题栏(8)在Windows环境下,PrintScrccn键的作用是A)打印当前窗口的内容B)打印屏幕内容C)复制屏幕到剪贴板D)复制当前窗口到剪贴板(9)Internet的通信协议是A)TCP/IPB)BBSC)WWWD)FTP(10)下列叙述中正确的是A)计算机病毒只感染可执行文件B)计算机病毒只感染文本文件C)计算机病毒只能通过软件复制的方式进行传播D)计算机病毒可以通过网络或读写磁盘等方式进行传播(11)一个算法应该具有“确定性''等5个特性,下面对另外4个特性的描述中错误的是A)有零个或多个输入B)有零个或多个输出C)有穷性D)可行性(12)以下叙述中正确的是A)C语言的源程序不必通过编译就可以直接运行B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令C)C源程序经编译形成的二进制代码可以直接运行D)C语言中的函数不可以单独进行编译(13)以下符合C语言语法的实型常量是A)L2E0.5B)3.14.159EC).5E-3D)E15(14)以下4组用户定义标识符中,全部合法的一组是A)mainB)IfC)txtD)intenclude-maxREALk_2sinturbo3COM_001(15)若以下选项中的变量已正确定义,则正确的赋值语句是A)xl=26.8%3B)l+2=x2C)x3=Oxl2D)x4=1+2=3;(16)设有以下定义inta=0;doubleb=1.25;charc='A';#dcfincd2则下面语句中错误的是A)a++;B)b++C)c++;D)d++;(17)设有定义:floata=2,b=4,h=3;,以下C语言表达式与代数式计算结果不相符的是
2A)(a+B)*h/2B)(l/2)*(a+B)*hA)(a+B)*h*l/2D)h/2*(a+B)(18)有以下程序main(){intx=102,y=012;printfTt%2d,%2d
3”,x,y);)执行后榆出结果是A)10,01B)02,12C)102,10D)02,10(19)以下4个选项中,不能看作一条语句的是A){;}B)a=0,b=0,c=0;C)if(a>0);D)if(b==O)m=l;n=2;(20)设有定义:inta,*pa=&a;以下scanf语句中能正确为变量a读入数据的是A)scanfT%d”,pA);B)scanfp%d”,A);C)scanf("%
4^);caseT:printf("number
5");)}}程序运行时,从键盘输入:Olv回车》,程序执行后的输出结果是A)anotherB)anotherC)anotherD)numbernumbernumbernumbernumberanothernumber(23)有以下程序main(){intx=0,y=5,z=3;whilc(z—>0&&-H-x<5)y=y-l;printf^4t%d,%d,%d
6,\x,y,z);)程序执行后的输出结果是A)3,2,0B)3,2,-1C)4,3,-1D)5,-2,-5(24)有以下程序main(){inti,s=0;fbr(i=l;i<10;i+=2)s+=i+l;printfT%d
7”,s);
8|程序执行后的输出结果是A)自然数1~9的累加和B)自然数1~10的累加和C)自然数1~9中的奇数之和D)自然数1~10中的偶数之和(25)有以下程序main(){inti,n=0;fbr(i=2;i<5;i-H-){do{if(i%3)continue;n-H-;}while(!i);n-H-;}printf(44n=%d
9',,n);)程序执行后的输出结果是A)n=5B)n=2C)n=3D)n=4(26)若程序中定义了以下函数doublemyadd(doublea,doubleB){return(a+B);}并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是A)doublemyadd(doublea,B);B)doublemyadd(double,double);C)doublemyadd(doubleb,doubleA);D)doublemyadd(doublcx,doubley);(27)有以下程序charfun(charx,chary){i«xreturny;}main(){inta='9',b='8',c='7';printfl^cVn^funCfunfa^),fun(b,C)));}程序的执行结果是A)函数调用出错B)8C)9D)7(28)设有定义:intn=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是A)p=l;B)*q=2;C)q=p;D)*p=5;(29)有以下程序voidf((intv,intw){intt;t=v;v=w;w=t;main(){intx=l,y=3,z=2;i«x>y)«x,y);elseif(y>z)fty,z);elseRx,z);
10printf(k4%d,%d,%d
11,\x,y,z);}执行后榆出结果是A)1,2,3B)3,1,2C)1,3,2D)2,3,1(30)有以下程序段inta"0]={123,4,5,6,7,8,9』0},*p=&a[3],b;b=p[5];b中的值是A)5B)6C)8D)9(31)31、有以下程序main(){chara[]=',abcdefg,\b[10]=,,abcdefgM;printf^*%d%d
12,,,sizeof(A),sizeof(B));)执行后榆出结果是A)77B)88C)810D)1010(32)有以下程序voidswap1(intc[]){intt;t=c[0];c[0]=c[l];c[l]=t;voidswap2(intcO,intcl){intt;t=cO;cO=cl;cl=t;)main(){inta[2]={3,5},b[2]={3,5};swap1(A);swap2(b[0],b[l]);printfT%d%d%d%d
13M,a[0],a[l],b[0],b[l]);}其榆出结果是A)5353B)5335C)3535D)3553(33)有以下程序voidsum(int*A){a[0]=a(l];}main(){intaa[10]={l,2,3,4,5,6,7,8,9,10},i;fbr(i=2;i>=0;i-) sum(&aa[i]);printft^dXn^aatO]);)执行后的输出结果是A)4B)3C)2D)I(34)34、有以下程序intRintb[][4]){intiJ,s=O;fbr(j=0d<4U++){i=j;iRi>2)i=3-j;s+=b[i][j];
14}returns;main(){inta[4][4]={{l,2,3,4},{024,5},{3,6,9,12},{3,2」,0}};printqRdXn'MA));}执行后的输出结果是A)12B)11C)18D)16(35)有以下定义#includechara[10],*b=a;不能给数组a输入字符串的语句是A)gets(A)B)gets(a[O])C)gets(&a[0]);D)gets(B);(36)有以下程序main(){char*p[10]={“abc",''aabdW'dcdbe";'abbd"Jcd''};printf(tt%d
15,\strlen(p[4]));A)2B)3C)4D)5(37)有以下程序inta=2;intRint*A){return(*A)++;}main(){ints=0;{inta=5;s+=1&A);}s+=f(&A);printtr4%d
16,\s);}执行后榆出结果是A)10B)9C)7D)8(38)有以下程序#definef(x)x*xmain(){inti;i=R4+4)/f(2+2);printf("%d
17”,i);}执行后榆出结果是A)28B)22C)16D)4(39)设有以下语句typedefstructS{intg;charh;}T;则下面叙述中正确的是A)可用S定义结构体变量B)可以用T定义结构体变量C)S是struct类型的变量D)T是struclS类型的变量
18(40)有以下程序strucSTU{charname[10];intnum;};voidH(structSTUC){structSTUb={"LiSiGuo”,2042};c=b;}voidf2(structSTU*C){structSTUb={"SunDan”,2044};*c=b;}main(){structSTUa={"YangSan”,2041},b={uWangYin,\2043};fi(A);printf(44%d%d
19'\a.num,b.num);
20A)20412044B)20412043C)20422044D)20422043(41)有以下程序main(){unsignedchara,b;a=4|3;b=4&3;printf(fc4%d%d
21,\a,b(;}执行后榆出结果是A)70B)07C)11D)430(42)下面程序的功能是输出以下形式的金字塔图案是:****************main(){intij;fbr(i=l;i<=4;i++){fbr(j=l;j<=4-ij++)printfT");fbr(j=lj<=J++)printfT”);printfl:%”);}}在下划线处应填入的是A)iB)2*i-1C)2*i+ID)i+2(43)有以下程序voidsort(inta[],intn){intfbr(i=O;ifbr(j=i+2di 22M);}其输出结果是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,103,8,5,6,7,4,9,2,(44)以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是A)chars[l0]=,,abcdefg,*;B)chart[]=Mabcdefg'\*s=t;C)chars[lO];s=MabcdefgM;D)chars[lO];strcpy(s,"abcdefjg'*);(45)有以下程序#includemain(intargc,char*argv[]){inti,len=0;fbr(i=l;iprintfT5d 23"Jen); 24经编译链接后生成的可执行文件是ex.exe,若运行时输入以下带参数的命令行exabedcfgh3k44执行后榆出结果是A)14B)12C)8D)6(46)有以下程序voidHinta[],inti,intj){intt;{t=a[i];a[i]=a[j];a[j]=t;main(){inti,aa[5]={1,2,3,4,5};f(aa,0,4);fbr(i=O;i<5;i++)printf(4t%d,,\aa[i]);printffAiT);}执行后输出结果是A)5,4,321,B)523,4,1,C)1,2,345,D)1,2,3,45(47)有以下程序structSTU{charname[10];intnum;intScore;);main(){structSTUs[5]={{fciYangSanM,20041,703},{MLiSiGuoM,20042,580),{“wangYin”,20043,680},{"SunDan”,20044,550},{“Penghua”,20045,537}},*p[5],*t;intij;fbr(i=0;i<5;i++)p[i]=&s[i];fbr(i=0;i<4;i-H-)fbr(j=i+l;j<5;j++)if|p[i]->Score>p[j]->Score){t=p[i];p[i]=pU];pU]=t;}printff'5d%d 25M,s[1].Score,p[1]->Score);}执行后输出结果是A)550550B)680680C)580550D)580680(48)有以下程序#includcstructNODE)intnum;structNODE*next;main(){structNODE*p,*q,*r;intsum=0;p=(structNODE*)malloc(sizeof(structNODE));q-(structNODE*)malloc(sizeof(structNODE));r=(structNODE*)malloc(sizeof(structNODE));p->num=l;q->num=2;r->num=3;p->next=q;q->next=r;r->next=NULL; 26sum+=q->next->num;sum+=p->num;printfC*%d 27”,sum);}执行后的输出结果是A)3B)4C)5D)6(49)有以下程序#includemain(){FILE*fp;inti,k=0,n=0;fj?=fdpen(“dl.dar',"w");fbr(i=l;i<4;i++)fprintfi;fp/,%d,\i);fclose(ip);fp=fbpen(tkd1.dat'\'Y,);fscanflfp?,%d%d,,,&k,&n);printf{kt%d%d 28,\k,n);fclosc(fp);)执行后输出结果是A)12B)1230C)123D)00(50)有以下程序(提示:程序中心8k(m,-2L*sizcof(int),SEEK_END);语句的作用是使位置指针从文件尾向前移2*sizco仙n)字节)#includemain(){FILE*fp;inti,a[4]={l,2,3,4},b;3=fbpen("data.dat"「wb”);fbr(i=0;i<4;i+-h)fwrite(&a[i],sizeof(int),l,fp);fclose(fp);fp=fdpen("data.dat”,“rb”);feeek(fp,-2L*sizeof(int).SEEK_END);fi*ead(&b,sizeof(int),1,m);/*从文件中读取sizeofifint)字节的数据到变量b中*7fclose(fp);printf("%d 29”,B);)执行后榆出结果是A)2B)IC)4D)3二、填空题(每空2分,共40分)请将每一个空的正确答案写在答题卡【1]至【20】序号的横线上,答在试卷上不得分.(1)E-mail地址由用户名和域名两部分组成,这两部分的分隔符为【I】。(2)计算机网络分为广域网和局域网,因特网属于【2】。(3)从Windows环境进入MS-DOS方式后,返回Windows环境的DOS命令为【3】.(4)在Windows环境下,只要在“开始”菜单中单击【4】选项,就可以查阅最近打开过的文档清单。(5)计算机的运算速度可以用MIPS来描述,1MIPS是指每秒执行(51条指令。(6)已知字符A的ACSII码值为65,以下语句的榆出结果是【6】charch='B';print/%%d 30*\ch,ch);(7)有以下语句段intnl=10,i)2=20;printfC[7]M,nl.n2);要求按以下格式榆出nl和n2的值,每个输出行从第一列开始,请填空。nl=10n2=20(8)有以下程序main(){intt=l,i=5;fbr(;i>=0;i-)t*=i;printfT%d 31”,t); 32执行后输出结果是[8】o(9)有以下程序main(){intn=0,m=l,x=2;if(!n)x-=l;iRm)x-=2;ifi(x)x・=3;printf("%d 33'',x);)执行后榆出结果是【9】.(10)有以下程序#includemain(){charchl,ch2;intn1,n2;chl=gctchar();ch2=getchar();nl=chl-k0 342=nl*10+(ch2-'O');printf(tt%d 35, 362);)程序运行时输入:12V回车〉,执行后输出结果是【10】.(11)有以下程序void出inty,int*x){y=y+*x;*x=*x+y;}main(){intx=2,y=4;fly,&x);print«fc4%d%d 37M,x,y);)执行后榆出的结果是【11】.(12)函数fun的功能是计算xndoublefiin(doublcx,intn){inti;doubley=l;fdr(i=l;i<=n;i-H-)y=y*x;returny;}主函数中已经正确定义m,a,b变量并赋值,并调用fun函数计算:m=a4+b4-(a+B)3。实现这一计算的函数调用语句为【12].(13)下面rotate函数的功能是:将n行n列的矩阵A转置为A',例如:1234159135678261014当A=910】112则A'=37111513141516481216请填空#defineN4voidrotate(inta[][N]){intijt;fbr(i=0;i 38(14)以下sslrcpy()函数实现字符串复制,即将I所指字符串复制到s所指向内存空间中,形成一个新的字符串s。请填空。voidsstrcpy(char*s,char*t){while(*s++=[15]);}main(){charstrl[100],str2[]="abcdef]gh”;sstrcpy(strl,str2);primR"%s 39”,strl);}(15)下列程序的运行结果是:【16】#includechar*ss(char*s){returns+strlcn(s)/2;}main(){char*p,*str=Mabcdefgh,\p=ss(str);printf(tt%s 40,,,p);)(16)下面程序的运行结果是:【17】intfl;inta[],intn){if(n>l)returna[0]+f(&a[l],n-l);elsereturna[0];}main(){intaa[3]={1,2,3},s;s=f<&aa[0],3);printR"%d 41”,s);(17)以下程序中给指针p分配三个double型动态内存单元,请埴空。#includemain(){double*p;p=(double*)mallocf[18]);p[0]=1.5;p[l]=2.5;p[2]=3.5;printf(u%f%f%f 42,,,p[O],p[1],p[2]);}(18)以下程序的运行结果是【19】#includetypedefstructstudent{charname[10];longsno;floatscore;}STU;main(){STUa={4bzhangsan,,,2001,95},b={“Shangxian”,2002,90},c={“Anhua”.2003,95},d,*p=&d:d=a;if(strcmp(a.namc,b.namc)>0)d=b;iftstrcmp(c.name,d.name)>0)d=c;printf(t4%ld%s 43,,,d.sno,p->namc);}(19)以下sum函数的功能是计算下列级数之和。S=1+x+x2/2!+x3/3!++xn/n! 44请给函数中的各变量正确赋初值Vdoublesum(doublex,intn){inti;doublea,b,s;[20]fbr(i=l;i<=n;i-H-){a=a*x;b=b*i;s=s+a/b;}returns;2004年4月全国计算机等级考试二级C语言笔试参考答案一.选择题1-10:DBCCBADCAD11-20:BBCACDBCDA21~30:ACBDDADDCD31~40:CBADBACADA41~50:ABCCDACBBD二.填空题1、@2、广域网3、EXIT或exit4、文档5、百万条或一百万条或1000000条6、B667、n1=%d 45n2=%d8、09,-410、1211、8412、fun(a,4)+fun(b,4)-fun(a+b,3);13、j<=i14、a[i]U]=a[j][i]15、*t++16、617、efgh18、3*sizeof(double)19、2002Shangxian20、a=1.0;b=1.0;s=1.0; 462004年9月全国计算机等级考试二级C语言笔试试题(含参考答案)2004年9月一、选择题(⑴〜(40海小题1分,(41)〜(55)每小题2分,共60分)下列各题A)、B).C),D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分.1.与十进制数200等值的十六进制数为A)A8B)A4C)C8D)C42.DOS文件系统的组织结构属于A)星形结构B)网形结构C)环形结构D)树形结构3.对存储器按字节进行编址,若某存储器芯片共有10根地址线,则该存储器芯片的存储容量为A)1KBB)2KBC)4KBD)8KB4.在DOS环境下,代表键盘和显示器的设备文件名为A)PRNB)CONC)NULD)LPT5.计算机网络的主要特点是A)运算速度快B)运算精度高C)资源共享D)人机交互6.磁盘处于写保护状态时其中的数据A)不能读出,不能删改B)可以读出,不能删改C)不能读出,可以删改D)可以读出,可以删改7.从Windows环境进入MS-DOS方式后,返回Windows环境的DOS命令为A)EXITB)QUITC)RETD)MSDO8.在Windows环境下,若资源管理器左宣传品中的某文件夹左边标有“+”标记,则表示A)该文件夹为空B)该文件夹中含有子文件夹C)该文件夹中只包含有可执行文件D)该文件夹中包含系统文件9.在Windows菜单中,喑淡的命令名项目表示该命令A)暂时不能用B)正在执行C)包含下一层菜单D)包含对话框10.在Windows环境下,单击当前窗口中的按钮“X"(右上角的关闭按钮),其功能是A)将当前应用程序转为后台运行B)退出Windows后再关机C)终止当前应用程序的运行D)退出Windows后重新启动计算机11.用C语言编写的代码程序A)可立即执行B)是一个源程序C)经过编译即可执行D)经过编译解释才能执行12.结构化程序由三种基本结构组成,三种基本结构组成的算法A)可以完成任何复杂的任务B)只能完成部分复杂的任务C)只能完成符合结构化的任务D)只能完成一些简单的任务13.以下定义语句中正确的是A)chara='A'b='B';B)floata=b=10.0;C)inta=10,*b=&a;D)float*a,b=&a;14.下列选项中,不能用作标识符的是 47A)1234B)12C)int2D)2int1.有以下定义语句doublea,b;intw;longc;若各变量已正确赋值,则下列选项中正确的表达式是A)a=a+b=b-H-B)w%(int)a+b)C)(c+w)%(int)aD)w=a=b;2.有以下程序main(){intm=3,n=4,x;x=-m-H-;x=x+8/-H-n;printf(M%d 48M,x);}程序运行后的输出结果是A)3B)5C)-lD)-23.有以下程序main(){chara-a',b;print(M%c/*,+4-a);primf("%c 49”,b=a++);}程序运行后的输出结果是A)b,bB)b,cC)a,bD)a,c4.有以下程序main(){intm=0256,n=256;printff'%0%o 50M,mn,n);)程序运行后的输出结果是A)02560400B)0256256C)256400D)4004005.有以下程序main(){inta=666,b=888;printf(,,%d 51M,a,b);)程序运行后的输出结果是A)错误信息B)666C)888D)666,8886.有以下程序main(){inti;fbr(i=0;i<3;i-H-)switch(i)defauItrprintfl'WJ);程序运行后的输出结果是A)022111B)021021C)000122D)0127.若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|vlO的是A)abs(x-y)<10B)x-y>-l0&&x-y<10C)@(x-y)<-lO||!(y-x)>10D)(x-y)*(x-y)<1008.有以下程序main()(inta=3,b=4,c=5,d=2;if(a>b)ifi(b>c)printf(”%d",d+++l);elseprintftu%d,',++d+l);printf(M%d 52,,,d);}程序运行后的榆出结果是A)2B)3C)43D)44 531.下列条件语句中,功能与其他语句不同的是A)if(a)printfl;,,%d 54,,,x);elseprintfl[,,%d 55,,,y);B)ilIa=0)printf(n%d 56,,,y);elseprintf(M%d 57*\x);C)if(a!=0)printfC%d 58”,x);elseprintf(M%d 59M,y);D)if(a=0)printf(n%d 60H,x);elseprintft,'%d 61,\y);2.有以下程序main(){inti=O,x=O;for(;;)(if(i=3||i=5)continue;if(i=6)break;i++;s+=i;);printf(,,%d 62',,s);}程序运行后的输出结果是A)10B)13C)21D)程序进入死循环3.若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是BA)fbr(i=l,p=l;i<=5;i-H-)p*=i;B)fbr(i=l;iv=5;i++){p=l;p*=i;}C)i=l;p=l;while(i<=5){p*=i;i++;}D)i=l;p=l;do{p*=i;i++;)while(i<=5);4.有以下程序main(){chara5b,c,d;scanfi("%c,%c,%d,%dK,&a,&b,&c,&d);printfl;Mc,%c,%c,%c 63H,a,b,c,d);}若运行时从键盘上输入:6,5,65,66〈回车〉.则输出结果是A)6,5,A,BB)6,5,65,66C)6,5,6,5D)6,5,6,627)以下能正确定义二维数组的是A)inta[][3];B)inta[][3]=2{2*3|;C)inta[][3]={};D)inta[2][3]={{1},{2},{3,4}};28.有以下程序intf(inta){returna%2;}main()(ints[8]={l,3,5,2,4,6},i,d=0;fbr(i=O;f(s);i++)d+=s;printfIM%d 64",d);)程序运行后的输出结果是A)9B)llC)19D)2129.若有以下说明和语句,intc[4][5],(*p)[5];p=c;能正确引用c数组元素的是A)p+1B)*(p+3)C)*(p+l)+3D)*(p[0]+2]) 6528.有以下程序main(){inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=p;p=q;q=r;printfl;M%d,%d,%d,%d 66M,*p,Mq,a,b);)程序运行后的输出结果是A)8,7,8,7B)7,8,7,8C)8,7,7,8D)7,8,8,731.S12和s2已正确定义并分别指向两个字符串。若要求:当si所指串大于s2所指串时,执行语句S;则以下选项中正确的是A)if(sl>s2)S;B)if(strcmp(sl,s2))S;C)if(strcmp(s2,sl)>0)S;D)iRstrcmp(sl,s2)>0)S;32.设有定义语句intx[6]=<2,4,6,8,5J},*p=x,i;要求依次输出x数组6个元素中的值,不能完成此操作的语句是A)fbr(i=0;i<6;i-H-)printf(,,%2d,,,*(p++));B)fbr(i=0;i<6;i-H-)printf(h%2dM,*(p4-i));C)fbr(i=0;i<6;i-H-)printftH%2dM?p-H-);D)for(i=O;i<6;i++)printfl:M%2d,,,(*p)++);33.有以下程序#includemain(){inta[]=<1,23,4,5,6,7,8,9,10,11,12,},*p=a+5,*q=NULL;*q=*(p+5);printf(M%d%d 67M,*p?l);}程序运行后的输出结果是A)运行后报错B)66C)611D)51034有以下定义和语句inta[3][2]={l,2,3,4,5,6,},*p[3];P(0]=a[l];则*p[0]+l)所代表的数组元素是A)a[0][l]B)a[l][0]C)a[l][l]D)a[l][2]35.有以下程序main()(charstr[][l0]=「China”,“Beijing"},*p=str;printfl;M%s 68M,p+10);}程序运行后的输出结果是A)ChinaB)BejingC)ngD)ing36.有以下程序main(){chars[]=”ABCD”,*p;fbr(p=s+l;p〈S+4;PH)PRINTF("%S\N”.P);}程序运行后的输出结果是A)ABCDB)AC)BD)BCDBCDBCCDCDCDDDD37.在函数调用过程中,如果函数fiinA调用了函数fiinB,函数fiinB又调用了函数funA,则A)称为函数的直接递归调用B)称为函数的间接递归调用C)称为函数的循环调用D)C语言中不允许这样的递归调用38.已有定义:inti,a[10],*p;,则合法的赋值语句是A)p=100;B)p=a[5];C)p=a[2]+2;D)p=a+2;39.以下叙述中正确的是A)局部变量说明为static存储数,其生存期将得到延长B)全局变量说明为static存储类,其作用域将被扩大C)任何存储类的变量在未赋初值时,其值都是不确定的D)形参可以使用的存储类说明符与局部变量完全相同40.设有定义语句:charc1=92,c2=92;,则以下表达式中值为零的是A)clAc2B)cl&c2C)~c2D)cl|c2 6935.程序中对fun函数有如下说明void*fun();此说明的含义是:A)fun了数无返回值B)ftin函数的返回值可以是任意的数据类型C)fiin函数的返回值是无值型的指针类型D)指针firn指向一个函数,该函数无返回值36.有以下程序main(){chars[]nYes 70/NoM,*ps=s;puts(ps+4);*(ps+4)=0;puts(s);}程序运行后的输出结果是A)n/NoB)/NoC)n/NOD)YesYesYes/No/No/NoYes37.有以下程序main(){unsignedinta;intb=-l;a=b;printfT'%u”,a);}程序运行后的输出结果是A)-lB)65535C)32767D)-3276838.有以下程序voidfiin(int*a,intijntj){intt;ififivj){t=a;a=a|j];a|j]=t;i++;j-;fun(a,i,j);main()(intx[]=<2,6,18},i;fun(x,0,3);fbr(i=0;i<4;i-H-)printf(M%2d,,,x);printfCXn'1);}程序运行后的输出结果是A)l268B)8621C)8162D)861239.有以下说明和定义语句structstudent{intage;charnum[8];1;stmetstudentstu[3]={{20,n200401H},{21,,,200402u},{10\9,"200403,,}};structstudent*p=stu; 71以下选项中引用结构体变量成员的表达式错误的是A)(p++)->numB)p->numC)(*p).numD)stu[3].agc35.有以下程序mina(){intx[]={13,5,7,2,4,6,0J,ij,k;fdr(i=0;i<3;i-H-)for(j=2;j>=iu-)iRxU+l]>x[jD{Efl;x[j]rU+l];xLj+l]=k;}for(i=0;i<3;i-H-)for(j=4广7・ijH)if(x[j+l]>x[j]){k==x[j];x[j]=x[j+1];x[j+1]=k;}fbr(i=0;i<3;i-H-)fbr(j=4d<7-iJ-H-)if(x[j]>x|j+l]){k=xO];x[j]=x[j+l];x[j+l]=k;}for(i=0;i<8;i++)printf("%d”,x);printfl,, 72H);}程序运行后的输出结果是:A)75310246B)01234567C)76310462D)1357024636.有如下程序#includcmain(){FILE*fpl;由l=fbpeu("fl.txt","w”);fprintRfpl;'abc");fclose(fpl);}若文本文件fl.txt中原有内容为:good,则运行以上程序后文件fl.txt中的内容为A)goodabcB)abcdC)abcD)abcgood48〜50.以下程序的功能是:建立一个带有头结点的单向链表,并将存储在数组中的字符依次转储到链表的各个结点中,请从与下划线处号码对应的一组选若中选择出正确的选项。#includestuctnode{chardata;structnode*next;};378)CreatList(char*s){structnode*h,*p,*q);h=(structnode*)malloc(sizcof(structnode));p=q=h;whiIe(*s!=,\0,){p=(structnode*)malloc(sizcof(structnode));p->data=(49);q->next=p;q=(50);S-H-;}p->next=,\0,;returnh;)main(){charstr[]=Hlinklist”;structnode*head;head=CreatList(str); 73(48)A)char*B)structnodeC)structnode*D)char(49)A)*sB)sC)*s-H-D)(*s)+4-(50)A)p->nextB)pC)sD)s->next二、填空题:(每空2分,共40分)35在64位高档微机中,CPU能同时处理个字节的二进制数据。36E-mail地址由域名和用户名两部分组成,它们之间用@分隔,其中在@后面的部分是37Windows窗口一般由标题栏、菜单栏、控制按钮等部分组成。为了移动窗口,则要用鼠标拖动38计算机软件分为系统软件和应用软件,UNIX系统属于o39在Windows环境下,为了将屏幕内容存入剪贴板,应按犍,40以下程序段的输出结果是inti=9;printfi(,,%o 74',3);41以下程序运行后的输出结果是omain(){inta,b,c;a=25;b=025;c=0x25;printfC%d%d%d 75\a,b,c);}42以下程序运行后的输出结果是。main(){intp[7>{ll,13,14,1536,17,18);inti=0j=0;while(i<7&&p%2==l)j+邛[i++];printsM%d 76Mj);}43以下程序运行后的输出结果是。main()jintx=l,y=O,a=O,b=O;switch(x){case1:switch(y){case0:a-H-;break;casel:b-*-+;break;}case2:a++;b++;break;}printfl"%d%d'n”,a,b);}44.以下程序运行后的输出结果是0main(){inta[4北4]={{123,4},{5,6,7,8},{11121314},{15/6/7,18}};inti=0,j=0,s=0;while(i++<4)ifl;i=2||i==4)continue; 77j=0;do{s+=a[j];j-H-;}while(j<4);}printf("%d 78”,s);}35.以下程序运行后的输出结果是.main(){chara[]="Language",b[]="Programe";char*pl,*p2;intk;p1=a;p2=b;fbr(k=0;k<=7;k-H-)iff*pl+k)=*(p2+k))printff%c”,*(p1+k));}36.以下程序运行后的输出结果是.main(){chara[]="123456789'\*p;inti=0;p=a;while(*p){if(i%2=0)p4-+;i-H-;}puts(a);}37.以下程序中,fbr循环体执行的次数是//defineN2#defineMN+l//defineKM+l*M/2main(){inti;fbr(i=l;i 79M,SunFun(10));SunFun(intn)(intx,s=0;fbr(x=0;x<=n;x++)s+=F();returns;}F(intx){return;}15.以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和。请填空。main(){inti,a[20],sun,count;suum=count=0; 80fbr(i=0;i<20;i-H-)scanf(,,%d,',);fro(i=0;i<20;i-H-){if(a>0){count-H-;sum+=;}}printf(,,suni=%d,count=%d 81',,sum,count);}15.以下程序中,函数sumColumM的功能是:求出M行N列二维数组每列元素中的最小值,并计算它们的和值。和值通过形参传回主函数输出。请埴空.#defineM2#dcfincN4voidSumColumMin(inta[M][N],int*sum){inti,j,k,s=O;fbr(i=O;i 82',,s);2004年9月二级C笔试答案选择题1-5CDABC6-10BABAC11-15BCCDC16-20DACBC21-25CADDB26-30ACADC31-35DDACB36-40DBDAA41-45CBBCD46-50ACCAB填空题1.82.域名3.标题栏4.系统软件5.PEINTSCREEN6.117.2521378.249.2110.9211.gae12.1*3*5*7*913.414.Xx*x+l15.&a[i]a[i]16.a[k][i]*sumx,&s 832005年4月全国计算机等级考试二级C语言笔试试题(含参考答案) 842005年4月一、选择题((1)~(10)每小题2分,(11)~(50)每小题1分,共60分)下列各题A).B).C),D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分.(1)数据的存储结构是指.A)存储在外存中的数据B)数据所占的存储空间量C)数据在计算机中的顺序存储方式D)数据的逻辑结构在计算机中的表示(2)下列关于栈的描述中错误的是.A)栈是先进后出的线性表B)栈只能顺序存储C)栈具有记忆作用D)对栈的插入与删除操作中,不需要改变栈底指针(3)对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是.A)冒泡排序为n/2B)冒泡排序为nC)快速排序为nD)快速排序为n(n-l)/2(4)对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为.A)log2nB)n/2C)nD)n+1(5)下列对于线性链表的描述中正确的是.A)存储空间不一定是连续,且各元素的存储顺序是任意的B)存储空间不一定是连续,且前件元素一定存储在后件元素的前面C)存储空间必须连续,且前件元素一定存储在后件元素的前面D)存储空间必须连续,且各元素的存储顺序是任意的(6)下列对于软件测试的描述中正确的是.A)软件测试的目的是证明程序是否正确B)软件测试的目的是使程序运行结果正确C)软件测试的目的是尽可能多地发现程序中的错误D)软件测试的目的是使程序符合结构化原则(7)为了使模块尽可能独立,要求.A)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强B)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱C)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱D)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强(8)下列描述中正确的是.A)程序就是软件B)软件开发不受计算机系统的限制C)软件既是逻辑实体,又是物理实体D)软件是程序、数据与相关文档的集合(9)数据独立性是数据库技术的重要特点之一,所谓数据独立性是指.A)数据与程序独立存放B)不同的数据被存放在不同的文件中C)不同的数据只能被对应的应用程序所使用D)以上三种说法都不对 85(10)用树形结构表示实体之间联系的模型是.A)关系模型B)网状模型C)层次模型D)以上三个都是(11)算法具有五个特性,以下选项中不属于算法特性的是.A)有穷性B)简洁性C)可行性D)确定性(12)以下选项中可作为C语言合法常量的是.A)-80.B)-080C)-8el,OD)-80.0e(13)以下叙述中正确的是.A)用C程序实现的算法必须要有输入和输出操作B)用C程序实现的算法可以没有榆出但必须要输入C)用C程序实现的算法可以没有榆入但必须要有榆出D)用C程序实现的算法可以既没有输入也没有输出(14)以下不能定义为用户标识符的是.A)MainB)_0C)_intD)sizeof(15)以下选项中不能作为合法常量的是.A)1.234e04B)1.234e0.4C)1.234e+4D)1.234e0(16)数字字符0的ASCII值为48,若有以下程序main(){chara=T,b='2printfl;M%c/\b+4-);printfV'%d 86”,b・a);|程序运行后的输出结果是.A)3,2B)50,2C)2,2D)2,50(17)有以下程序main(){intm=12,n=34;printfl"%d%d”,m++,++n);printf(M%d%d 87,,,n-H-,-H-m);)程序运行后的输出结果是。A)12353514B)12353513C)12343514D)12343513(18)有定义语句:intb;charc[10];,则正确的榆入语句是»A)scanflH%d%sM,&b,&c);B)scanf(H%d%s,\&b,c);C)scanff%d%s”,b,c);D)scanf(',%d%s,',b,&c);(19)有以下程序main(){intm,n,p;scanf(Mm=%dn=%dp=%d,\&m,&n,&p);printf(,,%d%d%d 88',,m,n,p);}若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的榆入是,A)m=l23n=456p=789B)m=123n=456p=789C)m=123,n=456,p=789D)123456789(20)有以下程序main() 89{inta,b,d=25;a=d/10%9;b=a&&(-l);printf(M%d,%d 90**,a,b);}程序运行后的输出结果是.A)6,1B)2,1C)6,0D)2,0(21)有以下程序main(){inti=lj=2,k=3;if(i++=1&&(++j=31|k++==3))printfl”%d%d%d 91*\ij,k);程序运行后的输出结果是。A)123B)234C)223D)233(22)若整型变量a、b、c、d中的值依次为:1、4、3、2。则条件表达式aA)1B)2C)3D)4(23)有以下程序main()intp[8]={ll,12,13,14,15,16,17,18},i=0J=0;while(i++<7)if(p[i]%2)j+=p[i];printf{,,%d 92,,j);}程序运行后的输出结果是。A)42B)45C)56D)60(24)有以下程序main(){chara[7]=Ma0\0a0\0";intij;i=sizeof(a);j=strlen(a);printfln%d%d 93M,ij);}程序运行后的输出结果是.A)22B)76072D)62(25)以下能正确定义一维数组的选项是。A)inta[5]={0,1,23,4,5};B)chara[]={0,1,2,345};C)chara={D)inta[5]=M0123w(26)有以下程序intfl(intx,inty){returnx>y?x:y;}intf2(intx,inty){returnx>y?y:x;}main()inta=4,b=3,c=5,d=2,e,£g;e=f2(fl(a,b),fl(c,d));f=fl(f2(a,b),f2(c,d));g=a+b+c+d-c-f;printf(”%d,%d,%d 94”,e£g);} 95程序运行后的输出结果是.A)4,3,7B)3,4,7C)5,2,7D)2,5,7(27)已有定义:chara[]=,,xyzH,b[]={,xVyVz,}b以下叙述中正确的是•A)数组a和b的长度相同B)a数组长度小于b数组长度C)a数组长度大于b数组长度D)上述说法都不对(28)有以下程序voidf(int*x,int*y){intt;t=*x;*x=*y;*y=t;)main(){inta[8]={1,2,345,6,7,8},i,*p,*q;p=a;q=&a[7];while(p{Rp,q);p++;q・・;}fbr(i=O;i<8;i++)printf(M%d,,,,a[i]);}程序运行后的输出结果是.A)823,4,5,6,7,1,B)5,6,7,81,2,3,4,C)1,2,345,6,7,8,D)8,7,6,54,3,2,1,(29)有以下程序main()(inta[3][3],*p,i;p=&a[0][0];fbr(i=0;i<9;i++)p[i]=i;fdr(i=O;i<3;i++)printf(M%d,',a[l][i]);}程序运行后的输出结果是.A)012B)123C)234D)345(30)以下叙述中错误的是。A)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出B)数组名代表的是数组所占存储区的首地址,其值不可改变C)当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界''的出错信息D)可以通过赋初值的方式确定数组元素的个数(31)有以下程序#defineN2()fiin(inta[],intn,intin){intij;fbr(i=in;i>=n;i-)a[i+l]=a[i];main()inti,a[N]={1,23,4,5,6,7,8,9,10);fun(a,2,9);fbr(i=0;i<5;i++)printftH%d",a[i]);}程序运行后的输出结果是. 96A)10234B)12344C)12334D)12234(32)有以下程序main()(inta[3][2]={0},(*ptr)[2],ij;fbr(i=0;i<2;i++){ptr=a+i;scanf(,,%d,,,ptr);ptr-H-;}fbr(i=0;i<3;i++){for(j=0j<2u++)printf(w%2d«,a[i][j]);printf(,, 97n);若运行时输入:123V回车>,则输出结果是。A)产生错误信息B)I0C)12D)I0203020000030(33)有以下程序prt(int*m,intn){inti;fbr(i=0;i}main()(inta[]={l,2,3,4,5},i;prt(a,5);fbr(i=0;i<5;i++)printfl;"%d,",a[i]);)程序运行后的输出结果是.A)1,2,3,4,5,B)2,3,4,5,6,03,4,5,6,7,D)2,3,4,5,1,(34)有以下程序main(){inta[]={l,23,4,5,6,7,8,9,0},*p;fbr(p=a;p}程序运行后的输出结果是.A)1,2,3,4,5,6,7,8,9,0,B)2,3,4,5,6,7,8,9,10,1,00,1,2,3,4,5,6,7,8,9,D)1,1,1,1,1,1,1,1,1,1,(35)有以下程序//defineP3voidF(intx){retum(P*x*x);}main(){printfT%d 98”,F(3+5));}程序运行后的输出结果是.A)192B)29C)25D)编译出错(36)有以下程序main(){intc=35;printf(,,%d 99M,c&c);}程序运行后的输出结果是.A)0B)70C)35D)1(37)以下叙述中正确的是.A)预处理命令行必须位于源文件的开头B)在源文件的一行上可以有多条预处理命令C)宏名必须用大写字母表示D)宏替换不占用程序的运行时间 100(38)若有以下说明和定义uniondt{inta;charb;doublec;}data;以下叙述中错误的是。A)data的每个成员起始地址都相同B)变量data所占的内存字节数与成员c所占字节数相等C)程序段:data.a=5;printf("%f 101”,data.c);输出结果为5.000000C)data可以作为函数的实参(39)以下语句或语句组中,能正确进行字符串赋值的是.A)char*sp;*sp=,,right!n;B)chars[10];s-*right!M;C)chars[10];*s="right!”;D)char*sp=,'right!M;(40)设有如下说明typedefstructST{longa;intb;charc[2];}NEW;则下面叙述中正确的是。A)以上的说明形式非法B)ST是一个结构体类型C)NEW是一个结构体类型D)NEW是一个结构体变量(41)有以下程序main(){inta=l,b;fdr(b=1;b<=l0;b-H-){if(a>=8)break;if(a%2=1){a+=5jcontinuc;}a-=3;}printff%d 102”,b);}程序运行后的输出结果是。A)3B)405D)6(42)有以下程序main(){chars[]=n159"/p;p=s;printf(',%c,\*p++);printf1,,%c,,/p-w-);|程序运行后的输出结果是.A)15B)16C)12D)59(43)有以下函数fun(char*a,char*b){while((*a!=,\O')&&(*b!-*\O,)&&(*a=*b)){a4-»-;b-H-;}retumf*a-*b);}该函数的功能是.A)计算a和b所指字符串的长度之差B)将b所指字符串连接到a所指字符串中C)将b所指字符串连接到a所指字符串后面D)比较a和b所指字符串的大小(44)有以下程序main(){intnum[4][4]={{1.2,3.4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j;fbr(i=0;i<4;i++){fbr(j=O;jv=i;jH)printfr^c";');fbr(j=printflt'%4d 103um[i][j]); 104printfCH);)}若要按以下形式输出数组右上半三角1234678111216则在程序下划线处应填入的是.A)i-1B)iC)i+lD)4-i(45)有以下程序point(char*p){p+=3;}main(){charb[4]={,a;rb,,*c,;d,},*p=b;point(p);printf(,,%c 105w,*p);)程序运行后的输出结果是。A)aB)bC)cD)d(46)程序中若有如下说明和定义语句charfiin(char*);main()fchar*s="one",a[5]={0},(*flX)=fi>n,ch;}以下选项中对函数fun的正确调用语句是.A)(♦fl)(a);B)*n(*s);C)fiin(&a);D)ch=*fl(s);(47)有以下结构体说明和变量定义,如图所示:structnode{intdata;structnode*ncxt;}*p,*q,*r;datanextdatanextdatanextpqr现要将q所指结点从链表中删除,同时要保持链表的连续,以下不能完成指定操作的语句是.A)P->next=q->ncxt;B)p->ncxt=p->next->ncxt;C)p->next=r;D)p=q->next;(48)以下对结构体类型变量td的定义中,错误的是.A)typcdefstructaaB)structaa{intn;{intn;floatm;floatm;}AA;}td;AAtd;structaatd;C)structD)struct{intn;{intn;floatm;floatm;}aa;}td;structaatd;(49)以下与函数自eek(用,OL,SEEK_SET)有相同作用的是。A)feof(fp)B)ftell(fp)C)fgetc(fp)D)rewind(fp)(50)有以下程序//include 106voidWriteStr(char*fh,char*str){FILE*fp;Q)=fbpen(fii,ww,,);iputs(str,fp);fclose(fp);)main()(WriteStrCH.dat”,“start”);WriteStr(,,tl.dat,,;,endM);}程序运行后,文件tl.dat中的内容是oA)startB)endC)startendD)endrt二、填空题(每空2分,共40分)请将每空的正确答案写在【1】至【20】序号的横线上,答在试卷上不得分。(1)某二叉树中度为2的结点有18个,则该二叉树中有【1】个叶子结点。(2)在面向对象方法中,类的实例称为【2】.(3)诊断和改正程序中错误的工作通常称为【3】.(4)在关系数据库中,把数据表示成二维表,每一个二维表称为[4]。(5)问题处理方案的正确而完整的描述称为[5].(6)以下程序运行时,若从键盘输入:102030〈回车),榆出的结果是[6].#includemain(){inti=0j=0,k=0;scanfT%d%*d%d”&i,&j,&k);printf(,,%d%d%d 107M,ij,k);(7)以下程序运行后的输出结果是【7】.#defineS(x)4*x*x+]main(){inti=6j=8;printf("%d 108”,S(i+j));)(8)以下程序运行后的输出结果是[8】。main(){inta=3,b=4,c=5,t=99;if(biRaprintfln%d%d%d 109H,a,b,c);}(9)以下程序运行后的输出结果是【9】.main(){inta,b,c;a=10;b=20;c=(a%b<1)||(a/b>1);printsM%d%d%d 110M,a,b,c);)(10)以下程序运行后的输出结果是【10】.main(){charcl,c2;fbr(c1=,0,,c2='9,;c1printRW);(11)已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入:B33〈回车〉,则输出结果是[11]#includc 111main(){chara,b;a=getchar();scanf(,,%dM,&b);a=a-'A,+,0';b=b*2;printflM%c%c 112”,a,b);)(12)以下程序中,ftin函数的功能是求3行4列二维数组每行元素中的最大值。请填空。voidfun(int,int,int(*)[4],int*);main(){inta[3][4]={{12,41,36^8},{19,33,15,27},{3,27,19,l}),b[3],i;fiin(3,4,a,b);fbr(i=0;i<3;i++)printf("%4d”,b[i]);printfC' 113H);}voidfun(intm,intnjntar[][4],int*br){intij,x;fbr(i=O;i{x=ar[i][0];fbr(j=OJ[12]=x;(13)以下程序运行后的输出结果是【13】.voidswap(intx,inty){intt;t=x;x=y;y=t;printf(,,%d%dM,x,y);main(){inta=3,b=4;swap(a,b);printf(,,%d%dn,a,b);(14)以下程序运行后的输出结果是114】.#includevoidfun(char*s,intp,intk){inti;fbr(i=p;i}main(){chars[]=nabcdefjgn;fun(s,3,strlen(s));puts(s);}(15)以下程序运行后的输出结果是[15]。#includemain(){charch0=nabc';x[3][4];inti;fbr(i=0;i<3;i-H-)strcpy(x[i],ch);fbr(i=O;i<3;i++)printf(M 114H);)(16)以下程序运行后的输出结果是116】.fun(inta){intb=0;staticintc=3;retum(a+b+c); 115)main(){inti,a=5;fbr(i=O;i<3;i++)printftM%d%dM,i,fiin(a));printfl:%”);}(17)以下程序运行后的输出结果是【17】.structNODE{intk;structNODE*link;};main(){structNODEm[5],*p=m,*q=m+4;inti=0;while(p!=q){p->k=++i;p++;q->k=i++;q-;q->k=i;fbr(i=0;i<5;i-H-)printfl:,,%dH,m[i].k);printfC'Xn");(18)以下程序中函数huiwcn的功能是检查一个字符串是否是回文,当字符串是回文时,函数返回字符串:yes!,否则函数返回字符串:no!,并在主函数中输出,所谓回文即正向与反向的拼写都一样,例如:adgda.请填空•#includechar*huiwen(char*str){char*pl,*p2;inti,t=O;pl=str;p2=[18];fbr(i=O;i<=strlen(str)/2;i-H-)if(*p1-H-!=*p2-){t=1;break;}if([19])retumC'yes!”);elseretum("no!");}main(){charstr[5O];printf(wInput:M);scanf(,,%sM,str);printf("%s 116”,[20]);2005年4月笔试试卷参考答案—.选择题1-5DBDCA6-10CBDDC11-15BACDB16-20CABAB21-25DABCB26-30ACDDC31-35CBBAD36-40CDCDC41-45BADBA46-50ADCDB二、填空题(1)[I]19⑵【2】对象⑶【3】程序调试 117(4)(41关系(5)[5]算法(6)[6]10300(7)[7]81(8)[S]4599(9)[9]10200(10)[10]0918273645(11)[1111B(12)[12]br[i](13)[13]4334(14)[14]abefg(15)[15]abcbcc(16)[161010111212(17)(17113431(18)(18]strt-strlen(str)-1[19]t=0或!t〔20】huiwen(str)全国计算机等级考试二级c语言笔试试题(含参考答案)2005年9月 118一.选择题((1)—(10)每题2分,(11)—(50)每题1分,共60分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上答在试卷上不得分.(1)下列叙述中正确的是A)程序设计就是编制程序B)程序的测试必须由程序员自己去完成C)程序经调试改错后还应进行再测试D)程序经调试改错后不必进行再测试(2)下列数据结构中,能用二分法进行查找的是A)顺序存储的有序线性表B)线性链表C)二叉链表D)有序线性链表(3)下列关于栈的描述正确的是A)在栈中只能插入元素而不能删除元素B)在栈中只能删除元素而不能插入元素C)栈是特殊的线性表,只能在一端插入或删除元素D)栈是特殊的线性表,只能在一端插入元素,而在另一端删除元素(4)下列叙述中正确的是A)一个逻辑数据结构只能有一种存储结构B)数据的逻辑结构属于线性结构,存储结构属于非线性结构C)一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率D)一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率(5)下列描述中正确的是A)软件工程只是解决软件项目的管理问题B)软件工程主要解决软件产品的生产率问题C)软件工程的主要思想是强调在软件开发过程中需要应用工程化原则D)软件工程只是解决软件开发中的技术问题(6)在软件设计中,不属于过程设计工具的是A)PDL(过程设计语言)B)PAD图C)N-S图D)DFD图(7)下列叙述中正确的是A)软件交付使用后还需要进行维护B)软件一旦交付使用就不需要再进行维护C)软件交付使用后其生命周期就结束D)软件维护是指修复程序中被破坏的指令(8)数据库设计的根本目标是要解决A)数据共享问题B)数据安全问题C)大量数据存储问题D)简化数据维护(9)设有如下关系表:RSTABCABCABC112313112223223313则下列操作中正确的是A)T=RCISB)T=RUSC)T=RxSD)T=R/S(10)数据库系统的核心是 119A)数据模型B)数据库管理系统C)数据库D)数据库管理员(11)以下叙述中错误的是A)用户所定义的标识符允许使用关键字B)用户所定义的标识符应尽量做到“见名知意”C)用户所定义的标识符必须以字母或下划线开头D)用户定义的标识符中,大、小写字母代表不同标识(12)以下叙述中错误的是A)C语句必须以分号结束B)复合语句在语法上被看作一条语句C)空语句出现在任何位置都不会影响程序运行D)赋值表达式末尾加分号就构成赋值语句(13)以下叙述中正确的是A)调用primf函数时,必须要有输出项B)使用putchar函数时,必须在之前包含头文件stdio.hC)在C语言中,整数可以以十二进制、八进制或十六进制的形式输出D)调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码(14)以下关于函数的叙述中正确的是A)每个函数都可以被其它函数调用(包括main函数)B)每个函数都可以被单独编译C)每个函数都可以单独运行D)在一个函数内部可以定义另一个函数(15)若有语句:char,line[5];,以下叙述中正确的是A)定义line是一个数组,每个数组元素是一个基类型为char的指针变量B)定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组C)定义line是一个指针数蛆,语句中的*号称为间址运算符D)定义line是一个指向字符型函数的指针(16)有以下程序段typedefstructNODE{intnum;structNODE*next;}OLD;以下叙述中正确的是A)以上的说明形式非法B)NODE是一个结构体类型C)OLD是一个结构体类型D)OLD是一个结构体变量(17)以下叙述中错误的是C)C语言中对二进制文件的访问速度比文本文件快D)C语言中,随机文件以二进制代码形式存储数据C)语句FILEfp;定义了一个名为fp的文件指针D)C语言中的文本文件以ASCII码形式存储数据(18)当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是A)k%2B)k%2=lC)(k%2)!=0D)!k%2=l(19)以下不能正确计算代数式值的C语言表达式是A)l/3*sin(l/2)*sin(l/2)B)sin(0.5)*sin(0.5)/3C)pow(sin(0.5),2)/3D)l/3.0*pow(sin(1.0/2),2)(20)以下能正确定义且赋初值的语句是 120A)intnl=n2=10;B)charc=32;C)floatD)doublex=12.3E2.5;(21)以下程序的功能是:给r榆入数据后计算半径为r的圆面积s。程序在编译时出错。main()/♦Beginning♦/{intr;floats;scanfC'%d”,&r);s=*p*r*r;printft,'s=%f 121,,,s);}出错的原因是A)注释语句书写位置错误B)存放圆半径的变量r不应该定义为整型C)输出语句中格式描述符非法D)计算圆面积的赋值语句中使用了非法变量(22)设有定义:intk=l,m=2;floatf=7;,则以下选项中错误的表达式是A)k=k>=kB)-k++C)k%int(f)D)k>=f>=m(23)设有定义:inta=2,b=3,c=4;,则以下选项中值为0的表达式是A)(!a==l)&&(!b=0)B)(aC)a&&bD)a||(b+b)&&(c-a)(24)有以下程序段intk=0,a=l,b=2,c=3;k=ac?c:k;执行该程序段后,k的值是A)3B)2C)1D)0(25)设变量a、b、c、d和y都已正确定义并赋值。若有以下if语句if(aif(c=d)y=0;elsey=l;该语句所表示的含义是A)B)C)D)(26)有以下程序段intn,t=l,s=0;scanf(M%dH,&n);do{s=s+t;t=t-2;}while(t!=n);为使此程序段不陷入死循环,从键盘榆入的数据应该是A)任意正奇数B)任意负偶数C)任意正偶数D)任意负奇数(27)设变量已正确定义,则以下能正确计算f=n!的程序段是A)f=0;B)f=l;fbr(i=l;i<=n;i++)f*=i;fbr(i=l;iC)f=l;D)fbr(i=n;i>l;i+4-)f*=i;fbr(i=n;i>=2;i—)f*=i;(28)设有定义:intnl=0,n2,*p=&n2,*q=&n1;»以下赋值语句中与n2=nl;语句等价的是A)*p=*q;B)p=q;C)*p=&nl;D)p=*q;(29)若有定义:intx=0,*p=&x;,则语句printff%d 122”,*p);的输出结果是A)随机值B)0C)x的地址D)p的地址(30)设函数fun的定义形式为voidftin(charch,floatx){...} 123则以下对函数ftm的调用语句中,正确的是A)fun(Mabcn,3.0);B)t=fun('D;16.5);C)fUn('65',2.8);D)fun(32,32);(31)有以下程序main(){inta[10]={12345,6,7,8,9,10},*片&a[3],*q=p+2;printR"%d 124",*p+*q);}程序运行后的输出结果是A)16B)10C)8D)6(32)有以下程序main()(charp[]={*a;b,'c'},q[]=,'abcM;printf(,,%d%d 125M,sizeof(p),sizeof(q));};程序运行后的输出结果是A)44B)33034D)43(33)有以下程序#definef(x)(x*x)main(){intil,i2;il=f(8)/f(4);i2=f(4+4)/n2+2);printf(M%d,%d 126u,il,i2);}程序运行后的输出结果是A)64.28B)4,4C)4,3D)64,64(34)有以下程序main(){charal-M*,a2-m';printfC'%c 127M,(al,a2));}以下叙述中正确的是A)程序输出大写字母MB)程序输出小写字母mC)格式说明符不足,编译出错D)程序运行时产生出错信息(35)有以下程序#includemain(){charcl=T,c2=2;cl=getcharO;c2=getchar();putchar(cl);putchar(c2);}当运行时输入:av回车》后,以下叙述正确的是A)变量cl被赋予字符a,c2被赋予回车符B)程序将等待用户输入第2个字符C)变量cl被赋予字符a,c2中仍是原有字符2D)变量cl被赋予字符a,c2中将无确定值(36)有以下程序main(){intk=5,n=0;while(k>0){switch(k) 128{default:break;case1:n+=k;case2:case3:n+=k;}k--;}printtV,%d 129*',n);)程序运行后的输出结果是A)0B)4C)6D)7(37)有以下程序main(){inta[]={246,8,10},y=0,x,*p;p=&a[l];fbr(x=1;x<3;x-h-)y+=p[x];printftM%d 130M,y);)程序运行后的输出结果是A)10B)11C)14D)15(38)有以下程序voidsort(inta[],intn){inti,j,t;fbr(i=O;ifbr(j=i+l;jif(a[i]}main(){intaa[10]={1,2,3,4,5,678,9.10},i;sort(aa+2,5);fbr(i=0;i 131M);}程序运行后的输出结果是A)1,2,3,4,5,6,7,8,9,10,B)1,2,7,6,3,4,5,8,9,10,C)1,2,7,6,5,4,3,8,9,10,D)1,2,9,8,7,6,5,4,3,10,(39)有以下程序voidsum(inta[]){a[0]=a[-l]+a[l]Jmain(){inta[10]={1,23,4,5,6,7,8,9,10J;sum(&a[2]);printf(,'%d 132M,a[2]);}程序运行后的输出结果是A)6B)7C)5D)8(40)有以下程序voidswapl(intc0[],intcl[]){intt;t=cO[0];c0[0]=cl[0];cl[O]=t;voidswap2(int*c0,int*cl){intt;t=*cO;*cO=*cl;*cl=t; 133}main(){inta[2]={3,5},b[2]={3,5};swap!(a,a+1);swap2(&b[0],&b[l]);printf("%d%d%d%d 134H,a[0],a[l],b[0],b[l]);}程序运行后的输出结果是A)3553B)533503535D)5353(41)有以下程序#includcmain(){char叩={n,V,V),q[10]={'a;'b;V);printf(,,%d%d 135M,strlcn(p),strlcn(q));}以下叙述中正确的是A)在给p和q数组置初值时,系统会自动添加字符串结束符,故榆出的长度都为3B)由于p数组中没有字符串结束符,长度不能确定;但q数组中字符串长度为3C)由于q数组中没有字符串结束符,长度不能确定;但p数组中字符串长度为3D)由于p和q数组中都没有字符串结束符,故长度都不能确定(42)有以下程序,其中函数f的功能是将多个字符串按字典顺序排序#includevoidftchar*p[],intn){char*t;intij;fbr(i=O;ifbr(j=i+l;jif(strcmp(p[i],p|j])>0){t=p[i];p[i]=p[j];PLi]=t;}}main(){char*p[5]={”abc”,"aabdWabbd\"dcdbe",“cd”};Rp.5);printf("%d 136",strlen(p[l]));}程序运行后的榆出结果是A)2B)3C)6D)4(43)有以下程序#includevoidf(char*s,char*t){chark;k=*s;*s=*t;*t=k;s++;t-;if(*s)f(s,t);)main()(charstr[10]=,,abcdefgH,*p;p=str+strlen(str)/2+l;flip,P-2);printf("%s 137",str);}程序运行后的输出结果是A)abcdefgB)gfedcbaC)gbcdefaD)abedcfg(44)有以下程序floatfl(floatn) 138{returnn*n;}floatf2(floatn){return2*n;}main(){float(*pl)(float)X*p2)(float),(*t)(float),yl,y2;pl=fl;p2=f2;yl=p2(pl(2.0));t=pl;pl=p2;p2=t;y2=p2(p1(2.0));printfT%3.0£%3,0f 139M,yl,y2);)程序运行后的输出结果是A)8,16B)8,8C)16,16D)4,8(45)有以下程序inta=2;intHintn){staticinta=3;intt=0;ifi[n%2){staticinta=4;t+=a++;}else{staticinta=5;t+=a++;}returnt+a-H-;}main(){ints=a,i;fbr(i=0;i<3;i++)s+=f(i);printfV'%d 140”,s);)程序运行后的输出结果是A)26B)28C)29D)24(46)有以下程序#includestructSTU{intnum;floatTotalScore;};voidfifstructSTUp){structSTUs[2]={{20044,550J,{20045,537)};p.num=s[l].num;p.TotalScore=s[l].TotalScore;}main(){structSTUs[2]={{20041J03},{20042,580}};Rs[0]);printf("%d%3.0f 141M,s[0].num,s[0].TotalScorc);程序运行后的榆出结果是A)20045537B)20044550C)20042580D)20041703(47)有以下程序#includestructSTU{charnamc[10];intnum;};voidftchar*name,intnum){structSTUs[2]={{MSunDan",20044},{MPenghuaM,20045)); 142num=s[0].num;strcpy(name,s[0].name);}main(){structSTUs[2]={{MYangSan,;20041},{"LiSiGuo”,20042}},*p;p=&s[l];f(p->name,p->num);printf("%s%d 143*\p->namc,p->num);(程序运行后的输出结果是A)SunDan20042B)SunDan20044C)LiSiGuo20042D)YangSan20041(48)有以下程序structSTU{charname[10];intnum;floatTotalScore;};voidRstructSTU*p){structSTUs[2]={r,SunDan,\20044,550!J,,Penghua,;20045,537}},*q=s;Hp;++q;*p=*q;}main(){structSTUs[3]={{HYangSan,\20041,703}t{MLiSiGuoM,20042,580));心);printf("%s%d%3.0f 144'\s[l].name,s[l].num,s[l].TotalScore);)程序运行后的输出结果是A)SunDan20044550B)Penghua20045537C)LiSiGuo20042580D)SunDan20041703(49)以下程序的功能是进行位运算main(){unsignedchara,b;a=7A3;b=-4&3;printft"%d%d 145'\a,b);}程序运行后的输出结果是A)43B)73070D)40(50)有以下程序#includcmain(){FILE*fp;inti,k,n;fp=fbpcn(ndata.dat",Mw+");fbr(i=l;i<6;i++){fprintf|fp,"%d”,i);ifli%3==0)fprintflfp,M 146H);}rewind(fp);fscanfijfp,M%d%dM,&k,&n);primff%d%d 147”,k,n);fclose(fp);)程序运行后的输出结果是A)00B)12345014D)I2二、填空题(每空2分,共40分) 148请将每一个空的正确答案写在答题卡【1】至【20】序号的横线上,答在试卷上不得分。(1)数据管理技术发展过程经过人工管理、文件系统和数据库系统三个阶段,其中数据独立性最高的阶段是【1】.(2)算法复杂度主要包括时间复杂度和【2】复杂度。(3)在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块(桩模块).其中【3】的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果。(4)一棵二叉树第六层(根结点为第一层)的结点数最多为[4]个。(5)数据结构分为逻辑结构和存储结构,循环队列属于【5】结构。(6)以下程序运行后的输出结果是[6】.main()jintx=0210;printfC%X 149n,x);}(7)以下程序运行后的输出结果是[7】.main(){inta=l,b=2,c=3;iRc=a)printfT%d 150”,c);elseprintf(,'%d 151,,,b);((8)已有定义:double*p;,请写出完整的语句,利用malloc函数使p指向一个双精度型的动态存储单元【8】(9)以下程序运行后的输出结果是【9】.main(){charc;intn=100;floatf=10;doublex;x=f*=n/=(c=50);printfl;*'%d%f 152”,n,x);}(10)以下程序的功能是计算:s=l+12+123+1234+12345。请填空。main(){intt=O,s=O,i;fbr(i=l;i<=5;i++){t=i+[10];s=s+t;}printfr,s=%d 153M,s);(11)已知字母A的ASCH码为65。以下程序运行后的输出结果是[11].main(){chara,b;a='A'+5-3;b=a+'6'・2;printf(,'%d%c 154",a,b);)(12)有以下程序intsub(intn){return(n/10+n%10);}main(){intx,y;scanf("%d',,&x); 155y=sub(sub(sub(x)));printflM%d 156M,y);}若运行时输入:1234c回车,,程序的输出结果是【12】.(13)以下函数sstreat。的功能是实现字符串的连接,即将t所指字符串复制到s所指字符串的尾部。例如:s所指字符串为abed,t所指字符串为effeh、函数调用后s所指字符串为abedeffeh。请填空。#includevoidsstrcat(char*s,char*t){intn;n=strlen(s);while(*(s+n)=[13]){s-H-;t++;}}(14)以下程序运行后的榆出结果是【14】。#includechar*ss(char*s){char*p,t;p=s+l;t=*s;while(*p){*(p-l)=*p;p++;}*(p-l)=t;returns;)main(){char*p,str[10]-'abcdcfgh";p=ss(str);printf(M%s 157M,p);)(15)以下程序运行后的输出结果是【15】.intf(inta[],intn){if(n>=1)returnf(a,n-l)+a[n-1];elsereturn0;}main(){intaa[5]={1,2,345},s;s=flaa,5);prinifT'%d 158",s);(16)以下程序运行后的输出结果是【16】.structNODE{intnum;structNODE*next;};main(){structNODEs[3]={{1,,(T},{2,,0}{3,W}},*p,*q,*r;intsum=O;s[0].ncxt=s+l;s[1].next=s+2;s[2].next=s;p=s;q=p->next;r=q->next;sum+=q->next->num;sum-f-=r->next->next->num;printf("%d 159”,sum);}(17)以下程序的功能是榆出如下形式的方阵:13141516910II12 16056781234请填空。main(){inti,j,x;fbr(j=4;j[17];j--){fbr(i=l;i<=4;i++){x=(j-D*4+[18];printftH%4dM,x);}printf(M 161M);(18)以下函数rotate的功能是:将a所指N行N列的二维数组中的最后一行放到b所指二维数组的第0列中,把a所指二维数组中的第0行放到b所指二维数组的最后一列中,b所指二维数组中其他数据不变。#defineN4voidrotate(inta[][N],intb[][N]){inti,j;for(i=0;i{b[i][N-l]=[191;[20]=a[N-l][i];}2005年9月C语言笔试参考答案题答案(I)—(10)CACDCDAABB(11)—(20)ACBBACCDAB(21)—(30)DCABCDDABD(31)—(40)BCCAADCCAA(41)—(50)BCBACDABAD二、填空题(1)数据库系统(2)空间(3)驱动模块 16232存储结构881p=(double*)malloc(sizeofidouble))220t*1067G1()*tbcdefgha155>06a[0][i](4)(5)(6)(7)(8)(9)(10)(11)(12)(13)(14)(15)(16)(17)(18)(19)(20)b[i][0] 163全国计算机等级考试二级C语言笔试试题(含参考答案)2006年4月一选择题((1)-(10)每题2分,(11)-(50)每题1分,共60分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分.1)下列选项中不属于结构化程序设计方法的是A)自顶向下B)逐步求精C)模块化D)可复用2)两个或两个以上模块之间关联的紧密程度称为A)耦合度B)内聚度C)复杂度D)数据传输特性3)下列叙述中正确的是A)软件测试应该由程序开发者来完成B)程序经调试后一般不需要再测试C)软件维护只包括对程序代码的维护D)以上三种说法都不对4)按照“后进先出''原则组织数据的数据结构是A)队列B)栈C)双向链表D)二叉树5)下列叙述中正确的是A)线性链表是线性表的链式存储结构B)栈与队列是非线性结构C)双向链表是非线性结构D)只有根结点的二叉树是线性结构6)对如下二又树进行后序遍历的结果为A)ABCDEFB)DBEAFCC)ABDECFD)DEBFCA7)在深度为7的满二叉树中,叶子结点的个数为A)32B)31C)64D)638)“商品”与“顾客”两个实体集之间的联系一般是A)一对一B)一对多C)多对一D)多对多9)在E-R图中,用来表示实体的图形是A)矩形B)椭圆形C)菱形D)三角形10)数据库DB,数据库系统DBS,数据库管理系统DBMS之间的关系是A)DB包含DBS和DBMSB)DBMS包含DB和DBSC)DBS包含DB和DBMSD)没有任何关系11)以下不合法的用户标识符是A)j2_KEYB)DoubleC)4dD)_8_ 16412)以下不合法的数值常量是A)OilB)leiC)8.0E0.5D)Oxabed13)以下不合法的字符常量是A)^18'B)V"C)ND)*\xcc'14)表达式365/2+1.2+5%2的值是A)4.3B)4.8C)3.3D)3.815)以下能正确定义字符串的语句是A)charstr[]={*\064'};B)char5旧'口43";C)charstr=";D)charstr[]-AO**;16)以下数组定义中错误的是A)intx[][3]={0};B)intx[2][3]={{l,2},{3,4},{5,6});C)ntx[][3]={{1,2,3},{4,5,6});D)intx[2][3]={1,2,34,5,6);17)若要求从键盘读入含有空格字符的字符串,应使用函数A)getc()B)gets()C)getchar(>D)scanf()18)下四个程序中,完全正确的是A)//includemain();{/♦programming*/printf(fc4programming! 165n);}C)#includcmain(){/♦/♦programming*/printf(ttprogramming! 166'');}B)#includemain(){/♦/programming/*/printf]["programming! 167'');}D)includemain()*/{/.programming*/printftt4programming! 168'');}19)若有定义:floatx=1.5;ima=l,b=3,c=2;则正确的switch语句是A)switch(x){case1.0:printf( 169M);Case2.0:printfV'f');}C)switch(a-t-b){case1:printH"* 170");case2+1:printf(4t** 171M);}B)switch((int)x);{casel:printfT* 172");case2:printfC'*W);}D)switch(a+b){case1:printfl* 173M);casec:printR"** 174");}20)若各选项中所用变量已正确定义,函数fun中通过return语句返回一个函数值,以下选项中错误的程序是A)main(){x=fun(2,10);}floatfiin(intajntb){}C)floatfun(int,int);main(){x=fun(2,10);}floatfun(intajntb){}B)floatfun(inta,intb){}main(){……x=fun(ij);……}D)main(){floatftin(inti,intj);x=fun(ij);}floatfiin(intajntb){}21)在以下给出的表达式中,与while(E)中的(E)不等价的表达式是A)(!E=0)B)(E>0||E<0)C)(E=0)D)(E!=0)22)要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,以下正确的程序段是A)while((ch=getchar())!=,N,)print^c';ch);B)whiIe(ch=getchar()!-N,)printR"%c”,ch);C)while(ch=gctchar()==N')printf( 175A)不确定的值B)一个整数C)形参p中存放的值D)形参p的地址值24)若有说明语句:double*p,a;则能通过scanf语句正确给输入项读入数据的程序段是A)*p=&a;scanf(**%lf\p);B)*p=&a;scanfi(u%f,,p);C)p=&a;scanf(u%lf\*p);D)p=&a;scanfT%lf;p);25)现有以下结构体说明和变量定义,如图所示,指针p,q,i■分别指向一个链表中连续的三个结点。structnode(chardata;structnode*next;}*p,*q,*r;现要将q和1•所指结点交换前后位置,同时要保持链表的连续,以下不能完成此操作的语句是A)q->next=r->next;p->next=r;r->next=q;A)p->next=r;q->next=r->next;r-.next=q;B)q->next=r->ncxt;r->ncxt=q;p->ncxt=r;C)r->next=q;p-next=r;q-next=r->next;26)有以下程序段structst{intx;int*y;}*pt:inta[]={l,2J,b[]=(3,4);structstc[2]={10,a»20,b};pt=c;以下选项中表达式的值为11的是A)*pt->yB)pt->xC)++pt->xD)(pt++)->x27)i殳fp为指向某二进制文件的指针,且已读到此文件末尾,则函数於of(中)的返回值为A)EOFB)非。值C)0D)NULL28)设有以下语句inta=l,b=2,c;c=aA(b«2);执行后,c的值为A)6B)7C)8D)929)有以下程序#includemain()(charcI,c2,c3,c4,c5,c6;scanf(4t%c%c%c%c'\&cl,&c2,&c3,&c4);c5=gctchar();c6=gctchar();putchar(cl);putchar(c2);printfC%%c 176”,c5,c6);程序运行后,若从键盘输入(从第1列开始)123V回车,45678V回车〉则输出结果是A)1267B)1256C)1278D)124530)若有以下程序main(){inty=10;while(y--);printfC‘y=%d 177"y);}程序运行后的输出结果是A)y=0B)y=-1C)y=lD)while构成无限循环31)有以下程序 178main()(inta=0,b=0,c=0,d=0;if(a=l)b=l;c=2;elsed=3;printfC*%d,%d,%d,%d 179,\a,b,c,d);}程序输出A)0,1,2,0B)0,0,03C)l,1,2,0D)编译有错32)有以下程序main(){inti,j,x=0;fbr(i=0;i<2;i++)V{X-H-;for(j=0;j<=3;j++)(if(j%2)continue;X-H-;}X-H-;1printfTx=%d 180”,x);}程序执行后的输出结果是A)x=4B)x=8C)x=6D)x=1233)有以下程序intfun1(doublea)(returna*=a;(intfun2(doublcx,doubley)(doublea=0,b=0;a=funl(x);b=funl(y);return(int)(a+b);}main()(doublew;w=fun2(l.1,2.0);}程序执行后变量w中的值是A)5.21B)5C)5.0D)0.034)有以下程序main(){inti,t[][3]={9,8,7,6,5,4,3,2,l);fbr(i=0;i<3;i++)primfT%d'R2-i][i]);}程序的执行后的输出结果是A)753B)357C)369D)75135)有以下程序fun(charp[][10]){intn=O,i;fbr(i=0;i<7;i+4-)ifCp[i][O]=T)n++;returnn;}.main()(charstr[]UO]={“M0n”,“Tuc”,"Wed”,“Thu”JFri",‘'Sat'','Sun"};printf(fck%d 181*;fun(str));}程序执行后的输出结果是A)1NB)2c)3D)036)有以下程序main()(imi,s=0,t[]={l,2,3,4,5,6,7,8,9};fbr(i=0;i<9;i+=2)s+=*(t+i); 182primfC%d\iT,s);}程序执行后的榆出结果是A)45B)20C)25D)3637)有以下程序voidfun1(char*p)(char*q;q二p;whilc(*q!=,\0,){(*q)fq++;})main(){chara[]={“Program"},*p;p=&a[3];funl(p);printR"%s 183”,a);i程序执行后的榆出结果是A)ProhsbnB)PrphsbnC)ProgsbnD)Program38)有以下程序voidswap(char*x,char*y){chart;t=*x;*x=*y;*y=t;}.main()(char*sl="abc",*s2="123”;swap(sl,s2);printfC*%s,%s 184”,sl,s2);}程序执行后的榆出结果是A)123,abcB)abc,123C)lbc,a23D)321,cba39)有以下程序intfiin(intn)(ifi(n=l)return1;elsereturn(n+fun(n-l));)main(){intx;scanf(**%d,\&x);x=fun(x);printf(**%d 185M,x);程序执行时,给变量X输入10.程序的输出结果是A)55B)54C)65D)4540)有以下程序intfun(intx[]jntn){staticintsum=0,i;fbr(i=0;isum+=x[i];returnsum;}main(){inta[]={U,3A5},bQ={6,7,8,9},s=0;s=fun(a,5)+ftin(b,4);printff*%d 186”,s);}程序执行后的输出结果是A)45B)50C)60D)5541)有以下程序main(){union{charch[2];intd; 187}s;s.d=Ox432l;printf(**%x,%x 188w,s.ch[O],s.ch[1]);)在16位编译系统上,程序执行后的榆出结果是A)21,43B)43,21C)43,00D)21,0042)有以下程序main()(char*p[]={"3697''J2584”};intij;longnum=0;fbr(i=0;i<2;i-H-){j=0;whileeHUL。'){i«(p[i]U]-t0W)num=10*num+p[i]U]-k0*;j+=2;}}printfC%d\iTnum);)程序执行后的榆出结果是A)35B)37C)39D)397543)执行以下程序后,test.lxt文件的内容是(若文件能正常打开)#includcmain()(FILE*fp;char*s1=,Tortran,\*s2=',BasicM;if((fp=fopen(4ttest.txt,,;,wb,,))=NULL){printfi[“Can'topentest.txtfile 189M);exit(l);}把从地址si开始的7个字符写到fp所指文件中*/fseek(fp,OL,SEEK_SET);/*文件位置指针移到文件开头*/fwritc(s2,5,1,fp);fclose(fp);A)BasicanB)BasicFortranC)BasicD)FortranBasic44)以下叙述中错误的是A)C语言源程序经编译后生成后缀为.obj的目标程序A)C语言经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件C)用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中D)C语言的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令45)以下叙述中错误的是A)算法正确的程序最终一定会结束B)算法正确的程序可以有零个输出C)算法正确的程序可以有零个输入D)算法正确的程序对于相同的榆人一定有相同的结果46)以下叙述中错误的是A)C程序必须由一个或一个以上的函数组成B)函数调用可以作为一个独立的语句存在C)若函数有返回值,必须通过return语句返回D)函数形参的值也可以传回对应的实参47)设有以下定义和语句charstr[20]=",Program,,,*p;p=str;则以下叙述中正确的是A)*p与str[O]中的值相等B)str与p的类型完全相同C)str数组长度和p所指向的字符串长度相等D)数组str中存放的内容和指针变量p中存放的内容相同48)以下叙述中错误的是A)C程序中的#include和#define行均不是C语句B)除逗号运算符外,赋值运算符的优先级最低C)C程序中,j++;是赋值语句 190D)C程序中,+、-、*、/,%号是算术运算符,可用于整型和实型数的运算49)以下叙述中正确的是A)预处理命令行必须位于C源程序的起始位置B)在C语言中,预处理命令行都以5"开头C)每个C程序必须在开头包括预处理命令行:^includeD)C语言的预处理不能实现宏定义和条件编译的功能50)以下叙述中错误的是A)可以通过typedef增加新的类型B)可以用typedef将已存在的类型用一个新的名字来代表C)用typedef定义新的类型名后,原有类型名仍有效D)用typedef可以为各种类型起别名,但不能为变量起别名—:填空题(每空2分,共40分)请将每一个空的正确答案写在答题卡口]至[20]序号的横线上,答在试卷上不得分1)对长度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为[1].2)在面向对象方法中,[2]描述的是具有相似属性与操作的一组对象.3)在关系模型中,把数据看成是二维表,每一个二维表称为一个_[3].4)程序测试分为静态分析和动态测试,其中—[4]是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误.5)数据独立性分为逻辑独立性与物理独立性,当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,称为」5].6)若变量a,b已定义为int类型并赋值21和55,要求用printf函数以a=21,b=55的形式输出,请写出完整的输出语句_[6].7)以下程序用于判断a,b,c能否构成三角形,若能输出YES,若不能输出NO。当a,b,c榆入三角形三条边长时,确定&b,c能构成三角形的条件是需要同时满足三条件:a+b>c,a+c>b,b+c>a«请填空.main()floata,b,c;scanfl:t4%f%f%f;&a,&b,&c);if(_[7]_)printf(ttYES 191,');/*a,b,c能构成三角形*/elseprintf(ttNO 192*,);/*a,b,c不能构成三角形*/8)以下程序的输出结果是—网main(){inta[3][3]={{l,2,9},{3,4,8},{5,6,7}},i,s=0;fbr(i=0;i<3;i++)s+=a[i][i]+a(i][3-i-l];printf(i4%d 193M,s);9)当运行以下程序时,输入abed,程序的榆出结果是:_[9]insert(charstr[]){inti;i=strlen(str);while(i>0){str[2*i]=str[i];str[2*i・l]=*;「;}printfr%s 194”,str);}main(){charstr[40];scanff%s”,str);insert(str);!10)以下程序的运行结果是:_[10]fun(intt[],intn){inti,m;ifi[n=l)returnt[0];elseif(n>=2){m=fun(t,n-l);returnm;} 195)main()(inta[]={11,4,6,3,8,2,3,5,9,2};printft 196,,Jfun(a,10));11)现有两个C程序文件T18.C和myflm.c同时在TC系统目录(文件夹)下,其中T18.C文件如下:#includc#includeMmyfun.cMmain(){ftin();printfTW");}myfhn.c文件如下:voidftm(){chars[80],c;intn=0;while((c=getchar())!- 197')s[n++]=c;n--;while(n>=0)printf(**%c,\s[n—]);)当编译连接通过后,运行程序T18时,输入Thank!则输出的结果是:_[11]。12)以下函数fun的功能是返回str所指字符串中以形参c中字符开头的后续字符串的首地址,例如:str所指字符串为Hello!,c中的字符为e,则函数返回字符串:elk>!的首地址.若str所指字符串为空串或不包含c中的字符,则函数返回NULL.请埴空.char*fun(char*str,charc){intn=0;char*p=str;i«p!=NULL)whilc(p[n]!=c&&p[n]!-\0,)n++;if(p[n]=,\O,returnNULL;return(J12]_);)13)以下程序的功能是:输出100以内(不含100)能被3整除且个位数为6的所有整数,请填空.main(){inti,j;fbr(i=0;_[13]_;i++){j=i*10+6;if(_[14])continue;printff'%d"j);)}14)以下isprimc函数的功能是判断形参a是否为素数,是素数,函数返回1,否则返回0,请填空intisprime(inta){inti;fbr(i=2;i<=a/2;i++)if(a%i==O)_[15]_;」16]_;一15)以下程序的功能是榆人任意整数给n后,输出n行由大写字母A开始构成的三角形字符阵列图形,例如,榆入整数5时(注意:n不得大于10),程序运行结果如下:ABCDEFGHIJKLMNO请填空完成该程序。main()(inti,j,n;charch-Ar;scanf(44%dM,&n);if(n 198**);printf(4t 199M);16)以下程序中函数ftin的功能是:构成一个如图所示的带头结点的单向链表,在结点数据域中放入了具有两个字符的字符串。函数disp的功能是显示输出该单链表中所有结点中的字符串。请填空完成函数disp。#includetypedefstructnode/*链表结点结构*/(charsub[3];Structnode*next;(Node; 200Nodefun(chars)/*建立链表*/voiddisp(Node*h){Node*p;p=h->next;While([19])(printf("%s 201”,p->sub);p=[20];})main()(Node*hd;hd=fiin();disp(hd);}2006年4月全国计算机等级考试二级C语言笔试试题参考答案一、选择题1-10:DADBADCDACli-20:CCADDBBBCA21-30:CABDDCDDDB31-40:DBCBBCACAC4l-50:ACADBDCDBA二、填空题k452、类3、关系4、静态分析5、物理独立性6、printf(Ma=%d,b=%d,',a,b)7、a+b>c&&a+c>b&&b+c>a8.309、a*b*c*d*】0、lllkahT12、p+n或str+nl3、i<=9或i<10I4»j%3!=015.return016、return117、ch=ch+l18.primf(" 202")19、p!=NULL20、p->next 203二级C语言笔试试题2006年9月(考试时间120分钟,满分100分)一、选择题((1)~(10)每题2分,(11)~(50)每题1分,共60分)下列各题A)、B)、C),D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。(1)下列选项中不符合良好程序设计风格的是.A)源程序要文档化B)数据说明的次序要规范化C)避免滥用goto语句D)模块设计要保证高耦合、高内聚(2)从工程管理角度,软件设计一般分为两步完成,它们是oA)概要设计与详细设计B)数据设计与接口设计C)软件结构设计与数据设计D)过程设计与数据设计(3)下列选项中不属于软件生命周期开发阶段任务的是.A)软件测试B)概要设计C)软件维护D)详细设计(4)在数据库系统中,用户所见的数据模式为.A)概念模式B)外模式C)内模式D)物理模式(5)数据库设计的四个阶段是:需求分析、概念设计、逻楫设计和A)编码设计B)测试阶段C)运行阶段D)物理设计(6)设有如下三个关系表RSTBC13ABCm13n13下列操作中正确的是.A)T=RnSB)T-RkJSC)T=RXSD)T=R/S(7)下列叙述中正确的是。A)一个算法的空间复杂度大,则其时间复杂度也必定大B)一个算法的空间复杂度大,则其时间复杂度必定小C)一个算法的时间复杂度大,则其空间复杂度必定小D)上述三种说法都不对(8)在长度为64的有序线性表中进行顺序查找,最环境情况下需要 204比较的次数为。A)63B)64C)6D)7(9)数据库技术的根本目标是要解决数据的。A)存储问题B)共享问题C)安全问题D)保护问题(10)对下列二叉树进行中序遍历的结果是.A)ACBDFEGB)ACBDFGEC)ABDCGEFD)FCADBEG(11)下列叙述中错误的是OA)一个C语言程序只能实现一种算法B)C程序可以由多个程序文件组成C)C程序可以由一个或多个函数组成D)一个C函数可以单独作为一个C程序文件存在(12)下列叙述中正确的是oA)每个C程序文件中都必须有一个main()函数B)在C程序中main。函数的位置是固定的C)C程序可以由一个或多个函数组成D)在C程序的函数中不能定义另一个函数(13)下列定义变量的语句中错误的是。A)int_int;B)doubleint_;C)charFor;D)floatUSS(14)若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是oA)++x,y=x—B)x+l=yC)x=x+10=x+yD)double(x)/10(15)以下关于逻辑运算符两侧运算对象的叙述中正确的是。A)只能是整数。或1B)只能是整数0或非0的整数C)可以是结构体类型的数据D)可是任意合法的表达式(16)若有定义intx,y;并已正确给变量赋值,则以下选项中与表达式(x-y)?(x++):(y++)中的条件表达式(x-y)等价的是<.A)(x-y>0)B)(x-y<0)C)(x-y 205z=x++,y++,++y;printf("%d,%d,%d 206”,x,y,z);}程序运行后的输出结果是。A)2,3,3B)2,3,2C)2,3,1D)2,2,1(18)设有定义:inta;floatb;执行scanf&a,&b);语句时,若从键盘输入876543.回车),a和b的值分别是。A)876和543.000000B)87和6.000000C)87和543.000000D)76和543.000000(19)有以下程序main(){inta=0,b=0;a=10;/*给a赋值b=20;给b赋值*/printf("a+b=%d 207”,a+b);/*输出计算结果*/)程序运行后输出结果是。A)a+b=0B)a+b=30C)30D)出错(20)在嵌套使用if语句时,C语言规定else总是.A)和之前与其具有相同缩进位置的if配对B)和之前与其最近的if配对C)和之前与其最近的且不带else的if配对D)和之前的第一个if配对(21)下列叙述中正确的是oA)break语句只能用于switch语句B)在switch语句中必须使用defaultC)break语句必须与switch语句中的case配对使用D)在switch语句中,不一定使用break语句(22)有以下程序mianO{intk=5;while(-k)printf("%d”,k-=3);printf(' 208")}执行后的输出结果是.A)1B)2C)4D)死循环 209(23)有以下程序main(){inti;for(I=l;K=40;I++){if(I++%5=0)if(++I%8=0)printfi)printf}执行后的输出结果是OA)5B)24C)32D)40(24)以下选项中,值为1的表达式。A)1-〃0"B)1-"\0"C)T-0D)〃\0"-"0"(25)有以下程序fun(intx,inty){return(x+y);}main(){inta=l,b=2,c=3,sum;sum=fun((a++,b++b,a+b),c++);printf(z,%d 210,z,sum);}执行后的输出结果是.A)6B)7C)8D)9(26)有以下程序main(){chars[]="abcde”;s+=2;printf("%d 211",s[0]);执行后的结果是。A)输出字符a的ASCH码B)输出字符c的ASCH码C)输出字符cD)程序出错 212(27)有以下程序fun(intx,inty){staticintm=0,1=2;I+=m+l;m=I+x+y;returnm;}main(){intj=l,m=I,k;k=fun(j,m);printfk);k=fun(j,m);printf("/d 213",k))执行后的输出结果是OA)5,5B)5,11O11,11D)11,5(28)有以下程序fun(intx){intp;if(x-Ox==1)return(3);p=x-fun(x=2);returnp;}main(){prinf("畀d 214",fun(7));}执行后的输出结果是0A)7B)3C)3D)0(29)在16位编译系统上,右有定义inta[]={10,20,30},*p=&a;,当执行p++;后,下列说法错误的是.A)p向高地址移了一个字节B)p抽高地址移了一个存储单元C)p向高地址移了两个字节D)p与a+1等价(30)有以下程序main(){inta=l,b=3,c=5;int*pl=&a,*p2=&b,*p=&c;*p=*pl*(*p2);printf("%d 215",c);)执行后的输出结果是 216A)1B)2C)3D)4(31)若有定义:intw[3][5];,则以下不能正确表示该数组元素的表达式是0A)*(*w+3)B)*(w+l)[4]C)*(*(w+1))D)*(&w[0][0]+1)(32)若有以下函数首部intfun(doublex[10],int*n)则下面针对此函数声母语句中正确的是oA)intfun(doublex,int*n);B)intfun(double,int);C)intfun(double*x,intn);D)intfun(double*,int*);(33)若有定义语句:intk[2][3],*pk[3];,则以下语句中正确的是A)pk=k;B)pk[0]=&k[l][2];C)pk=k[0];D)pk[l]=k;(34)有以下程序voidchange(intk[]){k[0]=k[5];}main(){intx[10]-{l,2,3,4,5,6,7,8,9,10},n=0while(n<=4){change(&x[n]);n++;}for(n=0;n<5;n++)printfx[n]);printf(' 217");)程序运行后输出的结果是.A)678910B)13579C)12345D)62345(35)若要求定义具有10个int型元素的一维数组a,则以下定义语句中错误的是A)ttdefineN10Inta[N]B)#definen5Inta[2*n]C)inta[5+5]D)intn=10,a[n](36)有以下程序main() 218{intx[3][2]={0},I;for(1=0;I<3;I++)scanf('%d",x[i]);printf(/,%3d%3d%3d 219//,x[0][0],x[0][1],x[1][0]);)若运行时输入:246〈回车〉,则输出结果为。A)200B)2040240D)246(37)有以下程序main(){chars[]={"aeiou"},*ps;ps=s;printf("%c 220",*ps+4);)程序运行后的输出结果是.A)aB)eC)uD)元素s[4]的地址(38)以下语句中存在语法错误的是oA)charss[6][20];ss[1]="right?B)charssD[20]={"right?"};C)char*ss[6];ss[l]="right?D)char*ss[]={"right?”};(39)若有定义:char*x="abcdefghi"以下选项中正确运用了strepy函数的是.A)chary[10];strepy(y,x[4]);B)chary[10];strepy(++y,&x[l]);C)chary[10],*s;strepy(s=y+5,x);D)chary[10],*s;strepy(s=y+l,x+1);(40)有以下程序intadd(inta,intb){return+b);}main(){intk,(*f)(),a=5,b=10;f=add;则以下函数调用语句错误的是。 221A)k=(*f)(a,b);B)k=add(a,b);C)k=*f(a,b);D)k-f(a,b);(41)有以下程序ttinclude 222w,n);)该程序生成的可执行文件名为:proc.exe„若运行时输入命令行:proc1234567则程序的输出结果是。A)3B)5C)7D)11(42)有以下程序voidfun2(chara,charb){printi("%b%c”,a,b);}chara='A',b='B';voidfunl(){a=Clb=;}main(){funl()printf("%c%c”,a,b);fun2(F,F);)程序的运行结果是oA)CDEFB)ABEFC)ABCDD)CDAB(43)有以下程序ttinclude 223{intil,i2;il=f⑵;i2=f(1+1);printf(u%d%d 224",il,i2);)程序的运行结果是oA)1212B)117C)1111D)127(44)设有以下语句typedefstructTT{charc;inta[4];}CIN;则下面叙述中正确的是。A)可以用TT定义结构体变量B)TT是struct类型的变量C)可以用CIN定义结构体变量D)CIN是structTT类型的变量(45)有以下结构体说明、变量定义和赋值语句structSTD{charname[10];intage;charsex;}s[5],*ps;ps=&s[0];则以下scanf函数调用语句中错误引用结构体变量成员的是A)scanf(w%sw,s[0].name);B)scanf(M%dM,&s[0].age);C)scanf("%c",&(ps>sex));D)scanf(M%dM,ps>age);(46)若有以下定义和语句uniondata{inti;charc;floatf;}x;inty;则以下语句正确的是。A)x=10.5;B)x.c=101;C)y=x;D)printf("%d 225”,x);(47)程序中已构成如下图所示的不带头结点的单向链表结构,指针变量s、p、q均已正确定义,并用于指向链表结点,指针变量s总是作为头指针指向链表的第一个结点。 226datanextabcNULL若有以下程序段q=s;s=s>next;p=s;while(p->next)p=p->next;p->next=q;q->next=NULL;该程序段实现的功能是.A)首结点成为尾结点B)尾结点成为首结点C)删除首结点D)删除尾结点(48)若变量已正确定义,则以下语句的输出结果是os=32;s"=32;printf("%d",s);A)-1B)0C)1D)32(49)以下叙述中正确的是oA)C语言中的文件是流式文件,因此只能顺序存取数据B)打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖C)在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第1个数据D)当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失(50)有以下程序#include 227fread(&t,1,1,fp);fclose(fp);printf(<4%c 228M,t);)程序执行后的输出结果是.A)dB)cC)bD)a参考答案:06年9月二级c答案一、选择题:01—05DACBD06—10CDBBA11—15ADDAD16—20CCBBC21—25DACBC26—30ABCDC31—35ADBAD36—40BBADC41—45CBBCD46—50BABDC二、填空题:1、32、调试3、元组4、栈5、线性6、12346.07,10118、19、7410、n=n/1011、(x+8)12、sin(x)13、014、i%2==0 229“q」“'。乙巳印印〈一'61II91'818121++s*'91 230——s'GI 231全国计算机等级考试二级C语言笔试试卷(含参考答案)2007年4月一、选择题((1)—(10)每小题2分,(11)—(50)每题1分,共60分)下列各题A)、B),C),D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上答在试卷上不得分.(I)下列叙述中正确的是(B)A)算法的效率只与问题的规模有关,而与数据的存储结构无关B)算法的时间复杂度是指执行算法所需要的计算工作量C激据的逻辑结构与存储结构是对应的D)算法的时间复杂度与空间复杂度一定相关(2)在结构化程序设计中,模块划分的原则是(D)A)各模块应包括尽量多的功能B)各模块的规模应尽量大C)各模块之间的联系应尽量紧密D)模块内具有高内聚度、模块间具有低耦合度(3)下列叙述中正确的是(A)A)软件测试的主要目的是发现程序中的错误B)软件测试的主要目的是确定程序中错误的位苴C)为了提高软件测试的效率,最好由程序编制者自己来完成软件测试的工作D)4欠件测试是证明物件没有错误(4)下面选项中不属于面向对象程序设计特征的是(C)A)继承性B)多态性C)类比性D谢装性(5)下列对队列的叙述正确的是(D)A)队列属于非线性表B)队列按“先进后出”原则组织数据C)队列在队是删除数据D)队列按“先进先出”原则组织数据(6)对下列二叉树ABCDEFXYZ进行前序遍历的结果为(C)A)DYBEAFCZXB)YDEBFZXCAC)ABDYECFXZD)ABCDEFXYZ(7)某二叉树中有n个度为2的结点,则该二叉树中的叶子结点数为(A)A)n+lB)n-1C)2nD)n/2(8)在下列关系运算中,不改变关系表中的属性个数但能减少元组个数的是(B)A)并B)交C股影D)笛卡儿乘积(9)在E・R图中,用来表示实体之间联系的图形是(C)A)矩形B)椭圆形C)菱形D)平行四边形(10)下列叙述中错误的是(A)A)在数据库系统中,数据的物理结构必须与逻辑结构一致B中攵据库技术的根本目标是要解决数据的共享问题CH攵据库设计是指在已有数据库管理系统的基础上建立数据库D激据库系统需要操作系统的支持(11)算法中,对需要执行的每一步操作,必须给出清楚、严格的规定、这属于算法的(C)A)正当性B)可行性C)确定性D)有穷性(12)下列叙述中错误的是(D)A)计算机不能直接执行用C语言编写的源程序B)C程序经C编译程序编译后,生成后缀为.obj的文件是一个二进制文件 232C)后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件D)后缀为.0坛和.exe的二进制文件都可以直接运行(13)按照C语言规定的用户标识符命名规则,不能出现在标识符中的是(B)A)大写字母B)连接符C)数字字符D)下划线(14)以下叙述中错误的是(C)A)C语言是一种结构化程序设计语言B)结构化程序有顺序、分支、循环三种基本结构组成C)使用三种基本结构构成的程序只能解决简单问题D)结构化程序设计提倡模块化的设计方法(15)对于一个正常运行的C程序,以下叙述中正确的是(A)A)程序的执行总是从main函数开始,在main函数结束B)程序的执行总是从程序的第一个函数开始,在main函数结束C)程序的执行总是从main函数开始,在程序的最后一个函数中结束D)程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束(16)设变量均已正确定义,若要通过scantr%d%c%d%c”,&al、&cl,&a2,&c2);语句为变量al和a2赋数值10和20,为变量cl和c2赋字符X和Y。以下所示的输入形式中正确的是(注:口代表空格字符)(D)A)10nXn20aY〈回车》B)10nX20nY<回车〉A)IOdX(回车〉D)10X〈回车》20口丫〈回车》20Y〈回车)(17)若有代数式(其中e仅代表自然对数的底数,不是变量),则以下能够正确表示该代数式的C语言表达式是(C)A)sqrt(abs(nAx+eAx))B)sqrt(fabs(pow(n,x)+pow(x,e)))C)sqrt(fabs(pow(n,x)+exp(x)))D)sqrt(fabs(pow(x,n)+exp(x)))(18)设有定义:intk=O;,以下选项的四个表达式中与其他三个表达式的值不相同的是(A)A)k-w-B)k+=1C)++kD)k+1(19)有以下程序,其中%u表示按无符号整数输出(B)main(){unsignedintx=0xFFFF;/♦x的初值为十六进制数♦/printatk%u 233M,x);}程序运行后的输出结果是A)-1B)65535C)32767D)OxFFFF(20)设变量x和y均已正确定义并赋值,以下if语句中,在编译时将产生错误信息的是(C)A)i[x++);B)ifi(x>y&&y!=0);C)if(x>y)x--D)if(y<0){;}elsey-H-;elsex++;(21)以下选项中、当x为大于1的奇数时、值为0的表达式(D)A)x%2—1B)x/2C)x%2!=0D)x%2=0(22)以下叙述中正确的是(C)A)break语句只能用于switch语句体中Bgontinue语句的作用是:使程序的执行流程跳出包含它的所有循环C)brcak语句只能用在循环体内和switch语句体内D)在循环体内使用break语句和continue语句的作用相同(23)有以下程序(A)main(){intk=5,n=0;do{switch(k){easel:case3:n+=1;break:default;n=O;k-;case2:case4:n+=2;k-;break;}printfT*%d",n);}while(k>0&&n<5);程序运行后的输出结果是A)235B)0235C)02356D)2356(24)有以下程序mian()(intij;for(i=l;i<4;i++)|fbr(j=i;j<4;j-H-)printfC%d*%d=%dprints%"); 234程序运行后的输出结果是(B)A)1*1=11*2=21*3=3B)1*1=11*2=21*3=32*1=22*2=42*2=42*3=63*1=33*3=9C)1*1=1D)1*1=11*2=22*2=42*1=22*2=41*3=32*3=63*3=93*1=33*2=63*3=9(25)以下合法的字符型常量是(A)A)**\xl3MB)'XH8"C)"65"D)%”(26)在C语言中,函数返回值的类型最终取决于(A)A)函数定义时在函数首部所说明的函数类型B)retum语句中表达式值的类型C)调用函数时主函数所传递的实参类型D)函数定义时形参的类型(27)已知大写字母A的ASCII码是65,小写字母aASCH码是97,以下不能将变量c中大写字母转换为对应小写字母的语句是(D)A)c=(c-A)%26+'a'B)c=c+32C)c=c「A'+'a'D)c=('A'+c)%26-'a'(28)有以下函数intliin(char*s){char*t=s;while(*t-H-);rctum(t-s);)该函数的功能是(B)A)比较两个字符的大小B)计算s所指字符串占用内存字节的个数C)计算s所指字符串的长度D偌s所指字符串复制到字符串t中(29)设已有定义:hoatx;则以下对指针变量p进行定义且赋初值的语句中正确的是(D)A)float*p=1024;B)int*p=(floatx);C)floatp=&x;D)float*P=&x;(30)有以下程序#include 235”,p);(31)以下程序中函数f的功能是:当flag为1时,进行有由小到大排序;当flag为0时,进行由大到小排序。voidRintb[],intn,intflag){intij,t;fbr(i=0;i 236(33)有以下程序typedefstruct{intb,p:}A;voidRAc)/*注意:c是结构变量名♦/{intj;c.b+=l;c.p+=2;}main(){inti;Aa={l,2};Ra);printR**%d,%d 237';a.b,a.p);)程序运行后的榆出结果是(D)A)2,3B)2,4C)1,4D)L2(34)有以下程序main(){inta[4][4]={{l,4,32},{&6,5,7,},{3,725,},{4,8,6,l,}},ij,k,t;fbr(i=0:i<4;i-H-)fb!tj=Oj<3j++)fbr(k弓+l;k〈4;k++)inaUJ(i]>a[k][i]){t=aU][il;aU][i]=a[k][i];a[k][iH;}/^^#^^/fbr(i=0;i<4;i++)prinm"%dJ,a[i][jD;}程序运行后的输出结果是(A)A)l,6,5,7,B)8,7,3,1,C)4,7,5,2,D)1,6,2J,(35)有以下程序main(){inta[4][4]={{1,4,3,2,},{8,6,57},{3,7,25},{4,8,6,1,}},i,R;fbr(i=O;i<3;i++)fbr(k=i+i;k<4;k-H-)if(a[i][i]fbr(i=0;i<4;i-H-)printfT%d);}程序运行后的输出结果是(B)A)6,2,l,1,B)6,4,3,2,C)l,1,2,6,D)2,3,4,6,(36)有以下程序voidf(int*q){inti=0;fbr(;i<5;i++)(*q)-H-;}main(){inta[5]={123,4.5},i;Ra);fbr(i=0;i<5;i-H-)printf(t'%d/',a[i]);}程序运行后的输出结果是(B)A)2,2,3,4,5,B)6,2,3,4,5,C)123,4,5,D)2,3,4,56(37)有以下程序//include 238'',sizco«p),strlen(p));程序运行后的榆出结果是(C)A)209B)99C)2011D)1111(38)有以下程序//include 239'\sizeoRp));)程序运行后的输出结果是(B)A)9B)6C)llD)7(39)有以下程序//include 240printf(**%d 241**,strlen(p[O]));)程序运行后的输出结果是(C)A)2B)4C)6D)3(40)有以下程序voidf(intn,int*r)Ontrl=O;if(n%3=O)rl=ii/3;elseif!n%5=0)rl=n/5;elsen,&rl);*r=r1;}main(){intm=7,r;f(m,&r);printfC*%d 242、r");}程序运行后的输出结果是(A)A)2B)1C)3D)0(41)有以下程序main(intargc,char*argv[]){intn=0,i;fbr(i=l;i 243M,s);程序运行后的输出结果是(B)A)24B)28C)32D)36(43)有一个名为init.txt的文件,内容如下://defineHDY(A,B)A,B#definePRINT(Y)PrintR"y=%d 244.,Y)有以下程序//include“init.txt”main()Onta=1,b=2,c=3,d=4,k;K=HDY(a+c,b+d);PRINT(K);)下面针对该程序的叙述正确的是(D)A)编译有错B)运行出错C)运行结果为y=0D)运行结果为y=6(44)有以下程序main(){charch[]='\ivwxyz",*pc;Pc=ch;printfT%c 245”,*(pc+5));)程序运行后的榆出结果是(A)A)zB)0C)元素ch[5]的地址D)字符y的地址(45)有以下程序structS{intn;inta[20];);void—structS*P){intij,t;for(i=O;i 246A)1,2.3,4,5,6,7,8,9,10,B)10,9,8,7,6,5,4,3,2,1,C)2,3,1,6,8,7,5,4,10,9,D)10,9,8,7,6,1,2,3,4,5,(46)有以下程序structS{intn;inta[20];};voidf(mt*a,intn)(inti;fbr(i=O;i 247”,d);}程容运行后向榆出结果是(B)A)3B)4C)5D)6(49)有以下程序//include 248M,a[3],a[4],a[5]);fclose(ip);fp=fbpcn(4*d2.daf'/'f');fscanflfp,t4%d%d*\&k,&n);printfC%d%d 249”kn);fclose(fp);)程序运行后的榆出结果是(D)A)12B)14C)1234D)123456(50)有以下程序//include 250main(){inta=10;a=(3*5,a+4);printfV'a=%d 251”,a);(7)当执行以下程序时,输入123456789(X回车〉,则其中while循环体将执行0次。#include 252k=%d;m*k++);}main(){inti=4;fiin(i-H-);printR“i=%dk=%d 253”,i,k);(9)以下程序的运行结果是#&。main(){inta=2,b=7,c=5;switch(a>0)(case1:switch(b<0)(case1:swilch("@");break;Case2:prinE"!");break;}case0:switch(c==5){case0:printR"*");break;case1:printff,#'');break;case2:printff$5;break;}default:printfp&”);)printfT'Xn");(10)以下程序的输出结果是9#include 254*\strlenCIBM 255O12\1\V'));(11)已定义charch=i=lJ;执行j=!ch&&i++以后,i的值为1(12)以下程序的输出结果是54#include 256,,,sizeoi|a),srelen(a));)(13)设有定义语句:int叫[3]={{0},{l},{2}};,则数组元素的值为0(14)以下程序的功能是:求出数组x中各相邻两个元素的和依次存放到a数组中,然后榆出。请填空.main(){intx[10],a[9]J;fbr(i=0;i<10;i++)scanflt4%d'\&x[i]);fbr(i=l;i<10;i-H-)a[i-l]=x[i]+x[i-l];fbr(i=0;i<9;i-H-)printfV%d”,a[i]);prints%");(15)以下程序的功能是:利用指针指向三个整型变量,并通过指针运算找出三个数中的最大值,输出到屏幕上,请填空:main(){intx,y,z,max,*px,*py,*pz,*pmax;scanfC%d%d%d'',&x,&y,&z);px=&x;py=&y;pz=&z;pmax=&max;*pmax=*px(或*pmax=x);而*pmax<*py)*pmax=*py;if(*pmax<*pz)*pmax=*pz; 257printR“max=%d 258”,max):(16)以下程序的输出结果是10intfiin(int*x,intn){i*n=O)returnx[0]elsereturnx[0]+ftm(x+141-I);}main(){inta[]={l,2,3,4,5,6,7};printff*%d 259”,ftm(a,3));(17)以下程序的输出结果是35#include 260M,m);(18)设有说明structDATE{iniyear;intmonth;intday;};请写出一条定义语句,该语句定义d为上述结构体变量,并同时为其成员year、month,day依次赋初值2006、10、1:structDATAd={2006,10,1};(19)设有定义:FILE*fw;,请将以下打开文件的语句补充完整,以便可以向文本文件rcadme.txt的最后续写内容。Wfbpen("readme.lx「,"a")参考答案一、选择题:1-5241346-103132111-153423116-204311321-254342126-301424131-352241236-402323241-454241146-5013241二、填空题:1.632,墨盒3.DBNS4,开发5,数据字典6,a-147,08,无答案9,#与号10,9IL112,5_413,13014,i=l15,X[i-1]16,无答案17,1018,4019,无答案20,20a 2612007年9月 262就派亮翻14专接育咨询有阳公司w*行iaoulcx> 263CC语言规定必须用—in作为主函薮名,程序将从此开始执行,将在此结束D』in可以用作用户标识符,可指定任意一个函数作为主函数(14)若在定义语句:iota,he,接着执行以下选项中的语句,嵬能正确执行的语句是Kscanf("«d»,a,b,c);Bscanf(,KdM»,a,b,c);Cscanf(,p)0scanf(,*p)(15)以下关乎Loog,iot和short占用内总天小的叙述正确的是DA均占4个字节B根据密究的大小耒决定所占的字节耋C由用户自己定义D由C语言编译系统决定(16)如果变量均已正确定义并赋值,以下合法的C语言赋值语句是AKx=y=5Bx=ML5Cx+n=iDx=5=4+l(17)若有以下程序段Biotj;floaty;charnaM:[50];scanf(«12dKf%s»,&j,tty,nav);当执行上述程序段,从键盘上愉入55566777abc后,y的值为A555G&0B566.0C7777.0D566777.0(18)若变量已正确定义,有以下程序段i=0;doprintf("Sd,»»i);»biLe(i++);printff"恨\o»,i);其■出结果是A0,0B0,1C1,1D程序进入无隈循环状香(19)有以下计算公式若程序前修已在命令行中包含—th.b文件,不能正确计算上述公式的程序段是BAif6^=0)y=sqrt(x);By=sqrt(x);elsey=sqrt(-x);Cif(x>=0)y=sqrt(x);if(x<0)y=sqrt(-x);0y=sqrt(x>=0?x:-x);ifif(x^0)y=sqrt(-x);(20)设有条件表达式:(EXP)?i^:j—奥以下表达式中与(EXP)完全等价的是BA(EXP=O)B(EXP!=O)C(EXP=1)D(EXP!=1)(21)有以下程序ttiDclude 264(25)已如字符'A'的ASCII代码值是65,字料变量cl的值是'A',c2的值是.priotf,cl,c2-2>;Jg,•出结》CA&BBA.68C65,6606568(26)以下叙述中错误的是AA改变函蠹宠参的值,不会政变对应实参的值B函数可以返回地址值C可以给指针变珈t一个集数作为地址值D当在程序的开头包含文件stdidI•附,可以给指针变击tNULL(27)以下正确的字符串售量是DA*\\\*B'abc'COLywicGbks0"»(28)设有定义:charp[]={r',‘2','S'),♦voidfoD(char**p)(+^>;printf(*»s 265*,*p);)■ainO{char•«[]={"Moring","Afternoon»,“Evening","Nigbrt");fun(a);}程序的运行结果是AAAfternoaaBfternoaoCHaring0oring(S3)若有定义语句:iot嵬以下语句中正确的是CAf=n;Bp[0]=a;Cp[0]=4a[l][2];0p[l]=4a;(34)有以下程序ttincLode 266程序的运行结果是CA.9B61490C61D5(34)当用户要求■入的字符串中含有空格时,应使用的■入函数是CAscanf0BgetcharOCgetsODgetcO(35)以下关于字符串的叙述中正确的是DAC语言中有字符串类型的常量和变量B两个字符串中的字符个蠹相同时才能进行字符串大小的也较C可以用关系运算符对字符串的大小进行比较D空串一定比空格打头的字符串小(36)有以下程序ttioclndeGtdio.b>(37)39缺少(38)40lfc>(39)Return(a++)+c;)■aioO(inti,k=0;far(i=0;i<^i++){inta=3;k+=fGO;}k+=a;printf("/&!!»,k);}程外的运行结果是K14B15C16D17(40)有以下猥序ttioclodeGtdidb>voidfan(iotn,iot*p){iotfl,f2;ifG»=l||o=2)*p=l;else{fmCnrl.&fl);fui(nr21Af2);XIF;1)■aioO{iots;fon(3F£s);priDtf(aWXn*,s);}程序的运行结果是AK2B3C4D5(41)43若程序中有宏定M:ttdefioeNM)0则以下叙述中正确的是BA宏定义行中定义了标讯符N的值为整数100D在运行时用100替换标识符N(42)以下关于typedef的假迷错来的是AA用typedef可以埴加薪涉BtypKtef只是将已存在的沏用fit的名字耒代表C用typwfef可以为各种却说明一个知名,但不能用耒为变量说明一个新名D用typedef为涉说明一个茶名,遇常可以地《程序的可读性(45)有以下程序ttioclode 267ttiDclode 268", 269*,x);)程序的运行结果是A0B1C2D3(48)读取二进制文件的函费Bl用趋式为:fread(buffer,size,comit,fp);其中buffer代表的是A一个文件指针,指向修读取的文件Bf维型变量,代表再读取的数据的字节数cf内存块的首皿,代表读入JR据存放的地址D一个内存块的字节数(50)有以下程序ttincLode 270(5)在E-R图中,矩花表示.(6)执行以下程序时■入12345678,则*4H结果是.ttiaclude 271 272»,s);请填空,使下面的程序段的功能与之完全相同s=l.0;k=l;while(){s=s+1.0/(k*(t*D);;)priirtf( 273»);)(13)以下程序统计从终举■入的字符中大写字母的个数»[0]中统计字母A的个乱m-口]中统计字母B的个最,其它傕侬推.用寻号结束喷入,请填空.ttinclode 274)(15)以下程序的.出结果是•ttiDclode 275»jk);)(16)函数lioO的功能是:在带头结点的单链表中查IBS据域中值最小的结点。请填空。ttiDclode 2762008年4月全国计算机等级考试二级笔试试卷C语言程序设计如果您还需要更多的资料,欢迎到混在校园论坛来做客!(考试时间90分钟,满分100分)一、选择题(共70分)下列各题A),B),C),D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。(1)程序流程图中指有箭头的线段表示的是A)图元关系B)数据流C)控制流D)调用关系(2)结构化程序设计的基本原则不包括A)多态性B)自顶向下C)模块化D)逐步求精(3)软件设计中模块划分应遵循的准则是A)低内聚低耦合B)高内聚低耦合C)低内聚高耦合D)高内聚高耦合(4)在软件开发中,需求分析阶段产生的主要文档是A)可行性分析报告B)软件需求规格说明书C)概要设计说明书D)集成测试计划(5)算法的有穷性是指A)算法程序的运行时间是有限的B)算法程序所处理的数据量是有限的C)算法程序的长度是有限的D)算法只能被有限的用户使用(6)对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-l)/2的排序方法是A)快速排序B)冒泡排序C)直接插入排序D)堆排序(7)下列关于栈的叙述正确的是A)栈按“先进先出”组织数据B)栈按“先进后出”组织数据C)只能在栈底插入数据D)不能删除数据(8)在数据库设计中,将E-R图转换成关系数据模型的过程属于[C]A)需求分析阶段B)概念设计阶段 277C)逻辑设计阶段D)物理设计阶段(9)有三个关系R、S和T如下:TBCDaOklRSBCDaOkib1nlBCDf3h2aOkln2xl有关系R和S通过运算得到关系T,则所使用的运算为A)并B)自然连接C)笛卡尔积D)交(10)设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名),选课SC(学号,课号,成绩),则表SC的关键字(键或码)为A)课号,成绩B)学号,成绩C)学号,课号D)学号,姓名,成绩(11)以下叙述中正确的是A)C程序中的注释只能出现在程序的开始位置和语句的后面B)C程序书写格式严格,要求一行内只能写一个语句C)C程序书写格式自由,一个语句可以写在多行上D)用C语言编写的程序只能放在一个程序文件中(12)以下选项中不合法的标识符是A)printB)FORC)&aD)_00(13)以下选项中不属于字符常量的是A),CB)"C"C)'\xCC0'D)'\072'(14)设变量已正确定义并赋值,以下正确的表达式是A)x=y*5=x+zB)int(15.8%5)C)x=y+z+5,++yD)x=25%5.0(15)以下定义语句中正确的是A)inta=b=O;B)charA=65+1,b-b';C)floata=l,*b=&a,*c=&b;D)doublea=O.O,b=l.l; 278(16)有以下程序段charch;intk;ch-a,;k=12;printf("%c,%d,",ch,ch,k);printf("k=%d 279",k);已知字符a的ASCII十进制代码为97,则执行上述程序段后输出结果是A)因变量类型与格式描述符的类型不匹配输出无定值B)输出项与格式描述符个数不符,输出为零值或不定值C)a,97,12k=12D)a,97,k=12(17)已知字母A的ASCH代码值为65,若变量kk为char型,以下不能正确判断出kk中的值为大写字母的表达式是A)kk>='A'&&kk<=,Z,B)!(kk>='A'IIkk<=Z)C)(kk+32)>='a'&&(kk+32)<='z'D)isalpha(kk)&&(kk<91)(18)当变量c的值不为2、4、6时,值也为“真”的表达式是A)(c=2)II(c=4)II(c==6)B)(c>=2&&c<=6)II(c!=3)II(c!=5)C)(c>=2&&c<=6)&&!(c%2)D)(c>=2&&c<=6)&&(c%2!=1)(19)若变量已正确定义,有以下程序段inta=3,b=5,c=7;if(a>b)a=b;c=a;if(c!=a)c=b;printf("%d,%d,%d 280",a,b,c);其输出结果是A)程序段有语法错B)3,5,3C)3,5,5D)3,5,7(20)有以下程序#include 281”,a,b);)程序的运行结果是A)a=l,b=0B)a=2,b=2C)a=l,b=lD)a=2,b=l(21)有以下程序#include 282main(){intx=8;for(;x>0;x—){if(x%3){printf("%d,”,x--);continue;}printfC'%d,",--x);))程序的运行结果是A)7,4,2B)8,7,5,2C)9,7,6,4D)8,5,4,2(22)以下不构成无限循环的语句或者语句组是A)n=0;B)n=0;do{++n;}while(n<=0);while(l){n++;}C)n=10;D)for(n=0,i=l;;i++)n+=i;while(n);{n—;}(23)有以下程序#include 283”,y);)程序的运行结果是A)y=0B)y=lC)y=2D)y=3(24)以下错误的定义语句是A)intx[][3]={{0},{l},{l,2,3});B)intx[4][3]={{l,2,3},{l,2,3},{l,2,3},{l,2,3});c)intx[4][]={{l,2,3},{l,2,3},{l,2,3},{l,2,3}};D)intx[][3]={l,2,3,4);(25)设有如下程序段chars[20]="Bejing",*p;P=s;则执行p=s;语句后,以下叙述正确的是A)可以用*p表示s[0]B)s数组中元素的个数和p所指字符串长度相等C)s和p都是指针变量D)数组s中的内容和指针变量p中的内容相等(26)若有定义:inta[2][3];,以下选项中对a数组元素正确引用的是 284A)a[2][!l]B)a[2][3]C)a[0][3]D)a[l>2][!1](27)有定义语句:chars[10];,若要从终端给s输入5个字符,错误的输入语句是A)gets(&s[O]);B)scanf("%s”,s+l);C)gets(s);D)scanf(u%sw,s[l]);(28)以下叙述中错误的是A)在程序中凡是以“#”开始的语句行都是预处理命令行B)预处理命令行的最后不能以分号表示结束C)#defineMAX是合法的宏定义命令行D)C程序对预处理命令行的处理是在程序执行的过程中进行的(29)以下结构体类型说明和变量定义中正确的是A)typedefstructB)structREC;{intn;charc;}REC;{intn;charc;};RECtl,t2;RECtl,t2;C)typedefstructREC;D)struct{intn=0;charc=,A,;}tl,t2;{intn;charc;}RECtl,t2;(30)以下叙述中错误的是A)gets函数用于从终端读入字符串B)getchar函数用于从磁盘文件读入字符C)fputs函数用于把字符串输出到文件D)fwrite函数用于以二进制形式输出数据到文件(31)有以下程序#include 285while(i 286");)程序运行的结果是A)0987654321B)4321098765Q5678901234D)0987651234(33)有以下程序#include 287,5,ss[0],ss[4]);)程序的运行结果是A)xy,aaaaccB)aaaacc,xyC)bcc,aabccD)aabcc,bcc(34)有以下程序#include 288{intz;z=f(3);printf(tt%d 289,,,z);)程序的运行结果是A)0B)9C)6D)8(35)有以下程序#include 290,,,c.name,c.sex,c.score[0],c.score[l]);) 291程序的运行结果是A)Qian,f,95,92B)Qian,m,85,90A)Zhao,f,95,92D)Zhao,m,85,90(37)有以下程序#include 292^^);fclose(fp);fp=fopen("dl.dat",“r");fscanf(%"%d”,&n);fclose(fp);printff'%d 293”,n);}程序的运行结果是A)12300B)123C)1D)321(38)变量a中的数据用二进制表示的形式是01011101,变量b中的数据用二进制表示的形式是11110000。若要求将a的高4位取反,低4位不变,所要执行的运算是A)aAbB)a|bC)a&bD)a«4(39)在C语言中,只有在使用时才占用内存单元的变量,其存储类型是A)auto和registerB)extem和registerC)auto和staticD)static和register(40)设有定义语句int(*f)(int);,则以下叙述正确的是A)f是基类型为int的指针变量B)f是指向函数的指针变量,该函数具有一个int类型的形参C)f是指向int类型一维数组的指针变量D)f是函数名,该函数的返回值是基类型为int类型的地址二、填空题(每空2分,共30分)请将每一个空的正确答案些在答题卡【1]至[151序号的横线上,答在试卷上不得分。(1)测试用例包括输入值集和【1】值集。(2)深度为5的满二叉树有[2]个叶子结点。 294(3)设某循环队列的容量为50,头指针fk)nt=5(指向队头元素的前一位置),尾指针rear=29(指向队尾元素),则该循环队列中共有【3】个元素。(4)在关系数据库中,用来表示实体之间联系的是【41(5)在数据库管理系统提供的数据定义语言、数据操纵语言和数据控制语言中,【5】负责数据的模式定义与数据的物理存取构建。(6)已有定义:charc-';inta=l,b;(此处c的初值为空格字符),执行b=!c&&a;后b的值为【6】。(7)设变量已正确定义为整型,则表达式n=i=2,++i,i++的值为[71(8)若有定义:intk;,以下程序段的输出结果是[8】。for(k=2;k<6;k++,k-H-)printf(<<##%d,,,k);(9)以下程序段的定义语句中,x[l]的初值是[9】,程序运行后输出的内容是1101#include 295");)(10)以下程序的输出结果是【11】。#include 296,,,*p,*q);(11)以下程序的输出结果是【12】。#include 297printf(u%d,,,*p);)(12)以下程序的输出结果是【13】。#include 298'');}(13)以下程序中函数fun的功能是:统计person所指结构体数组中所有性别(sex)为M的记录的个数,存入变量n中,并做为函数值返回。请填空:#include 299”,n);)(14)以下程序从名为filea.dat的文本文件中逐个读入字符并显示在屏幕上。请填空:#include 300fclose(fp);}参考答案:一、选择题1-10:CABBADBCDC11-20:CCBCBDBBBD21-30:DADCADDDAB31-40:CCACCABAAB二、填空题:1、输出2、163、244、关系5、数据定义语言6、07、38、##2##49、210、246811、3512、413、1314、person[i].sex15、“filea.dat",“r"2008年9月全国计算机等级考试二级C笔试试卷一、选择题1、一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后在依次出栈,则元素出栈的顺序是A)12345ABCDEB)EDCBA54321C)ABCDE12345D)54321EDCBA2、下列叙述正确的是A)循环队列有队头和队尾两个指针,因此,循环队列是非线形结构B)在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C)在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况 301D)循环队列中元素的个数是由队头指针和队尾指针共同决定3、在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是A)0(n)B)0(n2)C)0(log2n)D)0(log2n)4、下列叙述中正确的是A)顺序结构存储的存储一定是连续的,链式存储结构的存储空间不一定是连续的B)顺序存储结构只针对线性结构,链式存储结构只针对非线性结构C)顺序存储结构能存储有序表,链式存储结构不能存储有序表D)链式存储结构比顺序存储结构节省存储空间5、数据流图中带有箭头的线段表示的是A)控制流B)事件驱动C)模块调用D)数据流6、在软件开发中,需求分析阶段可以使用的工具是A)N—S图B)DFD图C)PAD图D)程序流程图7、在面向对象的方法中,不属于"对象”基本特点的是A)一致性B)分类性C)多态性D)标识唯一性8、一间宿舍可住多个学生,则实体宿舍和学生之间的联系是A)一对一B)一对多C)多对一D)多对多9、在数据管理技术发展的三个阶段中,数据共享最好的是A)人工管理阶段B)文件系统阶段C)数据库系统阶段D)三个阶段相同10、有三个关系R、S和T如下:RSABm1n2BC1335ABCm13由关系R和S通过运算得到关系T,则所使用的运算为A)笛卡尔积B)交C)并D)自然连接 30211,以下叙述中正确的是A)C程序的基本组成单位是语句B)C程序中的每一行只能写一条语句C)简单C语句必须以分号结束D)C语句必须在一行内写完12、计算机能直接执行的程序是A)源程序B)目标程序C)汇编程序D)可执行程序13、以下选项中不能作为C语言合法常量的是A),cdB)0.lc+6C)”\a"D)\01114、以下选项中正确的定义语句是A)doublea;b;B)doublea=b=7C)doublea=7,b=7;D)double,a,b;15、以下不能正确表示代数式2ab/cd的C语言表达式是A)2*a*b/c/dB)a*b/c/d*2C)a/c/d*b*2D)2*a*b/c*d16、C源程序中不能表示的数制是A)二进制B)八进制C)十进制D)十六进制17、若有表达式(w)?(-x):(++y),则其中与w等价的表达式是A)w=—1B)w——0C)w!—1D)w!=018、执行以下程序段后,w的值为intw='A',x=14,y=15;W=((x||y)&&(w<'a')):A)-1B)NULLC)1D)019、若变量已正确定义为int型,要通过语句scanf("%d,%d,%d〃,&a,&b,&c);给a赋值1、给b赋值2、给c赋值3,以下输入形式中错误的是(u代表一个空格符)A)uuul,2,3〈回车〉B)lu2u3〈回车>C)l,uuu2,uuu3<回车)D)1,2,3〈回车》20、有以下程序段inta,b,c;a=10;b=50;c=30;if(a>b)a=b,b=c,c=a;printf(wa=%db=%dc=%d 303”,a,b,c);程序的输出结果是A)a=10b=50c=10B)a-10b=50c=30 304C)a=10b=30c=10D)a=50b=30c=5021、若有以下定义语句:intm[]={5,4,3,2,l},i=4;,则下面对m数组元素的引用中错误的是A)m[-i]B)m[2*2]C)m[m[0]]D)m[m[i]]22、下面的函数调用语句中func函数的实参个数是func(f2(vl,v2),(v3,v4,v5),(v6,max(v7,v8)));A)3B)4C)5D)823、若有定义语句:doublex[5]={1.0,2.0,3.0,4.0,5.0},*p=x;则错误引用x数组元素的是A)*pB)x[5]C)*(p+1)D)*x24、若有定义语句:chars[10]="1234567\0\0w;,则strlen(s)的值是A)7B)8C)9D)1025、以下叙述中错误的是A)用户自定义的函数中可以没有return语句B)用户自定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值C)用户自定义的函数中若没有return语句,则应当定义函数为void类型D)函数的return语句中可以没有表达式26、以下关于宏的叙述中正确的是A)宏名必须用大写字母表示B)宏定义必须位于源程序中所有语句之前0宏替换没有数据类型限制D)宏调用比函数调用耗费时间27,有以下程序ftinclude 305");程序运行的结果是A)234B)432023D)453455433434452328、有以下程序 306ttinclude 307',x++);)程序运行的结果是A)331B)41C)2D)129、有以下程序ftinclude 308");}程序运行的结果是A)*7B)*3*5C)*5D)*2*630、有以下程序tfinclude 309w,fun(4,2));}程序运行的结果是A)1B)2C)3D)431、有以下程序#include 310}main(){inta;a=fun(10);printf(*%d 311w,a+fun(10));)程序运行的结果是A)0B)10C)20D)出错32、有以下程序#include(stdio.h)voidfun(inta,intb){intt;t=a;a=b;b=t;)main(){intc[10]={l,2,3,4,5,6,7,8,9,0),i;for(i=0;i<10;i+=2)fun(c[i],c[i+l]);for(i=0;i<10;i++)printf(,z%d,",c[i]);printf(ff 312");}程序运行的结果是A)l,2,3,4,5,6,7,8,9,0B)2,1,4,3,6,5,8,7,0,9C)0,9,8,7,6,5,4,3,2,1D)0,1,2,3,4,5,6,7,8,933、有以下程序ttinclude 313,z,(++p)->x);}程序运行的结果是A)10,1B)20,1C)10,2D)20,234、有以下程序#include 314for(i=2;i<8;i++)printf(,z%dw,k[i]);printf(/z 315");)程序运行的结果是A)345678B)876543C)1098765D)32167835、有以下程序#include 316");}程序运行的结果是A)1,2,3,4,B)1,0,7,0,C)l,4,5,9,D)3,4,8,10,36、有以下程序ttinclude 317",fun(a,4,0));}程序运行的结果是A)4B)34C)31D)3237、有以下程序ttinclude 318z/,b.name,b.sex,b. 319score[0],b.score[l]);)程序运行的结果是A)Qian,f,95,92B)Qian,m,85,90C)Zhao,f,95,92D)Zhao,m,85,9038、假定已建立以下链表结构,且指针p和q已指向如图所示的结点:则以下选项中可将q所指结点从链表中删除并释放该结点的语句组是A)(*p).next=(*q).next;free(p);B)p=q->next;free(q);C)p=q;free(q);D)p-〉next=q->next;free(q);39、有以下程序ttinclude 320,a=a«l/z);}程序的运行结果是A)40B)16C)8D)440、有以下程序ttinclude 321行。2、软件工程三要素包括方法、工具和过程,其中,()支持软件开发的各个环节的控制和管理。3、数据库设计、()和物理设计。4、在二维表中,元组的()不能再分成更小的数据项。5、设变量a和b已正确定义并赋初值。请写出与a-=a+b等价的赋值表达式()。6、若整型变量a和b中的值分别为7和9,要求按以下格式输出a和b的值:a=7b=9请完成输出语句"printf(,z",a,b);7、以下程序的输出结果是()ttinclude 322",sum);)8、以下程序的输出结果是()ttinclude 323w,fun(sf4,N));)(11)以下程序的输出结果是。#include 324{ints,i;for(i=l;i<=5;i++)s=fun(i);printf("%d 325/z,s);)(12)以下程序按下面指定的数据给x数组的下三角置数,并按如下形式输出,请填空。43726915810#include 326〃);(13)以下程序的功能是:通过函数func输入字符并统计字符的个数。输入时用字符@作为输入结束标志。请填空。#include 327",n);)longfunc(){longm;for(m=0;getchar();returnm;参考答案一、选择题1-5:BDCAD6-10:BABCD 32811-15:CDACD16-20:ADCBA21-25:CABAB26-30:CDDAB31-35:CACDB36-40:CDDCB二、填空题(按空填)1、DBXEAYFZC2、单元3、过程4、逻辑设计5、分量6、a=-b7、a=%d 329b=%d 3308、19、991110、311、1512、i—13、n14、func()15、m++ 3312009年3月二级C语言真题及答案2009年3月全国计算机等级考试二级笔试(真题)C语言试卷(安祺学校总结版)一、选择题((1)-(10)、(21)-(40)每题2分,(ll)T20)每题1分,共70分)1.下列叙述中正确的是(D)A)栈是“先进先出”的线性表B)队列是“先进后出”的线性表C)循环队列是循环队列是非线性结构D)有序线性表既可以采用顺序存储结构,也可以米用链式存储结构2.支持子程序调用的数据结构是(A)A)栈B)树C)队列D)二叉树3.某二叉树有5个度为2的结点,则该二叉树中的叶子结点是(C)A)10B)8C)6D)44.下列排序方法中,最坏情况下比较次数最少的是(D)A)冒泡排序B)简单选择排序C)直接插入排序D)堆排序5.软件按功能可分为:应用软件、系统软件、支撑软件(或工具软件),下面属于应用软件的是(C)A)编译程序B)操作系统C)教务管理系统D)汇编程序6.下面叙述中错误的是(A)A)软件测试的目的是发现错误并改正程序B)对被调试的程序进行“错误定位”是程序调试的必要步骤 332C)程序调试通常也称为DebugD)软件测试应严格执行测试计划,排除测试的随意性1.耦合性和内聚性是对模块独立性度量的两个标准,下列叙述中正确的是(B)A)提高耦合性降低内聚性有利于提高模块的独立性B)降低耦合性提高内聚性有利于提高模拟的独立性C)耦合性是指一个模块内部和个元素间彼此结合的紧密程度D)内聚性是指模块间互相连接的紧密程度2.数据库应用系统中的核心问题是(A)A)数据库设计B)数据库系统设计C)数据库维护D)数据库管理员培训9.有两个关系R,S如下:ABCABa32a3b01b0c21c2由关系R通过运算得到关系S,则所使用的运算为(B)A)选择B)投影C)插入D)连接10.将E-R图转换为关系模式时,实体和联系都可以表示为(C)A)属性B)键C插入D)域11.以下选项中合法的标识符是(C)A)l」B)1-1C)_llD)112.若函数中有定义语句:intk;,则(B)A)系统将自动给k赋初值0B)这时k中的值无定义C)系统将自动给k赋初值-1D)这时k中无任何值13.以下选项中,能用作数据常量的是(D)A)oll5B)0118C)1.5el.5D)115L14.设有定义:intx=2;,以下表达式中,值不为6的是(D)A)x*=x+lB)x++,2*xC)x*=(l+x)D)2*x,x+=2 33310.程序段:intx=12;doubley=3.141593;printf("%d%8.6f',x,y);的输出结果是(A)A)123.141593B)123.141593C)12,3.141593D)123.141593011.若有定义语句:doublex,y,*px,*py;执行了px=&x;py=&y;之后,正确的输入语句是(C)A)scan^"%f%f',x,y);B)scan^"%f%f'&x,&y);C)scanf("%lf%le",px,py);D)scanf("%lf%lf',x,y);12.以下是if语句的基本形式:(D)if(表达式)语句其中"表达式"A)必须是逻楫表达式B)必须是关系表达式C)必须是逻辑表达式或关系表达式D)可以是任意合法的表达式13.有以下程序#include 334",x);}程序运行时,输入的值在哪个范围才会有输出结果(B)A)不等于10的整数B)大于3且不等10的整数C)大于3或等于10的整数D)小于3的整数14.有以下程序(C)#include 335printf("%d,%d,%d 336",a,b,c);elseprintf("%d,%d,%d 337",a,b,c);elseprintf^"%d,%d,%d 338",a,b,c);}程序运行后的输出结果是A)1,2,3B)1,3,2C)1,3,320.以下程序段中的变量已正确定义for(i=0;i<4;i++,i++)for(k=l;k<3;k++);printf("*");程序段的输出结果是A)********B)****C)**D)3,2.1(D)D)*21.有以下程序(C)#include 339,,)n-H-;B)n=0;while(getchar()!=,, 340,,)n-H-;C)for(n=0;getchar()!=" 341";n++);D)n=0;for(ch=getchar();ch!=,, 342,,;n-H-);23.有以下程序#include 343若想通过键盘输入,使得al的值为12,a2的值为34,cl的值为字符a,c2的值为b,程序输出结果是:12,a,34,b则正确的输入格式是:(A)A)12a34b 344",d);)程序运行后输出结果是:(B)A)10B)9C)8B)12a34D)12a34b 345");)注意:字母a的ASCLL码值为97,程序运行后的输出结果是:(A)A)dB)goC)godD)good25.有以下程序#include 346fun(p,q);printf("%d,%d,",*p,*q);fun(&x,&y);printf("%d,%d 347",*p,*q);)程序运行后的输出结果是:(B)A)3,5,5,3B)3,5,3,5C)5,3,3,5D)5,3,5,323.有以下程序#include 348");)下划线处应填入的语句是(C)A)if(i/8==0)printf(" 349");B)if(i/8=0)continue;C)if(i%8==0)printf(" 350");D)if(i%8==0)continue;25.若有以下定义intx[10],*pt=x;则对x数组元素的正确引用是(B)A)*&x[10]B)*(x+3)C)*(pt+10)D)pt+326.设有定义:chars[81];inti=0; 351以下不能将一行(不超过80个字符)带有空格的字符串正确读入的语句或语句组是:(C)A)gets(s);B)while((s[i++]=getchar())!— 352*);s=*\0*;C)scanf("%s",s);D)do{scanfif"%c",&s);}while(s[i++]!- 353');s='\0';23.有以下程序#include 354”,fun(2*a,fun(b,c)));程序运行后的输出结果是(B)A)3B)6C)8D)1226.设函数中有整型变量n,为保证其在未赋初值的情况下初值为0,应选择的存储类别是(C)A)autoB)registerC)staticD)auto或register27.有以下程序#include 355{inta[10]={l,2,3,4,5,6,7,8},i;for(i=2;i<4;i++){b=fun(&a)+b;printfb);}printf;)程序运行后的输出结果是(C)A)1012B)810C)1028D)101623.有以下程序ttinclude 356”,S(a+b));}程序运行后的输出结果是(D)A)14.0B)31.5C)7.5D)程序有错无输出结果37.有以下程序ttinclude 357”,++p->y);}程序的运行结果是(B)A)1,2B)2,3C)3,4D)4,138.设有宏定义:#defineIsDIV(k,n)((k%n==l)?l:O)且变量m已正确定义并赋值,则宏调用:IsDIV(m,5)&&IsDIV(m,7)为真时所要表达的是(D)A)判断m是否能被5或者7整除B)判断m是否能被5和7整除C)判断m被5或者7整除是否余1D)判断m被5和7整除是否都余139.有以下程序ttinclude 358”,t);))程序运行后的输出结果是(A) 359A)21B)llC)6D)137.有以下程序ttinclude 360c2=cl+32;printf("%c,%c 361”,cl,c2);程序运行输入65回车后,能否输出结果、结束运行(请回答能或不能)不能。9.以下程序运行后的输出结果是s”ttinclude 362”,s);)10.下列程序运行时,若输入labcedf2df<回车〉输出结果为lAbCeDf2dFottinclude 363'){if(a%2!=0&&(ch>=*a*&&ch<=,z*))ch=ch,a'+'A';a++;putchar(ch);)printf(' 364");)11.有以下程序,程序执行后,输出结果是7777654321。ttinclude 365");}) 36610.请将以下程序中的函数声明语句补充完整。ttinclude 367”,(*p)(x,y));)intmax(inta,intb){return(a>b?a:b);}11.以下程序用来判断指定文件是否能正常打开,请填空。ttinclude 368");elseprintf("文件打开成功!、n");)12.下列程序的运行结果为1001,ChangRong,1098.0。ttinclude 369”,a.a,a.b,a.c);)voidf(structA*t){strcpy(t->b,"ChangRong");}13.以下程序把三个NODETYPE型的变量链接成一个简单的链表,并在whi1e循环中输出链表结点数据域中的数据。请填空。ttinclude 370a.next=&b;b.next=&c;c.next='\0';P=h;while(p){printf("%d,”,p->data);p=p->next;}或p=(*p).nextprintf(" 371〃);)2009年9月全国计算机等级考试二级VF试卷一、选择题(每小题2分共70分)下列各题ABCD四个选项中,只有一个选项是正确的。请将正确选项涂到答题卡相应位置上,答在试卷上不得分。1)下列数据结构中,属于非线性结构的是A.循环队列B.带链队列C.二叉树D.带连线2)下列数据结构中,能按照“先进后出”原则存取数据的是A.循环队列B.栈C.队列D.二叉树3)对于循环队列,下列述叙正确的是A.对头指针式固定不变的B.对头指针一定大于队尾指针C.对头指针不一定小于队尾指针D.对头指针可以大于队尾指针,也可以小于队尾指针 3724)算法的空间复杂度是指A.算法在执行过程中所需要的计算机存储空间B.算法所处理的数据量C.算法程序中的语句或是指令条数D.算法在执行过程中所需要的临时工作单位5)软件设计中划分模块的一个准则是A.低内聚低耦合B.高内聚低耦合C.地内聚高耦合D.高内聚高耦合6)下列选项中不属于结构化程序原则的是A.可封装B.自订向下C.模块化D.琢步求精7)软件详细设计产生的图如下 373该图是A.N-S图B.PAD图C.程序流程图D.ER图8)数据库管理系统是A.操作系统的一部分B.在操作系统支持下的一个系统软件C.一种编译工具D.一种操作系统9)在E-R图中,用来表示实体联系的图形是A.椭圆形B.矩形C.菱形D.三角形ABCa12b21c31d3210)有三个关系R,S和T图如下ABCa12b21c31ABCb32 374其中关系T由关系R和S通过某种操作得掉,该操作位A.选择B.投影C.交D.并1D设置文本框显示内容的属性是A.ValueB.captionC.NameD.isputmask12)语句LISTMEMORYLIKEa*能够显示变量不包括A.aB.alC.ab2D.ba313)计算机结果不是字符串Teacher的语句是A.al("Myteacher",3,7)B.substr("Myteacher”,3,7)C.right("Myteacher",7)D.left("teacher”)14)学生表中有学号姓名和年龄三个字段,SQL语句SELECT学号FROM学生完成的操作称A.选择 375B.投影C.连接D.并15)报表的数据源不包括A.试图B.自由表C.数据库表D.文本文件16)使用索引的主要目的是A.提高查询速度B.节省存储空间C.防止数据丢失D.方便管理17)表单文件的扩展名是A.frmB.prgC.sexD.vex 37618)下列程序执行时在屏幕上显示结果的是DIMEa(6)a⑴=1a⑵=1FORi=3TO5a(i)=a(i-1)-a(i-2)NEXT?a(6)A.5B.6C.7D.819)下列程序段执行时在屏幕上显示的结果是Xl=20X2=30SETUDFPARMSTOVALUEDOtesta=bb=xENDPROA.3030B.3020C.2020D.203020)以下关于查询的正确描述是 377A.查询文件的扩展名位PNGB.查询保存在数据库文件中C.查询保存在表文件中D.查询保存在查询文件中21)以下关于视图的正确描述是A.视图独立于表文件B.视图不可更新C.视图只能从一个表派生出来D.视图可以删除22)为了隐藏在文本框中输入信息,用占位符代替现实用户输入字符,需要设置的属于是A.valueB.controlsourceC.inputmaskD.passwordchar23)假设某表单的Vvisible属性的处置为F能将其设置为T的方法是A.hideB.showC.releaseD.setfocus24)在数据库中建立表的命令式A.vmefomn.displayB.vmeform.show 378A.vmeform.listB.vmeform.see26)在表设计器的字段选项卡中,字段有效性的设置项中不包括A.规则B.信息C.默认值D.标题27)若SQL语句中的ORDERBY短语中指定了多个字段则A.依次按自右至左的字段顺序排序B.只按第一个字段排序C.依次按自左至右的字段顺序D.无法排序28)在VISUALFOXPRO中下面关于属性方法和事件的叙述错误的是A.属性用于描述对象的状态,方法用于表示对象的行为B.基于同一个类产生的两个对象可以分为设置自己的属性值C.事件代码页可以像方法一样被显示调用D.在创建一个表单时,可以添加新的属性。方法和事件29)下列函数返回类型为数值型的是A.STRB.VALC.DTOCD.TTOC 37930)与SELECT*FROM教师表INTODBFA等价的语句是A.SELECT*FROM教师表TODBFAB.SELECT*FROM教师表TOTABLEAC.SELECT*FROM教师表INTOTABLEAD.SELECT*FROM教师表INTOA31)查询教师表的全部记录并存储于临时文件one.dbf中的SQL命令是A.SELECT*FROM教师表INTOCURSORoneB.SELECT*FROM教师表TOCURSORoneC.SELECT*FROM教师表INTOCURSORDBFone 380A.SELECT*FROM教师表TOCURSORDBFone32)教师表中有职工号;姓名;年龄;师表的SQL语句命令是A.CREATETABLE教师表(职工号CB.CREATETABLE教师表(职工号CC.CREATETABLE教师表(职工号CD.CREATETABLE教师表(职工号C字段,其中职工号;为主关键字,建立教(10)PRIMARY,姓名C(20),工龄I)(10)FOREIGN,姓名C(20),工龄I)(10)FOREIGNKEY,姓名C(20),工龄I)(10)PRIMARYKEY,姓名C(20),工龄I)33)创建一个名为STUDENT的新类,保存新类的类库名称是mylib,新类的父类是Person正确的命令式A.CREATECLASSmy1ibOFstudentAsPersonB.CREATECLASSstudentOFPersonAsmylibC.CREATECLASSstudentOFmy1ibAspersonD.CREATECLASSpersonOFmylibAsPerson34)”教师表"中又“职工号”、“姓名”、“工龄”和“系号”等字段,“学院表”中又“系名”和“系号”等字段,计算机系教师总数的命令是A.SELECTCOUNT(*)FROM教师表INNERJOIN学院表ON教师表系号=学院表系号WHERE系名="计算机”B.SELECTCOUNT(*)FROM教师表INNERJOIN学院表 381ON教师表系号=学院表系号ORDERBY教师表系号;HAVING学院表,系名=“计算机” 382A.SELECTCOUNT(*)FROM教师表INNERJOIN学院表ON教师表系号=学院表系号GROUPBY教师表系号;HAVING学院表系名=“计算机”B.SELECTCOUNT(*)FROM教师表INNERJOIN学院表ON教师表系号=学院表系号WHERE系名="计算机”HAVING学院表,系名=“计算机”35)教师表中有“职工号”、“姓名”、“工龄”和“系号”等字段学院表中有“系名”和“系号”等字段,求教师总数最多的系的教师人数,正确的命令序列是A.SELECT教师表.系号,COUNT(*)AS人数FROM教师表,学院表;GROUPBY教师表.系号INTODBFTEMPSELECTMAX(人数)FROMTEMPB.B.SELECT教师表.系号,COUNT(*)AS人数FROM教师表,学院表;WHERE教师表.系号=学院表.系号GROUPBY教师表.系号INTODBFTEMPSELECTMAX(人数)FROMTEMP 383A.C.SELECT教师表.系号,COUNT(*)AS人数FROM教师表,学院表;WHERE教师表.系号=学院表.系号GROUPBY教师表.系号TOFILETEMP 384A.D.SELECT教师表.系号,COUNT(♦)AS人数FROM教师表,学院表;WHERE教师表.系号=学院表.系号GROUPBY教师表.系号INTODBFTEMPSELECTMAX(人数)FROMTEMP填空题(每题2分)1)某二叉树又5个度为2的结点以及3个度为1的结点,则二叉树中共有个结点。2)程序流程图中的菱形框表示是3)软件开发过程主要分为需求分析;设计;编码;与测试四个阶段其中阶段产生软件需求规格说明书4)在数据库技术中,试题集之间的联系可以说一对一或一对多的,那么“学生”和可选课程的联系为人员基本信息一般包括:身份证号,姓名,性别,年龄等。其中作为主关键字的是5)命令按钮的CAPCEL属性的默认值是6)关系操作中,从表取出满足条件的元组的操作称作7)在VISUALFOXPRO中,表示时间2009年3月3日的常量应用为8)在VISUALFOXPRO中对参照完整性中插入规则包括的选择是“限制”和9)删除视图MYVIEW的命令是10)查询设计器中的“分组依据“选项卡与SQL语句的对应11)项目管理器的数据选项卡用于显示和管理数据库、查询、视图12))可以使编辑框的内容处于只读状态的两个属性是READONLY和13)为“成绩表”中“总分”字段增加有效性规则:“总分必须大于等于0并且小于等于750”,正确的SQL语句是: 385TABLE成绩ALTER总分总分>=0AND总分<=7502009年9月计算机等级考试二级VF试题答案公共基础试题答案选择题1C2B3D4A5B6A7C8B9C10D填空题1142逻辑条件3需求分析4多对多5身份证号笔试真题答案一、选择题11A12D13A14B15D16A17C18D19B20D21D22D23B24A25B26D27C28D29B30C31A32D33C34A35D二、填空题7选择 3868{2009-03-03}9忽略10DROPVIEWMYVIEW11GROUPBY12自由表13ENABLED14ALTERSETCHECK2010年3月二级c语言笔试真题及答案试题:一、选择题((1)—(10)、(21)—(40)每题2分,(11)—(20)每题1分。共70分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡上,答在试卷上不得分。(1)下列叙述中正确的是A)对长度为n的有序链表进行查找,最坏情况下需要的比较次数为nB)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)C)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(Iog2n)D)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(nIog2n)(2)算法的时间复杂度是指A)算法的执行时间B)算法所处理的数据量C)算法程序中的语句或指令条数D)算法在执行过程中所需要的基本运算次数(3)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于系统软件的是A)编辑软件B)操作系统C)教务管理系统D)浏览器 387(4)软件(程序)调试的任务是B)尽可能多地发现程序中的D)确定程序中错误的性质B)软件详细设计的工具D)面向对象方法的需求分A)诊断和改正程序中的错误错误C)发现并改正程序中的所有错误⑸数据流程图(DFD图)是A)软件概要设计的工具C)结构化方法的需求分析工具析工具(6)软件生命周期可分为定义阶段,开发阶段和维护阶段。详细设计属于A)定义阶段B)开发阶段C)维护阶段D)上述三个阶段⑺数据库管理系统中负责数据模式定义的语言是A)数据定义语言B)数据管理语言C)数据操纵语言D)数据控制语言(8)在学生管理的关系数据库中,存取一个学生信息的数据单位是A)文件B)数据库C)字段D)记录(9)数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机B)逻辑设计阶段D)物理设计阶段中的表示,它属于数据库设计的A)需求分析阶段C)概念设计阶段(10)有两个关系R和T如下:RABCa12b22c32d32TABCc32d32则由关系R得到关系T的操作是选择B)投影C)交D)并 388(11)以下叙述正确的是A)C语言程序是由过程和函数组成的B)C语言函数可以嵌套调用,例如:fun(fun(x))C)C语言函数不可以单独编译D)C语言中除了main函数,其他函数不可以作为单独文件形式存在(12)以下关于C语言的叙述中正确的是A)C语言中的注释不可以夹在变量名或关键字的中间B)C语言中的变量可以再使用之前的任何位置进行定义C)在C语言算术的书写中,运算符两侧的运算数类型必须一致D)C语言的数值常量中夹带空格不影响常量值的正确表示(13)以下C语言用户标示符中,不合法的是A)_1B)AaBcC)a_bD)a-b(14)若有定义:(10心心2=22而3=0卜=18测不符合。语言规定的赋值语句是A)a=a++,i++B)i=(a+k)<=(i+k)C)i=a%11D)i=!a(15)#include 389,,,a,b,c,d); 390当执行程序时,按下列方式输入数据(从第一列开始, 391elsek=c;elseif(b 392,,,m)}程序运行后的输出结果是(A)m=6(B)m=2(C)m=4(D)m=5(21)有以下程序#includes 393)1,a,b);)程序运行后的输出结果是(A)9,18(B)8,11(C)7,11(D)10,14(22) 394有以下程序,其中k的初值为八进制数#include 395,,,k++);)程序运行后的输出结果是(A)12(B)11(C)10(D)9(23)下列语句中,正确的是A)char*s;s="Olympic”;B)chars[7];s=^^OIympic^^;C)char*s;s={"Olympic"};D)chars[7];s={),OlympicM};(24)以下关于return语句的叙述中正确的是A)一个自定义函数中必须有一条return语句B)一个自定义函数中可以根据不同情况设置多条return语句C)定义成viod类型的函数中可以有带返回值的return语句D)没有return语句的自定义函数在执行结束时不能返回到调用处(25)下列选项中,能够正确定义数组的语句是A)intnum[0..2008];B)intnum[];C)intN=2008;D)#defineN2008intnum[N];intnum[N](26)有以下程序#include 396,,,b,a);) 397程序运行后的输出结果是A)b,B,b,AB)b,B,B,AC)a,B,B,aD)a,B,a,B(27)若有定义int(*pt)[3];,则下列说法正确的是A)定义了基类型为int的三个指针变量B)定义了基类型为int的具有三个元素的指针数组pt。C)定义了一个名为*pt、具有三个元素的整型数组D)定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组(28)设有定义doublea[10],*s=a;,一下能够代表数组元素a[3]的是A)(*s)[3]B)*(s+3)C)*s[3]D)*s+3(29)有以下程序#include 398",s);)程序运行后的输出结果是A)6B)10C)11D)1530)有以下程序#include 399",t);)程序运行后的输出结果是A)1B)3C)4D)9(31)若有以下定义和语句charsl[10]="abed!",*s2="n123\\";printf("%d%d 400",strlen(s1),strlen(s2)); 401则输出结果是A)55B)105C)107D)58(32)有以下程序#include 402");)程序运行后的输出结果是A)1313B)2234C)3234D)1234(33)有以下程序#include 403”,s);)intf(intt[],intn){if(n>0)returnt[n-1]+f(t,n-1);elsereturn0;)程序运行后的输出结果是A)4B)10C)14D)6(34)有以下程序#include 404{staticintx=1;x*=2;returnx; 405main(){intl,s=1;for(i=1;i<=2;i++)s=fun();printf(',%d 406,,,s);)程序运行后的输出结果是A)0B)10)4D)8(35)以下程序#include 407”,d);)程序运行后的结果是A)0B)-12C)-20D)10(36)没有定义structcomplex{intreal,unreal;}datal={1,8},data2;则以下赋值语句中的错误的是A)data2=data1;B)data2=(2,6);C)data2.real1=data1.real;D)data2.real=data1.unreal;(37)有以下程序include 408,,,a.a,a.b,a.c);)voidf(structAt){t.a=1002;strcpy(t.b,,,ChangRong,,);t.c=1202.0;}程序运行后的输出结果是A)1001,ZhangDa,1098.0B)1002,ChangRong,1202.0 409C)1001,ChangRong,1098.0D)1002,ZhangDa,1202.0(38)有以下定义和语句structworkers{intnum;charname[20];charc;srruct{intday;intmonth;intyear;}s;);structworkersw,*pw;pw=&w能给w中year成员赋1980的语句是A)*pw.year=1980;B)w.year=1980;C)pw->year=1980;D)w.s.year=1980;(39)有以下程序#include 410”,a/b&c);)程序运行后的结果是A)0B)1C)2D)3(40)以下程序#include 411A)abcB)28cC)abc28D)因类型不一致而出错二、填空题(每空2分,共30分)请将每空的正确答案写在答题卡[11至[151序号的横线上,答在试卷上不得分。(1)一个队列的初始状态为空,先将元素A,CB,C,D,E,F,5,4,3,2,1依次入队,然后再依次退队,则元素退队的顺序为[1]。⑵设某循环列队的容量为50,如果头指针front=45(指向队头元素的前一位置),尾指针rear=10(指向队尾元素),则该循环队列中共有—[2]—个元素。⑶设二叉数如下:对该二叉树进行后序遍历的结果为【3】(4)软件是【4】、数据和文档的集合。(5)有一个学生选课的关系,其中学生的关系模式为:学生(学号,姓名,班级,年龄),课程的关系模式为:课程(课号,课程名,学时),其中两个关系模式的键分别是学好和课号,则关系模式选课可以定义为:选课(学号,【5】,成绩)。(6)设x为int型变量,请写出一个关系表达式【6】,用以判断x同时为3和7的倍数时,关系表达式的值为真。(7)有以下程序#include 412printf(',%d 413,,,d);)程序运行后的输出结果是:【7】。(8)有以下程序#include 414,,,m);)程序运行后,当输入1463〈回车〉时,输出结果是[8】(9)有以下程序#include 415main()(inta[3][3]={{1,2,3},{4,5,6},{7,8,9}};intb[3]={0},i;for(i=0;i<3;i++)b[i]=a[i][2]+a[2][i];for(i=0;i<3;i++)printf("%d”,b[i]);printfC'Nn");)程序运行后的结果是(12)有以下程序#include 416",s);)程序运行后输入:abcdef(回车〉,则输出结果是13、以下程序的功能是:将值为三位正整数的变量x中的数值按照个位、十位、百位的顺序拆分并输出。请填空。#include 417,,5,x/10%10,x/100);)14、以下程序用以删除字符串中的所有的空格,请填空。 418#include 419",s);)(15)以下程序功能是:借助指针变量找出数组元素中的最大值及其元素的下标值。请填空。#include 420M,s-a);答案:110:A,D,B,A,C,B,A,D,B,A1120:B,B,D,C,C,D,A,B,C,C2130:D,D,A,D,D,A,D,B,C,C3140:A,C,B,C,C,B,A,D,C,C填空题:1:ABCDEF543212:153:EDBGHFCA4:程序5:课号6:x%3==0&&x%7==07:4 4216:77:1235698:1359:10141810:fabode11:X%1012:,\(T13:p
此文档下载收益归作者所有