计算机等级考试国家二级19974.docx
《计算机等级考试国家二级19974.docx》由会员分享,可在线阅读,更多相关《计算机等级考试国家二级19974.docx(13页珍藏版)》请在冰豆网上搜索。
计算机等级考试国家二级19974
1997年4月全国计算机等级考试二级试卷C语言(带答案)
(考试时间120分钟,满分100分)
一、选择题(
(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)COSPC)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\*.TXT
C)DELA:
\WS\?
.TXTD)DELA:
WS\*.TXT
(15)设当前盘为C盘,C盘当前目录为\AAA\BBB\A\B\X.下列命令中正确的是
A)MD\AAA\BBB\AB)MDX
C)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与TYPEF1>F2(当前盘当前目录下有文件F1)
(17)为了在1.2MB的高密驱动器A中格式化一张360KB的启动盘,可用的命令为
A)FORMATA:
B)FORMATA:
/S/1
C)FORMATA:
/S/4D)FORMATA:
/S
(18)要在打印机上输出当前盘当前目录下扩展名为.TXT的所有文件内容,正确的命令为
A)COPY*.TXTPRNB)COPY*.TXT>PRN
C)TYPE*.TXTPRND)TYPE*.TXT>PRN
(19)设B盘目录结构如下:
B:
\根目录─┬─F1子目录──F11子目录───FA.TXT
│
├─F2子目录┬─F21子目录─┬─FB.BAS
│││
│││
│└─F22子目录└─FC.TXT
└─
设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.TXT
B)COPYB.A.TXT+X.TXTA:
Y.TXT
C)COPYB:
A.TXT+B:
X.TXT>Y.TXT
D)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)0
C)4D)3
(26)以下程序的输出结果是
main()
{intx=10,y=10;
printf("%d%d\n",x--,--y);
}
A)1010B)99
C)910D)109
(27)定义如下变题和数组:
inti;
intx[3][3]={1,2,3,4,5,6,7,8,9};
则下面语句的输出结果是
for(i=0;i<3;i++)printf("%d",x[i][2-1]);
A)159B)147
C)357D)369
(28)若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为
A)a<>0B)!
a
C)a=0D)a
(29)阅读程序:
#include
main()
{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)204
C)1a4D)1a6
(30)设有如下函数定义:
intf(char*s)
{char*p=s;
while(*p!
='\0')\p++;
return(p-s);
}
如果在主程序中用下面的语句调用上述函数,则输出结果为
printf("%d\n",f("goodbey!
"));
A)3B)6
C)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)8
C)9D)10
(33)以下程序段的输出结果是
intx=3;
do
{printf("%3d",x-=2);}
while(!
(--x));
A)1B)30
C)1-2D)死循环
(34)定义如下变量:
intn=10;
则下列循环的输出结果是
while(n>7)
{n--;
printf("%d\n",n);
}
A)10B)9C)10D)9
9898
8787
76
(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数组成元素的值分别?
quot;abcd"和ABCD"
B)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)abcABz
C)ABabczD)xycdBCD
(40)执行下面的程序后,a的值是
#defineSQR(X)X*X
main()
{inta=10,k=2,m=1;
a/=SQR(k+m)/SQR(k+m);
printf("%d\n",a);
}
A)10B)1C)9D)0
(41)下列程序执行后输出的结果是
#include〈stdio.h〉
f(inta)
{intb=0;
statinc=3:
a=c++,b++;
returu(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个元素在低位,则以下程序的输出结果是
#include〈stdio.h〉
main()
{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;x<3;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;i<2;i++)
p[i]=ch[i];
for(i=0;i<2;i++)
for(j=0;p[i][j]>'\0'&&p[i][j]<='9';j+=2)
s=10*s+p[i][j]-'0';
printf("%d\n",s);
A)6385B)69825C)63825D)693825
(49)以下程序的输出结果是
fut(int**s,intp[2][3])
{**s=p[1][1];}
main()
{inta[2][3]={1,3,5,7,9,11},*p;
p=(int*)malloc(sizeof(int));
fut(&p,a);
primtf("%d\n",*p);
}
A)1B)7C)9D)11
(50)以下程序的输出结果是
#include"ctype.h"
space(char*str)
{inti,t;charts[81];
for(i=0,t=0;str[i]!
='\0';i+=2)
if(!
isspace(*str+i)&&(*(str+i)!
='a'))
ts[t++]=toupper(str[i]);
ts[t]='\0';
strcpy(str,ts);
}
mian()
{chars[81]={"abcdefg"};
space(s);
puts(s);
}
A)abcdegB)bcdeC)ABCDED)BCDE
二、填空题(每空2分,共40分)
请将每空的正确答案写在答题卡1至20序号的横线上,答在试卷上不得分.────
(1)十进制数112.375转换成十六进制数为1.
─
(2)存储200个32×32点阵的汉字信息需2KB.
─
(3)数字符号0的ASCⅡ码十进制表示为48,数字符号9的ASCⅡ码十进制表示为3.
─
(4)DOS命令分为内部命令与外部命信,TREE命令属于4命令.
─
(5)自动批处理文件的文件名为5.
─
(6)表示条件:
10
main()
{charb[]="ABCDEFG";
char*chp=&b[7];
while(--chp>&b[0])
putchar(*chp);
putchar('\n');
}
(8)下列程序的输出结果是8.
─
intast(intx,inty,int*cp,int*dp)
{*cp=x+y;
*dp=x-y;
}
main()
{inta,b,c,d;
a=4;b=3;
ast(a,b,&c,&d);
printf("%d%d/n",c,d);
}
(9)以下程序的功能是:
人键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入.请填空.
main()
{floatx,amax,amin;
scanf("%f",&x);
amax=x;
amin=x;
while(9)
─
{if(x>amax)amax=x;
if(10)amin=x;
─
scanf("%f",&x);
}
printf("\namax=%f\namin=%f\n",amax,amin);
}
(10)下面程序通过函数average计算数组中各元素的平均值,请填空.
floataverage(int*pa,intn)
{inti;
floatavg=0.0;
for(i=0;i
main()
{FILE*fp;
charch,fname[10];
printf("lnputthenameoffile\n");
gets(fname);
if((fp=16)==NULL)
─
{printf("Cannotopen\n");exit(0);}
printf("Enterdata\n");
while((ch=getchar())!
='#')
fputc(17,fp);
fclose(fp);
}
(15)以下函数creat用来建立一个带头结点的单向链表,新产生的结点总是插在链表的末尾.单向链表的头指针作为函数值返回.请填空:
#include
structlist
{chardata;
structlist*next;
};
structlist*creat()
{structlist*h,*p,*q;
charch;
h=18malioc(sizeof(structlist));
─
p=q=h;
ch=getchar();
while(ch!
='?
')
{p=19malloc(sizeof(structlist));
─
p->data=ch;
p->next=p;
q=p;
ch=getchar();
}
p->next='\0';
20
─
}