2000年4月全国计算机等级考试二级C语言试卷(含答案)
发布时间:2006-10-14 8:53:56   收集提供:gaoqian

一、选择题((1)--(40)每小题1分, (41)--(50)每小题2分, 共60分)
 下列各题 A) 、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项在
 答题卡相应位置上涂黑,答在试卷上不得分。
 (1) 下列述叙中正确的是
 A) 显示器和打印机都是输出设备 B) 显示器只能显示字符
 C) 通常的彩色显示器都有7种颜色 D) 打印机只能打印字符和表格
 (2) 微型计算机中运算器的主要功能是进行
 A) 算术运算 B) 逻辑运算 C) 算术和逻辑运算 D) 初等函数运算
 (3) COMMAND。COM是DOS系统的最外层模块,通常称之为
 A) 引导程序 B) 输入输出系统 C) 命令处理系统 D) 文件管理系统
 (4) 电子邮件是
 A)网络信息检索服务
 B)通过Web网页发布的公告信息
 C)通过网络实时交互的信息传递方式
 D)一种利用网络交换信息的非交互式服务
 (5) 和十进制数225相等的二进制数是
 A) 11101110 B) 11111110 C) 10000000 D) 11111111
 (6) 下列叙述中正确的是
 A) 指令由操作数和操作码两部分组成
 B) 常用参数xxMB表示计算机的速度
 C) 计算机的一个字长总是等于两个字节
 D) 计算机语言是完成某一任务的指令集
 (7) 计算机的内存储器比外存储器
 A) 价格便宜 B) 存储容量大 C) 读写速度快 D) 读写速度慢
 (8) 设当前盘为C盘,执行DOS命令"COPY B:\A.TXT PRN"之后,结果是
 A) B盘上的A.TXT文件被复制到C盘的PRN文件
 B) 屏幕上显示B盘上的A.TXT文件内容
 C) B盘上的A.TXT文件内容在打印机上输出
 D) B盘上的A.TXT文件被复制到B盘上的PRN文件
 (9) 要将当前盘当前目录下的两个文件X1.TXT和B1.TXT连接起来之后存入B盘当 前目录下并且命名为Z.TXT,无论B盘当前目录是什么,完成这件任务可以使用的命令是
 A) COPY A:X1.TXT+C:B1.TXT Z.TXT
 B) COPY X1.TXT+C:\WS\B1.TXT B:\Z.TXT
 C) COPY A:X1.TXT+C:\WS\B1.TXT
 D) COPY X1.TXT+B1.TXT B:Z.TXT
(10) 下列四组DOS命令中,功能等价的一组是
 A) COPY A:*.* B:与DISKCOPY A: B:
 B) COPY ABC.TXT+XYZ.TXT 与TYPE XYZ.TXT>>ABC.TXT
 C) COPY ABC.TXT+XYZ.TXT与COPY XYZ.TXT+ABC.TXT
 D) TYPE *.FOR>CON与COPY *.FOR CON
(11) 设当前目录为D:\BB,现要把D:\AA目录下首字符是A的文本文件全部删除,应该使用命令
 A) DEL A*.TXT B) DEL \AA\A.TXT
 C) DEL \AA\A*.TXT D) DEL \AA\A?.TXT
(12) 在Windows中,启动应用程序的正确方法是
 A) 用鼠标指向该应用程序图标
 B) 将该应用程序窗口最小化成图标
 B) 将该应用程序窗口还原
 D) 用鼠标双击该应用程序图标
(13) 在Windows中,终止应用程序执行的正确方法是
 A) 将该应用程序窗口最小化成图标
 B) 用鼠标双击应用程序窗口右上角的还原按钮
 C) 用鼠标双击应用程序窗口中的标题栏
 D) 用鼠标双击应用程序窗口左上角的控制菜单框
(14) 在微机系统中,对输入输出设备进行管理的基本程序模块(BIOS)存放在
 A) RAM中 B) ROM中 C) 硬盘中 D) 寄存器中
(15) 使计算机病毒传播范围最广的媒介是
 A) 硬磁盘 B) 软磁盘 C) 内部存储器 D) 互联网
(16) 设有 int x=11; 则表达式 (x++ * 1/3) 的值是
 A) 3 B) 4 C) 11 D) 12
(17) 下列程序的输出结果是
 A) 3 B) 3.2 C) 0 D) 3.07
 main()
 { double d=3.2; int x,y;
 x=1.2; y=(x+3.8)/5.0;
 printf("%d \n", d*y);
 }
(18) 下列程序执行后的输出结果是(小数点后只写一位)
 A) 6 6 6.0 6.0 B) 6 6 6.7 6.7
 C) 6 6 6.0 6.7 D) 6 6 6.7 6.0
 main()
 { double d; float f; ling l; int i;
 i=f=1=d=20/3;
 printf("%d %ld %f %f \n", i,l,f,d);
 }
