2000-2001年二级C语言笔试真题及答案2

申明敬告: 本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。

文档介绍

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#includemain(){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;inext;s->next=p;p->next=s;B)p=p->next;s->next=p->next;p->next=s;C)s->next=NULL;p=p->next;p->next=s;D)p=(*p).next;(*s).next=(*p).next;(*p).next=s;(49)有如下程序main(){chars[]=”ABCD”,*P;for(p=s+l;p’’;j+=2)s=10*s+p[i][j]-‘0’;printf(“%dn”,s);}该程序的输出结果是A)69825B)63825C)6385D)693825二、填空题(每空2分,共40分)请将每空的正确答案写在答题卡上[1]至[20]序号的横线上,答在试卷上不得分。(1)在DOS状态下,当执行当前盘目录中的程序A.EXE时,为了将本该在屏幕上显示的运行结果输出到文件A.DAT中,应使用的DOS命令为[1]。(2)在XCOPY、PATH、TREE三个DOS命令中,属于内部命令的是令是[2]。n(3)设当前盘为C盘,为了将当前盘当前目录中第三个字符为X的所有文件同名复制到A盘的当前目录中,应使用的DOS命令为[3]。(4)要将当前盘的目录ABC设置为当前目录,应使用的DOS命令为[4]。(5)计算机网络按通信距离划分为局域网与广域网,Novell网属于[5]。(6)以下程序的输出结果是[6]。main(){unsignedshorta=65536;intb;printf(“%dn”,b=a);}(7)若有定义:inta=10,b=9,c=8;接着顺序执行下列语句后,变量b中的值是[7]。c=(a-=(b-5));c=(a%11)+(b=3);(8)表示“整数x的绝对值大于5”时值为“真”的C语言表达式是[8]。(9)要使以下程序段输出10个整数,请填入一个整数。for(i=0;i<=[9];printf(“%dn”,i+=2));(10)函数pi的功能是根据以下近似公式求π值:(π*π)/6=1+1/(2*2)+1/(3*3)+..+1/(n*n)现在请你在下面的函数中填空,完成求π的功能。#include“math.h”doublepi(longn){doubles=0.0;longi;for(i=1;i<=n;i++)s=s+[10];return(sqrt(6*s));}(11)若输入字符串:abcde<回车>,则以下while循环体将执行[11]次。While((ch=getchar())==’e’)printf(“*”);(12)以下函数用来求出两整数之和,并通过形参将结果传回,请填空。voidfunc(intx,inty,[12]z){*z=x+y;}(13)若有以下定义,则不移动指针p,且通过指针p引用值为98的数组元素的表达式是[13]。intw[10]={23,54,10,33,47,98,72,80,61},*p=w;(14)设在主函数中有以下定义和函数调用语句,且fun函数为void类型;请写出fun函数的首部[14]。要求形参名为b。main(){doubles[10][22];intn;┆┆fun(s);┆}(15)以下程序的输出结果是[15]。voidfun(){staticinta=0;na+=2;printf(“%d”,a);}main(){intcc;for(cc=1;cc<4;cc++)fun()printf(“n”);}(16)以下程序的输出结果是[16]。#defineMAX(x,y)(x)>(y)?(x):(y)main(){inta=5,b=2,c=3,d=3,t;t=MAX(a+b,c+d)*10;printf(“%dn”,t);}(17)若要使指针p指向一个double类型的动态存储单元,请填空。p=[17]malloc(sizeof(double));(18)设有以下结构类型说明和变量定义,则变量a在内存所占字节数是[18]。Structstud{charnum[6];ints[4];doubleave;}a,*p;(19)以下函数把b字符串连接到a字符串的后面,并返回a中新字符串的长度。请填空。Strcen(chara[],charb[]){intnum=0,n=0;while(*(a+num)!=[19])num++;while(b[n]){*(a+num)=b[n];num++;[20];}return(num);}2000年9月全国计算机等级考试二级笔试试卷答案一、选择题:(1)B(2)D(3)A(4)A(5)C(6)B(7)A(8)C(9)B(10)B(11)D(12)B(13)D(14)C(15)D(16)B(17)A(18)C(19)B(20)A(21)D(22)D(23)A(24)C(25)C(26)C(27)B(28)B(29)A(30)A(31)D(32)B(33)C(34)D(35)B(36)C(37)B(38)B(39)D(40)c(41)B(42)B(43)D(44)D(45)A(46)D(47)C(48)A(49)D(50)Cn二、填空题:[1]A.EXE>A.DAT或A>>A.DAT[2]PATH[3]COPY??X*.*A:[4]CDABC[5]局域网[6]0[7]3[8]x>5||x<-5[9]18[10]1.0/(i*i)[11]0[12]int*[13]P[5]或*(p+5)[14]voidfun(doubleb[][22])或voidfun(doubleb[0][22])或voidfun(double(*b)[22])[15]246[16]7[17](double*)[18]22[19]''或0[20]n++或n+=1或n=n+12001年4月二级C语言笔试真题及答案(考试时间:120分钟,满分100分)一、选择题((1)-(40)题每题1分,(41)-(50)题每题2分,共60分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。(1)计算机的存储器完整的应包括A)软盘、硬盘B)磁盘、磁带、光盘C)内存储器、外存储器D)RAM、ROM(2)计算机中运算器的作用是A)控制数据的输入/输出B)控制主存与辅存间的数据交换C)完成各种算术运算和逻辑运算D)协调和指挥整个计算机系统的操作(3)软磁盘处于写保护状态时,其中记录的信息A)绝对不会丢失B)不能被擦除,但能追加新信息C)不能通过写磁盘操作被更新D)不能以常规方式被删除,但可以通过操作系统的格式化功能被擦除(4)光盘根据基制造材料和记录信息的方式不同,一般可分为A)CD、VCDB)CD、VCD、DVD、MP3C)只读光盘、可一次性写入光盘、可擦写光盘D)数据盘、音频信息盘、视频信息盘n(5)在计算机系统中,可执行程序是A)源代码B)汇编语言代码C)机器语言代码D)ASCII码(6)计算机软件系统包括A)操作系统、网络软件B)系统软件、应用软件C)客户端应用软件、服务器端系统软件D)操作系统、应用软件和网络软件(7)目前,一台计算机要连入Internet,必须安装的硬件是A)调制解调器或网卡B)网络操作系统C)网络查询工具D)WWW浏览器(8)在多媒体计算机系统中,不能存储多媒体信息的是A)光盘B)磁盘C)磁带D)光缆(9)要将当前盘当前目录下一个文本文件内容显示在屏幕上,正确的命令形式是A)TYPEa*.*B)TYPEabc.exeC)TYPEpro.c>PRND)TYPEabc.txt(10)下列更改文件名的命令中正确的是A)RENA:file1C:F1B)RENAMEA:A:file1C:F1C)RENA:file1F1D)RENA:file1SUBF1(11)已知A盘为DOS系统启动盘,只有A:DOS下有自动批处理文件,其中内容为:CDDOSMDUSERCDUSER由A盘启动DOS系统后,A盘的当前目录是A)DOSB)DOSUSERC)D)USER(12)MS-DOS是A)分时操作系统B)分布式操作系统C)单用户、单任务操作系统D)单用户、多任务操作系统(13)在Windows操作系统中,不同文档之间互相复制信息需要借助于A)剪切板B)记事本C)写字板D)磁盘缓冲器(14)在Windows操作系统中A)同一时刻可以有多个活动窗口B)同一时刻可以有多个应用程序在运行,但只有一个活动窗口C)同一时刻只能有一个打开的窗口D)DOS应用程序窗口与Windows应用程序窗口不能同时打开着(15)下列叙述中正确的是A)所有DOS应用程序都可以在Windows操作系统中正确运行B)所有DOS应用程序都不能在Windows操作系统中正确运行C)大部分DOS应用程序可以在Windows操作系统中正确运行D)为DOS5.0以上版本操作系统编写的应用程序可以在Windows操作系统中正确运行n(16)下列叙述中正确的是A)C语言编译时不检查语法B)C语言的子程序有过程和函数两种C)C语言的函数可以嵌套定义D)C语言所有函数都是外部函数(17)以下所列的C语言常量中,错误的是A)0xFFB)1.2e0.5C)2LD)‘72’(18)下列选项中,合法的C语言关键字是A)VARB)cherC)integerD)default(19)以下变量x.、y、z均为double类型且已正确赋值,不能正确表示数学式子的C语言表达式是A)x/y*zB)x*(1/(y*z))C)x/y*1/zD)x/y/z(20)若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是A)-3B)9C)-12D)6(21)设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为A)不定值B)4C)3D)1(22)若变量已正确说明为float类型,要通过语句scanf(“%f%f%f”,&a,&b,&c);给a赋于10.0,b赋予22.0,c赋予33.0,不正确的输入形式是:A)10<回车>B)10.0,22.0,33.0<回车>22<回车>33<回车>C)10.0<回车>D)1022<回车>22.033.0<回车>33<回车>(23)若执行以下程序时从键盘上输入9,则输出结果是A)11B)10C)9D)8Main0{intn;scanf(“%d”,&n);if(n++<10)printf(“%dn”,n);elseprintf(“%dn”,n--);}(24)若a、b、c1、c2、x、y、均是整型变量,正确的switch语句是A)swich(a+b);B)switch(a*a+b*b){case1:y=a+b;break;{case3:case0:y=a-b;break;case1:y=a+b;break;}case3:y=b-a,break;}C)switchaD)switch(a-b){casec1:y=a-b;break{default:y=a*b;breakcasec2:x=a*d;breakcase3:case4:x=a+b;breakdefault:x=a+b;case10:case11:y=a-b;break;n}}(25)有以下程序段intk=0while(k=1)k++;while循环执行的次数是A)无限次B)有语法错,不能执行C)一次也不执行D)执行1次(26)以下程序执行后sum的值是A)15B)14C)不确定D)0min(){inti,sum;for(i=1;i<6;i++)sum+=i;printf(“%dn”,sum);}(27)有以下程序段intx=3do{printf(“%d”,x-=2);}while(!(--x));其输出结果是A)1B)30C)1-2D)死循环(28)若变量c为char类型,能正确判断出c为小写字母的表达式是A)‘a’<=c<=‘z’B)(c>=‘a’)||(c<=‘z’)C)(‘a’<=c)and(‘z’>=c)D)(c>=‘a’)&&(c<=‘z’)(29)以下所列的各函数首部中,正确的是A)voidplay(var:Integer,varb:Integer)B)voidplay(inta,b)C)voidplay(inta,intb)D)Subplay(aasinteger,basinteger)(30)以下程序的输出结果是A)0B)29C)31D)无定值fun(intx,inty,intz){z=x*x+y*y;}main(){inta=31;fun(5,2,a);printf(“%d”,a);}(31)下列程序段的输出结果是A)2143B)1212C)1234D)2112voidfun(int*x,int*y){printf(“%d%d”,*x,*y);*x=3;*y=4;}nmain(){intx=1,y=2;fun(&y,&x);printf(“%d%d”,x,y);}(32)下列程序的输出结果是A)非法B)a[4]的地址C)5D)3main(){chara[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;printf(“%d”,*--p);}(33)下列程序的运行结果是A)63B)36C)编译出错D)00voidfun(int*a,int*b){int*k;k=a;a=b;b=k;}main(){inta=3,b=6,*x=&a,*y=&b;fun(x,y);printf(“%d%d”,a,b);}(34)下面程序的输出结果是A)0B)1C)10D)9main(){inta[]={1,2,3,4,5,6,7,8,9,0,},*p;p=a;printf(“%dn”,*p+9);}(35)当调用函数时,实参是一个数组名,则向函数传送的是A)数组的长度B)数组的首地址C)数组每一个元素的地址D)数组每个元素中的值(36)设有以下说明语句structex{intx;floaty;charz;}example;则下面的叙述中不正确的是A)struct结构体类型的关键字B)example是结构体类型名C)x,y,z都是结构体成员名D)structex是结构体类型(37)以下只有在使用时才为该类型变量分配内存的存储类说明是A)auto和staticB)auto和registerC)register和staticD)extern和register(38)若fp是指向某文件的指针,且已读到文件末尾,则库函数feof(fp)的返回值是A)EOFB)-1C)非零值D)NULLn(39)以下程序的输出结果是A)20B)21C)22D)23main(){inti,k,a[10],p[3];k=5;for(i=0;i<10;i++)a[i]=i;for(i=0;i<3;i++)p[i]=a[i*(i+1)];for(i=0;i<3;i++)k+=p[i]*2;printf(“%dn”,k);}(40)以下程序的输出结果是A)1,5,9B)1,4,7C)3,5,7D)3,6,9main(){inti,x[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)printf(“%d,”,x[i][2-i]);}(41)以下程序的输出结果是A)18B)19C)20D)21main(){inta[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf(“%dn”,s);}(42)以下程序的输出结果是A)ABCDB)ABCDC)EFGD)EFGHFGHEFGJKIJKLKLIJOMmain(){charw[][10]={“ABCD”,”EFGH”,”IJKL”,”MNOP”},k;for(k=1;k<3;k++)printf(“%sn”,w[k]);}(43)当执行下面的程序时,如果输入ABC,则输出结果是A)ABC6789B)ABC67C)12345ABC6D)ABC456789#include“stdio.h”#include“string.h”main(){charss[10]=“1,2,3,4,5”;gets(ss);strcat(ss,“6789”);printf(“%sn”,ss);}(44)假定以下程序经编译和连接后生成可执行文件PROG.EXE,如果在此可执行文件所在目录的DOS提示符下键入:PROGABCDEFGHIJKL<回车>,则输出结果为nA)ABCDEFGB)IJHLC)ABCDEFGHIJKLD)IJKLABCDEFGHmain(intargc,char*argv[])){while(--argc>0)printf(“%s”,argv[argc]);printf(“n”);}(45)以下程序的输出结果是A)1B)2C)3D)4longfun(intn){longs;if(n==1||n==2)s=2;elses=n-fun(n-1);returns;}main(){printf(“%ldn”,fun(3));}(46)以下程序的输出结果是A)16B)2C)9D)1#defineSQR(X)X*Xmain(){inta=16,k=2,m=1;a/=SQR(k+m)/SQR(k+m);printf(“dn”,a);}(47)若定义了以下函数:voidf(……){……*p=(double*)malloc(10*sizeof(double));……}p是该函数的形参,要求通过p把动态分配存储单元的地址传回主调函数,则形参p的正确定义应当是A)double*pB)float**pC)double**pD)float*p(48)以下程序的输出是A)10B)11C)51D)60structst{intx;int*y;}*p;intdt[4]={10,20,30,40};structstaa[4]={50,&dt[0],60,&dt[0],60,&dt[0],60,&dt[0],};main(){p=aa;printf(“%dn”,++(p->x));}(49)假定建立了以下链表结构,指针p、q分别指向如图所示的结点,则以下可以将q所指结点从链表中删除并释放该结点的语句组是nA)free(q);p->next=q->next;B)(*p).next=(*q).next;free(q);C)q=(*q).next;(*p).next=q;free(q);D)q=q->next;p->next=q;p=p->next;free(p);834…………headdatanext↑p↑q(50)以下程序的输出结果是A)0B)1C)2D)3main(){intx=0.5;charz=’a’;printf(“%dn”,(x&1)&&(z<’z’));}二)填空题(每空2分,共40分)请将每一个空的正确答案写在答题卡【1】至【20】序号的横线上,答在试卷上不得分。(1)计算机机领域中,通常用英文单词“Byte”表示【1】。(2)在DOS环境下,自动批处理的文件名为【2】。(3)要将当前盘当前目录下所有扩展名为.TXT的文件内容在打印机上打印输出,应使用的单条DOS内部命令为【3】。(4)在Windows环境下,可以利用单击、双击、拖动这三种鼠标操作之一的【4】操作实现窗口的移动。(5)在Windows环境下,可以将窗口最小化为【5】。(6)以下程序的输出结果是【6】main(){inta=1,b=2;a=a+b;b=a-b;a=a-b;printf(“%d,%dn”,a,b);}(7)下列程序的输出结果是16.00,请填空。。main(){inta=9,b=2;floatx=【7】,y=1.1,z;z=a/2+b*x/y+1/2;printf(“%5.2fn”,z);}(8)用以下语句调用库函数malloc,使字符指针st指向具有11个字节的动态存储空间,请填空。st=(char*)【8】;(9)下列程序段的输出结果是【9】。main(){charb[]=”Hello,you”;nb[5]=0;printf(“%sn”,b);}(1)下列程序段的输出结果是【10】。intn=’c’;switch(n++){default:printf(“error”);break;case‘a’:case‘A’:case‘b’:case‘B’:printf(“good”);break;case‘c’:case‘C’:printf(“pass”);case‘d’:case‘D’:printf(“warn”);}(2)以下程序通过函数指针p调用函数fun,请在填空栏内,写出定义变量p的语句。voidfun(int*x,int*y){……}main(){inta=10,b=20;【11】;/定义变p*/p=fun;p(&a,&b);……}(3)下列程序的输出结果是【12】。voidfun(int*n){while((*n)--);printf(“%d”,++(*n));}main(){inta=100;fun(&a);}(4)以下程序的输出结果是【13】。main(){intarr[]={30,25,20,15,10,5},*p=arr;p++;printf(“%dn”,*(p+3));}(5)以下程序用来输出结构体变量ex所占存储单元的字节数,请填空。structst{charname[20];doublescore;};main(){structstex;printf(“exsize:%dn”,sizeof(【14】));}(6)下面程序把从终端读入的文本(用@作为文本结束标志)输出到一个名为bi.datn的新文件中。请填空。#include“stdio.h”FILE*fp;{charch;if((fp=fopen(【15】))==NULL)exit(0);while((ch=getchar())!=’@’)fputc(ch,fp);fclose(fp);}(1)若变量n中的值为24,则prnt函数共输出【16】行,最后一行有【17】个数。voidprnt(intn,intaa[]){inti;for(i=1;i<=n;i++){printf(“%6d”,aa[i]);if(!(i%5))printf(“n”);}printf(“n”);}(2)以下程序中,主函数调用了LineMax函数,实现在N行M列的二维数组中,找出每一行上的最大值。请填空。#defineN3#defineM4voidLineMax(intx[N][M]){inti,j,p;for(i=0;iCON(8)设当前盘为C盘,C盘的当前目录为ABC。下列DOS命令中能正确执行的是A)MDB)MDA:C)MDABD)CDC:(9)为了将C:USER中的文件FILE.TXT同名复制到A盘根目录下,下列DOS命令中能正确执行的是A)TYPEC:USERFILE.TXT>A:FILE.TXTB)TYPEC:USERFILE.TXTA:FILE.TXTC)COPYC:USERFILE.TXT>A:FILE.TXTD)COPYC:USERFILE.TXT(10)在Windows下,当一个应用程序窗口被最小化后,该应用程序A)终止运行B)暂停运行C)继续在后台运行D)继续在前台运行(11)在Windows环境下,下列操作中与剪贴板无关的是A)剪切B)复制C)粘贴D)删除(12)在Windows环境下,实现窗口移动的操作是A)用鼠标拖动窗口中的标题栏B)用鼠标拖动窗口中的控制按钮C)用鼠标拖动窗口中的边框D)用鼠标拖动窗口中的任何部位(13)一台计算机连入计算机网络后,该计算机A)运行速度会加快B)可以共享网络中的资源C)内存容量变大D)运行精度会提高(14)不能作为计算机网络中传输介质的是A)微波B)光纤C)光盘D)双绞线(15)下列各项中,不属于多媒体硬件的是A)声卡B)光盘驱动器C)显示器D)多媒体制作工具(16)在C语言中,合法的长整型常数是A)OLB)4962710C)324562&D)216D(17)以下有4组用户标识符,其中合法的一组是A)ForB)4dC)f2_G3D)WORD-subDOIFvoidCaseSizeabcdefine(18)以下选项中合法的字符常量是A)“B”B)‘10’C)68D)D(19)假定x和y为double型,则表达式x=2,y=x+3/2的值是A)3.500000B)3C)2.000000D)3.000000(20)以下合法的赋值语句是A)x=y=100B)d--;C)x+y;D)c=int(a+b);(21)设正x、y均为整型变量,且x=10y=3,则以下语句的输出结果是pprintf(”%d,%dn”,x--,--y);A)10,3B)9.3C)9.2D)10.2(22)x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是A)INPUTx、y、z;B)scanf(“%d%d%d”,&x,&y,&z);C)scanf(“%d%d%d”,x,y,z);D)read(“%d%d%d”,&x,&y,&z);(23)以下程序的输出结果是main(){inta=3;nprintf(“%dn”,(a+a-=a*a));}A)–6B)12C)0D)-12(24)设a、b、C、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值位为A)0B)1C)2D)3(25)阅读以下程序:main(){intx;scanf(“%d”,&x);if(x--<5)printf(“%d”’x);elseprintf(“%d”’x++);}程序运行后,如果从键盘上输人5,则输出结果是A)3B)4C)5D)6(26)假定w、x、y、z、m均为int型变量,有如下程序段:w=1;x=2;y=3;z=4;m=(w=0;i--)a[i]=10-i;printf(“%d%d%d”,a[2],a[5],a[8]);}A)258B)741C)852D)369(39)以下数组定义中不正确的是A)inta[2][3];B)intb[][3]={0,1,2,3};C)intc[100][100]={0};D)intd[3][]={{1,2},{1,2,3},{1,2,3,4}};(40)以下程序的输出结果是main(){inta[4][4]={{1,3,5},{2,4,6},{3,5,7}};printf(“%d%d%d%dn”,a[0][3],a[1][2],a[2][1],a[3][0];}nA)0650B)1470C)5430D)输出值不定(41)以下程序的输出结果是main(){charst[20]=“hellot\”;printf(%d%dn”,strlen(st),sizeof(st));}A)99B)520C)1320D)2020(42)以下选项中,不能正确赋值的是A)chars1[10];s1=“Ctest”;B)chars2[]={‘C’,‘t’,‘e’,‘s’,‘t’};C)chars3[20]=“Ctest”;D)char*s4=“Ctestn”(43)以下程序的输出结果是amovep(intp,int(a)[3],intn){inti,j;for(i=0;i<;i++)for(j=0;jx,(h[1],p)->y);}A)12B)23C)14D)32(45)以下程序的输出结果是main(){inta,b;for(a=1,b=1;a<=100;a++){if(b>=10)break;if(b%3==1){b+=3;continue;}}printf(“%dn”,a);}A)101B)6C)5D)4(46)以下程序的输出结果是unionmyun{struct{intx,y,z;}u;intk;n}a;main(){a.u.x=4;a.u.y=5;a.u.z=6;a.k=0;printf(%dn”,a.u.x);}A)4B)5C)6D)0(47)以下程序的输出结果是inta,b;voidfun(){a=100;b=200;}main(){inta=5,b=7;fun();printf(“%d%dn”,a,b);}A)100200B)57C)200100D)75(48)以下程序的输出结果是#defineM(x,y,z)x*y+zmain(){inta=1,b=2,c=3;printf(“%dn”,M(a+b,b+c,c+a));}A)19B)17C)15D)12(49)整型变量x和y的值相等、且为非0值,则以下选项中,结果为零的表达式是A)x||yB)x|yC)x&yD)x^y(50)下面的程序执行后,文件testt.t中的内容是#includevoidfun(char*fname.,char*st){FILE*myf;inti;myf=fopen(fname,“w”);for(i=0;i2);printf(“%dn”,j);}(9)设有以下程序:main(){intn1,n2;scanf(“%d”,&n2);while(n2!=0){n1=n2%10;n2=n2/10;printf(“%d”,n1);}}程序运行后,如果从键盘上输入1298;则输出结果为【9】。(10)以下程序输出的最后一个值是【10】。intff(intn){staticintf=l;f=f*n;returnf;}main(){inti;for(I=1;I<=5;I++printf(“%dn”,ff(i));}(11)以下函数的功能是:求x的y次方,请填空。doublefun(doublex,inty){inti;doublez;for(i=1,z=x;i
查看更多

相关文章