1、国家二级 C+机试(操作题)模拟试卷 399及答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.使用 VC6打开考生文件夹下的源程序文件 modi1cpp,该程序运行时有错误,请改正程序中的错误,使得程序输出: 10 TestClass 1 注意:不要改动 main函数,不能增行或删行,也不能更改程序的结构,错误的语句在 *error*的下面。 #include class TestClassl public: TestClassl() ; *error* private: virtual 一 TestClassl() us ing namespa
2、ce std; cout“TestClass1”m i=i; void print() *error* cout_二、简单应用题(总题数:1,分数:2.00)2.使用 VC6打开考生文件夹下的源程序文件 modi2cpp。阅读下列函数说明和代码,实现函数sort(intA,int n),用选择排序法把数组从大到小排序。 提示:选择排序法的思想是: (1)反复从还未排好的那部分线性表中选择出关键字最小的节点; (2)按照从线性表中选择出的顺序排列节点,重新组成线性表; (3)直到未排序的那部分为空,则重新形成的线性表是一个有序的线性表。 补充函数sort(int A,int n),实现选择排序。
3、 注意:请勿改动主函数。#includeioStreamh#define N 10void Sort(int AN,int n)int main() int AN=1,2,1 0,5,7,1 9,34,7 8,一 3,8;sort(A,1 0); for(int i=0;iSi Zeof(A)sizeof(int);i+) coutAi ; coutendl; return 0;(分数:2.00)_三、综合应用题(总题数:1,分数:2.00)3.使用 VC6打开考生文件夹下的源程序文件 modi3cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能: (1)类 C
4、Base有一个常数变量 Number1,在构造函数时对其初始化,请在注释*1*后添加适当的语句。 (2)类 CPri是 CBaSe的公共继承类,请在注释*2*后添加适当的语句。 (3)类 CPri构造函数有两个形式参数,第一个是对 CBase的初始化,第二个缺省为 0,用来对变量 Number2 进行初始化。 请在注释*3*后添加适当的语句。 (4)类 CPri的函数 display()重载于 CBase的打印函数。完成对变量 Number2的输出,然后调用基类的打印函数,请在注释*4*后添加适当的语句。输出的内容如下: Number2=12 Number=8 注意:除在指定位置添加语句之外,
5、请不要改动程序中的其他内容。 #include Class CBase private: int Number; public: *1* CBaSe(int x) void display() cout_国家二级 C+机试(操作题)模拟试卷 399答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.使用 VC6打开考生文件夹下的源程序文件 modi1cpp,该程序运行时有错误,请改正程序中的错误,使得程序输出: 10 TestClass 1 注意:不要改动 main函数,不能增行或删行,也不能更改程序的结构,错误的语句在 *error*的下面。 #i
6、nclude class TestClassl public: TestClassl() ; *error* private: virtual 一 TestClassl() us ing namespace std; cout“TestClass1”m i=i; void print() *error* cout_正确答案:(正确答案:(1)删除“private:”语句 (2)TestClass2(int i) (3)std-coutmistd:endl;)解析:解析:程序要求输出值为 10,TestClassl。从已给定源程序的 main主函数开始入手,main 主函数首先调用 fun函数,
7、fun 调用 TestClass2中的 print()函数,其中 TcstClass2继承了 TestClass1。二、简单应用题(总题数:1,分数:2.00)2.使用 VC6打开考生文件夹下的源程序文件 modi2cpp。阅读下列函数说明和代码,实现函数sort(intA,int n),用选择排序法把数组从大到小排序。 提示:选择排序法的思想是: (1)反复从还未排好的那部分线性表中选择出关键字最小的节点; (2)按照从线性表中选择出的顺序排列节点,重新组成线性表; (3)直到未排序的那部分为空,则重新形成的线性表是一个有序的线性表。 补充函数sort(int A,int n),实现选择排序
8、。 注意:请勿改动主函数。#includeioStreamh#define N 10void Sort(int AN,int n)int main() int AN=1,2,1 0,5,7,1 9,34,7 8,一 3,8;sort(A,1 0); for(int i=0;iSi Zeof(A)sizeof(int);i+) coutAi ; coutendl; return 0;(分数:2.00)_正确答案:(正确答案:int i,j; for(i=0;in 一 1;i+) for(j=0;jn 一 1一 i;j+) if(AjAj+1) 如果前面的数比后面的大则进行交换 int t=Aj;
9、做交换 Aj=Aj+1; Aj+1=t; )解析:解析:选择法的思路是:将相邻两个数比较,将小的调到前头。这样下标从 0到 n-1的数与其后面相邻的数交换,可以把最大的数交换到数组的末端。进行 n次下标从 0到 n-1的交换,则数组则会变成有序的,而且是由小到大的顺序。三、综合应用题(总题数:1,分数:2.00)3.使用 VC6打开考生文件夹下的源程序文件 modi3cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能: (1)类 CBase有一个常数变量 Number1,在构造函数时对其初始化,请在注释*1*后添加适当的语句。 (2)类 CPri是 CBaSe的
10、公共继承类,请在注释*2*后添加适当的语句。 (3)类 CPri构造函数有两个形式参数,第一个是对 CBase的初始化,第二个缺省为 0,用来对变量 Number2 进行初始化。 请在注释*3*后添加适当的语句。 (4)类 CPri的函数 display()重载于 CBase的打印函数。完成对变量 Number2的输出,然后调用基类的打印函数,请在注释*4*后添加适当的语句。输出的内容如下: Number2=12 Number=8 注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。 #include Class CBase private: int Number; public: *
11、1* CBaSe(int x) void display() cout_正确答案:(正确答案:(1)将“CBase(int x)”补充完整为:CBase(int x):Number(x) (2)将“class CPri”补充完整为:class CPri:public CBase (3)将“CPri(int x,int y=0)”补充完整为:Cpri(int x,int y=0):CBase(x) (4)添加语句:coutNumber2 end1;CBase:display();)解析:解析:程序中定义了类 CBase和类 CPri,类 CPri公有派生于类 CBase,CBase 中有成员变量Number,CPri 有成员变量 Number2,两个类均有 display()函数来打印成员变量的值。