1、2023年4月全国计算机等级考试二级试卷C语言程序设计一、选择题((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系统的最外层模块,通常
2、称之为 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)
3、 价格便宜 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) CO
4、PY X1.TXT+C:WSB1.TXT B:Z.TXT C) COPY A:X1.TXT+C:WSB1.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.TXTABC.TXT C) COPY ABC.TXT+XYZ.TXT与COPY XYZ.TXT+ABC.TXT D) TYPE *.FORCON与COPY *.FOR CON (11) 设当前目录为D:BB,现要把D:AA目录下首字符是A的文本
5、文献所有删除, 应当使用命令 A) DEL A*.TXT B) DEL AAA.TXT C) DEL AAA*.TXT D) DEL AAA?.TXT (12) 在Windows中,启动应用程序的对的方法是 A) 用鼠标指向该应用程序图标 B) 将该应用程序窗口最小化成图标 B) 将该应用程序窗口还原 D) 用鼠标双击该应用程序图标 (13) 在Windows中,终止应用程序执行的对的方法是 A) 将该应用程序窗口最小化成图标 B) 用鼠标双击应用程序窗口右上角的还原按钮 C) 用鼠标双击应用程序窗口中的标题栏 D) 用鼠标双击应用程序窗口左上角的控制菜单框 (14) 在微机系统中,对输入输出
6、设备进行管理的基本程序模块(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) 下列程序执行后的输出结果是(小数点
7、后只写一位) 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)
8、 1 C) 2 D) -1 (21) 与 y=(x0?1:x0) y=1; B) if(x) else if(x0)y=1; else y=0; else if(x=0)if(x0)y=1; if(x0)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-whi
9、le语句构成的循环只能用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, s2; s0=k; k=s1*10; (26) 若已定义: int a =0,1,2,3,4,5,6,7,8,9, *p=
10、a, i; 其中 0i9, 则对a数组元素不对的的引用上 A) ap-a B) *(&ai) C) pi D) a10 (27) 下列程序执行后的输出结果是 A) 6 B) 7 C) 8 D) 9 void func(int *a,int b) b0=*a+6; main() int a,b5; a=0; b0=3; func(&a,b); printf(%d n,b0); (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=%dn
11、,a,c); (29) 下列程序执行后的输出结果是 A) 3 B) 6 C) 9 D) 随机数 main() int a33, *p,i; p=&a00; for(i=p; i9; i+) pi=i+1; printf(%d n,a12); (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,
12、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; i2; i+) for(j=0; 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 s2=1,2,3,4,5,6; int t; t=s0.a+s1.b; print
13、f(%d n,t); (34) 设 int b=2;表达式(b2)/(b1)的值是 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
14、(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 C) a=12 y=12 D) a=1
15、2 y=12 a=14 y=16 a=16 y=28 a=14 y=26 a=16 y=20 a=14 y=44 a=18 y=24int a, y; a=10; y=0; do a+=2; y+=a; printf(a=%d y=%dn,a,y); if(y20) break; while(a=14); (39) 若有以下调用语句,则不对的的fun函数的首部是 A) void fun(int m, int x) B) void fun(int s, int h41) C) void fun(int p, int *s) D) void fun(int n, int a) main() int
16、 a50,n; fun(n, &a9); (40) 语句printf(abrehiyboun);的输出结果是 A) abrehiybou B) abrehiybou C) rehiyou D) abrehiybou (说明:b是退格符) (41) 请选出对的的程序段 A) int *p; B) int *s, k; C) int *s, k; D) int *s, k; scanf(%d,p); *s=100; char *p, c; char *p, e; s=&k; s=&k; p=&c; p=&c; *p=a; s=p; *s=1; (42) 已知指针p的指向如下图所示,则执行语句 *-
17、p;后*p的值是 A) 30p1020305040a0a1a2a3a4 B) 20 C) 19 D) 29 (43) 设已有定义: char *st=how are you; 下列程序段中对的的是 A) char a11, *p; strcpy(p=a+1,&st4); B) char a11; strcpy(+a, st); C) char a11; strcpy(a, st); D) char a, *p; strcpy(p=&a1,st+2); (44) 下列程序执行后的输出结果是 A) you&me B) you C) me D) err mai() char arr24; strcp
18、y(arr,you); strcpy(arr1,me); arr03=&; 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,sti); if(i3)i+=2;func2(i); void func2(int i) printf(%c,sti); if(i3)i+=2;func1(i); main() int i=0; func1(i)
19、; 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;inext=&b; D) (*p).next=q; struct node char data; struct node *next; a,b,*p=&a,*q=&b; p5datanextaqdatanextb(49) 变量a所
20、占内存字节数是 A) 4 B) 5 C) 6 D) 8 union U char st4; int i; long l; ; struct A int c; union U u; a; (50) 执行下列程序时输入:123456789,输出结果是 A) 123,456,789 B) 1,456,789 C) 1,23,456,789 D) 1,23,456 main() char s100; int c, i; scanf(%c,&c); scanf(%d,&i); scanf(%s,s); printf(%c,%d,%s n,c,i,s); 二)填空题(每空2分,共40分) 请将每空的对的答
21、案写在答题卡上120序号的横线上,答在试卷上不得分。 (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
22、 y; double z; 则表达式:w*x+z-y所求得的数据类型为【6】。 (7) 若x为int类型,请以最简朴的形式写出与逻辑表达式!x等价的C语言关系表达式【7】。 (8) 若有如下图所示五个连续的int类型的存储单元并赋值如下图,a0的地址小于a4的地址。p和s是基类型为int的指针变量。请对以下问题进行填空。 2233445566a0a1a2a3a4 1、若p已指向存储单元a1。通过指针p,给s赋值,使s指向最后一个存储单元a4的语句是【8】。 2、若指针s指向存储单元a2,p指向存储单元a0,表达式s-p的值是【9】。 (9) 下面函数用来求出两个整数之和,并通过形参传回两数相加
23、之和值,请填空。 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(偶数之和=%dn,a); printf(奇数之和=%dn,c-11); (11) 下面程序的功能是:输出100以内能被3整除且个位数为6的所有整数,请填空。 #include main() int i, j; for(i=0; 【13】; i+) j=i*10+6;
24、 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=ai; ai=aj; aj=t; puts(a); printf(n); (13) 以下程序的运营结果是【17】 #include main() int k=4, m=1, p;
25、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, s6; int n; p=s; gets(p); n=*p-0; while(【18】!=0) n=n*8+*p-0; printf(%d n,n); (15) 函
26、数 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; 2023年4月C语言全国计算机等级考试二级笔试试卷参考答案一、选择题(1)-(40)题每题1分,(41)-(50)题每题2分,共60分。(1)A (2)C (3)C (4)D (5)D (6)A 7)C
27、(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)iaj(17) 8,17(18) *(+p)(19) 1(20) *sn