1、国家二级( C语言)笔试模拟试卷 56及答案与解析 1 已知一棵二叉树前序遍历和中序遍历分别为 ABDEGCFH和 DBGEACHF,则该二叉树的后序遍历为 ( A) GEDHFBCA ( B) DGEBHFCA ( C) ABCDEFGH ( D) ACBFEDHG 2 树是结点的集合,它的根结点数目是 ( A)有且只有 1 ( B) 1或多于 1 ( C) 0或 1 ( D)至少 2 3 如果进栈序列为 e1, e2, e3, e4,则可能的出栈序列是 ( A) e3, e1, e4, e2 ( B) e2, e4, e3, e1 ( C) e3, e4, e1, e2 ( D)任意顺序
2、4 在设计程序时,应采纳的原则之一是 ( A)不限制 goto语句的使用 ( B)减少或取消注解行 ( C)程序越短越好 ( D)程序结构应有助于读者理解 5 程序设计语言的基本成分是数据成分、运算成分、控制成分和 ( A)对象成分 ( B)变量成分 ( C)语句成分 ( D)传输成分 6 下列叙述中,不属于软件需求规格说明书的作用的是 ( A)便于用户、开发人员进行理解和交流 ( B)反映出用户问题的结构,可以作为软件开发工作的基础和依据 ( C)作为确认 测试和验收的依据 ( D)便于开发人员进行需求分析 7 下列不属于软件工程的 3个要素的是 ( A)工具 ( B)过程 ( C)方法 (
3、 D)环境 8 单个用户使用的数据视图的描述称为 ( A)外模式 ( B)概念模式 ( C)内模式 ( D)存储模式 9 将 E-R图转换到关系模式时,实体与联系都可以表示成 ( A)属性 ( B)关系 ( C)键 ( D)域 10 SQL语言又称为 ( A)结构化定义语言 ( B)结构化控制语言 ( C)结构化查询语言 ( D)结构化操纵语言 11 以下选 项中合法的用户标识符是 ( A) long ( B) _2Test ( C) 3Dmax ( D) A.dat 12 下列合法的整型常量的表示是 ( A) 98 ( B) oXde ( C) 32767 ( D) 0xDG 13 下列选项
4、可以正确表示字符型常量的是 ( A) r ( B) a ( C) 897 ( D) 296 14 若有定义: int a=7; float x=2.5, y=4.7;则表达式 x+a%3, (int)(x+y)%2/4的值是 ( A) 2.5 ( B) 2.75 ( C) 3.5 ( D) 0 15 下述对 C语言字符数组的描述中错误的是 ( A)字符数组的下标从 0开始 ( B)字符数组中的字符串可以进行整体输入 /输出 ( C)可以在赋值语句中通过赋值运算符 “=”对字符数组整体赋值 ( D)字符数组可以存放字符串 16 若有函数内部说明: int a34;则数组 a中各元素 ( A)可在
5、程序的运行阶段得到初值 0 ( B)可在程序的编译阶段得到初值 0 ( C)不能得到确定的初值 ( D)可在程序的编译或运行阶段得到初值 0 17 调用 gets和 puts函数时,必须包含的头文件是 ( A) stdio.h ( B) stdlib.h ( C) define ( D)以上都不对 18 以下叙述中正确的是 ( A)构成 C程序的基本单位是函数 ( B)可以在一个函数中定义另一个函数 ( C) main()函数必须放在其他函数之前 ( D) C函数定义的格式是 K 【 】; while(ch getchar()!=#) fputc(【 】 ); fclose(fp); 63 以
6、下程序的功能是计算 。补足所缺语句。 long f(int n) int i; long s; s【 】; for(i=1; i n; i+)s=【 】; return s; main() long s; int k,n; scanf(“%d“, k =n, k+)s s+【 】; printf(“%1dn“, s); 国家二级( C语言)笔试模拟试卷 56答案与解析 1 【正确答案】 B 【试题解析】 利用前序和中序遍历的方法可以确定二叉树的结构,具体步骤如下: 前序遍历的第一个结点 A为树的根结点; 中序遍历中 A的左边的结点为A的左子树, A右边的结点为 A的右子树; 再分别对 A的左右
7、子树进行上述两步处理,直到每个结点都找到正确的位置。 2 【正确答案】 C 【试题解析】 树是 N(N0)个结点的有限集合,当 N=0时称为空树,对于空树没有根结点,即根结点的个数为 0,对于非空树有且只有一个根结点,所以树的根结点数 目为 0或 1。 3 【正确答案】 B 【试题解析】 由栈 “后进先出 ”的特点可知: A)中 e1不可能比 e2先出, C)中 e3不可能比 e4先出,且 e1不可能比 e2先出, D)中栈是先进后出的,所以不可能是任意顺序。 B)中出栈过程如图所示:4 【正确答案】 D 【试题解析】 滥用 goto语句将使程序流程无规律,可读性差,因此 A)不选;注解行有利
8、于对程序的理解,不应减少或取消, B)也不选;程序的长短要依照实际情况而论,而不是越短越好, C)也不选。 5 【正确答案】 D 【试题解析】 程序设计 语言是用于书写计算机程序的语言,其基本成分有以下 4种,数据成分:用来描述程序中的数据。运算成分:描述程序中所需的运算。控制成分:用来构造程序的逻辑控制结构。传输成分:定义数据传输成分,如输入输出语言。 6 【正确答案】 D 【试题解析】 软件需求规格说明书 (SRS, Soft ware Requirement Specification)是需求分析阶段的最后成果,是软件开发中的重要文档之一。它有以下几个方面的作用: 便于用户、开发人员进行
9、理解和交流; 反映出用户问题的结构,可以作为软件开发工作的基础 和依据; 作为确认测试和验收的依据。 7 【正确答案】 D 【试题解析】 软件工程包括 3个要素,即方法、工具和过程。方法是完成软件工程项目的技术手段;工具支持软件的开发、管理、文档生成;过程支持软件开发的各个环节的控制、管理。 8 【正确答案】 A 【试题解析】 选项 A)正确,外模式是用户的数据视图,也就是用户所见到的数据模式;选项 B)不正确,全局数据视图的描述称为概念模式,即数据库中全部数据的整体逻辑结构的描述;选项 C)不正确,物理存储数据视图的描述称为内模式,即数据库在物理存储方面的 描述;选项 D)不正确,存储模式即
10、为内模式。 9 【正确答案】 B 【试题解析】 关系数据库逻辑设计的主要工作是将 E-R图转换成指定 RDBMS中的关系模式。首先,从 E-R图到关系模式的转换是比较直接的,实体与联系都可以表示成关系, E-R图中属性也可以转换成关系的属性。实体集也可以转换成关系。 10 【正确答案】 C 【试题解析】 结构化查询语言 (Structured Query Language,简称 SQL)是集数据查询、数据定义、数据操纵和数据控制功能于一体的数据库语言。 11 【正 确答案】 B 【试题解析】 C语言规定,标识符必须以字母和下划线开头,可包含大小写字母,数字,下划线。如: a, b, max,
11、Value, _DataType, _,Min_Time_Out, s08, T_ 7lA, _8。 12 【正确答案】 C 【试题解析】 整型常量可以用 +进制、八进制和 +六进制形式来表示。 +进制基本常量用一串连续的数字来表示,八进制数用数字 0开头, +六进制数用数字 0和字母 x或 X开头,各个进制都需用各自合法的字符数字表示。选项 A)中 9是不合法的。选项 B)+六进制数字应该用数字零 和字母 X(或 x)开头,选项 D)中 G不合法。 13 【正确答案】 A 【试题解析】 C语言中,一个字符常量代表 ASCII字符集中的一个字符,在程序中用单引号括起来作为字符常量,字符常量的范
12、围是 0 127。由于字符常量用单引号括起来,所以选项 B), C)错误,选项 D)超过了字符常量的表示范围。 14 【正确答案】 A 【试题解析】 x+y的值为实型 7.200000,经强制类型转化成整型 7。 a%3的值为1, 1*7的值为 7, 7%2值为 1。 1/4的值为 0,而非 0.25,因而为两个整数相除的结 果为整数,舍去小数部分。与实型 x相加,最终得结果为 2.500000。 15 【正确答案】 C 【试题解析】 在 C语言中,通过使用库函数允许对字符数组进行整体输入 /输出。 C语言不允许通过赋值运算符对字符数组整体进行赋值,对字符串使用符号:只能在说明字符数组并进行初
13、始化的时候进行。字符串结束标志为 0,计算字符串的实际长度时。不计入串长。 16 【正确答案】 C 【试题解析】 我们可以把二维数组的常量表达式看做是矩阵或者表格的行数与列数,要注意每个元素有两个下标,第一个是方括号中的下标代 表行号,称行下标;第二个是方括号中的下标代表列号。行下标和列下标总是从 0开始的,二维数组在不赋初值时,不能得到确定。 17 【正确答案】 A 【试题解析】 gets函数和 puts函数是库函数,必须包含的头文件是 stdio.h。 18 【正确答案】 A 【试题解析】 本题考查 C语言的综合基础知识。构成 C程序的基本单位是函数,一个 C程序总是从 main函数开始执
14、行,而不论 main函数在整个程序中的位置如何。 C语言的函数定义都是互相平行、独立的,在定义函数时,一个函数内不能定义另一个函数。 C函 数定义的一般格式有两种:传统格式和现代格式。传统格式也称 K&R格式,是早期编译系统使用的格式;现代格式又称 ANSI格式,是现代编译系统使用的格式。 19 【正确答案】 A 【试题解析】 该题目的关键是要搞清楚该程序执行了哪几条语句。由于 x的值等于 1,所以 switch结构中,程序从 casel后面的语句开始执行,又因为 case 1后面的语句没有以 break结束,所以程序要继续往下执行 Case2后面的语句。所以,该程序共执行了这三条语句: a+
15、; a+; b+;因此,变量 a和 b最后的值应该为 2和 1。 20 【正确答案】 B 【试题解析】 本题考查函数返回值的知识。函数返回值是通过函数中的 return语句获得, return语句中的表达式的值就是所求函数的值。此表达式的值必须与函数首部所说明的类型一致。若类型不一致,则以函数值的类型为准,由系统进行转换。 21 【正确答案】 C 22 【正确答案】 C 23 【正确答案】 B 24 【正确答案】 B 25 【正确答案】 B 26 【正确答案】 A 27 【正确答案】 D 28 【正确答案】 A 29 【正确答案】 C 30 【正确答案】 D 31 【正确答案】 C 32 【正
16、确答案】 D 33 【正确答案】 C 34 【正确答案】 A 35 【正确答案】 D 36 【正确答案】 B 37 【正确答案】 D 38 【正确答案】 C 39 【正确答案】 B 40 【正确答案】 C 41 【正确答案】 B 42 【正确答案】 D 43 【正确答案】 A 44 【正确答案】 D 45 【正确答案】 C 46 【正确答案】 B 47 【正确答案】 A 48 【正确答案】 B 49 【正确答案】 B 50 【正确答案】 D 51 【正确答案】 链式存储和顺序存储 52 【正确答案】 功能性 53 【正确答案】 软件外部功能 54 【正确答案】 DEBFCA 55 【正确答案】 关系运算 56 【正确答案】 强制类型转换 57 【正确答案】 function running result is: 9.0 58 【正确答案】 sj+ si 59 【正确答案】 &s1 &s2 60 【正确答案】 t le-5; t=t/n; 61 【正确答案】 99, 2, 0, O, 3, 4, 5, 0, 6, 7, 62 【正确答案】 fname, “#“ exit(0) ch, fp 63 【正确答案】 1 s*i 0 f(k)