全国计算机等级考试二级笔试试卷(C语言),2003年4月第1页,共15页二级C语言笔试真题及答案(考试时间120分钟,满分100分)一、选择题((1)~(40)每小题1分,(41)~(55)每小题2分,共60分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。(1)用8位无符号二进制数能表示的最大十进制数为A)127B)128C)255D)256(2)在64位高档微机中,一个字长所占的二进制位数为A)8B)16C)32D)64(3)在Windows环境下,为了复制一个对象,在用鼠标拖动该对象时应同时按住A)Alt键B)Esc键C)Shift键D)Ctrl键(4)在Windows菜单中,暗淡(灰色)的命令项表示该命令A)暂时不能用B)正在执行C)包含下一层菜单D)包含对话框(5)在DOS环境下,为了得到TYPE命令的帮助信息,正确的DOS命令为A)TYPEB)TYPE/HC)TYPE/*D)TYPE/?(6)下列选项中,能作为合法DOS文件名的是A)ANP/A.DATB)ABCCOMC)ECD.BASICD)XY+Z.TXT(7)下列叙述中正确的是A)在Windows环境下,最大化的窗口是不能移动的B)在Windows环境下,应用程序窗口最小化后,该应用程序暂停执行C)在Windows环境下,只有最小化的窗口才能关闭D)在Windows环境下,不能关闭最大化的窗口(8)在Windows环境下,工具栏中的复制按钮是A)B)C)D)(9)在Windows98环境下,若要将整个屏幕上显示的内容存入剪贴板,可以按A)Ctrl+PrintScreen键B)Alt+PrintScree键C)Shift+PrintScreen键D)PrintScreen键(10)目前,计算机病毒扩散最快的途径是A)通过软件复制B)通过网络传播C)通过磁盘考贝D)运行游戏软件(11)以下叙述中正确的是A)C语言比其他语言高级全国计算机等级考试二级笔试试卷(C语言),2003年4月第2页,共15页B)C语言可以不用编译就能被计算机识别执行C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D)C语言出现的最晚,具有其他语言的一切优点(12)C语言中用于结构化程序设计的三种基本结构是A)顺序结构、选择结构、循环结构B)if、switch、breakC)for、while、do-whileD)if、for、continue(13)在一个C程序中A)main函数必须出现在所有函数之前B)main函数可以在任何地方出现C)main函数必须出现在所有函数之后D)main函数必须出现在固定位置(14)下列叙述中正确的是A)C语言中既有逻辑类型也有集合类型B)C语言中没有逻辑类型但有集合类型C)C语言中有逻辑类型但没有集合类型D)C语言中既没有逻辑类型也没有集合类型(15)下列关于C语言用户标识符的叙述中正确的是用户标识符中可以出现在下划线和中划线(减号)用户标识符中不可以出现中划线,但可以出现下划线用户标识符中可以出现下划线,但不可以放在用户标识符的开头用户标识符中可以出现在下划线和数字,它们都可以放在用户标识符的开头(16)若有以下程序段(n所赋的是八进制数)intm=32767,n=032767printf(%d,%o/n,m,n);执行后输出结果是A)32767,32767B)32767,032767C)32767,77777D)32767,077777(17)下列关于单目运算符++、--的叙述中正确的是A)它们的运算对象可以是任何变量和常量B)它们的运算对象可以是char型变量和int型变量,但不能是float型变量C)它们的运算对象可以是int型变量,但不能是double型变量和float型变量D)它们的运算对象可以是char型变量、int型变量和float型变量(18)若有以下程序段intm=0xabc,n=0xabc;m-=n;printf(%X\n,m);执行后输出结果是A)0X0B)0x0C)0D)0XABC全国计算机等级考试二级笔试试卷(C语言),2003年4月第3页,共15页(19)有以下程序段intm=0,n=0;charc=‘a’;scanf(%d%c%d,&m,&c,&n);printf(%d,%c,%d\n,m,c,n);若从键盘上输入:10A10回车,则输出结果是:A)10,A,10B)10,a,10C)10,a,0D)10,A,0(20)有以下程序main(){inti;for(i=0;i3;i++)switch(i){case1:printf(%d,i);case2:printf(%d,i);default:printf(%d,i);}}执行后输出结果是A)011122B)012C)012020D)120(21)有以下程序main(){inti=1,j=1,k=2;if((j++‖k++)&&i++)printf(%d,%d,%d\n,i,j,k);}执行后输出结果是A)1,1,2B)2,2,1C)2,2,2D)2,2,3(22)有以下程序main(){inta=5,b=4,c=3,d=2;if(abc)printf(%d\n,d);elseif((c-1=d)==1)printf(%d\n,d+1);elseprintf(%d\n,d+2)}执行后输出结果是A)2B)3C)4D)编译时有错,无结果全国计算机等级考试二级笔试试卷(C语言),2003年4月第4页,共15页(23)有以下程序main(){intp[7]={11,13,14,15,16,17,18},i=0,k=0;while(i7&&p[i]%2){k=k+p[i];i++;}printf(%d\n,k);}执行后输出结果是A)58B)56C)45D)24(24)有以下程序main(){inti=0,s=0;do{if(i%2){i++;continue;}i++;s+=i;}while(i7);printf(%d\n,s);}执行后输出结果是A)16B)12C)28D)21(25)有以下程序main(){inti=10,j=1;printf(%d,%d\n,i--,++j);}执行后输出结果是A)9,2B)10,2C)9,1D)10,1(26)有以下程序main(){chara,b,c,*d;a=’\’;b=‘\xbc’;c=‘\0xab’;d=\017;print(%c%c%c\n,a,b,c,*d);}编译时出现错误,以下叙述中正确的是A)程序中只有a=’\’;语句不正确B)b=‘\xbc’;语句不正确C)d=\0127;语句不正确D)a=’\’;和c=‘\0xab’;语句都不正确全国计算机等级考试二级笔试试卷(C语言),2003年4月第5页,共15页(27)有以下程序intfl(intx,inty){returnxy?x:y;}intf2(intx,inty){returnxy?y:x;}main(){inta=4,b=3,c=5,d,e,f;d=f1(a,b);d=f1(d,c);e=f2(a,b);e=f2(e,c);f=a+b+c-d-e;printf(%d,%d,%d\n,d,f,e);}执行后输出结果是A)3,4,5B)5,3,4C)5,4,3D)3,5,4(28)有如下程序voidf(intx,inty){intt;if(xy){t=x;x=y;y=t;}}main(){inta=4,b=3,c=5;f(a,b);f(a,c);f(b,c);printf(%d,%d,%d\n,a,b,c);}执行后输出结果是A)3,4,5B)5,3,4C)5,4,3D)4,3,5(29)若有以下定义和语句#includestdio.hinta=4,b=3,*p,*q,*w;p=&a;q=&b;w=q;q=NULL;则以下选项中错误的语句是A)*q=0;B)w=p;C)*p=a;D)*p=*w;(30)有以下程序int*f(int*x,int*y){if(*x*y)returnx;elsereturny;全国计算机等级考试二级笔试试卷(C语言),2003年4月第6页,共15页}main(){inta=7,b=8,*p,*q,*r};}执行后输出结果是A)7,8,8B)7,8,7C)8,7,7D)8,7,8(31)有以下程序main(){char*s[]={one,two,three},*p;p=s[1];printf(%c,%s\n,*(p+1),s[0]);}执行后输出结果是A)n,twoB)t,oneC)w,oneD)o,two(32)有以下程序main(){intx[8]={8,7,6,5,0,0},*s;s=x+3printf(%d\n,s[2]);}执行后输出结果是A)随机值B)0C)5D)6(33)以下能正确定义数组并正确赋初值的语句是A)intN=5,b[N][N];B)inta[1][2]={{1},{3}};C)intc[2][]={{1,2},{3,4}};D)intd[3][2]={{1,2},{34}};(34)有以下程序main(){intm[][3]={1,4,7,2,5,8,3,6,9};inti,j,k=2;for(i=0;i3;i++){printf(%d,m[k][i]);}}执行后输出结果是A)456B)258C)369D)789(35)以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。#defineN10voidarrin(intx[N])全国计算机等级考试二级笔试试卷(C语言),2003年4月第7页,共15页{inti=0;while(iN)scanf(%d,);}在下划线处应填入的是A)x+iB)&x[i+1]C)x+(i++)D)&x[++i](36)有以下程序main(){chars[]=\n123\\;printf(%d,%d\n,strlen(s),sizeof(s));}执行后输出结果是A)赋初值的字符串有错B)6,7C)5,6D)6,6(37)阅读以下函数fun(char*s1,char*s2){inti=0;while(s1[i]==s2[i]&&s2[i]!=‘\0’)i++;return(s1[i]==&&s2{i}!==‘\0’);}此函数的功能是A)将s2所指字符串赋给s1B)比较s1和s2所指字符串的大小,若s1比s2的大,函数值为1,否则函数值为0C)比较s1和s2所指字符串是否相等,若相等,函数值为1,否则函数值为0D)比较s1和s2所指字符串的长度,若s1比s2的长,函数值为1,否则函数值为0(38)以下叙述中正确的是A)全局变量的作用域一定比局部变量的作用域范围大B)静态(static)类别变量的生存期贯穿于整个程序的运行期间C)函数的形参都属于全局变量D)未在定义语句中赋初值的auto变量和static变量的初值都是随机值(39)设有如下说明typedefstruct{intn;charc;doublex;}STD;则以下选项中,能正确定义结构体数组并赋初值的语句是A)STDtt[2]={{1,'A',62},{2,'B',75}};B)STDtt[2]={1,A,62},2,B,75};C)structtt[2]={{1,'A'},{2,'B'}};D)structtt[2]={{1,A,62.5},{2,B,75.0}};全国计算机等级考试二级笔试试卷(C语言),2003年4月第8页,共15页(40)有以下程序main(){union{unsignedintn;unsignedcharc;}u1;ul.c=`A`;printf(%c\n,u1.n);}执行后输出结果是A)产生语法错B)随机值C)AD)65(41)有以下程序main(){charstr[]=xyz,*ps=str;while(*ps)ps++;for(ps--;ps-str=0;ps--)