全国计算机等级考试二级C语言模拟试题15
一、选择题(每题2分,共计70分) |
| 1.与十进制数200等值的十六进制数为 A)A8 B)A4 C)C8 D)C4 |
| A B C D |
| 2.DOS文件系统的组织结构属于 A)星形结构 B)网形结构 C)环形结构 D)树型结构 |
| A B C D |
| 3.对存储器按字节进行编址,若某存储器芯片共有10根地址线,则该存储器芯片的存储容量为 A)1KB B)2KB C)4KB D)8KB |
| A B C D |
| 4.在DOS环境下,代表键盘和显示器的设备文件名为 A)PRN B)CON C)NUL D)LPT |
| A B C D |
| 5.计算机网络的主要特点是 A)运算快 B)运算精度高 C)资源共享 D)人机交互 |
| A B C D |
| 6.磁盘处于写保护状态时其中的数据 A)不能读出,不能删改 B)可以读出,不能删改 C)不能读出,可以删改 D)可以读出,可以删改 |
| A B C D |
| 7.从Windows环境进入MS-DOS方式后,返回Windows环境的DOS命令为 A)EXIT B)QUIT C)RET D)MSDOS |
| A B C D |
| 8.在Windows环境下,若资源管理器左窗口中的某文件夹左边标有“+”标记,则表示 A)该文件夹为空 B)该文件夹中含有子文件夹 C)该文件夹中只包含有可执行文件 D)该文件夹中包含系统文件 |
| A B C D |
| 9.在Windows菜单中,暗淡的命令名项目表示该命令 A)暂时不能用 B)正在执行 C)包含下一层菜单 D)包含对话框 |
| A B C D |
| 10.在Windows环境下,单击当前窗口中的按钮 ,其功能是 A)将当前应用程序转为后台运行 B)退出Windows后再关机 C)终止当前应用程序的运行 D)退出Windows后重新启动计算机 |
| A B C D |
| 11.用C语言编写的代码程序 A)可立即执行 B)是一个源程序 C)经过编译即可执行 D)经过编译解释才能执行 |
| A B C D |
| 12.结构化程序由3种基本结构组成,3种基本结构组成的算法是 A)可以完成任何复杂的任务 B)只能完成部分复杂的任务 C)只能完成符合结构化任务 D)只能完成一些简单的任务 |
| A B C D |
| 13.以下定义语句中正确的是 A)char a=′A′b=′B′ B)float a=b=10.0; C)int a=10,*b=&a; D)float *a,b=&a; |
| A B C D |
| 14.下列选择中,不能用作标识符的是 A)_1234_ B)_1_2 C)int_2_ D)2_int_ |
| A B C D |
| 15.有以下定义语句 double a,b;int w; long c; 若各变量已正确赋值,则下列选择中正确的表达式是 A)a=a+b=b++ B)w%((int)a+b) C)(c+w)%(int)a D)w=a==b |
| A B C D |
| 16.以下程序的输出结果是 main() {int m=3,n=4,x; x=-m++; x=x+8/++n; printf("%d\n",x); }; A)3 B)5 C)-1 D)-2 |
| A B C D |
| 17.以下程序的输出结果是 main() {char a=′a′,b; printf("%c,",++a); printf("%c\n",b=a++); } A)b,b B)b,c C)a,b D)a,c |
| A B C D |
| 18.main() {int m=0256,n=256; printf("%o%o\n",m,n); } A)02560400 B)0256256 C)256400 D)400400 |
| A B C D |
| 19.以下程序的输出结果是 main() {int a=666,b=888; printf("%d\n",a,b); } A)错误信息 B)666 C)888 D)666,888 |
| A B C D |
| 20.以下程序的输出结果是 main() {int i; for(i=0;i<3;i++) switch(i){ case 0:printf("%d",i); case 2:printf("%d",i); default:printf("%d",i); } } A)022111 B)021021 C)000122 D)012 |
| A B C D |
| 21.若x和y代表整型数,以下表达式中不能正确表示数据关系|x-y|<10的是 A)abs(x-y)<10 B)x-y>-10&&x-y<10 C)!(x-y)<-10‖!(y-x)>10 D)(x-y)*(x-y)<100 |
| A B C D |
| 22.以下程序的输出结果是 main() {int a=3,b=4,c=5,d=2; if(a>b) if(b>c) printf("%d",d+++1); else printf("%d",++d+1); printf("%d\n",d); } A)2 B)3 C)43 D)44 |
| A B C D |
| 23.下列条件语句中,功能与其他语句不同的是 A)if(a)printf("%d\n",x);elseprintf("%d\n",y); B)if(a==0)printf("%d\n",y);elseprintf("%d\n",x); C)if(a!=0)printf("%d\n",x);elseprintf("%d\n",y); D)if(a==0)printf("%d\n",x);elseprintf("%d\n",y); |
| A B C D |
| 24.以下程序的输出结果是 main() {int i=0,s=0; for(;;) { if(i==3‖i==5)continue; if(i==6)break; i++; s+=i; }; printf("%d\n",s); } A)10 B)13 C)21 D)程序进入死循环 |
| A B C D |
| 25.若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是 A)for(i=1,p=1;i<5;i++)p*=i; B)for(i=1;i<=5;i++){p=1;p*=i;} C)i=1;p=1;while(i<=5){p*=i;i++;} D)i=1;p=1;do{p*=i;i++;}while(i<=5); |
| A B C D |
| 26.有以下程序 main() {char a,b,c,d; scanf("%c,%c,%d,%d",&a,&b,&c,&d); printf("%c,%c,%c,%c\n",a,b,c,d); } 若运行时从健盘上输入:6,5,65,66<回车>。则输出结果是 A)6,5,A,B B)6,5,65,66 C)6,5,6,5 D)6,5,6,6 |
| A B C D |
| 27.以下能正确定义二维数组的是 A)int a [][3]; B)int a[][3]={2*3}; C)int a[][3]={}; D)int a[2][3]={{1},{2},{3,4}}; |
| A B C D |
| 28.以下程序的输出结果是 int f(inta) {return a%2;} main() {int s[8]={1,3,5,2,4,6},i,d=0; for(i=0;f(s[i]);i++)d+=s[i]; printf("%d\n",d); } A)9 B)11 C)19 D)21 |
| A B C D |
| 29.若有以下说明和语句int c[4][5],(*p)[5];p=c;能够正确引用c数组元素的是 A)p+1 B)*(p+3) C)*(p+1)+3 D)*(p[0]+2) |
| A B C D |
| 30.以下程序的输出结果是 main() {int a=7,b=8,*p,*q,*r; p=&a;q=&b; r=p;p=q;q=r; printf("%d,%d,%d,%d\n",*p,*q,a,b); } A)8,7,8,7 B)7,8,7,8 C)8,7,7,8 D)7,8,8,7 |
| A B C D |
| 31.s1和s1已正确定义并分别指向两个字符串。若要求:当s1所指串大于s2所指串时,执行语句S;则以下选项中正确的是 A)if(s1>s2)S; B)if(strcmp(s1,s2))S; C)if(strcmp(s2,s1)>0)S; D)if(strcmp(s1,s2)>0)S; |
| A B C D |
| 32.设有定义语句int x[6]={2,4,6,8,5,7},*p=x,i;要求依次输出x数组6个元素中的值,不能完成此操作的语句是 A)for(i=0;i<6;i++)printf("%2d",*(p++)); B)for(i=0;i<6;i++)printf("%2d",*(p+i)); C)for(i=0;i<6;i++)printf("%2d",*p++); D)for(i=0;i<6;i++)printf("%2d",(*p)++); |
| A B C D |
| 33.以下程序的输出结果是 #include main() {int a[]={1,2,3,4,5,6,7,8,9,10,11,12,},*p=a+5,*q=NULL; *q=*(q+5); printf("%d%d\n",*p,*q); } A)运行后报错 B)66 C)611 D)510 |
| A B C D |
| 34.设有以下定义和语句int a[3][2]={1,2,3,4,5,6},*p[3]; p[0]=a[1]; 则*(p[0]+1) 所代表的数组元素是 A)a[0][1] B)a[1][0] C)a[1][1] D)a[1][2] |
| A B C D |
| 35.以下程序的输出结果是 main() {char str[][10]={"china","Beijing"},*p=str; printf("%s\n",p+10); } A)China B)Beijing C)ng D)ing |
| A B C D |
| 37.以下程序的输出结果是 main() {char s[]="ABCD",*p; for(p=s+1;p A)ABCD B)A BCD B CD C D D C)B D)BCD C CD D D |
| A B C D |
| 38.在函数调用过程中,如果函数funA调用了函数funB,函数funB又调用了函数funA,则 A)称为函数的直接递归调用 B)称为函数的间接递归调用 C)称为函数的循环调用 D)C语言中不允许这样的递归调用 |
| A B C D |
| 39.已有定义:int i,a[10],*p;,则合法的赋值语句是 A)p=100; B)p=a[5]; C)p=a[2]+2; D)p=a+2 |
| A B C D |
| 40.以下叙述中正确的是 A)局部变量说明为static的存储类,其生存期将得到延长 B)全局变量说明为static存储类,其作用域将被扩大 C)任何存储类的变量在末赋初值时,其值都是不确定的 D)形参可以使用的存储类说明符与局变量完全相同 |
| A B C D |
| 41.设有定义的语句:char c1=92,c2=92;,则以下表达式中值为零的是 A)c1^c2 B)c1&c2 C)~c2 D)c1|c2 |