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

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

1、国家二级( C+)机试模拟试卷 106及答案与解析 一、选择题 1 有三个关系 R、 S和 T如下: 由关系 R和 S通过运算得到关系 T,则所使用的运算为 ( )。 ( A)并 ( B)自然连接 ( C)笛卡尔积 ( D)交 2 下列情况中,不会调用拷贝构造函数的是 ( )。 ( A)用一个对象去初始化同一类的另一个新对象时 ( B)将类的一个对象赋值给该类的另一个对象时 ( C)函数的形参是类的对象,调用函数进行形参和实参结合时 ( D)函数的返回值是类的对象,函数执行返回调用时 3 如下函数模板 : template T square(T x) return x * x; 其中 T是 (

2、 )。 ( A)函数形参 ( B)函数实参 ( C)模板形参 ( D)模板实参 4 下列符号中能够作为 C+标识符的是 ( )。 ( A) const ( B) 2a ( C) _shape ( D) count 5 下列有关类成员的叙述中,正确的是 ( A)友元函数是类的成员函数 ( B)类成员的默认访问权限是私有的 ( C)类成员函数必须声明为公有的 ( D)类的静态数据成员 不能是常成员 6 下列关于 C+流的叙述中,正确的是 ( A)与键盘、屏幕、打印机和通信端口的交互都可以通过流类来实现 ( B)从流中获取数据的操作称为插入操作,向流中添加数据的操作称为提取操作 ( C) cin是一

3、个预定义的输入流类 ( D)输出流有一个名为 open的成员函数,其作用是生成一个新的流对象 7 若 x和 y是程序中的两个整型变量,则下列 if语句中正确的是 ( A) if(x!=0)y=1;elsey=2; ( B) if(x!=0)y=1elsey=2; ( C) if(x!=0)theny=1elsey=2; ( D) ifx!=0y=1;elsey=2; 8 在下列关键字中,不能用来表示继承方式的是 ( A) private ( B) public ( C) static ( D) protected 9 下列叙述中正确的是 ( A)算法的效率只与问题的规模有关,而与数据的存储结构

4、无关 ( B)算法的时间复杂度是指执行算法所需要的计算工作量 ( C)数据的逻辑结构与存储结构是一一对应的 ( D)算法的时间复杂度与空间复杂度一定相关 10 在一个有参函数的原型声明中可有可无的语法成分是 ( A)形参类型 ( B)形参变量 ( C)函数名 ( D)函数返回类型 11 下列关于虚函数的表述中,正确的是 ( A)虚函数不得是静态成员函数 ( B)抽象类中的成员函数都是纯虚函数 ( C)只能通过指针或引用调用虚函数 ( D)抽象类中的成员函数都是虚函数 12 深度为的完全二叉树中共有 125个结点,则该完全二叉树中的叶子结点数为 ( A) 62 ( B) 63 ( C) 64 (

5、 D) 65 13 为类 MyClass重载赋值运算符时,应将其重载为类的 ( A)静态函数 ( B)成员函数 ( C)友元 函数 ( D)虚函数 14 有如下程序: #include using namespace std; class Base1 public: Base1() Base1() coutstr; 当从键盘输入 “I love this game“时, str中的字符串是 ( )。 ( A) Ilovethisgame ( B) Ilovethi ( C) Ilove ( D) I 23 在对函数进行原型声明时,下列语法成分中不需要的是 ( A)函数返回类型 ( B) 函数参

6、数列表 ( C)函数名 ( D)函数体 24 有如下类定义: class Point public: Point(int xx=0,int yy=0):x(xx),y(yy) private: int x,y; ; class Circle:public Point public: Circle(int r):radius(r) private: int radius; ; 派生类 Circle中数据成员的个数为 ( A) 1 ( B) 2 ( C) 3 ( D) 5 25 下面属于黑盒测试方法的是 ( A)语句覆盖 ( B)逻辑覆盖 ( C)边界值分析 ( D)路径覆盖 26 下列关于运算符

7、重载的描述中,错误的是 ( A)通过运算符重载不可能在 C+中创建新的运算符 ( B)赋值运算符可以重载为友元函数 ( C)运算符函数重载为类的成员函数时,第一操作数不出现在参数表中 ( D) 重载类型转换运算符时不需要声明返回类型 27 有如下 4个语句: cout using namespace std; class Shape /图形类 public: /图形绘制函数(用显示字母模拟) virtual void draw()const coutdraw(); t.draw(); plot(t); delete ps; return 0; 运行这个程序的输出是 ( A) SCC ( B)