(19) 下列变量定义中合法的是
 A) short _a=1-.le-1; B) double b=1+5e2.5;
 C) long do=0xfdaL; D) float 2_and=1-e-3;
(20) 设 int x=1, y=1; 表达式(!x||y--)的值是
 A) 0 B) 1 C) 2 D) -1
(21) 与 y=(x>0?1:x<0?-1:0);的功能相同的if语句是
 A) if (x>0) y=1; B) if(x)
 else if(x<0)y=-1; if(x>0)y=1;
 else y=0; else if(x<0)y=-1;
 else y=0;
 C) y=-1 D) y=0;
 if(x) if(x>=0)
 if(x>0)y=1; if(x>0)y=1;
 else if(x==0)y=0; else y=-1;
 else y=-1;
(22) 以下循环体的执行次数是
 A) 3 B) 2 C) 1 D) 0
 main()
 { int i,j;
 for(i=0,j=1; i<=j+1; i+=2, j--)printf("%d \n",i);
 }
(23) 以下叙述正确的是
 A) do-while语句构成的循环不能用其它语句构成的循环来代替。
 B) do-while语句构成的循环只能用break语句退出。
 C) 用do-while语句构成的循环,在while后的表达式为非零时结束循环。
 D) 用do-while语句构成的循环,在while后的表达式为零时结束循环。
(24) 下列程序执行后的输出结果是
 A) G B) H C) I D) J
 main()
 { int x='f'; printf("%c \n",'A'+(x-'a'+1)); }
(25) 执行下面的程序段后,变量k中的值为
 A) 不定值 B) 33 C) 30 D) 10
 int k=3, s[2];
 s[0]=k; k=s[1]*10;
(26) 若已定义:
 int a[ ]={0,1,2,3,4,5,6,7,8,9], *p=a,i;
 其中 0≤i≤9, 则对a数组元素不正确的引用上
 A) a[p-a] B) *(&a[i]) C) p[i] D) a[10]
(27) 下列程序执行后的输出结果是
 A) 6 B) 7 C) 8 D) 9
 void func(int *a,int b[])
 { b[0]=*a+6; }
 main()
 { int a,b[5];
 a=0; b[0]=3;
 func(&a,b); printf("%d \n,b[0]);
 }
(28) 下列程序的运行结果是
 A) a=%2,b=%5 B) a=2,b=5
 C) a=d, b=d D) a=%d,b=%d
 #include
 main()
 { int a=2,c=5;
 printf("a=%d,b=%d\n",a,c); }
(29) 下列程序执行后的输出结果是
 A) 3 B) 6 C) 9 D) 随机数
 main()
 { int a[3][3], *p,i;
 p=&a[0][0];
 for(i=p; i<9; i++) p[i]=i+1;
 printf("%d \n",a[1][2]);
 }
(30) 设有数组定义: char array [ ]="China"; 则数组 array所占的空间为
 A) 4个字节 B) 5个字节 C) 6个字节 D) 7个字节
(31) 下列程序的输出结果是
 A) 4 B) 6 C) 8 D) 10
 int b=2;
 int func(int *a)
 { b += *a; return(b);}
 main()
 { int a=2, res=2;
 res += func(&a);
 printf("%d \n",res);
 }
(32) 在以下四组中,每组有两个分别运算的函数,运算结果相同的是
 A) 4 B) 2 C) 2 D) 0
 main()
 { int i, j, m=0, n=0;
 for(i=p; i<2; i++)
 for(j=0; j<2; j++)
 if(j>=i) m=1; n++;
 printf("%d \n",n);
 }
(33) 下列程序的输出结果是
 A) 5 B) 6 C) 7 D) 8
 struct abc
 { int a, b, c; };
 main()
 { struct abc s[2]={{1,2,3},{4,5,6}}; int t;
 t=s[0],a+s[1],b;
 printf("%d \n",t);
 }
(34) 设 int b=2;表达式(b>>2)/(b>>1)的值是
 A) 0 B) 2 C) 4 D) 8
(35) 在C程序中,可把整型数以二进制形式存放到文件中的函数是
 A) fprintf函数 B) fread函数 C) fwrite函数 D) fputc函数
(36) 下列程序执行后的输出结果是
 A) -32767 B) FFFE C) -1 D) -32768
 main()
 { char x=0xFFFF; printf("%d \n",x--); }
(37) 若有定义: float w; int a, b; 则合法的switch语句是
 A) switch(w) B) switch(a);
 { case 1.0: printf("*\n"); { case 1 printf("*\n");
 case 2.0: printf("**\n"); case 2 printf("**\n");
 } }
 C) switch(b) D) switch(a+b);
 { case 1: printf("*\n"); { case 1: printf("*\n");
 default: printf("\n"); case 2: printf("**\n");
 case 1+2: printf("**\n"); default: printf("\n");
 } }
