1996年全国计算机等级考试二级c语言笔试试题含参考答案.docx
- 文档编号:9728814
- 上传时间:2023-02-06
- 格式:DOCX
- 页数:24
- 大小:45.17KB
1996年全国计算机等级考试二级c语言笔试试题含参考答案.docx
《1996年全国计算机等级考试二级c语言笔试试题含参考答案.docx》由会员分享,可在线阅读,更多相关《1996年全国计算机等级考试二级c语言笔试试题含参考答案.docx(24页珍藏版)》请在冰豆网上搜索。
1996年全国计算机等级考试二级c语言笔试试题含参考答案
全国计算机等级考试二级笔试卷
基础知识和C语言程序设计
(考试时间120分钟,满分100分)
1996年4月6日
一、选择题(
(1)-(40)每小题1分,(41)-(50)每小题2分,共60分)
下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)一个完整的计算机系统包括
A)主机、键盘与显示器B)计算机与外部设备
C)硬件系统与软件系统D)系统软件与应用软件
(2)十六进制数1000转换成十进制数是
A)4096B)1024C)2048D)8192
(3)十进制数269转换成十六进制数是
A)10EB)10DC)10CD)10B
(4)如果用八位二进制补码表示带符号的定点整数,则能表示的十进制数的范围是
A)-127到+127B)-128到+128C)-127到+128D)-128到+127
(5)下列设备中,既可作为输入设备又可作为输出设备的是
A)鼠标器B)打印机C)键盘D)磁盘驱动器
(6)下列各叙述中,正确的是
A)正数十进制原码的补码是原码本身
B)所有的十进制小数都能准确地转换为有限位二进制小数
C)汉字的计算机内码就是国标码
D)存储器具有记忆能力,其中的信息任何时候都不会丢失
(7)在下列操作中,能导致DOS系统重新启动但不进行系统自检的是
A)加电开机B)按
C)按D)按RESET按钮
(8)如果给定一个带有通配符的文件名F*.?
,则在下列各文件中,它能代表的文件名是
A)FA.EXEB)F.CC)EF.CD)FABC.COM
(9)DOS系统启动后,下列文件中常驻内存的是
A)*.COMB)FORMAT.COM
C)AUTOEXEC.BATD)COMMAND.COM
(10)设A盘的目录结构为(画方框的为目录)
如果当前盘为C盘,A盘的当前目录为\D2,则下列对A盘上文件QR.C的指定中,合法的是
A)\D2\D4\QR.CB)D4\QR.CC)A:
D4\QR.CD)A:
D2\D4\QR.C
(11)为了要将A盘当前目录(不是根目录)中所有扩展名为.C的文件同名复制到A盘的目录\USER中,正确的命令是
A)COPYA:
*.CUSER\*.CB)COPYA:
*.CA:
\USER
C)COPYA:
*.CA:
USER\D)COPYA:
*.CA:
USER\*.C
(12)为了在屏幕上一次显示当前盘当前目录下的所有扩展名为.TXT的文件内容,下列命令中正确的是
A)TYPE*.TXTB)TYPE*.TXTCON
C)COPY*.TXT>COND)COPY*.TXTCON
(13)设当前盘为A盘,为了将当前盘当前目录下的文件AB1.TXT连接在C盘根目录下的文件XYZ.TXT的后面,正确的命令是
A)COPYC:
\XYZ.TXT+AB1.TXTB)COPYAB1.TXT>>C:
\XYZ.TXT
C)TYPEAB1.TXT>C:
\XYZ.TXTD)COPYAB1.TXT+C:
\XYZ.TXT>C:
\XYZ.TXT
(14)设A盘为启动盘,其目录结构为(画方框的为目录)
其中文件AUTOEXEC.BAT的内容为
MD\XYZ
CD\DOS\USER
则由A盘启动成功后,A盘的当前目录是
A)\DOS\USERB)\XYZC)\D)\DOS
(15)下列DOS命令中为内部命令的是
A)COMPB)PATHC)PRINTD)FORMAT
(16)设当前盘为C盘,所用的所有软盘已格式化且容量相同,则下列DOS命令中错误的是
A)DISKCOPYA:
C:
B)DISKCOPYA:
A:
C)COPYA:
*.*D)COPYA:
*.*C:
(17)下列DOS命令中,有错误的是
A)TYPEAAB.FOR>PRNB)TYPE?
AB.FOR
C)COPY*.CPRND)COPYCONPRN
(18)设当前盘为C盘,在当前目录下有全部的DOS系统文件与批处理命令文件AB.BAT,且该批处理命令文件的内容为
FORMATA:
/4
MD\XYZ
CD\XYZ
RD\XYZ
MD\XYZ
如果在1.2软盘驱动器A中插入一张360K容量的软盘片,执行批自理命令文件AB.BAT后,结果A盘的目录结构是
A)根目录
B)根目录----子目录XYZ----子目录XYZ
C)根目录─┬─子目录XYZ
└─子目录XYZ
D)根目录----子目录XYZ
(19)下列带有通配符的文件名,能代表文件ABC.FOR的是
A)*BC.?
B)A?
.*C)?
BC.*D)?
.?
(20)设当前盘为C盘,且C盘上含有子目录\DOS,A盘为只有根目录的启动盘(根目录下只有三个DOS系统文件与扩展名为.C的文件)。
下列命令组中的两个命令从效果上可以认为等价的是
A)DEL\DOS与RD\DOSB)FORMATA:
与DELA:
*.*
C)FORMATA:
/S与DELA:
*.?
D)COPYA:
F1F2与RENA:
F1F2
(21)设a、b和c都是int型变量,且a=3,b=4,c=5,则下面的表达式中,值为0的表达式是
A)'a'&&'b'B)a<=bC)a||b+c&&b-cD)!
((a
c||1)
(22)请读程序片段:
inti=65536;printf("%d\n",i);
上面程序片段的输出结果是
A)65536B)0C)有语法错误,无输出结果D)-1
(23)设ch是char型变量,其值为A,且有下面的表达式:
ch=(ch>='A'&&ch<='Z')?
(ch+32):
ch
上面表达式的值是
A)AB)aC)ZD)z
(24)若x和y都是int型变量,x=100,y=200,且有下面的程序片段:
printf("%d",(x,y));
上面程序片段的输出结果是
A)200B)100C)100200D)输出格式符不够,输出不确定的值
(25)下面各语句行中,能正确进行赋字符串操作的语句行是
A)charst[4][5]={"ABCDE"};B)chars[5]={'A','B','C','D','E'};
C)char*s;s="ABCDE";D)char*s;scanf("%s",s);
(26)若k是int型变量,且有下面的程序片段:
k=-3
if(k<=0)printf("####")
elseprintf("&&&&");
上面程序片段的输出结果是
A)####B)&&&&C)####&&&&D)有语法错误,无输出结果
(27)若x是int型变量,且有下面的程序片段:
for(x=3;x<6;x++)printf((x%2)?
("**%d"):
("##%d\n"),x);
上面程序片段的输出结果是
A)**3B)##3C)##3D)**3##4
##4**4**4##5**5
**5##5
(28)请读程序:
#include
f(char*s)
{char*p=s;
while(*p!
='\0')p++;
return(p-s);
}
main()
{printf("%d\n",f("ABCDEF"));}
上面程序的输出结果是
A)3B)6C)8D)0
(29)请读程序:
#include
main()
{inta;floatb,c;
scanf("%2d%3f%4f",&a,&b,&c);
printf("\na=%d,b=%f,c=%f\n",a,b,c);
}
若运行时从键盘上输入9876543210
A)a=98,b=765,c=4321B)a=10,b=432,c=8765
C)a=98,b=765.000000,c=4321.000000D)a=98,b=765.0,c=4321.0
(30)请读程序:
#include
main()
{intn[2],i,j,k;
for(i=0;i<2;i++)n[i]=0;
k=2
for(i=0;i for(j=0;j printf("%d\n",n[k]); } 上面程序的输出结果是 A)不确定的值B)3C)2D)1 (31)请读程序片段: charstr[]="ABCD",*p=str; printf("%d\n",*(p+4)); 上面程序的输出结果是 A)68B)0C)字符"D"的地址D)不确定的值 (32)请读程序片段: #include main() {inta,b; for(a=1;b=1;a<=100;a++) {if(b>=20)break; if(b%3==1) {b+=3; continue; } b-=5; } printf("%d\n",a); } 上面程序的输出结果是 A)7B)8C)9D)10 (33)若要用下面的程序片段使指针变量p指向一个存储整型变量的动态存储单元: int*p; p=__________malloc(sizeof(int)); 则应填入 A)intB)inst*C)(*int)D)(int*) (34)请读程序片段(字符串内没有空格): printf("%d\n",strlen("ATS\n012\1\\")); 上面程序片段的输出结果是 A)11B)10C)9D)8 (35)请读程序: #include #include main() {char*s1="AbCdEf",*s2="aB"; s1++;s2++; printf("%d\n",strcmp(s1,s2)); } 上面程序的输出结果是 A)正数B)负数C)零D)不确定的值 (36)请读程序: #include func(inta,intb) {intc; c=a+b; returnc; } main() {intx=6,y=7,z=8,r; r=func(x--,y==,x+y),z--); printf("%d\n",r); } 上面程序的输出结果是 A)11B)20C)21D)31 (37)请读程序: #include inta[]={2,4,6,8}; main() {inti; int*p=a; for(i=0;i<4;i++)a[i]=*p++; printf("%d\n",a[2]); } 上面程序的输出结果是 A)6B)8C)4D)2 (38)请读程序: #include charfun(char*c) {if(*c<='Z'&&*c>='A')*c-='A'-'a'; return*c; } main() {chars[81],*p=s; gets(s); while(*p) {*p=fun(p);putchar(*p);p++;} putchar('\n'); } 若运行时从键盘上输入OPENTHEDOOR A)oPENtHEdoorB)openthedoorC)OPENTHEDOORD)OpenTheDoor (39)请读程序: #include voidfun(int*s) {staticintj=0; do s[j]+=s[j+1]; while(++j<2); } main() {intk,a[10]={1,2,3,4,5}; for(k=1;k<3;k++)fun(a); for(k=0;k<5;k++)printf("%d",a[k]); } 上面程序的输出结果是 A)34756B)23445C)35743D)12345 (40)请读程序: #include #defineSUB(X,Y)(X)*Y main() {inta=3,b=4; printf("%d",SUB(a++,b++)); } 上面程序的输出结果是 A)12B)15C)16D)20 (41)请读程序: #include main() {intmun=0; while(num<=2) {num++;printf("%d\n",num);} } 上面程序的输出结果是 A)1B)1C)1D)1 222 33 4 (42)请读程序: #include main() {floatx,y; scan("%f",&x); if(x<0.0)y=0.0 elseif((x<5.0)&&(x! =2.0)) y=1.0/(x+2.0); elseif(x<10.0)y=1.0/x; elsey=10.0; printf("%f\n",y); } 若运行时从键盘上输入2.0 A)0.000000B)0.250000C)0.500000D)1.000000 (43)请读程序: #include main() {intx=1,y=0,a=0,b=0; switch(x) {case1: switch(y) {case0: a++;break; case1: b++;break; } case2: a++;b++;break; } 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 (44)若有下面的程序片段: inta[12]={0},*p[3],**pp,i; for(i=0;i<3;i++) p[i]=&a[i*4]; pp=p; 则对数组元素的错误引用是 A)pp[0][1]B)a[10]C)p[3][1]D)*(*(p+2)+2) (45)请读程序: #include #include main() {floatx,y,z; scan("%f%f",&x,&y); z=x/y; while (1) {if(fabs(z)>1.0) {x=y;y=z;z=x/y; } elsebreak } printf("%f\n",y); } 若运行时从键盘上输入3.62.4 A)1.500000B)1.600000C)2.000000D)2.400000 (46)请读程序: #include f(inb[],intn) {inti,r; r=1; for(i=0;i<=n;i++)r=r*b[i]; returnr; } main() {intx,a[]={2,3,4,5,6,7,8,9}; x=f(a,3); printf("%d\n",x); } 上面程序的输出结果是 A)720B)120C)24D)6 (47)请读程序: #include #include voidfun(char*s) {chara[10]; strcpy(a,"STRING"); s=a; } main() {char*p; fun(p); x=f(a,3); printf("%s\n",p); } 上面程序的输出结果是(└┘表示空格) A)STRING└┘└┘└┘└┘B)STRING C)STRING└┘└┘└┘D)不确定的值 (48)若已建立下面的链表结构,指针p、s分别指向图中所示的结点,则不能将s所指的结点插入到链表末尾的语句组是 A)s->next=NULL;p=p->next;p->next=s; B)p=p->next;s->next=p->next;p->next=s; C)p=p->next;s->next=p;p->next=s; D)p=(*p).next;(*s).next=(*p).next;(*p).next=s; (49)请读程序: #include voidfun(float*pl,float*p2,float*s) {s=(float*)calloc(1,sizeof(float)); *s=*p1+*(p2++); } main() {floata[2]={1.1,2.2},b[2]={10.0,20.0},*s=a; fun(a,b,s) printf("%f\n",*s); } 上面程序的输出结果是 A)11.100000B)12.100000C)21.100000D)1.100000 (50)请读程序: #include #include voidfun(char*w,intm) {chars,*p1,*p2; p1=w;p2=w+m-1; while(p1 {s=*p1++;*p1=*p2--;*p2=s;} } main() {chara[]="ABCDEFG"; fun(a,strlen(a)); puts(a); } 上面程序的输出结果是 A)GFEDCBAB)AGADAGAC)AGAAGAGD)GAGGAGA 二、填空题(每空2分,共40分) 请将每空的正确答案写在答题卡上【1】-【20】序号后的横线上,答在试卷上不得分。 (1)DOS命令分为内部命令与外部命令,XCOPY命令是【1】命令 (2)为了列出当前盘当前目录中所有第三个字符为C的文件名的有关信息,应该用命令【2】。 (3)设当前盘为A盘,当前目录为\X\Y,A盘上的一个文件QR.C在当前目录下的子目录W中。 现已将A盘的当前目录改为\D\XY,当前盘改为C盘,如需指定A盘上该文件应写成【3】。 (4)用十六进制给存储器中的字节地址进行编号,其地址编号是从0000到FFFF,则该存储器的容量是【4】KB。 (5)设有两个八位二进制数00010101与01000111相加,其结果的十进制表示为【5】。 (6)数学式子 写成C语言表达式是【6】。 (7)下面程序的输出结果是【7】。 #include main() {staticcharb[]="Goodbye"; char*chp=&b[7]; while(--chp>=&b[0])putchar(*chp); putchar('\n'); } (8)下面程序的输出结果是【8】。 #include voidas(intx,inty,int*cp,int*dp) {*cp=x+y; *dp=x-y; } main() {inta=4,b=3,c,d; as(a,b,&c,&d); printf('%d%d\n",c,d); } (9)请读程序: #include main(intargc,char*argv[]) {inti; printf('%d\n",argc); for(i=0;i<=argc+1;i++)printf("%s",argv[i]); printf("\n"); } 若上面的程序编译、连接后生成可执行文件ABC.EXE,则输入以下命令行 abcfile1file2 程序执行后的输出结果是【9】。 (10)条件“20 (11)设二进制数a是00101101,若想通过异或运算a^b使a的高4位取反,低4位不变,则二进制数b应是【11】。 (12)若有以下说明和定义语句,则变量w在内存中所占的字节数是【12】。 unionaa {floatx,y; charc[6]; }; structst{unionaav;floatw[5];doubleave;}w; (13)下面程序的输出结果是【13】。 #include #defineN5 fun(char*s,chara,intn) {intj; *s=a;j=n; while(e returnj; } main() {chars[N+1]; intk,p; for(k=1;k<=N;k++) s[k]='A'+k+1; printf("%d\n",fun(s,'E',N)); } (14)下面程序的输出结果是【14】。 #include voidfun(char*a1,char*a2,intn) {intk; for(k=0;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 1996 全国 计算机等级考试 二级 语言 笔试 试题 参考答案