首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
打开考生文件夹下的解决方案文件proj1,此项目包含程序文件main.epp,其中有类MaxDivisor(“最大约数”)的定义和主函数main的定义。类MaxDivisor能够计算一个整数的最大约数,其中约数是指:对于一个整数N,除去1和它自身外,凡能整
打开考生文件夹下的解决方案文件proj1,此项目包含程序文件main.epp,其中有类MaxDivisor(“最大约数”)的定义和主函数main的定义。类MaxDivisor能够计算一个整数的最大约数,其中约数是指:对于一个整数N,除去1和它自身外,凡能整
admin
2020-04-10
47
问题
打开考生文件夹下的解决方案文件proj1,此项目包含程序文件main.epp,其中有类MaxDivisor(“最大约数”)的定义和主函数main的定义。类MaxDivisor能够计算一个整数的最大约数,其中约数是指:对于一个整数N,除去1和它自身外,凡能整除N的数即为N的约数。
程序中位于每个//ERROR ****** found ******
下的语句行有错误,请加以改正。
更正后程序的输出应该是:
555555的最大约数是:185185
注意:只能修改每个//ERROR ******found******下的那一行,不要改动程序中的其他内容。
#include<iostream>
#include<iomanip>
using namespace std;
class MaxDivisor//最大约数
{
public:
//ERROR ****found****
MaxDivisor(int n=1){count=n;}
void Print()const;
private:
const int count;
};
//ERROR *****found*****
void Print()const
{
int i;
for(i=count—1;i>1;i--)
//ERROR *****found*****
if(count/i==0)
{
cout<<count<<"的最大约数是:"<<i<<endl;
return;
}
cout<<count请打开考生文件夹下的解决方案文件proj2,该工程中包含一个程序文件main.cpp,其中有类Quadritic、类Root及主函数main的定义。一个Quadritic对象表示一个ax
2
+bx+c的一元二次多项式。一个Root对象用于表示方程ax
2
+bx+c=0的一组根,它的数据成员num_of_roots有3种可能的值,即0、1和2,分别表示根的3种情况:无实根、有两个相同的实根和有两个不同的实根。请在程序中的横线处填写适当的代码并删除横线,以实现上述类定义。此程序的正确输出结果应为(注:输出中的X~2表示x
2
):
3X~2+4X+5=0.0 无实根
4.5X^2+6X+2=0.0 有两个相同的实根:一0.666667和一0.666667
1.5X^2+2X一3=0.0 有两个不同的实根:0.896805和一2.23014
注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“//****found****”。
#1nclude<lostream>
#include<iomanip>
{}include<cmath>
using namespace std;
class Root{ //一元二次方程的根
public:
const double x1; //第一个根
const double x2; //第二个根
const int num_of_roots;//不同根的数量:0、1或2
//创建一个“无实根”的Root对象
Root():x1(0.0),x2(0.0),num_Of_roots(0){}
//创建一个“有两个相同的实根”的Root对象
Root(double root)
//********** found **********
:__________{}
//创建一个“有两个不同的实根”的Root对象
Root(double root1,double root2):x1(root1),x2(root2),mum_of_roots(2){}
void show()const{ //显示根的信息
cout<<"\t\t";
switch(num_of_roots){
case 0:
//********** found **********
________
case 1:
cout;<<"有两个相同的实根:"<<x1<<"和"<<x2;break;
default:
cout<<"有两个不同的实根:"<<x1<<"和"<<x2;break;
}
}
};
class Quadratic{ //二次多项式
public:
const double a,b,c;//分别表示二次项、一次项和常数项等3个系数
Quadratic(double a,double b,double c)
//构造函数
//**********found*********
:____________{}
Quadratic(Quadratic&x) //复制构造函数
:a(x.a),b(x.b),c(x.c){}
Quadratic add(Quadratic x)const{
//求两个多项式的和
return QuadratiC(a+x.a,b+x.b,c+x.c);
}
Quadratic sub(Quadratic x)const{
//求两个多项式的差
//**********found**********
___________
}
double value(double x)const{
//求二次多项式的值
return a * x * x+b * x+c;
}
Root root()const{//求一元二次方程的根
double delta=b * b一4 * a * c;
//计算判别式
if(delta<0.0)return Root;();
if(delta==0.0)
return Root(一b/(2 * a));
double sq=sqrt(delta);
return Root((一b+sq)/(2*a), (一b—sq)/(2*a));
}
void show()const{ //显示多项式
cout<<endl<<a<<"X^2"<<showpos<<b<<"X"<<C<<noshowpos;
}
void showFunction(){
//显示一元二次方程
show();
cout<<"=0.0";
}
};
int main(){
Quadratic q1(3.0,4.0,5.0),q2(4.5,6.0,2.0),q3(q2.sub(q1));
q1.showFunction();
q1.root().show();
q2.showFunction();
q2.root:().show();
q3.showFunction();
q3.root().show();
cout<<endl:
return 0;
}"没有约数"<<endl;
}
int main()
{
MaxDivisor obj(555555);
obj.Print();
return 0;
}
选项
答案
(1)MaxDivisor(int n=1):count(n){} (2)void MaxDivisor::Print()const (3)if(count%i==0)
解析
(1)MaxDivisor类定义中,count是const类型的整型变量,只能在成员初始化列表中完成初始化,不能在构造函数定义体内赋值,修改为:MaxDivisor(intn=1):count(n){}
(2)Print函数是MaxDivisor类的成员函数,在函数定义时需要指定在MaxDivisor的命名空间中,修改为:void MaxDivisor::Print()const
(3)Print成员函数的作用是输出count成员的最大公约数,从count一1开始遍历,逐个判断当前的i是否能整除count,第一个整除的i即为最大公约数,判断整除逻辑是count对i求模,结果为0表示整除,修改为:if(count%i==0)
转载请注明原文地址:https://www.kaotiyun.com/show/Wu8p777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
下列程序的输出结果是【】。#include<iostream>usingnamespacestd;voidfun(int&rf)}rf*=2;}intmain(){
下面是类MyChss的定义,对定义中语句描述正确的是()。classMyClass{public:voidMyClass(inta){X=a;)//①intf(inta,intb)//②{X=
以下程序中函数scmp的功能是返回形参指针s1和s2所指字符串中较小字符串的首地址。#include<string>char*scmp(char*s1,char*s2){if(strcmp(s1,s2)<0)
有如下程序:#includeusingnamespacestd;classB{public:virtualvoidf(){cout
已知基类Employee只有一个构造函数,其定义如下:Employee::Employee(intn):id(n){}Manager是Employee的派生类,则F列对Manager的构造函数的定义中,正确的是
在结构化方法中,软件功能分解属于下列软件开发中的阶段是
在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是()。
若有定义:int*p;则下列各选项中,不同于表达式“*p=*p+1;”的是()。
下选项中不属于c++的类型的是______。
请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2,此工程包含有一个源程序文件proj2.cpp,其中定义了Stack类和ArrayStack类。Stack是一个用于表示数据结构“栈”的类,栈中的元素是字符型数据。Stack为抽象类
随机试题
为了提高经过表面淬火的机体导轨面的精度,采用手工刮削较方便。( )
以下哪一项不是小肠克罗恩病的X线表现
A、苯妥英钠B、地西泮C、苯巴比妥D、丙戊酸钠E、卡马西平对癫癎部分性发作有良效
大体积混凝土的浇筑方案有()。
()地处安徽省中西部,跨长江、淮河两大流域,是淠河、史河、杭埠河三个毗邻灌区的总称。
省旅游局的两个旅游团来我市参观。你会如何沟通协调?
概念结构设计的主要成果是______。
域模式最大的好处是具有【 】登录功能,用户只要在域中有一个账户,就可以在整个网络中漫游。
Whattimeisitnow?
It’sanindustrybuiltpurely【C1】______image,buttheactors,actressesandsingerswhoturntoitforhelpliketokeepita
最新回复
(
0
)