Queena兜兜
2010年9月全国计算机等级考试二级C语言笔试试题及答案一、选择题((1)-(10)每题2分,(11)-(50)每题1分.共60分))(1)下列选项中不属于软件生命周期开发阶段任务的是 A)详细设计 B)概要设计 C)软件维护 D)软件测试(2)树是结点的集合,它的根结点数目是A)有且只有1 B)1或多于1 C)0或1 D)至少2(3)在面向对象方法中,实现信息隐蔽是依靠A)对象的继承 B)对象的多态 C)对象的封装 D)对象的分类(4)程序设计语言的基本成分是数据成分、运算成分、控制成分和 A)语句成分 B)变量成分 C)对象成分 D)传输成分(5)冒泡排序在最坏情况下的比较次数是 A)n/2 B)nlog2n C)n(n-1)/2 D)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)double int_; B)int _int; C)char For D)float USS(13)下列叙述中正确的是 A)C语言编译时不检查语法 B)C语言的子程序有过程和函数两种 C)C语言的函数可以嵌套定义 D)C语言的函数可以嵌套调用(14)以下选项中,合法的一组C语言数值常量是A) 0x8A B)12 C).177 D) 028(15)以下叙述中正确的是 A)构成C程序的基本单位是函数 B)可以在一个函数中定义另一个函数 C)main()函数必须放在其他函数之前 D)所有被调用的函数一定要在调用之前进行定义 (16)若在定义语句:int a,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() {int x,y,z; x=y=1; z=x++,y++,++y; printf("%d,%d,%d\n",x,y,z); } 程序运行后的输出结果是 A)2,2,3 B)2,2,2 C)2,3,1 D)2,1,1(18) 若已定义:int a=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=19 B)***a=26,b=14,c=19 C)### a=25,b=13,c=19 D)### a=26,b=14,c=19 (19)下列程序段的输出结果是 int a=1234; float b=; double c=; printf("-,%",a,b,c); A)无输出 B)12, C)1234, D)1234, (20)有以下程序 main() {int a=0,b=0; a=10; /*给a赋值 b=20; 给b赋值 */ printf("a+b=%d\n",a+b); /* 输出计算结果 */ } 程序运行后输出结果是 A)30 B)a+b=30 C)a+b=0 D)出错(21)若运行以下程序时,从键盘输入 ADescriptor(表示回车),则下面程序的运行结果是 #include main() { char c; int v0=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=11 B)v0=8,v1=4,v2=8 C)v0=7,v1=4,v2=7 D)v0=13,v1=4,v2=12 (22) 有以下程序#includemain(){int y=9;for( y>0;y--)if(y%3= =0) printf("%d",--y);}程序的运行结果是A)732 B)433 C)852 D)874(23) 设有以下程序段 int x=0,s=0; while(!x!=0)s+=++x; printf("%d",s); 则 A)运行程序段后输出0 B)运行程序段后输出1 C)程序段中的控制表达式是非法的 D)程序段执行无限次 (24)有以下程序 fun(int x,int y){return(x+y);} main() {int a=1,b=2,c=3,sum; sum=fun((a++,b++b,a+b),c++); printf("%d\n",sum); } 执行后的输出结果是 A)5 B)7 C)8 D)3(25)执行下面的程序段后,变量k中的值为 int k=3, s[2]; s[0]=k; k=s[1]*10; A)不定值 B)35 C)31 D)20 (26)以下叙述中错误的是A)改变函数形参的值,不会改变对应实参的值B)函数可以返回地址值C)可以给指针变量赋一个整数作为地址值D)当在程序的开头包含文件时,可以给指针变量赋NULL(27)以下程序段的描述,正确的是 x=-1; do {x=x*x;} while(!x); A)是死循环 B)循环执行两次 C)循环执行一次 D)有语法错误 (28)有以下程序 fun(int x,int y) {static int m=0,i=2; i+=m+1;m=i+x+y; return m; } main() {int j=1,m=I,k; k=fun(j,m); printf("%d",k); k=fun(j,m); printf("%d\n",k) } 执行后的输出结果是A)5,5 B)5,11 C)11,11 D)11,5(29)有以下程序 fun(int x) {int p; if(x==0║x= =1) return(3); p=x-fun(x=2); retum p; }main() { prinf("%d\n",fun(7));} 执行后的输出结果是A)7 B)3 C)3 D)0(30)在16位编译系统上,右有定义int a[ ]={10,20,30},*p=&a;,当执行p++;后,下列说法错误的是 A)p向高地址移了一个字节 B)p抽高地址移了一个存储单元C)p向高地址移了两个字节 D)p与a+1等价(31)有以下程序 main() {int a=1,b=3,c=5; int *p1=&a,*p2=&b,*p=&c; *p=*p1*(*p2); printf("%d\n",c); } 执行后的输出结果是A)1 B)2 C)3 D)4(32)下列程序执行后的输出结果是 void func1(int i); void func2(int i); char st[]="hello,friend!"; void func1(int i) { printf("%c",st[i]); if(i<3){i+=2;func2(i);} } void func2(int i) { printf("%c",st[i]); if(i<3){i+=2;func1(i);} } main() { int i=0; func1(i); printf("\n");} A)hello B)hel C)hlo D)hlm (33)在下述程序中,判断i>j共执行的次数是 main() { int i=0, j=10, k=2, s=0; for (;;) { i+=k; if(i>j) { printf("%d",s); break; } s+=i; } } A)4 B)7 C)5 D)6 (34)以下函数返回a所指数组中最大值所在的下标值 fun(int *a,int n) { int i,j=0,p; p=j; for(i=j;iif(a[i]>a[p]); return(p); } 在下划线处应填入的内容是 A)i=p B)a[p]=a[i] C)p=j D)p=i (35)下列程序执行后的输出结果是 main() { int a[3][3], *p,i; p=&a[0][0]; for(i=1; i<9; i++)p[i]=i+1; printf("%d\n",a[1][2]); } A)3 B)6 C)9 D)随机数 (36) 有以下程序#includevoid fun(int *a,int n)/*fun函数的功能是将a所指数组元素从大到小排序*/{int t,i,j;for(i=0;ifor(j=i+1;jif (a}main(){int c[10]={1,2,3,4,5,6,7,8,9,0},i;fun(c+4,6);for (i=0;i<10;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)以下程序的输出结果是#include void prt (int *x, int*y, int*z) { printf("%d,%d,%d\n",++*x,++*y,*(z++));} main() { int a=10,b=40,c=20; prt (&a,&b,&c); prt (&a,&b,&c); } A)11,42, 31 12,22,41 B)11,41,20 12,42,20 C)11,21,40 11,21,21 D)11,41,21 12,42,22 (38) 有以下程序:#include void fun(char *t,char *s){while(*t!=0)t++;while((*t++=*s++)!=0);}main(){char ss[10]=”acc”,aa[10]=”bbxxyy”;fun(ss,aa);printf(“%s,%s\n”,ss,aa);}程序运行结果是A) accxyy , bbxxyy B) acc, bbxxyyC) accxxyy,bbxxyy D) accbbxxyy,bbxxyy(39) 有以下程序 #include main() { FILE *fp; int i=20,j=30,k,n; fp=fopen("","w"); fprintf(fp,"%d\n",i);fprintf(fp,"%d\n",j); fclose(fp); fp=fopen("","r"); fscanf(fp,"%d%d",&k,&n); printf("%d %d\n",k,n); fclose(fp); } 程序运行后的输出结果是 A)20 30 B)20 50 C)30 50 D)30 20 (40) 有以下程序 main() {int x[3][2]={0},I; for(I=0;I<3;I++) scanf("%d",x[i]); printf("%3d%3d%3d\n",x[0][0],x[0][1],x[1][0]); } 若运行时输入:246<回车>,则输出结果为A)2 0 0 B)2 0 4 C)2 4 0 D)2 4 6(41)有以下程序 int add(int a,int b){return+b};} main() {int k,(*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)有以下程序 #include <> main(int argc,char *argv[]) {int i=1,n=0; while(i
白骨精6699
备考全国计算机二级C语言考试的小伙伴们,复习的都怎么样了呢?环球青藤小编发布了2020年计算机二级C语言考试每日一练供大家参考复习,小伙伴们快来做一做,测试一下自己吧!了解更多全国计算机二级C语言备考资料敬请关注环球青藤计算机二级频道。2020年计算机二级C语言考试每日一练(6月16日)1.下列关于数据库设计的叙述中,正确的是()。A.在需求分析阶段建立数据字典B.在概念设计阶段建立数据字典C.在逻辑设计阶段建立数据字典D.在物理设计阶段建立数据字典答案:A2.数据库系统的三级模式不包括()。A.概念模式B.内模式C.外模式D.数据模式答案:D3.以下选项中,不合法的c语言用户标识符是()。 - - 答案:C4.若变量均已正确定义并赋值,以下合法的C语言赋值语句是()。;;;:答案:A5.( )是构成C语言程序的基本单位。A、函数B、过程C、子程序D、子例程答案:A更多2020年计算机二级C语言考试每日一练试题,请继续关注环球青藤计算机二级频道。需要及时了解考试动态的小伙伴可“ 免费预约短信提醒”届时环球青藤会及时为大家推送2020年计算机二级考试相关信息提醒。环球青藤友情提示:对于想要参加计算机二级考试的小伙伴们,环球青藤特地为您准备了计算机二级考试资料,如有需要请点击文章下方“免费下载>>>计算机二级考试资料”下载学习。
优质考试培训问答知识库