[计算机类试卷]国家二级(C++)机试模拟试卷93及答案与解析.doc

上传人:ideacase155 文档编号:502547 上传时间:2018-11-29 格式:DOC 页数:32 大小:91.50KB
下载 相关 举报
[计算机类试卷]国家二级(C++)机试模拟试卷93及答案与解析.doc_第1页
第1页 / 共32页
[计算机类试卷]国家二级(C++)机试模拟试卷93及答案与解析.doc_第2页
第2页 / 共32页
[计算机类试卷]国家二级(C++)机试模拟试卷93及答案与解析.doc_第3页
第3页 / 共32页
[计算机类试卷]国家二级(C++)机试模拟试卷93及答案与解析.doc_第4页
第4页 / 共32页
[计算机类试卷]国家二级(C++)机试模拟试卷93及答案与解析.doc_第5页
第5页 / 共32页
点击查看更多>>
资源描述

1、国家二级( C+)机试模拟试卷 93及答案与解析 一、选择题 1 结构化程序设计的基本原则不包括 ( )。 ( A)多态性 ( B)自顶向下 ( C)模块化 ( D)逐步求精 2 为了取代 C中带参数的宏,在 C+中使用 ( )。 ( A)重载函数 ( B)内联函数 ( C)递归函数 ( D)友元函数 3 若有如下类声明: class MyClass public: MyClass() cout #include using namespace std; class TV public: TV(int s=41):size(s) coutPrint(); delete room3; retur

2、n 0; 运行时的输出结果是 ( A) NC54 ( B) NCN54D ( C) NNN54DDD ( D) NCN54DDD 7 有两个关系 R和 S如下: 则有关系 R得到关系 S的操作是 ( A)选择 ( B)投影 ( C)自然连接 ( D)并 8 计算斐波那契数列第 n 项的函数定义如下: int fib(int n) if (n = 0) return 1; else if (n = 1) return 2; else return fib(n-1)+fib(n-2); 若执行函数调用表达式 fib(4),函数 fib 被调用的次数是 ( A) 6 ( B) 7 ( C) 8 (

3、D) 9 9 有如下类定义: #include using namespace std; class Point public: int GetXY() return x+y; protected: void SetXY(int a,int b) x=a;y=b; private: int x,y; ; class Circle:public Point public: int GetR() return radius; int GetAll() return GetXY()+radius; protected: void SetR(int r) radius=r; private: int

