1999 年 4 月全国计算机二级 C 语言考试真题及答案
一、选择题((1)-(40)每小题 1 分, (41)-(50)每小题 2 分, 共 60 分)
下列各题 A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题
卡相应位置上,答在试卷上不得分。
(1)微型计算机的性能主要取决于
A.内存
B.中央处理器
C.硬盘
D.显示卡
(2)有一个数值 152,它与十六进制数 6A 相等,那么该数值是
A.二进制数
B.八进制数
C.十进制数
D.四进制数
(3)使用超大规模集成电路制造的计算机应该归属于
A.代
B.第二代
C.第三代
D.第四代
(4)已知英文字母 a 的 ASCII 代码值是十六进制数 61H,那么字母 d 的 ASCII 代码值是
A.34H
B.54H
C.24H
D.64H
(5)一片存储容量是 1.44MB 的软磁盘,可以存储大约 140 万个
A.ASCII 字符
B.中文字符
C.磁盘文件
1
D.子目录
(6)在 MS-DOS 环境中同时按下[Ctrl]和[Break]两个键,其作用是
A.终止当前操作
B.暂停当前操作
C.关机
D.热启动
(7)将二进制数 10000001 转换为十进制数应该是
A.127
B.129
C.126
D.128
(8)磁盘处于写保护状态,那么磁盘中的数据
A.不能读出,不能删改,也不能写入新数据
B.可以读出,不能删改,也不能写入新数据
C.可以读出,可以删改,但不能写入新数据
D.可以读出,不能删改,但可以写入新数据
(9)微型机启动后,DOS 提示符是 C:\>,现提示符变为 C:\USER>,则说明刚执行过命令
A.PROMPT
B.PROMPT USER
C.PROMPT SP$G
D.CD USER
(10)MS-DOS 文件系统目录的组织形式属于
A.关系型结构
B.网络型结构
C.树型结构
D.直线型结构
(11)应用软件系统 TH 的总容量大约 1MB,其主要程序文件存放在 C:\TH 目录中,而数据文件
存放在 C:\TH\DATA 目录中,如果将它们完整地复制到 A 盘, 应该使用的命令是
A.XCOPY C:\TH A:\
2
B.XCOPY C:\TH A:\ /S
C.XCOPY C:\TH A:\ /M
D.XCOPY C:\TH A:\ /P
(12)执行 COPY A.TXT+B.TXT 这个 DOS 命令后,得到的磁盘文件是
A.A.TXT
B.B.TXT
C.AB.TXT
D.A+B.TXT
(13)在 WINDOWS 中,将一个应用程序窗口小化之后,得到的磁盘文件是
A.仍在后台运行
B.暂时停止运行
C.完全停止运行
D.出错
(14)CD-ROM 属于
A.感觉媒体
B.表示媒体
C.表现媒体
D.存储媒体
(15)在因特网(Internet)中电子公告板的缩写是
A.FTP
B.WWW
C.BBS
D.E-mail
(16)设 x、y、z 和 k 都是 int 型变量,则执行表达式:x=(y=4,z=16,k=32)后,x 的值为
A.4
B.16
C.32
D.52
3
(17)设有如下的变量定义:
int i=8, k, a, b;
unsigned long w=5;
double x=1, 42, y=5.2;
则以下符合 C 语言语法的表达式是
A.a+=a-=(b=4)*(a=3)
B.x%(-3);
C.a=a*3=2
D.y=float(i)
(18)假定有以下变量定义:
int k=7,x=12;
则能使值为 3 的表达式是
A.x%=(k%=5)
B.x%=(k-k%5)
C.x%=k-k%5
D.(x%=k)-(k%=5)
(19)以下叙述中正确的是
A.输入项可以是一个实型常量,如:scakf("%f",3.5);
B.只有格式控制,没有输入项,也能正确输入数据到内存,例如:scakf("a=%d,b=%d");
C.当输入一个实型数据时,格式控制部分可以规定小数点后的位数,例
如:scakf("%4.2f",&f);
D.当输入数据时,必须指明变量地址,例如:scakf("%f",&f);
(20)设 x 和 y 均为 int 型变量,则以下语句:x+=y,y=x-y;x-=y;的功能是
A.把 x 和 y 按从大到小排列
B.把 x 和 y 按从小到大排列
C.无确定结果
D.交换 x 和 y 中的值
(21)以下程序的输出结果是
A.10 10
4
B.12 12
C.11 10
D.11 13
main()
{ int a=12,b=12;
printf("%d,%d\n",- -a,+ +B);
}
(22)以下程序运行后,输出结果是
A.cde
B.字符 c 的 ASCII 码值
C.字符 c 的地址
D.出错
main()
{ char *s="abcde";
s+=2;
printf("%ld\n",s);
}
(23)以下程序输出结果是
A.7
B.6
C.5
D.4
main()
{ int m=5;
if(m++>5)printf("%d\n",m);
esle printf("%d\n",m- -);
}
(24)当 a=1,b=3,c=5,d=5 时,执行下面一段程序后,x 的值为
A.1
5
B.2
C.3
D.6
if(a
if(c else
if(a
if(b else x=3;
else x=6;
else x=7;
(25)在执行以下程序时,如果从键盘上输入,ABCdef<回车>,则输出为
A.ABCdef
B.abcDEF
C.abc
D.DEF
#include
main()
{ char ch;
while((ch=getchar())!='\n')
{ if(ch>='A' && ch<='Z')ch=ch+32;
else if(ch>='a' && ch<='z')ch=ch-32;
printf("%c",ch);
}
printf("\n");
}
(26)下面能正确进行字符串赋值操作的语句是
A.char s[5]={"ABCDE"};
B.char s[5]={'A','B','C','D','E'};
C.char *s;s="ABCDEF";
D.char *s; scanf("%s",s);
6
(27)执行以下程序段时
A.循环体将执行一次
B.循环体将执行两次
C.循环体将执行无限次
D.系统将提示有语法错误
X=-1;
do {x=x*x; } while(! x);
(28)执行以下程序后,输出的结果是
A.-1
B.1
C.8
D.0
main ()
{ int y=10;
do { y - -;} while(- - y);
printf("%d\n",y - -);
}
(29)在下列选项中,没有构成死循环的程序段是
A.int i=100
B.for( ; ;);
while(1)
{ i=i 0+1;
if(i>100)break;
}
C.int k=1000;
D.int s=36;
do{++k;} while(k>=10000); while(s);--s;
(30)执行语句: for(i=l:i++<4:);后,变量 i 的值是
A.3
7
B.4
C.5
D.不定
(31)以下程序运行后,如果从键盘上输入 ABCDE<回车>,则输出结果为
A.8
B.7
C.6
D.5
#include
#include
func
{ int num=0;
while(*(str+num)!='\0')num++;
return(num);
}
main()
{ char str[10],*p=str;
gets(p); printf("%d\n",func(p));
}
(32)运行以下程序后,如果从键盘上输入 china#<回车>,则输出结果为
A.2,0
B.5,0
C.5,5
D.2,5
#include
mair()
{ int v1=0,v2=0;
char ch;
while((ch=getchar())!='#')
8