全国计算机等级考试二级笔试试卷基础部分和C语言程序设计(考试时间:120分钟,满分100分)2000年9月一、选择题((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)该计算机每秒钟所能执行的指令条数为32MIPS(11)在DOS系统中,下列文件名中非法的是A)ABCDEFG1B)ABCDEFG1.234C)ABCD_EFGD)ABCD\EFG(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.TXTB.TXTB)MOVEA.TXTB.TXTC)PATHA.TXTB.TXTD)TYPEA.TXTB.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%d\n”,(++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++case2:a++;b++}printf(“a=%d,b=%d\n”,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(x0.0)y=0.0;elseif(x10.0)y=1.0/x;elsey=1.0;printf(“%f\n”,y);}该程序的输出结果是A)0.000000B)0.250000C)0.500000D)1.000000(25)有如下程序main0{inta=2,b=-1,c=2;if(ab)if(b0)c=0;elsec++printf(“%d\n”,c);}该程序的输出结果是A)0B)1C)2D)3(26)有如下程序main0{inti,sum;for(i=1;i=3;sum++)sum+=i;printf(“%d\n”,sum);}该程序的执行结果是A)6B)3C)死循环D)0(27)有如下程序main0{intx=23;do{printf(“%d”,x--);}while(!x);}该程序的执行结果是A)321B)23C)不输出任何内容D)陷入死循环(28)有如下程序main0{intn=9;while(n6){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(“%\d\n”,r);}该程序的输出的结果是A)12B)13C)14D)15(32)有如下程序段int*p,a=10,b=1p=&a;a=*p+b;执行该程序段后,a的值为A)12B)11C)10D)编译出错(33)对于基类型相同的两个指针变量之间,不能进行的运算是A)B)=C)+D)-(34)以下函数返回a所指数组中最小的值所在的下标值fun(int*a,intn){inti,j=0,p;p=j;for(i=j;in;i++)if(a[i]a[p])__________;return(p);}在下划线处应填入的是A)i=pB)a[p]=a[i]C)p=jD)p=i(35)有如下程序longfib(intn){if(n2)return(fib(n-1)+fib(n-2));elsereturn(2);}main0{printf(“%d\n”,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(“%d\n”,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+8(43)有如下程序main0{intn[5]={0,0,0},i,k=2;for(i=0;ik;i++)n[i]=n[i]+1;printf(“%d\n”,n[k]);}该程序的输出结果是A)不确定的值B)2C)1D)0(44)若有以下的定义:intt[3][2];能正确表示t数组元素地址的表达式是A)&t[3][2]B)t[3]C)t[1]D)t[2](45)有如下程序main0{inta[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;for(i=1;i3;i++)for(j=0;ji;j++)s+=a[i][j]printf(“%d\n”,s);}该程序的输出结果是A)18B)19C)20D)21(46)有如下定义structperson{charname[9];intage;};strictpersonclass[10]={“Johu”,17,“Paul”,19“Mary”,18,“Adam16,};根据上述定义,能输出字母M的语句是A)prinft(“%c\n”,class[3].mane);B)pfintf(“%c\n”,class[3].name[1]);C)prinft(“%c\n”,class[2].name[1]);D)printf(“%^c\n”,class[2].name[0]);(47)以下对结构体类型变量的定义中,不正确的是A)typedefstructaaB)#defineAAstructaa{intn;AA{intn;floatm;floatm;}AA;}td1;AAtd1;C)structD)struct{intn;{intn;floatm;floatm;}aa;}td1;stuctaatd1;(48)若已建立如下图所示的单向链表结构,Pdatanext在该链表结构中,指针p、s分别指向图中所示结点,则不能将s所指的结点插入到链表末尾仍构成单向链表的语句组是A)p=p-next;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;ps+4;p++)printf(“%s\n”,p);}该程序的输