拷贝构造函数的格式为:类名(const 类名& 对象名);//拷贝构造函数的原型,参数是常量对象的引用。由于拷贝构造函数的目的是成员复制,不应修改原对象,所以建议使用const关键字
. 单选 (共40,80分)
1. 假定AB为一个类,则执行 AB x;”语句时将自动调用该类的( ) 2分)
 A.带参构造函数  B.无参构造函数  C.拷贝构造函数   D.赋值重载函数 
 标准答案:B
2. 若类X是类Y友元类,则下列哪种访问关系是正确的 2分)                        A.X的成员不能访问类Y的私有成员  B.X的成员可以访问类Y的私有成员 
C.Y的成员可以访问类X的私有成员 D.只有类Y的公共成员才能访问类X的私有成员 
标准答案:B
3. 假定AA是一个类,abc是该类的一个成员函数,则参数表中隐含的第一个参数的类型为( ) 2分)
 A.int   B.char   C.AA   D.AA*  标准答案:D
4. 如果类A被说明成类B友元,则( ) 2分)
 A.A的成员即类B的成员   B.B的成员即类A的成员 
 C.A的成员函数不得访问类B的成员   D.B不一定是类A的友元 
 ★标准答案:C
5. 下列关于类和对象的叙述中,错误的是( ) 2分)
 A.一个类只能有一个对象  B.对象是类的具体实例 
 C.类是对某一类对象的抽象   D.类和对象的关系是一种数据类型与变量的关系 
 ★标准答案:A
6. 对于任一个类,用户所能定义的构造函数的个数至多为( ) 2分)
 A.0  B.1   C.2  D.任意个   标准答案:D
7. 类的构造函数可以带有( )个参数。 2分)
 A.0   B.1  C.2  D.任意  标准答案:D
8. 假定AB为一个类,则执行 AB x(a,5);”语句时将自动调用该类的( ) 2分)
 A.带参构造函数  B.无参构造函数  C.拷贝构造函数  D.赋值重载函数 标准答案:A
9. px是指向一个类对象的指针变量,则执行 delete px;”语句时,将自动调用该类的( ) 2分)
 A.无参构造函数   B.带参构造函数   C.析构函数  D.拷贝构造函数  标准答案:C
10. 在一个类的定义中,包含有( )成员的定义。 2分)
 A.数据  B.函数   C.数据和函数   D.变量   标准答案:C
11. C++中,当一个对象被创建后,它的每一个成员函数都含有一个系统自动生成的隐含的指针,称之为( )指针。 2分)
 A.对象   B.派生   C.基类   D.this  标准答案:D
12. 假定AA为一个类,a()为该类公有的函数成员,x为该类的一个对象,则访问x对象中函数成员a()的格式为( ) 2分)
&a   B.x.a()   C.x->a   D.x->a()   标准答案:B
13. 下面有关重载函数的说法中正确的是( ) 2分)
 A.重载函数必须具有不同的返回值类型;   B.重载函数形参个数必须不同; 
 C.重载函数必须有不同的形参列表;   D.重载函数名可以不同;   标准答案:
14. 当类中一个字符指针成员指向具有n个字节的存储空间时,它所能存储字符串的最大长度为( ) 2分)
 A.n   B.n+1   C.n-1   D.n-2   标准答案:
15. 一个类的析构函数通常被定义为该类的( )成员。 2分)
 A.私有  B.保护   C.公用   D.友元   ★标准答案:C
16. 类的析构函数是一个对象被( )时自动调用的。 2分)
 A.建立  B.撤消  C.赋值   D.引用   标准答案:
17. 假定AA为一个类,int a()为该类的一个成员函数,若该成员函数在类定义体外定义,则函数头为( ) 2分)
 A.int AA::a()   B.int AA:a()   C.AA::a()   D.AA::int a()   标准答案:
18. 在一个类的定义中,包含有( )成员的定义。 2分)
 A.数据   B.函数   C.数据和函数   D.数据或函数   标准答案:
19. 对于公有继承,基类中的私有成员在派生类中将 ( ) 2分)
 A.能够直接使用成员名访问   B.能够通过成员运算符访问 
 C.仍然是基类的私有成员   D.变为派生类的私有成员   标准答案:C
20. 下面描述中,表达错误的是( ) 2分)
 A.公有继承时基类中的public成员在派生类中仍是public 
 B.私有继承时基类中的private成员在派生类中仍是private 
 C.私有继承时基类中的protected成员在派生类中仍是protected 
 D.私有继承时基类中的public成员在派生类中是private  标准答案:C
21. C++中,对于基类的protected成员,当以protected方式派生一个新类时。该成员将成 为派生类的( )成员。 2分)
 A.private  B.protected  C.public  D.非法  标准答案:B
