课程名称:
C++面向对象程序设计
一、 选择题(每小题1.5分,共30分)
1、在C++中,常量’C’和”C”两者________。
A)完全不同 B)存储长度相同 C)类型相同 D)存储值相同
2、有二维字符数组char s[4][6]={“zhang”,”gao”,”tang”,”wang”},执行程序cout<<*s[2],屏幕上显示________。
A)gao B)tang C)g D)t
3、若w=1,x=2,y=3,z=4,则条件表达式w>x?w:z>y?z:x的结果为_______。
A)4 B) 3 C) 2 D)1
4、设a和b为整型变量,执行语句b=(a=2+3,a*4),a+5;后a和b的值为_______。
A)5,10 B)20,25 C)5,25 D)5,20 5、如果整型变量a,b,c的值分别为5,4,3,则语句if(a>=b>=c) c++;执行后c的值是______。
A)5 B)4 C) 3 D)2 int i=10;执行下列语句后,i的值是_______。 { case 9: i+=1; case 10: i+=1; case 11: i+=1; case 12: i+=1; }
A)10 B)11 C)12 D)13 6、执行以下程序:
#include
{char c=0; cout< A) ‘\\0’ B)语法错 C)0 D) 一个空行 7、设有类型说明:enum color{red,yellow=3,white,black}; 则执行语句cout< void f(int x){??} //1 int f(int y){??} //2 int f(int i,int j){??} //3 float k(int x) {??} //4 _______是重载函数。 A)4个全部 B)1和4 C)2和3 D)3和4 9、在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用________合适。 A)内嵌函数 B)重载函数 C)递归调用 D)嵌套调用 10、有如下的对类“CSample”的说明,其中( )是错误的。 class CSample { A.int a=23; 系名____________班级____________姓名____________学号____________ 密封线内不答题 ——第1页—— B.CSample(); public: C.CSample(int val); D.~ CSample(); 11、在int a=3,int *p=&a;中,*p的值是( ) A.变量a的地址值 B.无意义 C.变量p的地址值 D.3 12、每个类( )构造函数。 (A)只能有一个 (B)只可有公有的 (C)可以有多个 (D)只可有缺省的 13、在一个类中可以对一个操作符进行( )重载。 (A)1 种 (B)2 种以下 (C)3 种以下 (D)多种 14、在公有继承的情况下,基类非私有成员在派生类中的访问权限( ) (A) 受限制 (B)保持不变 (C)受保护 (D)不受保护 15、应在下列程序划线处填入的正确语句是( ) #include void fun(){cout<<\}; class Derived:public Base { void fun() {_____________//显示调用基类的函数fun() cout<<\} }; (A)fun(); (B)Base.fun(); (C)Base::fun(); (D)Base->fun(); 16、执行下面的程序将输出( ) #include char c; public: BASE(char n):c(n){} virtual ~BASE(){cout< class DERIVED:public BASE{ char c; public: DERIVED(char n):BASE(n+1),c(n){} ~DERIVED(){cout< ——第2页—— int main() {DERIVED a('X'); return 0; } (A)XY (B)YX (C)X (D)Y 17、 下面描述中,表达错误的是( ) (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. const B. extern C. public D. enum 二、 填空题(每空1分,共14分) 1、 观看以下程序: class point{ public: void show() {cout<<”point”< void main() { point p1; point *p; p=&p1; _______________//通过对象p1访问show函数 ______________//通过指针p访问show函数 } 2、new的功能是____________________,delete的功能是____________________。 三、 改错题(每处2分,共6分) 1、使用VC6打开考生文件夹下的工程proj1,此工程包含一个源程序文件main.cpp,但该程序运 行有问题,请改正main函数中的错误,使程序的输出结果为: 系名____________班级____________姓名____________学号____________ 密封线内不答题 ——第3页—— member=0 member=5 menber=10 源程序文件main.cpp清单如下: #include { public: MyClass(int i){member=i;} void SetMember(int m){member=m;} int GetMember()const{return menber;} void print()cont{cout<<\private: int member; }; voed main() { MyClass obj1; //更正_____________________________ obj1.print(); MyClass obj2(3); } obj1.member=5; //更正__________________________ MyClass.SetMember(10); //更正_______________________ obj1.print(); obj2.print(); 四、 写出下列程序的执行结果(每小题5分,共10分) 1、 #include 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() ——第4页——
相关推荐: