阅读以下说明和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(){
F.igure*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)处的字句写在答题纸的对应栏内。(说明)设计一个类模板Sample用于对一个有序数组采用二分法查找元素下标。(C++程序)#include<iostream.h>#define Max 100∥最多元素个数template<class T>class Sample{T A[Max]:∥存放有序数序int n:∥实际元素个数publicSample(){}∥默认构造函数Sample(T a[],int i);∥初始化构造函数int
[试题]试题六阅读以下说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。(说明)本题将有向网(带权有向图)定义为类AdjacencyWDigraph。类中的数据成员n表示有向网中的顶点数;a为带权邻接矩阵,用于存储有向网中每一对顶点间弧上的权值;c为二维数组,存储有向网中每一对顶点间的最短路径长度;kay为二维数组,存储最短路径,kay[i][j]=k表示顶点i 到达顶点j的最短路径必须经过顶点k。类中的主要成员函数有:Input():输入有向网的顶点数、各条弧及权值,建立带权领接矩阵a。若顶
[试题]试题八阅读以下说明和C++程序,将应填入(n)处的字句写在答题纸的对应栏内。(说明)设计一个日期类Date包括年、月、日等私有数据成员。要求实现日期的基本运算,如某日期加上天数、某日期减去天数、两日期相差的天数等。在Date类中设计如下重载运算符函数:D.ate operator+(int days):返回某日期加上天数得到的日期。D.ate operator-(int days):返回某日期减去天数得到的日期。int operator-(Date&b):返回两日期相差的天数。(程序)#inclu
[试题]试题七阅读以下说明和C++程序,将应填入(n)处的字句写在答题纸的对应栏内。(说明)以下程序的功能是设计一个栈类stack<T>,并建立一个整数栈。(程序)#include<iostream.h>#include<stdliB.h>const int Max=20;∥栈大小template<class T>class stack{∥栈元素数组T s[Max];∥栈顶下标int top;public:stack(){top=-1;∥栈顶初始化为-1}v
[主观题]()阅读下列说明和C语言程序,将应填入 (n)处的语句写在答题纸的对应栏内。[说明]有一个一维数组cj,内放20个学生成绩,求平均成绩。函数ave用来求20个学生的平均成绩。[C语言函数]float ave(float a[20]){ int i;float aver,sum= (1) ;for(i=1;i<20;i++) sum= (2) ;aver= (3) ;return( (4) );}main(){ float cj[20],aver;int i;printf(“input 20
[试题]()阅读下列说明和C语言程序,将应填入 (n)处的语句写在答题纸的对应栏内。[说明]下面程序是一个带参数的主函数,其功能是显示在命令行中输入的文本文件内容。[C语言函数]#include"stdio.h"main(argc,argv) int argc; char *argv[]; { (1) ; if((fp=fopen(argv[1],”r’’))== (2) ) { printf(”file not open!\n”);exit(0);} while( (3) ) putchar( (4
[试题]()阅读下列说明和C语言程序,将应填入 (n)处的语句写在答题纸的对应栏内。[说明]设有定义 #define ITEM struct item #define SIZE sizeof(ITEM) ITEM { int num; ITEM *next; }; ITEM *head=NULL; 下述函数定义实现按插表尾形式(即每一新表元素插入至当前所生成链表的表尾之后)生成一个正向线性链表。最后指向所生成链表表头的指针作为函数值返回。为生成一个线性链表,要求输入一批整型数据,并以-1作为结束标志。请填
[试题]试题一阅读下列算法说明和算法,将应填入(n)处的语句写在答题纸的对应栏内。(说明)为了减少直接插入排序关键字的比较次数,本算法使用了二分(折半)插入法对一个无序数组R[1..n]进行排序。排序思想是对一个待插入元素,先通过二分法(折半)找到插入位置,后移元素后将该元素插入到恰当位置(假设R[]中的元素互不相同)。(算法)1.变量声明X:DataTypei,j,low,high,mid,R0..n2.每循环一次插入一个R[i]循环:i以1为步长,从2到n,反复执行①准备X<-R[i]; (1)
[试题]试题二阅读以下说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。(说明)函数MultibaseOutput(long n,int B)的功能是:将一个无符号十进制整数n转换成B(2≤B≤16)进制数并输出。该函数先将转换过程中得到的各位数字入栈,转换结束后再把B进制数从栈中输出。有关栈操作的诸函数功能见相应函数中的注释。C代码中的符号常量及栈的类型定义如下:#define MAXSIZE 32typedef struct{int *elem;/*栈的存储区*/int max; /*栈的容量
[试题]试题四阅读以下说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。(说明)将一正整数序列{K1,K2,…,K9}重新排列成一个新的序列,新序列中,比K1小的数都在K1的前面(左面),比K1大的数都在K1的后面(右面),最后调用writeDat()函数的新序列输出到文件out.dat中。在程序中已给出了10个序列,每个序列有9个正整数,并存入数组a[10][9]中,分别求出这10个新序列。例:序列 {6,8,9,1,2,5,4,7,3}经重排后成为{3,4,5,2,1,6,8,9,7}(函数)