[计算机类试卷]2012年9月国家二级(C语言)机试真题试卷及答案与解析.doc

上传人:explodesoak291 文档编号:493029 上传时间:2018-11-30 格式:DOC 页数:29 大小:72.50KB
下载 相关 举报
[计算机类试卷]2012年9月国家二级(C语言)机试真题试卷及答案与解析.doc_第1页
第1页 / 共29页
[计算机类试卷]2012年9月国家二级(C语言)机试真题试卷及答案与解析.doc_第2页
第2页 / 共29页
[计算机类试卷]2012年9月国家二级(C语言)机试真题试卷及答案与解析.doc_第3页
第3页 / 共29页
[计算机类试卷]2012年9月国家二级(C语言)机试真题试卷及答案与解析.doc_第4页
第4页 / 共29页
[计算机类试卷]2012年9月国家二级(C语言)机试真题试卷及答案与解析.doc_第5页
第5页 / 共29页
点击查看更多>>
资源描述

1、2012年 9月国家二级( C语言)机试真题试卷及答案与解析 一、选择题 1 下列叙述中正确的是 ( )。 ( A)栈是 “先进先出 ”的线性表 ( B)队列是 “先进后出 ”的线性表 ( C)循环队列是非线性结构 ( D)有序线性表既可以采用顺序存储结构,也可以采用链式存储结构 2 支持子程序调用的数据结构是 ( )。 ( A)栈 ( B)树 ( C)队列 ( D)二叉树 3 某二叉树有 5个度为 2的结点,则该二叉树中的叶子结点数是 ( )。 ( A) 10 ( B) 8 ( C) 6 ( D) 4 4 下列排序方法中,最坏情况下比较次数最少的是 ( )。 ( A)冒泡排序 ( B)简单选

2、择排序 ( C)直接插入排序 ( D)堆排序 5 软件按功能可以分为:应用软件、系统软件和支撑软件 (或工具软件 )。下面属于应用软件的是 ( )。 ( A)编译程序 ( B)操作系统 ( C)教务管理系统 ( D)汇编程序 6 下面叙述中错误的是 ( )。 ( A)软件测试的目的是发现错误并改正错误 ( B)对被调试的程序进行 “错误定位 ”是程序调试的必要步骤 ( C)程序调试通常也称为 Debug ( D)软件测试应严格执行测试计划,排除测试的随意性 7 耦合性和内聚性是对模块独立性度量的两个标准,下列叙述中正确的是 ( )。 ( A)提高耦合性降低内聚性有利于提高模块的独立性 ( B)

3、降低耦合性提高内聚性有利于提高模块的独立性 ( C)耦合性是指一个模块内部各个元素间彼此结合的紧密程度 ( D)内聚性是指模块间互相连接的紧密程度 8 数据库应用系统中的核心问题是 ( )。 ( A)数据库设计 ( B)数据库系统设计 ( C)数据库维护 ( D)数据库管理员培训 9 有两个关系 R, S如下: 由关系 R通过运算得到关系 S,则所使用的运算为( )。 ( A)选择 ( B)投影 ( C)插入 ( D)连接 10 将 E-R图转换为关系模式时,实体和联系都可以表示为 ( )。 ( A)属性 ( B)键 ( C)关系 ( D)域 11 以下叙述中错误的是 ( )。 ( A)使用

4、3种基本结构构成的程序只能解决简单问题 ( B)结构化程序由顺序、分支、循环 3种基本结构组成 ( C) C语言是一种结构化程序设计语言 ( D)结构化程序设计提倡模块化的设计方法 12 以下 4个程序中,完全正 确的是 ( )。 ( A) #include main(); * programming * pfinff(“programming! n“); ( B) #include, main() *programming* pfinff(“programming! n“); ( C) #include main() * *programming* * pfinff(“programming

5、! n“); ( D) #include main() *programming* pfinff(“programming! n“); 13 C源程序中不能表示的数制是 ( )。 ( A)十六进制 ( B)八进制 ( C)十进制 ( D)二进制 14 以下选项中,能用作用户标识符的是 ( )。 ( A) _0_ ( B) 8_8 ( C) void ( D) unsigned 15 若有定义语句: int x=10;,则表达式 x-=x+x的值为 ( )。 ( A) 0 ( B) -20 ( C) -10 ( D) 10 16 有以下程序: #include main() int a=1, b

