1、国家二级 C+机试(操作题)模拟试卷 68及答案与解析 一、基本操作题 1 使用 VC6打开考生文件夹下的源程序文件 modi 1 cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,并使程序输出的结果为: Max is 7 提示: max()函数实现找出两个数中的最大值,并作为函数值返回。 注意:错误的语句在 *error*的下面,修改该语句即可。 1 #include 2 using namespace std ; 3 *error* 4 int max(int a, int b) 5 6 if(a 2 void fun(int n) 3 4 5 6 void main() 7 8
2、 int n; 9 coutn; 11 if(n 2 class Date 3 publlc: 4 *2* 5 6 Date(int y, int m, int d) 7 ( 8 *3* 9 10 ) 11 void print()const; 12 private: 13 data member 14 *1* 15 16 ; 17 void Date: print()const 18 19 *4* 20 21 22 int main()f 23 Date national_day(1949, 10, 1); 24 nationalday print(); 25 return 0 ; 26 国
3、家二级 C+机试(操作题)模拟试卷 68答案与解析 一、基本操作题 1 【正确答案】 (1)int max(int &a, int &b) (2)matx(m, n); 【试题解析】 函数参数传递形式有多种:将变量名作为实参和形参、传递变量的指针和传送引用方式,将变量名作为实参和形参方式,传递是单向的,在函数执行过程中形参的值发生变化不会传回实参,而指针和引用方式在函数执行过程中形参会影响实参。函数 max返回最大值,而在主函数内并没有使用其返回值,而是输出 m值,可知在 max函数类已将最大值存放在 m里,因此 max函数采用的是传递引用方式。 解题思路 (1)由审题分析可知 max函数采用
4、的是传送引用方式传递参数,因此第 1个标识下应该为 int max(int&a,int&b)。 (2)调用 max时,传递引用时直接使用变量名即可,第 2个标识下应改为 “。max(m,n)”。 二、简单应用题 2 【正确答案】 1 int i; 2 for(i=0 ; in ; i+) 外层循环,要打印的行数 3 4 int j ; 5 for(j=0 ; jn-i-1 ; j+) 循环打印空格 6 7 cout ; 8 9 for(; jn; j+) 循环打印 # 10 11 cout“#“; 12 13 coutendl ; 打印每一行的回车 14 【试题解析】 (1)该程序功能是打印题
5、目中要求的 #字形状。它的解题思路,在不显示 #字地方,用空格占位。 (2)从已给部分源程序的 main主函数开始入手,核心函数 void fun(int n)中的 n参数为输入的要打印的行数。 解题 思路 (1)外层循环打印每一行。 (2)内层循环,分为打印空格和打印 #。打印空格由第一个位置到第 n-i-1。打印#,是由打印完空格开始一直到行结束。 (3)最后在外循环中打印每一行的结束。 三、综合应用题 3 【正确答案】 (1)添加语句: int year, month, day; (2)添加语句: Date()year=l; month=1; day=1; (3)添加语句: year=y
6、; month=m; day=d; (4)添加语句: coutyear“-“month“-“dayendl ; 【试题解析】 在 VC环境下打开程序,根据题干给出的几条功能要求,对程序中给出注释下的内容逐个补全或修改。从已给定源程序的 main主函数开始入手,可以看出程序通过调用类 Date和函数 print实现各种输出操作。 解题思路 (1)题目 l要求 “定义私有数据成员 year、 month和 day,分别用于表示年、月和日,它们都是 int型的数据 ”。在 C+程序的 private区域中添加变量 year、month、 day的定义,即在第 1个标识下添加 “int year,mo
7、nth, day; ”。 0 (2)题目 2要求 “完成默认构造函数 Date的定义,使 Date对象的默认值为:year=1, month=1, day=1”。在 C+中,构造函数是一种特殊的成员函数,它的名字与类同名。在 Date构造函数体内,根据题目要求,设置变量默认值“year=1, month=1, day=1”,即: “Date()year=1; month=1; day=1; ”。 (3)题目 3要求 “完成重载构造函数 Date(int y,int m intd)的定义,把数据成员year、 month和 day分别初始化为参数 y、 m和 d的值。 ”在构造函数 Date(int y,int m, int d)函数体内,即标识 3下,添加赋值语句,将 y, m, d赋值给 year,month, day,即 “year=y; month=m; day=d; ”。 (4)题目 4要求 “完成成员函数 print()的类外定义,使其以 “年一月一日 ”的格式将Date对象的值输出到屏幕上 ”。在程序中的 void Date: print()const函数体内,标识 4下,添加输出语句。根据 cout输出格式,实现题目中的输出要求,即“coutyear“-“month“-“dayendl; ”
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1