【计算机类职业资格】国家二级C++机试(操作题)-试卷119及答案解析.doc

上传人:孙刚 文档编号:1331722 上传时间:2019-10-17 格式:DOC 页数:3 大小:32KB
下载 相关 举报
【计算机类职业资格】国家二级C++机试(操作题)-试卷119及答案解析.doc_第1页
第1页 / 共3页
【计算机类职业资格】国家二级C++机试(操作题)-试卷119及答案解析.doc_第2页
第2页 / 共3页
【计算机类职业资格】国家二级C++机试(操作题)-试卷119及答案解析.doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

1、国家二级 C+机试(操作题)-试卷 119 及答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.使用 VC6 打开考生文件夹下的源程序文件 modilcpp,该程序运行时有错误,请改正错误,使得程序输出: Hello test 注意:不要改动 main 函数,不能增行或删行,也不能更改程序的结构,错误的语句在*error*的下面。 #include *error* template void fun(T t) std:cout“test” VOid fun(bool t) std:cout_二、简单应用题(总题数:1,分数:2.00)2.使用 VC

2、6 打开考生文件夹下的源程序文件 modi2cpp。完成空出的函数 fun(int a,hat*index),使函数输入 n( ;#define MAXLINE 1 00 _int fun(int a,int *index) void main() int AMAXLINE; int index; int maxdata ; maxdata=fun(A, int maxdata ; maxdata=fun(A,&index); count maxdatan” index_正确答案:(正确答案:int 1,n; do 输入数组的大小 cout“Please input nn”: cinn; wh

3、ile(n99); cout“Please input ann”; for(i=0 ; in;i+) 输入数组中元素的值 cinai; *index=0; 元素下标值初始化 for(i=1;in;i+) 循环找出最大值 if(a*indexai) *index=i ; 记录比较大元素的下标 return a*index; 返回最大的元素值,其中 index 为最大值的下标)解析:解析:(1)该程序功能是求数组中最大元素的值和此元素的下标。它的解题思路,初始化记录下标变量为 0,指向数组第一个元素,逐个把所有元素和标记字符进行比较,并将大值的下标赋值给记录下标变量,从而找出最大值。 (2)从已给

4、部分源程序的 main 主函数开始入手,核心函数 int fun(int a,int*index)中的 a 参数为输入的数组,其中 index 为记录最大值下标变量。 解题思路 (1)首先输入数组大小,然后利用循环输入数组元素。 (2)利用 for 循环对每一个当前数组元素与 index 标记的元素进行大小比较。 (3)循环中将求得的最大数据 ai的下标标志位赋给标志位 index。三、综合应用题(总题数:1,分数:2.00)3.使用 VC6 打开考生文件夹下的源程序文件 modi3cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能: (1)类 CBase 有一

5、个常数变量 Number1,在构造函数时对其初始化,请在注释*1*后添加适当的语句。 (2)类 CPri 是 CBase 的公共继承类,请在注释*2*后添加适当的语句。 (3)类 CPri 构造函数有两个形式参数,第一个是对 CBase 的初始化,第二个缺省为 0,用来对变量 Number2 进行初始化。请在注释*3*后添加适当的语句。 (4)类 CPri 的函数 display()重载于 CBas的打印函数。完成对变量 Number2 的输出,然后调用基类的打印函数,请在注释*4*后添加适当的语句。输出的内容如下: Number2=12 Number=8 注意:除在指定位置添加语句之外,请不

6、要改动程序中的其他内容。 #include C1ass CBase private: int Number; public: *1* CBase(int x) void display() cout“Number=”_正确答案:(正确答案:(1)将“CBa se(int x)”补充完整为:CBase(intX):Number(x) (2)将“class CPri”补充完整为:class CPri:publ ic CBase (3)将“CPri(int x,int y=0)”补充完整为:Cpri(int x,int y=0):CBase(x) (4)添加语句:cout“Number2=?Numb

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

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

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

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

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