(38) 以下程序段的执行结果是
 A) a=12 y=12 B) a=12 y=12
 a=14 y=16 a=16 y=28
 a=16 y=20
 a=18 y=24
 C) a=12 y=12 D) a=12 y=12
 a=14 y=26
 a=14 y=44
 int a, y;
 a=10; y=0;
 do
 { a+=2; y+=a;
 printf("a=%d y=%d\n",a,y);
 if(y>20) break;
 { while(a=14);
 .
 .
 .
(39) 若有以下调用语句,则不正确的fun函数的首部是
 A) void fun(int m, int x[]) B) void fun(int s, int h[41])
 C) void fun(int p, int *s) D) void fun(int n, int a)
 main()
 { …
 int a[50],n;
 …
 fun(n, &a[9]);
 …
 }
(40) 语句printf("a\bre\'hi\'y\\\bou\n");的输出结果是
 A) a\bre\'hi\'y\\\bou B) a\bre\'hi\'y\bou
 C) re'hi'you D) abre'hi'y\bou
 (说明:'\b'是退格符)
(41) 请选出正确的程序段
 A) int *p; B) int *s, k;
 scanf("%d",p); *s=100;
 … …
 C) int *s, k; D) int *s, k;
 char *p, c; char *p, e;
 s=&k; s=&k;
 p=&c; p=&c;
 *p='a'; s=p;
 … *s=1;
 …
(42) 已知指针p的指向如下图所示,则执行语句 *--p;后*p的值是
 A) 30 B) 20 C) 19 D) 29
a[0] a[1] a[2] a[3] a[4]
10 20 30 40 50
(43) 设已有定义: char *st="how are you"; 下列程序段中正确的是
 A) char a[11], *p; strcpy(p=a+1,&st[4]);
 B) char a[11]; strcpy(++a, st);
 C) char a[11]; strcpy(a, st);
 D) char a[], *p; strcpy(p=&a[1],st+2);
(44) 下列程序执行后的输出结果是
 A) you&ne B) you C) me D) err
 mai()
 { char arr[2][4];
 strcpy(arr,"you"); strcpy(arr[1],"me");
 arr[0][3]='&';
 printf("%s \n",arr);
 }
(45) 下列程序执行后的输出结果是
 A) hello B) hel C) hlo D) hlm
 void func1(int i);
 void func2(int i);
 char st[]="hello,friend!";
 void func1(int i)
 { printf("%c",st[i]);
 if(i<3){i+=2;func2(i);}
 }
 void func2(int i)
 { printf("%c",st[i]);
 if(i<3){i+=2;func1(i);}
 }
 main()
 { int i=0; func1(i); printf("\n");}
(46) 假定下列程序的可执行文件名为prg.exe,则在该程序所在的子目录下输入命令行: prg hello good<回车>后,程序的输出结果是
 A) hello good B) hg C) hel D) hellogood
 main()(int argc, char *argv[])
 { int i;
 if(argc<-0)return;
 for(i=1;i }
(47) 下列程序执行后的输出结果是
 A) 6 B) 8 C) 10 D) 12
 #define MA(x) x*(x-1)
 main()
 { int a=1,b=2; printf("%d \n",MA(1+a+b));}
(48) 有以下结构体说明和变量的定义,且如下图所示指针p指向变量a,指针q指向变量b。则不能把结点b连接到结点a之后的语句是
 A) a.next=q; B) p.next=&b;
 C) p->next=&b; D) (*p).next=q;
 struct node
 { char data;
 struct node *next;
 { a,b,*p=&a,*q=&b;
 data next data next




(49) 变量a所占内存字节数是
 A) 4 B) 5 C) 6 D) 8
 union U
 { char st[4];
 int i;
 long l;
 };
 struct A
 { int c;
 union U u;
 }a;
(50) 执行下列程序时输入:123<空格>456<空格>789<回车>,输出结果是
 A) 123,456,789 B) 1,456,789
 C) 1,23,456,789 D) 1,23,456
 main()
 { char s[100]; int c, i;
 scanf("%c",&c); scanf("%d",&i); scanf("%s",s);
 printf("%c,%d,%s \n",c,i,s);
 }
二、填空题(每空2分,共40分)
 请将每空的正确答案写在答题卡上[1] ̄[20]序号的横线上,答在试卷上不得分。
