西安交通大学课程考试复习资料
单选题
1.对于如下类的定义,下面语句组中出现语法错误的是( )。 class X{ int a; public:
X(int x=0) {a=x;} };
class Y:class X{ int b; public:
Y(int x=0,int y=0):X(x) {b=x;} };
A.X *pa=new Y(1,2); B.Xa1=Y(1,3);
C.Yb1(2,3);X&a3=b1; D.Xa4(10);Yb2=a4; 答案: D
2.若有如下函数模板定义,则正确使用该函数模板的语句是( )。 template
void add(type a, type b, type &c) { c=a+b ; }
A.float x,y,z;add(x,y,z) ; B.int x,y,z;add(x,y,&z) ;
C.float x,y ;int z;add(x,y,z) ; D.float x,y ;int z;add(x,y,&z) ; 答案: A
3.下列程序段不会发生二义性的是( )。
A.int fun(double p){...;} B.int fun(float p){...;}
float fun(float p){...;}float fun(unsigned p){...;} int x;int x;
x=fun(0);x=fun(0);
C.int fun(int i,int j=2){...;} D.int fun(int i=2,int j=2){...;}
float fun(int i){...;}int fun(int *p){...;} cout答案: D
4.下列程序段不会发生二义性的是( )。
A.int fun(double p){...;} B.int fun(float p){...;}
float fun(float p){...;}float fun(unsigned p){...;} int x;int x;
x=fun(0);x=fun(0);
C.int fun(int i,int j=2){...;} D.int fun(int i=2,int j=2){...;}
float fun(int i){...;}int fun(int *p){...;} cout答案: D
5.下面是四条顺序出现的声明语句,非法的初始化语句是( )。
A.int i=–1;
B.const int ic=i; C.const int *pc=D.int *const cpi=
答案: D
6.用new运算符创建一个含有10个元素的一维整型数组的正确语句是( )。
A.int p=new int(10); B.int p=new int[10]; C.int *p=new int[10]; D.int *p=new int(10); 答案: C
7.对于如下类的定义,下面语句组中出现语法错误的是( )。 class X{ int a; public:
X(int x=0) {a=x;} };
class Y:class X{ int b; public:
Y(int x=0,int y=0):X(x) {b=x;} };
A.X*pa=newY(1,2); B.Xa1=Y(1,3);
C.Yb1(2,3);X&a3=b1; D.Xa4(10);Yb2=a4; 答案: D
8.关于C++中的继承机制,错误的说法是( )。
A.虚拟继承限定基类只能通过一条路径派生出派生类;
B.解决多继承带来的二义性的方法之一是对成员名加以限定;
C.派生类的构造函数的成员初始化列表中,可包含基类中的子对象; D.继承是一种组织类的基本手段。 答案: C
9.关于静态成员,正确的说法是( )。
A.静态成员函数可以直接访问该类中的非静态成员 B.非静态成员函数不能直接访问该类中的静态成员
C.静态数据成员同其它数据成员一样通过构造函数进行初始化 D.静态成员在任何对象创建之前就已经创建 答案: D
10.函数重载与函数模板的说法错误的是( )。
A.当函数的函数体不同时,可以把函数设计为重载函数;
B.当函数体相同,仅仅操作的数据类型不同时,可把函数设计为模板; C.重载函数和函数模板都是抽象的,都需实例化;
D.函数模板有待于实例化为模板函数,重载函数可以直接引用。 答案: C
11.基类A中有成员函数fn1()、fn2(),在派生类B中重载了成员函数fn1()(即重新定义了fn1()),但没有重载其成员函数fn2()。如果在派生类B中调用基类A的成员函数fn1()(不是B中重载的数fn1())和fn2(),则正确的方式是( )。
A.A::fn1()和fn2(); B.fn1()和A::fn2(); C.A::fn1()和A::fn2(); D.fn1()和fn2(); 答案: A
12.类模板的作用是可以将其实例化后得到一个具体的( )。
A.类 B.对象
C.模板类 D.模板函数 答案: C
13.派生类的构造函数的成员初始化列表中,不能包含( )。
A.基类的构造函数;
B.派生类中子对象的初始化; C.基类的子对象初始化;
D.派生类中一般数据成员的初始化; 答案: C
14.设置虚基类的目的是( )。
A.简化程序; B.消除二义性; C.提高运行效率; D.减少目标代码; 答案: B
15.下列不是C++基本数据类型的是( )。
A.int B.string C.char D.void 答案: B
16.下列程序段不会发生二义性的是( )。
A.intfun(doublep){...;} B.intfun(floatp){...;}
floatfun(floatp){...;}floatfun(unsignedp){...;} intx;intx;
x=fun(0);x=fun(0);
C.intfun(inti,intj=2){...;} D.intfun(inti=2,intj=2){...;}
floatfun(inti){...;}intfun(int*p){...;} cout<
相关推荐: