1、国家二级( C语言)笔试模拟试卷 74 及答案与解析 1 C语言源程序的最小单位是 ( ) ( A)程序行 ( B)语句 ( C)函数 ( D)字符 2 在微机中, bit的中文含义是 ( ) ( A)二进制位 ( B)字节 ( C)字 ( D)双字 3 在下列设备中,属于输出设备的是 ( ) ( A)键盘 ( B)鼠标 ( C)显示器 ( D)软盘 4 个人计算机属于 ( ) ( A)小巨型机 ( B)中型机 ( C)小型机 ( D)微机 5 在微机中,微处理器的主要功能是 ( ) ( A)算 术逻辑运算 ( B)算术运算 ( C)存储程序和数据 ( D)算术逻辑运算及全机的控制 6 各种网
2、络传输介质 ( ) ( A)具有相同的传输速率和相同的传输距离 ( B)具有不同的传输速率和不同的传输距离 ( C)具有相同的传输速率和不同的传输距离 ( D)具有不同的传输速率和相同的传输距离 7 多媒体计算机系统的两大组成部分是 ( ) ( A)多媒体功能卡和多媒体主机 ( B)多媒体通信罗件和多媒体开发工具 ( C)多媒体输入设备和多媒体输出设备 ( D)多媒体计算机硬件系统和多媒体计算机软件系统 8 按通信距离划分,计算机网络可以分为局域网和广域网。下列网络中属于局域网的是 ( ) ( A) Internet ( B) CERNET ( C) Novell ( D) CHINANET
3、9 在 Windows中,启动应用程序的正确方法是 ( ) ( A)用鼠标双击该应用程序图标 ( B)将该应用程序窗口最小化成图标 ( C)将该应用程序窗口还原 ( D)将鼠标指向该应用程序图标 10 下列合法的变量名是 ( ) ( A) # 33 ( B) 3D64 ( C) a b ( D) sum 11 当前在数 据库管理系统的研究方面,较活跃的是 ( ) ( A)关系数据库 ( B)网状数据库 ( C)空间数据库 ( D)层次数据库 12 循环控制语句 “while(!scanf(“%d“, for(i 0; i 10; i+ +, p+ +) if(_) *a *p; printf(
4、“%d“,*a); ( A) p a ( B) * p a0 ( C) *p * a 0 ( D) * p 0 * a 0 37 以下程序的输出结果是 ( ) main( ) int a 10 1, 2, 3, 4, 5, 6,7, 8, 9, 10, , *p a; printf(“%dn“, * (p+2); ( A) 3 ( B) 4 ( C) 1 ( D) 2 38 以下程序的输出结果是 ( ) main( ) int n3 3, i, j; for (i0; i 3; i+ +) for(j 0; i 3;+) nij=i+j; for(i 0; i 2;i+) for(j 0, j
5、 2; j+) ni+1j+1+ ij; printf(“%dn“,n1j); ( A) 14 ( B) 0 ( C) 6 ( D)值不确定 39 以下程序的输出结果是 ( ) main( ) union char i 2; int k; r; r. i0 2, r i1 0; printf(“%dn“, r,k); ( A) 2 ( B) 1 ( C) 0 ( D)不确 定 40 设有以下定义或语句,则输出的结果是 (用 small模式编译,指针变量占 2个字节 ) ( ) struct date long * cat; struct date *next; double dog; too;
6、 printf(“%d“, sixeof(too); ( A) 20 ( B) 16 ( C) 14 ( D) 12 41 以下程序的输出结果是 ( ) main( ) int w 5; fun(w); printf(“n“); fun (int k) if (k 0) fun (k-1); printf(“%d“, k); ( A) 5 4 3 2 1 ( B) 0 1 2 3 4 5 ( C) 1 2 3 4 5 ( D) 5 4 3 2 1 0 42 与以下定义等价的是 ( ) int * p 4 ( A) int p 4 ( B) int * p ( C) int *(p4) ( D)
7、 int( * p)4 43 以下程序的输出结果是 ( ) main( ) char ch 34 “123“, “456“,“78“, *p 3; int i; for(i 0; i 3; i+ +)pi chi; for(i 0; i3; i+ +)printf(“%s“, pi); ( A) 123456780 ( B) 123 456 780 ( C) 12345678 ( D) 147 44 以下程序的输出结果是 ( ) #include stdlib h int a 3 3 1,2, 3, 4, 5, 6, 7, 8, 9, *p; main( ) p (int *)malloc(s
8、izeof(int); f(p, a); printf(“%dn“, *p); f(int *s, intp3) *sp11; ( A) 1 ( B) 4 ( C) 7 ( D) 5 45 在下列关于 C语言的局部变量和全局变量所采取的存储类别 的叙述中,错误的一条是 ( ) ( A)对于动态局部变量来说,一旦离开函数,其值就消失 ( B)对于静态局部变量来说,离开函数,其值仍保留 ( C)对于寄存器变量来说,一旦离开函数,其值就消失 ( D)静态外部变量既可在本文件中引用,又可在其他文件中引用 46 十进制数 269转换成十六进制数是 ( ) ( A) 10E ( B) 10D ( C) 1
9、0C ( D) 10B 47 以下所列的各函数首部中,正确的是 ( ) ( A) void play (var: Integer, var b: Integer) ( B) void play(int a, b) ( C) void play(int a, int b) ( D) Sub play(a as integer, b as integer) 48 执行以下程序段 ( ) x -1; do x x*x; while(!x); ( A)循环体将执行一次 ( B)循环体将执行两次 ( C)循环体将执行无限次 ( D)系统将提示有语法错误 49 为使 *p 20,下面正确的程序是 ( )
10、( A) # include stdio h main( ) int a 10, b 20, *p b; printf(“%dt%dn“, p, *p); *p) ( B) # include stdio h main( ) int a 10, b 20, *p b; printf(“%dt%dn“, p, *p) ( C) # include stdio h main( ) int a 10, b 20, *p; pa; p + +; printf(“%dt%dn“, p, *p); ( D) # include stdio h main( ) int a 10, b 20, *p; *p2
11、0; printf(“%dt%dn“, p, *p); 50 位运算 071 052的八进制值是 ( ) ( A) 52 ( B) 23 ( C) 17 ( D) 71 51 在计算机领域中,通常用英文单词 “Byte表示【 】。 52 在线性表的多种存储结构中,最简单的方法是【 】。 53 派生类对基类继承控制访问有三种。派生类可以定义其基 类中不具备的【 】。 54 在 Windows环境下,可以利用单击、双击、拖动这三种鼠标操作之一的【 】操作实现窗口的移动。 55 在 Windows环境下,可以将窗口最小化为【 】。 56 下面程序段的输出结果是【 】。 int i 0, sum 1;
12、 do sum + i+ +; while(i 6); print(“%dn“, sum); 57 将经过确认测试的软件与外设、网络等连接在一次运行的测试叫【 】 58 设 a、 b、 c为整形数,且 a 2, b 3, c 4则执行完以下语句后, a的值是【 】。 a* 16+(b+)-(+ +c); 59 阅读程序: # include string h # include strdio h strle(char a, char b) int num 0, n 0; while(*(a+num)! 0)num+ +; while(bn) * (a+num) bn;num+ +; n+ +;
13、 return(num); main() char strl81, str281, * p1 strl, *p2 str2; gets(p1); gets(p2); prinf(“%dn“, strle(p1, p2); 运行上面的程序,如果从键盘上输入字符串 qwerty和字符串 abcd,则程序的输出结果是【 】。 60 阅读程序: main( ) char strl “how do you do“, str210; char * p1 strl, * p2 str2; scanf(“%s”, p2); printf(“%s”, p2); printf(“%sn“, p1); 运行上面的程
14、序,输入字符串 HOW DO YOU DO 则程序的输出结果是【 】。 61 下面的程序通过函数 average计算数组中各元素的平均值,请填空。 float avetage(int * pa, int n) int i; float avg 0.0; for(i=0; i n; i+ +); avg avg+【 】 ; avg【 】 ; return avg; main() int i, a5 2, 4, 6, 8, 10, ; float mean; prinf(“% mean % fn“, mean); 62 以下程序由终端键盘输入一个文件名,然后把从终端键盘输入的字符依次放到该文 件中
15、,用井作为结束输入的标志。请填空。 # include stdio h main( ) FILE * fp; char ch, fname10; printf(“Input the name of filen“); gets(fname); if(fp【 】 ) NULL) printf(“Can not open“); exit(O); printf(“Enter datan“); while(ch getchar()! # ) fputc(【 】 , fp); fclose(fp); 63 以下程序的功能是找出三个字符串中的最大串。 【 】 # include stdio h main()
16、 int i; char string20, str320; (i 0; i 3; i+)gets(【 】 ); if(strcmp(str, str0, str1 0)strcpy(string, str0); else strcpy(string, str1); if(strcmp(str2, string)【 】 )srtcpy(string, str2); printf(“The largest string isn%sn“, string); 64 以下函数 creat用来建立一个带头结点的单向链表,新产生的结点是插在链表头的 末尾。单向链表的头指针作为函数值返回。请填空。 # in
17、clude stdio h struct list char data; struct list * next; ; struct list * creat; struct list * h, * p, * q; char ch; h (【 】 )malloc ( sizeof(struct list); p q h; ch getchar(); while(ch! ?) p (【 】 )mallco(sizeof(struct list); p- data ch; q- next p; q p; ch getchar(); p- next 0; 【 】; 国家二级( C语言)笔试模拟试卷 7
18、4 答案与解析 1 【正确 答案】 D 2 【正确答案】 A 3 【正确答案】 C 4 【正确答案】 D 5 【正确答案】 D 6 【正确答案】 B 7 【正确答案】 D 8 【正确答案】 C 9 【正确答案】 A 10 【正确答案】 D 11 【正确答案】 C 12 【正确答案】 A 13 【正确答案】 D 14 【正确答案】 B 15 【正确答案】 C 16 【正确答案】 B 17 【正确答案】 D 18 【正确答案】 C 19 【正确答案】 D 20 【 正确答案】 B 21 【正确答案】 B 22 【正确答案】 B 23 【正确答案】 B 24 【正确答案】 A 25 【正确答案】 C
19、 26 【正确答案】 B 27 【正确答案】 A 28 【正确答案】 C 29 【正确答案】 C 30 【正确答案】 B 31 【正确答案】 D 32 【正确答案】 D 33 【正确答案】 A 34 【正确答案】 D 35 【正确答案】 C 36 【正确答案】 B 37 【正确答案】 A 38 【正确答案 】 C 39 【正确答案】 A 40 【正确答案】 D 41 【正确答案】 B 42 【正确答案】 C 43 【正确答案】 C 44 【正确答案】 D 45 【正确答案】 B 46 【正确答案】 B 47 【正确答案】 C 48 【正确答案】 A 49 【正确答案】 A 50 【正确答案】 C 51 【正确答案】 字节 52 【正确答案】 顺序存储 53 【正确答案】 数据和操作 54 【正确答案】 拖动 55 【正确答案】 图标或按钮 56 【正确答案】 16 57 【正确答案】 系统测试 58 【正确答案】 28 59 【正确答案】 10 60 【正确答案】 HOW how do you do 61 【正确答案】 pa i avg/n 62 【正确答案】 fopen (fname,: “w“) 63 【正确答案】 # include string h str i 0 64 【正确答案】 strcur list * strucr list * return (h)