6π-2πx
6π-πx2
12π-2πx
36π-2πx
36π-πx2
第1题:
使用VC6打开考生文件夹下的工程test7_3,此工程包含一个源程序文件test7_3.cpp,其中含有一个类Circle的定义,但该类的定义并不完整。请按要求完成下列操作,将类Circle的定义补充完整。
(1)为类Circle增加一个构造函数,该函数有一个参数,并在构造时将该参数值赋给成员radius。将该函数实现为一个非内联函数,并且使用参数列表的方式将类成员赋值。请在注释“//**1**”之后添加适当的语句。
(2)为类Circle增加一个成员函数print(),使得可以输出有关圆的信息,比如下列程序
Circle c;
c.SetRadius(5);
c.Print();
将输出:The circle has radius of 5!
请在注释“//**2**”之后添加适当的语句。
(3)完成友元函数void CompareR(Circle *cl,Circle*c2)的定义,在屏幕中输出c1与c2比较radius大小结果,要求使用 if-else结构完成。请在注释“//**3**”之后添加适当的语句。
输出结果如下;
The circle has radus of 5!
The circle has radius of 10!
c1<c2
注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
源程序文件test7_3.cpp清单如下:
include<iostream.h>
class Circle{
public:
Circle():radius(5){}
//**1**
void SetRadius(int r) {radius=r; }
int GetRadius() {return radius; }
//**2**
friend void CompareR(Circle *c1,Circle*C2);
private:
int radius;
};
void CompareR(Circle *c1,Circle *C2)
{
//**3**
cout<<"c1>c2"<<endl;
else
if((c1->GetRadius())==(c2->GetRadius()))
cout<<"c1=c2"<<endl;
else
if((c1->GetRadius())<(c2->GetRadius()))
cout<<"c1<c2"<<endl;
}
void main()
{
Circle c1;
c1.SetRadius(5);
C1.Print();
Circle c2(10);
c2.Print();
CompareR(&c1,&c2);
}
第2题:
有如下类定义:
class Point{
public:
Point(int xx=0,int yy=0):x(xx),y(yy) { }
private:
int x,y;
};
class Circle:public Point{
public:
Circle(int r):radius(r) { }
private:
int radius;
};
派生类Circle中数据成员的个数是( )。
A、3
B、1
C、5
D、2
答案:A
解析:本题考查默认构造函数和带参数的构造函数,题目中定义一个对象a(2)以及对象数组b[3],共执行3次构造函数,对象指针不调用构造函数。
第3题:
●试题六
阅读下列程序说明和C++代码,将应填入(n)处的字句写在答卷的对应栏内。
【说明】
①为类Circle增加一个构造函数,该函数有一个参数,并在构造时将该参数值赋给成员radius。将该函数实现为一个非内联函数,并且使用参数列表的方式将类成员赋值。
②为类Circle增加一个成员函数print(),使得可以输出有关圆的信息,比如下列程序
Circle c;
C.SetRadius (5) ;
C.Print();
将输出:The circle has radius of 5!
③完成友元函数void CompareR(Circle *c1,Circle *c2)的定义,在屏幕中输出c1与c2比较radius大小结果,要求使用if-else结构完成。
输出结果如下:
The circle has radus of 5!
The circle has radius of 10!
c1<c2
源程序文件test7_3.cpp清单如下:
#include<iostream.h>
class Circle{
public:
Circle():radius (5) {}
(1)
void SetRadius(int r) { radius=r; }
int GetRadius() { return radius; }
(2)
friend void CompareR(Circle *c1,Circle *c2);
private:
int radius;
};
void CompareR(Circle *c1,Circle *c2)
{
(3)
cout<<"c1>c2"<<endl;
else
if ((c1->GetRadius())==(c2->GetRadius()))
cout<<"c1=c2"<<endl;
else
if ((c1->GetRadius())<(c2->GetRadius()))
cout<<"c1<c2"<<endl;
}
void main()
{
Circle c1;
c1.SetRadius (5) ;
c1.Print();
Circle c2 (10) ;
c2.Print();
CompareR(&c1,&c2);
}
●试题六
【答案】
(1)Circle(int rad):radius(rad){}
(2)void Print(){cout<<"The circle has radius of "<<radius<<"!\n";}
(3)if ((c1->GetRadius())>(c2->GetRadius()))
【解析】本题考查成员函数的定义与实现,友元函数,if分支语句等知识点。友元函数的类体外的定义与一般函数一样,注意(3)中if-else的使用,else总是与其最近的那个if配对使用的,书写时最好使用缩进格式,将配对的if-else对齐,以免出错。
第4题:
根据程序中的注释将下列缺失部分补充完整。
class Point{
int x,y; //点的x和y坐标
public:
Point(int xx=0,int yy=0):x(xx),y(yy){}
};
class Circle{
Point center;//圆心位置
int radius; //半径
public: //利用cx和cY分别初始化圆心的x和y坐标
circle(int cx,int cy,int r): 【 】 ,radius(r){}
void area()(cout<<3.14159*radius*radius<<end1;)
};
第5题:
使用VC6打开考生文什夹下的工程test1_3。此工程包含一个test1_3.cpp,其中定义了类circle和column,其中column类由circle类protected派生,但两个类的定义并不完整。请按要求完成下列操作,将程序补充完整。
(1)定义类circle的保护数据成员r和area,它们都是double型的数据。请在注释“//**1**”之后添加适当的语句。
(2)添加类circle的无参数的构造函数,使circle对象的r默认值为0,请在汁释“//**2**”之后添加适当的语句。
(3)添加派生类column构造函数的定义,传入的参数为double型的height和radius,并将具分别赋值给数擗成员h和基类的r,请在注释“//**3**”之后添加适当的语句。
(4)完成派生类column的成员函数print的定义,使其以格式“r=_area=_”先输出半径r和底面积area,再以格式“h=_vol=_”输出高h和体积vol的值,请在注释“//**4**”之后添加适当的语句。
输山结果如下:
r=1 area=3.1416
h=2 vo1=6.2832
注意:除在指定的位置添加语句外,请不要改动程序中的其他语句。
源程序文件test1_3.cpp清单如下:
include<iostream.h>
const double pi=3.1416;
class circle
{
protected:
//**1**
public:
//**2**
circle(double radius){ r=radius;}
void print()
{
area=r*r*pi;
cout<<"r="<<r<<" "<<"area="<<ared<<endl;
}
};
class column: protected circle
{
protected:
double h;
public:
//** 3 **
void print()
{
// ** 4 **
}
};
void main()
{
column col(1.0,2.0);
Col.print();
}
第6题:
( 13 )补充完整下面的类定义:
const double PI=3 .14;
class Circle{ // 圆形物体的抽象基类
protected:
double r; // 半径
public:
Circle ( double radius=0 ) : r ( radius ) {}
【 13 】 ; // 计算圆形物体表面积的纯虚函数声明
};
class Cylinder:public Circle { // 圆柱体类
double h; // 高度
public:
Cylindr ( double radius=0, doubli height=0 ) :
Circle ( radius ) , h ( height ) {}
Virtual double Area () { // 计算圆柱体的表面积
return 2*PI*r* ( r+h ) ;
}
};
第7题:
阅读以下说明和C++代码,填入(n)处。
[说明]
以下C++代码使用虚函数实现了同一基类shape派生出来的Class rectangle、Class triangle、Class circle实现了计算矩形、圆形面积的计算。仔细阅读以下代码,将(n)处语句补充完整。
[代码5-1]
include<iostream.h>
define PI 3.14159
class shape {//基类
protected:
(1);
public:
(2);
(3);
};
[代码5-2]
class rectangle: public shape {
public:
rectangle (int x2,int y2,int r2): (4) {};
double area ( ) {return x*y; };
};
class circle: public shape {
public:
circle (int x3,int y3,int r3):(5){};
double area ( ) {return r*r*PI; };
};
[代码5-3]
void main ( )
{
rectangle r (10,20,0);
circle c (0,0,30);
shape (6);
cout<<"长方形面积="<<s1->area ( ) <<endl;
cout<<"圆形面积="<<s2->area ( ) <<endl;
}
[运行结果]
长方形面积=200
圆形面积=2827.43
第8题:
阅读下列程序说明和C代码,把应填入其中n处的字句写在对应栏内。
【说明】
下面的程序能够计算不同图形的面积。程序中把每个图形的数据定义成结构类型,利用共同体类型描述2种图形的数据。程序根据输入参数代表的图形类型,求出图形的面积并输出。
【程序】
struct Circle
{
float x,y; /*圆心位置*/
float r; /*圆半径*/
};
struct Rectangle
{
float width; /*矩形宽*/
float length; /*矩形长*/
};
union shape
{
struct Circle circle;/*圆数据结构*/
struct Rectangle rectangle;/*矩形数据结构*/
};
main()
{
union shape a;
float area;
int i;
printf(“input number: 1circle,2rectangle,3 end\n”);
scanf("%d",&i);
while (1) /*循环接收输入,并计算输出*/
{
switch(i)
{
case 1:printf(“input radius:\n”);
scanf(“%f”, (2);/*共同体类型变量接收输入*/
area=3.1415926* (3);
printf(“the area of circle=%f\n”,area);
break;
case 2:printf(“input width and length :\n”);
seanf(“%f,%f”, (4);/*共同体类型变量接收输入*/。
area=(5);
printf(“the area of rectangle=%f\n”,area);
break;
}
printf(“input number:1 circle,2 rectangle,3 end\n”);
scanf(“%d”,&i);
}
}
第9题:
有如下程序:
#include<iostream>
using namespace std;
class Point{
int x, y;
public:
Point(int x1=0, int y1=0):x(x1), y(y1){}
int get(){return x+y;)
};
class Circle{
Point center;
int radius;
public:
Circle(int CX, int cy, int r):center(cx, cy), radius(r){}
int get(){return center. get()+radius;}
};
int main(){
circle c(3, 4, 5);
cout<<c. get()<<end1;
return ():
}
运行时的输出结果是( )。
A) 5
B) 7
C) 9
D) 12
A.
B.
C.
D.
第10题: