1996年全国计算机等级考试二级C语言笔试试题及答案.docx
- 文档编号:29744638
- 上传时间:2023-07-26
- 格式:DOCX
- 页数:18
- 大小:22.45KB
1996年全国计算机等级考试二级C语言笔试试题及答案.docx
《1996年全国计算机等级考试二级C语言笔试试题及答案.docx》由会员分享,可在线阅读,更多相关《1996年全国计算机等级考试二级C语言笔试试题及答案.docx(18页珍藏版)》请在冰豆网上搜索。
1996年全国计算机等级考试二级C语言笔试试题及答案
1996年4月全国计算机等级考试二级C语言笔试试题及答案
一、选择题(
(1)-(40)每小题1分,(41)-(50)每小题2分,共60分)
下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)一个完整的计算机系统包括
A.主机、键盘与显示器
B.计算机与外部设备
C.硬件系统与软件系统
D.系统软件与应用软件
(2)十六进制数1000转换成十进制数是
A.4096
B.1024
C.2048
D.8192
(3)十进制数269转换成十六进制数是
A.10E
B.10D
C.10C
D.10B
(4)如果用八位二进制补码表示带符号的定点整数,则能表示的十进制数的范围是
A.-127到+127
B.-128到+128
C.-127到+128
D.-128到+127
(5)下列设备中,既可作为输入设备又可作为输出设备的是
A.鼠标器
B.打印机
C.键盘
D.磁盘驱动器
(6)下列各叙述中,正确的是
A.正数十进制原码的补码是原码本身
B.所有的十进制小数都能准确地转换为有限位二进制小数
C.汉字的计算机内码就是国标码
D.存储器具有记忆能力,其中的信息任何时候都不会丢失
(7)在下列操作中,能导致DOS系统重新启动但不进行系统自检的是
A.加电开机
B.按+
C.按++
D.按RESET按钮
(8)如果给定一个带有通配符的文件名F*.?
,则在下列各文件中,它能代表的文件名是
A.FA.EXE
B.F.C
C.EF.C
D.FABC.COM
(9)DOS系统启动后,下列文件中常驻内存的是
A.*.COM
B.FORMAT.COM
C.AUTOEXEC.BAT
D.COMMAND.COM
(10)设A盘的目录结构为(画方框的为目录)
如果当前盘为C盘,A盘的当前目录为\D2,则下列对A盘上文件QR.C的指定中,合法的是
A.\D2\D4\QR.C
B.D4\QR.C
C.A:
D4\QR.C
D.A:
D2\D4\QR.C
(11)为了要将A盘当前目录(不是根目录)中所有扩展名为.C的文件同名复制到A痰哪柯糪USER中,正确的命令是
A.COPYA:
*.CUSER\*.C
B.COPYA:
*.CA:
\USER
C.COPYA:
*.CA:
USER\
D.COPYA:
*.CA:
USER\*.C
(12)为了在屏幕上一次显示当前盘当前目录下的所有扩展名为.TXT的文件内容,下列命令中正确的是
A.TYPE*.TXT
B.TYPE*.TXTCON
C.COPY*.TXT>CON
D.COPY*.TXTCON
(13)设当前盘为A盘,为了将当前盘当前目录下的文件AB1.TXT连接在C盘根目录下的文件XYZ.TXT的后面,正确的命令是
A.COPYC:
\XYZ.TXT+AB1.TXT
B.COPYAB1.TXT>>C:
\XYZ.TXT
C.TYPEAB1.TXT>C:
\XYZ.TXT
D.COPYAB1.TXT+C:
\XYZ.TXT>C:
\XYZ.TXT
(14)设A盘为启动盘,其目录结构为(画方框的为目录)
其中文件AUTOEXEC.BAT的内容为
MD\XYZ
CD\DOS\USER
则由A盘启动成功后,A盘的当前目录是
A.\DOS\USER
B.\XYZ
C.\
D.\DOS
(15)下列DOS命令中为内部命令的是
A.COMP
B.PATH
C.PRINT
D.FORMAT
(16)设当前盘为C盘,所用的所有软盘已格式化且容量相同,则下列DOS命令中错误的是
A.DISKCOPYA:
C:
B.DISKCOPYA:
A:
C.COPYA:
*.*
D.COPYA:
*.*C:
(17)下列DOS命令中,有错误的是
A.TYPEAAB.FOR>PRN
B.TYPE?
AB.FOR
C.COPY*.CPRN
D.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\DOS
B.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<=b
C.a||b+c&&b-c
D.!
((a (22)请读程序片段:
inti=65536;printf("%d\n",i);
上面程序片段的输出结果是
A.65536
B.0
C.有语法错误,无输出结果
D.-1
(23)设ch是char型变量,其值为A,且有下面的表达式:
ch=(ch>=’A’&&ch<=’Z’)?
(ch+32):
ch
上面表达式的值是
A.A
B.a
C.Z
D.z
(24)若x和y都是int型变量,x=100,y=200,且有下面的程序片段:
printf("%d",(x,y));
上面程序片段的输出结果是
A.200
B.100
C.100200
D.输出格式符不够,输出不确定的值
(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.**3
B.##3
C.##3
D.**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.3
B.6
C.8
D.0
(29)请读程序:
#include
main()
{inta;floatb,c;
scanf("-?
O",&a,&b,&
C.;
printf("\na=%d,b=%f,c=%f\n",a,b,
C.;
)
若运行时从键盘上输入9876543210(表示回车),则上面程序的输出结果是
A.a=98,b=765,c=4321
B.a=10,b=432,c=8765
C.a=98,b=765.000000,c=4321.000000
D.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.3
C.2
D.1
(31)请读程序片段:
charstr[]="ABCD",*p=str;
printf("%d\n",*(p+4));
上面程序的输出结果是
A.68
B.0
C.字符"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.7
B.8
C.9
D.10
(33)若要用下面的程序片段使指针变量p指向一个存储整型变量的动态存储单元:
int*p;
p=__________malloc(sizeof(int));
则应填入
A.int
B.inst*
C.(*int)
D.(int*)
(34)请读程序片段(字符串内没有空格):
printf("%d\n",strlen("ATS\n012\1\\"));
上面程序片段的输出结果是
A.11
B.10
C.9
D.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,int
B.
{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.11
B.20
C.21
D.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.6
B.8
C.4
D.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.oPENtHEdoor
B.openthedoor
C.OPENTHEDOOR
D.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.34756
B.23445
C.35743
D.12345
(40)请读程序:
#include
#defineSUB(X,Y)(X)*Y
main()
{inta=3,b=4;
printf("%d",SUB(a++,b++));
}
上面程序的输出结果是
A.12
B.15
C.16
D.20
(41)请读程序:
#include
main()
{intmun=0;
while(num<=2)
{num++;printf("%d\n",num);}
}
上面程序的输出结果是
A.1
B.1
C.1
D.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.000000
B.0.250000
C.0.500000
D.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=1
B.a=1,b=1
C.a=1,b=0
D.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.500000
B.1.600000
C.2.000000
D.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.720
B.120
C.24
D.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.100000
B.12.100000
C.21.100000
D.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.GFEDCBA
B.AGADAGA
C.AGAAGAG
D.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()
{ static char b[]="Goodbye";
char *chp=&b[7];
while( --chp >=&b[0]) putchar( *chp);
putchar(’\n’);
}
(8) 下面程序的输出结果是 【8】 。
#include
void as( int x, int y, int *cp, int *dp)
{ *cp=x+y;
*dp=x-y;
}
main()
{ int a=4, b=3, c, d;
as( a, b, &c, &d);
printf( ’%d %d\n", c, d);
}
(9) 请读程序:
#include
main( int argc, char *ar
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 1996 全国 计算机等级考试 二级 语言 笔试 试题 答案