1、国家二级 C+机试(操作题)模拟试卷 298及答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.使用 VC6打开考生文件夹下的源程序文件 modi1cpp,该程序运行时有错误,请改正程序中的错误,使得程序输出: 10 TestClass1 注意:不要改动 main函数,不能增行或删行,也不能更改程序的结构,错误的语句在*error*的下面。#includeiostreamClass TestClass1public: TestClass1() , *error*private: virtualTestClass1() using namespace
2、 std; cout“TestClass1“endl; ; ; class TestClass2:public TestClass1 publi c: *error explicit TestClass2(int i) m i=i ; ); TestClass2operator()(int i) this-m i=i: void print() *error coutm iendl; private: int m i;void fun(TestClass2 C1) C1print();int main() fun(10); return 0 ;(分数:2.00)_二、简单应用题(总题数:1,分
3、数:2.00)2.使用 VC6打开考生文件夹下的源程序文件 modi2cpp。阅读下列函数说明和代码,完成空出部分程序。函数 fun(int n)的功能是在 n行 n列的矩阵中,每行都有最大的数,本程序求这 n个最大数中的最小一个,并作为参数返回。 注意:不能修改程序的其他部分,只能修改 fun()函数。 #include #define N 100 int aNN; int fun(int n) Void main() int n; coutn; for(int i=0;iaij; coutn; for(int i=0;iaij; cout“The min of max numbers is
4、“fun(n)_正确答案:(正确答案:int row; int max; int min; int col; for(row=0;rown;row+) 外循环求行最大值中的最小值 for(max=arow0,col=i;coln; col+) 求每一行中的最大值 if(maxarowcol) max=arowcol; if(row=0) 求最小值 min=max; else if(maxmin) min=max; return min;)解析:解析:(1)两层循环,内层循环求每一行最大值,外层循环求最小值。 (2)求最大值,首先将最大值赋值为每行第一列的元素,然后依次循环比较。 (3)将求出的
5、第一个最大值赋值为第一个最小值,然后将以后求得的最大值依次与之比较,求出所有值的最小值。三、综合应用题(总题数:1,分数:2.00)3.使用 VC6打开考生文件夹下的源程序文件 modi3cpp,其中定义了用于表示人基本信息的类CHumanlnfo,但类 CHumanlnfo的定义并不完整。请按要求完成下列操作,将类 CHumanlnfo的定义补充完成: (1)定义私有数据成员 bloodType用于表示血型,血型为 char型的数据。请在注释“*1*”之后添加适当的语句。 (2)完成构造函数的定义,要求具有缺省值,缺省值为身高 175,体重 70,血型 A。请在注释“*2*”之后添加适当的语
6、句。 (3)完成类外 CHumanInfo成员函数 Setlnfo的定义。请在注释“*3*”之后添加适当的语句。 (4)在主函数中调用成员函数 Setlnfo,把对象 d2的三个私有数据成员分别设定为身高 170,体重 64,血型为 B。请在注释“*4*”之后添加适当的语句。 注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。#includeiostreamhClass CHumanInfoprivate: int height; int weight; *1*public: *2* :height(ht),weight(wt),bloodType(bt); CHumanInfo(C
7、HumanInfo h1):height(h1height), weight(h1weight),bloodType(h1bloodType); int GetHeight() return height; int GetWeight() return welght; int GetBloodType() return bloodType; void SetInfo(int ht,intwt,char bt); void Display();*3* height=ht; weight=wt; bloodType=bt;void CHumanInfo:Display() cout“HumanIn
8、fo:“; coutheight“cm, “weight“Kg,BloodType“bloodTypeendl;Void main() CHumanInfo hl(169,61,A); CHumanInfo h2; CHumanInfo h3(h1); CHumanInfo h4(h2); *4* h1Display(); h2Display(); h3misplay(); h4misplay();(分数:2.00)_正确答案:(正确答案:(1)添加语句:char bloodType; (2)添加语句:CHumanlnfo(int ht=175,int wt=70,char bt=A) (3)
9、添加语句: Void CHumanInfo:SetInfo(int ht,int wt,char bt) (4)添加语句:h2Setlnfo(170,64,B);)解析:解析:(1)第 1个标识下定义私有数据成员 char型的 bloodType,故第 1个标识下应添加“charbloodType;”。 (2)构造 CHumanlnf00完成三个成员的初始化,并且带有缺省值参数,缺省值为身高 175,体重 70,血型 A,由函数体语句可知参数名分别为 ht、wt 和 bt,因此第 2个标识下应添加“CHumanlnfo(int ht=175int wt=70,char bt=A)”。 (3)第 3个标识下在类外完成成员函数Setlnfo的定义,在类外定义成员函数的格式为:返回值类型类名:成员函数(参数表),故第 3个标识下应添加“void CHumanInfo:Setlnfo(int ht,int wt,char bt)”。 (4)调用函数 Setlnfo()需要 3个参数,程序要求把对象 d2的三个私有数据成员分别设定为身高 170,体重 64,血型为 B,即把这三个值传入函数 Setlnfo(),因此第 4个标识下应添加“h2Setlnfo(170,64,B);”。
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1