系列之《2005-2011年全国计算机等级考试二级C语言笔试试题及答案》_第1页
系列之《2005-2011年全国计算机等级考试二级C语言笔试试题及答案》_第2页
系列之《2005-2011年全国计算机等级考试二级C语言笔试试题及答案》_第3页
系列之《2005-2011年全国计算机等级考试二级C语言笔试试题及答案》_第4页
系列之《2005-2011年全国计算机等级考试二级C语言笔试试题及答案》_第5页
已阅读5页,还剩145页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

TOC\o"1-5"\h\z\o"CurrentDocument"2005年4月全国计算机等级考试二级C语言笔试试题及答案 2\o"CurrentDocument"2005年4月全国计算机等级考试二级C语言笔试答案 13\o"CurrentDocument"2005年9月全国计算机等级考试二级C语言笔试试题及答案 14\o"CurrentDocument"2005年9月全国计算机等级考试二级C语言笔试答案 28\o"CurrentDocument"2006年4月全国计算机等级考试二级C语言笔试试题及答案 29\o"CurrentDocument"2006年4月全国计算机等级考试二级C语言笔试答案 40\o"CurrentDocument"2006年9月全国计算机等级考试二级C语言笔试试题及答案 41\o"CurrentDocument"2006年9月全国计算机等级考试二级C语言笔试答案 53\o"CurrentDocument"2007年4月全国计算机等级考试二级C语言笔试试题及答案 54\o"CurrentDocument"2007年4月全国计算机等级考试二级C语言笔试答案 66\o"CurrentDocument"2007年9月全国计算机等级考试二级C语言笔试试题及答案 66\o"CurrentDocument"2007年9月全国计算机等级考试二级C语言笔试答案 77\o"CurrentDocument"2008年4月全国计算机等级考试二级C语言笔试试题及答案 77\o"CurrentDocument"2008年4月全国计算机等级考试二级C语言笔试答案 83\o"CurrentDocument"2008年9月全国计算机等级考试二级C语言笔试试题及答案 83\o"CurrentDocument"2008年9月全国计算机等级考试二级C语言笔试答案 92\o"CurrentDocument"2009年3月全国计算机等级考试二级C语言笔试试题及答案 92\o"CurrentDocument"2009年3月全国计算机等级考试二级C语言笔试答案 104\o"CurrentDocument"2009年9月全国计算机等级考试二级C语言笔试试题及答案 104\o"CurrentDocument"2009年9月全国计算机等级考试二级C语言笔试答案 114\o"CurrentDocument"2010年3月全国计算机等级考试二级C语言笔试试题及答案 114\o"CurrentDocument"2010年3月全国计算机等级考试二级C语言笔试答案 125\o"CurrentDocument"2010年9月全国计算机等级考试二级C语言笔试试题及答案 126\o"CurrentDocument"2010年9月全国计算机等级考试二级C语言笔试答案 137\o"CurrentDocument"2011年3月全国计算机等级考试二级C语言笔试试题及答案 1382011年3月全国计算机等级考试二级C语言笔试答案 147一、选择题(1〜10每小题2分,11〜50每小题1分,共60分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。(1)数据的存储结构是指•。A)存储在外存中的数据B)数据所占的存储空间量C)数据在计算机中的顺序存储方式D)数据的逻辑结构在计算机中的表示(2)下列关于栈的描述中错误的是oA)栈是先进后出的线性表B)栈只能顺序存储C)栈具有记忆作用D)对栈的插入与删除操作中,不需要改变栈底指针(3)对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是A)冒泡排序为n/2B)冒泡排序为nC)快速排序为nD)快速排序为n(n-1)/2(4)对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为A)log2nB)n/2C)nD)n+1(5)下列对于线性链表的描述中正确的是oA)存储空间不一定是连续,且各元素的存储顺序是任意的B)存储空间不一定是连续,且前件元素一定存储在后件元素的前面C)存储空间必须连续,且前件元素一定存储在后件元素的前面D)存储空间必须连续,且各元素的存储顺序是任意的(6)下列对于软件测试的描述中正确的是=A)软件测试的目的是证明程序是否正确B)软件测试的目的是使程序运行结果正确C)软件测试的目的是尽可能多地发现程序中的错误D)软件测试的目的是使程序符合结构化原则(7)为了使模块尽可能独立,要求_ A)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强B)模块的内聚程度要尽量高,且各模块间的耦合程度耍尽量弱C)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱D)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强(8)下列描述中正确的是。A)程序就是软件B)软件开发不受计算机系统的限制C)软件既是逻辑实体,又是物理实体D)软件是程序、数据与相关文档的集合(9)数据独立性是数据库技术的重要特点之一,所谓数据独立性是指oA)数据与程序独立存放B)不同的数据被存放在不同的文件中C)不同的数据只能被对应的应用程序所使用D)以上三种说法都不对(10)用树形结构表示实体之间联系的模型是。A)关系模型B)网状模型C)层次模型D)以上三个都是(11)算法具有五个特性,以下选项中不属于算法特性的是。A)有穷性B)简洁性C)可行性D)确定性(12)以下选项中可作为C语言合法常量的是。A)-80.B)-0800-8el.0D)-80.0e(13)以下叙述中正确的是。A)用C程序实现的算法必须要有输入和输出操作B)用C程序实现的算法可以没有输出但必须要输入C)用C程序实现的算法可以没有输入但必须耍有输出D)用C程序实现的算法可以既没有输入也没有输出(14)以下不能定义为用户标识符的是。A)MainB)_0C)_inlD)sizeof(15)以下选项中不能作为合法常量的是oA)1.234eO4B)1.234eO.4C)1.234e+4D)1.234e0(16)数字字符0的ASCH值为48,若有以下程序main(){chara=,1',b='2';printf("%c,",b++);printf("%d\n”,b-a);)程序运行后的输出结果是。A)3,2B)50,2C)2,2D)2,50(17)有以下程序main(){intm=12,n=34;printf("%d%d”,m++,++n);printf(,,%d%d\n/z,n++,++m);}程序运行后的输出结果是oA)12353514B)12353513C)12343514D)12343513(18)有定义语句:intb;charc[10]则正确的输入语句是。A)scanf &b,&c);B)scanf("%d%s”,&b,c);C)scanf(z/%d%s/z,b,c);D)scanf(/z%d%s,z,b,&c);(19)有以下程序main(){intm,n,p;scanfC/m=%dn=%dp=%d,/,&m,&n,&p);printf("%d%d%d\n”,m,n,p);)若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是oA)m=123n=456p=789B)m=123n=456p=789C)m=123,n=456,p=789D)123456789(20)有以下程序main(){inta,b,d=25;a=d/10%9;b=a&&(_l);printf(*%d,%d\n*,a,b);)程序运行后的输出结果是OA)6,1B)2,1C)6,0D)2,0(21)有以下程序main()(inti=l,j=2,k=3;if(i++==l&&(++j==3||k++==3))printf(*%d%d%d\n”,i,j,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=0,j=0;while(i++<7)if(p[i]%2)j+=p[i];printf("为d\n",j);)程序运行后的输出结果是OA)42B)45C)56D)60(24)有以下程序main()(chara[7]="a0\0a0\0”;inti,j;i=sizeof(a);j=strlen(a);printf(,z%d%d\nz,,i,j);)程序运行后的输出结果是.A)22B)76C)72D)62(25)以下能正确定义一维数组的选项是oA)inta[5]={0,1,2,3,4,5};B)chara[]={0,1,2,3,4,5};C)chara={'A','B','C'};D)inta[5]="0123”;(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,f,g;e=f2(fl(a,b),f1(c,d));f=f1(f2(a,b),f2(c,d));g=a+b+c+d-e-f;printf("%d,%d,%d\n*,e,f,g);)程序运行后的输出结果是OA)4,3,7B)3,4,7C)5,2,7D)2,5,7(27)已有定义:chara[]="xyz",b[]={'x','y','z'};,以下叙述中正确的是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]={l,2,3,4,5,6,7,8},i,*p,*q;p=a;q=&a[7];while(p{f(p,q);p++;q—;}for(i=0;i<8;i++)printf("%d,",a[i]);)程序运行后的输出结果是.A)8,2,3,4,5,6,7,1,B)5,6,7,8,1,2,3,4,1,2,3,4,5,6,7,8,D)8,7,6,5,4,3,2,1,(29)有以下程序main()(inta[3][3],*p,i;p=&a[0][0];for(i=0;i<9;i++)pEi]=i;for(i=0;i〈3;i++)printf("%d",a[l][i]);)程序运行后的输出结果是OA)012B)123C)234D)345(30)以下叙述中错误的是oA)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出B)数组名代表的是数组所占存储区的首地址,其值不可改变C)当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息D)可以通过赋初值的方式确定数组元素的个数(31)有以下程序ttdefineN20fun(inta口,intn,intm){inti,j;for(i=m;i>=n;i-)a[i+l]=a[i];)main()(inti,a[N]=(l,2,3,4,5,6,7,8,9,10);fun(a,2,9);for(i=0;i<5;i++)printfa[i]);)程序运行后的输出结果是.0A)10234B)12344C)12334D)12234(32)有以下程序main()(inta[3][2]={0},(*ptr)[2],i,j;for(i=0;i<2;i++){ptr=a+i;scanf(级d”,ptr);ptr++;}for(i=0;i<3;i++){for(j=0;j<2;j++)printf("%2d",a[i][j]);printf("\n");)}若运行时输入:123〈回车),则输出结果是。A)产生错误信息B)10C)12D)10203020000030(33)有以下程序prt(int*m,intn){inti;for(i=0;i}niainO(inta[]={l,2,3,4,5},i;prt(a,5);for(i=0;i<5;i++)printf("%d,",a[i]);)程序运行后的输出结果是。A)1,2,3,4,5,B)2,3,4,5,6,C)3,4,5,6,7,D)2,3,4,5,1,(34)有以下程序main(){inta[]={l,2,3,4,5,6,7,8,9,0},*p;for(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,C)0,1,2,3,4,5,6,7,8,9,D)1,1,1,1,1,1,1,1,1,1,(35)有以下程序#defineP3voidF(intx){return(P*x*x);}main(){printf(*%d\n*,F(3+5));}程序运行后的输出结果是.A)192B)29C)25D)编译出错(36)有以下程序main(){intc=35;printf("刎\n",c&c);}程序运行后的输出结果是。A)0B)70C)35D)1(37)以下叙述中正确的是oA)预处理命令行必须位于源文件的开头B)在源文件的一行上可以有多条预处理命令C)宏名必须用大写字母表示D)宏替换不占用程序的运行时间(38)若有以下说明和定义uniondt{inta;charb;doublec;}data;以下叙述中错误的是OA)data的每个成员起始地址都相同B)变量data所占的内存字节数与成员c所占字节数相等C)程序段:data.a=5;printf("%f\n”,data,c);输出结果为5.000000data可以作为函数的实参(39)以下语句或语句组中,能正确进行字符串赋值的是oA)char*sp;*sp="right!”;B)chars[10];s="right!”;C)chars[10];*s="right!”;D)char*sp="right!”;(40)设有如下说明typedefstructST{longa;intb;charc[2];}NEW;则下面叙述中正确的是oA)以上的说明形式非法B)ST是一个结构体类型C)NEW是一个结构体类型D)NEW是一个结构体变量(41)有以下程序main(){inta=l,b;for(b=l;b<=10;b++){if(a>=8)break;if(a%2==l){a+=5;continue;}a-=3;printfC%d\n?/,b);)程序运行后的输出结果是-A)3B)4C)5D)6(42)有以下程序main(){chars[]=*159*,*p;P=s;printf*p++);printf("%c”,*p++);)程序运行后的输出结果是。A)15B)16C)12D)59(43)有以下函数fun(char*a,char*b){while((*a!=,\0*)&&(*b!=,\0*)&&(*a==*b)){a++;b++;}return(*a-*b);)该函数的功能是oA)计算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;for(i=0;i<4;i++){for(j=0;j<=i;j++)printf(zz%4cz/,'");for(j=;j<4;j++)printf("为4d〃,num[i][j]);printf("\n");若要按以下形式输出数组右上半三角1234678111216则在程序下划线处应填入的是—A)i-1B)iC)i+1D)4-i(45)有以下程序point(char*p){p+=3;}main(){charb[4]={'a','b','c','d'},*p=b;point(p);printf(“肮\n",*p);)程序运行后的输出结果是.A)aB)bC)cD)d(46)程序中若有如下说明和定义语句charfun(char*);main()(char*s="one",a[5]={0},(*fl)()=fun,ch;以下选项中对函数fun的正确调用语句是oA)(*fl)(a);B)*fl(*s);C)fun(&a);D)ch=*f1(s);(47)有以下结构体说明和变量定义,如图所示:datanext datanext datanext IT -IT AIT >tp fq trstructnode{intdata;structnode*next;}*p,*q,*r;现要将q所指结点从链表中删除,同时要保持链表的连续,以下不能完成指定操作的语句是oA)P->next=q->next;B)p->next=p->next->next;C)p->next=r;D)p=q->next;(48)以下对结构体类型变量td的定义中,错误的是oA)typedefstructaaB)structaa{intn;{intn;floatm;floatm;}AA;}td;AAtd;structaatd;C)structD)struct{intn;{intn;floatm;floatm;}aa;}td;structaatd;(49)以下与函数fseek(fp,OL,SEEK-SET)有相同作用的是。A)feof(fp)B)ftell(fp)C)fgetc(fp)D)rewind(fp)(50)有以下程序#includevoidWriteStr(char*fn,char*str){FILE*fp;fp=fopen(fn,"w");fputs(str,fp);fclose(fp);)main(){WriteStr(z,tl.dat","start");WriteStrdat","end");}程序运行后,文件tl.dat中的内容是。A)startB)endC)startendD)endrt二、填空题(每空2分,共40分)请将每空的正确答案写在【1]至[20]序号的横线上,答在试卷上不得分。(1)某二叉树中度为2的结点有18个,则该二叉树中有【1】个叶子结点。(2)在面向对象方法中,类的实例称为[2]o(3)诊断和改正程序中错误的工作通常称为」。(4)在关系数据库中,把数据表示成二维表,每一个二维表称为【4】。(5)问题处理方案的正确而完整的描述称为【5】。(6)以下程序运行时,若从键盘输入:102030〈回车》,输出的结果是[6】。ttincludemain(){inti=0,j=0,k=0;scanf(,z%d%*d%d/z,&i,&j,&k);printf(,z%d%d%d\nzz,i,j,k);)(7)以下程序运行后的输出结果是_LZJ_。#defineS(x)4*x*x+lmainO{inti=6,j=8;printf("%d\n”,S(i+j));(8)以下程序运行后的输出结果是一【8】omainO{inta=3,b=4,c=5,t=99;if(bif(aprintf(z,%d%d%d\nz\a,b,c);)(9)以下程序运行后的输出结果是.【9】。meiinO{inta,b,c;a=10;b=20;c=(a%b<l)||(a/b>l);printf(z,%d%d%d\nz/,a,b,c);)(10)以下程序运行后的输出结果是【10】,main(){charcl,c2;for(cl=*0*,c2=,9';clprintf("\n");)(11)已知字符A的ASCH代码值为65,以下程序运行时若从键盘输入:B33<回车),则输出结果是【11】。Uincludemain(){chara,b;a=getchar();scanf&b);a=a‘A'+'O';b=b*2;printf(z/%c%c\n,z,a,b);)(12)以下程序中,fun函数的功能是求3行4列二维数组每行元素中的最大值。请填空。voidfun(int,int,int(*)[4],int*);mainO{inta[3][4]={{12,41,36,28},{19,33,15,27],{3,27,19,l}},b[3],i;fun(3,4,a,b);for(i=0;i<3;i++)printf("%4d",b[i]);printf('\n");}voidfun(intm,intn,intar[][4],int*br){inti,j,x;for(i=0;i{x=ar[i][0];for(j=0;j【12】二x;(13)以下程序运行后的输出结果是【13】。voidswap(intx,inty){intt;t=x;x=y;y=t;printf(,z%d%d”,x,y);}main(){inta=3,b=4;swap(a,b);printf(z,%d%d〃,a,b);}(14)以下程序运行后的输出结果是【14】。#includevoidfun(char*s,intp,intk){inti;for(i=p;i}main(){chars[]=,zabcdefg,z;fun(s,3,strlen(s));puts(s);)(15)以下程序运行后的输出结果是_LWL。#includemain(){charch[]=/,abcz,,x[3][4];inti;for(i=0;i<3;i++)strcpy(x[i],ch);for(i=0;i<3;i++)printf(〃%s〃,&x[i][i]);printf('\n");)(16)以下程序运行后的输出结果是【16】0fun(inta){intb=0;staticintc=3;b++;c++;return(a+b+c);)main(){inti,a=5;for(i=0;i<3;i++)printf(zz%d%dz,,i,fun(a));printf('\n");)(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;for(i=0;i<5;i++)printf(,z%dz,,m[i].k);printf(〃\n〃);)(18)以下程序中函数huiwen的功能是检查一个字符串是否是回文,当字符串是回文时,函数返回字符串:yes!,否则函数返回字符串:no!,并在主函数中输出,所谓回文即正向与反向的拼写都一样,例如:adgda。请填空。#includechar*huiwen(char*str){char*pl,*p2;inti,t=0;pl=str;p2=[18];for(i=0;i<=strlen(str)/2;i++)if(*pl++!=*p2--){t=l;break;}if【19】return("yes!");elsereturn("no!〃);}main(){charstr[50];printf("Input:〃);scanf(〃%s〃,str);printf("%s\rT,[20]);2005年4月全国计算机等级考试二级C语言笔试答案一、选择题1-5DBDCA6-10CBDDC11-15BACDB16-20CABAB21-25DABCB26-30ACDDC31-35CBBAD36-40CDCDC41-45BADBA46-50ADCDB二、填空题(1)19 (2)对象 (3)程序调试 (4)关系(5)算法(6)10300(7)81 (8)4599 (9)10200 (10)0918273645 (11)1B(12)br[i](13)4334 (14)abcfg(15)abcbcc(16)010111212(17)13431 (18)str+strlen(str)-l(19)t==0或!t(20)huiwen(str)2005年9月全国计算机等级考试二级C语言笔试试题及答案一、选择题(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.数据的逻辑结构属于线性结构,存储结构属于非线性结构一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率(5)下列描述中正确的是A.软件工程只是解决软件项目的管理问题B.软件工程主要解决软件产品的生产率问题C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则D.软件工程只是解决软件开发中的技术问题(6)在软件设计中,不属于过程设计工具的是PDL(过程设计语言)PAD图N-S图D.D.(7)下列叙述中正确的是A.软件交付使用后还需要进行维护B.软件一旦交付使用就不需要再进行维护C.软件交付使用后其生命周期就结束D.软件维护是指修复程序中被破坏的指令(8)数据库设计的根本目标是要解决A.数据共享问题B.数据安全问题C.大量数据存储问题D.简化数据维护(9)设有如下关系表:(10)数据库系统的核心是A.数据模型B.数据库管理系统C.数据库D.数据库管理员(11)以下叙述中错误的是A.用户所定义的标识符允许使用关键字B.用户所定义的标识符应尽量做到“见名知意”C.用户所定义的标识符必须以字母或下划线开头D.用户定义的标识符中,大、小写字母代表不同标识(12)以下叙述中错误的是A.C语句必须以分号结束B.复合语句在语法上被看作一条语句C.空语句出现在任何位置都不会影响程序运行D.赋值表达式末尾加分号就构成赋值语句(13)以下叙述中正确的是A.调用printf函数时,必须要有输出项B.使用putchar函数时,必须在之前包含头文件stdio.hC.在C语言中,整数可以以十二进制、八进制或十六进制的形式输出D.调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCH码(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.以上的说明形式非法NODE是一个结构体类型OLD是•个结构体类型OLD是一个结构体变量(17)以下叙述中错误的是C语言中对二进制文件的访问速度比文本文件快C语言中,随机文件以二进制代码形式存储数据C.语句FILEfp;定义了一个名为fp的文件指针D.C语言中的文本文件以ASCII码形式存储数据(18)当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是k%2k%2==l(k%2)!=0!k%2==l(19)以下不能正确计算代数式值的C语言表达式是l/3*sin(l/2)*sin(l/2)sin(0.5)*sin(0.5)/3pow(sin(0.5),2)/31/3.0*pow(sin(l.0/2),2)(20)以下能正确定义且赋初值的语句是intnl=n2=10;charc=32;floatf=f+l.1;doublex=12.3E2.5;(21)以下程序的功能是:给r输入数据后计算半径为r的圆面积s。程序在编译时出错。main()/*Beginning*/{intr;floats;scanf(z,%dz,,&r);s=*p*r*r;printfCzs=%f\nz,,s);)出错的原因是A.注释语句书写位置错误B.存放圆半径的变量r不应该定义为整型

C.输出语句中格式描述符非法D.计算圆面积的赋值语句中使用了非法变量(22)设有定义:intk=l,m=2;floatf=7;,则以下选项中错误的表达式是k=k>=k-k++k%int(f)k>=f>=m(23)设有定义:inta=2,b=3,c=4;,则以下选项中值为0的表达式是(!a==l)&&(!b==0)(aa&&ba||(b+b)&&(ca)(24)有以下程序段intk=0,a=l,b=2,c=3;k=ac?c:k;执行该程序段后,k的值是3B.2C.1D.0(25)设变量a、b、c、d和y都已正确定义并赋值。若有以下if语句if(a<b)if(c==d) y=0;elsey=l;该语句所表示的含义是a<6且3d且cwda<6且3d且cwdavb且c=dc#d(26)有以下程序段intn,t=l,s=0;scanf&n);do{s=s+t;t=t-2;}while(t!=n);为使此程序段不陷入死循环,从键盘输入的数据应该是A.任意正奇数B.任意负偶数C.任意正偶数D.任意负奇数(27)设变量已正确定义,则以下能正确计算f=n!的程序段是A.f=0;for(i=l;i<=n;i++)f*=i;f=l;for(i=l;i<=n;i++)f*=i;f=l;for(i=l;i>l;i++)f*=i;f=l;for(i=n;i>=2;i )f*=i;(28)设有定义:intnl=0,n2,*p=&n2,*q=&nl;,以下赋值语句中与n2=nl;语句等价的是*p=*q;p=q;*p=&nl;p=*q;(29)若有定义:intx=0,*p=&x;,则语句printf("%d\n",*p);的输出结果是A.随机值0x的地址p的地址(30)设函数fun的定义形式为voidfun(charch,floatx){…}则以下对函数fun的调用语句中,正确的是fun("abc”,3.0);t=funCD\16.5);funC65',2.8);fun(32,32);(31)有以下程序main(){inta[10]={l,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p+2;printf("d\n",*p+*q);)程序运行后的输出结果是161086(32)有以下程序main(){charp[]={"a',,b',,c'},q[]="abc";printf("%d%d\n”,sizeof(p),sizeof(q)););程序运行后的输出结果是44333443(33)有以下程序#definef(x)(x*x)main(){intil,i2;il=f(8)/f(4);i2=f(4+4)/f(2+2);printf(*%d,%d\n*,il,i2);)程序运行后的输出结果是64,284,44,364,64(34)有以下程序main(){charal=,M',a2='m';printf(*%c\n*,(al,a2));}以下叙述中正确的是A.程序输出大写字母MB.程序输出小写字母mC.格式说明符不足,编译出错D.程序运行时产生出错信息(35)有以下程序#includemain(){charcl=,T,c2=,2';cl=getchar();c2=getchar();putchar(cl);putchar(c2);)当运行时输入:a〈回车>后,以下叙述正确的是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){default:break;:n+=k;::n+=k;)k—;printf(畿d\n”,n);程序运行后的输出结果是0467(37)有以下程序main(){inta[]={2,4,6,8,10},y=0,x,*p;p=&a[l];for(x=1;x<3;x++)y+=p[x];printfC%d\nw,y);)程序运行后的输出结果是10111415(38)有以下程序voidsort(inta[],intn){inti,j,t;for(i=0;ifor(j=i+l;jif(a[i])main(){intaa[10]={l,2,3,4,5,6,7,8,9,10),i;sort(aa+2,5);for(i=0;i<10;i++)printf(*%d,*,aa[i]);printf('\n");)程序运行后的输出结果是TOC\o"1-5"\h\z1,2,3,4,5,6, 7, 8,9, 10,1,2,7,6,3,4, 5, 8,9, 10,1,2,7,6,5,4, 3, 8,9, 10,1,2,9,8,7,6, 5, 4,3, 10,(39)有以下程序voidsum(inta口){a[0]=a[-l]+a[l];}main(){inta[10]={l,2,3,4,5,6,7,8,9,10};sum(&a[2]);printf("%d\n",a[2]);程序运行后的输出结果是6758(40)有以下程序voidswapl(intc0[],intcl[]){intt;t=c0[0];c0[0]=cl[0];cl[0]=t;)voidswap2(int*c0,int*cl){intt;t=*c0;*c0=*cl;*cl=t;)main(){inta[2]={3,5},b[2]={3,5};swapl(a,a+1);swap2(&b[0],&b[l]);printf(*%d%d%d%d\n,z,a[0],a[l],b[0],b[l]);)程序运行后的输出结果是TOC\o"1-5"\h\z3 5 5 35 3 3 53 5 3 55 3 5 3(41)有以下程序#includemain(){charp[]={'a','b','c'},q[10]={,a,'b','c'};printf(*%d%d\n*,strlen(p),strlen(q));)以下叙述中正确的是A.在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3B.由于p数组中没有字符串结束符,长度不能确定;但q数组中字符串长度为3C.由于q数组中没有字符串结束符,长度不能确定;但p数组中字符串长度为3D.由于p和q数组中都没有字符串结束符,故长度都不能确定(42)有以下程序,其中函数f的功能是将多个字符串按字典顺序排序#includevoidf(char*p口,intn){char*t;inti,j;for(i=0;ifor(j=i+l;jif(strcmp(p[i],p[j])>0){t=p[i];p[i]=p[j];p[j]=t;})main(){char*p[5]={〃abc〃,“aabdfg”,〃abbd”,〃dcdbe〃,〃cd"};f(p,5);printf(/z%d\nz,,strlen(p[l]));)程序运行后的输出结果是2364(43)有以下程序#includevoidf(char*s,char*t){chark;k=*s;*s=*t;*t=k;s++;t—;if(*s)f(s,t);)main(){charstr[10]=,/abcdefgz,,*p;p=str+strlen(str)/2+1;f(p,p-2);printf(〃/s\n〃,str);)程序运行后的输出结果是abcdefggfedcbagbcdefaabedcfg(44)有以下程序floatfl(floatn){returnn*n;}floatf2(floatn){return2*n;}main(){float(*pl)(float),(*p2)(float),(*t)(float),yl,y2;pl=fl;p2=f2;yl=p2(pl(2.0));t=pl;pl=p2;p2=t;y2=p2(pl(2.0));printf(,z%3.Of,%3.0f\n”,yl,y2);程序运行后的输出结果是8,168,816,164,8(45)有以下程序inta=2;intf(intn){staticinta=3;intt=0;if(n%2){staticinta=4;t+=a++;}else{staticinta=5;t+=a++;}returnt+a++;)main(){ints=a,i;for(i=O;i<3;i++)s+=f(i);printf("%d\n',s);)程序运行后的输出结果是26282924(46)有以下程序#includestructSTU{intnum;floatTotalScore;};voidf(structSTUp){structSTUs[2]={{20044,550},{20045,537}}:p.num=s[1].num;p.TotalScore=s[l].TotalScore;)main(){structSTUs[2]={{20041,703},{20042,580}};f(s[0]);printf(*%d%3.0f\n*,s[0].num,s[0].TotalScore);)程序运行后的输出结果是20045537200445502004258020041703(47)有以下程序#includestructSTU{charname[10];intnum;};voidf(char*name,intnum){structSTUs[2]={{"SunDan”,20044},{"Penghua”,20045}};num=s[0].num;strcpy(name,s[0].name);)main(){structSTUs[2]={{"YangSan",20041},{"LiSiGuo",20042}},*p;p=&s[l];f(p->name,p->num);printfC'%s%d\nz,,p->name,p->num);)程序运行后的输出结果是SunDan20042SunDan20044LiSiGuo20042YangSan20041(48)有以下程序structSTU{charname[10];intnum;floatTotalScore;};voidf(structSTU*p){structSTUs[2]={{"SunDan”,20044,550},{"Penghua”,20045,537}},*q=s;++p;++q;*p=*q;)main(){structSTUs[3]={{"YangSan”,20041,703},{"LiSiGuo”,20042,580}};f(s);printf(*%s%d%3.0f\n*,s[1].name,s[l].num,s[1].TotalScore);)程序运行后的输出结果是SunDan20044550Penghua20045537LiSiGuo20042580SunDan20041703(49)以下程序的功能是进行位运算main(){unsignedchara,b;a=7*3:b=~4&3;printf(,z%d%d\n”,a,b);)程序运行后的输出结果是43737040(50)有以下程序#includemain(){FILE*fp;inti,k,n;fp=fopen("data,dat","w+");for(i=l;i<6;i++){fprintf(fp,z/%d",i);if(i%3==0)fprintf(fp,"\n");)rewind(fp);fscanf(fp, &k,&n);printf(/?%d%d\n”,k,n);fclose(fp);)程序运行后的输出结果是00123451412二、填空题(每空2分,共40分)请将每一个空的正确答案写在答题卡【1】至[20]序号的横线上,答在试卷上不得分。(1)数据管理技术发展过程经过人工管理、文件系统和数据库系统三个阶段,其中数据独立性最高的阶段是_LLJ_。(2)算法复杂度主要包括时间复杂度和【2】复杂度。(3)在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块(桩模块)。其中【3】的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果。--棵二叉树第六层(根结点为第一层)的结点数最多为【4】个。(5)数据结构分为逻辑结构和存储结构,循环队列属于【5】结构。(6)以下程序运行后的输出结果是【610main(){intx=0210;printf(螺X\n”,x);)(7)以下程序运行后的输出结果是[7】。main(){inta=l,b=2,c=3;if(c=a)printf("%d'n",c);elseprintfb);)(8)已有定义:double*p;,请写出完整的语句,利用malloc函数使p指向一个双精度型的动态存储单元【8】。(9)以下程序运行后的输出结果是19】。main(){charc;intn=100;floatf=10;doublex;x=f*=n/=(c=50);printf(/z%d%f\n〃,n,x);)(10)以下程序的功能是计算:s=l+12+123+1234+12345o请填空。main(){intt=0,s=0,i;for(i=l;i<=5;i++){t=i+[10];s=s+t;}printf("s=%d\n〃,s);)(ID已知字母A的ASCII码为65。以下程序运行后的输出结果是【11]。main(){chara,b;a='A'+'5'」3';b=a+'6'」2';printf(〃%d%c\n”,a,b);)(12)有以下程序intsub(intn){return(n/10+n);}main(){intx,y;scanf&x);y=sub(sub(sub(x)));printf(找d\n〃,y);)若运行时输入:1234<回车>,程序的输出结果是(13)以下函数sstrcatO的功能是实现字符串的连接,即将t所指字符串复制到s所指字符串的尾部。例如:s所指字符串为abed,t所指字符串为efgh,函数调用后s所指字符串为abcdefgh。请填空。#includevoidsstreat(char*s,char*t){intn;n=strlen(s);while(*(s+n)=【13]){s++;t++;})(14)以下程序运行后的输出结果是,ttincludechar*ss(char*s){char*p,t;p=s+l;t=*s;while(*p){*(pT)=*p;p++;}*(p-l)=t;returns;)main(){char*p,str[10]=/,abcdefgh//;p=ss(str);printf(z,%s\n//,p);)(15)以下程序运行后的输出结果是【15】。intf(inta口,intn){if(n>=1)returnf(a,n-1)+a[n-l];elsereturn0;)main(){intaa[5]={l,2,3,4,5},s;s=f(aa,5);printf("%d'n”,s);}(16)以下程序运行后的输出结果是【16】。structNODE{intnum;structNODE*next;);main(){structNODEs[3]={{1,''0'},{2,''0'},{3,''0'}},*p,*q,*r;intsum=0;s[0].next=s+l;s[l].next=s+2;s[2].next=s;p=s;q=p->next;r=q->next;sum+=q->next->num;sum+=r->next->next->num;printf("%d\n",sum);)(17)以下程序的功能是输出如下形式的方阵:13141516910111256781234请填空。main(){inti,j,x;for(j=4;j[17];j—){for(i=l;i<=4;i++){x=(jT)*4+【18];printf("M",x);)printf("\n");)(18)以下函数rotate的功能是:将a所指N行N列的二维数组中的最后一行放到b所指二维数组的第0列中,把a所指二维数组中的第0行放到b所指二维数组的最后一列中,b所指二维数组中其他数据不变。#defineN4voidrotate(inta[][N],intb[][N]){inti,j;for(i=0;i{bEi][N-l]=[19];[20]=a[N-l][i];}2005年9月全国计算机等级考试二级C语言笔试答案一、题答案1-5CACDC6-10DAABB11-15ACBBA16-20CCDAB21-25DCABC26-30DDABD31-35BCCAA36-40DCCAA41-45BCBAC46-50DABAD二、填空题(1)数据库系统(2)空间(3)驱动模块(4)32(5)存储结构881p=(double*)malloc(sizeof(double))220t*1067G10*tbcdefgha155>06a[0][i]b[i][0]2006年4月全国计算机等级考试二级C语言笔试试题及答案一、选择题(1〜10每题2分,11〜50每题1分,共60分)下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡的相应位置上,答在试卷上不得分。(1)下列选项中不属于结构化程序设计方法的是()oA)自顶向下B)逐步求精 C)模块化D)可复用(2)两个或两个以上模块之间关联的紧密程序称为()oA)耦合度B)内聚度C)复杂度D)数据传输特性(3)下列叙述正确的是()oA)软件测试应由程序开发者来完成B)程序经调试后一般不需要再测试C)软件维护只包括对程序代码的维护D)以上三种说法都不对(4)按照“后进先出”原则组织数据的数据结构是()0A)队列B)栈C)双向链表D)二叉树(5)下列叙述中正确的是()。A)线性链表是线性表的链式存储结构B)栈与队列是非线性结构C)双向链表非线性结构D)只有根节点的二叉树是线性结构(6)对如下二叉树进行后序遍历的结果为()oA)ABCDEFB)DBEAFCC)ABDECFD)DEBFCA(7)在深度为7的满二叉树中,叶子节点的个数为()oA)32B)31C)64D)63“商品”与“顾客”两个实体集之间的联系一般是()oA)一对…B)一对多C)多对一D)多对多(9)在E-R图中,用来表示实体的图形是()oA)矩形B)椭圆形C)菱形D)三角形(10)数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是()。A)DB包含DBS和DBMSB)DBMS包含DB和DBSC)DBS包含DB和DBMSD)没有任何关系(11)以下不合法的用户标识符是()□A)j2_KEYB)DoubleC)4dD)_8_

(12)以下不合法的数值常量是()oOilB)leiC)8.OEO.5D)Oxabcd(13)以下不合法的字符常量是()oA)'\018'B) C)'\\'D)'\xcc'(14)表达式表6-5/2+1.2+5%2的值是()。A)4.3B)4.8C)3.3D)3.8(15)以下能正确定义字符串的语句是()oA)charstr[]={,\064,};B)charstr=“\x43";C)charstr=";D)charstr[]="\O";(16)以下数组定义中错误的是()oA)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)若要求从键盘读入含有空格字符的字符串,应使用函数()oA)getc()B)gets()C)getchar()D)scanf()(18)以下四个程序中,完全正确的是()oA)#include<stdio.h>mainO;A)#include<stdio.h>mainO;{/*programming*/printf("'programming!\nz,C)#include<stdio.h>mainO{/*/*programming*/*/printf(z/programming!\n〃mainO{/*/programming/*/printf(^programming!\nzz);)D)ttinclude<stdio.h>mainO{/*programming*/printf(^programming!\nz?);)(19)若有定义:floatx=l.5;inta=l,b=3,c=2;,则正确的switch语句是()。A)switch(x){case1.0:printf(〃*\n")A)switch(x){case1.0:printf(〃*\n");case2.0:printf("**\n〃);}B)switch(int(x)){case1:printf("*\n");case2:printf(〃**\n");}C)switch(a+b)D)switch(a+b)C)switch(a+b)D)switch(a+b)1:printfC*\n");casec:printf(〃**\n〃);}case1:printf(〃*\n〃);1:printfC*\n");casec:printf(〃**\n〃);}case2+1:printf(〃**\n〃);}(20)若各选项中所用变量已正确定义,函数fun中通过return语句返回一个函数值,以下选项中错误的程序是()oTOC\o"1-5"\h\zA)mian() B)floatfun(inta,intb){ }{ x=fun(2,10); } mainOfloatfun(inta,intb){ } { x=f (i,j); )floatfun(int,int); D)mainOmainO {floatfun(inti,intj);{ x=fun(2, 10); } x=fun(i,j); }floatfun(inta,intb){ } floatfun(inta,intb){……}(21)在以下给出的表达式中,与while(E)中的(E)不等价的表达式是()oA)(!E==0)B)(E>0||E<0)C)(E==0)D)(E!=0)(22)要求通过while循环不断读入字符,当读入字母N时结束循环,若变量已正确定义以下正确的程序段是()owhile((ch=getchar())!='N')printf("%c”,ch);while(ch=getchar()!=,NJ)printfch);while(ch=getchar()==,N*)printf("%c”,ch);while((ch=getchar())==,N*)printf(z,%c/z,ch);(23)已定义以下函数()ointfun(int*p){return*p;}fun函数返回值是()0A)不确定的值 B)一个整数C)形参p中存放的值D)形参p的地址值(24)若有说明语句:double*p,a;,则能通过scanf语句正确给输入项读入数据的程序段是()oA)*p=&a;scanf p); B)*p=&a;scanfp);C)p=&a;scanf(,z%lf,z,*p); D)p=&a;scanf(,z%lf,z,p);(25)现有以下结构体说明和变量定义,如图所示,指针p、q、r分别指向一个链表连续的三个节点。structnode{chardata;structnode*next;}*p,*q,*r;datanext datanext datanextAI~~I HBI——I HCI—I-►tp tqtr现要将q和r所指向的节点前后交换位置,同时要保持链表的连续,以下不能完成此操作的语句是()oq->next=r->next;p->next=r;r->next=q;p->next=r;q->next=r->next;r->next=q;q->next=r->next;r->next=q;p->next=r;r->next=q;p->next=r;q->next=r->next;(26)有以下程序段:structst{intx;int*y;}*pt;inta[]={l,2),b[]={3,4};structstc[2]={10,a,20,b};pt=c;以下选项中表达式的值为11的是()oA)*pt->yB)pt->xC)++pt->xD)(pt++)->x(27)设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp)的返回值为A)EOFB)非0值C)0D)NULL(28)设有以下语句inta=l,b=2,c;c=a"(b«2);执行后,C的值为()oA)6B)7C)8D)9(29)有以下程序:#include<stdio.h>main()(charcl,c2,c3,c4,c5,c6;scanf("%c%c%c%c”,&cl,&c2,&c3,&c4);c5=getchar();c6=getchar();putchar(cl);putchar(c2);printf("%c%c\n”,c5,c6);)程序运行后,若从键盘输入(从第一列开始)123<回车)45678<回车〉则输出结果是()oA)1267B)1256C)1278D)1245(30)有以下程序:main()(inty=10;while(y-);printf("y=%d\n");)程序执行后的输出结果是()oA)y=0 B)y=TC)y=l D)while构成无限循环(31)有以下程序:main()(inta=0,b=0,c=0,d=0;if(a=l)b=l;c=2;elsed=3;printf(〃%d,%d,%d,%d\n〃,a,b,c,d);)程序输出()oA)0,1,2,OB)0,0,0,301,l,2,0D)编译有错(32)有以下程序:main()inti,j,x=0;for(i=0;i<2;i++)(x++;for(j=0;j<=3;j++){if(j%2)continue;x++;)x++;}printf("x=%d\n”,x);)程序执行后的输出结果是()oA)x=4B)x=8C)x=6D)x=12(33)有以下程序:intfunl(doublea){returna*=a;}intfun2(doublex,doubley)(doublea=0,b=0;a=funl(x);b=funl(y);return(int)(a+b);)main(){doublew;w=fun2(1.1,2.0); }程序执行后变量w中的值是()。A)5.21B)5C)5.0D)0.0(34)有以下程序:main(){inti,t[][3]={9,8,7,6,5,4,3,2,1);for(i=0;i<3;i++)printf(*%d*,t[2-i][i]);)程序执行后的输出结果是()OA)753B)3570369D)751(35)有以下程序:fun(charp[][10]){intn=0,i;for(i=0;i<7;i++)if(p[i][0]==T*)n++;returnn;)main(){charstr[][10]={"Mon","Tue","Wed","Thu","Fri","Sat","Sun"};printf("/d\n",fun(str));程序执行后的输出结果是()OA)1B)2C)3D)0(36)有以下程序:main(){inti,s=0,t[]={l,2,3,4,5,6,7,8,9};for(i=0;i<9;i+=2)s+=*(t+i);printf(z,%d\n,z,s);)程序执行后的输出结果是()oA)45B)20C)25D)36(37)有以下程序:voidfunl(char*p){char*q;q=P;while(*q!='\0'){ (*q)++;q++;})main(){chara[]={"Program"},*p;p=&a[3];funl(p);printf(〃%s\n〃,a);)程序执行后的输出结果是()oA)ProhsbnB)PrphsbnC)ProgsbnD)Program(38)有以下程序:voidswap(char*x,char*y){chart;t=*x;*x=*y;*y=t;)main(){char*sl="abc",*s2="123";swap(si,s2);printf(〃%s,%s\n/z,si,s2);)程序执行后的输出结果是()oA)123,abcB)abc,123C)lbc,a23D)321,cba(39)有以下程序:intfun(intn){if(n==l)return1;elsereturn(n+fun(n-1));)main(){intx;scanf(〃%d”,&x);x=fun(x);printf(z,%d\n,z,x);执行程序时,给变量X输入10,程序的输出结果是()oA)55B)54C)65D)45(40)有以下程序:intfun(intx[],intn){staticintsum=0,i;for(i=0;i<n;i++)sum+=x[i];returnsum;)main(){inta[]={l,2,3,4,5},b[]={6,7,8,9),s=0;s=fun(a,5)+fun(b,4);printf(〃%d\n〃,s);)程序执行后的输出结果是()oA)45B)50C)60D)55(41)有以下程序:main(){union{charch[2];intd;}s;s.d=0x4321;printf(,z%x,%x\n/z,s,ch[O],s.ch[l]);)在16位编译系统上,程序执行后的输出结果是()。A)21,43B)43,21C)43,00D)21,00(42)有以下程序:main(){char*p口={"3697","2584”};inti,j;longmun=0;for(i=0;i<2;i++){j=o;while(p[i][j]!='\0'){if(p[i][j]-0,)%2)mun=10*mun+p[i][j]-0);j+=2;})printf(/z%d\n/z,mun);)程序执行后的输出

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论