还剩5页未读,继续阅读
文本内容:
年月20144面向对象程序设计第一部分选择题
一、单项选择题在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将“答题卷”上的相应字母涂黑错涂、多涂或未涂均无分下列不属于面向对象程序设计的特征的是
1.抽象性完整性封装性多态性A.B.C.D.已知下列表示引用的方法中正确的是
2.intm=10;A-int x=m;B.int y=10;C.int z;D.float t=m;如果要对类中的整型静态变量赋初值则书写语句正确的是
3.AB c0,;;A.int c=0B.static intc=0;;C.int AB::c=0D.static intAB::c=0设有数组定义廿;则数组所占的空间是
4.char array]]China array个字节个字节个字节个字节A.5B.10C.6D.12可用来替换宏替换的语句是
5.“#defineE
2.718281828”;;A.Float E
2.718281828B.Const
2.718281828;;C.Const E
2.718281828D.Const FloatE
2.718281828假定要对类定义加号操作符重载成员函数,实现两个类对象的加法,并返回相
6.AB AB加结果,则该成员函数的声明语句为A.AB operator+AB a,AB bB.AB operator+AB aC.operator+AB aD.AB operator+设类中存在类成员则下列初始化方式正确的是
7.ClassA staticdouble x,;;A.ClassA::double x=25B.double x=25;;C.double ClassA::x=25D.double ClassAx=25在继承中,派生类拥有的基类个数为
8.个个多于个至少个A.0B.1C.1D.1运用运算符删除一个动态对象时
9.delete系统首先为该动态对象调用构造函数,再释放其占用的内存A.系统首先释放该动态对象占用的内存,再为其调用构造函数B.系统首先为该动态对象调用析构函数,再释放其占用的内存C.系统首先释放动态对象占用的内存,再为其调用析构函数D.基类中的成员可以通过派生,其在派生类中的可见性为
10.protected public不可访问A.B.privateC.public D.protected派生类的对象可以访问的基类成员是
11.公有继承的基类的公有成员A.公有继承的基类的保护成员B.公有继承的基类的私有成员C.保护继承的基类的公有成员D.关于友元函数的说法正确的是
12.友元函数可以是任何类中的一个函数A.如果函数在被说明为友元函数的类中定义,则它就是该类的成员函数B.不属于任何类的函数不可以被说明为友元函数C.使用友元函数的主要目的是提高程序执行效率,因为可直接调用该类私有变量D.一个类拥有多个构造函数,则这些构造函数间为
13.重载关系重复关系拷贝关系继承关系A.B.C.D.下列关于类的权限的描述,说法错误的是
14.类本身的成员函数只能访问自身的私有成员A.类的对象只能访问该类的公有成员B.普通函数不能直接访问类的公有成员,必须通过对象进行访问C.一个类可以将另一个类的对象作为成员D..使用口删除对象数组时,描述正确的是15delete数组中各元素都调用析构函数数组中各元素都调用构造函数A.B.不调用析构函数只有首元素调用析构函数C.D.第二部分非选择题
二、填空题.假设则表达式的值为16int a=2,b=3;++a/b*b--面向对象程序设计有以下主要特点,即抽象、、继承和多态
17.运行时的多态性主要是通过来实现
18.在用定义一个类时,数据成员和成员函数的默认访问权限是
19.class用于从键盘上为变量输入值的标准输入流对象是
20.定义一个函数模板要用到的第一个修饰符是
21.中,已知贝释放指向的内存使用语句是
22.C++char*pl=new char
[10];U pl成员函数中不能直接引用类中说明的非静态成员
23.
24.设要把一个文件输出流对象thisFile与文件ud:\myfile\code.txtv相关联,所用的C++语句是o函数重载时,编译系统会根据形参的类型或来区分
25.
三、程序填空题下列程序的功能是将字符数组中的全部字符含、复制到字符数组中,不用
26.s2T si函数strcpy#include iostreamusing namespace std;void maincharsl
[180],s2
[180];cin»s2;〃非字符的复制for inti=0;i i++\0sl[i]=s2[i];cout«sl;}下列程序的功能是求两个浮点数之差,在下面横线处填上函数的原型声明、调用方
27.cha法#include iostream;using namespacestd void main;;;float a,b a=
12.5b=
6.5;float c=;cout«c«endlfloat chafloat x,float y{;;;float ww=x-y returnw}在程序下划线处填上缺少的程序部分,源程序如下:
28.#include iostream;using namespacestdtemplate TfunTx;______y;y=x*x-T5;return yvoid main;float a=2;cout«fun a在下面横线处填上适当内容,完成类中成员函数的定义
29.class Aint n;public:Aint nn=0:nnn{ifn==0a=0;elsea=new int[n];〃定义析构函数,释放动态数组空间};以下程序是定义一个累加器类对其重载运算符“+”,请填空
30.sumA,class sumA{private:intn;public:sumA{n=0;}sumAint i{n=i;}〃运算符重载函数{sumA t;t.n=n+a.n;〃函数返回void disp{cout«,n=n«n«endl;;void main{sumAkl7,k227,k3;k3=kl+k2;kl.dispQ;k
2.disp;k
3.disp;
四、程序分析题写出下列程序的运行结果
31.#include iostream;using namespacestd classFun Array//指向一个数组空间int*pa;//数组元素个数int size;public:FunArryint a[],int thesize:paa,sizethesize{}int Size{return size;}int operatori]int index{return pa|index-1];};void mainint s[]={1,357,9};FunArray mas,sizeofs/sizeofint;ma
[3]=ll;for inti=l;i=ma.Size;i++cout«ma[i]«\写出下列程序的运行结果
32.#include iostream;using namespacestd classApublic:A{coutvC;};class Bpublic:;class C:public A{Bb;public:;C{cout«»C}};voidmain{Cobj;写出下列程序的运行结果
33.#include iostream;usingnamespacestd classMyClasspublic:34t number;void setinti;;int number=3;void MyClass::set inti{number=i;voidmain{MyClass myl;int number=10;myl.set5;cout«my l.number«endl;myl.setnumber;cout«my l.number«endl;myl.set::number;cout«my
1.number«endl;
五、编程题编程实现:输入一个的矩阵,求出两条对角线元素值之和
34.n*n定义一个类,派生出矩形类,并增加一函数计算矩形的面积
35.Point RectangleArea不要求定义测试类。