1、国家二级 C+机试(操作题)模拟试卷 69及答案与解析 一、基本操作题 1 使用 VC6打开考生文件夹下的源程序文件 modil cpp,该程序运行时有错误,请改正错误,使得程序通过运行。 程序输出: 5 a 1 注意:不要改动 main函数,不能增行或删行,也不能更改程序的结构,错误的语句在 *error*的下面。 1 #include 2 template 3 *error* 4 t min(t x, t y) 5 6 return(xy)?y: x; 7 8 void main() 9 10 int n=5 ; 11 *error* 12 char c=“a“; 13 int d=1;
2、14 *error* 15 cout 2 void fun(double b, int len) 3 4 5 6 void main() 7 8 double b12 8; 9 fun(b, 12 8); 10 for(int i=0 j=i 2 using namespace std; 3 class TestClass 4 5 public: 6 *1* 7 8 9 X=a ; 10 Y=b; 11 Z=x; 12 *4* 13 14 15 void Display() 16 17 cout”语句中定义的模板类为 T不是 t,所以第 1个标识下的 “t min(t x, ty)”修改为 “
3、T min(T x,T y)”。 (2)第 2个标识下的 “charc=”a”; ”语句中的变量 a为 char型,赋值为字符 a,在 C+中应该使用单引号标注字符变量,而不是双引号,所以修改为 “char c=a; ”。 (3)在程序中用到 C+标准库时,要使用 std标准命名空间进行限定。 cout为标准库函数,所以要声明 cout是在命名空间 std中定义的流对象,即添加 using namespace std; ”。 二、简单应用题 2 【正确答案】 1 if(1en0)最小值位置 2 b0=0 ; 赋值第一个元素 3 if(len1) 4 b1=1 赋值第二个元素 5 for(int
4、 i=2 ; ilen; i+) 6 bi=bi-1+bi-2;将两个元素之和赋予当前元素 【试题解析】 根据题干中给出的要求,从已给部分源程序的 main主函数开始入手,补全函数 void fun(double b, int len)。 解题思路 (1)判断数组长度,如果存在第一个元素,那么将第一个元素赋值为 0,即b0=0;。 (2)然后再判断数组长度,如果存在第二个元素,那么将第二个元素赋值为 l,即b1=1;。 (3)最后从第三个元素到数组最后一个元素,赋值 bi=bi-1+bi=2;。 三、综合应用题 3 【正确答案】 (1)添加语句: Testclass(int a=0, int
5、b=0, intc=0) (2)添加语句: intx, Y, Z ; (3)添加语句: static int count; (4)添加语句: count+; 【试题解析】 本题的功能是设置点,并将点的坐标值显示 在屏幕上。在 VC环境下打开程序,根据题干给出的几条功能要求,对程序中给出注释下的内容逐个补全或修改。从已定源程序的 main主函数开始入手,可以看出程序通过调用类TestClass和成员函数实现各种输出操作。 解题思路 (1)题目 1要求 “完成默认构造函数 TestClass的定义 ”。构造函数是一种特殊的成员函数,它的名字必须与类同名,所以这里的构造函数名字是 TestClass
6、。根据题目中要求,实现构造函数参数的赋值,即这里添加 “TestClass(int a=0,intb=0,int c=0)”。 (2)题目 2要求 “定义类的私有成员变量, X、 Y、 Z类型为 int”。在类 TestClass中的 private区域,声明变量 X、 Y、 Z为整型就可以了,即在第 2个标识下添加“intX,Y.Z; ”。 (3)题目 3要求 “定义类 TestClass的数据成员 count声明为静态整数型数据成员 ”。同 (2)在第 3个标识下声明 count为静态整型,即添加 “static int count; ”。 (4)题目 4要求 “在构造函数中实现用 count表示类 TestClass被实现对象的次数 ”。在构造函数 TestClass中添加 count自加运算语句,即在第 4个标识下添加“count+; ”。
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1