3986.net
小网站 大容量 大智慧
当前位置:首页 >> 小学作文 >>

2009年全国计算机等级考试二级C++笔试试题(3)-中大网校


中大网校引领成功职业人生

2009 年全国计算机等级考试二级 C++笔试试题(3)
总分:100 分
每小题 2 分,共 70 分 (1)设有二元关系 R 和三元关系 S,下列运算中合法的是 ( A. R∩S B. R∪S C. R-S D. R× S ) 。

及格:60 分

考试时间:90 分

(2)以下对 C/C++语言函数的描述中,正确的是( ) 。 A. C 程序由一个或一个以上的函数组成 B. C 函数既可以嵌套定义又可以递归调用 C. 函数必须有返回值,否则不能使用函数 D. C++程序中调用关系的所有函数必须放在同一个程序文件中

(3)下列程序的输出结果是( A. a=2,b=1 B. a=1,b=1 C. a=1,b=O D. a=2,b=2

) 。

(4)下列叙述中正确的是( ) 。 A. 软件就是程序清单 B. 软件就是存放在计算机中的文件 C. 软件应包括程序清单以及运行结果 D. 软件包括程序和文档

(5)下列叙述中正确的是( ) 。 A. 在模块化程序设计中,一个模块应尽量多的包括与其他模块联系的信息 B. 在自顶向下、逐步细化的设计过程中,首先应设计解决问题的每一个细节 C. 在模块化程序设计中,一个模块内部的控制结构也要符合结构化原则
中大网校
“十佳网络教育机构”、 “十佳职业培训机构” 网址:www.wangxiao.cn

中大网校引领成功职业人生

D. 在程序设计过程中,不能同时采用结构化程序设计方法与模块化程序设计方法

(6)若已定义 int a[]={1,2,3,4,5,6,7,8,9,10),*p=a,i=5; 则对数组元素的不正确的引用是( A. a[p-a] B. *(&a[i]) C. p[i] D. *(*(a+i))

) 。

(7)C++语言中在 C 语言的基础上增加的特性不包括 ( A. 结构 B. 引用 C. 类和对象 D. 静态成员函数

) 。

(8)下面的描述中错误的是( ) 。 A. 调用函数时,实参可以是表达式 B. 调用函数时,实参与形参可以共用内存单元 C. 调用函数时,将为形参分配内存单元 D. 调用函数时,实参与形参的类型必须一致

(9)下列不是循环语句的是( A. while 语句 B. do?while 语句 C. for 语句 D. if?else 语句

) 。

(10)已知大写字母 A 的 ASCII 码值是 65,小写字母 a 的 ASCII 码是 97,则用八进制表示的 字符常量"\101"是( ) 。 A. 字符 A B. 字符 a C. 字符 e D. 非法的常量

(11)数据结构分为( ) 。 A. 表、队列、堆栈和树 B. 逻辑结构 C. 存储结构 D. 逻辑结构与存储结构
中大网校
“十佳网络教育机构”、 “十佳职业培训机构” 网址:www.wangxiao.cn

中大网校引领成功职业人生

(12)要通过函数实现一种不太复杂的功能,并且要求加快执行速度,则应该选用( A. 重载函数 B. 内联函数 C. 静态函数 D. 虚函数

) 。

(13)以下正确的描述为( ) 。 A. 每个 C++语言程序必须在开头用预处理命令: B. 预处理命令必须位于 C++源程序的首部 C. 在 C++语言中预处理命令都以“#”开头 D. C++语言的预处理命令只能实现宏定义和条件编译的功能

(14)下列数据结构中能使用对分查找的是( A. 二叉链表 B. 带链的栈 C. 有序线性链表 D. 有序顺序表

) 。

(15)有以下程序: A. 9,2 B. 10,2 C. 9,1 D. 10,1

执行后输出结果是 (

) 。

(16)执行下列语句后,输出结果为 steven 的是( A. strlen(str) B. sizeof(str) C. strlen(str+1) D. sizeof(str-1)

) 。char*str="steven"; cout.write(str);

(17)为了培养良好的程序设计风格,下列描述中正确的是( A. 程序应简单、清晰、可读性好 B. 符号名的命名只要符合语法 C. 充分考虑程序的执行效率
中大网校
“十佳网络教育机构”、 “十佳职业培训机构”

) 。

