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

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

1、国家二级 C+机试(操作题)模拟试卷 249及答案与解析 一、基本操作题 1 使用 VC6打开考生文件夹下的源程序文件 modi1 cpp,该程序运行时有错,请改正其中的错误,使得程序正常运行,并使程序输出的结果为: TestClass1 TestClass2 注意:不要改动 main函数,不能增行或删行,也不能更改程序的结构,错误的语句在 *error*的下面。 #include 10Stream h #include assert h struct TestClass0 *error* virtual void fun(); ; class TestClass1: public TestC

2、lass0 void fun() cout “TestClass1“ endl; ; class TestClass2: public TestClass0 void fun() cout “TestClass2“ endl; ; void main() TestClass*p; TestClass1 obj1; TestClass2 obj2; *error* p=*obj1; p- fun(); *error* p=*obj2; p- fun(); return; 二、简单应用题 2 使用 VC6打开考生文件夹下的源程序文件 modi2 cpp。阅读下列函数说明和代码,完成空出部分程序。函

3、数 fun(int N4)的功能是用 4个数字,组成互不相同且无重复数字的三位数,并将满足所有条件的数字输出到屏幕,并且每输出一个三位数字就换一行。 程序分析:可填在百 位、十位、个位的数字都是 1、 2、 3、 0。组成所有的排列后再去掉不满足条件的排列。如果判定第一个数字是 0则也去掉。 #include iostream h void fun(int N4) int main() int N4=1, 2, 3, 0; fun(N); return0; 三、综合应用题 3 使用 VC6打开考生文件夹下的源程序文件 modi3 cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充

4、完整。完成以下功能: (1)基类 Person完成打印功能,定义其 中的打印函数为虚函数,请在注释*1*后添加适当的语句。 (2)类 Man继承于 Person,在构造函数中设置性别为 1,请在注释*2*后添加适当的语句。 (3)类 Woman继承于 Person,在构造函数中设置性别为 0,请在注释*3*后添加适当的语句。 (4)实现函数 fun(),用于传递不同的类型,打印出性别,请在注释*4*后添加适当的语句。 输出的内容如下: Sex=Man Sex=Woman 注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。 #include iostream h class Perso

5、n public: *1* void print(); int sex; ; class Man: public Person public: Man() *2* void print() cout “Man“ endl; ; ; class Woman: public Person public: Woman() *3* void print() cout “Woman“ endl; ; ; *4* cout “Sex=“; p print(); int main() Man m; fun(m); Woman n; fun(n); return0; 国家二级 C+机试(操作题)模拟试卷 24

6、9答案与解析 一、基本操作题 1 【正确答案】 (1)virtual void fun()=0; (2)P=&obj1; (3)p=&obj2; 【试题解析】 (1)如果在基类中并不使用这个虚函数,其返回值也是没有意义的,它应该被定义为纯虚函数。所以虚函数 fun()应该是纯虚函数,也就是声明虚函数的时候初始化为 0的函数。即第 1个标识下的 “virtual void fun()=0; ”。 (2)第 2个标识下的 P为指针变量,将对象 obj1赋值给 p,实际上是 p指向对象obj1的地址,所以 “p=*obj1; ”修改为 “p=&0bi1; ”。 (3)第 3个标识下的 “p=*obj

7、2; ”语句同 (2),修改为 “p: &obj2; ”。 二、简单应用题 2 【正确答案】 int i, j, k; for(i=0; i 4; i+)百位循环 for(j=0; j 4; j+)十位循环 for(k=0; k 4; k+)个位循环 if(i!=j&j!=k&k!: i&Ni!=0)当三位数不同,并且百位不为 0 cout Ni Nj Nk endl;输出这三位数组成的数字 【试题解析】 (1)利用 三层循环,对要三位数字是否相同进行判断。 (2)如果三位数不同,并且百位不为 0。那么依次输出这三位数,即为三位数组成的数字。 三、综合应用题 3 【正确答案】 (1)将 “vo

8、idprint(); ”补充完整为: virtual void print(); (2)添加语句: sex=1; (3)添加语句: sex=0; (4)添加语句: void fun(Person& p) 【试题解析】 (1)题目 1要求 “基类 Person完成打印功能,定义其中的打印函数为虚函数 ”。虚函数是函数的一种,定义虚函数, 在函数名前声明 virtual就可以了,所以第 1个标识下的 “void print(); ”语句修改为 “virtual void print(); ”。 (2)题目 2要求 “类 Man继承于 Person,在构造函数中设置性别为 1”。基类 Person中

9、变量 sex是用来存放性别的, Man继承 Person,所以 Man中性别的变量可以使用基类中的 sex变量,设置性别为 1,即 “sex=1; ”。 (3)题目 3要求 “类 Woman继承于 Person,在构造函数中设置性别为 0”。同 (2),在第三个标识下添加 “sex=0; ”。 (4)题目 4要求 “实现函数 fun(),用于传递不同的类型打印出性别 ”。根据“p print(); ”语句知道, fun()函数的形参为指针 p,由于它调用了基类 erson中的成员函数 print(),所以 p的基类为 Person,即添加函数 fun()的定义为“voidfun(Person&p)”。

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

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

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