1、国家二级 C+机试(操作题)模拟试卷 82及答案与解析 一、基本操作题 1 使用 VC6打开考生文件夹下的源程序文件 modil cpp,该程序运行时有错误,请改正程序中的错误,使得程序输出: number1=4 8 number2=93 6 number3=0 9 PRODUCT=404 352 注意:错误的语句在 *error*的下面。修改该语句即可。其他的语句不能修改。 #include USing namespace std; int main() double numberl=4 8, number2=93 6, number3=0 9; *error* product=number
2、l*number2*n umber3 ; *error* cout #define N 100 int aNN; int fun(int n) void main() int n ; coutn; for(int i=0 ;iaij; cout C1ass TestClass *1* public: TestClass()cout“TestClass class constructor”endl; ) 一 TestClass()cout“TestClass class constructor”endl; ) ), *2* char *departmert; int level; publiC:
3、 TeStClasS0() cout“TestClass0 class constructor”endl ; *3* cout”TestClass0 class constructor”endl; ; *4* char*major; float salary; public: TestClassl()cout “TestClassl C1ass constructor” endl; ) TestClassl()cout “TestClassl C1ass constructor” endl ; ; void main() TestClasS0 S1; TeStelassl t1; 国家二级 C
4、+机试(操作题)模拟试卷 82答案与解析 一、基本操作题 1 【正确答案】 (1)double product=number1*number2*number3; (2)cout“numberl=”numberl t *number2=*number2 t; (3)cout“number3=“number3 tendl; 【试题解析】 (1)C+要求变量在定义后才能使用,显然 product变量没有定义,number1、 number2和 number3均为 double型变量, product是这三个变量的乘积,因此 product的数据类型是 double型,因此第 1个标识下应改为doub
5、leproduct=number1*number2*number3。 (2)cout流中的数据是用流插入运算符 “”顺序加入的,第 2个标识下是输出numberl、 number2和 number3的值,各个数据之间用 “”顺序加入,不能用“”,第 2个标识下应 改为cout”numberl=”numberlv”number2=”number2 t。 (3)由于输出 “PRODUCT=404 352”在 “numberl=4 8number2=93 6 number3=0 9”下一行,因此输出 “number3= 0 9”后应换行,故第 3个标识下应改为 “cout“number3=”numb
6、er3tendl; “o 二、简单应用题 2 【正确答案】 int row; int max; int min; int col; for(row=0; rown; row+) 外循环求行最大值中的最小值 for(max=arow0, col=1; coln; col+) 求每一行中的最大值 if(maxarowcol) max=arowcol; if(row=0) 求最小值 min=max ; else if(maxmin) min=max; return min; 【试题解析】 (1)该程序功能是找出矩阵 中所有行最大的数中的最小一个。它的解题思路,首先找出每一行的最大值,然后在这些值中进
7、行比较,找出其中的最小值。 (2)从已给部分源程序的 main主函数开始入手,核心函数 int fun(int n)中的 n参数为矩阵中的列和行数。 解题思路 (1)两层循环,内层循环求每一行最大值,外层循环求最小值。 (2)求最大值,首先将最大值赋值为每行第一列的元素,然后依次循环比较。 (3)将求出的第一个最大值赋值为第一个最小值,然后将以后求得的最大值依次与之比较,求出所有值的最小值。 三、综合应用题 3 【正确答案】 (1)添加语句: char*name; int age; (2)添加语句: class Testel ass0: publ ic Testclass (3)添加语句: T
8、estclasso () (4)添加语句: class Testel assl: publ ic Testelass 【试题解析】 本题的功能是利用构造函数和析构函数中的输出语句,输出字符串。在 VC环境下打开程序,根据题干给出的几条功能要求,对程序中给出注释下的内容逐个补全或修改。从已定源程序的 main主函数开始入手,完成类的定义以及其成员函 数。 解题思路 (1)题目 l要求 “TestClass中定义 name为字符串类型, age为整型 ”。根据题目要求,在程序 TestClass类中定义变量 name和 age,即 “char*name; int age; ”。 (2)题目 2要求
9、 “设置类 TestClass0的基类为 TestClass类的定义 ”。在 C+中,从已有的类产生一个新的子类,称为类的派生。声明派生类的一般形式为: class派生类名:继承方式 ,基类名。根据声明派生类的一般形式,这里补全 “class TestClass0: public TestClass”。 (3)题目 3要求 “在类 TestClass的派生类 TestClass0的公有成员中定义析构函数TestClass0”,析构函数也是一个特殊的成员函数,它的作用与构造函数相反,它的名字是类名的前面加一个 “ ”符号。题目中要求的类名字为 “YestClass0”即这里补全 “ 1“estClass0()”。 (4)题目 4要求 “设置类 TestClassl的基类为 TestClassl类的定义 ”同 (2)在第 4个标识下补充 “class TestClassl: public TestClass”。
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1