网址:www.wangxiao.cn

中大网校引领成功职业人生

D. 程序的注释可有可无

(18)关于常成员函数,下列说法中错误的是( ) 。 A. 常成员函数无法更新对象的数据成员,但可以访问其他类的公用数据成员或全局变量 B. 常成员函数无法更新对象的数据成员,但是可以更新该对象的常数据成员 C. 常成员函数既可以被常对象调用,也可以被一般对象调用 D. 常成员函数不仅要在声明中用到 const 修饰符,在定义时也必须使用 const 修饰符

(19)下列程序执行后的输出结果是( A. hello B. hel C. hlo D. hlm

) 。

(20)在软件生存周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是 ( ) 。 A. 概要设计 B. 需求分析 C. 可行性分析 D. 详细设计

(21)执行下列程序的结果是( A. 9.000000 B. 6.000000 C. 1.000000 D. 程序有错误
中大网校

) 。

“十佳网络教育机构”、 “十佳职业培训机构”

网址:www.wangxiao.cn

中大网校引领成功职业人生

(22)数据结构分为逻辑结构和存储结构,下列数据结构中不属于存储结构的是( A. 线性链表 B. 二叉链表 C. 栈与队列 D. 循环队列

) 。

(23)已知一个运行正常的的程序中有下面两个语句:int *p1,*p2=&a;p1=b;由此可知,变 量 a 和 b 的类型分别是( ) 。 A. int 和 int B. int *和 int C. int 和 int * D. int *和 int *

(24)有以下程序: ( ) 。 A. 1,1,2 B. 2,2,1 C. 2,2,2 D. 2,2,3

执行后输出结果是

(25)在模块化程序设计中,按功能划分模块的原则是( ) 。 A. 各模块的功能尽量单一,且各模块之间的联系尽量的少 B. 各模块的功能尽量单一,且各模块之间的联系尽量紧密 C. 各模块应包括尽量多的功能 D. 各模块应包括尽量多的输入输出操作

(26)以下非法的赋值语句是 ( A. n=(i=2,++i); B. j++ C. ++(i+1) D. x=j>0;

) 。

(27)下列数据结构中具有记忆作用的是(
中大网校
“十佳网络教育机构”、 “十佳职业培训机构”

) 。

网址:www.wangxiao.cn

中大网校引领成功职业人生

A. B. C. D.

栈 队列 有序表 二叉树

(28)下列数据结构中,插入时不需要移动其他元素的是( A. 有序线性链表 B. 无序线性链表 C. 栈和队列 D. 以上三种都是

) 。

(29)在某类的公共部分有声明 string operator++();和 string operator++(int);则说明 ( A. string operator++();是前置自增运算符声明 B. string operator++();是后置自增运算符声明 C. string operator++(int);是前置自增运算符声明 D. 两条语句无区别

) 。

(30)对下列二又树进行后序遍历的结果是( A. ZBTYCPXA B. ATBZXCYP C. ZBTACYXP D. ATBZXCPY

) 。

(31)在下列关系运算中,能不改变关系中属性个数且减少元组个数的是( A. 并 B. 差 C. 投影 D. 交

) 。

(32)如果一个类含有一个以上的纯虚函数,则称该类为(
中大网校
“十佳网络教育机构”、 “十佳职业培训机构”

) 。

网址:www.wangxiao.cn

中大网校引领成功职业人生

A. B. C. D.

虚基类 抽象类 派生类 以上都不对

(33)数据的独立性是数据库技术的重要特点之一。所谓数据独立性是指( A. 数据与程序独立存放 B. 不同的数据被存放在不同的文件中 C. 不同的数据只能被对应的应用程序所使用 D. 以上三种说法都不对

) 。

(34)以下程序的输出结果是( A. 1234 B. 123 C. 12 D. 1

) 。

(35)将 7 个数据进行插入排序,在最坏情况下需要比较的次数是( A. 42 B. 6 C. 7 D. 21

) 。

每空 2 分,共 30 分 (1)在 C++中的实型数据分为三种类型,即单精度 float、双精度 double 和_______。

(2)





















_______



中大网校

“十佳网络教育机构”、 “十佳职业培训机构”

