国家二级C++机试(操作题)模拟试卷571
基本操作题
1.使用VC6打开考生文件夹下的源程序文件modi1.cpp,该程序运行时有错误,请改正程序中的错误,使得程序输出:
1,2,3,4,5,
注意:不要改动main函数,不能增行或删行,也不能更改程序的结构,错误的语句在//******error******的下面。
1 #include<iostream.h>
2 class TestClass
3 {
4 //********error********
5 TestClass(int i)
6 {
7 m_i =i;
8 }
9 void print()
10 {
11 cout<<++m i<<’,’;
12 }
13 public:
14 int m_i;
15 };
16 int main()
17 {
18 //********error********
19 int i();
20 TestClass data(0),
21 while(i>5)
22 {
23 //********error********
24 i++;
25 data.print();
26 }
27 cout<<end1;
28 return 0;
29 }
(1)public:TestClass(int i)
(2)int i(10);
(3)i–;
解析:程序要求输出1,2,3,4,5,。主函数main()中有while循环,调用类TestClass中的成员函数print()实现函数功能。
(1)打开moid1.cpp调试程序,显示错误提示为第一标识下“modi1.cpp(20):error C2248:TestClass::TestClass’:cannot access private memberdeclared in class TestClass’”,提示类TestClass中的构造函数TestClass被定义为私有的,无法获得,所以这里应该是public,即“public:TestClass(int i)”。
(2)题目中要求输出结果为1,2,3,4,5,即循环5次。第三个表示while循环条件是i大于5就进行循环。“int i();”应该实现变量i的初始化,题干中要求不能删除i初始化中的括号,所以在括号中添加i的初始值。大于5且循环5次,所以i的初始值为10,而while循环中对i的操作应该是i–,这样第二个和第三个标示下应该是“int i(10);”和“i–;”。
简单应用题
2.使用VC6打开考生文件夹下的源程序文件modi2.cpp。请实现函数fun(double b[],int len)的如下功能:
(1)b[]是一个数组,长度为len;
(2)b[0]=0,b[1]=1;
(3)b[i+2]=b[i]+b[i+1];
注意:请勿改动主函数main与其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
1 #include<iostream>
2 void fun(double b[],int len)
3 {
4
5 }
6 void main()
7 {
8 double b[128];
9 fun(b,1.28);
10 for(int i=0;i<128;i++)
11 {
12 std::cout<<b[i]<<’’;
13 if(i%6==5)
14 std::cout<<std::end1;
15 }
16 return;
17 }
1 if(len>0)//最小值位置
2 b[0]=0; //赋值第一个元素
3 if(1en>1)
4 b[1]=1; //赋值第二个元素
5 for(int i=2;i<len;i++)
6 b[i]=b[i-1]+b[i-2];//将两个元素之和赋予当前元素
解析:根据题干中给出的要求,从已给部分源程序的main主函数开始入手,补全函数voidfun(double b[],int len)。
(1)判断数组长度,如果存在第一个元素,那么将第一个元素赋值为0,即b[0]=0;。
(2)然后再判断数组长度,如果存在第二个元素,那么将第二个元素赋值为1,即b[1]=1;。
(3)最后从第三个元素到数组最后一个元素,赋值b[i]=b[i-1]+b[i-2];。
综合应用题
3.使用VC6打开考生文件夹下的源程序文件modi3.cpp,其中定义了用于表示日期的类Date,但类Date的定义并不完整。请按要求完成下列操作,将类Date的定义补充完成。
(1)定义私有数据成员year、month和day,分别用于表示年、月和日,它们都是int型的数据。请在注释//********1********之后添加适当的语句。
(2)完成默认构造函数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对象的值输出到屏幕上,例如:2008-8-8。请在注释//********4********之后添加适当的语句。
注意:仅在函数指定位置添加语句,请勿改动主函数main与其他函数中的任何内容。
1 #include<iostream.h>
2 class Date {
3 public:
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
15 };
17 void Date::print()const
18 {
19 //********4********
20
21 }
22 int msin(){
23 Dat
本文档预览:3600字符,共4668字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载