1、2023年9月全国计算机等级考试二级试卷C语言程序设计(考试时间:120分钟,满分100分)一、选择题(1)-(40)题每题1分,(41)-(50)题每题2分,共60分) 下列各题A) 、B)、C)、D)四个选项中,只有一个选项是对的的,请将对的的选项涂写在答题卡相应位置上,答在试卷上不得分。 (l) 在计算机系统中,一个字节的二进制位数为 A) 16 B) 8 C) 4 D) 由CPU的型号决定 (2) 存储1616点阵的一个汉字信息,需要的字节数为 A) 32 B) 64 C) 128 D) 256 (3) 英文大写字母B的ASCII码为42H,英文小写字母b的ASCII码为 A) 43H
2、 B) 84H C) 74H D) 62H (4) 下列计算机语言中,CPU能直接辨认的是 A) 自然语言B) 高级语言C) 汇编语言D)机器语言 (5) 在计算机领域中,所谓裸机是指 A) 单片机B) 单板机 C) 不安装任何软件的计算机D) 只安装操作系统的计算机 (6) 下列带有通配符的文献名中,能代表文献ABCDEF.DAT的是 A) A*.* B) ?F.* C) *.?D) AB?.* (7) 下列DOS命令中,执行时不会发生错误的是 A) TYPE *.TXT B) DIR *.TXT C) REN EAST.TXT A:b.TXT D) COPY *.TXTCON (8) 设当
3、前盘为C盘,C盘的当前目录为ABC。下列DOS 命令中能对的执行的是 A) MD B) MD A: C) MD AB D) CD C: (9) 为了将C:USER中的文献FILE.TXT同名复制到A盘根目录下,下列DOS命令中能对的执行的是 A) TYPE C:USERFILE.TXT A:FILE.TXT B) TYPE C:USERFILE.TXT A:FILE.TXT C) COPY C:USERFILE.TXT A:FILE.TXT D) COPY C:USERFILE.TXT (10) 在Windows下,当一个应用程序窗口被最小化后,该应用程序 A) 终止运营B) 暂停运营C) 继
4、续在后台运营D) 继续在前台运营 (11) 在Windows环境下,下列操作中与剪贴板无关的是 A) 剪切B) 复制C) 粘贴D) 删除 (12) 在Windows环境下,实现窗口移动的操作是 A) 用鼠标拖动窗口中的标题栏B) 用鼠标拖动窗口中的控制按钮 C) 用鼠标拖动窗口中的边框D) 用鼠标拖动窗口中的任何部位 (13) 一台计算机连入计算机网络后,该计算机 A) 运营速度会加快B) 可以共享网络中的资源 C) 内存容量变大D) 运营精度会提高 (14) 不能作为计算机网络中传输介质的是 A) 微波B) 光纤C) 光盘D) 双绞线 (15) 下列各项中,不属于多媒体硬件的是 A) 声卡B
5、) 光盘驱动器C) 显示器D) 多媒体制作工具 (16) 在C语言中,合法的长整型常数是 A) OL B) 4962710 C) 324562& D) 216D (17) 以下有4组用户标记符,其中合法的一组是 A) For B) 4d C) f2_G3 D) WORD -sub DO IF void Case Size abc define (18) 以下选项中合法的字符常量是 A)B B) 010 C) 68 D) D (19) 假定x和y为double型,则表达式x=2,y=x+3/2的值是 A) 3.500000 B) 3 C) 2.000000 D) 3.000000 (20) 以下
6、合法的赋值语句是 A) x=y=100 B) d-; C) x+y; D) c=int(a+b); (21) 设正x、y均为整型变量,且x=10 y=3,则以下语句的输出结果是 pprintf(%d,%dn,x-,-y); A) 10,3 B) 9.3 C) 9.2 D)10.2 (22) x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,对的的输入语句是 A) INPUT x、y、z; B) scanf(%d%d%d,&x,&y,&z); C) scanf(%d%d%d,x,y,z); D) read(%d%d%d,&x,&y,&z); (23) 以下程序的输出结果是 main(
7、) int a=3; printf(%dn,(a+a-=a*a) ); A) -6 B)12 C) 0 D) -12 (24) 设a、b、C、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=ab)&(n=cd)运算后,n的值位为 A) 0 B) 1 C)2 D) 3 (25) 阅读以下程序: main() int x; scanf(%d,&x); if(x-5) printf(%dx); else printf(%dx+); 程序运营后,假如从键盘上输人5,则输出结果是 A)3 B) 4 C) 5 D) 6 (26) 假定w、x、y、z、m均为i
8、nt型变量,有如下程序段: w=1; x=2; y=3; z=4; m=(w则该程序运营后,m的值是it A) 4 B) 3 C) 2 D) 2 (27) t为int类型,进人下面的循环之前,t的值为0 while( t=l ) 则以下叙述中对的的是 A) 循环控制表达式的值为0 B) 循环控制表达式的值为1 C) 循环控制表达式不合法D) 以上说法都不对 (28) 以下程序的输出结果是 main() int num= 0; while(num=2) num+; printf(%dn,num); A) 1 B) 1 C)1 D) l 2 2 2 3 3 4 (29) 以下各选项企图说明一种新的
9、类型名,其中对的的是 A) typedef v1 int; B) typedef v2=int; C) typedefv1 int v3; D) typedef v4: int; (30) 在调用函数时,假如实参是简朴变量,它与相应形参之间的数据传递方式是 A) 地址传递B) 单向值传递 C) 由实参传给形参,再由形参传回实参D) 传递方式由用户指定 (31) 以下函数值的类型是 fun ( float x ) float y; y= 3*x-4; return y; A) int B) 不拟定C) void D) float (32 ) 设有以下函数: f ( int a) int b=0;
10、 static int c = 3; b+; c+; return(a+b+c); 假如在下面的程序中调用该函数,则输出结果是 main() int a = 2, i; for(i=0;i=0;i-) ai=10-i; printf(%d%d%d,a2,a5,a8); A) 258 B) 741 C) 852 D) 369 (39) 以下数组定义中不对的的是 A) int a23; B) int b3=0,1,2,3; C) int c100100=0; D) int d3=1,2,1,2,3,1,2,3,4; (40) 以下程序的输出结果是 main() int a44=1,3,5,2,4,
11、6,3,5,7; printf(%d%d%d%dn,a03,a12,a21,a30; A) 0650 B) 1470 C) 5430 D) 输出值不定 (41) 以下程序的输出结果是 main() char st20= hello0t; printf(%d %d n,strlen(st),sizeof(st); A) 9 9 B) 5 20 C) 13 20 D) 20 20 (42) 以下选项中,不能对的赋值的是 A) char s110;s1=Ctest; B) char s2=C, t, e, s, t; C) char s320=Ctest; D) char *s4=Ctestn (4
12、3) 以下程序的输出结果是 amovep(int p, int (a)3,int n) int i, j; for( i=0;ix,(h1,p)-y); A) 12 B) 23 C) 14 D) 32 (45) 以下程序的输出结果是 main() int a, b; for(a=1, b=1; a=10) break; if (b%3= =1) b+=3; continue; printf(%dn,a); A) 101 B) 6 C) 5 D) 4 (46) 以下程序的输出结果是 union myun struct int x, y, z; u; int k; a; main() a.u.x=
13、4; a.u.y=5; a.u.z=6; a.k=0; printf(%dn,a.u.x); A) 4 B) 5 C) 6 D) 0 (47) 以下程序的输出结果是 int a, b; void fun() a=100; b=200; main() int a=5, b=7; fun(); printf(%dd n, a,b); A) 100200 B) 57 C) 202300 D) 75 (48) 以下程序的输出结果是 #define M(x,y,z) x*y+z main() int a=1,b=2, c=3; printf(%dn, M(a+b,b+c, c+a); A) 19 B)
14、17 C) 15 D) 12 (49) 整型变量x和y的值相等、且为非0值,则以下选项中,结果为零的表达式是 A) x | y B) x | y C) x & y D) x y (50) 下面的程序执行后,文献testt.t中的内容是 #include void fun(char *fname.,char *st) FILE *myf; int i; myf=fopen(fname,w ); for(i=0;ifclose(myf); main() fun(test,new world; fun(test,hello,0;) A)hello,B)new worldhello,C)new wor
15、ld D)hello, rld 二、填空题(每空2分,共40分) 请将每一个空的对的答案写在答题卡【l】至【20】序号的横线上,答在试卷上不得分。 (l)为了将当前盘当前目录中的所有文本文献(扩展名为.TXT)的内容打印输出,对的的单条DOS命令为【l】。 (2)设当前盘为C盘。为了在A盘的当前自录USER下建立一个新的子目录X,对的的DOS命令为【2】。 (3)在XCOPY、COPY、TIME三个DOS命令中,属于外部命令的是【3】。 (4)在32位的计算机中,一个字长等于【4】个字节。 (5)计算机网络分为局域网和广域网,因特网属于【5】。 (6)语句:x+;?+x; x=x+1;?x=l
16、+x; ,执行后都使变量x中的值增1,请写出一条同一功能的赋值语句(不得与列举的相同)【6】。 (7)设y是int型变量,请写出判断y为奇效的关系表达【7】。 (8)以下程序运营后的输出结果是【8】。 main() int i=10, j=0; do j=j+i; i-; while(i2); printf(%dn,j); (9) 设有以下程序: main() int n1,n2; scanf(%d,&n2); while(n2!=0) n1=n2%10; n2=n2/10; printf(%d,n1); 程序运营后,假如从键盘上输入1298;则输出结果为【9】。 (10) 以下程序输出的最后
17、一个值是【10】。 int ff(int n) static int f=l; f=f*n; return f; main() int i; for(I=1;I=5;I+ printf(%dn,ff(i); (11) 以下函数的功能是:求x的y次方,请填空。 double fun( double x, int y) int i; double z; for(i=1, z=x; ireturn z; (12) 设有以下程序: main() int a, b, k=4, m=6, *p1=&k, *p2=&m; a=pl=&m; b=(*p1)(*p2)+7; printf(a=%dn,a); p
18、rintf(b=%dn,b); 执行该程序后,a的值为【12】,b的值为【13】。 (13) 若已定义:int a10, i;,以下fun函数的功能是:在第一个循环中给前10个数组元素依次赋1、2、3、4、5、6、7、8、9、10;在第二个循环中使a数组前10个元素中的值对称折叠,变成1、2、3、4、5、5、4、3、2、1。请填空。 fun( int a ) int i; for(i=1; i=10; i+) 【14】=i; for(i=0; i5; i+) 【15】=ai; (14) 以下程序运营后的输出结果是【16】。 main() char s =9876,*p; for ( p=s ;
19、 p (15) 若有定义语句:char s100,d100; int j=0, i=0;,且s中已赋字符串,请填空以实现字符串拷贝。(注:不得使用逗号表达式) while(i) dj= 【17】;j+; dj=0; (16) 以下程序段用于构成一个简朴的单向链表,请填空。 struct STRU int x, y ; float rate; 【18】p; a, b; a.x=0; a.y=0; a.rate=0; a.p=&b; b.x=0; b.y=0; b.rate=0; b.p=NULL; (l7) 若有如下结构体说明: struct STRU int a, b ; char c; double d: struct STRU p1,p2; ; 请填空,以完毕对t数组的定义,t数组的每个元素为该结构体类型 【19】t20; (18) 以下程序段打开文献后,先运用fseek函数将文献位置指针定位在文献末尾,然后调用ftell函数返回当前文献位置指针的具体位置,从而拟定文献长度,请填空。 FILE *myf; ling f1; myf= 【20】(test.t,rb); fseek(myf,0,SEEK_END); f1=ftel(myf); fclose(myf); printf(%dn,f1);