homework 发表于 2021-8-19 10:30:38

《C》21秋东师模拟题答案参考

《C》考前练兵
1.[问答题] 设计一个立方体类Box,使它能计算并输出立方体的体积和表面积。 要求:    Box类包含三个私有数据成员:a(立方体边长)、volume(体积)和area(表面积);Box类包含有构造函数及seta()(设置立方体边长)、getvolume()(计算体积)、getarea()(计算表面积)和disp()(输出体积和表面积)。

    答:——参考程序:
#include<iostream.h>
class Box
{
float a;
float volume;
float area;
public:
Box(){}
Box(float r){a=r;}
void seta(float r){a=r;}
void getvolume(){volume=a*a*a;}
void getarea(){area=6*a*a;}
void disp() { cout<<"体积:"<<volume<<",表面积:"<<area<<endl; }
};
void main()
{
Box obj1(4.5),obj2;
obj2.seta(6.4);
obj1.getvolume();
obj1.getarea();
cout<<"obj1=>";
obj1.disp();
obj2.getvolume();
obj2.getarea();
cout<<"obj2=>";
obj2.disp();
}——
2.[问答题] 请在下面程序的横线处填上适当内容,以使程序完整,并使程序的输出为5。#includeclass Integer{int x;public:Integer(int a=0){x=a;}void display( ){cout①                  ;};Integer Max(Integer a,Integer b){if(②                  )    return a;return b;}void main( ){Integer a(3),b(5),c;c=Max(a,b);c.display( );}
    答:——(1) friend Integer Max(Integer a,Integer b);
(2) a.x>b.x——
3.[问答题] 设计一个三角形类Triangle,包含三角形三条边长的私有数据成员,另有一个重载运算符“+”,以实现求两个三角形对象的面积之和。
    答:——参考程序:
#include<iostream.h>
#include<math.h>
class Triangle
{
int x,y,z;
double area;
public:
Triangle(int i,int j,int k)
{
double s;
x=i;y=j;z=k;
s=(x+y+z)/2.0;
area=sqrt(s*(s-x)*(s-y)*(s-z));
}
void disparea()
{ cout<<"Area="<<area<<endl; }
friend double operator+(Triangle t1,Triangle t2)
{ return t1.area+t2.area; }
};
void main()
{
Triangle t1(3,4,5),t2(4,5,6);
double s;
cout<<"t1:"; t1.disparea();
cout<<"t2:"; t2.disparea();
s=t1+t2;
cout<<"总面积="<<s<<endl;
}——
4.[问答题] 编写一个对具有n 个元素的数组x[]求最大值的程序,要求将求最大值的函数设计成函数模板。
    答:————
5.[问答题] 请在下面程序的横线处填上适当内容,以使程序完整。#include#includeclass Person{char name;public:Person(char* s){strcpy(name,s);}void display( ){cout};class Student:public Person{int grade;public:Student(char* s, int g): ①                  {grade=g;}void display( ){②                     ;cout}};void main( ){Student s(“周山”,90);s.display( );}
    答:————
6.[问答题] 编写一个程序,设计一个圆类circle和一个桌子类table,另设计一个圆桌类roundtable,它是从前两个类派生的,要求输出一个圆桌的高度、面积和颜色等数据。 <br>提示: <br>circle类包含私有数据成员radius和求圆面积的成员函数getarea();<br>table类包含私有数据成员height和返回高度的成员函数getheight()。<br>roundtable类继承所有上述类的数据成员和成员函数,添加私有数据成员color和相应的成员函数。
    答:————
7.[问答题] 写出下面程序的运行结果。#includeclass Test{private:    static int val;    int a;public:    static int func();    static void sfunc(Test &r);};int Test::val=20;int Test::func(){val--;return val;   }void Test::sfunc(Test &r){r.a=25;coutvoid main(){   cout   Test a;   cout   Test::sfunc(a);}答:
    答:————
8.[问答题] 指出下列程序中的2处错误,并说明为什么。#include class Test{public: Test(int y=10){data=y;} int getData() const {return ++data;} static int getCount() {coutreturn count; }private: int data; static int count;};答:
    答:————
9.[问答题] 写出下面程序的输出结果。#include class MyClass {public:   int number;   void set(int i);};int number=3;void MyClass::set(int i) { number=i; }void main(){   MyClass my1;   int number=10;   my1.set(5);   cout   my1.set(number);   cout   my1.set(::number);   cout}答:
    答:————
10.[问答题] 写出下面程序的运行结果#include class Sample { int x,y; public: Sample(){x=y=0;} Sample(int i,int j){x=i;y=j;} void copy(Sample &s); void setxy(int i,int j){x=i;y=j;} void print(){cout}; void Sample::copy(Sample &s) { x=s.x;y=s.y; } void func(Sample s1,Sample &s2) { s1.setxy(10,20); s2.setxy(30,40); } void main() { Sample p(1,2),q; q.copy(p); func(p,q); p.print(); q.print(); } 答:
    答:————
11.[问答题] 指出下列程序中的错误,并说明原因。class A {    int a,b; public:    A(int aa=0, int bb){       a=aa; b=bb;   } }; 答:
    答:————
12.[问答题] 指出下面程序中的错误,并说明原因。#includeclass CTest{public:    CTest() {x=20;}    void use_this(int);private:    int x;};void CTest::use_this(int x){    this.x=x;    cout}void main(){    CTest y;    y.use_this(10);}答:
    答:————
13.[问答题] 写出下面程序的运行结果。#include class A { public: int n; }; class B:virtual public A{}; class C:virtual public A{}; class D:public B,public C { int getn(){return B::n;} }; void main() { D d; d.B::n=10; d.C::n=20; cout} 答:
    答:————
14.[问答题] 什么是类?什么是对象?对象与类的关系是什么?
    答:————
15.[问答题] 什么是多态性?请举例说明。   
    答:————
16.[问答题] 虚函数是否一定要有virtual关键字?什么叫纯虚函数和抽象类?多态调用需要满足怎样的条件?
    答:————
17.[问答题] 在定义拷贝构造函数时,为什么通常还要定义一个重载的赋值运算符?
    答:————
18.[问答题] 什么是继承性?请举例说明。
    答:————
19.[问答题] 什么是消息?消息具有什么性质?
    答:————
20.[问答题] 若程序员没有定义拷贝构造函数,则编译器自动生成一个缺省的拷贝构造函数,它可能会产生什么问题?
    答:————


页: [1]
查看完整版本: 《C》21秋东师模拟题答案参考