国家二级C++机试(操作题)模拟试卷544
基本操作题
1.使用VC6打开考生文件夹下的源程序文件modi1.cpp,该程序运行时有错,请改正其中的错误,使程序正确运行,并且使程序输出的结果为:
CMyObject,in the constmtor
~CMyObject,in the destrutor
注意:错误的语句在//******error******的下面,修改该语句即可。
1 #include<iostream.h>
2 class CMyObject
3 {
4 //******error******
5
6 //******error******
7 CMyObject{cout<<’’CMyObject,in the construtor’’<<end1;}
8 ~CMyObject(){cout<<’’~CMyObject,in the destrutor’’<<end1;}
9 };
10 void main()
11 {
12 CMyObject obj1;
13 }
(1)添加语句:public:
(2)CMyObject(){cout<<’’CMyObject,in the construtor”<<end1;}
解析:程序中定义了类CMyObject,含有一个构造函数和一个析构函数,在构造函数和析构函数中分别输出一段字符。
(1)构造函数和析构函数均为公有函数,而在C++中默认的访问属性为私有(private),因此构造函数和析构函数必须说明为public,即第1个标识下应添加“public:”。
(2)函数定义中在函数名后均有一对括号表示函数声明,因此第2个标识下应改为“CMyObjectO{cout<<’’CMyObject,in the construtor’’<<endl;}”。
简单应用题
2.使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码,完成空出部分程序,使输入某年某月某日,可判断这一天是这一年的第几天。
程序分析:以3月5日为例,应该先把前两个月的天数加起来,然后再加上5天即本年的第几天(特殊情况:闰年输入月份大于3时需考虑多加一天)。
注意:只能补充函数func(int year,int month,int day),请勿改动其他部分的内容。
1 #include<iostream.h>
2 int func(int year,int month,int day)
3 {
4
5 }
6 void main()
7 {
8 cout<<func(2007,2,1)<<end1;
9 cout<<func(2007,i0,i0)<<end1;
10 cout<<func(2008,8,12)<<end1;
11 return;
12 }
1 int sum;
2 int leapyear;
3 switch(month)/*先计算某月以前月份的总天数*/
4 {
5 case 1:
6 sum=0;
7 break;
8 case 2:
9 sum=31;
10 break;
11 case 3:
12 sum=59;
13 break;
14 case 4:
15 sum=90;
16 break;
17 case 5:
18 sum=120;
19 break;
20 case 6:
21 sum=151;
22 break;
23 case 7:
24 sum=181;
25 break;
26 case 8:
27 sum=212;
28 break;
29 case 9:
30 sum=243;
31 break;
32 case 10:
33 sum=273;
34 break;
35 case 11:
36 sum=304;
37 break;
38 case 12:
39 sum=334;
40 break;
41 default:
42 cout<<’’data error’’<<end1;
43 break;
44 }
45 sum=sum+day;
46 if(year%400==0 ||(year%4==0&& year%100!=0))/*判断是不是闰年*/
47 leapyear=1;
48 else
49 leapyear=0;
50 if(1eapyear==1&&month>2)
51 sum++;
52 return sum;
解析:函数函数func(int year,int monm,int day返回某一天属于这一年的第几天,可以把该月之前的所有天数加起来再加上本月的第几天得到返回值,一种特殊情况需要注意,闰年时2月会多一天,这个时候可以先判断是否是闰年,如果是再看是不是二月以后,如果是则加在前面结果的基础上在加一天。
(1)为方便起见,先统计正常年份下,每个月的前面有多少天,可以用switch方式查询,然后再加上本月的日子,很快便得到了这一天是属于这一年的第几天。
(2)闰年的判断方法为:if(year%400==0||(year%4==0&&year%100!=0)),if语句为真则为闰年,二月之后的日期后需要加一天。
综合应用题
3.使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能:
(1)完成类MyArrayClass的构造函数,申请数组的大小,请在注释//********1********后添加适当的语句。
(2)完成类MyArrayClass的析构函数,释放数组,请在注释//********2********后添加适当的语句。
(3)完成重载运算符“[]”,用来获得指定下标的数据,请在注释//********3********后添加适当的语句。
(4)完成函数SetElement(),用来设置指定下标的数据。如果数据没有超出范围,则设置数据,并返回1,否则返回0,请在注释//********4********后添加适当的语句。
注意:除在指定的位置添加语句外,并不要更改程序中的其他语句。
1 #include<iostream.h>
2 template<c
本文档预览:3600字符,共5272字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载