1996年全国计算机等级考试二级c语言笔试试题含参考答案Word格式.docx
《1996年全国计算机等级考试二级c语言笔试试题含参考答案Word格式.docx》由会员分享,可在线阅读,更多相关《1996年全国计算机等级考试二级c语言笔试试题含参考答案Word格式.docx(24页珍藏版)》请在冰豆网上搜索。
COND)COPY*.TXTCON
(13)设当前盘为A盘,为了将当前盘当前目录下的文件AB1.TXT连接在C盘根目录下的文件XYZ.TXT的后面,正确的命令是
A)COPYC:
\XYZ.TXT+AB1.TXTB)COPYAB1.TXT>
>
C:
\XYZ.TXT
C)TYPEAB1.TXT>
\XYZ.TXTD)COPYAB1.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
CD\XYZ
RD\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<
b)&
!
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]={'
'
B'
C'
D'
E'
C)char*s;
s="
;
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<
stdio.h>
f(char*s)
{char*p=s;
while(*p!
\0'
)p++;
return(p-s);
}
main()
{printf("
f("
ABCDEF"
));
上面程序的输出结果是
A)3B)6C)8D)0
(29)请读程序:
{inta;
floatb,c;
scanf("
%2d%3f%4f"
&
a,&
b,&
c);
\na=%d,b=%f,c=%f\n"
a,b,c);
若运行时从键盘上输入9876543210<
CR>
(<
表示回车),则上面程序的输出结果是
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)请读程序:
{intn[2],i,j,k;
for(i=0;
i<
2;
i++)n[i]=0;
k=2
k;
i++)
for(j=0;
j<
j++)n[j]=n[j]+1;
n[k]);
A)不确定的值B)3C)2D)1
(31)请读程序片段:
charstr[]="
ABCD"
*p=str;
*(p+4));
A)68B)0C)字符"
D"
的地址D)不确定的值
(32)请读程序片段:
{inta,b;
for(a=1;
b=1;
a<
=100;
a++)
{if(b>
=20)break;
if(b%3==1)
{b+=3;
continue;
b-=5;
a);
A)7B)8C)9D)10
(33)若要用下面的程序片段使指针变量p指向一个存储整型变量的动态存储单元:
int*p;
p=__________malloc(sizeof(int));
则应填入
A)intB)inst*C)(*int)D)(int*)
(34)请读程序片段(字符串内没有空格):
strlen("
ATS\n012\1\\"
A)11B)10C)9D)8
(35)请读程序:
string.h>
{char*s1="
AbCdEf"
*s2="
aB"
s1++;
s2++;
strcmp(s1,s2));
A)正数B)负数C)零D)不确定的值
(36)请读程序:
func(inta,intb)
{intc;
c=a+b;
returnc;
{intx=6,y=7,z=8,r;
r=func(x--,y==,x+y),z--);
r);
A)11B)20C)21D)31
(37)请读程序:
inta[]={2,4,6,8};
{inti;
int*p=a;
4;
i++)a[i]=*p++;
a[2]);
A)6B)8C)4D)2
(38)请读程序:
charfun(char*c)
{if(*c<
&
*c>
)*c-='
-'
return*c;
{chars[81],*p=s;
gets(s);
while(*p)
{*p=fun(p);
putchar(*p);
p++;
putchar('
\n'
若运行时从键盘上输入OPENTHEDOOR<
A)oPENtHEdoorB)openthedoorC)OPENTHEDOORD)OpenTheDoor
(39)请读程序:
voidfun(int*s)
{staticintj=0;
do
s[j]+=s[j+1];
while(++j<
2);
{intk,a[10]={1,2,3,4,5};
for(k=1;
k<
3;
k++)fun(a);
for(k=0;
5;
k++)printf("
a[k]);
A)34756B)23445C)35743D)12345
(40)请读程序:
#defineSUB(X,Y)(X)*Y
{inta=3,b=4;
SUB(a++,b++));
A)12B)15C)16D)20
(41)请读程序:
{intmun=0;
while(num<
=2)
{num++;
num);
A)1B)1C)1D)1
222
33
4
(42)请读程序:
{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;
%f\n"
y);
若运行时从键盘上输入2.0<
A)0.000000B)0.250000C)0.500000D)1.000000
(43)请读程序:
{intx=1,y=0,a=0,b=0;
switch(x)
{case1:
switch(y)
{case0:
a++;
break;
case1:
b++;
case2:
a++;
break;
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;
i<
i++)
p[i]=&
a[i*4];
pp=p;
则对数组元素的错误引用是
A)pp[0][1]B)a[10]C)p[3][1]D)*(*(p+2)+2)
(45)请读程序:
math.h>
{floatx,y,z;
%f%f"
x,&
y);
z=x/y;
while
(1)
{if(fabs(z)>
1.0)
{x=y;
y=z;
z=x/y;
elsebreak
若运行时从键盘上输入3.62.4<
表示回车),则输出的结果是
A)1.500000B)1.600000C)2.000000D)2.400000
(46)请读程序:
f(inb[],intn)
{inti,r;
r=1;
=n;
i++)r=r*b[i];
returnr;
{intx,a[]={2,3,4,5,6,7,8,9};
x=f(a,3);
x);
A)720B)120C)24D)6
(47)请读程序:
voidfun(char*s)
{chara[10];
strcpy(a,"
STRING"
s=a;
{char*p;
fun(p);
%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->
s->
next=p->
C)p=p->
next=p;
D)p=(*p).next;
(*s).next=(*p).next;
(*p).next=s;
(49)请读程序:
voidfun(float*pl,float*p2,float*s)
{s=(float*)calloc(1,sizeof(float));
*s=*p1+*(p2++);
{floata[2]={1.1,2.2},b[2]={10.0,20.0},*s=a;
fun(a,b,s)
*s);
A)11.100000B)12.100000C)21.100000D)1.100000
(50)请读程序:
voidfun(char*w,intm)
{chars,*p1,*p2;
p1=w;
p2=w+m-1;
while(p1<
p2)
{s=*p1++;
*p1=*p2--;
*p2=s;
{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】。
{staticcharb[]="
Goodbye"
char*chp=&
b[7];
while(--chp>
=&
b[0])putchar(*chp);
(8)下面程序的输出结果是【8】。
voidas(intx,inty,int*cp,int*dp)
{*cp=x+y;
*dp=x-y;
{inta=4,b=3,c,d;
as(a,b,&
c,&
d);
printf('
%d%d\n"
c,d);
(9)请读程序:
main(intargc,char*argv[])
argc);
for(i=0;
=argc+1;
i++)printf("
%s"
argv[i]);
\n"
若上面的程序编译、连接后生成可执行文件ABC.EXE,则输入以下命令行
abcfile1file2<
表示回车)
程序执行后的输出结果是【9】。
(10)条件“20<
x<
30或x<
-100”的C语言表达式是【10】。
(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<
s[j])j--;
returnj;
{chars[N+1];
intk,p;
for(k=1;
=N;
k++)
s[k]='
+k+1;
printf("
fun(s,'
N));
(14)下面程序的输出结果是【14】。
voidfun(char*a1,char*a2,intn)
{intk;
for(k=0;