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

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

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

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

基本操作题

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

平均值为:29

最大值为:112

最小值为:-11

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

1 #include<iostream>

2 using namespace std;

3 int main()

4 {

5 int i,AvetMin,Max;

6 int data[8]={0,112,43,78,-11,-6,7,9};

7 Ave=0;

8 for(i=0;i<8;i++)

9 //******error******

10 Ave=data[i];

11 Ave/=8;

12 cout<<’’平均值为:’’<<Ave<<end1;

13 Max=Min=data[0];

14 for(i=0;i<8;i++)

15 {

16 //******error******

17 if(data[i]<Max)Max=data[i],

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

19 if(data[i]>Min) Min=data[i];

20 }

21 cout<<’’最大值为:’’,<<Max<<end1;

22 cout<<’’最小值为:’’<<Min<<end1;

23 return 0;

24 }

(1)Ave+=data[i];或Ave=Ave+data[i];

(2)if(data[i]>Max)Max=data[i];

(3)if(data[i]<Min)Min=data[i];

解析:该程序的功能是要求数组的平均值、最大值和最小值,求平均值时先求出数组各个元素之和,然后再去求平均值;求最大最小值可以采取逐个比较的方法求得。

(1)观察程序可知,第一个for循环是求数组各个元素的和,逐次将每个元素值加起来,而程序当中是逐个赋值,因此第1标识处应将Ave=data[i]改成Ave+=data[i]或Ave=Ave+data[i]。

(2)根据题意再求数组当中元素的最大最小值,用变量Max记录最大值,Min记录最小值,在for循环中,逐次比较,如果该元素值比当前Max大,则Max取该元素值,因此第2标识处正确的应该是if(data[i]>Max)Max=data[i]。

(3)同样如果数组该元素值比Min小,则Min取该元素值。因此,两个if中条件判断错误,第3标识处“if(data[i]>Min)Min=data[i]”改成“if(data[i]<Min)Min=data[i]”。

简单应用题

2.使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码,完成空出部分程序。函数sum(int A[NUM][NUM],int n)实现的功能是计算矩阵中所有非质数数字的和。

提示:函数isPrime(int n)的功能是判定当前数字是否为质数,如果是则返回true。

注意:不能修改程序的其他部分,只能修改sum()函数。

1 #include<iostream.h>

2 #include<cmath>

3 #define NUM 50

4 int A[NUM][NUM]=

5 {

6 {10,13,59,70,6},

7 {2,4 0,8 9,92,9},

8 {14,55,71,11,19},

9 {79,68,83,97,101},

10 {102,10001,23,45}

11 };

12 bool isPrime(int n)

13 {

14 if(n==1)

15 return false;

16 if(n==2)

17 return true;

18 for(int i=2;i<n/2;i++)

19 {

20 if(n%i==0)

21 return false;

22 }

23 return true;

24 }

25 int sum(int A[NUM][NUM],int n)

26 {

27

28 }

29 int main()

30 {

31 cout<<sum(A,5)<<end1;

32 return 0;

33 }

1 int re=0;

2 for(int i=0;i<n;i++)

3 {

4 for(int j=0;j<n;j++)

5 {

6 if(!isPrime(A[i][j]))//判断是否是素数,不是素数则累加

7 {

8 re=re+A[i][j];

9 }

10 }

11 }

12 return re;

解析:函数sum(int A[NUM][NUM],int n)的功能是实现计算矩阵A[NUM][NUM]中所有非质数数字的和,在计算累加和之前需先判断该数是否是质数,不是质数则累加起来,可用循环来实现累加求和。

(1)矩阵A[NUM][NUM]是2维矩阵,sum函数的参数n给出了矩阵A的具体维数,因此矩阵A中共含有n×11个有效数。

(2)A[NUM][NUM]中元素可表示为A[i][j],其中i表示元素所在行数,j表示元素所在的列数,i、j分别从0到n-1范围内变化,因此设置内外两层循环可逐个遍历整个矩阵寻找非质数。

(3)函数isprime提供了判断质数的方法,对每个元素A[i][j],调用函数isprime(A[i][j]),判断函数的返回值是否为假,如果为假说明不是质数,应该累加起来。

综合应用题

3.使用VC6打开考生文件夹下的源程序文件modi3.cpp,其中定义了类baseA、priA1和priA2,其中priA1类由baseA类公有派生,priA2类由priA1类公有派生。上述三个类的定义并不完整,请按要求完成下列操作,将程序补充完整。

程序输出结果如下:

10

5

10 5 7

(1)定义类baseA的构造函数,该构造函数有一个整型的参数m,在构造函数中请将m赋值给数据成员a。请在注释“//********1********”之后添加适当的语句。

(2)定义类priA1的构造函数,该构造函数有两个整型的参数m和n,在构造函数中请将m赋值给数据成员b,将n作为基类baseA构造函数的参数值传入。请在注释“//**

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号