1996年二级笔试试题C.docx
《1996年二级笔试试题C.docx》由会员分享,可在线阅读,更多相关《1996年二级笔试试题C.docx(21页珍藏版)》请在冰豆网上搜索。
1996年二级笔试试题C
1996年4月全国计算机等级考试二级
C语言笔试卷及答案(考试时间120分钟,满分100分)
一、选择题(
(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)按《CTRL》《BREAK》
C)按《CTRL》《ALT》《DEL》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盘的目录结构为(画方框的为目录)
┌───┬───┼─────┬─────┬────┐
│││││A.FOR
ABC[D1]DX.CQ.DAT[D2]
┌───┴┬───┬───┐┌──┼───┐
│││││││
B.PAS[D3]Y.BASA.CA1.C[D4]XYZ.C
┌───┴┬──┬────┐
QR.CNA.CA.TXTB.C
如果当前盘为C盘,A盘的当前目录为、D2,则下列对A盘上文件QR.C的指定中,合法的是
A)、D2、D4、QR.CB)D4、QR.C
C)A:
D4、QR.CD)A:
D2、D4、QR.C
11.为了要将当前目录(不是根目录)中所有扩展名为。
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.TXTAB1.TXT
B)COPYAB1.TXT》》C:
、XYZ.TXT
C)TYPEAB1.TXT》C:
、XYZ.TXT
D)COPYAB1.TXTC:
、XYZ.TXT》C:
、XYZ.TXT
14.设A盘为启动盘,其目录结构为(画方框的为目录)
、
┌──────┴──────┐
[DOS]COMMAND.COM
┌───┴──────┐
[USER]AUTOEXEC.BAT
其中文件AUTOEXEC.BAT的内容为
MD、XYZ
CD、DOS、USER
则由A启动成功后,A盘的当前目录是
A)、DOS、USERB)XYZ
C)、D)、DOS
15.下列DOS命令中为内部命令的是
A)COMPB)PATH
C)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.2M软盘驱动器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││BC&&BCD)!
((A='A'&&CH《='Z')?
(CH32):
CH
上面表达式的值是
A)AB)aC)ZD)z
24.若X和Y都是INT型变量,X=100,Y=200,且有下面的程序片段:
PRINT(“%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=765.000000,C=4321.000000C)A=98,B=765.0,C=4321.0
30.请读程序:
#INCLUDE《STDIO.D》
MAIN()
{INTN[2],I,J,K;
FOR(I=0;I《2;I)N[J]=N[I]1;
PRINTF(“%D、N”,N[K]);
}
上面程序的输出结果是
A)不确定的值B)3C)2D)1
31.请读程序片段:
CHARSTR[]=“ABCD”,*P=STR;
PRINTF(“%D、N”,*(P4));
上面程序片段的输出结果是
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)INT*C)(*INT)D)(INT*)
34.请读程序片段(字符串内没有空格字符):
PRINTF(“%D、N”,STRLEN(“ATS、N012、1、、”));
上面程序片段的输出结果是
A)11B)10C)9D)8
35.请读程序:
#INCLUDE《STDIP.H》
#INCLUDE《STRING.H》
MAIN()
{CHAR*SL=“ABCDEF”,*s2=“aB';”
s1;s2;
PRINTF(“%D、N”,STRCMP(s1,s2)
}
上面程序的输出结果是
A)正数B)负数C)零D)不确定的值
36.请读程序:
#INCLUDE《STDIP.H》
FUNC(INTA,INTB)
{INTC;
C=AB;
RETURNC;
}
MAIN()
{INTX=6,Y=7,Z=8,R;
R=FUNC((X——,Y,XY),Z——);
PRINTF(“%D、N”,R);
}
上面程序的输出结果是
A)11B)20C)21D)31
37.请读程序:
#INCLUDE《STDIO.H》
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《STDIO.H》
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)openthedoor
C)OPENTHEDOORD)OpenTheDoor
39.请读程序:
#INCLUDE《STDIO.H》
VOIDFUN(INT*S)
{STATICINTJ=0;
DO
S[J]=S[J1];
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)23445
C)35745D)12345
40.请读程序:
#include《stdio.h》
#defineSUB(X,Y)(X)*Y
main()
{inta=3,b=4;
printf(“%d、n”,SUB(a,b));
}
上面程序的输出结果是
A)12B)15
C)16D)20
41.请读程序:
#include
main()
{intnum=0;
while(num=《=2)
{num;printf(“%d、n”,num);}
}
上面程序的输出结果是
A)1B)1C)1D)1
222
334
42.请读程序:
#include
main()
{floatx,y;
scanf(“%f”,&x);
if(x《0.0)y=0.0
elseif((x《5.0)&&(x!
=2.0))
y=1.0/(x2.0);
elseif(x《10.0)y=1.0/x;
elsey=10.0;
printf(“%f、n”,y);
}
若运行时从键盘上输入2.0(表示回车),则上面程序的输出结果是
A)0.000000B)0.250000
C)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=1
C)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)*(*(P2)2)
45.请读程序:
#include
#include
main()
{floatx,y,z;
scanf(“%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(intb[],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);
printf(“%s、n”,p);
}
上面程序的输出结果是(表示空格)
A)STRINGB)STRING
C)STRINGD)不确定的值
48.若已建立下面的链表结构,指针P`S分别提向图中所示的结点,则不能将S所指的结点插入到链末尾的语句组是
datanext
head───┤E││────┤F│NULL│
↑p│
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=*pl*(p2)l
}
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.100000
C)21.100000D)1.100000
50.请读程序:
#include
#include
voidfun(char*w,intm)
{chars,*pl,*p2;
p1=w;p2=wm——1;
while(pl
main()
{staticcharb[]=“Goodbye”;
char*chp=&b[7];
while(——chp》=&b[0]putchar(*chp);
putchar('、n');
}
8.下面程序输出结果是。
───
#include
voidas(intx,inty,int*cp,int*dp)
{*cp=xy;
*dp=x——y;
}
main()
{inta=4,b=3,c,d;
as(a,b,&c,&d);
printf(“%d%d、”,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,则输入以下命令行
abcfilelfile2(表示回车)
程序执行后的输出结果是
。
───
10.条件“20”
#defineN5
fun(char*s,chara,intn)
{intj;
*s=a;j=n;
while(e
voidfun(char*al,char*a2,intn)
{intk;
for(k=0;ks[k])
。
────
returnk;
}
16.下面程序的输同结果是。
───
#include
fun(intx)
{intp;
if(x==0││x==1)return(3);
p=x——fun(x——2);
returnp;
}
main()
{printf(“%d、n”,fun(9));}
17.下面程序的输出结果是
。
───
#include
funa(inta,intb)
{returnab;}
funb(inta,intb)
{returna——b;}
sub(int(*t)(),intx,inty;)
{return((*t)(x,y));}
main()
{intx,(*p)();
p=funa;
x=sub(p,9,3);
x=sub(funb,8,3);
print(“%d、n”,x);
18.下面程序的输出结果是
。
──
#include
main()
{char*p[]={“BOOL”,OPK“,”H“,”SP“};”
inti;
for(i=3;i》=0;i——,i——)printf(“%c”,*p[i]);
printf(“、n”);
}
19.为了建立如图所示的存储结构(即每个结点含两个域,data是数据域,next是指向结点的指针域,)请填空。
datanext
┌─┐
structlink{chardata;│19│}node;
└─┘
──
20.下面的的程序用来统计文件中字符的个数,请填空。
#include
main()
{FILE*fp;
longnum=0;
if((fp=fopen(“fname.dat”,“r”))==NULL)
{printf(“Can'topenfile!
、n”);exit(0);}
while
───
{fgetc(fp);num;}
printf(“num=%d、n”,num);
fclose(fp);
}
1996年4月全国计算机等级考试二级笔试试卷
一选择题(
(1)~(40)题每题1分,(41)~(50)题每题2分,共60分)
(1)C
(2)A(3)B(4)D(5)D
(6)A(7)C(8)B(9)D(10)C
(11)B(12)D(13)A(14)C(15)B
(16)A(17)B(18)A(19)C(20)C
(21)D(22)B(23)B(24)A(25)C
(26)D(27)D(28)B(29)C(30)A
(31)B(32)B(33)D(34)C(35)A
(36)C(37)A(38)B(39)C(40)A
(41)C(42)C(43)A(44)C(45)B
(46)B(47)D(48)C(49)D(50)C
二填空题(每空2分,共40分)
(第
(2)`(3)空允许小写或大小写混合使用,其它空均须与答案一样)
(1)外部
(2)DIR?
?
C*。
*
(3)A:
、X、Y、W、QR.C
(4)64
(5)92
(6)│6│pow(sin(x),2)*(ab)/(a——b)或sit(x)*sit(x)*(ab)/(a——b)
(7)eybdooG
(8)71
(9)3abc.exefile1file2(注:
两个答案,每个1分)
(10)│10│((20