[计算机类试卷]国家二级(C语言)机试模拟试卷55及答案与解析.doc
《[计算机类试卷]国家二级(C语言)机试模拟试卷55及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级(C语言)机试模拟试卷55及答案与解析.doc(31页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级( C语言)机试模拟试卷 55及答案与解析 一、选择题 1 设循环队列为 Q(1: m),其初始状态为 front=rear=m。经过一系列入队与退队运算后, front=15, rear=20。现要在该循环队列中寻找最大值的元素,最坏情况下需要比较的次数为 ( A) 4 ( B) 6 ( C) m-5 ( D) m-6 2 下列叙述中正确的是 ( A)循环队列属于队列的链式存储结构 ( B)双向链表是二叉树的链式存储结构 ( C)非线性结构只能采用链式存储结构 ( D)有的非线性结构也可以采用顺序存储结构 3 某二叉树中有 n个叶子结点,则该二叉树中度为 2的结点数为 ( A) n+
2、1 ( B) n-1 ( C) 2n ( D) n/2 4 下列叙述中错误的是 ( A)算法的时间复杂度与算法所处理数据的存储结构有直接关系 ( B)算法的空间复杂度与算法所处理数据的存储结构有直接关系 ( C)算法的时间复杂度与空间复杂度有直接关系 ( D)算法的时间复杂度与算法程序执行的具体时间是不一致的 5 软件工程的三要素是 ( A)方法、工具和过程 ( B)建模、方法和工具 ( C)建模、方法和过程 ( D)定义、方法和 过程 6 通常软件测试实施的步骤是 ( A)集成测试、单元测试、确认测试 ( B)单元测试、集成测试、确认测试 ( C)确认测试、集成测试、单元测试 ( D)单元测
3、试、确认测试、集成测试 7 下面可以作为软件设计工具的是 ( A)系统结构图 ( B)数据字典 (DD) ( C)数据流程图 (DFD图 ) ( D)甘特图 8 在数据库设计中,将 E-R图转换成关系数据模型的过程属于 ( A)逻辑设计阶段 ( B)需求分析阶段 ( C)概念设计阶段 ( D)物理设计阶段 9 设有关系表学生 S( 学号,姓 名,性别,年龄,身份证号 ) ,每个学生学号唯一。除属性学号外,也可以作为键的是 ( A)姓名 ( B)身份证号 ( C)姓名,性别,年龄 ( D)学号,姓名 10 在数据库系统中,考虑数据库实现的数据模型是 ( A)概念数据模型 ( B)逻辑数据模型 (
4、 C)物理数据模型 ( D)关系数据模型 11 以下选项中叙述正确的是 ( A)结构化程序的三种基本结构是循环结构、选择结构、顺序结构 ( B) C语言源程序不编译也能直接运行 ( C)使用 N S流程图不能描述复杂算法 ( D)计算机能够直接运行 C语言 源程序,不必进行任何转换 12 以下选项中叙述正确的是 ( A)使用三种基本结构就可以实现任何复杂算法 ( B)只要程序包含了三种基本结构中的任意一种,就是结构化程序 ( C)程序语法错误要在运行时才能发现 ( D) C语言程序不需要包含 main()函数 13 以下选项中,合法的 C语言常量是 ( A) 1.234 ( B) C+ ( C
5、) “2.0 ( D) 2Kb 14 以下选项中,合法的 C语言实数是 ( A) 3.1e0.4 ( B) 2.00E-01 ( C) E13 ( D) 7.12E 15 设 a,b,c是整型变量且均已赋值,则以下选项中错误的赋值语句是 ( A) a = (b = 3) = 1; ( B) a = (b = 2) + c; ( C) a = b = c + 10; ( D) a = 1 + (b = c = 2); 16 有如下程序 #include stdio.h main() int x = 072; printf(“%dn“, x+1); 程序运行后的输出结果是 ( A) 59 ( B)
6、 73 ( C) 115 ( D) 72 17 有如下程序 #include stdio.h main() int a = 0, b = 1; if (a+ else printf(“F“); printf(“a=%d,b=%dn“, a, b); 程序运行后的输出结果是 ( A) Ta=1,b=2 ( B) Fa=0,b=2 ( C) Fa=1,b=1 ( D) Ta=0,b=1 18 有如下程序 #include stdio.h main() int i, data; scanf(“%d“, for (i=0; i 5; i+) if (i data) continue; printf(“
7、%d,“, i); printf(“n“); 程序运行时,从键盘输入: 3回车后,程序输出结果为 ( A) 3,4, ( B) 1,2,3,4, ( C) 0,1,2,3,4,5, ( D) 0,1,2, 19 有如下程序 #include stdio.h main() int i, data; scanf(“%d“, for (i=0; i 5; i+) if (i data) break; printf(“%d,“, i); printf(“n“); 程序运行时,从键盘输入: 3回车后,程序输出结果为 ( A) 3,4, ( B) 0,1, ( C) 3,4,5, ( D) 0,1,2,3
8、 20 有如下程序 #include stdio.h main() char a = 3, b = A; int i; for (i=0; i 6; i+) if (i % 3) putchar(a + i); else putchar(b + i); printf(“n“); 程序运行后的输出结果是 ( A) A45D78 ( B) ABC678 ( C) 34CD78 ( D) 34AB78 21 有如下程序 #include stdio.h main() int i; for (i=0; i 5; i+) putchar(9 - i); printf(“n“); 程序运行后的输出结果是
9、( A) 54321 ( B) 98765 ( C) 98765 ( D) 43210 22 有如下程序 #include stdio.h main() int x = 0x13; if (x = 0x18) printf(“T“); printf(“F“); printf(“n“); 程序运行后的输出结果是 ( A) TF ( B) T ( C) F ( D) TFT 23 有如下程序 #include stdio.h int sum(int a, int b) return a + b - 2; main() int i; for (i=0; i 5; i+) printf(“%d“, s
10、um(i, 3); printf(“n“); 程序运行后的输出结果是 ( A) 54321 ( B) 1234 ( C) 45678 ( D) 12345 24 有如下程序 #include stdio.h int change(int* data) return (*data) +; main() int data = 123; change( printf(“%d,“, data); data = change( printf(“%d,“, data); printf(“n“); 程序运行后的输出结果是 ( A) 124,124, ( B) 123,124, ( C) 124,123, (
11、 D) 123,123, 25 有如下程序 #include stdio.h void change(int* array, int len) for (; len =0; len-) arraylen += 2; main() int i, array5 = 1,2; change(array, 4); for (i=0; i 4; i+) printf(“%d,“, arrayi); printf(“n“); 程序运行后的输出结果是 ( A) 2,3,4,5, ( B) 3,4,5,6, ( C) 3,4,2,2 ( D) 1,2,0,0, 26 以下选项中叙述正确的是 ( A) char
12、 c1, c2, *c3, c440; 是合法的变量定义语句 ( B)数组说明符的一对方括号中只能使用整型常量,而不能使用表达式 ( C)数组下标的下限可以是负值 ( D)若有数组定义 float array4; 则语句 printf(“%f“, array3.12);是合法的 27 若有函数声明 void fun(float array, int *ptr); 以下叙述正确的是 ( A)函数参数 array, ptr 都是指针变量 ( B)函数参数 array 不是指针变量, ptr 是指针变量 ( C)调用函数时,实参数组的值将一一复制给 array数组 ( D)调用函数时, array是
13、按值传送, ptr是按地址传送 28 设有 如下程序段 int a8 = 0; int b = 0; char c2 = “A“, “B“; char d = “AB“; 以下叙述正确的是 ( A)只有 a,b,c的定义是合法的 ( B) a,b,c,d的定义都是合法的 ( C)只有 a,b的定义是合法的 ( D)只有 c的定义是合法的 29 以下涉及字符串数组、字符指针的程序段,不会产生编译错误的是 ( A) char* str, name10; str = “Hello World“; ( B) char* str, name10; name = “Hello World“; ( C) c
14、har str110 = “prog.c“, str210; str2 = str1; ( D) char head_line; head_line = “=“; 30 有如下程序 #include stdio.h #include string.h main() printf(“%dn“, strlen(“0n0111“); 程序 运行后的输出结果是 ( A) 6 ( B) 8 ( C) 9 ( D) 4 31 有如下程序 #include stdio.h void convert(char ch) if (ch D) convert(ch+1); printf(“%c“, ch); mai
15、n() convert(A); printf(“n“); 程序运行后的输出结果是 ( A) ABCDDCBA ( B) ABCD ( C) A ( D) DCBA 32 有如下程序 #include stdio.h #include string.h main() char a = “THIS“, *b = “OK“; printf(“%d,%d,%d,%dn“, strlen(a), sizeof(a), strlen(b), sizeof(b); 程序运行后的输出结果是 ( A) 4,5,2,4 ( B) 4,4,2,1 ( C) 5,5,3,3 ( D) 4,5,2,3 33 有如下程序
16、 #include stdio.h void get_put() char ch; ch = getchar(); if (ch != n) get_put(); putchar(ch); main() get_put(); printf(“n“); 程序运行时,输入 1234回车,则输出结果是 ( A) 1234 ( B) 4321 ( C) 4444 ( D) 1111 34 有如下程序 #include stdio.h int sum(int data) static int init = 0; return init += data; main() int i; for (i=1; i
17、 =5; i+) printf(“%d,“, sum(i); printf(“n“); 程序运行后的输出结果是 ( A) 1,3,6,10,15, ( B) 1,2,3,4,5, ( C) 0,0,0,0,0, ( D) 1,1,1,1,1, 35 以下选项中的编译预处理命令行,正确的是 ( A) #define PI 3.14 ( B) #define eps 0.001 ( C) #DEFINE TRUE ( D) #define int INT 36 设有以下程序段 struct person char name10; char sex; float weight; zhangsan,
18、*ptr; ptr = 若要从键盘读入姓名给结构体变量 zhangsan的 name成员,输入项错误的是 ( A) scanf(“%s“, zhangsan- name); ( B) scanf(“%s“, zhangsan.name); ( C) scanf(“%s“, ptr- name); ( D) scanf(“%s“, (*ptr).name); 37 有如下程序 #include stdio.h struct person char name10; int age; main() struct person room4 = “Zhang“, 19, “Li“, 20, “Wang“
19、, 17, “Zhao“, 18; printf(“%s:%dn“, (room+2)- name, room- age); 程序运行后的输出结果是 ( A) Wang:19 ( B) Wang:17 ( C) Li:20 ( D) Li:19 38 有如下程序 #include stdio.h struct pair 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
20、; i len; i+) if (arrayi res.first) res.first = arrayi; if (arrayi res.second) res.second = arrayi; return res; main() int array5 = 9, 1, 3, 4; struct pair min_max = get_min_max(array, 5); printf(“min=%d,max=%dn“, min_max.first, min_max.second); 程序运行后的输出结果是 ( A) min=1,max=9 ( B) min=0,max=9 ( C) min=
21、1,max=4 ( D) min=0,max=4 39 有如下程序 #include stdio.h main() int a = 8, b; b = (a 2) % 2; printf(“%d,%dn“, a, b); 程序运行后的输出结果是 ( A) 8,0 ( B) 4,0 ( C) 4,1 ( D) 8,1 40 以下选项中叙述正确的是 ( A)文件指针是指针类型的变量 ( B)文件指针可同时指向不同文件 ( C)文件指针的值是文件在计算机磁盘中的路径信息 ( D)调用 fscanf函数可以向文本文件中写入任意字符 二、程序填空题 41 下 列给定程序中,函数 fun的功能是:将 NN
22、矩阵主对角线元素的值与反向对角线对应位置上元素的值进行交换。 例如,若 N=3,有 F#0矩阵: 1 2 3 4 5 6 7 8 9 交换后为: 3 2 1 4 5 6 9 8 7 请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行。也不得更改程序的结构 ! 试题程序: #inclucle stdio h #define N 4 /*found*/ void fun(int 【 1】 , int n) int i, s; /*found*/ for(【 2】 , i+) s=tii; tii=tini1; /*found*/ ti
23、ni1=【 3】 ; main() ( int tN=21, 12, 13, 24, 25, 16, 47, 38, 29, 11, 32, 54, 42, 21, 33, 10, i, j; printf(“ nThe original array: n”); for(i=0, i N; i+) for(j=0, j N; j+) printf(“ d”, tij), printf(“n”); fun(t, N); printf(“ nThe result is: n”); for(i=0, i N; i+) for(j=0; j N; j+) printf(“ d”, tij); prin
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 模拟 55 答案 解析 DOC
