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

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

1、国家二级 C+机试(操作题)模拟试卷 9及答案与解析 一、基本操作题 1 使用 VC+6 0打开考生文件夹下的源程序文件 1 cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,并 使程序输出的结果为 sizeof(s1)=5 sizeof(s2)=10 sizeof(s3)=1 注意:不要改动 main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在 *error*的下面。 (1)不能删除 assert()语句。 (2)只能修改后面的数 字。 提示: assert函数如果为假,则会产生一个中断异常。 试题程序: #include #include void main() c

2、har*s1=“abe“; *error* assert(sizeof(s1)=3); cout void fun(int N4) int main() int N4=1, 2, 3, 0); fun(N); return 0; 三、综合应用题 3 使用 VC+6 0打开考生文件夹下的源程序文件 3 cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整,使其输出的结果为 TCA TCB TCC (1)完成类 B虚继承于 A,请在注释 1后添加适当的语句。 (2)完成类 C虚继承于 A,请在注释 2后添加适当的语句。 (3)完成类 D继承于 B, C,请在注释 3后添加适当的语句

3、。 (4)函数 fun通过调用基类的 fun,完成所输出的内容,请在注释 4后添加适当的语句。 注意:增加或者修改代码的位置已经用符号表示出来,请不要修改其他的程序代码。 试题程序: #include class TCA public: void fun() cout“TCA“end1; ; * * * * * * * * 1 * * * * * * * * claSS TCB public: void fun() cout“TCB“end1; ; * * * * * * * * 2* * * * * * * * class TCC public: void fun() cout“TCC“en

4、d1; ; * * * * * * * * 3 * * * * * * * * class 1“CD public: void fun() * * * * * * * * 4 * * * * * * * * ; void main() TCD test: test fun(); retUrn: ; 国家二级 C+机试(操作题)模拟试卷 9答案与解析 一、基本操作题 1 【正确答案】 (1)应改为 “assert(sizeof(s1)=4); ”。 (2)应改为 “assert(sizeof(s2)=10); ”。 (3)应改为 “assert(sizeof(s3)=1); ”。 【试题解析】

5、assert函数如果为假,则会产生一个中断异常。所以要让它正常执行输出结果,那么 assert函数只有为真,才不会产生中断异常。“assert(sizeof(s1)=3); ”语句中 “sizeof(s1)=3”为假,这会使程序产生异常,不能正常执行。因为 str1的值为 abc,但是它还有一个尾符,它的长度应该是 4,而不是 3,所以在第 1处修改为 “assert(sizeof(s1)=4); ”。 str210说明, str2的空间为10,在第 2处修改为 “assert(sizeof(s2)=10); ”。 char str3=23;语句说明 23是字符,所占存储空间为 1,所以修改为

6、 “assert(sizeof(s3)=1); ”。 二、简单应用题 2 【正确答案】 int i, j, k; for(i=0; i4; i+) 百位循环 for(j=0; j(4; j+) 十位循环 for(k=0; k(4; k+) 个位循环 if(i!=j&j!=k&k!=i&Ni!=0) 当三位数不同,并且百位不为 0 coutNiNjNkend1; 输出这三位数组成的数字 【试题解析】 本题利用 3层循环,对 3位数字是否相同进行判断。如果 3位数不同,并且百位不为 0,那么依次输出这 3位数,即由 3位数组成的数字。 三、综合应用题 3 【正确答案】 (1)将 “class TC

7、B: ”补充完整为 “class TCB: virtual public TCA”。 (2)将 “class TCC: ”补充完整为 “class TCC: virtual public TCA”。 (3)将 “class TCD: ”补充完整为 “class TCD: public TCB, public TCC”。 (4)应添加 “TCA: fun(); TCB: fun(); TCC: fun(); ”。 【试题解析】 本题中第 1处要求 “完成类 B虚继承于 A”。在 C+中,声明虚基类的一般形式为: class派生类名: virtual继承方式基类名,由 题目知道 TCA为基类, T

8、CB为派生类,所以第 1处的语句修改为 “class TCB: virtual public TCA”。 根据第 2处和第 3处的要求将标识 2和 3下的语句修改为 “class TCC: virtual public TCA”和 “class TCD: public TCB, public TCC”。 第 4处要求 “函数 fun通过调用基类的 fun,完成所输出的内容 ”。在 C+中调用基类的成员函数,要使用作用域限定符 “: ”,类名 A:函数 fun,就是调用类A的函数 fun,根据题目中的要求补全 对类 TCA、 TCB以及 TCC中的 fun函数,即 “TCA: fun(); TCB: fun(); TCC: !fun(): ”。

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

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

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