计算机二级C++77_第1页
计算机二级C++77_第2页
计算机二级C++77_第3页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、模拟计算机二级C+ (机试)77一、改错题第1题:改错题 使用VC+6.0翻开考生文件夹下的源程序文件 l.cpp,该程序运行时有误,请 改正其中的错误,使程序正常运行,并使程序的输出结果为平均值为29最大值为 112最小值为-11注意:错误的语句在*error*的下面,修改该语句即可。 试题程序:#include < iostream >using n amespaee std ; int main()int i ,Ave,Min, Max;int data8=100Ave=0 ;for(i=0 ; i V 8;,21 , -73 , 86, 14, 0, -21 , 1 ;i+

2、)*error*Ave=datai;Ave/=8 ;cout VV "平均值为 :"VV Ave VV end1 ;Max=Min=data0 ; for(i=0 ; i V 8;i+)errorif(datai(Max)Max=dataierrorif(datai)Mi n) Mi n=datai;cout VV "最大值为:"VV MaxVV end1 ; cout VV "最小值为:"VV MinVV end1 ; return 0 ;参考答案:1、应改为“ Ave+=datai; 或“ Ave=Ave+datai ;。2、应改

3、 为“ if(datai)Max)Max=datai; 。3、应改为“ if(datai VMi n)Min=datai; 。详细解答:此题第一个for循环是求数组各个元素的和,逐次将每个元素值加起 来,而程序当中是逐个赋值的,因此在第1标识处应将“ Ave=datai 改成 “ Ave+=datai 或“ Ave=Ave+datai 。第 2处根据题意再求数 组当中元素的最大和最小值,用变量Max记录最大值,Min记录最小值,在for循环中,逐 次比拟,如果该兀素值比当前Max大,贝9 Max取该元素值,因此第2标识处正确的语句应该是“ if(datai)Max)Max=datai 。如果数

4、组中该元素值比Min小,贝Min取该元素值。因此,两个if语句中的条件判断错误,将第3标识处的语 句“ if(datai)Min)Min=datai; 改成 “ if(datai(Min)Min=datai;。二、简单应用题第2题:简单应用题 使用VC+6.0翻开考生文件夹下的源程序文件2.cpp。阅读以下函数说明和代码,完成空出局部程序。函数sum(int ANUMNUN , int n)的功能是计算矩 阵中所有非质数数字的和。提示:函数isPrime(int n)的功能是判定当前数字是否为质数,如果是那么返回true。注意:不能修改程序的其他局部,只能修改sum函数。试题程序:#inclu

5、de < iostream.h >#include < cmath >#define NUM 50int ANUMNUM=1 , 3, 5, 7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49;bool isPrime(i nt n)if(n=1) return false ;if(n=2) return true ; for(int i=2 ; i vn/2 ;i+) if(n %i=0) return false ;return true ;int sum(int ANUMNUM,int n

6、)int main() cout VV sum(A ,5) VV endl ; return 0 ;参考答案:int re=0 ;for(int i=0 ; i V n; i+) for(int j=0 ; j Vn;j+)if(!isPrime(Aij)/ 判断是否是素数,不是素数那么累加 re=re+Aij; return re ; 详细解答:矩阵 ANUMNUM 是 二维矩阵, sum 函数的参数 n 给出了矩阵 A 的 具体维数,因此矩阵A中共含有n X n个有效数。ANUMNUM中的元素可表示为 Aij , 其中 i 表示元素所在行数, j 表示元素所在的列数, i 、j 分别从 0

7、 到 n-1 范围内 变化,因此设置内外两层循环可逐个遍历整 个矩阵寻找非质数。 函数 isPrime 提 供了判断质数的方法, 对每个元 素 Aij ,调用函数 isPrime(Aij) ,判断 函数的返回值是否为假,如果 为假,说明不是质数,应该累加起来。三、综合应用题 第 3 题: 综合应用题使用 VC+6.0 翻开考生文件夹下的源程序文件 3.cpp ,其中定义了类 BA、 PA1 和 PA2 ,其中 PA1 类由 BA 类公有派生, PA2 类由 PA1 类公有派生。 上述 3 个类 的定义并不完整,请按要求完成以下操作,将程序补充完 整。程序输出结果如下:10510 5 7定义类B

8、A的构造函数,该构造函数有一个整型的参数m,在构造函数 中将m赋值给数据成员 a。请在注释1之后添加适当的语句。(2) 定义类 PA1 的构造函数,该构造函数有两个整型的参数 m 和 n , 在构造 函数中将m赋值给数据成员 b,将n作为基类BA构造函数的 参数值传入。请在 注释 2 之后添加适当的语句。(3) 定义类 PA2 的构造函数,该构造函数有 3 个整型的参数 m、n 和k,在构造函数中请将 m赋值给数据成员C,将n和k分别赋值给基类PA1构造函数 的参数m和n。请在注释3之后添加适当的语句。(4) 完成类 PA2 的成员函数 show 的定义,该函数调用基类成员函数, 输出 基类私

9、有成员 a、 b 及类 PA2 自身的数据成员 c 的值,上述 3 个 值在输出时用空格隔开。请在注释 4 之后添加适当的语句。 注意:除在指定位置添加语句之外,请不要改动程序中的其他内容 试题程序:#include V iostream.h > class BAint a ; public : /* int geta()return a ;class PA1 : public BAint b ; public :int getb()return bpublic PA1 ; class PA2 : int c ; public : ; void main()PA2 a(7 ,5,10)

10、;tout VV a.geta() VV endl ;cout VV a. getb() VV endl ; a.show(); 参考答案:1、应添加“ BA(int m)a=m ; 。2、应添加“ PAI(int m , int n):BA(n)b=m ; 。3、应添加“PA2(int m , intn , int k) : PA1(n ,k)c=m ; o4、应添加“ cout VV geta() VV "" VV getb() VV ""VVcVV end1;详细解答:根据第 1 处要求,构造函数的函数名和类名一致,显然 BA 构造函 数的名称 为

11、BA,在BA()中通过参数 m完成对成员变量a的赋值,因此构造函数的名称为 BA(int m) ,在函数内部对成员 a 赋值,故第 1 处的 语句应添加“ BA(int m)a=m ;) 根据第2处的要求,构造函数的形式为“ PA1(int m,int n) ,m赋值给PA1类 成员b,将n作为基类BA构造 函数的参数值传入,故第 2 处应添加“ PAI(int m, int n) :BA(n)b=m ; 。 根据第 3 处的要求,函数形式为 PA2(int m ,int n, int k) ,在构造函数中 将m赋值给数据成员C,将n和k分别赋值给基类PA1构 造函数的参数 m 和 n,因此第 3 处应添加“PA2(i nt m,intn,int k) : PA1( n,k)(c=m ;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论