2002年9月全国计算机等级考试二级C语言试卷(含参考答案) 下载本文

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) ?.?

(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()函数必须放在其它函数之前

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) 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; 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); 此处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;,则以下非法的赋值语句是 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); }

程序运行后的输出结果是

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

{ 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() { int i,j=0;

for(i=i;i<3;i++) j+=f(i); printf(“%d\\n”,j); }

程序运行后的输出结果是 A) 4 B) 3 C) 2 D) 1 (33) 有以下程序 main()

{ char a[ ]={‘a’,‘b’,‘c’,‘d’, ‘e’, ‘f’, ?g?,?h?,?\\0?}; int i,j; i=sizeof(a); j=strlen(a); printf(“%d,%d\\b”i,j); }

程序运行后的输出结果是