1.一个类中有且仅有一个析构函数,且应为( )。
A:private
B:protected
C:public
D:其它都可以
答案:public
2.( )的功能是在创建对象时,给数据成员赋初值,即对象的初始化。
A:构造函数
B:静态函数
C:友元函数
D:析构函数
答案:构造函数
3.this指针是C++实现( )的一种机制。
A:多态
B:抽象
C:继承
D:封装
答案:封装
4.当派生类也作为基类使用时,则各派生类只负责其( )基类的构造。
A:任意的
B:直接的
C:其它都可以
D:间接的
答案:直接的
5.要向文件中输出数据,则必须定义( )类的对象。
A:ifstream
B:ostream
C:ofstream
D:istream
答案:ofstream
6.C++把每个文件都看成是一个有序的( )。
A:字节流
B:对象
C:文件
D:函数
答案:字节流
7.以下程序的输出结果为( )#include class X { //基类protected: int a;public: void make(int i) { a = i; }};class Y {protected: int a;public: void make(int i) { a = i; }};class Z:public X, public Y {public: int make(int i) { return X::a * Y::a ; }};void main() { Z zobj; zobj.X::make (10); zobj.Y::make (20); cout }
A:30
B:20
C:200
D:10
答案:200
8.以下程序的输出结果为( )#include int p(int x = 4, int y = 5, int z = 6){ return x + y + z;}void main(){ int a = 3, b = 4, c = 0; c = p(b, c); cout }
A:15
B:4
C:11
D:10
答案:10
9.通过对( )进行重载,可以实现定义对象时初始化赋值的多样性。
A:析构函数
B:静态函数
C:友元函数
D:构造函数
答案:构造函数
10.C++支持两种多态性,即编译时的多态性和运行时的多态性。运行时的多态性是通过 ( )来实现的。
A:虚函数
B:构造函数
C:纯虚函数
D:友元函数
答案:虚函数
11.以下程序的输出结果为( )#includeclass Sample{ int x;public: Sample(){x=0;} Sample(int a) {cout<<(x=a);} ~Sample() { cout<<++x; } void disp() { cout<
A:12
B:0
C:1
D:11
13.在编译时确定函数调用称为( )绑定,在运行时确定函数调用称为动态绑定。
A:内联
B:静态
C:动态
D:外联
14.以下程序的输出结果为( )#includeclass Sample{ int n;public: Sample(){} Sample(int i){n=i;} friend Sample operator-(Sample &,Sample &); friend Sample operator+(Sample &,Sample &); void disp(){cout};Sample operator-(Sample &s1,Sample &s2) { int m=s1.n-s2.n; return Sample(m);}Sample operator+(Sample &s1,Sample &s2) { int m=s1.n+s2.n; return Sample(m);}void main(){ Sample s1(10),s2(20),s3; s3=s2-s1; s3.disp(); s3=s2+s1; s3.disp();}
A:n=30,n=30,
B:n=10,n=30,
C:n=30,n=10,
D:n=10,n=10,
15.以下程序的输出结果为( )#include#includeclass Sample{public: int x,y; Sample(){x=y=0;} Sample(int a,int b){x=a;y=b;} void disp() { cout } ~Sample() { if(x==y) cout else cout }};void main(){ Sample s1(2,3); s1.disp(); if(s1.x==2) exit(0);}
A:x=2,y=2
B:x=3,y=3
C:x=2,y=3
D:x=3,y=2
16.以下程序的输出结果为( )#include "iostream"using namespace std;templateT result(T *a,int n=0) { T b=1; int i; for(i=0;i { b*=a[i]; } return b;}int main(){ int a[]={2,3,4,5}; cout return 0;}
A:14
B:120
C:4
D:100
17.类类型转换函数只能定义为一个类的( )函数。
A:友元
B:成员
C:构造
D:非成员
18.当函数被声明为一个类的( )后,它就可以通过对象名访问类的私有成员和保护成员。
A:析构函数
B:友元函数
C:其它都不是
D:非成员函数
19.以下程序的输出结果为( )#includeclass B;class A{ int i;public: int set(B&); int get(){return i;} A(int x){i=x;}};class B{ int i;public: B(int x){i=x;} friend A;};int A::set(B &b) { return i=b.i;}void main(){ A a(1); B b(2); cout a.set(b); cout}
A:2,2
B:1,2
C:1,3
D:2,3
20.赋值运算符不能重载为( )函数。
A:构造
B:友元
C:静态
D:析构
21.以下程序的输出结果为( )#include "iostream"using namespace std;int &f(int& m,int n){ int temp; temp=m; m=n; n=temp; return m;}void main(){ int a=5,b=10; b=f(a,b); cout}
A:10,10
B:5,5
C:10,5
D:5,10
22.如果找不到匹配类型的catch语句,系统函数( )被调用,终止程序。
A:terminate
B:throw
C:catch
D:exit
23.以下程序的输出结果为( )#includeclass B;class A{ int i; friend B; void disp(){cout<A:2
B:其它都不对
C:1
D:0
24.( )是一个函数,它与一般函数的区别是在使用时可以像宏一样展开,所以没有函数调用的开销。
A:友元函数
B:静态函数
C:内联函数
D:构造函数
25.当引用被创建时,它必须被( )。
A:其它都不对
B:初始化
C:删除
D:声明
26.测试块作为普通作用域,由关键字( )引导。
A:test
B:throw
C:try
D:catch
27.以下程序的输出结果为( )#includeclass sample{public: sample(){}; sample(int x){n=x;} sample & operator +(const sample &); void disp(){cout<<'n='<
A:其它都有可能
B:第一条
C:最后一条
D:第二条
29.以下程序的输出结果为( )#include #include using namespace std;ostream &myoutput(ostream& stream){ stream return stream;}int main(){ int i=123; cout return 0;}
A:123,###173
B:123,######
C:123,173###
D:123,173
30.以下程序的输出结果为( )#includeclass sample{ int n;public: sample(){}; sample(int m){n=m;} sample add(sample s1,sample s2){ this->n=s1.n+s2.n; return(*this); } void disp() { cout<<'n='<
A:动态性
B:继承性
C:安全性
D:封装性
32.重载不能改变运算符的原有( )。
A:其它都可以
B:优先级
C:操作数
D:结合性
33.如果一个模板声明列出了多个参数,则每个参数之间必须使用逗号隔开,每个参数都须重复使用关键字( )。
A:typename
B:inline
C:static
D:class
34.C++的流库预定义了4个流,它们是cin和( )。
A:cout
B:clog
C:cerr
D:cerror
35.构造函数可以声明为虚函数。
A:错误
B:正确
36.输出运算符不支持级联输入。
A:错
B:对
37.输出运算符不支持十六进制数据的输出。
A:错
B:对
38.一旦一个引用被初始化为指向一个对象,它也可以被改变为指向另一个对象的引用。
A:对
B:错
39.如有定义const int i=5; const int j=3; const int *p= 则执行语句p= 是合法的。
A:对
B:错
40.如有定义 int const * p;表示指针不能被改变。
A:对
B:错
41.析构函数不可以声明为虚函数。
A:正确
B:错误
42.对于catch块来说,处理错误之后可以让程序继续运行,也可以终止程序。
A:错
B:对
43.对于C++中的模板类型参数T,只能是系统预定义的数据类型。
A:错
B:对
温馨提示支付 ¥3.00 元后可查看付费内容,请先翻页预览!