4、radius; ; int main() Circle c; c.GetXY(); / c.SetXY(3,4); / c.GetR(); / c.GetAll(); / return 0; 在标注号码的语句行中存在语法错误的是 ( A) ( B) ( C) ( D) 10 有三个关系 R、 S和 T如下:由关系 R和 S通过运算得到关系 T,则所使用的运算为 ( )。 ( A)并 ( B)自然连接 ( C)笛卡尔积 ( D)交 11 若有函数调用 “fun(x*y,3,max(a,b,c)“,则 fun的实参个数为 ( A) 3 ( B) 4 ( C) 5 ( D) 6 12 有如下程序:

5、#include using namespace std; class Shape /图形类 public: /图形绘制函数(用显示字母模拟) virtual void draw()const coutdraw(); int main() Shape s; Triangle t; plot( plot( s=t; s.draw(); return 0; 运行这个程序的输出是 ( A) STT ( B) STS ( C) TSS ( D) TTT 13 下列叙述中,正确的是 ( A) false是一个字符型常量 ( B) false是一个字符型常量 ( C) 11是一个逻辑型常量 ( D) 1.

6、1是一个 double常量 14 有如下两个类定义: class XX private: double x1; protected: double x2; public: double x3; ; class YY: protected XX private: double y1; protected: double y2; public: double y3; ; 在派生类 YY中的保护成员的个数是 ( A) 1 ( B) 2 ( C) 3 ( D) 4 15 下列关于模板形参的表述中,错误的 是 ( A)下列关于模板形参的表述中,错误的是 ( B)模板形参表中只有一个参数时,可以省略两边的

7、括号 ( C)可以用关键字 class修饰模板形参 ( D)可以用关键字 typename修饰模板形参 16 有如下程序段: int i=1;int j=4; int main() int j=i, i=8; cout using namespace std; class Base public: Base(int x=0) cout using namespace std; class A public: static int a; void init() a = 10; A(int a = 5) init(); a+=10; ; int A:a = 0; A obj; int main()

8、 cout p1; MyTemp p2; MyTemp p34; 编译系统在处理上面的语句序列时,所生成的模板 MyTemp的 实例的个数是 ( A) 1 ( B) 2 ( C) 3 ( D) 6 33 下列关于 C+函数的说明中,正确的是 ( )。 ( A)内联函数就是定义在另一个函数体内部的函数 ( B)函数体的最后一条语句必须是 return语句 ( C)标准 C+要求在调用一个函数之前,必须先声明其原型 ( D)编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式 34 有如下类定义: class MyBase int k; public: MyBase(int n=0):k(

9、n) int value()const return k; ; class MyDerived: MyBase int j; public: MyDerived(int i): j(i) int getK()const return k; int getJ()const return j; ; 编译时发现有一处语法错误,对这个错误最准确的描述是 ( )。 ( A)函数 getK试图访问基类的私有成员变量 k ( B)在类 MyDerived 的定义中,基类名 MyBase前缺少关键字 public、 protected或 private ( C)类 MyDerived缺少一个无参的构造函数 (

10、 D)类 MyDerived的构造函数没有对基类数据成员 k进行初始化 35 下列各组类型声明符中,含义相同的一组是 ( )。 ( A) unsignedlongint 和 long ( B) signedshortint和 short ( C) unsignedshort和 short ( D) shortint和 int 36 在下列关键字中,不能用来表示继承方式的是 ( )。 ( A) private ( B) static ( C) public ( D) protected 37 在满足实体完整性约束的条件下 ( )。 ( A)一个关系中应该有一个或多个候选关键字 ( B)一个关系中

11、只能有一个候选关键字 ( C)一个关系中必须有多关键字个候选 ( D)一个关系中可以没有候选关键字 38 有如下两个类定义: class AA; class BB AA v1,*v2; BB v3; int *v4; ; 其中有一个成员变量的定义是错误的,这个变量是 ( A) v1 ( B) v2 ( C) v3 ( D) v4 39 下列与队列结构有关联的是 ( A)函数的递归调用 ( B)数组元素的引用 ( C)多重循环的执行 ( D)先到先服务的作业调度 40 下列运算符中,不能被重载的是 ( A) : ( B) = ( C) ( D) + 二、基本操作题 41 请使用 VC6或使用【答

12、题】菜单打开考生文件夹 pro1下的工程 pmj1。程序中位于每个 “ ERROR*found*”之后的一行语句 =有错误 ,请加以改正。改正后程序的输出结果应该是: Name: SmithAge: 21ID: 99999CourseNum: 12 Record: 970 注意:只修改每个 “ ERROR*found*”下的一行,不要改动程序中的其他内容。 #include usingnamespacestd; classStudentInfo protected: ERROR*found* charName; intAge; intID; intCourseNum; floatRecord;

13、 public: ERROR*found* voidStudentInfo(char*name, intage, intID, intcourseNum, floatrecord); ERROR*found* voidStudentInfo()delete Name; floatAverageRecord() returnRecord CourseNum; voidshow()const; ; StudentInfo: StudentInfo(char*name, intage, intID, intcourseNum, floatrecord) Name=strdup(name); Age=

14、age; thiS-ID=ID; CourseNum=courseNum; Record=record; voidStudentInfo: show()const cout usingnamespacestd; classTime private: inthour; intminute; intsecond; public: Time(inth, intm, ints) this-hour=h; this-minute=m; thiS-second=s; booloperator(Time;答案为 A。 30 【正确答案】 B 【试题解析】 在树结构中,定义一棵树的根结点所在的层次为,其他结点

15、所在的层次等于它的父结点所在的层次加,树的最大层次称为树的深度。完全二叉树指除最后一层外,每一层上的结点数均达到最大值,在最后一层上只缺少右边的若干结点。深度为 6的满二叉树,结点个数为 26-1=63,则 第 7层共有 125-63=62个叶子结点,分别挂在第 6层的左边 62 个结点上,加上第 6层的最后 1个叶子结点,该完全二叉树共有 63个叶子结点,故 B选项正确。 31 【正确答案】 D 【试题解析】 静态数据成员独立于任何对象而存在,不是类对象的组成部分,普通成员函数可以引用静态数据成员。程序定义了类 A,并在 A的定义体外初始化A的静态数据成员 a=0,构造函数 A(int)中的

16、形参 a与 A:a属于不同的变量,在函数 A(int)中,形参 a屏蔽了 A:a,所以 A(int)中引用的变量 a是形参,而不是A:a,对 a的 任何操作都不影响 A:a,而成员函数 init中引用的是 A:a,语句a=10是将 A:a赋值为 10,所以输出 obj.a其实是输出 A:a,结果为 10;答案为D。 32 【正确答案】 C 【试题解析】 题目中使用 MyTemp 类模板定义了三种类型的类对象,所以生成的模板 MyTemp 实例有 3个,答案为 C。 33 【正确答案】 C 【试题解析】 一般函数进行调用时,要将程序执行权转到被调用函数中,然后再返回到调用它的函数中;而内联函数在

17、调用时,是将调用表达式用内联函数体来替换,而不是在定义在另一 个函数体内,所以 A选项错误。函数可以没有返回值,所以就不需要 return了,如果被调函数在调用函数之前已经定义,那么就不需要声明,所以 C选项错误,正确选项为 D。 34 【正确答案】 A 【试题解析】 默认继承方式为私有继承,私有继承将基类的公用成员和保护成员都变为了私有成员,基类的私有成员依然属于基类私有,派生类不能访问基类的私有成员。所以 A选项正确。 35 【正确答案】 B 【试题解析】 本题考查整型变量的类型, A、 C选项中前者为无符号的,后者为有符号的, D选项中 shortint为 2个 字节, int为 4个字节。 36 【正确答案】 B 【试题解析】 3种继承方式:公用继承、私有继承和保护继承分别使用 public、private和 protected3 个关键字来定义。 37 【正确答案】 A 【试题解析】 实体完整性约束要求关系的主键中属性值不能为空值,所以选择A)。 38 【正确答案】 C 【试题解析】 本题考查类的定义,类定义中不能包含自己本身的对象 ,否则会引起像无限递归的问题,结果就是内存被消耗殆尽。所以 C选项错误。

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

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

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