[计算机类试卷]国家二级(C++)机试模拟试卷89及答案与解析.doc
《[计算机类试卷]国家二级(C++)机试模拟试卷89及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级(C++)机试模拟试卷89及答案与解析.doc(31页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级( C+)机试模拟试卷 89及答案与解析 一、选择题 1 如下类定义: class AA int a; public: int getRef()const return / int getValue()const return a; / void set(int n)const a=n; / friend void show(AA aa)const cout #include using namespace std; class MyBag public: MyBag(string br,string cr):brand(br),color(cr) cout“,使得程序中可以 “cin
2、 obj;“的形式改变 MyClass类的对象 obj中数据成员 data的值,则横线处的声明语句应为 ( )。 ( A) friendistream ( B) friendistream ( C) istream ( D) istream 16 有如下程序: #include using namespace std; class CC int k; public: CC(int n):k(n) int get()const return k; ; int main() CC c3=CC(1),CC(2); return 0; 此程序编译时未能通过,原因是 ( A)数组只能定义为基本数据类型
3、( B)类 CC缺少复制构造函数 ( C)对象数组只能作为类的数据成员 ( D)类 CC缺少默认的构造函数 17 下列关于 C+函数的叙述中,正确的是 ( A)函数不能自己调用自己 ( B)每个函数都必须返回一个值 ( C)每个函数至少要有一个参数 ( D)函数在被调用之前必须先进行声明或定义 18 有如下程序 #include using namespace std; class AA char c; public: AA(char ch):c(ch) cout using namespace std; class TV public: TV(int s=41):size(s) void P
4、rint() cout using namespace std; class Base public: Base() cout T cast(U u) return u; 其功能是将 U类型数据转换为 T类型数据。已知 i为 int型变量,下列对模板函数cast的调用中正确的是 ( )。 ( A) cast(i); ( B) castID=ID; CourseNum=courseNum; Record=record; voidStudentInfo: show() cout usingnamespacestd; constintMAXNUM=100; clasSSet private: int
5、num;元素个数 charsetdataMAXNUM;字符数组,用于存储集合元素 public: Set(char*s);构造函数,用字符串 S构造一个集合对象 boolInSet(charc); 判断一个字符 C是否在集合中,若在,返回 true,否则返回falsevoidPrint()const;输出集合中所有元素 ; Set: Set(char*s) num=0; while(*s) *found* if(_) TODO:添加代码,测试元素在集合中不存在 *found* _; TODO:添加一条语句,加入元素至集合中 s+; boolSet: InSet(charc) for(inti=
6、0; i usingnamespacestd; constintMax=100; classIntSet public: IntSet()构造一个空集合 end=-1; IntSet(inta, intsize) 构造一个包含数组 a中 size个元素的集合 if(Size=Max) end=Max-; else end=size-1; for(inti=0; i“,根据重载规则,本题答案为 A。 16 【正确答案】 D 【试题解析】 对象数组无论在哪里定义,都需要自动调用该对象元素的类的默认构造函数进行初始化,如果该类没有默认构造函数,必须为数组的元素提供显式初始化;程序中定义了对象数组 c
7、,它包含了三个元素,前两个元素使用构造函数CC(intn)显式初始化,最后一个元素需要使用默认构造函数初始化,由于类 CC中已经定义了构造函数,所以编译器不会自动生成默认的构造函数,缺少默认构造函数导致对象数组 c的第三个元素无法完成初始化,编译错误;答案为 D。 17 【正确答案】 D 【试题解 析】 函数可以自己调用自己,称为递归调用;函数返回类型为 void时,没有返回值;函数的参数列表中可以没有参数;函数在被调用前必须先进行函数声明或定义。 A、 B、 C错误, D正确;答案为 D。 18 【正确答案】 D 【试题解析】 构造函数初始化列表仅指定用于初始化成员的值,不指定这些初始化执行
8、的次序,成员初始化的次序是类定义中声明成员的次序,成员初始化完成后执行构造函数的函数体;所以程序中在创建 BB对象时,首先初始化 m1,再初始化 m2,由于 m1、 m2 都是 AA对象,且有实参 q、 p,所以调用构造函数AA(charch),用 ch 初始化成员 c后输出成员 c的值,即输出 q、 p,再执行类BB的函数体,输出 B;程序执行结束时,系统会自动调用类的析构函数清理自己的成员,析构函数工作过程: 1、执行析构函数的函数体; 2、如果该类中拥有类对象成员,且类对象有析构函数,则以类对象成员声明次序的相反顺序调用其析构函数,销毁类对象成员; 3、按原来构造顺序的相反顺序向上依次调
9、用基类的析构函数。所以程序运行结束时,首先调用 BB的析构函数并执行函数体,输出“b“;然后调用 m2 的析构函数,销毁 m2 成员,输出 a,再调用 m1 的析构 函数,销毁 m1 成员,输出 a;综上所述,程序运行的输出是: “qpBbaa“;答案为D。 19 【正确答案】 A 【试题解析】 在树结构中,一个结点所拥有的后件个数称为该结点的度,所有结点中最大的度称为树的度。完全二叉树指除最后一层外,每一层上的结点数均达到最大值,在最后一层上只缺少右边的若干结点。满二叉树指除最后一层外,每一层上的所有结点都有两个子结点的二叉树。深度为 7的二叉树,前 6层共有结点个数为 26-1=63,则第
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 模拟 89 答案 解析 DOC
