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:2334 B:2224 C:2234 D:其它都不对

12.以下程序的输出结果为( )#include class Sample{public: Sample(int a=0,int b=1); void disp(); ~Sample();private: int x,y;};Sample::Sample(int a,int b){x=a;y=b;}void Sample::disp (){ cout}Sample::~Sample(){ if(x) cout else cout}void main(){ Sample s1(1,2),s2;}
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:n=30 C:n=20 D:n=10 28.如果在try块内没有发生异常,则直接转到所有catch块后的(      )语句执行下去。
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:n=10 B:其它都不对 C:n=5 D:n=15 31.面向对象程序设计方法的基本特征主要有抽象性、( )和多态性。
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 元后可查看付费内容,请先翻页预览!
点赞(4) dxwkbang
返回
顶部