6、=0; pfinff(“ d, “, b=a+B); pfinff(“ d n“, a=2*B); 程序运行后的输出结果是 ( )。 ( A) 1, 2 ( B) 1, 0 ( C) 3, 2 ( D) 0, 0 17 有以下程序: #include main() int a1, a2; char c1, c2; scanf(“ d c d c“, &a1, &c1, &a2, &c2); pfinff(“ d, c, d, c“, a1, c1, a2, c2); 若想通过键盘输入,使得 a1的值为 12, a2的值为 34, c1的值为字符 a, c2的值为字符 b,程序输出结果是: 12

7、, a, 34, b则正确的输入格式是 ( )。 (以下一代表空格, 代表回车 ) ( A) ( B) ( C) 12, a, 34, b ( D) 12a34b 18 若变量已正确定义,在 if(w)printf(“ d n“, k);中,以下不可替代 W的是( )。 ( A) a=0 【 2】 ) *found* retum9-(ch- 【 3】 ); retum ch; main() char c1, c2; printf(“ nThe result: n“); c1=2; c2=fun(c1); printf(“c1= c2= c n“, c1, c2); c1=8; c2=fun(c

8、1); printf(“c1= c c2= c n“, c1, c2); c1=a; c2=fun(c1); printf(“c1= c c2: c n“, c1, c2); 三、程序修改题 42 下列给定程序中函数 fun的功能是:将 p所指字符串中的所有字符复制到 b中,要求每复制三个字符之后插入一个空格。 例如,若给 a输入字符串: ABCDEFGKHIJK,调用函数后,字符数组 b中的内容为: ABC DEF GHI JK。 请改正程序中的错误,使它能得出正确结果。 注意:部分源程序在文件 MODI1 C中,不得增行或删行,也不得更改程序的结构。 #include void fun(c

9、har*p, char*b) int i, k=0; while(*p) i=1; while(i =3&*p) *found* bk=p; k+; P+; i+; if(*p) *found* bk+=“ “; bk= 0; main() char a80, bE 80; printf(“Enter a string: “); gets (A); printf(“The original string: “); puts (A); fun(a, b); printf(“ nThe string after imert space: “); puts(b); printf(“ n n“); 四

10、、程序设计题 43 N名学生的成绩已在主函数中放入一个带头节点的链表结构中。 h指向链表的头节点。请编写函数 fun,其功能是:求出平均分,并由函数值返回。 例如,若学生的成绩是: 85 76 69 85 91 72 64 87,则平均分应当是: 78 625。 注意:部分源程序在文件 PROG1 C中。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的 花括号中填入你编写的若干语句。 #include #include #define N 8 struct slist double s; struct slist *next; ; typedef struct slist

11、STREC; double fun(STREC * h) STREC * creat(double*s) STREC*h, *p, *q; int i=0; h=p=(STREC *)malloc(sized(STREC); p- s=0; while(i N) q=(STREC*)malloc(sized(STREC); q- s=si; i+; p- next=q; p=q; p- next=0: return h; outlist(STREC * h) STREC*p; p=h- next; printf(“head“); do printf(“- 4 1f“, P- s); p=p-

12、next; whilepP!=0); printf(“ n n“); main() double sN=85, 76, 69, 85, 91, 72, 64, 87, ave; void NONO(); STREC * h; h=creat(s); outlist(h); ave=fun(h); printf(“ave= 6 3f n“, ave); NONO(); void NONO() *本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 * FILE * in, * out; int i, j; double sN, ave; STREC*h: in=fopen(“in dat

13、“, “t“); out=fopen(“out dat“, “w“); for(i=0; i 10; i+) for(j=0; j N; J+)fscanf(in, “ 1f, “, &sj); h=ereat(s); ave=fun(h); fprintf(out, “ 6 31f n“, ave); fclose(in); fclose(out); 2012年 9月国家二级( C语言)机试真题试卷答案与解析 一、选择题 1 【正确答案】 D 【试题解析】 栈是先进后出的线性表,所以 A)错误;队列是先进先出的线性表,所以 B)错误;循环队列是线性结构的 线性表,所以 C)错误。 2 【正确

