2004 年 4 月全国计算机二级 C 语言考试真题及答案
选择题,(1-40)每题 1 分,(41-50)每题 2 分,共 60 分)
下列各题 A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题
卡相应位置上,答在试卷上不得分。
(1)
1MB 等于
A.1000 字节
B.1024 字节
C.1000×1000 字节
D.1024×1024 字节
(2) 与十六进制数 200 等值的十进制数为
A.256
B.512
C.1024
D.2048
(3) 所谓“裸机”是指
A.单片机
B.单板机
C.不装备任何软件的计算机
D.只装备操作系统的计算机
(4) 能将高级语言编写的源程序转换成目标程序的是
A.链接程序
B.解释程序
C.编译程序
D.编辑程序
(5) 在 64 位计算机中,一个字长所占的字节数为
A.64
B.8
C.4
D.1
1
(6) 在 Windows 环境下,当一个应用程序窗口被小化后,该应用程序
A.继续在后台运行
B.继续在前台运行
C.终止运行
D.暂停运行
(7) 在 Windows 环境下,能实现窗口移动的操作是
A.用鼠标拖动窗口中的任何部位
B.用鼠标拖动窗口的边框
C.用鼠标拖动窗口的控制按钮
D.用鼠标拖动窗口的标题栏
(8) 在 Windows 环境下,PrintScreen 键的作用是
A.打印当前窗口的内容
B.打印屏幕内容
C.复制屏幕到剪贴板
D.复制当前窗口到剪贴板
(9)
Internet 的通信协议是
A.TCP/IP
B.BBS
C.WWW
D.FTP
(10) 下列叙述中正确的是
A.计算机病毒只感染可执行文件
B.计算机病毒只感染文本文件
C.计算机病毒只能通过软件复制的方式进行传播
D.计算机病毒可以通过网络或读写磁盘等方式进行传播
(11) 一个算法应该具有“确定性”等 5 个特性,下面对另外 4 个特性的描述中错误的是
A.有零个或多个输入
B.有零个或多个输出
C.有穷性
2
D.可行性
(12) 以下叙述中正确的是
A.C 语言的源程序不必通过编译就可以直接运行
B.C 语言中的每条可执行语句终都将被转换成二进制的机器指令
C.C 源程序经编译形成的二进制代码可以直接运行
D.C 语言中的函数不可以单独进行编译
(13) 以下符合 C 语言语法的实型常量是
A.1.2E0.5
B.3.14.159E
C..5E-3
D.E15
(14) 以下 4 组用户定义标识符中,全部合法的一组是
A._main
B.If
C.txt
D.int
enclude
-max
REAL
k_2
sin
turbo
3COM _001
(15) 若以下选项中的变量已正确定义,则正确的赋值语句是
A.x1=26.8%3
B.1+2=x2
C.x3=0x12
D.x4=1+2=3;
(16) 设有以下定义
int
a=0;
double
b=1.25;
char c=’A’;
#define
d
2
则下面语句中错误的是
3
A.a++;
B.b++
C.c++;
D.d++;
(17) 设有定义:float
a=2,b=4,h=3;,以下 C 语言表达式与代数式 计算结果不相符的是
A.(a+B)
*h/2
B.(1/2)*(a+B)
*h
C.(a+B)
*h*1/2
D.h/2*(a+B)
(18) 有以下程序
main(
)
{
int
x=102,y=012;
printf(“-,-\n”,x,y);
}
执行后输出结果是
A.10,01
B.02,12
C.102,10
D.02,10
(19) 以下 4 个选项中,不能看作一条语句的是
A.{;}
B.a=0,b=0,c=0;
C.if(a>0);
D.if(b==0)
m=1;n=2;
(20) 设有定义:int
a,*pa=&a;以下 scanf 语句中能正确为变量 a 读入数据的是
A.scanf(“%d”,pA)
B.scanf(“%d”,A)
C.scanf(“%d”,&pA)
4
D.scanf(“%d”,*pA)
(21) 以下程序段中与语句 k=a>b?(b>c?1:0):0;功能等价的是
A.if((a>B)
&&(b>C) )
k=1;
B.if((a>B)
||(b>C) )
k=1 else
k=0;
C.if(a<=B)
k=0;
D.if(a>B)
k=1;
else if(b<=C)
k=1; else
if(b>C)
k=1;
else
k=0;
(22) 有以下程序
main(
)
{
char
k;
int I;
for(i=1;i<3;i++)
{
scanf(“%c”,&k);
switch(k)
{
case ‘0’:
printf(“another\n”);
case ‘1’:
printf(“number\n”);
}
}
}
程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是
A.another
B.another
C.another
D.number
number
number
number
number
another
number
(23) 有以下程序
main(
)
{
int
x=0,y=5,z=3;
while(z-->0&&++x<5)
y=y-1;
printf(“%d,%d,%d\n”,x,y,z);
5
}
程序执行后的输出结果是
A.3,2,0
B.3,2,-1
C.4,3,-1
D.5,-2,-5
(24) 有以下程序
main(
)
{
int
i,s=0;
for(i=1;i<10;i+=2)
s+=i+1;
printf(“%d\n”,s);
}
程序执行后的输出结果是
A.自然数 1~9 的累加和
B.自然数 1~10 的累加和
C.自然数 1~9 中的奇数之和
D.自然数 1~10 中的偶数之和
(25) 有以下程序 main(
)
{
int
i,n=0;
for(i=2;i<5;i++)
{
{
do
if(i%3)
continue;
n++;
}
while(!i);
n++;
}
printf(“n=%d\n”,n);
}
程序执行后的输出结果是
6
A.n=5
B.n=2
C.n=3
D.n=4
(26) 若程序中定义了以下函数
double
myadd(double a,double
B)
{
return
(a+B);}
并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是
A.double
myadd(double
a,B);
B.double
myadd(double,double);
C.double
myadd(double
b,double
A);
D.double
myadd(double
x,double
y);
(27) 有以下程序
char fun(char
x
,
char
y)
if(x
return
y;
{
}
main(
)
{
int
a=’9’,b=’8’,c=’7’;
printf(“%c\n”,fun(fun(a,B),fun(b,C)));
}
程序的执行结果是
A.函数调用出错 B)8
C)9
D)7
(28) 设有定义:int
n=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是
A.p=1;
B.*q=2;
C.q=p;
D.*p=5;
(29) 有以下程序
void f(int
v
,
int
w)
7
{
int
t;
t=v;v=w;w=t;
}
main(
)
{
int
x=1,y=3,z=2;
if(x>y)
f(x,y);
else if(y>z)
f(y,z);
else f(x,z);
printf(“%d,%d,%d\n”,x,y,z);
}
执行后输出结果是
A.1,2,3
B.3,1,2
C.1,3,2
D.2,3,1
(30) 有以下程序段
int
a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;
b=p[5];
b 中的值是
A.5
B.6
C.8
D.9
(31) 31、有以下程序
main(
)
{
char
a[]=”abcdefg”,b[10]=”abcdefg”;
printf(“%d
%d\n”,sizeof(
A.,sizeof(B));
}
8