22. c++中,一个虚函数是通过关键字( )放在其基类说明的前面来加以说明的. 2分)
 A.virtual  B.protected  C.operator  D.this  标准答案:
23. 设置虚基类的目的是( ) 2分)
 A.简化程序;  B.消除二义性;  C.提高运行效率;  D.减少目标代码; 
 ★标准答案:
24. 凡是能用以派生新类,却不能创建自己的对象的类称为( ) 2分)
 A.虚基类  B.抽象类  C.容器类  D.派生类  标准答案:
25. 抽象类是( ): 2分)
 A.不可以定义对象  B.可以定义对象  C.不可以派生新类  D.不可以输出 
 ★标准答案:A
26. 假定有定义int b[10]; int *pb;”,则不正确的赋值语句为( ) 2分)
 A.pb=b;  B.pb=&b[0];  C.*pb=new int;  D.pb=b[5]标准答案:D
27. 假定一条定义语句为int a[10], x, *pa=a;”,若要把数组a中下标为3的元素值赋给x,则不正确的语句为( ) 2分)
 A.x=pa[3];  B.x=*(a+3); C.x=a[3];  D.x=*pa+3标准答案:D
28. 下列给字符数组赋初值时,正确的是( ) 2分)
 A.char s1[]=abcdef;  B.char s2[4]=abcd
 C.char s3[2][3]={abc,xyz}; 
 D.char s4[4][]={‘a’,’x’,’s’,’t’};  标准答案:A
29. 执行语句char a[10]="abcd",*p; p=a;”后,*(p+4)的值是( 2分)
 A.abcd  B.'d'  C.'\0'  D.不能确定  标准答案:C
30. 设有如下函数定义
int f(char *s)
char *p=s;
while(*p!=’\0’) p++;
return(p-s);
在主函数中用cout<<f(good)调用上述函数, 则输出结果为( )。  2分)
 A.3   B.4   C.5   D.6   标准答案:
31. 下面语句( )是非法的。 2分)
 A.char x='C';  B.char x='#';  C.char x='';  D.char x='$';  标准答案:
32. 一个C++程序至少应包含( )个函数。 2分)
 A.0  B.1  C.2  D.3  标准答案:
 
33. a=12n=5,则表达
a%=(n%=2)运算后,a的值为( ) 2分)
 A.0  B.1  C.6  D.12  标准答案:D
34. 下列关于单目运算符++--的叙述中正确的是 2分)
 A.它们的运算对象可以是任何变量和常量 
 B.它们的运算对象可以是char型变量和int型变量,但不能是float型变量 
 C.它们的运算对象可以是int型变量,但不能是double型变量和float型变量 
 D.它们的运算对象可以是char型变量、int型变量和float型变量  ★标准答案:
35. 假定变量x定义为int x=5;”,要使rx成为x的引用(别名),rx应定义为( )。 2分)
 A.int rx=x;   B.int rx=&x;   C.int *rx=&x;   D.int &rx=x;   标准答案:
36. 以下描述中正确的是( ) 2分)
 A.for循环只能用于循环次数已经确定的情况   B.for循环是先执行循环体语句,后判断表达式   C.for循环中,不能用break语句跳出循环体   D.for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来  标准答案:
37. 循环语句for(int i=0; in; i++) cout<<i*i<<’ ’;”中循环体执行的次数为( ) 2分)
 A.1  B.n-1   C.n   D.n+1   标准答案:
38. C++语言的跳转语句中,对于breakcontinue说法正确的是( ) 2分)
 A.break语句只用于循环体中   B.continue语句只用于循环体中 
 C.break是无条件跳转语句,continue不是    D.breakcontinue的跳转范围不够明确,容易产生问题   标准答案:
39. 在下面循环语句中循环体执行的次数为( )
int i=0,s=0; while(s20) i++; s+=i; 2分)
 A.4  B.5  C.6  D.7   标准答案:C
40. do语句能够改写为( )语句。 2分)
 A.复合   B.if   C.switch   D.while   标准答案:D

1. 采用重载函数的目的是( ) 2分)
 A.实现共享  B.减少空间   C.提高速度   D.使用方便,提高可读性 
 ★标准答案:D  
2. 假定AB为一个类,则执行 AB x(a,5);”语句时将自动调用该类的( ) 2分)
 A.带参构造函数   B.无参构造函数   C.拷贝构造函数   D.赋值重载函数 
 ★标准答案:A 析构函数的定义
 
3. 假定AB为一个类,则执行 AB *s=new AB(a,5);”语句时得到的一个动态对象为( ) 2分)
 A.s   B.s->a   C.s.a   D.*s   标准答案:D
