2000-2001年二级C语言笔试真题及答案2
2000年4月二级C语言笔试真题及答案(考试时间:120分钟,满分100分)一、选择题((1)--(40)每小题1分,(41)--(50)每小题2分,共60分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项在答题卡相应位置上涂黑,答在试卷上不得分。(1)下列述叙中正确的是A)显示器和打印机都是输出设备B)显示器只能显示字符C)通常的彩色显示器都有7种颜色D)打印机只能打印字符和表格(2)微型计算机中运算器的主要功能是进行A)算术运算B)逻辑运算C)算术和逻辑运算D)初等函数运算(3)COMMAND。COM是DOS系统的最外层模块,通常称之为A)引导程序B)输入输出系统C)命令处理系统D)文件管理系统(4)电子邮件是A)网络信息检索服务B)通过Web网页发布的公告信息C)通过网络实时交互的信息传递方式D)一种利用网络交换信息的非交互式服务(5)和十进制数225相等的二进制数是A)11101110B)11111110C)10000000D)11111111(6)下列叙述中正确的是A)指令由操作数和操作码两部分组成B)常用参数xxMB表示计算机的速度C)计算机的一个字长总是等于两个字节D)计算机语言是完成某一任务的指令集(7)计算机的内存储器比外存储器A)价格便宜B)存储容量大C)读写速度快D)读写速度慢(8)设当前盘为C盘,执行DOS命令"COPYB:A.TXTPRN"之后,结果是A)B盘上的A.TXT文件被复制到C盘的PRN文件B)屏幕上显示B盘上的A.TXT文件内容C)B盘上的A.TXT文件内容在打印机上输出D)B盘上的A.TXT文件被复制到B盘上的PRN文件(9)要将当前盘当前目录下的两个文件X1.TXT和B1.TXT连接起来之后存入B盘当前目录下并且命名为Z.TXT,无论B盘当前目录是什么,完成这件任务可以使用的命令是A)COPYA:X1.TXT+C:B1.TXTZ.TXTB)COPYX1.TXT+C:WSB1.TXTB:Z.TXTC)COPYA:X1.TXT+C:WSB1.TXTD)COPYX1.TXT+B1.TXTB:Z.TXT(10)下列四组DOS命令中,功能等价的一组是A)COPYA:*.*B:与DISKCOPYA:B:B)COPYABC.TXT+XYZ.TXT与TYPEXYZ.TXT>>ABC.TXTC)COPYABC.TXT+XYZ.TXT与COPYXYZ.TXT+ABC.TXTD)TYPE*.FOR>CON与COPY*.FORCONn(11)设当前目录为D:BB,现要把D:AA目录下首字符是A的文本文件全部删除,应该使用命令A)DELA*.TXTB)DELAAA.TXTC)DELAAA*.TXTD)DELAAA?.TXT(12)在Windows中,启动应用程序的正确方法是A)用鼠标指向该应用程序图标B)将该应用程序窗口最小化成图标B)将该应用程序窗口还原D)用鼠标双击该应用程序图标(13)在Windows中,终止应用程序执行的正确方法是A)将该应用程序窗口最小化成图标B)用鼠标双击应用程序窗口右上角的还原按钮C)用鼠标双击应用程序窗口中的标题栏D)用鼠标双击应用程序窗口左上角的控制菜单框(14)在微机系统中,对输入输出设备进行管理的基本程序模块(BIOS)存放在A)RAM中B)ROM中C)硬盘中D)寄存器中(15)使计算机病毒传播范围最广的媒介是A)硬磁盘B)软磁盘C)内部存储器D)互联网(16)设有intx=11;则表达式(x++*1/3)的值是A)3B)4C)11D)12(17)下列程序的输出结果是A)3B)3.2C)0D)3.07main(){doubled=3.2;intx,y;x=1.2;y=(x+3.8)/5.0;printf("%dn",d*y);}(18)下列程序执行后的输出结果是(小数点后只写一位)A)666.06.0B)666.76.7C)666.06.7D)666.76.0main(){doubled;floatf;lingl;inti;i=f=1=d=20/3;printf("%d%ld%f%fn",i,l,f,d);}(19)下列变量定义中合法的是A)short_a=1-.le-1;B)doubleb=1+5e2.5;C)longdo=0xfdaL;D)float2_and=1-e-3;(20)设intx=1,y=1;表达式(!x||y--)的值是A)0B)1C)2D)-1(21)与y=(x>0?1:x<0?-1:0);的功能相同的if语句是A)if(x>0)y=1;B)if(x)elseif(x<0)y=-1;if(x>0)y=1;elsey=0;elseif(x<0)y=-1;elsey=0;nC)y=-1D)y=0;if(x)if(x>=0)if(x>0)y=1;if(x>0)y=1;elseif(x==0)y=0;elsey=-1;elsey=-1;(22)以下循环体的执行次数是A)3B)2C)1D)0main(){inti,j;for(i=0,j=1;i<=j+1;i+=2,j--)printf("%dn",i);}(23)以下叙述正确的是A)do-while语句构成的循环不能用其它语句构成的循环来代替。B)do-while语句构成的循环只能用break语句退出。C)用do-while语句构成的循环,在while后的表达式为非零时结束循环。D)用do-while语句构成的循环,在while后的表达式为零时结束循环。(24)下列程序执行后的输出结果是A)GB)HC)ID)Jmain(){intx='f';printf("%cn",'A'+(x-'a'+1));}(25)执行下面的程序段后,变量k中的值为A)不定值B)33C)30D)10intk=3,s[2];s[0]=k;k=s[1]*10;(26)若已定义:inta[]={0,1,2,3,4,5,6,7,8,9],*p=a,i;其中0≤i≤9,则对a数组元素不正确的引用上A)a[p-a]B)*(&a[i])C)p[i]D)a[10](27)下列程序执行后的输出结果是A)6B)7C)8D)9voidfunc(int*a,intb[]){b[0]=*a+6;}main(){inta,b[5];a=0;b[0]=3;func(&a,b);printf("%dn,b[0]);}(28)下列程序的运行结果是A)a=%2,b=%5B)a=2,b=5C)a=d,b=dD)a=%d,b=%d#include
main(){inta=2,c=5;printf("a=%d,b=%dn",a,c);}n(29)下列程序执行后的输出结果是A)3B)6C)9D)随机数main(){inta[3][3],*p,i;p=&a[0][0];for(i=p;i<9;i++)p[i]=i+1;printf("%dn",a[1][2]);}(30)设有数组定义:chararray[]="China";则数组array所占的空间为A)4个字节B)5个字节C)6个字节D)7个字节(31)下列程序的输出结果是A)4B)6C)8D)10intb=2;intfunc(int*a){b+=*a;return(b);}main(){inta=2,res=2;res+=func(&a);printf("%dn",res);}(32)在以下四组中,每组有两个分别运算的函数,运算结果相同的是A)4B)2C)2D)0main(){inti,j,m=0,n=0;for(i=p;i<2;i++)for(j=0;j<2;j++)if(j>=i)m=1;n++;printf("%dn",n);}(33)下列程序的输出结果是A)5B)6C)7D)8structabc{inta,b,c;};main(){structabcs[2]={{1,2,3},{4,5,6}};intt;t=s[0],a+s[1],b;printf("%dn",t);}(34)设intb=2;表达式(b>>2)/(b>>1)的值是A)0B)2C)4D)8(35)在C程序中,可把整型数以二进制形式存放到文件中的函数是A)fprintf函数B)fread函数C)fwrite函数D)fputc函数n(36)下列程序执行后的输出结果是A)-32767B)FFFEC)-1D)-32768main(){charx=0xFFFF;printf("%dn",x--);}(37)若有定义:floatw;inta,b;则合法的switch语句是A)switch(w)B)switch(a);{case1.0:printf("*n");{case1printf("*n");case2.0:printf("**n");case2printf("**n");}}C)switch(b)D)switch(a+b);{case1:printf("*n");{case1:printf("*n");default:printf("n");case2:printf("**n");case1+2:printf("**n");default:printf("n");}}(38)以下程序段的执行结果是A)a=12y=12B)a=12y=12a=14y=16a=16y=28a=16y=20a=18y=24C)a=12y=12D)a=12y=12a=14y=26a=14y=44inta,y;a=10;y=0;do{a+=2;y+=a;printf("a=%dy=%dn",a,y);if(y>20)break;{while(a=14);...(39)若有以下调用语句,则不正确的fun函数的首部是A)voidfun(intm,intx[])B)voidfun(ints,inth[41])C)voidfun(intp,int*s)D)voidfun(intn,inta)main(){…inta[50],n;…fun(n,&a[9]);…}n(40)语句printf("abre'hi'y\boun");的输出结果是A)abre'hi'y\bouB)abre'hi'ybouC)re'hi'youD)abre'hi'ybou(说明:'b'是退格符)(41)请选出正确的程序段A)int*p;B)int*s,k;scanf("%d",p);*s=100;……C)int*s,k;D)int*s,k;char*p,c;char*p,e;s=&k;s=&k;p=&c;p=&c;*p='a';s=p;…*s=1;…(42)已知指针p的指向如下图所示,则执行语句*--p;后*p的值是A)30B)20C)19D)29a[0]a[1]a[2]a[3]a[4]1020304050(43)设已有定义:char*st="howareyou";下列程序段中正确的是A)chara[11],*p;strcpy(p=a+1,&st[4]);B)chara[11];strcpy(++a,st);C)chara[11];strcpy(a,st);D)chara[],*p;strcpy(p=&a[1],st+2);(44)下列程序执行后的输出结果是A)you&neB)youC)meD)errmai(){chararr[2][4];strcpy(arr,"you");strcpy(arr[1],"me");arr[0][3]='&';printf("%sn",arr);}(45)下列程序执行后的输出结果是A)helloB)helC)hloD)hlmvoidfunc1(inti);voidfunc2(inti);charst[]="hello,friend!";voidfunc1(inti){printf("%c",st[i]);if(i<3){i+=2;func2(i);}}voidfunc2(inti){printf("%c",st[i]);nif(i<3){i+=2;func1(i);}}main(){inti=0;func1(i);printf("n");}(46)假定下列程序的可执行文件名为prg.exe,则在该程序所在的子目录下输入命令行:prghellogood<回车>后,程序的输出结果是A)hellogoodB)hgC)helD)hellogoodmain()(intargc,char*argv[]){inti;if(argc<-0)return;for(i=1;inext=&b;D)(*p).next=q;structnode{chardata;structnode*next;{a,b,*p=&a,*q=&b;datanextdatanext5↑pa↑qb9o(49)变量a所占内存字节数是A)4B)5C)6D)8unionU{charst[4];inti;longl;};structA{intc;unionUu;}a;(50)执行下列程序时输入:123<空格>456<空格>789<回车>,输出结果是A)123,456,789B)1,456,789C)1,23,456,789D)1,23,456nmain(){chars[100];intc,i;scanf("%c",&c);scanf("%d",&i);scanf("%s",s);printf("%c,%d,%sn",c,i,s);}二、填空题(每空2分,共40分)请将每空的正确答案写在答题卡上[1]-[20]序号的横线上,答在试卷上不得分。(1)计算机网络按通信距离来划分,可分为局域网和广域网。因特网属于[1]。(2)当前盘是C,确保在D盘的根目录下建立一个子目录USER的一条DOS命令是[2]。(3)要将当前盘当前目录中所有扩展名为.TXT的文件内容显示在屏幕上的DOS命令是[3]。(4)DOS命令分为内部命令和外部命令,CHKDSK命令是[4]命令。(5)在Windows中,为了终止一个应用程序的运行,首先单击该应用程序窗口中的控制菜单框,然后在控制菜单中单击[5]命令。(6)设有以下变量定义,并已赋确定的值charw;intx;floaty;doublez;则表达式:w*x+z-y所求得的数据类型为[6]。(7)若x为int类型,请以最简单的形式写出与逻辑表达式!x等价的C语言关系表达式[7]。(8)若有如下图所示五个连续的int类型的存储单元并赋值如下图,a[0]的地址小于a[4]的地址。p和s是基类型为int的指针变量。请对以下问题进行填空。a[0]a[1]a[2]a[3]a[4]22334455661,若p已指向存储单元a[1]。通过指针p,给s赋值,使s指向最后一个存储单元a[4]的语句是[8]。2,若指针s指向存储单元a[2],p指向存储单元a[0],表达式s-p的值是[9]。(9)下面函数用来求出两个整数之和,并通过形参传回两数相加之和值,请填空。intadd(intx,inty,[10]z){[11]=x+y;}(10)下面程序的功能是:计算1到10之间奇数之和及偶数之和,请填空。#includemain(){inta,b,c,i;a=c=0;for(i=0;i<10;i+=2){a+=i;[12];c+=b;}printf("偶数之和=%dn",a);printf("奇数之和=%dn",c-11);}n(11)下面程序的功能是:输出100以内能被3整除且个位数为6的所有整数,请填空。#includemain(){inti,j;for(i=0;[13];i++){j=i*10+6;if([14])continue;printf("%d",j);}}(12)下面程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列,其它元素不变。请填空。#include#includemain(){chara[]="clanguage",t;inti,j,k;k=strlen(a);for(i=0;i<=k-2;i+=2)for(j=i+2;j<=k;[15])if([16]){t=a[i];a[i]=a[j];a[j]=t;}puts(a);printf("n");}(13)以下程序的运行结果是[17]#includemain(){intk=4,m=1,p;p=func(k,m);printf("%d,",p);p=func(k,m);printf("%dn",p);}func(inta,intb){staticintm=0,i=2;i+=m+1;m=i+a+b;returnm;}(14)以下程序的功能是:将无符号八进制数字构成的字符串转换为十进制整数。例如,输入的字符串为:556,则输出十进制整数366。请填空。#includemain(){char*p,s[6];nintn;p=s;gets(p);n=*p-'0';while([18]!=' ')n=n*8+*p-'0';printf("%dn",n);}(15)函数voidfun(float*sn,intn)的功能是:根据以下公式计算S,计算结果通过形参指针sn传回;n通过形参传入,n的值大于等于0。请填空。voidfun(float*sn,intn){floats=0.0,w,f=-1.0;inti=0;for(i=0;i<=n;i++){f=[19]*f;w=f/(2*i+1);s+=w;}[20]=s;}全国计算机等级考试二级笔试试卷参考答案2000年4月C语言一、选择题((1)--(40)题每题1分,(41)--(50)题每题2分,共60分。(1)A(2)C(3)C(4)D(5)D(6)A7)C(8)C(9)D(10)B(11)C(12)D(13)D(14)B(15)D(16)A(17)C(18)A(19)A(20)B(21)A(22)C(23)D(24)A(25)A(26)D(27)A(28)B(29)B(30)C(31)B(32)A(33)B(34)D(35)A(36)C(37)D(38)B(39)C(40)C(41)C(42)B(43)A(44)A(45)C(46)B(47)B(48)B(49)C(50)D二、填空题(每空2分,共40分)(1)广域网(2)MDD:USER(3)COPY*.TXTCON(4)外部(5退出(或关闭)(6)double(7)x==0||x==1(8)s=p+3(9)2(10)int*(11)*z(12)b=i+1(13)i<10(14)i%3!=0(15)j+=2(16)a[i]>a[j](17)8,17(18)*(++p)(19)–1(20)*snn2000年9月二级C语言笔试真题及答案(考试时间:120分钟,满分100分)一、选择题((1)--(40)每小题1分,(41)--(50)每小题2分,共60分下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项在答题卡相应位置上涂黑,答在试卷上不得分。(1)下列电子邮件地址中正确的是(其中□表示空格)A)Malin&ns.cnc.ac.cnB)malin@ns.cac.ac.cnC)Lin□Ma&ns.cnc.ac.cnD)Lin□Ma@ns.cnc.ac.cn(2)下列说法中正确的是A)为了使用Novell网提供的服务,必须采用FTP协议B)为了使用Internet网提供的服务,必须采用TELNET协议C)为了使用Novell网提供的服务,必须采用TCP/IP协议D)为了使用Internet网提供的服务,必须采用TCP/IP协议(3)下列说法中不正确的是A)调制解调器(Modem)是局域网络设备B)集线器(Hub)是局域网络设备C)网卡(NIC)是局域网络设备D)中继器(Repeater)是局域网络设备(4)十进制数397的十六进制值为A)18DB)18EC)277D)361(5)下列说法中不正确的是A)CD-ROM是一种只读存储器但不是内存储器B)CD-ROM驱动器是多媒体计算机的基本部分C)只有存放在CD-ROM盘上的数据才称为多媒体信息D)CD-ROM盘上最多能够存储大约650兆字节的信息(6)Windows应用环境中鼠标的拖动操作不能完成的是A)当窗口不是最大时,可以移动窗口的位置B)当窗口最大时,可以将窗口缩小成图标C)当窗口有滚动条时可以实现窗口内容的滚动D)可以将一个文件移动(或复制)到另一个目录中去(7)从Windows中启动MS-DOS方式进入了DOS状态,如果想回到Windos状态,在DOS提示符下,应键入的命令为A)EXITB)QUITC)WIND)DOS-U(8)要在WINDOWS标准窗口的下拉菜单中选择命令,下列操作错误的是A)用鼠标单击该命令选项B)用键盘上的上下方向键将高亮度条移至该命令选项后再按回车键C)同时按下ALT键与该命令选项后括号中带有下划线的字母键D)直接按该命令选项后面括号中带有下划线的字母键(9)ASCLL码(含扩展)可以用一个字节表示,则可以表示的ASCLL码值个数为A)1024B)256C)128D)8O(10)字长为32位的计算机是指A)该计算机能够处理的最大数不超过232B)该计算机中的CPU可以同时处理32位的二进制信息C)该计算机的内存量为32MBD)该计算机每秒钟所能执行的指令条数为32MIPSn(11)在DOS系统中,下列文件名中非法的是A)ABCDEFG1B)ABCDEFG1.234C)ABCD_EFGD)ABCDEFG(12)DOS系统启动后,下列文件中驻留内存的是A)CONFIG.SYSB)COMMAND.COMC)AUTOEXEC.BATD)MEM.EXE(13)DOS下的“DIR*2”命令将列出当前目录下的A)所有名字末尾为字符2的非隐含文件和目录B)所有名字末尾为字符2的非隐含文件C)所有非隐含文件D)所有非隐含文件和目录(14)软驱的盘符为A,A盘上只有一个目录XYZ,而XYZ下有若干子目录和文件,若想把A盘的所有内容复制到C盘根目录下,应使用的命令为A)COPYA:*.*C:B)COPYA:*.*C:*.*C)XCOPYA:*.*C:/SD)DISKCOPYA:C:(15)若要将当前盘目录下的文件A.TXT连接在文件B.TXT后面,应使用的命令为A)COPYA.TXT>>B.TXTB)MOVEA.TXT>>B.TXTC)PATHA.TXT>>B.TXTD)TYPEA.TXT>>B.TXT(16)若变量已正确定义并赋值,下面符合C语言语法的表达式是A)a:=b+1B)a=b=c+2C)int18.5%3D)a=a+7=c+b(17)C语言中运算对象必须是整型的运算符是A)%=B)/C)=D)〈=(18)若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是A)1B)2C)2.0D)2.5(19)若变量a、iI已正确定义,且i已正确赋值,合法的语句是A)a==1B)++i;C)a=a++=5;D)a=int(i);(20)若有以下程序段,intc1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是A)0B)0.5C)1D)2(21)有如下程序main0{inty=3,x=3,z=1;printf(“%d%dn”,(++x,y++),z+2);}运行该程序的输出结果是A)34B)42C)43D)33(22)能正确表示逻辑关系:“a≥=10或a≤0”的C语言表达式是A)a>=10ora<=0B)a>=0|a<=10C)a>=10&&a<=0D)a>=10‖a<=0(23)有如下程序main0{intx=1,a=0,b=0;switch(x){case0:b++;case1:a++ncase2:a++;b++}printf(“a=%d,b=%dn”,a,b);}该程序的输出结果是A)a=2,b=1B)a=1,b=1C)a=1,b=0D)a=2,b=2(24)有如下程序main0{floatx=2.0,y;if(x<0.0)y=0.0;elseif(x<10.0)y=1.0/x;elsey=1.0;printf(“%fn”,y);}该程序的输出结果是A)0.000000B)0.250000C)0.500000D)1.000000(25)有如下程序main0{inta=2,b=-1,c=2;if(a6){n--;printf(“%d”,n);}}该程序段的输出结果是A)987B)876C)8765D)9876(29)设有说明语句:chara=’72’;则变量aA)包含1个字符B)包含2个字符C)包含3个字符D)说明不合法(30)有如下函数调用语句func(rec1,rec2+rec3,(rec4,rec5);该函数调用语句中,含有的实参个数是A)3B)4C)5D)有语法错(31)有如下程序intrunc(inta,intb){return(a+b);}main0{intx=2,y=5,z=8,r;r=func(func(x,y),z);printf(“%dn”,r);}该程序的输出的结果是A)12B)13C)14D)15(32)有如下程序段int*p,a=10,b=1p=&a;a=*p+b;执行该程序段后,a的值为A)12B)11C)10D)编译出错(33)对于基类型相同的两个指针变量之间,不能进行的运算是A)2)return(fib(n-1)+fib(n-2));elsereturn(2);n}main0{printf(“%dn”,fib(3));该程序的输出结果是A)2B)4C)6D)8(36)在C语言中,函数的隐含存储类别是A)autoB)staticC)externD)无存储类别(37)有如下程序#defineN2#defineMN+1#defineNUM2*M+1#main(){inti;for(i=1;i<=NUM;i++)printf(“%dn”,i);}该程序中的for循环执行的次数是A)5B)6C)7D)8(38)有以下函数charfun(char*p){returnp;}该函数的返回值是A)无确切的值B)形参p中存放的地址值B)一个临时存储单元的地址D)形参p自身的地址值(39)有如下程序段inta=14,b=15,x;charc=’A’;x=(a&&b)&&(c<’B’);执行该程序段后,x的值为A)tureB)falseC)0D)1(40)若fp是指向某文件的指针,且已读到此文件末尾,则库函数feof(fp)的返回值是A)EOFB)0C)非零值D)NULL(41)若有以下说明和定义fun(int*c){}main(){int(*a)()=fun,*b(),w[10],c;┆}在必要的赋值之后,对fun函数的正确调用语句是A)a=a(w);B)(*a)(&c);C)b=*b(w);D)fun(b);(42)有如下说明inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为9的表达式是A)*P+9B)*(P+8)C)*P+=9D)P+8n(43)有如下程序main0{intn[5]={0,0,0},i,k=2;for(i=0;i