首页 > 全部 > 二级C++ > 国家二级C++机试(操作题)模拟试卷542

国家二级C++机试(操作题)模拟试卷542

本单篇文档共5991字,内容预览3600字,预览为有答案版,源文件无水印,下载后包含无答案空白卷版和有答案版,同时也有计算机类NCRE全国计算机二级整科真题模拟题,讲义课件,思维导图,易错高频题等下载。
二级C++ 章节练习 4704人下载
价格: 2.00 原价:¥8.00
收藏

国家二级C++机试(操作题)模拟试卷542

基本操作题

1.使用VC6打开考生文件夹下的源程序文件modi1.cpp,该程序运行时有错,请改正其中的错误,使程序正确运行,并且使程序输出的结果为:

Hello Visual C++!

Hello Visual C++!!

注意:错误的语句在//******error******的下面,修改该语句即可。

1 #include<iostream.h>

2 class CMyObject

3 {

4 public:

5 CMyObject()

6 {

7 //******error******

8 cout<<’’Hello,

9 ’’Visual C++!’’<<end1;

10 }

11 CMyObject(int n)

12 {

13 //******error******

14 cout<<’’Hello,\n

15 visual C++!!’’<<end1;

16 }

17 //******error******

18 ∧CMyObject()

19 {

20 }

21 };

22 void main()

23 {

24 CMyObject obj1;

25 CMyObject obj2(0);

26 }

(1)cout<<’’Hello,’’

(2)cout<<’’Hello,\

(3)~CMyObject()

解析:程序当中定义了类CMyObject,含有两个构造函数和一个析构函数,在构造函数内部均使用cou输出一段字符。

(1)由程序的运行结果可知,语句CMyObject obj1;定义obj1对象调用默认的构造函数,此时屏幕上输出“Hello Visual C++!”,cout流中的数据是用流插入运算符“<<”顺序加入的,第1个标识下“Hello,”字符串插在输出流中,因此必须加双引号引用起来,即第1个标识下应该为“cout<<’’Hello,’’”。

(2)第2个标识下“\n”表示换行,与要求的输出结果不同, 因此第2个标识下应改为“cout<<’’Hello,\”。

(3)析构函数是一个特殊的函数,其函数名与类名相同,并在其名加“~”,用来与构造函数加以区别,因此第3个标识下应改为“~CMyObject()”。

简单应用题

2.使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码。函数MergeAndSort(int s[],int e[],int a[],int m,int n)实现将两个数组合并。这两个数组已经有序,按照由小到大的顺序排列。

例如:

e[]={1,3,5,6},m是数组e的长度,即为4。

a[]={2,4,5,7,11,13},n是数组a的长度,即为6。

则执行的结果为:s[]={1,2,3,4,5,6,7,11,13}

补充函数fun(int s[],int e[],int a[],int m,int n),使之实现上述要求。

注意:请勿改动主函数。

1 #include<iostream.h>

2 void MergeAndSort(int s[], int e[],int a[],int m,int n]

3 {

4

5 }

6 int main()

7 {

8 int data[20],i;

9 int a[]={1,3,5,6};

10 int b[]={2,4,5,7,11,13};

11 cout<< ’’a[]=’’;

12 for(i=0;i<4;i++)

13 cout<<a[i]<<’,’;

14 cout<<end1;

15 cout<<’’b[]=’’;

16 for(i=0;i<6;i++)

17 cout<<b[i] << ’,’;

18 cout<<end1;

19 MergeAndSort(data,a,b,4,6);

20 cout<<’’s[]=’’;

21 for(i=0;i<9;i++)

22 cout<<data[i]<<’,’;

23 cout<<end1

24 return 0;

25 }

1 int i,j,k;

2 i=0;

3 j=0;

4 k=0;

5 while(i<m&&:j<n)

6 {

7 if(e[i]<a[j])

8 {

9 s[k++]=e[i++];//取小的,因为从小到大排序

10 }

11 else if(e[i]==a[j])//相等,取e[i]或a[j]都可

12 {

13 s[k++]=e[i];

14 i++;

15 j++;

16 }

17 else //e[i]>a[j],取小的a[j]

18 {

19 s[k++]=a[j++];

20 }

21 }

22 while( i<m) s[k++] =e[i++];//如果数组e后面还有没有加进来的元素,则加进去

23 while(j<n) s[k++] =a[j++];//如果数组a后面还有没有加进来的元素,则加进去

解析:函数MergeAndSort(int s[],int e[],inta[],int m,int n)实现将数组e和数组a的合并,这两个数组已经照由小到大的顺序排列,因此只需逐个比较e数组和a数组的元素值,每次取两个元素值的小的,如果相等则取两个当中的任意一个均可。

(1)由审题分析可知,可设置循环来逐个读取e数组和a数组的元素值,然后选择小的元素放在数组s中,如果相等则取a数组元素或e数组元素均可,可以利用ifelse语句来进行判断。

(2)由于数组e和数组a长度可能不一定相同,因此在循环结束之后,还需要把长度长的数组的剩余的元素添加到s数字中,即循环结束后如果e数组内还有字符的话把e数组内剩下的字符添加到S数组内,同样如果a数组内还有字符的话把a数组内剩下的字符添加到s数组内。

综合应用题

3.使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能:

(I)定义CMyTime的私有成员函数m_year、m_month 类型为int,请在注释//********1********后添加适当的语句。

(2)补充完成CMyTime的构

本文档预览:3600字符,共5991字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载

剩余未完,查看全文
收藏
国家二级C++机试(操作题)模拟试卷542

推荐资源

客服

扫码添加客服微信

热线

官方客服

如遇问题,请联系客服为您解决

电话客服:

客服微信:pujinet

工作时间:9:00-18:00,节假日休息

公众号

扫码关注微信公众号