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

上传人:amazingpat195 文档编号:497317 上传时间:2018-11-28 格式:DOC 页数:5 大小:29.50KB
下载 相关 举报
[计算机类试卷]国家二级C++机试(操作题)模拟试卷246及答案与解析.doc_第1页
第1页 / 共5页
[计算机类试卷]国家二级C++机试(操作题)模拟试卷246及答案与解析.doc_第2页
第2页 / 共5页
[计算机类试卷]国家二级C++机试(操作题)模拟试卷246及答案与解析.doc_第3页
第3页 / 共5页
[计算机类试卷]国家二级C++机试(操作题)模拟试卷246及答案与解析.doc_第4页
第4页 / 共5页
[计算机类试卷]国家二级C++机试(操作题)模拟试卷246及答案与解析.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、国家二级 C+机试(操作题)模拟试卷 246及答案与解析 一、基本操作题 1 使用 VC6打开考生文件夹下的源程序文件 modi1 cpp,该程序运行时有错,请改正其中的错误,使得程序正常运行,并使程序输出的结果为: 1 1 2 1 注意:不要改动 main函数,不能增行或删行,也不能更改程序的结构,错误的语句在 *error*的下面。 #include iostream h class TestClass *error* *error* const int j; public: TestClass() *error* Static int i=0; cout +i endl; cout j

2、endl; ; void main() TestClass obj1; TestClass obj2; obj2: j+=obj1 j; return; 二、简单应用题 2 使用 VC6打开考生文件夹下的源程序文件 modi2 cpp。阅读下列函数说明和代码,完成空出部分 程序。函数 fun(int*ar, int n)的功能是将指定的有序数组压缩成各元素互不相同的有序数组,即相同数只保留一个,多余的被删除。并返回互不相同的元素的个数。 注意:不能修改程序的其他部分,只能修改 fun()函数。 #1nclude 10Stream int fun(int*a, int n) void main(

3、) int A=6, 6, 5, 4, 4, 3, 3, 2, 1; int j=fun(A, sizeof(A) sizeof(int); for(int i=0; i j; i+) std: cout Ai ; std: cout std: endl; return; 三、综合应用题 3 使用 VC6打开考生文件夹下的源程序文件 modi3 cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。 (1)重载运算符 int,请在注释 *1*后添加适当的语句。 (2)重载运算符 “ ”请在注释 *2*后添加适当的语句。 (3)在主函数 main()中定义变量 i,并调用对象 o

4、bj的 int运算符 ,给变量赋初值为10,请在注释 *3*后添加适当的语句。 (4)调用 obi的 “ ”运算符输出: HelioTest 注意:增加代码,或者修改代码的位置已经用符号表示出来。请不要修改其他的程序代码。 #include iostream using namespace std; class TestClass public: *1* cout “int“ endl; return10; *2* cout str endl; ; int main() TestClass obj; *3* *4* return0; 国家二级 C+机试(操作题)模拟试卷 246答案与解析 一、

5、基本操作题 1 【正确答案】 (1)添加语句: public: (2)int j; (3)添加语句: j=1; 【试题解析】 (1)打开 modi1 cpp,调试程序,显示错误提示为“modi1 cpp(22): error C2248: j: cannot access private member declared in classTestClass”,第 1个标识下的 i变量由于被定义为私有的,其他函数不可获得,这里应该是 public型,所以在第 1个标识下添加 “public: ”。 (2)程序中对于 j的调用,说明 j并不是常量,所以修改 J的定义,将其定义为变量,而不是常变量,即

6、修改第 2个标识下语句为 “int j; ”。 (3)题目中要求调用对象,输出 i的值为 1。原程序中 j变量的使用并没有赋初始化值,输出值为乱码,所以第三个标识下添加 “j=1; ”。 二、简单应用题 2 【正确答案】 int j; int k: 0;指向数组第一个元素 j=1;指向数组第二个元素 while(j n)将本次循环 k指向的元素依次与其他元素比较,如果不同,则存入数组 if(aJ!=ak) a+k=aj; k指向下一个元素 j+; return k+1;为新数组大小 【试题解析】 (1)首先指向数组第一个元素 ak,然后将第二元素 aj与它比较,不同存入数组第二个元素 (a+k

7、)。 (2)同时,将被比较的位置向后移动一位 (j+)。循环直到数组的最后一个元素比较完毕。 三、综合应用题 3 【正确答案】 (1)添加语句: operator int() (2)添加语句: operator (char*str) (3)添加语句: int i=int(obj); (4)添加语句: obj “Hello Test“; 【试题解析】 (1)题目 1要求 “重载运算符 int”的定义。运算 符重载的方法是定义一个重载运算符的函数,其一般格式为:函数类型 operator运算符名称 (形参列表 )对运算符的重载处理 。所以第 1个标识下,重载运算符 int的语句为“operator

8、 int()”。 (2)题目 2要求 “重载运算符 ”。同 (1),第 2个标识下 “ ”的重载函数定义为 “operator (char* str)”。 (3)题目 3要求 “在主函数 main()中定义变量 i,并调用对象 obi的 int运算符,给变量赋初值为 10。 ”定义变量 i,即 int i。 “operator int()”中的返回值 为 10,所以调用对象 obj的 int运算符,给变量赋初值为 10,就是 int(obj),即第三个标识下添加 “int i=int(obj); ”。 (4)题目 4要求 “调用 obj的 “ ”运算符输出 “HelloTest”。重载运算符 “ ”后,不仅能输出标准类型数据,而且可以输出用户自己定义的类对象。所以直接添加要输出的字符串即可,即 “obj “Hello Test“; ”。

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

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

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