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

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

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

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

基本操作题

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

Max is 7

提示:max()函数实现找出两个数中的最大值,并作为函数值返回。

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

1 #include<iostream>

2 using namespace std;

3 //********error********

4 int max(int a,int b)

5 {

6 if(a<b)

7 {

8 int t=a;

9 a=b;

10 b=t;

11 }

12 return b;

13 }

14 int main()

15 {

16 int m=-3;

17 int n=7;

18 //******error******

19 max(-3,n);

20 cout<<’’Max is’’<<m<<ena1;

21 return 0;

22 }

(1)int max(int&a,int&b)

(2)max(m,n);

解析:函数参数传递形式有多种:将变量名作为实参和形参、传递变量的指针和传送引用方式,将变量名作为实参和形参方式,传递是单向的,在函数执行过程中形参的值发生变化不会传回实参,而指针和引用方式在函数执行过程中形参会影响实参。函数max返回最大值,而在主函数内并没有使用其返回值,而是输出m值,可知在max函数类已将最大值存放在m里,因此max函数采用的是传递引用方式。

(1)由审题分析可知max函数采用的是传送引用方式传递参数,因此第1个标识下应该为int max(int &a,int &b)。

(2)调用max时,传递引用时直接使用变量名即可,第2个标识下应改为“max(m,n)”。

简单应用题

2.使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码,完成空出部门的程序。实现函数sort(int A[],int n),用冒泡法将数组排序。

提示:所谓冒泡法,就是每次把相邻的两个数交换,较大的数交换到后面。这样下标从0到n-1的数与其后面相邻的数交换,可以把最大的数交换到数组的末端。进行n次下标从0到n-1的交换,则数组则会变成有序的,而且是由大到小的顺序。

注意:不能修改程序的其他部分,并且不能删除其他的部分,也不能修改程序的结构。

1 #include<iostream.h>

2 #define N 10

3 void sort(int A[N],int n)

4 {

5

6 }

7 int main()

8 {

9 int A[N]={5,7,4,6,10,13,78,-4,9,20};

10 sort(A,10);

11 for(int i=0;i<sizeof(A)/sizeof(int);i++)

12 {

13 cout<<A[i]<<’ ’;

14 }

15 cout<<end1;

16 return 0;

17 }

1 int i,j,k,t;

2 for(i=0;i<n-1;i++)

3 {

4 for(k=i,j=i+1;j<n;j++)

5 if(A[k]<A[j])//如果前面的比后面的小则需要交换

5 k=j;

7 if(k!=i) //交换

8 {

9 t=A[i];

10 A[i]=A[k];

11 A[k]=k;

12 }

13 }

解析:函数sort(int A[],int n)用冒泡排序法把数组进行从大到小的排序,冒泡法排序利用了求数组中最小值及其位置的算法,首先从n个数中找出最大值,放在第一个元素位置上,再从剩下的n-1个数中找出最大值,放在第二个元素位置上,这样不断重复下去,直到剩下最后一个数。

(1)以数组“A[]={3,8,7,6,5,0,1,2,9,4}”为例来说明具体的排序过程,第一次选择:第一步从A[0]-A[9]中找最大值max及下标k,max=9,k=8;第二步交换a[0]与最大值a[8]的值;第一次结束后a[0]已存放了最大值,下一次比较就不必再经过它了,而从a[1]开始,如此循环。从例中可以看出10个元素要进行九次比较,n个元素要进行n-1次比较。设置两层循环,外层循环变量i从0到n-1,内层循环变量从i开始到n-1,在内层循环中找最大值,如果最大值的下标k和i不同,则交换,实现选择法排序。

(2)在内层循环体内,如果最大值的下标k和i不同,则用一个临时变量记录第i个元素,然后将第k个元素赋值给第i个元素,临时变量值赋给第k个元素,如此完成两个元素的交换。

综合应用题

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

(1)利用define定义常量TRUE为1,定义常量FALSE为0,请在注释//********1********后添加适当的语句。

(2)在类A2前增加A1的声明,请在注释//********2********后添加适当的语句。

(3)在类C1中声明友元函数bool func(A2a a,A1&b),请在注释//********3********后添加适当韵语句。

(4)实现函数bool func(A2&obj1,A1&obj2)功能,检查两个类的值都为TRUE,则返回TRUE,请在注释//********4********后添加适当的语句。

注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。

1 #include<iostream.h>

2 //********1********

3

4 #define FALSE 0

5 //********2********

6

7 class A2

8 {

9 private:

10 bool m_A2;

11 friend bool func(A2& obj1,A1&obj2);

12 public:

13 A2()

14 {

15 m_A2=FALSE;

16 }

17 public:

18 void setA2(bool n)

19 {

20 m_A2=n;

21 }

22 };

23

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号