8、SCS ( C) CSS ( D) CCC 30 设 c1和 c2是类 MyClass的对象,若将前缀运算符 “-“和运算符 “/“作为类MyClass的友元函数重载,则表达式 -c1/c2等价于 ( A) operator/(c1.operator-(),c2) ( B) operator/(operator-(c1),c2) ( C) c1.operator-().operator/(c2) ( D) c2.operator/(operator-(c1) 31 有如下程序 #include using namespace std; class AA char c; public: AA(c

9、har ch):c(ch) cout using namespace std; class AA int k; protected: int n; void setK(int k) this-k=k; public: void setN(int n) this-n=n; ; class BB: public AA /*类体略 */ ; int main() BB x; x.n=1; /1 x.setN(2); /2 x.k=3; /3 x.setK(4); /4 return 0; 在标注号码的四条语句中正确的是 ( )。 ( A) 1 ( B) 2 ( C) 3 ( D) 4 37 有如下程

10、序段: int i=9; while ( int i=0 ) cout using namespace std; class TV public: TV(int s=41):size(s) void Print() cout using namespace std; class Cup public: Cup(double val=5.8):price(val) void SetPrice(double val) price=val; double GetPrice() const return price; private: double price; ; int main() const

11、Cup c1(4.5); Cup c2(29.8); c1.SetPrice(5.8); / c2.SetPrice(12.8); / c1.GetPrice(); / c2.GetPrice(); / return 0; 在标注号码的语句行中存在语法错误的是 ( A) ( B) ( C) ( D) 二、基本操作题 41 请使用 VC6或使用【答题】菜单打开考生文件夹 proj1下的工程 prog1。其中位于每个 “ ERROR*found*”之后的一行语句有错误,请加以改正。改正后程序的输出结果应为: v1=23: v2=42 注意:只修改每个 “ ERROR*found*”下的那一行,不要

12、改动程序中的其他内容。 #include usingnamespacestd; classMyClass intv1; staticintv2; public: MyClass(intV): v1(V) intgetValue()constreturnvl; staticintgetValue(intdummy) ERROR*found* returnv1; ; ERROR*found* intMyClass V2=42; intmain() MyClassobj(23); ERROR*found* intv1=obj v1; intv2=MyClass: getValue(0); cout

13、usingnamespacestd; 请在该部分插入 insert函数模板的实现 template voidinsert(Tsetdata, int输出 /N41。而定义 constTVroom2(54)时,给 size赋值为 54,最后输出结果为 /S54,所以答案为 A。 39 【正确答案】 B 【试题解析】 本题考查 for循环和 while循环,其中 B选项 while里的判断语句10为真,会陷入死循环,所以 B选项错误。 40 【正确答案】 A 【试题解析】 本题考查常对象,常对象只能引用常成员函数,不能引用非常成员函数,所以 是错误的。答案为 A选项。 二、基本操作题 41 【正确

14、答案】 (1)return MyClass:v2; (2)int MyClass:v2 = 42; (3)int v1 = obj.getValue(); 【试题解析】 (1)主要考查考生对静态成员函数的掌握情况 ,根据函数定义 :static int getValue(int dummy)可知 ,函数要求返回一个静态整型值。 (2)主要考查考生对静态成员的掌握情况 ,给静态成员赋值要使用作用域符 :。 (3)主要考查考生对成员函数的掌握情况 ,由于 v1 是类的私有成员 ,故不能被 main 函数直接调用。 三、简单应用 题 42 【正确答案】 (1)item setdatai (2)set

15、datasize + i - j = setdatasize+i-j-1 (3)setdatasize = item 【试题解析】 (1)主要考查考生对 if语句的掌握 ,题目要求 ,判断查找元素的插入位置。因为要插入的序列是升序排列的 ,当 item setdatai时 ,即为要插入位置。 (2)主要考查考生对 for循环的掌握 ,因为要在第 i个位置外插入元素 ,所以将插入位置后的所有元素往后移动一个位置移动 时应从最后一个位置开始 ,因此使用语句setdatasize + i - j = setdatasize + i - j - 1。 (3)主要考查考生对成员函数的掌握 ,题目要求将元

16、素加到最后一个位置上。 size表示数组的长度 ,因为数组下标是从 0开始的 ,所以最后一个位置为 size,即 :setdatasize = item。 四、综合应用题 43 【正确答案】 MiniString strcpy(pt, sPtr); int blength = length; length += s.length; delete sPtr; sPtr = new charlength+1; strcpy(sPtr,pt); delete pt; for (int i = 0; i length; +i) sPtrblength+i = s.sPtri; return *this; 【试题解析】 主要考查考生对运算符重载的掌握 ,因为有动态数组 ,所以要先分配空间 ,再复制字符串。

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

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

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