网址:www.wangxiao.cn

中大网校引领成功职业人生

(3)下列程序如果去掉 for 循环外围的大括号对,则会出现编译错误。错误原因是_______。

(4)在测试时,完全不考虑程序的内部结构和内部特征的测试方法称为_______测试方法。

中大网校

“十佳网络教育机构”、 “十佳职业培训机构”

网址:www.wangxiao.cn

中大网校引领成功职业人生

(5)下列程序的输出结果是_______。

(6)执行语句序列:char strl[10]="ABCD",str2[10]="XYZxyz";for(int i=0;strl[i]=str2[i];i++);后, 数组 strl 中的字符串是 XYZxyz,数组 str2 中的字符串是_______。

(7)根据下列程序的执行结果,可以断定划线部分的修饰符应为 _______。执行结果:

中大网校

“十佳网络教育机构”、 “十佳职业培训机构”

网址:www.wangxiao.cn

中大网校引领成功职业人生

(8)数据结构分为逻辑结构与存储结构,循环队列属于_______。

(9)





















_______



中大网校

“十佳网络教育机构”、 “十佳职业培训机构”

网址:www.wangxiao.cn

中大网校引领成功职业人生

(10)下列程序的执行结果是_______。

(11)衡量模块独立性的两个重要度量标准是耦合性和内聚性。其中 间互相连接的紧密程度。

_______用于度量模块

(12)在深度为 4 的满二叉树中,叶子结点的个数为_______。

(13)在关系运算中,_______运算是在指定的关系中选取所有满足给定条件的元组,构成一 个新的关系,而这个新的关系是原关系的一个子集。

中大网校

“十佳网络教育机构”、 “十佳职业培训机构”

网址:www.wangxiao.cn

中大网校引领成功职业人生

(14)在面向对象方法中,允许作用于某个对象上的操作称为_______。

答案和解析 每小题 2 分,共 70 分 (1) :D 在并(∪)、交(∩)、差(—)三种运算中,都要求参加运算的两个关系具有相同的属性名表,其 运算结果也与它们具有相同的属性名。即它们的表框架是相同的。由此可以看出,本题给出 的两个关系 R 与 S 格框架足不同的(R 是二元关系,S 三元关系),因此,它们不能作并(∪)、 交(∩)、差(—)这三种运算。而两个不同框架的关系是可以作笛卡尔积(×)运算的。(2) :A C 语言的基本单位是函数,本题考察的就是函数的基本涵义及其使用。 (3) :A 本题主要考查 switch 语句中,break 语句的作用。每个 case 语句后面如果没有 break 语句,则 程序的执行流程将发生变化,即顺序执行各个 case 语句。这种情况一般不符合程序员的设 计思路,但也可以用这种特性完成特殊控制。 (4) :D 软件应包括程序和文档。(5) :C 在模块化设计中,要求将一个大程序按人们能理解的大小规模进行分解,使每个模块都 能 易于理解,各模块的功能尽量单一,各模块之间的联系尽量的少。因此,选项 A 中的说法 是错误的。 自顶向下、逐步细化的设计过程,主要包括两个方面:一是将一个复杂问题的 解法分解和细化成由若 干模块组成的层次结构;二是将一个模块的功能逐步分解细化为一 系列的处理步骤,直到某种程序 设计语言的语句或某种机器指令。即在自顶向下、逐步细 化的设计过程中。是按照先全局后局部、先 整体后细节、先抽象后具体的方法设计程序。 因此,选项 B 中的说法也是错误的。 在模块化程序设计中,每一个模块完成一个功能,相 对独立,要求一个模块内部的控制结构也要符合 结构化原则。因此,选项 C 中的说法是正 确的。由于在模块化程序设计中,一个模块内部的控制结构也要符合结构化原则,因此,在 程序设计过程中,结构化程序设计方法与模块化程序设计方法是要同时采用的。因此,选项 D 中的说法是错误的。 (6) :D 数组和指针的关系非常密切,因为数组名称单独使用是表示数组的首地址 c 故可用的 表示 可能是 a[i]。p[i],*(p+i),同样,&a[i]表示地址,因此*&a[i]等同于 a[i]。本题答 案为 D。(7) :A 本题很简单, 不过考生要注意引用是 C++的新特性。 只有结构是 C 语言就出现的特性。(8) :B 函数调用时,如果实参是表达式,则表达式的结果传人形参。形参和实参之间进行数 据的 拷贝, 当然需要为形参临时分配内存单元, 函数调用完成之后, 形参分配的单元被系统收回。 因此选项 B 为正确答案。(9) :D 本题很简单,选项 D 是条件语句,不是循环语句。 (10) :A 首先将八进制数转换成十进制数,则发现是 65,故答案为 A。(11) :D 考查知识点,直接选择 D。 (12) :B 内联 inline 函数就是取代宏定义的,在编译时展开,插人到相应的位置,从而减少了系统开 销,加快了执行速度。虚函数则是为了取消二义性现象,静态函数则是一个类所有对象的共 享函数。 (13) :C 本题中,A 和 B 的描述是一样的,故可以排除。在 C++中,建议用 inline 函数取代 C 语言 中的宏定义功能。 (14) :D 对分查找只能适用于顺序存储的有序线性表。(15) :B 本题还是考察前置和后置自增与自减运算符的使用方法。在 i 输出时,还是 10,输出 之后
中大网校
“十佳网络教育机构”、 “十佳职业培训机构” 网址:www.wangxiao.cn

