ImageVerifierCode 换一换
格式:DOC , 页数:27 ,大小:70.50KB ,
资源ID:502469      下载积分:2000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-502469.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文([计算机类试卷]国家二级(C++)机试模拟试卷22及答案与解析.doc)为本站会员(李朗)主动上传,麦多课文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文库(发送邮件至master@mydoc123.com或直接QQ联系客服),我们立即给予删除!

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

1、国家二级( C+)机试模拟试卷 22及答案与解析 一、选择题 1 某二叉树有 5个度为 2的结点及 3个度为 l的结点,则该二叉树中结点个数共有( )个。 ( A) 3 ( B) 6 ( C) 10 ( D) 14 2 程序流程图中的菱形框表示的是 ( )。 ( A)事实描述 ( B)行动方案 ( C)逻辑判断 ( D)流动方向 3 软件开发过程主要分为需求分析、设计、编码与测试 4个阶段。其中,产生 “软件需求规格说明书 ”的阶段是 ( )。 ( A)需求分析 ( B)软件设计 ( C)软件编码 ( D)软件测试 4 在数据库技术中,实体集之间的联系可以是一对一或一对多的,那么 “学生 ”和

2、“可选课程 ”的联系为 ( )。 ( A)一对一 ( B)多对多 ( C)一对多 ( D)无联系 5 人员基本信息一般包括身份证号、姓名、性别、年龄等。其中可以做主关键字的是 ( )。 ( A)身份证号 ( B)姓名 ( C)性别 ( D)年龄 6 若表达式 “(x+(y-z)*(m n)+3”中的变量均为 doublc型,则表达式值的类型为( )。 ( A) double ( B)整型 ( C) double或整型 ( D)无法判断 7 有如下循环语句: for(int i=50; i20; i-=2)coutz y=z”的值为 ( )。 ( A) 0 ( B) 10 ( C) 20 ( D

3、) 40 20 有如下语句序列: int x=-10; while(+x) 运行时, while循环体的执行次数为 ( )。 ( A) 0 ( B) 1 ( C) 9 ( D) 10 21 有如下语句序列: int arr22=9, 8, 7, 6; int*p=arr0+1; cout using namespace std; class Test public: Test(int a)data=a; Test() void print()cout using namespace std; class Base public: void print()cout using namespace

4、 std; class Base public: Base(int a): idata(a) void print()cout using namespace std; Class Fraction “分数 ”类 public: Fraction(double a, double b): num(a), den(b) Fraction() 重载取负运算符 “-”,返回一个分数对象,其分子是原来分子的相反数 Fraction operator-() _ return f; void print()cout using namespace std; template T Min(T*array,

5、int n) T min=array0; for(int i=1; i+) if(arrayix)x=*pa; return X: 若在执行了语句: int x5=23, 46, 78, 55, 16后,通过表达式 “xfun(x, 5)”调用该函数,则得到的返回值为 ( )。 ( A) 23 ( B) 46 ( C) 78 ( D) 55 32 有如下函数定义: int Xfun(int x) int y=x; int x=10; y+=x; return x+y; 通过表达式 “Xfun(5)”调用该函数,则得到的返回值为 ( )。 ( A) 10 ( B) 20 ( C) 30 ( D)

6、 40 33 假定 Xcs是一个类,该类中一个成员函数的原型为 “Xcs*abc; ”,则在类外定义时对应的函数头为 ( )。 ( A) Xes ( B) abc ( C) override ( D) overabc 34 要使 由语句 “Date FirstDay; ”定义的对象 FirstDay的值为 2010午 1月 1日,横线处应填 ( )。 class Date public: Date(_): year(y), month(n), day(d) private: int year, month, day;依次表示年、月、日 ; ( A) int m=2000, int y=1, i

7、nt d=1 ( B) int y=2000, int n=1, int m=1 ( C) int y=2000, int m=1, int d=1 ( D) int d=2000, int m=1, int y=1 35 在有理数类 Rational中重载插入运算符 “ using namespace std; class GrandChild public: GrandChild()strcpy(name, “Unknown“); const char*get Name()constreturn name; ) virtual char*get Address()const=0; priv

8、ate: char name20; ; class GrandSon: public GrandChild public: GrandSon(char*name) char*get Address()constreturn“Shanghai“; ; int main() GrandChild*gs=new GrandSon(“Feifei“); coutgetName()get Address() void fun(int n) void main() int n; coutn; if(n 1) eout class TC1 int a; public: * * * * * * * * 1 *

9、 * * * * * * * return a=x; void showa() coutz值为 0, y=z值为 1,两者结果为0。 20 【正确答案】 C 【试题解析】 考查了 x+和 +x之间的区别,前者是先用 x后再加 1,后者是先给 x加 1再使用 x。从 -9到 -1执行 9次后循环结束。 21 【正确答案】 c 【试题解析】 该题考查了数组和指针之间的转化,数组的第 1个元素地址就是指针的首地址, *p=&a00,则 amn=*(p+m)+n。 22 【正确答案】 D 【试题解析】 每次循环都需要得出指针当前的数字值,则由字符转化为数字的表达式是 “*p-0”。 23 【正确答案】

