您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 数据通信与网络 > 2010年9月全国计算机等级考试二级C语言试题及答案
2010年9月全国计算机等级考试二级C语言笔试试题及答案一、选择题((1)-(10)每题2分,(11)-(50)每题1分.共60分))(1)下列选项中不属于软件生命周期开发阶段任务的是A)详细设计B)概要设计C)软件维护D)软件测试(2)树是结点的集合,它的根结点数目是A)有且只有1B)1或多于1C)0或1D)至少2(3)在面向对象方法中,实现信息隐蔽是依靠A)对象的继承B)对象的多态C)对象的封装D)对象的分类(4)程序设计语言的基本成分是数据成分、运算成分、控制成分和A)语句成分B)变量成分C)对象成分D)传输成分(5)冒泡排序在最坏情况下的比较次数是A)n/2B)nlog2nC)n(n-1)/2D)n(n+1)/2(6)下列叙述中,不属于软件需求规格说明书的作用的是A)作为确认测试和验收的依据B)反映出用户问题的结构,可以作为软件开发工作的基础和依据C)便于用户、开发人员进行理解和交流D)便于开发人员进行需求分析(7)下列叙述中错误的是A)一个C语言程序只能实现一种算法B)C程序可以由多个程序文件组成C)C程序可以由一个或多个函数组成D)一个函数可单独作为一个C程序文件存在(8)下列不属于软件工程的3个要素的是A)方法B)过程C)工具D)环境(9)下列叙述中正确的是A)数据库系统是一个独立的系统,不需要操作系统的支持B)数据库技术的根本目标是要解决数据的共享问题C)数据库管理系统就是数据库系统D)以上三种说法都不对(10)下列叙述中正确的是A)每个C程序文件中都必须有一个main()函数B)在C程序的函数中不能定义另一个函数C)C程序可以由一个或多个函数组成D)在C程序中main()函数的位置是固定的(11)将E-R图转换到关系模式时,实体与联系都可以表示成A)属性B)关系C)键D)域(12)下列定义变量的语句中错误的是A)doubleint_;B)int_int;C)charForD)floatUSS(13)下列叙述中正确的是A)C语言编译时不检查语法B)C语言的子程序有过程和函数两种C)C语言的函数可以嵌套定义D)C语言的函数可以嵌套调用(14)以下选项中,合法的一组C语言数值常量是A)0x8AB)12C).177D)028(15)以下叙述中正确的是A)构成C程序的基本单位是函数B)可以在一个函数中定义另一个函数C)main()函数必须放在其他函数之前D)所有被调用的函数一定要在调用之前进行定义(16)若在定义语句:inta,b,c,*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是A)scanf(%d,&p);B)scanf(%d%d%d,a,b,c);C)scanf(%d,p);D)scanf(%d,a,b,c);(17)有以下程序main(){intx,y,z;x=y=1;z=x++,y++,++y;printf(%d,%d,%d\n,x,y,z);}程序运行后的输出结果是A)2,2,3B)2,2,2C)2,3,1D)2,1,1(18)若已定义:inta=25,b=14,c=19;以下三目运算符(?:)所构成语句的执行后a=25&&b--=2&&c?printf(***a=%d,b=%d,c=%d\n,a,b,c):printf(###a=%d,b=%d,c=%d\n,a,b,c);程序输出的结果是A)***a=25,b=13,c=19B)***a=26,b=14,c=19C)###a=25,b=13,c=19D)###a=26,b=14,c=19(19)下列程序段的输出结果是inta=1234;floatb=123.456;doublec=12345.54321;printf(-,%2.1f,%2.1f,a,b,c);A)无输出B)12,123.5,12345.5C)1234,123.5,12345.5D)1234,123.4,1234.5(20)有以下程序main(){inta=0,b=0;a=10;/*给a赋值b=20;给b赋值*/printf(a+b=%d\n,a+b);/*输出计算结果*/}程序运行后输出结果是A)30B)a+b=30C)a+b=0D)出错(21)若运行以下程序时,从键盘输入ADescriptor(表示回车),则下面程序的运行结果是#includemain(){charc;intv0=1,v1=0,v2=0;do{switch(c=getchar()){case′a′:case′A′:case′e′:case′E′:case′i′:case′I′:case′o′:case′O′:case′u′:case′U′:v1+=1;default:v0+=1;v2+=1;}}while(c!=′\n′);printf(v0=%d,v1=%d,v2=%d\n,v0,v1,v2);}A)v0=11,v1=4,v2=11B)v0=8,v1=4,v2=8C)v0=7,v1=4,v2=7D)v0=13,v1=4,v2=12(22)有以下程序#includemain(){inty=9;for(y0;y--)if(y%3==0)printf(%d,--y);}程序的运行结果是A)732B)433C)852D)874(23)设有以下程序段intx=0,s=0;while(!x!=0)s+=++x;printf(%d,s);则A)运行程序段后输出0B)运行程序段后输出1C)程序段中的控制表达式是非法的D)程序段执行无限次(24)有以下程序fun(intx,inty){return(x+y);}main(){inta=1,b=2,c=3,sum;sum=fun((a++,b++b,a+b),c++);printf(%d\n,sum);}执行后的输出结果是A)5B)7C)8D)3(25)执行下面的程序段后,变量k中的值为intk=3,s[2];s[0]=k;k=s[1]*10;A)不定值B)35C)31D)20(26)以下叙述中错误的是A)改变函数形参的值,不会改变对应实参的值B)函数可以返回地址值C)可以给指针变量赋一个整数作为地址值D)当在程序的开头包含文件stdio.h时,可以给指针变量赋NULL(27)以下程序段的描述,正确的是x=-1;do{x=x*x;}while(!x);A)是死循环B)循环执行两次C)循环执行一次D)有语法错误(28)有以下程序fun(intx,inty){staticintm=0,i=2;i+=m+1;m=i+x+y;returnm;}main(){intj=1,m=I,k;k=fun(j,m);printf(%d,k);k=fun(j,m);printf(%d\n,k)}执行后的输出结果是A)5,5B)5,11C)11,11D)11,5(29)有以下程序fun(intx){intp;if(x==0║x==1)return(3);p=x-fun(x=2);retump;}main(){prinf(%d\n,fun(7));}执行后的输出结果是A)7B)3C)3D)0(30)在16位编译系统上,右有定义inta[]={10,20,30},*p=&a;,当执行p++;后,下列说法错误的是A)p向高地址移了一个字节B)p抽高地址移了一个存储单元C)p向高地址移了两个字节D)p与a+1等价(31)有以下程序main(){inta=1,b=3,c=5;int*p1=&a,*p2=&b,*p=&c;*p=*p1*(*p2);printf(%d\n,c);}执行后的输出结果是A)1B)2C)3D)4(32)下列程序执行后的输出结果是voidfunc1(inti);voidfunc2(inti);charst[]=hello,friend!;voidfunc1(inti){printf(%c,st[i]);if(i3){i+=2;func2(i);}}voidfunc2(inti){printf(%c,st[i]);if(i3){i+=2;func1(i);}}main(){inti=0;func1(i);printf(\n);}A)helloB)helC)hloD)hlm(33)在下述程序中,判断ij共执行的次数是main(){inti=0,j=10,k=2,s=0;for(;;){i+=k;if(ij){printf(%d,s);break;}s+=i;}}A)4B)7C)5D)6(34)以下函数返回a所指数组中最大值所在的下标值fun(int*a,intn){inti,j=0,p;p=j;for(i=j;iif(a[i]a[p]);return(p);}在下划线处应填入的内容是A)i=pB)a[p]=a[i]C)p=jD)p=i(35)下列程序执行后的输出结果是main(){inta[3][3],*p,i;p=&a[0][0];for(i=1;i9;i++)p[i]=i+1;printf(%d\n,a[1][2]);}A)3B)6C)9D)随机数(36)有以下程序#includevoidfun(int*a,intn)/*fun函数的功能是将a所指数组元素从大到小排序*/{intt,i,j;for(i=0;ifor(j=i+1;jif(a}main(){intc[10]={1,2,3,4,5,6,7,8,9,0},i;fun(c+4,6);for(i=0;i10;i++)printf(%d,,c);printf(\n);}程序运行的结果是A)1,2,3,4,5,6,7,8,9,0,B)0,9,8,7,6,5,1,2,3,4,C)0,9,8,7,6,5,4,3,2,1,D)1,2,3,4,9,8,7,6,5,0,(37)以下程序的输出结果是#includevoidprt(int*x,int*y,int*z){printf(%d,%d,%d\n,++*x,++*y,*(z++));}main(){inta=10,b=40,c=20;prt(&a,&b,&c);prt(&a,&b,&c);}A)11,42,3112,22,41B)11,41,2012,42,20C)11,21,4011,21,21D)11,41,2112,42,22(38)有以下程序:#includevoidfun(char*t,char*s){while(*t!=0)t++;while((*t++=*s++)!=0);}main(){charss[10]=”acc”,aa[10]=”bbxxyy”;fun(ss,aa);printf(“%s,%s\n”,ss,aa);}程序运行结果是A)accxyy,bbxxyyB)acc,bbxxyyC)accxxyy,bbxxyyD)accbbxxyy,bbxxyy(39)有以下程序#includemain(){FILE*fp;inti=20,j=30,k,n;fp=fopen(d1.dat,w);fprintf(fp,%d\n,i);fprintf(fp,%d\n,j);fclose(fp);fp=fopen(d1.dat,r);fscanf(fp,%d%d,&k,&n);printf(%d%d\n,k,n);fclose(fp);}程序运行后的输出结果是A)2030B)2050C)3050D)3020(40)有以下程序main(){intx[3][2]={0},I;for(I=0;I3;I++)scanf(%d,x[i]);printf(%3d%3d%3d\n,x[0][0],x[0][1],x[1][0]);}若运行时输入:246回车,则输出结果为A)200B)204C)240D)246(41)有以下程序intadd(inta,intb){return+b};}main(){intk,(*f)(),a=5,b=10;f=add;…}则以下函数调用语句错误的是A)k=(*f)(a,b);B)k=add(a,b);C)k=*f(a,b);D)k=f(a,b);(41)有以下程序#includestring.hmain(intargc
本文标题:2010年9月全国计算机等级考试二级C语言试题及答案
链接地址:https://www.777doc.com/doc-3067535 .html