中大网校引领成功职业人生

才变成 9,而++j 则是先加一在将新值输出。(16) :A 本题考察在 C++中,字符串的存放方式,以及不同的字符串函数的作用。其中,strlen 是专 门用于求字符串长度的,其自动去掉字符数组后面的那个'/0',而 sizeof 后面求的则是 str 指 针,指针在目前的 32 位机器中是固定大小的,其值与字符串的长度是没有关系的。故可以 排除 B 和 D。而选项 C 则将'/0'多考虑了一次。 (17) :A 良好的程序设计风格主要包括设计的风格、 语言运用的风格、 程序文本的风格和输入输出的 风格。 设计的风格主要体现在三个方面: 结构要清晰; 思路要清晰; 在设计程序时应遵循 “简 短朴实”的原则,切忌卖弄所谓的“技巧” 。语言运用的风格主要体现在两个方面:选择合 适的程序设计语言以及不要滥用语言中的某些特色。特别要注意,尽量不用灵活性大、不易 理解的语句成分。程序文本的风格主要体现在四个方面:注意程序文本的易渎性;符号要规 范化:在程序中加必要的注释;在程序中要合理地使用分隔符等。输入输出的风格主要体现 在三个方面:对输出的数据应该加上必要的说明;在需要输入数据时,应该 给出必要的提 示;以适当的方式对输入数据进行检验.以确认其有效性。总之,程序设计的风格应该强调 简单和清晰,程序必须是可以理解的.强调“清晰第一.效率第二” 。由上所述,符号名的 命名不仅要符合语法,而且符号名的命名应具有一定实际含义。以便于对程序功能的理解。 因此,选项 B 中的说法是错误的。由于程序设计的风格强调的是“清晰第一,效率第二” , 而不是效率第一。因此,选项 C 中的说法也是错误的。程序中的注释部分虽然不是程序的 功能,计算机在执行程序时也不会执行它,但不能错误地认为注释是可有可无的部分。在程 序中加入正确的注释能够帮助读者理解程序,注释是提高程序可读性的 重要手段。因此, 选项 D 中的说法也是错误的。 (18) :B 本题考察 const 修饰符的使用规则,只要考生理解了 const 表示“常”的意思就容易举一反 三。根据被修饰内容的不同,const 在修饰数据成员,成员函数和对象时,具有特定的含义。 很明显,常数据成员是不能被修改的,这一点在选项 B 中被破坏,因此可以确定本题答案 为 B,如果考生对其他选项难于区分,同样可以得到正确答案。 (19) :C 本题考察递归调用。分析 func1 可知,当 i=0 时,首先输出 h,然后 i 变为 2,调用 func(2), 则输出 str[2], 应为 1。 分析到此就可以排除选项 A 和 B。 然后调用 funcl(4), 此时输出 str[4], 为 0,故可以选择正确答案为 C。 (20) :B 在需求分析阶段中.要求能准确地确定软件系统必须做什么和必须具备哪些功能。正 确答 案为 B。 (21) :A 本题比较简单, 考查自增运算符的运算规则以及运算符优先级的知识点。 自增运算符的优先 级高于乘法运算符的优先级。 (22) :C 线性链表是线性表的链式存储结构; 二叉链表是二叉树的链式存储结构; 栈与队列都是特殊 的线性表,属于逻辑结构;循环队列是队列的一种存储结构。 (23) :C 本题乍一看让人迷惑,如果找到切入点就可以简单快速的解答本题。观察四个选项可知,变 量 a 和 b 的四种组合分别是四个选项。很明显指针在做值使用时需要加星号修饰,即如*p, 一整数变量的形式。故 b 不可能是 int 型,故可排除 A 和 B。另外需要注意的是变量的初始 化和赋值是不同的。p2 在声明时就指向变量 a,其值为 a 的地址。因此,变量 a 应为 int 型, 故正确答案为 C。 (24) :C 本 题考 查逻辑 表达 式及自 增运 算符的 联合使 用。 考生 要注意 本题里 面隐 藏的 考点: &&和||在左侧表达式为真或假时, 将不再进行该逻辑操作符右侧表达式的运算, 即 j++本身为非零,故 k++不再执行。如对表达式 a&&b&&c,实际执行情况 是当 a 非 O 时,再判断 b,a、b 均非 0。再判断 c。而对表达式 a|| b|| c,若 a 为非 0,不必 判断 b 和 c,结果一定为 1。 (25) :A 在模块化程序设计中.按功能划分模块的原则是:要求各模块的功能尽量单一,且各模块之
中大网校
“十佳网络教育机构”、 “十佳职业培训机构”

