1、国家二级 C+机试(操作题)模拟试卷 224及答案与解析 一、基本操作题 1 请使用 VC6或使用【答题】菜单打开考生文件夹 prog1下的工程 prog1。此工程中包含程序文件 main cpp,其中有类 Score(“成绩 ”)和主函数 main的定义。程序中位于每个 “ ERROR*found*”之后的一行语句有错误,请加以改正。改正后程序的输出结果应为: 学号: 12345678课程:英语总评成绩: 85 注意:只修改每个 “ ERROR*found*”下的一行,不要改动程 序中的其他内容。 1 #include 2 using namespace std; 3 class Score
2、 4 public: 5 Score(const char*the course, const char* the_id, int the_normal, int the_midterm, int the_end_of_term) 6 : course(the_course), normal(thenormal), midterm(the_midterm),end_of_term(the_end_of_term) 7 ERROR *found* 8 strcpy(the id, student id); 9 10 const char*getCourse()constre-turn cours
3、e; 返回课程名称 11 ERROR * found* 12 const char*getID()constreturn返回总评成绩 18 private: 19 const char*course;课程名称 20 char student id12; 学号 21 int normal; 平时成绩 22 int midterm; 期中考试成绩 23 int end of term;期末考试成绩 24 ; 25 总评成绩中平时成绩占 20,期中考试占 30,期末考试占 50,最后结果四舍五入为一个整数 26 ERROR *found* 27 int getFinal()const 28 retu
4、rn normal*0 2+midterm*0 3+end_of_term*0 5+0 5; 29 30 int msin() 31 char Engli sh=“英语 “; 32 Score score(English, “12345678“, 68, 8 3, 92); 33 cout 2 using namespace std; 3 矩阵基础类,一个抽象类 4 class MatrixBase 5 int rows, cols; 6 publiC: 7 MatrixBase(int rows, int colS): rows(rows), cols(colS) 8 int getRows
5、()constreturn rows;矩阵行数 9 int getCols()constreturn cols; 矩阵列数 10 virtual double getElement(int r, int c)const=0,取第 i个元素的值 11 void show()const分行显示矩阵中所有元素 12 for(int i=0; ishow(); 51 delete m; 52 coutshow(); 55 delete m; 56 return 0; 57 三、综合应用题 3 请使用 VC6或使用【答题】菜单打开考生文件央 prog3下的工程 prog3,其中包含了类 TaxCalcu
6、lator(“个税汁算器 ”)和主函数 main的定义 ?创建 “个税计算器 ”需要接收税率表信息和起征额信息。存 main函数中,通过两个数组创建了如下的税率表: 利用这个税率表创建“个税计算器 ”时,假定起征额为 2000元 (即不超过 2000元的所得不征收个人所得税 )。请补充完成计算应纳个人所得税额的成员函数 getTaxPayable,其中的参数income为月收入。此程序的正确输出结果应为: 月收入为 800元时应缴纳个人所得税 0元 月收入为 1800元时应缴纳个人所得税 0元 月收入为 2800元时应缴纳个人所得税 55元 月收入为 3800元时应缴纳个人所得税 155元 月
7、收入为 4800元时应缴纳个人所得税 295元 月收入为 5800元时应缴纳个人所得税 455元 注意:只能在函数 getTaxPayable中的 “ *333*”和 “*666*”之间填入若干语句,不要改动程序中的其他内容。 1 TaxCalculator h2 #include3 #include4 using namespace std; 5 class TaxCalculator6 public: 7 TaxCalculat。 r(double the_limits, double the_rates, int the_length,double the_threshold)8 : l
8、ower_limits(new doublethe_length ), rates(new double the_length), 9 list_len(the_length), thresh-old(thethreshold)10 for(int i=0; i=0)13 *333*14 *666*15 -i; 16 17 return tax payable; 18 19 void TaxCalculator: showTaxPayable20 (double income)constcout 国家二级 C+机试(操作题)模拟试卷 224答案与解析 一、基本操作题 1 【正确答案】 (1)s
9、trcpy(student_id, the_id); (2)const char*getID()constreturn student_id; (3)int Score: getFinal()const 【试题解析】 (1)主要考查考生对 strcpy()函数的掌握情况, strcpy(参数一,参数二 )函数的功能是将参数二的字符 串复制给参数一,因此在这里 student_id应该位于参数一的位置,即 strcpy(student_id, the_id);。 (2)主要考查考生对函数返回值的掌握情况,根据注释:返回学号可知学号应该由一个字符串组成。再看函数要返回的类型: const char
10、*,可知要返回一个 char型指针,也就是一个 char型数组,而 &student_id是一个 char型数组指针,因此直接写 student_id即可。 (3)主要考查考生对类的成员函数的掌握情况,因为 getFinal函数是 Score类的成员函 数,所以在定义时要加上类名和作用域符,即 Score:。 二、简单应用题 2 【正确答案】 (1)getElement(i, j) (2)MatrixBase(rows, cols) (3)new doublerows*cols (4)r=c 【试题解析】 (1)主要考查考生对纯虚函数的掌握,函数功能是分行显示矩阵中所有元素。因此在这里要输出行
11、为 i、列为 j的元素,使用纯虚函数getElement(i, j)实现,输出语句为 coutlower limitsi) 4 如果 taxable(收入超出起征额的部分 )大于 lower limitsi阶段最低限额 5 tax_payable+=(taxable-lower_limitsi)*ratesi;把起过阶段最低限额的部分乘以该阶段的税率后,加到 tax_payable (个人所得税 ) 6 taxable=lower_limitsi;把 fower_limitsi赋值于 taxable 7 【试题解析】 主要考查考生对成员函数的掌握情况,根据题目要求可知,完成计算应纳个人所得税额的成员函数 getTaxPayable,其中参数 income为月收入。同时题目还表明:不超过 2000元的所得不征收个人所得税。因此先用 if语句判断是否要征收个人所得税。然后根据题目所给表格,来判断收入多少及应该收多少个人所得税。
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1