全国计算机等级考试二级笔试卷基础知识和C语言程序设计(考试时间120分钟,满分100分)1997年4月一、选择题((1)-(40)每小题1分,(41)-(50)每小题2分,共60分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。(1)下列设备中只能作为输入设备的是A)磁盘驱动器B)鼠标器C)存储器D)显示器(2)下列DOS组合控制键中,能使标准输出同时送到屏幕与打印机的是A)Ctrl+BreakB)Ctrl+PC)Ctrl+CD)Ctrl+H(3)通常所说的386机是A)8位机B)16位机C)32位机D)64位机(4)二进制数01100100转换成十六进制数是A)64B)63C)100D)144(5)十六进制数100转换成十进制数是A)1024B)512C)256D)128(6)对于存有重要数据的5.25英寸软盘,防止计算机病毒感染的方法是A)不要与有病毒的软盘放在一起B)在写保护口贴上胶条C)保持软盘清洁D)定期对软盘格式化(7)在启动DOS系统时,启动盘的根录下必须包含的文件是A)START.COMB)COMMAND.COMC)FORMAT.COMD)BOOT.COM(8)DOS系统启动后,下列文件中常驻内存的是A)DOS.COMB)COMMAND.COMC)DISKCOPY.COMD)SYS.COM(9)下列名字中,不能作为DOS磁盘文件名的是A)JTUB)93GZ.PRGC)COND)ATT&T.BAS(10)下列命令中属于内部命令的是A)SYSB)COMPC)DIRD)DISKCOMP(11)下列文件名中,能与ABC?.?匹配的是A)AB12.CB)ABCD.FORC)ABC.TXTD)ABCD.C(12)要列出当前盘当前目录中第三个字符为B的所有文件的清单,可使用的命令为A)DIR**B*.*B)DIR??B*.?C)DIR??B.*D)DIR??B*.*(13)设当前盘为C盘,其根目录下有两个子目录D1与D2,且当前目录为D1,若要进入子目录D2,可使用的命令为A)CDD2B)CDD2\C)CD\D2D)CDD1\D2(14)设当前盘为C盘,A盘当前目录为根目录。为了删除A盘目录\WS下扩展名为.TXT的所有文件,可用的命令为A)DELWS\*.TXTB)DEL\WS\*.TXTC)DELA:\WS\?.TXTD)DELA:WS\*.TXT(15)设当前盘为C盘,C盘当前目录为\AAA\BBB\A\B\X。下列命令中能正确执行的是A)MD\AAA\BBB\AB)MDXC)MD\D)MD\AAA\BBB\A\B\X(16)在下列各组的两个命令中,根据给定的条件,执行效果互相等价的是A)DEL\DOS与RD\DOS(当前盘上有目录\DOS)B)FORMATA:与DELA:*.*(A盘为启动盘)C)DISKCOPYA:B:与COPYA:*.*B:(A盘为启动盘)D)COPYF1F2与TYPEF1F2(当前盘当前目录下有文件F1)(17)为了在1.2MB的高密驱动器A中格式化一张360KB的启动盘,可用的命令为A)FORMATA:B)FORMATA:/S/1C)FORMATA:/S/4D)FORMATA:/S(18)要在打印机上输出当前盘当前目录下扩展名为.TXT的所有文件内容,正确的命令为A)COPY*.TXTPRNB)COPY*.TXTPRNC)TYPE*.TXTPRND)TYPE*.TXTPRN(19)设B盘目录结构如下:F11子目录B:\根目录F1子目录FA.TXTF21子目录FC.TXTF2子目录F22子目录FB.BASF3子目录设B盘的当前目录为\F2,要将A盘当前目录下的文件P.BAS复制到B盘的F3子目录中,可用的命令为A)COPYP.BASB:B)COPYA:P.BASB:\C)COPYA:P.BASB:\F3D)COPYA:P.BASB:F3\(20)设当前盘为A盘,要将B盘当前目录下的两个文件A.TXT与X.TXT连接后以文件名Y.TXT存放到A盘的当前目录中,可用的命令为A)COPYA.TXT+X.TXTA:Y.TXTB)COPYB:A.TXT+X.TXTA:Y.TXTC)COPYB:A.TXT+B:X.TXTY.TXTD)COPYB:A.TXT+B:X.TXTY.TXT(21)C语言中最简单的数据类型包括A)整型、实型、逻辑型B)整型、实型、字符型C)整型、字符型、逻辑型D)整型、实型、逻辑型、字符型(22)C语言中,运乍对象必须是整型数的运算符是A)%B)\C)%和\D)**(23)为表示关系x≥y≥z,应使用C语言表达式A)(x=y)&&(y=z)B(x=y)AND(y=z)C)(x=y=z)D)(x=y)&(y=z)(24)下述对C语言字符数组的描术中错误的是A)字符数组可以存放字符串B)字符数组中的字符串可以整体输入、输出C)可以在赋值语句中通过赋值运算符=对字符数组整体赋值D)不可以用关系运算符对字符数组中的字符串进行比较(25)设有如下定义:intx=10,y=3,z;则语句printf(%d\n,z=(x%y,x/y));的输出结果是A)1B)0C)4D)3(26)以下程序的输出结果是main(){intx=10,y=10;printf(%d%d\n,x--,--y);}A)1010B)99C)910D)109(27)定义如下变题和数组:inti;intx[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是for(i=0;i3;i++)printf(%d,x[i][2-1]);A)159B)147C)357D)369(28)若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为A)a0B)!aC)a=0D)a(29)阅读程序:#includestdio.hmain(){inta[10]={1,2,3,4,5,6,7,8,9,0},*p;p=a;printf(%x\n,p);printf(%x\n,p+9);}该程序有两个printf语句,如果第一个printf语句输出的是194,则第二个printf语句的输出结果是A)203B)204C)1a4D)1a6(30)设有如下函数定义:intf(char*s){char*p=s;while(*p!='\0')p++;return(p-s);}如果在主程序中用下面的语句调用上述函数,则输出结果为printf(%d\n,f(goodbey!));A)3B)6C)8D)0(31)以下说法中正确的是A)C语言程序总是从第一个的函数开始执行B)在C语言程序中,要调用的函数必须在main()函数中定义C)C语言程序总是从main()函数开始执行D)C语言程序中的main()函数必须放在程序的开始部分(32)执行下面的程序后,a的值为main(){inta,b;for(a=1,b=1;a=100;a++){if(b=20)break;if(b%3==1){b+=3;continue;}b-=5;}}A)7B)8C)9D)10(33)以下程序段的输出结果是intx=3;do{printf(%3d,x-=2);}while(!(--x));A)1B)30C)1-2D)死循环(34)定义如下变量:intn=10;则下列循环的输出结果是while(n7){n--;printf(%d\n,n);}A)10B)9C)10D)99898878776(35)两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是main(){intx;scanf(%d,&x);if(x++5)printf(%d,x);elseprintf(%d\n,x--);}A)7和5B)6和3C)7和4D)6和4(36)设有如下定义:char*aa[2]={abcd,ABCD};则以下就法中正确的是A)aa数组成元素的值分别是abcd和ABCDB)aa是指针变量,它指向含有两个数组元素的字符型一维数组C)aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址D)aa数组的两个元素中各自存放了字符'a'和'A'的地址(37)以下程序的输出结果是main(){inta=-1,b=4,k;k=(++a〈0)&&!(b--〈=0);printf(%d%d%d\n,k,ab);}A)104B)103C)003D)004(38)设有以下定义:inta[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};int(*prt)[3]=a,*p=a[0];则下列能够正确表示数组元素a[1][2]的表达式是A)*((*prt+1)[2])B)*(*(p+5))C)(*prt+1)+2D)*(*(a+1)+2)(39)下列程序的输出结果是main(){char*p1,*p2,str[50]=xyz;p1=abcd;p2=ABCD;strcpy(str+2,strcat(p1+2,p2+1);printf)%s,str);}A)xyabcABB)abcABzC)ABabczD)xycdBCD(40)执行下面的程序后,a的值是#defineSQR(X)X*Xmain(){inta=10,k=2,m=1;a/=SQR(k+m)/SQR(k+m);printf(%d\n,a);}A)10B)1C)9D)0(41)下列程序执行后输出的结果是#includestdio.hf(inta){intb=0;staticc=3:a=c++,b++;return(a);}main(){inta=2,i,k;for(i=0;i〈2;i=++〉k=f(a++);printf(%d\n,k);}A)3B)0C)5D)4(42)下列程序的输出结果是main(){inta[5]={2,4,6,8,10},*P,**k;p=a;k=&p;printf(%d,*(p++));printf(%d\n,**k);}A)44B)22C)24D)46(43)阅读下列程序:main(){intn[3],i,j,k;for(i=0;i〈3;i++〉n[i]=0;k=2;for(i=0;i〈k;i++〉for(j=0;j〈k;j++〉n[j]=n[i]+1;printf(%d\n,n[1]);}下述程序运行后输出结果是A)2B)1C)0D)3(44)字符'0'的ASCII码的十进制数为48,且数组的第0个元素在低位,则以下程序的输出结果是#includestdio.hmain(){union{inti[2];longk;charc[4];}r,*s=&r;s-i[0]=0x39;s-i[1]=0x38;printf(%c\n,s-c[0])}A)39B)9C)38D)8(45)设有以下定义:typedefunion{longi;intk[5];charc;}DATE;structdate{intcat;DATEcow;doubledog;}too;DATEmax;则下列语句的执行结果是printf(%d,sizeof(structdate)+sizeof(max));A)25B)30C)18D)8(46)执行以下程序后,y的值是main(){inta[]={2,4,6,8,10};inty=1,x,*p;p=&a[1];for(x=0;x3;x++)y+=*(p+x);printf(%d\n,y);}A)17B)18C)19D)20(47)下列程序执行后输出的结果是intd=1;fun(intq){intd=5;d+=p++;printf(%d.d);}main(){inta=3;fun(a);d+=a++;printf(%d\n,d);}A)84B)96C)94D)85(48)下列程序的输出结果是main(){charch[2][5]={6934,8254},*p[2];inti,j,s=0;for(i=0;i2;i++)p[i]=ch[i