[计算机类试卷]国家二级(C语言)机试模拟试卷31及答案与解析.doc
《[计算机类试卷]国家二级(C语言)机试模拟试卷31及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级(C语言)机试模拟试卷31及答案与解析.doc(30页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级( C语言)机试模拟试卷 31 及答案与解析 一、选择题 1 下列叙述中正确的是 ( A)每一个结点有两个指针域的链表一定是非线性结构 ( B)所有结点的指针域都为非空的链表一定是非线性结构 ( C)循环链表是循环队列的链式存储结构 ( D)线性结构的存储结点也可以有多个指针 2 使用白盒测试方法时,设计测试用例应根据 ( A)程序的内部逻辑 ( B)程序的复杂结构 ( C)程序的功能 ( D)使用说明书 3 在医院,每个医生只属于某一个诊疗科,医生同一天可为多位患者看病,而一名患者可在 多个科室治疗。则实体医生和患者之间的联系是 ( A)多对多 ( B)多对一 ( C)一对多 ( D
2、)一对一 4 设序列长度为 n,在最坏情况下,时间复杂度为 O(log2n)的算法是 ( A)二分法查找 ( B)顺序查找 ( C)分块查找 ( D)哈希查找 5 设数据集合为 D= 1,3,5,7,9 , D上的关系为 R,下列数据结构 B=( D, R)中为非线性结构的是 ( A) R= (5,1), (7,9), (1,7), (9,3) ( B) R= (9,7), (1,3), (7,1), (3,5) ( C) R= (1,9), (9,7), (7,5), (5,3) ( D) R= (1,3), (3,5), (5,9) 6 深度为 7的二叉树共有 127个结点,则下列说法中错
3、误的是 ( A)该二叉树有一个度为 1的结点 ( B)该二叉树是满二叉树 ( C)该二叉树是完全二叉树 ( D)该二叉树有 64个叶子结点 7 某二叉树的中序序列为 BDCA,后序序列为 DCBA,则前序序列为 ( A) DCBA ( B) BDCA ( C) ABCD ( D) BADC 8 下面能作 为软件需求分析工具的是 ( A) PAD图 ( B)程序流程图 ( C)甘特图 ( D)数据流程图 (DFD图 ) 9 下面不属于对象主要特征的是 ( A)唯一性 ( B)多态性 ( C)可复用性 ( D)封装性 10 ( A) (c,c,11,4) ( B) (b,b,11,4) ( C)
4、(a,a,2,4) ( D) (a,a,2,4)和 (e,e,6,1) 11 简单程序设计步骤中不包括 ( A)编码 ( B)确定算法 ( C)安装编译程序 ( D)调试 12 若想给已定义为 int型的变量 a,b,c,d赋值为 1,以下选项中错误的语句是 ( A) d=1, c=d, b=c, a=b; ( B) a=b=c=d=1; ( C) a=1, b=a, c=b, d=c; ( D) a=b, b=c, c=d, d=1; 13 有 C语言表达式 2*3+4+15%3 ,关于其执行顺序,以下叙述正确的是 ( A)先执行 2*3得 6,再执行 6+4得 10,再执行 15%3得 0
5、,最后执行 10+0得 10 ( B)先执行 2*3得 6,再执行 15%3得 5,最后执行 6+4+5得 15 ( C)先执行 15%3得 0,再执 行 2*3得 6,最后执行 6+4+0得 10 ( D)先执行 15%3得 3,再执行 4+3得 7,再执行 2*3得 6,最后执行 6+7得 13 14 若有定义: int a; float b; double c; ,程序运行时输入: 1,2,3回车,能把 1输入给变量 a、 2输入给变量 b、 3输入给变量 c的输入语句是 ( A) scanf(“%d,%f,%lf“, ( B) scanf(“%d%f%lf“, ( C) scanf(“
6、%d,%lf,%lf“, ( D) scanf(“%d,%f,%f“, 15 以下选项中,合法的 C语言实数是 ( A) E1 ( B) 1.00E-01 ( C) 0.10E ( D) 2.1e0.2 16 关于程序中的注释,以下叙述正确的是 ( A)注释的内容必须放在一对 /* 和 */之间 ( B)注释必须置于所说明的语句前或语句后 ( C)注释中间可以嵌套另一个注释 ( D)注释内容错误会导致编译出错 17 有以下程序 #include stdio.h main( ) int a,b; for (a=0; a 3; a+) scanf(“%d“, switch(b) default:
7、printf(“%d,“, b+); case 1: printf(“%d,“, b+); case 2: printf(“%d,“, b+); 程序运行时输入: 1 2 3回车,则输出结果是 ( A) 1,2,3,2,3,3, ( B) 1,2,3, ( C) 1,2,2,3,4,5, ( D) 1,1,1,2,2,3 18 以下非法的定义语句是 ( A) long b=0L; ( B) unsigned int a= -100u; ( C) short c2=0123; ( D) int d=0x0; 19 有以下程序 #include stdio.h main( ) int a=0, b
8、=0; for(; a 5; a+) if (a%2=0) continue; b += a; break; printf(“%d n“, b); 程序运行后的输出结果是 ( A) 1 ( B) 4 ( C) 0 ( D) 10 20 有以下程序 #include stdio.h main( ) char c; c=getchar(); do putchar(c+); while(c=getchar() != #); 程序运行时从第一列开始输入: abcdefg#回车,则输出结果是 ( A) bcdefgh$ ( B) bcdefgh ( C) abcdefg# ( D) abcdefg 21
9、 有如下程序 #include stdio.h main( ) char a = 0, b = a; int i; for (i=0; i 4; i+) if (i % 3) putchar(a + i); else putchar(b + i); 程序运行后的输出结果是 ( A) a12d ( B) ab3d ( C) 10ab ( D) 11ac 22 有以下程 序 #include stdio.h main( ) char ch = M; while (ch != K) putchar(ch); ch -; 程序运行后的输出结果是 ( A) ML ( B) MK ( C) OP ( D)
10、 mm 23 有以下程序 #include stdio.h int k=5; void f(int *s) s= *s=k; main( ) int m=3; f( printf(“%d,%dn“, m, k); 程序运行后的输出结果是 ( A) 3,3 ( B) 5,5 ( C) 3,5 ( D) 5,3 24 有如下程序 #include stdio.h int sum_mod(int a, int b) return a + b % 2; main( ) int i; for (i=0; i 5; i+) printf(“%d“, sum_mod(i, 4); printf(“n“);
11、程序运行后的输出结果是 ( A) 12345 ( B) 1234 ( C) 45678 ( D) 43210 25 以下对指针变量的操作中,错误的程序段是 ( A) int x=0,*p; *p=x; ( B) int x=1,*p,*q= p=q; ( C) int *p,*q; q=p=NULL; ( D) int p,*q; q= 26 有如下程序段 int *p, a=1; p= *p=10; 则变量 a的值为 ( A)不能确定 ( B) 1 ( C) 10 ( D) 11 27 有以下程序 #include stdio.h int a=2; int f(int k) static i
12、nt n=0; int m=0; n+; a+; m+; k+; return n+m+a+k; main( ) int k; for (k=0; k 2; k+) printf(“%d,“, f(k); printf(“n“); 程序运行后的输出结果是 ( A) 6,9, ( B) 6,10, ( C) 6,6, ( D) 6,7, 28 有以下程序 #include stdio.h void f(int x, int n) if ( n 1) printf(“%d,“, x0); f( printf(“%d,“, x0); else printf(“%d,“, x0); main( ) i
13、nt z3 = 4, 5, 6; f(z, 3); printf(“n“); 程序运行后的输出结果是 ( A) 6,5,4,6,5,4, ( B) 4,5,6,5,4, ( C) 4,5,6,4,5,6, ( D) 6,5,4,5,6, 29 有如下程序 #include stdio.h #include string.h main( ) char a = “1234“, *b = “ABC“; printf(“%d,%d,%d,%dn“, strlen(a), sizeof(a), strlen(b), sizeof(b); 程序运行后的输出结果是 ( A) 4,5,1,3 ( B) 4,3
14、,2,1 ( C) 4,5,3,3 ( D) 4,5,3,4 30 有以下程序 #include stdio.h int* sum(int data) static int init = 1; init += data; return main( ) int i, *p; for (i=1; i =3; i+) sum(i); p = sum(1); printf(“%dn“, *p); 程序运行后的输出结果是 ( A) 8 ( B) 9 ( C) 10 ( D) 7 31 以下对 C语言函数的叙述中正确的是 ( A)调用函数时,只能把实参的值传给形参,形参的值不能传给实参 ( B)函数既能嵌
15、套定义,又能递归定义 ( C)函数必须有返回值,否则不能使用 ( D)程序中有调用关系的 所有函数必须放在同一个源程序中 32 有以下程序 #include stdio.h #define S(x) x/x*x main( ) int k=6, j=3; printf(“%d,%dn“, S(k+j), S(j+k); 程序运行后的输出结果是 ( A) 27,27 ( B) 9,9 ( C) 27,29 ( D) 29,29 33 若有定义 typedef int *T; T *a20; 则以下与上述定义中 a类型完全相同的是 ( A) int *a20; ( B) int (*a)20; (
16、 C) int *(*a)20; ( D) int *a20; 34 设有以下程序段 struct person float weight; char sex; char name10; rec, *ptr; ptr = 从键盘读入字符串给结构体变量 rec的 name成员,错误的输入语句是 ( A) scanf(“%s“, rec- name); ( B) scanf(“%s“, rec.name); ( C) scanf(“%s“, (*ptr).name); ( D) scanf(“%s“, ptr- name); 35 有如下程序 #include stdio.h struct pai
17、r int first, second; ; struct pair get_min_max(int* array, int len) int i; struct pair res; res.first = array0; res.second = array0; for (i=1; i len; i+) if (arrayi res.first) res.first = arrayi; if (arrayi res.second) res.second = arrayi; return res; main( ) int array6 = 19, 21, 3, 4; struct pair m
18、in_max = get_min_max(array, 6); printf(“min=%d,max=%dn“, min_max.first, min_max.second); 程序运行后的输出结果是 ( A) min=0,max=6 ( B) min=1,max=20 ( C) min=1,max=19 ( D) min=0,max=21 36 有以下程序 #include stdio.h main( ) int i; FILE* fp; for (i=0; i 3; i+) fp = fopen(“res.txt“, “w“); fputc(K + i, fp); fclose(fp);
19、程序运行后,在当前目录下会生成一个 res.txt文件,其内容是 ( A) EOF ( B) M ( C) KLM ( D) L 37 有如下定义 struct st int n; float t; a20; FILE *fp; 若文件已正确打开,则 以下将文件内容读入数组 a中的语句错误的是 ( A) for(i=0; i 20; i+) fread(ai,sizeof(struct st),1L,fp); ( B) fread(a,sizeof(struct st),20L,fp); ( C) for(i=0; i 20; i+=2) fread( ( D) for(i=0; i 20;
20、i+,i+) fread( 38 有以下程序段 int m=33,n=66; m=mn; n=nm; m=mn; 执行上述语句后, m和 n的值分别是 ( A) m=66, n=66 ( B) m=33, n=66 ( C) m=66, n=33 ( D) m=33, n=33 39 有以下程序 #define Out(n) n%2=0 ? “%c“ : “%d“ #include stdio.h main( ) int x; for(x=65; x 69; x+) printf(Out(x),x); 程序的运行结果是 ( A) ABCD ( B) A66C68 ( C) 65666768 (
21、 D) 65B67D 40 有如下定义 struct st int x; float y; rec,*px; 若要使指针 px指向 rec的成员 x,正确的赋值语句是 ( A) px=(struct st*) ( B) px=(struct st*)rec.x; ( C) px= ( D) *px=rec.x; 二、程序填空题 41 程序通过定义学生结构体变量,存储学生的学号、姓名和三门课的成绩。函数fun的功能是:对形参 b所指结构体变量中的数据进行修改,并在主函数中输出修改后的数据。 例如,若 b所指变量 t中的学号、姓名和三门课的成绩依次是: 10002、“ZhangQi”、 93、 8
22、5、 87,修改后输出 t中的数据应为: 10004、 “LiJie”、 93、 85、87。 请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。 注意:部分源程序给出如下 。 不得增行或删行,也不得更改程序的结构 ! 试题程序: #inClude stdio h #include string h struct student long Sno; char name10; float score3; ; void fun(struer student *b) /*found*/ b【 1】 =10004; /*found*/ strcpy(b 【 2】 , “LiJie”
23、); main() Struct student t=10002, “ZhangQi”, 93, 85, 87, int i; printf (“ n nThe original data : n”); printf(“ nNo: ld Name: s n Scores: ”, t Sno, t name); for(i=0 ; i 3; i+) printf(“ 6 2f”, t scorei); printf(“ n”); /*found*/ fun(【 3】 ); print f(“ nThe data after modifled: n”); printf(“ nNo: ld Name
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 模拟 31 答案 解析 DOC
