2021年2021年c++面向对象程序设计试题和答案.docx
-
资源ID:4659375
资源大小:54.25KB
全文页数:10页
- 资源格式: DOCX
下载积分:4.3金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
2021年2021年c++面向对象程序设计试题和答案.docx
精品word 可编辑资料 - - - - - - - - - - - - -填空题 (每空 1 分,共 14 分)1.观看以下程序: class point public:系void show() cout<<” point ” <<endl;名;void main()point p1;班密point *p;级封p=&p1;线_P1.show() /通过对象p1 拜访 show 函数 内 p->show() /通过指针p 拜访 show 函数不姓2. 在C+ 类 中 可 以 包 含 私 有 . 公 有 和 保 护名答三种具有不同拜访掌握权的成员;题3. 定义类时,在类头中将使用关键字 class 来表示类定义的开头; 4. 假如一个类中至少有一个纯虚函数,就该类称为 抽象类 ; 5. C+类的组成包括数据成员和成员函数 ,友元 _不为 (为.不为)学该类的成员函数;号6. 友员函数为用关键字 friend 7. 如有: int i; int &j=i;i=10;j=i+1;修饰的非成员函数;就 i= 11, j=_11;8.new 的功能为 动态申请内存空间 ,delete的功能为 释放由 new 申请的空间 ;二. 挑选题 ( 每道题 1.5 分,共 30 分)1.以下特性中不为面对对象程序设计语言所特有的为();第 1页第 1 页,共 8 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -( A)数据封装( B)继承( C)多态性( D)模板2.()为给变量取一个别名,它引入了变量的同意词;( A)指针( B)引用( C)枚举(D)结构3.类成员的拜访权限中,()只能被本类的成员函数和其友元函数拜访;( A) share( B) public( C) private( D) protected4.关于构造函数,以下说法不正确选项();( A)构造函数名字和类名相同( B)构造函数在创建对象时自动执行( C)构造函数无任何函数返回类型( D)构造函数有且只有一个5.派生类可以拜访其基类的();( A)公有成员( B)爱护成员( C)私有派生( D)公有和爱护成员6.以下关于运算符重载的描述中,错误选项();( A)运算符重载不行以转变操作数的个数( B)运算符重载不行以转变运算符的功能( C)运算符重载不行以转变结合方向( D) 运 算 符 重 载 不 可 以 改 变 运 算 优 先 级7.C+语言为从早期的C 语言逐步进展演化而来的. 与 C语言相比,它在求解问题方法上进行的最大改进为()( A)面对过程( B)面对对象( C)安全性( D)复用性8.对于类中定义的成员,其隐含拜访权限为();A publicBprotectedC privateDstatic9.下面有关重载函数的说法中正确选项()( A)重载函数必需具有不同的返回值类型;(B)重载函数形参个数必需不同;( C)重载函数必需有不同的形参列表(D)重载函数名可以不同;10.有如下的对类“ CSample”的说明,其中()为错误的;class CSample A int a=23;B CSample(); public:C CSample(int val);D CSample(); 11.在 int a=3、int *p=&a;中, *p 的值为 ( )A. 变量 a 的地址值B.无意义C. 变量 p 的地址值D.3第 2页第 2 页,共 8 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -12.每个类()构造函数;( A)只能有一个( B)只可有公有的( C)可以有多个( D)只可有缺省的13.在一个类中可以对一个操作符进行()重载;( A) 1 种(B) 2 种以下( C) 3 种以下(D)多种14.在公有继承的情形下,基类非私有成员在派生类中的拜访权限()( A) 受限制( B)保持不变( C)受爱护( D)不受爱护系名15.应在以下程序划线处填入的正确语句为()#include <iostream.h> class Basepublic:班密void fun()cout<<"Base:fun"<<ENDL;级封; class Derived:public Base 线 void fun() 内 /显示调用基类的函数fun()不姓cout<<"Derived:fun"<<ENDL;名答 题; ( A) fun();( B) Base.fun();( C) Base:fun();( D)Base->fun(); 16.执行下面的程序将输出()学#include <iostream.h>号class BASE char c; public: BASE(char n):c(n) virtual BASE()cout<<c;class DERIVED:public BASE char c;public:DERIVED(char n):BASE(n+1)、c(n)DERIVED()cout<<c;第 3页第 3 页,共 8 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -int main()DERIVED a(X);return 0;( A) XY(B) YX( C) X(D) Y17.下面描述中,表达错误选项()( A)公有继承时基类中的public成员在派生类中仍为public的( B)公有继承为基类中的private成员在派生类中仍为private的( C)公有继承时基类中的protected成员在派生类中仍为protected的( D)私有继承时基类中的public成员在派生类中为private的18.定义析构函数时,应当留意()(A)其名与类名完全相同( B)返回类型为void类型(C)无形参,也不行重载( D)函数体中必需有delete语句19.对于在类中定义的静态数据成员,下面正确的说法为()A. 该类的每个对象中都有一个静态数据成员B. 对象创建时产生C. 在类外进行初始化D. 既可以在类外初始化,也可以在类内初始化20.C+中声明常量的关键字为();A.constB. externC.publicD. enum三 . 改 错 题 ( 每 处 2 分 , 共 6 分 ) 1. 使用 VC6打开考生文件夹下的工程proj1、此工程包含一个源程序文件main.cpp、但该程序运行有问题,请改正main 函数中的错误,使程序的输出结果为:member=0 member=5 menber=10源程序文件main.cpp清单如下:#include <iostream.h> classMyClasspublic:MyClass(inti)member=i;voidSetMember(intm)member=m;intGetMember()constreturnmenber;第 4页第 4 页,共 8 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -voidprint()contcout<<"member="<<MEMBER<<ENDL; private:intmember;voedmain()MyClassobj1; /更正 系名obj1.print();MyClassobj2(3);obj1.member=5;/更正 MyClass.SetMember(10);/更正 班密obj1.print();级封obj2.print(); 线 内四. 写出以下程序的执行结果(每道题5 分,共 20 分)不姓1.名答#include<iostream.h> 题class Sample int n; public:学Sample(int i)n=i;号friend int add(Sample &s1、Sample &s2); ; int add(Sample &s1、Sample &s2) return s1.n+s2.n;void main()Sample s1(10)、s2(20); cout<<add(s1、s2)<<endl;执行结果为:第 5页第 5 页,共 8 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -2.#include<iostream.h> int add(int x、int y)return x+y+1;double add(double x、double y)return x+y-1;void main()int a=2、b=4;double c=2.6、d=7.4; cout<<add(a、b)<<"、"<<add(c、d)<<endl;执行结果为:3.#include<iostream.h> class Apublic: int n;class B:virtual public A; class C:virtual public A; class D:public B、public Cint getn()return B:n;void main()第 6页第 6 页,共 8 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -D d; d.B:n=10;d.C:n=20;cout<<d.B:n<<"、"<<d.C:n<<endl;执行结果为:系名 4 . #include <iostream.h>班密封级class myclass 线int a、b; 内static int s;不public:姓myclass(int x、int y)名答a=x;b=y;s+; 题void print()cout<<s<<endl;学int myclass:s=0;号void main() myclass m1(1、2)、m2(4、5)、m3(6、7); m1.print(); m2.print();m3.print();执行结果为:五. 编程题 ( 每题 10 分.共 30 分)1. 测试一个名为rectangle的矩形类, 其属性为矩形的左下角与右上角两个点的坐标,能运算矩形的面积;(10 分 )2. 定义一boat与 car两个类,二者都有weight属性,定义二者的一个友元函数第 7页第 7 页,共 8 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -totalweight(),运算二者的重量和;(10 分)3. 设计一个汽车类vehicle,包含的数据成员有车轮个数wheels 和车重 weight ;小车类 car 为它的派生类,其中包含载人数passenger_load;每个类都有相关数据的输 出方法;在主程序中定义一个car类对象,对其车轮个数.车重.载人数进行设置并显示; (10 分 )第 8页第 8 页,共 8 页 - - - - - - - - - -