(1) 计算机网络按通信距离来划分,可分为局域网和广域网。因特网属于 [1] 。
(2) 当前盘是C,确保在D盘的根目录下建立一个子目录USER的一条DOS命令是 [2] 。
(3) 要将当前盘当前目录中所有扩展名为.TXT的文件内容显示在屏幕上的DOS命令是 [3] 。
(4) DOS命令分为内部命令和外部命令,CHKDSK命令是 [4] 命令。
(5) 在Windows中,为了终止一个应用程序的运行,首先单击该应用程序窗口中的控制菜单框,然后在控制菜单中单击 [5] 命令。
(6) 设有以下变量定义,并已赋确定的值
 char w; int x; float y; double z;
 则表达式:w*x+z-y所求得的数据类型为 [6] 。
(7) 若x为int类型,请以最简单的形式写出与逻辑表达式!x等价的C语言关系表达式 [7] 。
(8) 若有如下图所示五个连续的int类型的存储单元并赋值如下图,a[0]的地址小于a[4]的地址。p和s是基类型为int的指针变量。请对以下问题进行填空。
a[0] a[1] a[2] a[3] a[4]
22 33 44 55 66
 1,若p已指向存储单元a[1]。通过指针p,给s赋值,使s指向最后一个存储单元 a[4]的语句是 [8] 。
 2,若指针s指向存储单元a[2],p指向存储单元a[0],表达式s-p的值是 [9] 。
(9) 下面函数用来求出两个整数之和,并通过形参传回两数相加之和值,请填空。
 int add(int x, int y, [10] z)
 { [11] =x+y; }
(10) 下面程序的功能是:计算1到10之间奇数之和及偶数之和,请填空。
 #include
 main()
 { int a, b, c, i;
 a=c=0;
 for(i=0;i<10;i+=2)
 { a+=i;
 [12] ;
 c+=b;
 }
 printf("偶数之和=%d\n",a);
 printf("奇数之和=%d\n",c-11);
 }
(11) 下面程序的功能是:输出100以内能被3整除且个位数为6的所有整数,请填空。
 #include
 main()
 { int i, j;
 for(i=0; [13] ; i++)
 { j=i*10+6;
 if( [14] ) continue;
 printf("%d",j);
 }
 }
(12) 下面程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列,其它元素不变。请填空。
 #include
 #include
 main()
 { char a[]="clanguage",t;
 int i, j, k;
 k=strlen(a);
 for(i=0; i<=k-2; i+=2)
 for(j=i+2; j<=k; [15] )
 if( [16] )
 { t=a[i]; a[i]=a[j]; a[j]=t; }
 puts(a);
 printf("\n");
 }
(13) 以下程序的运行结果是 [17]
 #include
 main()
 { int k=4, m=1, p;
 p=func(k,m); printf("%d,",p);
 p=func(k,m); printf("%d \n",p);
 }
 func(int a, int b)
 { static int m=0, i=2;
 i+=m+1;
 m=i+a+b;
 return m;
 }
(14) 以下程序的功能是:将无符号八进制数字构成的字符串转换为十进制整数。例如,输入的字符串为:556,则输出十进制整数366。请填空。
 #include
 main()
 { char *p, s[6];
 int n;
 p=s;
 gets(p);
 n=*p-'0';
 while( [18] !='\0')n=n*8+*p-'0';
 printf("%d \n",n);
 }
(15) 函数 void fun(float *sn, int n)的功能是:根据以下公式计算S,计算结果通过形参指针sn传回;n通过形参传入,n的值大于等于0。请填空。

 void fun( float *sn, int n)
 { float s=0.0, w, f=-1.0;
 int i=0;
 for(i=0; i<=n; i++)
 { f= [19] * f;
 w=f/(2*i+1);
 s+=w;
 }
 [20] =s;
 }



全国计算机等级考试二级笔试试卷参考答案
2000年4月C语言
一、选择题((1)--(40)题每题1分,(41)--(50)题每题2分,共60分。
(1)A (2)C (3)C (4)D (5)D (6)A 7)C (8)C (9)D (10)B
(11)C (12)D (13)D (14)B (15)D (16)A (17)C (18)A (19)A (20)B
(21)A (22)C (23)D (24)A (25)A (26)D (27)A (28)B (29)B (30)C
(31)B (32)A (33)B (34)D (35)A (36)C (37)D (38)B (39)C (40)C
(41)C (42)B (43)A (44)A (45)C (46)B (47)B (48)B (49)C (50)D
二、填空题(每空2分,共40分)
(1)广域网
(2)MD D:\USER
(3) COPY *.TXT CON
(4) 外部
(5退出(或关闭)
(6)double
(7)x==0||x==1
(8) s= p+3
(9) 2
(10) int *
(11) * z
(12) b = i + 1
(13)i<10
(14) i % 3 != 0
(15) j+=2
(16) a[i]>a[j]
(17) 8,17
(18) *(++p)
(19) –1
(20) *sn



 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50