网址:www.wangxiao.cn

中大网校引领成功职业人生

间的联系尽量的少。 (26) :C 本题其实是考查各级运算符的优先级的。选项 A 赋值符号右侧为逗号表达式,其取 值为最 后一项表达式的值;选项 B 隐含表示为 j=j+1,这是很常用的一种赋值表达式。选项 D 赋值 符号右侧为逻辑表达式,其值为 1 或 O,可以赋值给变量 x。将选项 C 展开为 i+1=i+1+1, 这是错误的。 (27) :A 栈是按照“先进后出“(FILO-FirstInLastOut)或“后进先出”(LIFO-LastINFirstOut)的原则组 织数据的,因此,栈也被称为“先进后出”表或“后进先出”表。因此,栈具有记忆作用。 (28) :D 在线性链表中插入或删除元素都不需要移动其他元素, 只需改变指针即可; 栈只能在一端插 入或删除元素,也不需要移动其他元素;队列只能在一端插人元素.在另一端删除元素,也 不需 要移动其他元素。 (29) :A 在重载单操作符的过程中,对于像++和--这样的操作符,不易区分属于前置还是后置,因此 C++规定了用一个虚的形参来区分前置和后置。 (30) :A 按照二叉树后序遍历的方法:在访问根结点、遍历左子树与遍历右子树这三者中,首先 遍 历左子树,然后遍历右子树,最后访问根结点;并且,在遍历左、右子树时,仍然先遍历左 子树,然后遍历右子树,最后访问根结点。对本题中的二叉树进行后序遍历的结果应是 ZBTYCPXA。(31) :D 交运算是不改变关系中属性个数的,且减少元组的个数。 (32) :B 纯虚函数一般提供派生类进行继承的参考,是多态性的重要保证,一个具有纯虚函数 的类 称为抽象类,抽象类可以具有其他类的特点.但不能实例化,其主要目的是作为派生类的基 类 存在,处于类层次的高层。 (33) :D 数据独立性是指物理独立性和逻辑独立性。物理独立性是指由于数据的存储结构与 逻辑结 构之间由系统提供映象,使得当数据的存储结构改变时,其逻辑结构可以不变,因此,基于 逻 辑结构的应用程序不必修改。逻辑独立性是指由于数据的局部逻辑结构与总体逻辑结构 之间也由 系统提供映象,使得当总体逻辑结构改变时,其局部逻辑结构可以不变,从而根 据局部逻辑结构编 写的应用程序也可以不必修改。由此可知,选项 A、B 和 C 中的说法都 是错误的。正确答案是 D。 (34) :B 本题考察的是循环次数的判定。有 while 后的逻辑表达式可知,整个循环体需要执行 3 次, 故可直接选定正确答案为 B。 (35) :D 对长度为 n 的线性表进行插入排序,在最坏情况下需要 n(n-1)/2 次比较,现线性表的长度为 7,在最坏情况下需要比较的次数为 7(7-1)/2=21。 每空 2 分,共 30 分 (1) : 【答案】长双精度 long double 【解析】长精度类型一般用于高精度的科学运算。 (2) : 【答案】worker,peasant 【解析】分析本题的 for 循环体内的语句可知,p1 和 p2 将放置最大和最小的字符串,这里 的比较是以第一个字符值为基准的。 (3) : 【答案】a 重定义 【解析】在本题中 for 循环外围的大括号对没有实质含义,仅用于函数的作用域范围。如果 去掉该括号,编译错误就会发生,因为变量 a 出现了重定义错误。 (4) : 【答案】黑盒 【解析】黑盒测试方法只是根据程序功能导出测试用例,完全不考虑程序的内部结构和 内 部特征。(5) : 【答案】4
中大网校
“十佳网络教育机构”、 “十佳职业培训机构”

