定义一个Triangle类表示三角形,其中包括三个double型变量a、b、c,分别表示三条边长。为该类定义两
阅读以下说明和C++程序,将应填入(n)处的语句写在的对应栏内。
【说明】
以下程序的功能是计算三角形、矩形和正方形的面积并输出。
程序由4个类组成:类Triangle、Rectangle和Square分别表示三角形、矩形和正方形;抽象类Figure提供了一个纯虚拟函数getArea(),作为计算上述3种图形面积的通用接口。
【C++程序】
include<iostream.h>
include<math.h>
class Figure {
public:
virtual double getArea()=0; //纯虚拟函数
};
class Rectangle:(1){
protected:
double height;
double width;
public:
Rectangle() {};
Rectangle(double height,double width) {
this->height=height;
this->width=width;
}
double getArea() {
return (2);
}
};
class Square:(3){
public:
Square(double width){
(4);
}
};
class Triangle:(5){
double la;
double lb;
double lc;
Public:
Triangle(double la, double lb, double lc) {
This->la=la; this->lb=lb; this->lc=lc;
}
double getArea() {
double s = (la+lb+±c)/2.0;
return sqrt(s,(s-la)*(s-lb)*(s-Ic));
}
};
void main() {
Figure*figures[3]={
new Triangle(2,3,3), new Rectangle(5,8), new SqUare(5));
for(int i=0;i<3;i++){
cout<<"figures["<<i<<"]area="<<(figures[i])->getArea()<<endl;
}
}
●试题六
阅读以下说明和C++程序,将应填入(n)处的语句写在答题纸的对应栏内。
【说明】
以下程序的功能是计算三角形、矩形和正方形的面积并输出。
程序由4个类组成:类Triangle、Rectangle和Square分别表示三角形、矩形和正方形;抽象类Figure提供了一个纯虚拟函数getArea(),作为计算上述3种图形面积的通用接口
【C++程序】
#include<iostream.h>
#include<math.h>
class Figure{
public:
virtual double getArea()=0:∥纯虚拟函数
};
class Rectangle: (1) {
protected:
double height;
double width;
public:
Rectangle(){};
Rectangle(double height,double width){
this->height=height;
this->width=width;
}
double getArea(){
return (2) ;
}
};
class Square: (3) {
public:
Square(double width){
(4) ;
}
};
class Triangle: (5) {
double la;
double Ib;
double lc;
public:
Triangle(double la,double lb,double lc){
This->la=la;this->lb=lb;this->lc=lc;
}
double getArea(){
double s=(la+lb+±c)/2.0;
return sqrt(s*(s-1a)*(s-1b)*(s-1c));
}
};
void main(){
Figure*figures[3]={
new Triangle(2,3,3),new Rectangle(5,8),new SqUare (5) );
for (int i=0;i<3;i++){
cout<<"figures["<<i<<"]area="<<(figures[i])->getArea()<<endl;
}
}
阅读以下说明和Java源程序,将应填入(n)处的字句写在答题纸的对应栏内。
说明
以下程序的功能是计算三角形、矩形和正方形的面积并输出。
程序由5个类组成:AreaTest是主类,类Triangle、Rectangle和Square分别表示三角形、矩形和正方形,抽象类Figure提供了一个计算面积的抽象方法。
程序
public class AreaTest{
public static void main(String args[]){
Figure[]figures={
new Triangle(2,3,3),new Rectangle(5,8), new Square(5)
};
for(int i=0;i<figures.1ength;i++){
System.out.println(figures[i]+"area="+figures[i].getArea());
}
}
}
public abstract class Figure{
public abstract double SetAJea();
public class Rectangle extends (1) {
double height;
double width;
public Rectangle(double height,double width){
this.height=height;
this.width=width;
}
public String toString(){
return "Rectangle:height="+height+",width="+width+":";
}
public double getArea() { return (2);
} } public class Square extends (3) {
public Square(double width) {
(4);
}
public String toString() {
return "Square:width="+width+":";
} } public class Triangle extends (5). {
double la;
double lb;
double lc;
public Triangle(double la,double lb,double lc) {
this.la=la; this.lb=lb; this.lc=lc;
public String toString(){
return "Triangle: sides="+la+","+lb+","+lc+":";
public double getArea() {
double s=(la+lb+lc)/2.0;
return Math.sqrt(s*(s-la)*(s-lb)*(s?1c));
}
}
设计一个point(点)类: (1)该类具有成员变量x,y(表示点的横、纵坐标); (2)定义一个有参构造方法point(int x,int y),将其一对坐标值作为参数,其中x,y为给定坐标值; (3)定义一个无参的构造方法point()(令两坐标值均为0); (4)设计一个实例方法distance(point p1,point p2),实现求坐标轴上两个点的距离(Java中的开平方根函数为Math.sqrt()),其方法的声明为:double distance(point p1,point p2) 。 编写Test类,在其main方法中创建2个point对象,对应点(10,10)和点(20,25),再调用distance(point p1,point p2)方法计算出两点之间的距离并输出该值。
试题七(共 15 分)
阅读下列说明、图和Java 代码,回答问题1 至问题3,将解答写在答题纸的对应栏内。
[说明]
已知四个类之间的关系如图 7-1 所示,分别对每个类的方法进行编号,例如 Shape的 perimeter()为 1 号,表示为“1:perimeter()” ,Rectangle 类的 perimeter()为 2 号,表示为“2:perimeter()” ,依此类推,其中,每个类的 perimeter方法签名相同。
[Java 代码]
Triangle tr = new Triangle();
Square sq = new Square();
Shape sh = tr;
[问题 1] 关于上述 Java代码中 sh 和 tr 的以下叙述中,哪两个是正确的(写出编号) 。
① sh 和 tr 分别引用同一个对象;
② sh 和 tr 分别引用同一类型的不同的对象;
③ sh 和 tr 分别引用不同类型的不同对象;
④ sh 和 tr 分别引用同一个对象的不同拷贝;
⑤ sh 和 tr 所引用的内存空间是相同的。
[问题 2] 写出下面消息对应的方法编号(如果该消息错误或者没有对应的方法调用,请
填写“无” ) 。
tr.height() (1)
sh.perimeter() (2)
sq.height() (3)
sq.perimeter() (4)
sh.height() (5)
tr.perimeter() (6)
[问题 3] 下列赋值语句中哪两个是合法的(写出合法赋值语句的编号) 。
① sq = sh; ② sh = tr; ③ tr = sq; ④ sq = tr; ⑤ sh = sq;
假定用户没有给一个名为MyClass的类定义析构函数,则系统为其定义的默认析构函数首部形式为上【 】。
下面的类定义中,如果要为其添加一个析构函数,对于析构函数定义正确的是()。 class TlestClass { private: int a: public: TestClass(int giva_a=0) {a=give_a;} }
A.~void TestClass (){}
B.~TestClass void(){}
C.void~TestClass(){}
D.~TestClass(){}