1、国家二级 C+机试(操作题)模拟试卷 393及答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.使用 VC6打开考生文件夹下的源程序文件 modilcpp,该程序运行时有错误,请改正其中的错误,使程序正常运行,并且输出以下结果: (4,5) 7,8 (4,8) 注意:错误的语句在 *error*的下面,修改该语句即可。 #include class cobj0 public: cobj 0(int i,int j) x=i; y=j; *error* virtual void m0Ve(int a;int b) x+=a; y+=b; void p
2、rint() cout“(”x”,“”m“,”n_二、简单应用题(总题数:1,分数:2.00)2.使用 VC6打开考生文件夹下的源程序文件 modi2cpp。完成函数 fun(char*str,char*s)空出部分。函数 fun(ehaur*str,chaur*s)的功能是:将在字符串 str中下标为偶数位置上的字符,紧随其后重复出现一次,放在一个新串 S中,S 中字符按原字符串中字符的顺序排列。(注意 0为偶数) 例如:当 str中的字符串为:“abcdef”时,s 中的字符串应为:“aaccee”。 注意:不要改动 main()函数,不得增行或删行,也不得更改程序的结构。 #includ
3、e void fun(char*str,char*S) void main() char str100,s100; couts_三、综合应用题(总题数:1,分数:2.00)3.使用 VC6打开考生文件件下的源程序文件 modi3cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补允完整。 (1) 重载运算符 int, 请在注释*1*后添加适当的语句。 (2)重载运算符“ using namespace std; class TestClass public: *1* cout“int”str_国家二级 C+机试(操作题)模拟试卷 393答案解析(总分:6.00,做题时间:90 分钟)
4、一、基本操作题(总题数:1,分数:2.00)1.使用 VC6打开考生文件夹下的源程序文件 modilcpp,该程序运行时有错误,请改正其中的错误,使程序正常运行,并且输出以下结果: (4,5) 7,8 (4,8) 注意:错误的语句在 *error*的下面,修改该语句即可。 #include class cobj0 public: cobj 0(int i,int j) x=i; y=j; *error* virtual void m0Ve(int a;int b) x+=a; y+=b; void print() cout“(”x”,“”m“,”n_正确答案:(正确答案:(1)virtual
5、void move(int a,int b) (2)CObj 1(int i,int j,int k,int 1):CObj 0(i,j) (3)CObj 0:print();)解析:解析:程序中定义了 COhj0和 CObj1两个类,CObj1 公有派生于 CObj0,CObj0 有两个 public成员变量 X和 y,CObj1 有 2个 private成员变量 m和 n,CObjO 的 print函数打印 x和 y的值,CObj 1 的print函数打印 m和 n的值,display 函数调用基类的 print函数打印 CObj 1的 x和 y的值。二、简单应用题(总题数:1,分数:2.
6、00)2.使用 VC6打开考生文件夹下的源程序文件 modi2cpp。完成函数 fun(char*str,char*s)空出部分。函数 fun(ehaur*str,chaur*s)的功能是:将在字符串 str中下标为偶数位置上的字符,紧随其后重复出现一次,放在一个新串 S中,S 中字符按原字符串中字符的顺序排列。(注意 0为偶数) 例如:当 str中的字符串为:“abcdef”时,s 中的字符串应为:“aaccee”。 注意:不要改动 main()函数,不得增行或删行,也不得更改程序的结构。 #include void fun(char*str,char*S) void main() char
7、 str100,s100; couts_正确答案:(正确答案:Int 1; for(i=0 ; stri!=0;i+) 循环 判断每一个字符 if(i2=0) 判断字符串 中下标为偶数位置 Si=stri; Si+1=stri; si+2=0; 新串添加尾符 )解析:解析:(1)该程序功能是找出在字符串中下标为偶数位置上的字符,紧随其后重复出现一次,放在一个新串。它的解题思路,解题过程利用 if条件判断表达式选择符合条件的字符,然后将符合条件的字符放入指定的字符串。 (2)从已给部分源程序的 main主函数开始入手,核心函数 void fun(char*str,char*s)中的 str参数为
8、输入的字符串,其中 s为新串。三、综合应用题(总题数:1,分数:2.00)3.使用 VC6打开考生文件件下的源程序文件 modi3cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补允完整。 (1) 重载运算符 int, 请在注释*1*后添加适当的语句。 (2)重载运算符“ using namespace std; class TestClass public: *1* cout“int”str_正确答案:(正确答案:(1)添加语句:operator int() (2)添加语句:operator-Helio Test“;)解析:解析:本题的功能是通过重载运算符实现字符串输出。在 VC环境下打开程序,根据题干给出的几条功能要求,对程序中给出注释下的内容逐个补全或修改。从已定源程序的 main主函数开始入手,可以看出程序通过调用类 TestClass的运算符重载函数实现各种输出操作。