2002 年 9 月全国计算机二级 C 语言考试真题及答案
一、选择题((1)—(40)每题 1 分,(41)—(50)每题 2 分,共 60 分)
下列各题 A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题
卡相应位置上,答在试卷上不得分。
(1) 在 32 位计算机中,一个字长所占的字节数为
A.1
B.2
C.4
D.8
(2) 与十进制数 511 等值的十六进制数为
A.1FF
B.2FF
C.1FE
D.2FE
(3) 能将高级语言编写的源程序转换成目标程序的是
A.编程程序
B.编译程序
C.解释程序
D.链接程序
(4) 在计算机系统中,存储一个汉字的国标码所需要的字节数为
A.1
B.2
C.3
D.4
(5) 下列带有通配符的文件名中,能表示文件 ABC.TXT 的是
A.*BC.?
B.A?.*
C.?BC.*
D.?.?
1
(6) 在多媒体计算机系统中,不能用以存储多媒体信息的是
A.光缆
B.软盘
C.硬盘
D.光盘
(7) DOS 命令“COPY/?”的功能是
A.将当前盘当前目录中的所有文件复制到当前盘的根目录下
B.将当前盘当前目录中所有以单个字符命名的文件复制到当前盘的根目录下
C.以提示方式复制文件
D.显示 COPY 命令的帮助信息
(8) 在 Windows 环境下,若要将当前活动窗口存入剪贴板,则可以按
A.Ctrl+PrintScreen 键
B.Ctrl+PrintScreen 键
C.Shift+PrintScreen 键
D.PrintScreen 键
(9) 在 Windows 环境下,单击当前应用程序窗口中的“关闭”按钮,其功能是
A.将当前应用程序转为后台运行
B.退出 Windows 后再关机
C.退出 Windows 后重新启动计算机
D.终止当前应用程序的运行
(10) 在 Windows 环境中,粘贴按钮是
A.
B.
C.
D.
(11) 以下叙述中正确的是
A.构成 C 程序的基本单位是函数
B.可以在一个函数中定义另一个函数
C.main()函数必须放在其它函数之前
2
D.所有被调用的函数一定要在调用之前进行定义
(12) 以下选项中合法的实型常数是
A.5E2.0
B.E-3
C..2E0
D.1.3E
(13) 以下选项中合法的用户标识符是
A.long
B._2Test
C.3Dmax
D.A.dat
(14) 已知大写字母 A 的 ASCII 码值是 65,小写字母 a 的 ASCII 码是 97,则用八进制表示的
字符常量‘\101’是
A.字符 A B)字符 a C)字符 e D)非法的常量
(15) 以下非法的赋值语句是
A.n=(i=2,++i); B)j++;
C.++(i+1); D)x=j>0;
(16) 设 a 和 b 均为 double 型变量,且 a=5.5、b=2.5,则表达式(int)a+b/b 的值是
A)6.500000 B)6
C.5.500000
D.6.000000
(17) 已知 i、j、k 为 int 型变量,若从键盘输入:1,2,3<回车>,使 i 的值为 1、j 的值
为 2、k 的值为 3,以下选项中正确的输入语句是
A.scanf(“---”,&i,&j,&k);
B.scanf(“%d %d %d”,&i,&j,&k);
C.scanf(“%d,%d,%d”,&i,&j,&k);
D.scanf(“i=%d,j=%d,k=%d”,&i,&j,&k);
(18) 与数学式子 对应的 C 语言表达式是
A.3*x^n(2*x-1)
3
B.3*x**n(2*x-1)
C.3*pow(x,n)*(1/(2*x-1))
D.3*pow(n,x)/(2*x-1)
(19) 设有定义:long x=-123456L;,则以下能够正确输出变量 x 值的语句是
A)printf(“x=%d\n”,x);
B.printf(“x= \n”,x);
C)printf(“x=
L\n”,x); D)printf(“x=%LD\n”,x);
(20) 若有以下程序:
main()
{ int k=2,i=2,m;
m=(k+=i*=k);printf(“%d,%d\n”,m,i);
}
执行后的输出结果是
A.8,6
B.8,3
C.6,4
D.7,4
(21) 已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1 && y+z/2 的值是
A.6
B.0
C.2
D.1
(22) 有一函数, ,以下程序段中不能根据x值正确计算出y值的是
A.if(x>0) y=1;
B.y=0;
else if(x==0) y=0; if(x>0) y=1;
else y=-1; else if(x<0) y=-1;
C)y=0; D)if(x>=0)
if(x>=0); if(x>0) y=1;
4
if(x>0) y=1 ; else y=0;
else y=-1; else y=-1;
(23) 以下选项中,与 k=n++完全等价的表达式是
A.k=n,n=n+1
B.n=n+1,k=n
C.k=++n
D.k+=n+1
(24) 以下程序的功能是:按顺序读入 10 名学生 4 门课程的成绩,计算出每位学生的平均分
并输出,程序如下:
main()
{ int n,k;
float score ,sum,ave;
sum=0.0;
for(n=1;n<=10;n++)
{ for(k=1;k<=4;k++)
{ scanf(“%f”,&score); sum+=score;}
ave=sum/4.0;
printf(“NO%d:%f\n”,n,ave);
}
}
上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。这条语句
是
A.sum=0.0;
B.sum+=score;
C.ave=sun/4.0;
D.printf(“NO%d:%f\n”,n,ave);
(25) 有以下程序段
int n=0,p;
do{scanf(“%d”,&p);n++;}while(p!=12345 &&n<3);
5
此处 do—while 循环的结束条件是
A.P 的值不等于 12345 并且 n 的值小于 3
B.P 的值等于 12345 并且 n 的值大于等于 3
C.P 的值不等于 12345 或者 n 的值小于 3
D.P 的值等于 12345 或者 n 的值大于等于 3
(26) 有以下程序
main()
{ int a=15,b=21,m=0;
switch(a%3)
{ case 0:m++;break;
case 1:m++;
switch(b%2)
{ default:m++;
case 0:m++;break;
}
}
printf(“%d\n”,m);
}
程序运行后的输出结果是
A.1
B.2
C.3
D.4
(27) C 语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是
A.void
B.int
C.float
D.double
(28) 若有说明:int n=2,*p=&n,*q=p;,则以下非法的赋值语句是
6
A.p=q;
B.*p=*q;
C.n=*q;
D.p=n;
(29) 有以下程序
float fun(int x,int y)
{ return(x+y); }
main()
{ int a=2,b=5,c=8;
printf(“%3.0f\n”,fun(int)fun(a+c,
B.,a-
C.);
}
程序运行后的输出结果是
A.编译出错
B.9
C.21
D.9.0
(30) 有以下程序
void fun(char *c,int
D.
{ *c=*c+1;d=d+1;
printf(“%c,%c,”,*c,
D.;
}
main()
{ char a=’A’,b=’a’;
fun(&b,a); printf(“%c,%c\n”,a,
B.;
7
}
程序运行后的输出结果是
A)B,a,B,a
B.a,B,a,B
C.A,b,A,b
D.b,B,A,b
(31) 以下程序中函数 sort 的功能是对 a 所指数组中的数据进行由大到小的排序
void sort(int a[],int n)
{ int i,j,t;
for(i=0;i
for(j=i+1,j
if(a[i]}
main()
{ int aa[10]={1,2,3,4,5,6,7,8,9,10},i;
sort(&aa[3],5);
for(i=o;i<10;i++) print(“%d,”,aa[i]);
printf(‘\n”);
}
程序运行后的输出结果是
A)1,2,3,4,5,6,7,8,9,10
B.10,9,8,7,6,5,4,3,2,1,
C.1,2,3,8,7.6.5.4.9,10
D.1,2,10,9,8,7,6,5,4,3
(32) 有以下程序
int f(int n)
{ if (n==1) return 1;
else return f(n-1)+1;
}
main()
8