4. 当将一个类A或函数f()说明为另一个类B的友元后,类A或函数f()能够直接访问类B( )
2分)
 A.只能是公有成员   B.只能是保护成员   C.只能是除私有成员之外的任何成员 
 D.任何权限的成员   标准答案:D
5. 在关键字private后面定义的成员为类的( )成员。 2分)
 A.私有   B.公用  C.保护   D.任何   标准答案:A
6. 一个C++程序文件的扩展名为( ) 2分)
 A..h  &   C..cpp   D..cp   标准答案:C
7. 对于任一个类,用户所能定义的构造函数的个数至多为( ) 2分)
 A.0  B.1  C.2  D.任意个  标准答案:D
8. C++程序中使用的cout标识符是系统类库中定义的( )类中的一个对象。 2分)
 A.istream  B.ostream  C.iostream   D.fstream   标准答案:B
9. 类的析构函数可以带有( )个参数。 2分)
 A.0   B.1   C.2   D.任意   标准答案:A
10. 如果类A被说明成类B的友元,则( ) 2分)
 A.A的成员即类B的成员  B.B的成员即类A的成员 
C.A的成员函数不得访问类B的成员  D.B不一定是类A的友元 
 ★标准答案:C
11. 类的析构函数是一个对象被( )时自动调用的。 2分)
 A.建立  B.撤消  C.赋值  D.引用  标准答案:B
12. 引入友元的主要目的是为了( ) 2分)
 A.增强数据安全性  B.提高程序的可靠性  C.提高程序的效率和灵活性 
 D.保证类的封装性  标准答案:C
13. 关于封装,下列说法中不正确的是( ) 2分)
 A.通过封装,对象的全部属性和操作结合在一起,形成一个整体 
 B.通过封装,一个对象的实现细节被尽可能地隐藏起来(不可见) 
 C.通过封装,每个对象都成为相对独立的实体 
 D.通过封装,对象的属性都是不可见的   标准答案:D
14. 被非静态成员函数访问的类的数据成员( ) 2分)
 A.可以是非静态数据成员或静态数据成员  B.不可能是类的静态数据成员 
 C.只能是类的非静态数据成员  D.只能是类的静态数据成员  标准答案:A
15. C++程序中使用的cin标识符是系统类库中定义的( )类中的一个对象。 2分)
 A.istream   B.ostream   C.iostream  D.fstream  标准答案:A
16. 对于任意一个类,析构函数的个数最多为( ) 2分)
 A.0  B.1  C.2  D.3  标准答案:B
17. 假定AA为一个类,a()为该类公有的函数成员,x为该类的一个对象,则访问x对象中函数成员a()的格式为( ) 2分)
&a   B.x.a()   C.x->a   D.x->a()   ★标准答案:B
18. C++中,当一个对象被创建后,它的每一个成员函数都含有一个系统自动生成的隐含的指针,称之为( )指针。 2分)
 A.对象   B.派生   C.基类  D.this  标准答案:D
19. 如果类B在类A的基础上构造,那么,就称( )。 2分)
 A.A为基类或父类,类B为超类或子类 
B.A为基类、父类或超类,类B为派生类或子类 
 C.A为派生类,类B为基类  D.A为派生类或子类,类B为基类、父类或超类 
 ★标准答案:B
20. C++的基类指针可以访问派生类对象,但不能访问派生类对象的( )成员。 2分)
 A.private  B.protected  C.public  D.新增  标准答案:D 
21. 派生类的成员函数可以直接访问基类的( )成员。 2分)
 A.所有  B.公有和保护  C.保护和私有  D.私有  标准答案:
22. 派生类的对象对其基类中( )可直接访问。 2分)
 A.公有继承的公有成员  B.公有继承的私有成员 
 C.公有继承的保护成员  D.私有继承的公有成员  标准答案:A
23. 当派生类中有和基类一样名字的成员时,一般来说,( ) 2分)
 A.将产生二义性  B.派生类的同名成员将覆盖基类的成员 
 C.是不能允许的  D.基类的同名成员将覆盖派生类的成员   标准答案:B
24. c++语言的运算符可以重载为成员函数和( ): 2分)
 A.算术函数   B.输出函数  C.友元函数  D.逻辑函数   标准答案:C
25. 不能重载的运算符是:() 2分)
 A./   B.*  C.::   D.+=   标准答案:C
26. 要想在程序中使用strcpy()函数,须把( )包含到程序中。 2分)
 A.iostream.h   B.stdio.h   C.string.h   D.iomanip.h  标准答案:C
27. 以下函数的返回结果是( )。
int function(char *x)
char *p=x;
while(*p++);
return(p-x-1);
2分)
 A.求字符串的长度   B.将字符串x连接到字符串p后面 
 C.将字符串x复制到字符串p   D.将字符串x反向存放   标准答案:A

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。