10、 C 【试题解析】 友元函数的声明方式是 friend返回值类型函数名称 (形参列表 )。 24 【正确答案】 B 【试题解 析】 简单的类对象的实例化,只需要对该类数组进行实例化即可。 25 【正确答案】 A 【试题解析】 考查了类的继承方式,派生类访问基类的成员 public函数,则继承方式也应该是 public。 26 【正确答案】 D 【试题解析】 与上题一致,也是考查了类的继承方式, Derived 类继承了 Base类的构造函数。 27 【正确答案】 D 【试题解析】 考查了重载运算符 “-”的操作,在重载函数中需要取分子的相反数。 28 【正确答案】 C 【试题解析】 考查了模板

11、函数的用法 ,第 1个参数是数组名称,第 2参数是数组元素个数。 29 【正确答案】 B 【试题解析】 y+=x-等同于 y=y+x, x=x-1, x-是先用原始 x 然后再自减,于是y=6+5=11, x=4,最后 x+y=11+4=15。 30 【正确答案】 A 【试题解析】 首先执行 do,一次不用判断,第 3次 i变为 3,但 i*i=910,条件 i*i10不成立,结束循环。 31 【正确答案】 C 【试题解析】 函数 Xfun 的作用是找出最大 的数。 32 【正确答案】 B 【试题解析】 通过参数传递将 5传给 x,由语句 “y=x; ”,知 y=5,又由 x=10将局部变量

12、x重新赋值,而 y+=x使得 y=15,于是 x+y=5+15=20,返回 20。 33 【正确答案】 C 【试题解析】 override是指派生类重写基类的虚函数。 34 【正确答案】 C 【试题解析】 给各个参数赋值。 35 【正确答案】 A 【试题解析】 此题为重载操作符 “”,返回一个输入输出类型。 36 【正确答案】 D 【试题解析】 这是一个平方运算的函数模板,由上述实例可知道模板有一个形参n,函数名为 square,所以可得模板 template(type n)typesquare(type n)return n*n; 。 37 【正确答案】 B 【试题解析】 把数组的首尾交换后

13、,对在第一位和最后一位之间的子数组执行同样的首尾交换操作,此子数组为原数组长度减去 2,所以答案为 size-2。 38 【正确答案】 B 【试题解析】 因为构造函数的参数 data 与类成员 data同名,所以需要加上类名Sample:。 39 【正确答案】 D 【试题解析】 将静态数据成员 data初始化为 0的语句是 “Sample:data=0; ”,因为 Sample是一个公共类,可以这样进行初始化。 40 【正确答案】 A 【试题解析】 定义 Grandson(”Feifei”)时,继承类型中构造函数没有任何操作,则在基类构造函数中把 name赋值为 ”Unknown”,所以 gs

14、- get Name()输出 name的值 ”Unknown”。 gs- get Address()执行继承类中的 get Address 函数,输出 ”Shanghai”。总共输出 “Unknown住在 Shanghai”。 二、基本操作题 41 【正确答案】 本题考查了考生对名字空间的了解情况。 (1)“cout“please input a string: “end1; ”应改为 “std: cout“please input a string: “std: end1; “。 (2)“namespace std; ”应改为 “using namespace std; ”。 【试题解析】

15、本题中程序使用的头文件是 iost ream,没有 h 后缀 ,该头文件中定义的所有标识符都位于 C+标准库名字空间 std内。所以语句 “cout“please input a string: “end1; ”中的 cout和 end1都要加上 std:前缀才能使用。如果要使后面所有语句都能用到 std名字空间中的内容,省略加 std:前缀的麻烦,可以使用语句 “using namespace std; ”。 三、简单应用题 42 【正确答案】 int i: for(i=0; i(n; i+) 外层循环,要打印的行数 int j; for(j=0; jn-i-1; j+) 循环打印空格 co

16、ut; for(; jn; j+)循环打印 A cout“A“; coutend1; 打印每一行的回车符 【试题解析】 本题利用外层循环打印每一行。内层循环分为打印空格和打印 A。打印空格由第一个位置到第 n-i-1。打印 A,是由打印完空格开始一直到行结柬。在外循环中打印每一行的结束符。 四、综合应用题 43 【正确答 案】 (1)应添加 “int seta(int x)”。 (2)应添加 “class TC3: public TC1, private TC2”。 (3)应添加 “int c; ”。 (4)应添加 “seta(x); ”。 【试题解析】 本题第 1处要求 “完成类 TC1的成

17、员函数 seta定义,定义 seta对象x为 int类型 ”。类的成员函数是函数的一种,它与一般函数的区别是,它是一个类的成员,出现在类体中。所以类 TC1中的成员函数,就是在 TC1中定义题目中要求的参数为 int x的 seta函数,即 “int seta(int x)”。 第 2处要求 “完成类 TC1(公有 )和类 TC2(私有 )派生类 TC3的定义 ”。从已有的类产生一个新的子类,称为类的派生。声明派生类的一般形式为 “Class派生类名: 继承方式 基类名 ”。根据声明派生类的一般形式,这里补全 “class TC3:public TC1, private TC2”。 第 3处要求 “定义类 TC3中的私有成员 c为 int”。在类 TC3中的 private数据成员区域,定义 int c,即在第 3处补全 “int c; ”。第 4处要求 “完成 sete中对基类的变 量 a的赋值 ”。基类为 TC1, sete对于该类 a的赋值,是 int seta(int x)函数的赋值,即 “seta(x); ”

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