1、2010年 9月国家二级( C+)笔试真题试卷及答案与解析 1 下列叙述中正确的是 ( A)线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的 ( B)线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构 ( C)线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构 ( D)上述三种说法都不对 2 下列叙述中正确的是 ( A)在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化 ( B)在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化 ( C)在栈中,栈底指针不变,栈中元素 随栈顶指针的变化而动态变化 ( D)上述三种说法都不对 3 软件测试的目的是 ( A)评估软
2、件可靠性 ( B)发现并改正程序中的错误 ( C)改正程序中的错误 ( D)发现程序中的错误 4 下面描述中,不属于软件危机表现的是 ( A)软件过程不规范 ( B)软件开发生产率低 ( C)软件质量难以控制 ( D)软件成本不断提高 5 软件生命周期是指 ( A)软件产品从提出、实现、使用维护到停止使用退役的过程 ( B)软件从需求分析、设计、实现到测试完成的过程 ( C)软件的开发过程 ( D)软件的 运行维护过程 6 面向对象方法中,继承是指 ( A)一组对象所具有的相似性质 ( B)一个对象具有另一个对象的性质 ( C)备对象之间的共同性质 ( D)类之间共享属性和操作的机制 7 层次
3、型、网状型和关系型数据库划分原则是 ( A)记录长度 ( B)文件的大小 ( C)联系的复杂程度 ( D)数据之间的联系方式 8 一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是 ( A)一对一 ( B)一对多 ( C)多对多 ( D)多对一 9 数据库设 计中反映用户对数据要求的模式是 ( A)内模式 ( B)概念模式 ( C)外模式 ( D)设计模式 10 有三个关系 R、 S和 T如下: 则由关系 R和 S得到关系 T的操作是 ( A)自然连接 ( B)交 ( C)投影 ( D)并 11 下列关于函数参数的叙述中,正确的是 ( A)在函数
4、原型中不必声明形参类型 ( B)函数的实参和形参共享内存空间 ( C)函数形参的生存期与整个程序的运行期相同 ( D)函数的形参在函数被调用时获得初始值 12 下列关于对象初始化的叙述中,正确的是 ( A)定义对象的时候 不能对对象进行初始化 ( B)定义对象之后可以显式地调用构造函数进行初始化 ( C)定义对象时将自动调用构造函数进行初始化 ( D)在一个类中必须显式地定义构造函数实现初始化 13 下列关于基类和派生类关系的叙述中,正确的是 ( A)每个类最多只能有一个直接基类 ( B)派生类中的成员可以访问基类中的任何成员 ( C)基类的构造函数必须在派生类的构造函数体中调用 ( D)派生
5、类除了继承基类的成员,还可以定义新的成员 14 下列关于赋值运算符 “=”重载的叙述中,正确的是 ( A)赋值运算符只能作为类的 成员函数重载 ( B)默认的赋值运算符实现了 “深层复制 ”功能 ( C)重载的赋值运算符函数有两个本类对象作为形参 ( D)如果已经定义了复制 (拷贝 )构造函数,就不能重载赋值运算符 15 下列关于模板的叙述中,正确的是 ( A)如果一个类中存在纯虚函数,这个类就是类模板 ( B)函数模板不能有形式参数表 ( C)类模板是一种参数化类型的类,是类的生成器 ( D)类模板中不能包含构造函数 16 下列关于 C+预定义流对象的叙述中,正确的是 ( A) cin是 C
6、+预定义的标准输入流对象 ( B) cin是 C+预定义的标准输入流类 ( C) cout是 C+预定义的标准输入流对象 ( D) cout是 C+预定义的标准输入流类 17 下列选项中,正确的 C+标识符是 ( A) 6_group ( B) group 6 ( C) age+3 ( D) _group_6 18 下列选项中,正确的 C+表达式是 ( A) counter+3 ( B) element3+ ( C) a+=b ( D) a=b 19 下列循环语句中有语法错误的是 ( A) int i; for(i=1; iT1 sum(T2, T3); double d1, d2; 则下列调
7、用中,错误的是 ( A) sum(d1, d2); ( B) sum(d1, d2); ( C) sum(d1, d2); ( D) sum(d1, d2); 26 有如下语句序列: char str10; cinstr; 当从键盘输入 ”I love this game”时, str中的字符串是 ( A) ”I love this game” ( B) ”I love thi” ( C) ”I love” ( D) ”I” 27 有如下程序: #include #include using std: cout; class Point public: friend double distan
8、ce(const Point int main() Derived d(1, 5); cout using namespace std; class Base int x; public: Base(int b): x(b) virtual void display()coutdisplay(); return 0; 47 一个双目运算符作为类的成员函数重载时,重载函数的参数表中有【 】个参数。 48 派生类中的成员函数可以直接访问基类中的公有成员和【 】成员。 49 如果一个派生类只有一个直接基类,则该类的继承方式称为【 】继承;如果一个派生类同时有多个直接基类,则该类的继承方式称为【 】继
9、承。 2010年 9月国家二级( C+)笔试真题试卷答案与解析 1 【正确答案】 B 【试题解析】 因为链式存储结构的存储空间在逻辑上是连续的,但是在物理上是离散的;而顺序存储结构的存储 空间在逻辑上是连续的,在物理上也是连续的。所以链式存储结构可以将一些零碎的小空间链接起来组成逻辑上连续的空间,因此空间利用率较高;而顺序存储结构是占用磁盘上一片连续的物理空间,小于存储要求的那些空间不能被使用,因此会跳过那些小存储空间,然后寻找满足要求的连续的存储空间,于是空间利用率就变低了。 2 【正确答案】 C 【试题解析】 栈是限定在一端进行插入与删除的线性表。通常用指针 top来表示栈顶的位置,用指针
10、 bottom指向栈底,在栈中,栈是按照先进后出的原则组织数据的,栈顶指针动态反映了栈中元素的 变化情况。 3 【正确答案】 D 4 【正确答案】 A 【试题解析】 本题主要考查了软件危机的表现。在软件的开发和维护过程中,软件危机主要表现在: 软件质量难以保证。 软件的成本不断提高。 软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。总之,软件危机可以归纳为成本、质量、生产率等问题。 5 【正确答案】 A 6 【正确答案】 D 7 【正确答案】 D 8 【正确答案】 C 【试题解析】 一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体 工作人员与实体计算机之间的
11、联系是多对多。 9 【正确答案】 C 10 【正确答案】 A 11 【正确答案】 D 12 【正确答案】 C 【试题解析】 构造函数的作用是在对象被创建的时候对对象进行初始化。构造函数在对象被创建的时候由系统自动调用。故 C项正确。 13 【正确答案】 D 【试题解析】 派生类可以只有一个直接基类,也可以同时有多个直接基类, A错。基类中的私有成员在派生类中是隐藏的,只能在基类内部访问,派生类中的成员不能访问基类中的私有成员, B错。基类的构造函数在派生类 构造函数的成员初始化列表中调用, C错。 D项正确。 14 【正确答案】 A 【试题解析】 =、 、 ()、 -以及所有的类型;转换运算符
12、只能作为成员函数重载, A项正确。默认的赋值运算符只实现了浅层复制, B项错误。赋值运算符只能作为成员函数重载,形参表中只有一个参数,对应于第二操作数, C项错误。一个类中如果需要重载运算符 “=“,通常也就需要定义自己特有的复制构造函数,反之亦然,故 D项错误。 15 【正确答案】 C 16 【正确答案】 A 【试题解析】 C+流有 4个预定义的流对象: cin标准输入; cout标准输出; cerr标准出错信息输出; clog带缓冲的标准出错信息输出。故选 A。 17 【正确答案】 D 【试题解析】 标识符是由字母、数字、下划线组成的字符串,且只能以字母或下划线开头。 A项中以数字开头,错
13、误。 B项中含有运算符 “ ”,错误。 C项中含有加号运算符,错误。 D项为正确的标识符。 18 【正确答案】 C 19 【正确答案】 D 【试题解析】 D项语法错误。 for语句语法格式为: for(; ; ) D选项 for语句中漏掉了两个分号。 20 【正确答案】 A 【试题解析】 B项定义了一个指针数组,正确。 C项定义了一个指向字符数组的指针,即数组指针,正确。 D项定义了一个指向返回值为整型量的函数的指针,即函数指针,正确。 A项定义语句错误,本题选 A。 21 【正确答案】 C 【试题解析】 在函数原型中指定默认参数值时,如果函数中有多个参数,则默认参数应从右至左定义,否则就是无
14、效的,故本题选 C。 22 【正确答案】 C 【试题解析】 本题主要考查类对象的定义。构造函数在对象 被创建的时候由系统自动调用。本题中定义了一个对象数组和一个指针数组,而指针被定义时不调用构造函数。本题选 C。 23 【正确答案】 C 【试题解析】 “ ”是一个二元运算符,作为成员函数重载时形参表中只有一个参数,对应于第二操作数,而第一操作数就是对象本身,以 this指针的形式隐藏在形参表中。本题中, y为第一操作数, x为第二操作数,故正确答案为 C。 24 【正确答案】 D 【试题解析】 C+中规定, =、 、 ()、 -以及所有的类型转换运算符只能作为成员函数重载。本题正确答案为 D。
15、 25 【正确答案】 D 26 【正确答案】 D 【试题解析】 在使用标准输入流 cin和流提取运算符 进行多项数据的输入时,使用空白字符 (空格键、回车键和 Tab键 )作为两项数据的分隔符,当遇到 I后面的空格时, cin对象即停止接收后面的数据。本题正确答案为 D。 27 【正确答案】 A 28 【正确答案】 B 【试题解析】 本题主函数中创建了三个 CD类的对象。 a、 d0和 d1,所以在程序结束时调用了三次析构函数,故程序输出结果为 CCC。 29 【正确答案】 C 【试题解析 】 本题主要考查对常成员函数的掌握。常成员函数的说明格式为: ()const; 本题中的常成员函数无参无
16、返回值,故正确答案为 C。 30 【正确答案】 B 【试题解析】 派生类从基类的继承方式有 3种:公有继承 (public)、私有继承(private)和保护继承 (protected)。如果不显式地给出继承方式,默认的类继承方式是私有继承, ACD项正确。类的继承是新的类从已有类那时得到已有的特性,故B项错误。 31 【正确答案】 C 【试题 解析】 数据成员 title在基类中声明为私有成员,派生类不能访问基类中的私有成员,故语句 在编译时出错。本题选 C。 32 【正确答案】 B 【试题解析】 Instrument为抽象类,抽象类不能用来定义对象。故本题应选 B。 33 【正确答案】 C
17、 34 【正确答案】 A 35 【正确答案】 D 36 【正确答案】 1DCBA2345 37 【正确答案】 n-1 38 【正确答案】 25 39 【正确答案】 结构化 40 【正确答案】 物理设计 41 【正确答案】 非成员 【试题解析】 “+”是一个二元运算符,当它作为成员函数重载时形参表中只有一个参数,对应于第二操作数,而第一操作数就是对象本身,以 this指针的形式隐藏在形参表中。而当 “+”作为非成员函数重载时,两个操作数都出现在形参表中。 42 【正确答案】 operator 43 【正确答案】 265 【试题解析】 本题主要考查对基类与派生类的重名成员的掌握。如果在派生类中定义
18、了与基类同名数据成员,那么在派生类中对重名成员访问时,屏蔽基类的同名成员。如果要在派生类中使用基类的同名成员,可以显 式地使用作用域运算符指定:类名:成员。 44 【正确答案】 new 【试题解析】 本题主要考查对动态存储分配的掌握。要将字符串复制给 a所指向的内存空间,需先给指针 a动态分配内存空间,故使用运算符 new。 45 【正确答案】 center(cx, cy) 【试题解析】 center在类 Circle中声明为成员对象。成员对象的初始化工作是在成员初始化列表中完成的。初始化的一般格式如下: (): (), (), 46 【正确答案】 122 47 【正确答案】 1 【试题解析】 双目运算符 (即二元运算符 ),作为成员函数重载时形参表中只有一个参数,对应于第二操作数,而第一操作数就是对象本身,以 this指针的形式隐藏在形参表中。 48 【正确答案】 保护 【试题解析】 派生类中的成员不能访问基类中的私有成员,可以访问基类中的公有成员和保护成员。 49 【正确答案】 单 多 【试题解析】 从派生类的角度,根据它所拥有的基类数目不同,可以分为单继承和多继承。一 个类只有一个直接基类时,称为单继承;而一个类同时有多个直接基类时,则称为多继承。
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1