1、国家二级 C+机试(操作题)模拟试卷 229及答案与解析 一、基本操作题 1 使用 VC6打开考生文件夹下的源程序文件 modi1 cpp,该程序运行时有错误,请改正程序中的错误,使得程序输出: 1, 2, 3, 4, 5, 注意:不要改动 main函数,不能增行或删行,也不能更改程序的结构,错误的语句在 *3*的下面。 #include iostream h Class TestClass *error* TestClass(int i) m_i=i; void print() cout +m_i , ; public: int m_i; ; int main() *error* int i
2、(); TestClass data(0); while(i 5) *error* i+j data print(); cout endl; return0; 二、简单应用题 2 使用 VC6打开考生文件夹下的源程序文件 modi2 cpp。请实现函数 fun(double b, int len)的如下功能: (1)b是一个数组,长度为 len; (2)b0=0, b1=1; (3)bi+2=bi+bi+1; 注意:请勿改动主函数 main与其他函数中的任何内容,仅在函数 fun的花括号中填入所编写的若干语句。 #include iostream void fun(double b, int
3、len) void main() double b128; fun(b, 128); for(int i=0; i 128; i+) std: cout bi ; if(i 6=5) std: cout std: endl; return; 三、综合应用题 3 使用 VC6打开考生文件夹下的源程序文件 modi3 cpp,其中定义了用于表示日期的类 Date,但类 Date的定义并不完整。请按要求完成下列操作,将类 Date的定义补充完成。 (1)定义私有数据成员 year、 month和 day,分别用于表示年、月和日,它们都是 int型的数据。请在注释 *1*之后添加适当的语句。 (2)完
4、成默认构造函数 Date的定义,使 Date对象的默认值为: year=1, month=1,day=1,请在注释 *2*之后添加适当的语句。 (3)完成重载构造函数 Date(int y, int m, int d)的定义,把数据成员 year、 month和day分别初始化为参数 y、 m和 d的值,请在注释 *3*之后添加适当的语句。 (4)完成成员函数 print()的类外定义,使其以 “年 月 日 ”的格式将 Date对象的值输出到屏幕上,例如: 200888。请在 注释 *4*之后添加适当的语句。 注意:仅在函数指定位置添加语句,请勿改动主函数 main与其他函数中的任何内容。 #
5、include iostream h class Date public: *2* Date(int y, int m, int d) *3* void print: ()const; private: data member *1* ; void Date: print()const *4* int main() Date national_clay(1949, 3 0, 1); national_day print(); return0; 国家二级 C+机试(操作题)模拟试卷 229答案与解析 一、基本操作题 1 【正确答案】 (1)public: TestClass(int i) (2)
6、int i(10); (3)i-; 【试题解析】 (1)打开 moid1 cpp调试程序,显示错误提示为第一标识下“modil cpp(20): error C2248: TestClass: TestClass: cannot access private member declared in classTestClass”,提示类 TestClass中的构造函数 TestClass被定义为私有的,无法获得,所以这里应该是 public,即 “public: TestClass(int i)”。 (2)题目中要求输出结果为 1, 2, 3, 4, 5,即循 环 5次。第三个表示 while循
7、环条件是 i大于 5就进行循环。 “int i(); ”应该实现变量 i的初始化,题干中要求不能删除 i初始化中的括号,所以在括号中添加 i的初始值。大于 5且循环 5次,所以 i的初始值为 10,而 while循环中对 i的操作应该是 i-,这样第二个和第三个标示下应该是 “int i(10); ”和 “i-; ”。 二、简单应用题 2 【正确答案】 if(len 0)最小值位置 b0=0;赋值第一个元素 if(len 1) b1=1;赋值第二个元素 for(int i=2; i len; i+) bi=bi-1+bi-2;将两个元素之和赋予当前元素 【试题解析】 (1)判断数组长度,如果存
8、在第一个元素,那么将第一个元素赋值为 0,即 b0=0;。 (2)然后再判断数组长度,如果存在第二个元素,那么将第二个元素赋值为 1,即b1=1;。 (3)最后从第三个元素到数组最后一个元素,赋值 bi=bi-1+bi-2;。 三、综合应用题 3 【正确答案】 (1)添加语句: int year, month, day; (2)添加语句: Date()year=1; month=1; day=1; (3)添加语句: year=y; month=m; day=d; (4)添加语句: cout year “-“ month “-“ day endl; 【试题解析】 (1)题目 1要求 “定义私有数
9、据成员 year、 month和 day,分别用于表示年、月和日,它们都是 int型的数据 ”。在 C+程序的 private区域中添加变量year、 month、 day的定义,即在第 1个标识下添加 “int year, month, day; ”。 (2)题目 2要求 “完成默认构造函数 Date的定 义,使 Date对象的默认值为:year=1, month=1, day=1”。在 C+中,构造函数是一种特殊的成员函数,它的名字与类同名。在 Date构造函数体内,根据题目要求,设置变量默认值“year=1, month=1, day=1”,即: “Date()year=1; month
10、=1; day=1; ”。 (3)题目 3要求 “完成重载构造函数 Date(inty, int m, int d)的定义,把数据成员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输出格式,实现题目中的输出要求,即 “cout yrear “-“ month “-“ day endl; ”。
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1