为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

402-096-C++程序设计习题集

2017-10-24 43页 doc 77KB 222阅读

用户头像

is_079973

暂无简介

举报
402-096-C++程序设计习题集402-096-C++程序设计习题集 上机题:先定义“高度”类Hight 和“圆”类Circle,再由Hight和Circle多重派生出“圆柱体”类Cylinder。在主函数中定义一个圆柱体对象,调用成员函数求出圆柱体的体积和表面积。 第一部分: 一(选择填空题 1(类成员缺省的访问特征是_C_,结构体缺省的访问权限是__B_. A. protected B. public C. private D. friend 2(下列关于类的成员的访问特征的描述中,正确的___ A.必须首先说明具有私有特征的成员 B.数据...
402-096-C++程序设计习题集
402-096-C++程序集 上机题:先定义“高度”类Hight 和“圆”类Circle,再由Hight和Circle多重派生出“圆柱体”类Cylinder。在主函数中定义一个圆柱体对象,调用成员函数求出圆柱体的体积和表面积。 第一部分: 一(选择填空题 1(类成员缺省的访问特征是_C_,结构体缺省的访问权限是__B_. A. protected B. public C. private D. friend 2(下列关于类的成员的访问特征的描述中,正确的___ A.必须首先说明具有私有特征的成员 B.数据成员必须说明成私有的,成员函数必须说明成私有的 C.每个成员前都必须有标明访问特性的关键字 D.在同一类中,说明访问特性的关键字可以多次使用 3(关于类和对象,下列说法不正确的是___ A. 类与对象的关系类似于数据类型与变量的关系 B.对象是类的一个实例 C.任何一个对象必定属于一个特定的类 D.一个类只能有一个对象 4(关于类的一个成员函数,下列说法中正确的是() A.必须在类内定义 B. 一定是内联函数 C.不可以重载 D.可以设置参数的缺省植 5(以下不可以作为类的成员的是() A. 自身类对象的指针 B. 自身类的对象 C.自身类对象的引用 D. 另一个类对象的引用 6(已知一个类,类名为A,可以定义A类的对象或定义A类的指针,下列 一定不正确的形式为____ A. A a1 B. A a2 ( 16 ) C. A A3( ) D. A *P= new A 7. 已知一个类COMPLEX, 有下述两行: Complex c ; //A Complex c() //B 以下描述中错误的是___ A. A行定义了一个对象,并调用缺省的构造函数 B. B行定义了一个对象,并调用缺省的构造函数 C. B行是一个函数的原型说明,函数名为C,函数没有参数,返回值 类型是Complex D. A行和B行两行的意义不一样 8.设有下列对象定义; class A { public : int a ,b ; } a1= {1,2}, a2 ,a3 ; class { public : int a,b; }a4 ; 则以下正确的定义或赋值形式是___ A. a3=a2=a1; B. a4=a1; C. A *p=&a4; D. A &re=a4 9. 下列描述中, ___不是构造函数的特征 A. 构造函数可以重载 B. 必须显示为类定义一个构造函数 C. 无须为构造函数指定返回值类型 D. 构造函数在产生对象时由系统自己调用 10.下列有关析构函数的描述中,正确的是___ A. 析构函数的定义只能在类体内 B. 析构函数可以有一个或多个参数 C. 析构函数是在撤消对象时,系统自动调用的 D. 析构函数可以重载 11.以下关于构造函数和析构函数的描述中错误的是___ A. 用户不定义缺省的构造函数,则系统自动生成一个缺省的构造函数 B. 若用户不定义拷贝的构造函数,则系统自动生成一个拷贝的构造函数 C. 若用户不定义析构函数,则系统自动生成一个析构函数 D. 以上A错误,而B,C正确 12.定义复数类如下; class Complex { double real ,image ; public: Complex (double r=0 ,double i=0 ) {real =r ; image =i ;} Complex (Complex &c) {real=c.real ; image=c .image ;} }; 若有Complex c1; //A Complex c2(3,5); //B Complex c3(c2); //C c2=c1; //D 则下列描述中正确的是___ A. C行和D行均调用了拷贝构造函数 B. C行调用了拷贝构造函数 C. B行调用了拷贝构造函数 D. A行调用了拷贝构造函数 13. class A {int x, int y ; public ; A (int a, int b ) {x=a;y=b;} void show(){cout< class A { int a; public: A(int x=10){a=x;} int GetA(){return a;} }; class B { int b; public: B(int x){b=x;} int GetB(){return b;} }; class C { int c; A aobj; B bobj; public: C(int x,int y,int z):aobj(y),bobj(z) //E {c=x;} void Print() {cout< class A { int x,y; public: A( ){x=y=0;} A(int i=0,int j=0){x=i,y=j;} void show(){cout< class A { int x,y; public: A( ){x=y=0;cout<<”Default constructor called.\n;} A(int i,int j) {x=i,y=j cout< class A { int x,y; public: A(int i=0,int j=0) { x=i; y=j; show (); cout<<”Constructor called.\n”; } A(A &a); ~A( ){ show(); cout<<”Destructor called.\n”; } void set(int i=0,int j=0){x=i;y=j;} void show(){cout< class A { int x ,y ; public: A(int i=0,int j=0 ) {x=i,y=j;Show( ) ;cout<<”constructor called .\n” } ~A( ) { Show ( );cout<<”destructor called .\n”;} void Set (int i=0,int j= 0) {x=i,y=j;} void Show ( ){ cout < class Complex {int real ,image ; public : Complex (int x=0,int y=0 ) {real =x ;image=y; Show ( ); cout<<”construct\n”; } ~Complex( ) { Show ( );cout< class Test { int x ; public: Test ( int i=0 ) {x=i;} void print ( ) { cout < class List { int a[10],n; public : List (int a [10],int n ) { List : : n=n; //List ::n 表示数据成员n ,以便与参数n区别 for (int i=0 ; i和作用域 运算符 D. 静态数据成员不是所属类的所有对象共有的 3. 以下关于友员函数的描述错误的是___ A. 友员函数不是成员函数 B. 友员函数加强了类的封装性 C. 友员函数可以访问所属类的私有成员 D. 友员函数的作用是提高程序的运行效率 4. 关于成员函数特征的下列描述中错误的是___ A. 成员函数一定是内联函数 B. 成员函数可以重载 C. 成员函数可以设置参数的缺省值 D. 成员函数可以是静态的 5.写出以下程序的运行结果 #include class Count { static int count ; public : Count ( ) {count ++; cout< class Sample { int A; static int B; public: Sample(int a){A=a,B+=a;} static void func(Sample s); }; void Sample::func(Sample s) { cout<<"A="<方法
。其中的数据成员B是静态数据成员,求B之值 是在构造函数中进行的。所以输出为: A=2,B=7 A=5,B=7 注意:静态成员函数与静态数据成员一样,也不是对象成员。静态成员函数的调用不同于普通的成员函数。在静态成员函数的实现中,引用类的非静态数据成员是通过对象进行的,如本题中s.A,引用类的静态数据成员是直接进行的,如本题中的B。 #include class Sample { int x,y; public: Sample(){x=y=0;} Sample(int a,int b){x=a;y=b;} void disp() { cout<<"x="<disp(); } 解: 本题说明对象指针数组赋初值方法。定义三个对象和一个对象指针数组,通过赋初值使后者的元素分别指向前面三个对象,然后使用for语句循环调用各个对象的disp()成员函数。所以输出为: x=0,y=0 x=1,y=2 x=10,y=20 题7.分析以下程序的执行结果 #include class Sample { int n; static int sum; public: Sample(int x){n=x;} void add(){sum+=n;} void disp() { cout<<"n="< #include void swap(char *&x,char *&y) // 引用作为参数 { char *temp; temp=x;x=y;y=temp; } void main() { char *ap="hello"; char *bp="how are you?"; cout<<"ap:"< void main() { int a[]={10,20,30,40},*pa=a; int *&pb=pa; pb++; cout<<*pa< class Sample { int x; public: Sample(){}; Sample(int a){x=a;} Sample(Sample &a){x=a.x++ +10;} void disp(){cout<<"x="< 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<<"x="<要求
将求最大值的函数设计成函数模板。 解: 将max()函数设计成一个函数模板。 本题程序如下: #include template T max(T x[],int n) { int i; T maxv=x[0]; for(i=1;iclass Array,用于对T类型的数组进行排序、查找和求元素和, 然后由此产生模板类Array和Array。 本题程序如下: #include #include template class Array { T *set; int n; public: Array(T *data,int i){set=data;n=i;} ~Array(){} void sort(); // 排序 int seek(T key); // 查找指定的元素 T sum(); // 求和 void disp(); // 显示所有的元素 }; template void Array::sort() { int i,j; T temp; for(i=1;i=i;j--) if(set[j-1]>set[j]) { temp=set[j-1];set[j-1]=set[j];set[j]=temp; } } template int Array::seek(T key) { int i; for(i=0;i T Array::sum() { T s=0;int i; for(i=0;i void Array::disp() { int i; for(i=0;iarr1(a,9); Arrayarr2(b,6); cout<<" arr1:"< class Sample { int n; public: Sample(){} Sample (int m){n=m;} friend void square(Sample &s) { s.n=s.n*s.n; } void disp() { cout<<"n="< class B; class A { int i; friend B; void disp(){cout< class teacher; class student { char *name; public: student(char *s){name=s;} friend void print(student &,teacher &); }; class teacher { char *name; public: teacher(char *s){name=s;} friend void print(student &,teacher &); }; void print(student &a,teacher &b) { cout<<"the student is:"< class A { protected: int a; public: A(int i=0) {a=i;} int Geta(){return a;} }; class B:public A { A al; public: ______________________________//B类构造函数的定义 void Show() {cout< class A { int a; public: A(int i=10){a=i;} void show( ){cout<<”A::a=”< class A { protected: int x; public: A( int i = 10 ) {x=i;} void show ( ) { cout<<”A : : x=”< class A { int a ; //1行 public: A ( int i= 0 ) { a = i ;} //2行 }; class B { int b ; //3行 public : B (int i = 0 ) {b = i ;} //4行 }; class C : public A { B b1; //5行 public: void show ( ) { cout< class A { (1) ___protected:_________________ //最合理的访问特征 int a ; public ; A (int i = 0) { a=i ;} }; class B { (2)_public:___________________ //最合理的访问特征 int b ; public : B (int i=0 ) {b=i ;} }; class C : public A { int c; B b1 ; public : (3)_C(int i,int j,int k)_:A(i),b1(j)___//根据运行结果定义构造函数 {(4)_c=k; void show ( ) { (5)__cout< class Sample { int n ; public: Sample ( int i=0 ){n=i ;} Sample operator++() {n++; return *this; } Sample operator++(int){sample t=*this ; n+=2; return t ;} operator int ( ) { return n ;} void show ( ) {cout <<”n=”< class B { private : int b ; public : B(int i=0 ) {b = i;} virtual void show ( ) //A行 { cout<<”B::show () called .”<show ( );} void main ( )void main ( ) {{ D*pd=new D(5,8 )D*pd=new D(5,8 ) fun(*pd);fun(pd); delete pd ;delete pd ; }} 先看左框中的程序,运行的结果为__________________ 若将A行的virtual去掉,则结果为______________________ 若将左框中的fun( )和main ( ) 函数同时修改成右框的对应函 数,则若A行有virtual时,结果为__________________ 若A行无virtual时结果为_________________________-
/
本文档为【402-096-C++程序设计习题集】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
相关资料
热门搜索
你可能还喜欢

历史搜索

    清空历史搜索