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

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

1、国家二级 C+机试(操作题)模拟试卷 264及答案与解析 一、基本操作题 1 使用 VC6打开考生文件夹下的源程序文件 modi1 cpp,但该程序运行时有错,请改正程序中的错误,使该程序的输出结果为: 100 注意:错误的语句在 *error*的下面,修改该语句即可。 #include iostream h static int x=50; int t=0; int *func(int x, int y, int z) t=t+x+y+z; *error* return t; ; void main() int y=30; int x=10; int z=20; *error* x=x; *

2、error* cout func(x, y, z) endl; 二、简单应用题 2 使用 VC6打开考生文件夹下的源程序文件 modi2 cpp。阅读下列函数说明和代码,完成空出部分程序,使该程序输出倒 99口诀。 程序分析:分行与列考虑,共 9行 9列,设置两个变量 i和 i, i控制行, j控带 0列。 程序运行结果如下: 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 1*7=7 2*7=14 3*7=2

3、1 4*7=28 5*7=35 6*7=42 7*7=49 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*4=4 2*4=8 3*4=12 4*4=16 1*3=3 2*3=6 3*3=9 1*2=2 2*2=4 1*1=1 注意:只能补充函数 show(),请勿改动其他部分的内容。 #2nclude iostream h void show() void main() cout “9*9倒乘法口诀 “ endl; cout “-“ endl; show(); tout “-“ endl

4、; return; 三、综合应用 题 3 使用 VC6打开考生文件夹下的源程序文件 modi3 cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能: (1)类 CBase有一个常数变量 Number1,在构造函数时对其初始化,请在注释*1*后添加适当的语句。 (2)类 CPri是 CBase的公共继承类,请在注释 *2*后添加适当的语句。 (3)类 CPri构造函数有两个形式参数,第一个是对 CBase的初始化,第二个缺省为O,用来对变量 Number2进行初始 化。请在注释 *3*后添加适当的语句。 (4)类 CPri的函数 display()重载于 CBas

5、e的打印函数。完成对变量 Number2的输出,然后调用基类的打印函数,请在注释 *4*后添加适当的语句。输出的内容如下: Number2=12 Number=8 注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。 #include iostream h class CBase private: int Number; public: *1* CBase(int x) void display() cout “Number=“ Number endl; ; *2* class CPri private: int Number2; public: *3* CPri(int x, int

6、 y=0) Number2=y; void display() *4* ; int main() CPri obj(8, 12); obj display(); return0; 国家二级 C+机试(操作题)模拟试卷 264答案与解析 一、基本操作题 1 【正确答案】 (1)return &t: (2)x=: x; (3)cout *func(x, y, z) endl; 【试题解析】 (1)由审题分析可知,函数 func(int x, int y, intz)返回的是整型数据指针,而第 1个标识下的 return t表示返回一个整型数据,和要求的返回数据类型不匹配,应改为 “return&t

7、: ”。 (2)第 2个标识下 x=x表示局部变量 x自己给自己赋值,调用 func(x, y, z)函数后,返回的运算结果是 30+10+20=60,与输出 100不同,而全局静态变量 x值为50, 30+50+20=100,刚好满足条件,因此第 2个标识下是将全局静态变量 x的值赋给局部变量 x,即第 2个标识下应该为 “x=: x: ”, “: ”表示的是引用全局变量。 (3)func(x, yz)返回一个整型数据指针,通过该指针可以得到运算结果,而 cout func(x, y, z)输出的 fun(x, y, z)返回的地址值 (变量 t的地址值 ),而不是该地址内存储的变量的值 (

8、t的值 ),运行程序后会发现输出的是奇怪的一串数字,而不是我们所想要的 100,应加上取指针运算符 “*”, *func(x, y, z)为变量 t,故第 3个标识下应改为 “cout *func(x y, z) endl; ”。 二、简单应用题 2 【正确答案】 for(int i=9; i 0; i-) for(int j=1; j =i; j+) cout j * i = i*j ; cout endl: 【试题解析】 (1)由审题分析可知,可利用两重循环来实现输出倒 99口诀,设置两个循环变量,外层循环变量 i从 9开始变化至 1,循环 9次,代表乘号后面的数字。 (2)内部循环变量

9、i从 1变化到 i,代表乘号前面的数字,输出一行, j =i,这样保证输出的是倒 99口诀。在内层循环体内,利用 cout输出 i的值、 “*”、 i的值、“=”和 i*i值,即输出乘法公式。 三、综合应用题 3 【正确答案】 (1)将 “CBase(int x)”补充完整为: CBase(int x): Number(x) (2)将 “class CPri”补充完整为: Class CPri: public CBase (3)将 “CPri(int x, int y=0)”补充完整为: Cpri(int x, int y=0): CBase(x) (4)添加语句: cout “Number2

10、=“ Number2 endl; CBase: display(); 【试题解析】 (1)构造函数完成类成员变量的初始化,第 1个标识下是对Number1初始化,带参数的构造函数初始化有多种方式,可以在函数体内完成初始化,或利用参数初始化表来完成初始化,显然这里不能在函数体完成初始化,只能是在函数首部实现对数据成员的初始化,因此只能通过参数初始化表来完成,这种方法不在函数体内对数据成员初始化,而是在函数首部实现,即第 1个标识下应改为 “CBase(int x): Number(x)”。 (2)第 2标识下是声明类 CPri,且类 CPri是 CBase的公共继承类,定义派生类的一般格式为:

11、class派 生类名:继承方式 1基类:名 1, 继承方式 2基类名 2, 继承方式 n基类名 n 派生类新定义成员 ; 类 CPri是 CBase的公共继承类,因此第 2个标识下应改为 “class CPri: public CBase”。 (3)CPri构造函数有两个形式参数,第一个是对 CBase的初始化,第二个缺省为0,用来对变量 Number2进行初始化,这里对 CBase的初始化也不能在函数体内完成,因此也必须采用参数初始化表来完成,即第 3个标识下应改为 “CPri(int x,int y=0): CBase(x)”,调用 CBase的构造函数完成对 CBase的初始化。 (4)函数 display()重载于 CBase的打印函数。完成对变量 Number2的输出,然后调用基类的打印函数 display(),基类的 display()和派生类的 display()重名,调用基类的 display()应过类名来直接调用,即第 4个标识下应添加 “cout“Number2=“ Number2 endl; CBase: display(); ”。

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

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

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