1998年全国计算机等级考试二级C语言笔试试题及答案.docx
- 文档编号:29725074
- 上传时间:2023-07-26
- 格式:DOCX
- 页数:13
- 大小:21.18KB
1998年全国计算机等级考试二级C语言笔试试题及答案.docx
《1998年全国计算机等级考试二级C语言笔试试题及答案.docx》由会员分享,可在线阅读,更多相关《1998年全国计算机等级考试二级C语言笔试试题及答案.docx(13页珍藏版)》请在冰豆网上搜索。
1998年全国计算机等级考试二级C语言笔试试题及答案
1998年4月全国计算机等级考试二级C语言笔试试题及答案
一、选择题(
(1)-(40)每小题1分,(41)-(50)每小题2分,共60分)
下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项在答题卡相应位置上涂黑,答在试卷上不得分。
(1)所谓“裸机”是指
A.单片机
B.单板机
C.不装备任何软件的计算机
D.只装备操作系统的计算机
(2)下列存储器中,存取速度最快的是
A.软盘
B.硬盘
C.光盘
D.内存
(3)系统软件中最重要的是
A.操作系统
B.语言处理程序
C.工具软件
D.数据库管理系统
(4)CPU处理的数据基本单位为字,一个字的字长
A.为8个二进制位
B.为16个二进制位
C.为32个二进制位
D.与CPU芯片的型号有关
(5)打印当前屏幕内容应使用的控制键是
A.Scroll-Lock
B.Num-Lock
C.PgDn
D.PrtSc(PrintScreen)
(6)能将高级语言源程序转换成目标程序的是
A.调试程序
B.解释程序
C.编译程序
D.编辑程序
(7)二进制数1110111.11转换成十进制数是
A.119.375
B.119.75
C.119.125
D.119.3
(8)十六进制数FF.1转换成十进制数是
A.255.0625
B.255.125
C.127.0625
D.127.125
(9)3.5英寸软盘片的一个角上有一个滑动块,如果移动该滑块露出一个小孔,则该软盘
A.不能读但能写
B.不能读也不能写
C.只能读不能写
D.能读写
(10)控制键^C的功能为
A.终止当前操作
B.系统复位
C.暂停标准输出设备的输出
D.结束命令行
(11)COMMAND.COM为命令处理程序,DOS系统启动后,它
A.驻留在外存,需要时再装入内存
B.常驻内存,包含所有内部命令
C.不能处理外部命令
D.不能处理后缀为.EXE的可执行文件
(12)为了将所有扩展名为.PAS的文件改成扩展名为.P,应使用命令
A.REN*.PAS*.?
AS
B.RENPASP
C.REN*.PAS*.P
D.REN*.PAS*.P?
?
(13)设当前盘中文件XY.C的路径为\A\B\XU,当前目录为\A\B。
为了查看文件XY.C的内容,应使用命令
A.TYPEXU\XY.C
B.TYPE\XU\XY.C
C.DIRXU\XY.C
D.DIR\A\B\XU\XY.C
(14)要将提示符改成当前盘当前目录后加一个大于号">",应使用命令
A.PROMPT
B.PROMPT$p$g
C.PROMPT$$
D.PROMPTC\>
(15)设C盘根目录中有一个批处理文件A.BAT,当前盘为A盘。
为了执行该批处理文件,下列命令中一定正确的是
A.C:
\A
B.C:
A.BAT
C.A.BAT
D.\A.BAT
(16)设当前盘为C盘,将A盘根目录下的文件目录信息存放到当前盘当前目录下的文件AB中,应使用命令
A.TYPEA:
\>AB
B.DIR>AB
C.DIRA:
\>AB
D.DIR\>AB
(17)可执行文件ABC.EXE所需要的输入数据已经按格式存放在文件XYZ中,要求将执行结果在打印机上打印输出。
下列命令中正确的是
A.ABCXYZ
C.ABC>XYZPRN
(18)在当前盘当前目录下有一个文件A.BAT,其内容为
CD\
MD\XYZ\AB\B\C
CDXYZ\AB\B
在正确执行上述文件后,接着执行下列命令时,不会发生错误的是
A.MDC
B.RD\XYZ
C.RDC
D.RDB
(19)下列命令组中两个命令互相等价的是
A.TYPEAB.TXT与DIRAB.TXT
B.DISKCOMPA:
B:
与COMPA:
*.*B:
*.*
C.TYPEAB.TXT>>XY.TXT与COPYAB.TXTXY.TXT
D.TYPEAB.TXT>XY.TXT与COPYAB.TXTXY.TXT
(20)设A盘为启动盘,其目录结构为
其中文件AUTOEXEC.BAT的内容如下:
MD\XYZ
CD\DOS\USER
则由A盘启动成功后,A盘的当前目录是
A.\DOS\USER
B.\XYZ
C.根目录
D.\DOS
(21)在C语言提供的合法的关键字是
A.swicth
B.cher
C.Case
D.default
(22)在C语言中,合法的字符常量是
A.‘\084’
B.‘\x43’
C.‘ab’
D.“\0”
(23)若已定义x和y为double类型,则表达式:
x=1,y=x+3/2的值是
A.1
B.2
C.2.0
D.2.5
(24)合法的数组定义是
A.inta[]="string";
B.inta[5]={0,1,2,3,4,5};
C.vhsts="string";
D.chara[]={0,1,2,3,4,5};
(25)设a为整型变量,不能正确表达数学关系:
1010&&a>15
D.!
(a<=10)&&!
(a>=15)
(26)若t为double类型,表达式t=1,t5,t++的值是
A.1
B.6.0
C.2.0
D.1.0
(27)若有定义和语句:
chars[10]:
s="abcd";printf("%s\n",s);
则结果是(以下u代表空格)
A.输出abcd
B.输出a
C.输出abcduuuuu
D.编译不通过
(28)若有定义和语句:
int**pp,*p,a=10,b=20;
pp=&p;p=&a;p=&b;printf("%d\n",*p,**pp);
则输出结果是:
A.10,20
B.10,10
C.20,10
D.20,20
(29)若有以下定义和语句:
intu=010,v=0x10,w=10;
printf("%d,%d,%d\n,u,v,w);
则输出结果是:
A.8,16,10
B.10,10,10
C.8,8,10
D.8,10,10
(30)若有以下定义和语句
charc1=’b’,c2=’e’;
printf("%d,%c\n",c2-c1,c2-’a’+"A");
则输出结果是:
A.2,M
B.3,E
C.2,E
D.输出项与对应的格式控制不一致,输出结果不确定
(31)若有以下定义:
chars[20]="programming",*ps=s;
则不能代表字符o的表达式是
A.ps+2
B.s[2]
C.ps[2]
D.ps+=2,*ps
(32)若ij已定义为int类型,则以下程序段中内循环体的总的执行次数是
for(i=5;i;i--)
for(j=0;j<4;j++){...}
A.20
B.25
C.24
D.30
(33)若有以下定义和语句:
char*s1="12345",*s2="1234";
printf("%d\n",strlen(strcpy(s1,s2)));
则输出结果是
A.4
B.5
C.9
D.10
(34)若有以下定义和语句:
inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
则不能表示a数组元素的表达式是
A.*p
B.a[10]
C.*a
D.a[p-a]
(35)下面程序的输出是
main()
{char*s="121";
intk=0,a=0,b=0;
do{k++;
if(k%2==0){a=a+s[k]-’0’;
continue;}
b=b+s[k]-’0’;
a=a+s[k]-’0’;
}
while(s[k+1]);
printf("k=%da=%db=%d\n",k,a,
B.;
A.k=3a=2b=3
B.k=3a=3b=2
C.k=2a=3b=2
D.k=2a=2b=3
(36)下面程序的输出是
main()
{unsigneda=32768;
printf("a=%d\n",a);
}
A.a=32768
B.a=32767
C.a=-32767
D.a=-1
(37)若有以下定义:
floatx;inta,b;
则正确的switch语句是
A.switch(x)
B.switch(x)
{case1.0:
printf("*\n");{case1,2:
printf("*\n");
case2.0:
printf("**\n");case3:
printf("**\n");
}}
C.switch(a+
B.
D.switch(a+
B.;
{case1:
printf("\n");{case1:
printf(."*\n");
case1+2:
printf("**\n");case2:
printf("**\n");
}}
(38)若有定义:
intx,y;chara,b,c;并有以下输入数据(此处
1u2
AuBuC
则能给x赋整数1,给y赋整数2,给a赋字符A,给b赋字符B,给c赋字符C的正确程序段是
A.scanf("x=%dy+%d",&x,&y);a=getchar();b=getchar();c=getchar();
B.scanf("%d%d",&x,&y);a=getchar();b=getchar();c=getchar();
C.scanf("%d%d%c%c%c,&x,&y,&a,&b,&
C.;
D.scanf("%d%d%c%c%c%c%c%c:
&x,&y,&a,&a,&b,&b,&c,&
C.;
(39)以下程序输出的结果是
#include
#include
main()
{charw[][10]={"ABCD","EFGH","IJKL","MNOP"},K;
for(k=1;k<3;k++)
printf("%s\n",&w[k][k]);
}
A.ABCD
B.ABCD
FGHEFG
KLIJ
M
C.EFG
D.FGH
JKKL
O
(40)若有以下的定义:
inta[]={1,2,3,4,5,6,7,88,9,10},*p=a;
则值为3的表式是
A.p+=2,*(p++)
B.p+=2,*++p
C.p+=3,*kp++
D.p+=2,++*p
(41)假定所有变量均已正确说明,下列程序段运行后x的值是
a=b=c=0;x=35;
if(!
a)x--;
elseif(
B.;
if(
C.x=3;
elsex=4;
A.34
B.4
C.35
D.3
(42)在以下一组运算符中,优先级最高的运算符是
A.<=
B.=
C.%
D.&&
(43)若有以下定义和语句:
intw[2][3],(*pw)[3];
pw=w;
则对w数组元素非法引用是
A.*(w[0]+2)
B.*(pw+1)[2]
C.pw[0][0]
D.*(pw[1]+2)
(44)若有以下程序片段:
charstr[]="ab\n\012\\\"";
printf(Ý",strlen(str));
上面程序片段的输出结果是
A.3
B.4
C.6
D.12
(45)函数调用:
strcat(strcpy(str1,str2),str3)的功能是
A.将串str1复制到串str2中后再连接到串str3之后
B.将串str1连接到串str2之后再复制到串str3之后
C.将串str2复制到串str1中后再将串str3连接到串str1之后
D.将串str2连接到串str1之后再将串str1复制到串str3中
(46)以下对C语言函数的有关描述中,正确的是
A.在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参
B.C函数既可以嵌套定义又可以递归调用
C.函数必须有返回值,否则不能使用函数
D.C程序中有调用关系的所有函数必须放在同一个源程序文件中
(47)以下叙述中不正确的是
A.在C中,函数中的自动变量可以赋初值,每调用一次,赋一次初值。
B.在C中,在调用函数时,实在参数和对应形参在类型上只需赋值兼容。
C.在C中,外部变量的隐含类别是自动存储类别。
D.在C中,函数形参可以说明为register变量。
(48)以下程序的输出结果是
#include
subl(chara,char
B.{charc;c=a;a=b;b=c;}
sub2(char*a,char
B.{charc;c=*a;*a=b;b=c;}
sub3(char*a,char*
B.{charc;c=*a;*a=*b;*b=c;}{chara,b;
a=’A’;b=’B’;sub3(&a,&
B.;putchar(a);putchar(
B.;
a=’A’;b=’B’;sub2(&a,
B.;putchar(a);prtchar(
B.;
a=’A’;b=’B’;sub1(a,
B.;putchar(a);putchar(
B.;
}
A.BABBAB
B.ABBBBA
C.BABABA
D.BAABBA
(49)设有如下定义:
structsk
{inta;floatb;}data,*p;
若有p=&data;,则对data中的a域的正确引用是
A.(*p).data.a
B.(*p).a
C.p->data.a
D.p.data.a
(50)以下对枚举类型名的定义中正确的是
A.enuma={one,two,three};
B.enuma{one=9,two=-1,three};
C.enuma={"one","two","three"};
D.enuma{"one","two","three"};
二、填空题(每空2分,共40分)
请将每空的正确答案写在答题卡 【1】 至 【20】序号的横线上,答在试卷上不得分。
(1) 与十进制数101等值的二进制数为 【1】 。
(2) DOS命令分为内部命令和外部命令,XCOPY命令属于 【2】 。
(3) 设当前盘为A盘,当前系统提示符为">",在不改变当前盘的情况下,显示C盘的当前目录的路径,应使用命令 【3】 。
(4) 自动批处理文件名必须是 【4】 。
(5) 设当前盘当前目录下有两个文件W.TXT,现要将文件P.TXT连接到文件W.TXT的后面,若使用COPY命令,则完整的命令为 【5】 。
(6) 请写出以下数学式的C语言表达式 6
──.
a
───
b.c
(7) 若已知a=10,b=20,则表达式!
ab)
printf("****y%d\n",y);
else
printf("####x=%\n",x);
(11) 在对文件进行操作的过程中,若要求文件的位置回到文件的开头,应当调用的函数是 11 函数.──
(12) 若函数fun的类型void,且有以下定义和调用语句:
#define M 50
main()
{ int a[M];
. . .
fun(a);
. . .
}
定义fun函数首部可以用三种不同的形式,请写出这三种形式:
12 .13 .14
─ ─ ─
(注意:
①形参的名字请用q,②使用同一种风格).
(13) 若给fun函数的形参s传送字符串:
"uuuu6354abc",则函数的返回值是 15
─.
log fun(char s[]) {long n;int sign;
for(;isspace(*s);s++); sign+(*s==’-’)?
-1:
1;
if(*s==’+’‖*s==’-’s++; for(n=0;isdigit(*s);s++)
n=10*n+(*s-’0’); return sign * n;
(14) 以下函数用来在w数组中插入x,w数组中的数已按由小到大顺序存放,n 所指存储单元中存放数组中数据的个数.插入后数组中的数仍有序.请填空.
void fun (char *w,char x,int *n)
{ int i,p;
p=0;
w[*n]=x;
while (x>w[p]) 16
──;
for(i=*n;i>p;i--)w[i]= 17
─;
w[p]=x;
++ *n;
}
(15) fun1函数的调用语句为:
fun1(&a,&b,&c); 它将三个整数按由大到小的顺序调整后依次放入a,b,c,三个变量中,a中放量大数.请填空.
void fun2 (int *x,int *y)
{ int t;
t=*x; *x=*y;*y=t;
}
void fun1 (int *pa,int *pb,int *pc)
{ if(*pc>*pb) fun2( 18)
───;
if(*pa<*pc)fun2(19)
──;
if(*pa<*pb)fun2(20)
──; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 1998 全国 计算机等级考试 二级 语言 笔试 试题 答案