首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请打开考生文件夹下的解决方案文件proj2,其中有矩阵基类MatrixBase、矩阵类Matrix和单位阵UnitMatrix的定义,还有main函数的定义。请在横线处填写适当的代码并删除横线,以实现上述类定义。此程序的正确输出结果应为: 1 2
请打开考生文件夹下的解决方案文件proj2,其中有矩阵基类MatrixBase、矩阵类Matrix和单位阵UnitMatrix的定义,还有main函数的定义。请在横线处填写适当的代码并删除横线,以实现上述类定义。此程序的正确输出结果应为: 1 2
admin
2020-12-21
33
问题
请打开考生文件夹下的解决方案文件proj2,其中有矩阵基类MatrixBase、矩阵类Matrix和单位阵UnitMatrix的定义,还有main函数的定义。请在横线处填写适当的代码并删除横线,以实现上述类定义。此程序的正确输出结果应为:
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
1 0 0 0 0 0
0 1 0 0 0 0
0 0 1 0 0 0
0 0 0 1 0 0
0 0 0 0 l 0
0 0 0 0 0 1
注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“//****found****。
#include
using namespace std;
//矩阵基础类,一个抽象类
class MatrixBase{
int rows,cols;
public:
MatrixBase(int roWS,int cols):roWS(rOWS),cols(cols){}
int getRows()const{return rows;}//矩阵行数
int getCols()const{return cols;}//矩阵列数
virtual double getElement(int r,int c)const=0;//取第i个元素的值
void show()const{//分行显示矩阵中所有元素
for(int i=0;i
cout<<endl:
for(int j=0;j
//**********found**********
cout<<________<<““:
}
}
};
//矩阵类
class Matrix:public MatrixBase{
double*val:
public:
//**********found**********
Matrix(int rOWS,int cols,double m[]=NULL): ________}
//**********found**********
val=________;
for(int i=0;i<rows* cols;i++)
val
=(m==NULL?0.0:m
);
}
~Matrix(){delete[]val;}
double getElement(int r,int c)eonst{return val[r*getCols()+c];}
};
//单位阵(主对角线元素都是1,其余元素都是0的方阵)类
class UnitMatrix:public MatrixBase{
public:
UnitMatrix(int rows):MatrixBase(rows,rows){}
//单位阵行数列数相同
double getElement(int r,int c)const{
//**********found**********
if(________)return 1.0:
retulm 0.0;
}
};
int main(){
MatrixBase*m;
double d[][5]:{{l,2,3,4,5},{2,3,4,5,6},{3,4,5,6,7}};
m=new Matrix(3,5,(double*)d);
m->show();
delete m;
cout<<endl:
m=new UnitMatrix(6);
m->show();
delete m:
return 0;
}
选项
答案
(1)getElement(i,j) (2)MattixBase(rows,cols) (3)new double[rows*cols] (4)r==c
解析
本题考查MatrixBase类及其派生类Matrix和unitMatrix,其中涉及构造函数、const函数、纯虚函数、动态数组和析构函数。派生类的构造函数要涉及基类的初始化,因此必须使用成员初始化列表。动态数组要先使用new语句分配空间,再赋值(1)主要考查考生对纯虚函数的掌握,函数功能是分行显示矩阵中所有元素。因此在这里要输出行为i、列为j的元素,使用纯虚函数getElement(i,j)实现,输出语句为cout<
转载请注明原文地址:https://jikaoti.com/ti/rMl0FFFM
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
下列程序的运行结果是 #include voidfun(int*a,int*b) {int*k; k=a;a=b;b=k; } voidmain() {inta=3,b=6,*x=&a,*y=&b;
已知类Myclass的定义如下:classMyClass{public:MyClass(intD){data=d;}~MyClass(){}private:intdata;};下列对
有如下程序: #include<iostream> using namespace std; class BASE { public: ~BASE(){cout<<"BASE";} }; cl
使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码,完成空出部分程序,使该程序输出倒9×9口诀。程序分析:分行与列考虑,共9行9列,设置两个变量i和j,i控制行,j控制列。程序运行结果如下:1*9=9
使用VC6打开考生文件夹下的源程序文件modil.cpp。本程序要求输入一字符串,然后将其中的小写字母改变成大写字母,字符可能输入多行,当输入字符“?”时,默认字符输入结束,最后把结果输出到界面。注意:不要改动main函数,不能增行或删行,也不能
生成派生类对象时,派生类构造函数调用基类构造函数的条件是()。
学校的每个社团都有一名团长,且一个同学可同时担任多个社团的团长,则实体团长和实体社团间的联系是
若实体A和B是一对多的联系,实体B和C是一对一的联系,则实体A和C的联系是
已知将运算符’’+’’和’’*’’作为类Complex的成员函数重载,设c1和c2是类Complex的对象,则表达式c1+c2*c1等价于()。
下列符号中不属于C++关键字的是()。
随机试题
汽车空调系统的日常维护有哪些内容?
委托人隐瞒事实真相或有欺诈行为时,经纪人()。
E公司是一个生产和销售通讯器材的股份公司。假设该公司适用的所得税税率为25%。对于明年的预算出现三种意见:第一种方案:维持目前的生产和财务政策。预计销售45000件,售价为240元/件,单位变动成本为200元,固定成本为120万元。公司的资本结构为负债4
在“我问客答”的讲解方法中,如果游客回答错误,导游应立即纠正。()
在Windows操作系统中,如果想重复上一步的操作,可以使用的快捷键是________。
填入下列横线处的词语,最恰当的一组是:在一般商品生产和交换领域,价值规律的调节功能日臻完美。在此背景下,一些求富者纷纷将_____________的目光盯上资金、土地等“生产要素”领域,意图从这些高度垄断的领域之中,_____________尽可能更多的金
指令字长为12位,每个地址码为3位,采用扩展操作码的方式,设计4条三地址指令、16条二地址指令、64条一地址指令和16条零地址指令。给出一种操作码的扩展方案。
Whatwasthewomandoingwhenthepolicemanfoundher?
Letmespeakfirsttoparents.Youaretheoneswhoplant,orfailtoplant,theseedsofcharacterinyourchildren.Tryfromt
Whathappenedafterthemanbuilthisfirstcomputer?
最新回复
(
0
)