网址:www.wangxiao.cn

中大网校引领成功职业人生

【解析】 分析本题可知函数功能为计算一个字符串中包含的数字个数。 字符串中包含的数字 有 2008,故输出为 4。 (6) : 【答案】XYZxyz 【解析】注意 for 的循环体为空语句.其第二个表达式为一个赋值语句而不是一个逻 辑表 达式语句。因此,for 循环的作用实际上是将 str2 的字符逐个赋值给 strl 中的对应位置。(7) : 【答案】static 【解析】观察一下输出中对象的构造函数和析构函数的执行次数可以看出,再次进入 时某 对行没有被构造,亦即该对象在 func 执行后没有被销毁,再次进入时则不需要重构,可以 体现 这种功能的标识符只有 static。(8) : 【答案】存储结构 【解析】数据结构分为逻辑结构与存储结构,循环队列属于存储结构。因此,本题的正确答 案为存储结构。 (9) : 【答案】a=1O,this-&gt;a=5 【解析】 本题考察在类的成员函数定义中, 如果出现类的数据成员和成员函数的局部变量同 名的情况下, 如何正确引用合适的变量或数据成员。本题巧妙的采用了 this 指针完成这种标 识。 (10) : 【答案】10 【解析】 本题考查全局变量的使用。 全局变量被系统默认初始化为 0, 故在执行 a=a+sum_a(); 语句时,首先执行 sum_a 函数,将 a 的值改变为 5,该函数的返回值也是 5,故最后 a 的值 被赋值为 10。 (11) : 【答案】耦合性 【解析】衡量模块独立性的两个重要度量标准是耦合性和内聚性。其中耦合性用于 度量模 块间互相连接的紧密程度。 (12) : 【答案】8 【解析】二叉树有一个性质,即在二叉树的第 k 层上,最多有 2(k≥1)个结点。而对于满二 叉树来说,每一层上的结点数都达到最大值.即在满二叉树的第 k 层上有 2 个结点。因此, 在深度为 4 的满二叉树中,所有叶子结点在第 4 层上。即其结点数为: 2<SUP>k-1</SUP>=2<SUP>4-1</SUP>=8。(13) : 【答案】选择 【解析】在关系运算中,选择运算是在指定的关系中选取所有满足给定条件的元组。构成一 个新的关系,而这个新的关系是原关系的一个子集。 (14) : 【答案】方法 【解析】在面向对象方法中,所谓方法是指允许作用于某个对象上的各种操作。因此,允许 作用于某个对象上的操作称为方法。

中大网校

“十佳网络教育机构”、 “十佳职业培训机构”

网址:www.wangxiao.cn


推荐相关:

2013年9月全国计算机等级《二级C++》上机模考试卷...

中大网校引领成功职业人生 2013 年 9 月全国计算机等级二级 C++》上机模考试卷(6) 总分:100 分一、选择题(每小题 1 分,共 40 分) (1)将 E-R 图转换...

网站首页 | 网站地图
3986 3986.net
文档资料库内容来自网络,如有侵犯请联系客服。zhit325@qq.com