14、答案】 A 【试题解析】 栈支持子程序调用。栈是一种只能在一端进行插入或删除的线性表。在主程序调用子函数时要首先保存主程序当前的状态,然后转去执行子程序,最终把子程序的执行结果返回到主程序中调用子程序的位置,继续向下执行。这种调用符合栈的特点,因此本题的答案为 A)。 3 【正确答案】 C 【试题解析】 根据二叉树的基本性质 3:在任意一棵二叉树中,度为 0的叶子节点总是比度为 2的节点多一个,所以本题中是 5+1=6个。 4 【正确答案】 D 【试题解析】 冒泡排序、简单插入排序与简单选择排序法在最坏情况下均需要比较 n(n-1) 2次,而堆排序在最坏情况下需要比较的次数是 nlog2n。

15、5 【正确答案】 C 【试题解析】 编译软件、操作系统、汇编程序都属于系统软件,只有 C)教务管理系统才是应用软件。 6 【正确答案】 A 【试题解析】 软件测试是为了发现错误而执行程序的过程,并不涉及改正错误,所以选项 A)错误。程序调试的基本步骤有:错误定位;修改设计和代码,以排除错误;进行回归测试,防止引进新的错误。程序调试通常称为 Debug,即排错。软 件测试的基本准则有:所有测试都应追溯到需求、严格执行测试计划,排除测试的随意性、充分注意测试中的群集现象、程序员应避免检查自己的程序、穷举测试不可能实施、妥善保存测试计划等文件。 7 【正确答案】 B 【试题解析】 模块独立性是指每个

16、模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。一般较优秀的软件设计,应尽量做到高内聚、低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性,所以 A)错误, B)正确。耦合性是模块间互相连接的紧密程度的度量而内聚性是指一个模块 内部各个元素间彼此结合的紧密程度,所以 C)与 D)错误。 8 【正确答案】 A 【试题解析】 数据库应用系统中的核心问题是数据库的设计。 9 【正确答案】 B 【试题解析】 投影运算是指对于关系内的域指定可引入新的运算。本题中 s是在原有关系 R的内部进行的,是由 R中原有的那些域的列所组成的关系。所以选择B)。 10 【

17、正确答案】 C 【试题解析】 从 E-R图到关系模式的转换是比较直接的,实体与联系都可以表示成关系, E-R图中属性也可以转换成关系的属性。 11 【正确答案】 A 【试题解析】 使用顺序、选择 (分支 )、循环 3种基本结构构成的程序可以解决所有问题,而不只是解决简单问题,所以 A)错误。 12 【正确答案】 B 【试题解析】 C语言中注释语句的注释方法是: *注释内容 *或注释一行。所以 A)与 C)错误, D)选项中预编译命令 include前丢掉了 “#”号。所以选择 B)。 13 【正确答案】 D 【试题解析】 在 C语言中整型常量可以用十进制、八进制和十六进制等形式表示,但不包括二

18、进制,所以选择 D)。 14 【正确答案】 A 【试题解析】 C语言中标识符由字母、下划线、数字组成,且开头必须是字母或下划线。另外,关键字不能作为标识符。 B)中以数字 8开头,所以错误。 C)与 D)中用的是关键字 void与 unsigned,所以错误。 15 【正确答案】 C 【试题解析】 算术运算符 +的优先级高于 -=,且 -=的结合方向为自右向左,所以表达式 x-=x+x可以表示成 x=x-(x+x)=10-(10+10)=-10,选择 C)。 16 【正确答案】 A 【试题解析】 首先打印 b=a+b=1+0=1的值 1,此时已给 b赋值为 1。 然后打印a=2*b=2*1=2

19、的值 2。所以结果是 1, 2。 17 【正确答案】 D 【试题解析】 在输入多个数据时,若格式控制串中无非格式字符,则认为所有输入的字符均为有效字符。所以应按选项 D)的顺序输入数据。 18 【正确答案】 A 【试题解析】 选项 A)是非法的表达式, C语言中没有 s; p=p- next; retum ave N; 【试题解析】 本题考查:链表的操作,对链表的主要操作有以下几种:建立链表、结构的查找与输出、插入一个结点、删除一个 结点。 题目要求求链表中数据域的平均值,应首先使用循环语句遍历链表,求各结点数据域中数值的和,再对和求平均分。遍历链表时应定义一个指向结点的指针 p,因为 “头结点 ”中没有数值,所以程序中让 p直接指向 “头结点 ”的下一个结点,使用语句 STREC*p=h- next。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1