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

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

1、国家二级 C+机试(操作题)模拟试卷 67及答案与解析 一、基本操作题 1 使用 VC6打开考生文件夹下的源程序文件 modil cpp,但该程序运行有问题,请改正 main函数中的错误,使程序的输出结果是: nember=1 nember=10 nember=100 注意:不要改动 main函数,不能增行或删行,也不能更改程序的结构,错误的语句在 *error*的下面。 1 #include 2 Class TeStClass 3 4 publiC: 5 TestClass(int i) 6 nember=i ; 7 ) 8 void SetNember(int m) 9 nember=m;

2、 10 ii int GetNember()const 12 return nember ; 13 14 void Print()const 15 cout 2 #define N 10 3 void sort(int AN, int n) 4 5 6 7 int main() 8 9 int AN=(5, 7, 4, 6, 10, 13, 78, -4, 9, 20 ; 10 sort(A, 10); 11 for(int i=0; i 2 class TestClass 3 4 *1* 5 6 public: 7 TestClass() cout“TestClass class const

3、ructor”endl; ) 8 TestClass() cout“TestClass class constructor“ endl ; ) 9 ; 10 *2* 11 12 13 char *departmert; 14 int level; 15 public: 16 TestClass0() 17 cout“TestClass0 class constructor”endl ; ) 18 *3* 19 20 cout“TestClass0 class constructor“endl ; ) 21 ; 22 *4* 23 24 25 char*major; 26 float salar

4、y; 27 public: 28 TestClassl()cout “TestClassl class constructor“endl ; ) 29 TestClassl()cout “TestClassl class constructor“endl ; ) 30 ; 31 void main() 32 33 TestClass0 s1 ; 34 TestClassl t1 ; 35 国家二级 C+机试(操作题)模拟试卷 67答案与解析 一、基本操作题 1 【正确答案】 (1)TestClass obj1(1); (2)obj1 SetNember(10); (3)obj2 setNemb

5、er(100); 【试题解析】 程序要求输出 nember的值为 1, 10, 100。从已定源程 序的 main主函数开始入手,可以看出程序定义了 TestClass类的对象 obj1和 obj2,然后通过调用类的成员函数实现了题目中的输出结果。 解题思路 (1)第 1个标识下, “TestClass obil; ”语句是声明 TestClass类的对象 obj1,根据TestClass类构造函数的定义 TestClass(int i),存在整型参数,并且题目要求第一个输出结果为 1,所以补全参数 1,即第 1个标识下的 “TestClassobjl(1); ”。 (2)第 2个标识下的 “

6、objl nember=10; ”应该是调用成员函数 SetNember赋值。在 C+中成员函数的使用形式应该是:对象名成员函数,所以修改为“objl SetNember(10); ”。 (3)类是对象的抽象,而对象是类的具体实例。第 3个标识下“TestClass SetNember(100); ”语句中的 TestClass为类,并不是对象,这里应该是使用定义的对象,即 obj2,修改为 “obj2 SetNember(100); ”。 二、简单应用题 2 【正确答案】 1 int i, j, k, t ; 2 for( i=0 ; in-1 ; i+) 3 4 for(k: i, j=i

7、+1 ; jn; j+) 5 if(AkAj )入果前面的比后面的小则需要交换 6 k=j; 7 if(k!=i) 交换 8 9 t=Ai; 10 Ai =Ak; 11 Ak =t; 12 13 【试题解析】 函数 sort(int A, int n)用冒泡排序法把数组进行从大到小的排序,冒泡法排序利用了求数组中最小值及其位置的算法,首先从 n个数中找出最大值,放在第一个元素位置上,再从剩下的 n-1个数中找出最大值,放在第二个元素位置上,这样不断重复下去,直到剩下最后一个数。 解题思路 (1)以数组 “A=3, 8, 7, 6, 5, 0, 1, 2, 9, 4”为例来说明具体的排序过程,第

8、一次选择:第一步从 A0-A9中找最大值 max及下标 k, max=9, k=8;第二步交换 a0与最大值 a8的值;第一次结束后 a0已存放了最大值,下一次比较就不必再经过它了,而从 a1开始,如此循环。从例中可以看出 10个元素要进行九次比较, n个元素要进行 n一 1次比较。设置两层循环,外层循环变量 i从 0到 n 1,内层循环变量从 i开始到 n 1,在内层循环中找最大值,如果最大值的下标 k和 i不同,则交换,实现选择法排序。 (2)在内层循环体内,如果最大值的下标 k和 i不同,则用一个临时变量记录第 i个元素,然后将第 k个元素赋值给第 i个元素,临时变量值赋给第 k个元素,

9、如此完成两个元素的交换。 三、综合应用题 3 【正确答案】 (1)添加语句: char* name ; int age; (2)添加语句: class TestClass0: public TestClass (3)添加语句: Testclass 0 () (4)添加语句: class TestCl assl: public Testclass 【试题解析】 本题的功能是利用构造函数和析构函数中的输出语句,输出字符串。在 VC环境下打开程序,根据题干给出的几条功能要求,对程序中给出注释下的内容逐个补全或修改。从已定源程序的 main主函数开始入手,完成类的定义以及其成员函数。 解题思路 (1)

10、题目 l要求 “TestClass中定义 name为字符串类型, age为整型 ”。根据题目要求,在程序 TestClass类中定义变量 name和 age,即 “char*name; int age; ”。 (2)题目 2要求 “设置类 TestClassO的基类为 TestClass类的定义 ”。在 C+中,从已有的类产生一个新的子类,称为类的派生。声明派生类的一般形式为: class派生类名: f继承方式 基类名。根据声明派生类的一般形式,这里补 全“classTestClassO: publicTestClass”。 (3)题目 3要求 “在类 TestClass的派生类 TestClassO的公有成员中定义析构函数TestClass0”。析构函数也是一个特殊的成员函数,它的作用与构造函数相反,它的名字是类名的前面加一个 “ ”符号。题目中要求的类名字为 “TestClass0”即这里补全 “ TestClassO()”。 (4)题目 4要求 “设置类 TestClassl的基类为 TestClassl类的定义 ”同 (2)在第 4个标识下补充 “class TestClassl: publicTestClass”。

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

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

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