C++考前热身

一. 单选 (共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 
 ☆考生答案:     
 ★考生得分:0 分  评语: 
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.x.a  
 B.x.a()  
 C.x->a  
 D.x->a()  
 ★标准答案:B 
13. 下面有关重载函数的说法中正确的是( )。 (2分) 
 A.重载函数必须具有不同的返回值类型;  
 B.重载函数形参个数必须不同;  
 C.重载函数必须有不同的形参列表;  
 D.重载函数名可以不同;  
 ★标准答案:C  
14. 当类中一个字符指针成员指向具有n个字节的存储空间时,它所能存储字符串的最大长度为( )。 (2分) 
 A.n  
 B.n+1  
 C.n-1  
 D.n-2  
 ★标准答案:C  
15. 一个类的析构函数通常被定义为该类的( )成员。 (2分) 
 A.私有  
 B.保护  
 C.公用  
 D.友元  
 ★标准答案:C 
16. 类的析构函数是一个对象被( )时自动调用的。 (2分) 
 A.建立  
 B.撤消  
 C.赋值  
 D.引用  
 ★标准答案:B  
17. 假定AA为一个类,int a()为该类的一个成员函数,若该成员函数在类定义体外定义,则函数头为( )。 (2分) 
 A.int AA::a()  
 B.int AA:a()  
 C.AA::a()  
 D.AA::int a()  
 ★标准答案:A  
18. 在一个类的定义中,包含有( )成员的定义。 (2分) 
 A.数据  
 B.函数  
 C.数据和函数  
 D.数据或函数  
 ★标准答案:C  
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  
 ★标准答案:A  
23. 设置虚基类的目的是( )。 (2分) 
 A.简化程序;  
 B.消除二义性;  
 C.提高运行效率;  
 D.减少目标代码;  
 ★标准答案:B  
24. 凡是能用以派生新类,却不能创建自己的对象的类称为( )。 (2分) 
 A.虚基类  
 B.抽象类  
 C.容器类  
 D.派生类  
 ★标准答案:B  
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  
 ★标准答案:B  
31. 下面语句( )是非法的。 (2分) 
 A.char x='C';  
 B.char x='#';  
 C.char x='';  
 D.char x='$';  
 ★标准答案:C  
32. 一个C++程序至少应包含( )个函数。 (2分) 
 A.0  
 B.1  
 C.2  
 D.3  
 ★标准答案:B  
 
33. 设a=12,n=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型变量  
 ★标准答案:D  
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;  
 ★标准答案:D  
36. 以下描述中正确的是( )。 (2分) 
 A.for循环只能用于循环次数已经确定的情况  
 B.for循环是先执行循环体语句,后判断表达式  
 C.在for循环中,不能用break语句跳出循环体  
 D.for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来  
 ★标准答案:D  
37. 循环语句“for(int i=0; i<n; i++) cout<<i*i<<’ ’;”中循环体执行的次数为( )。 (2分) 
 A.1  
 B.n-1  
 C.n  
 D.n+1  
 ★标准答案:C  
38. C++语言的跳转语句中,对于break和continue说法正确的是( )。 (2分) 
 A.break语句只用于循环体中  
 B.continue语句只用于循环体中  
 C.break是无条件跳转语句,continue不是    
 D.break和continue的跳转范围不够明确,容易产生问题  
 ★标准答案:B  
39. 在下面循环语句中循环体执行的次数为( )。
int i=0,s=0; while(s<20) {i++; s+=i;} (2分) 
 A.4  
 B.5  
 C.6  
 D.7  
 ★标准答案:C 
40. do语句能够改写为( )语句。 (2分) 
 A.复合  
 B.if  
 C.switch  
 D.while  
 ★标准答案:D

34444
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  
 B..c  
 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.x.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.新增  
 ★标准答案:A  
21. 派生类的成员函数可以直接访问基类的( )成员。 (2分) 
 A.所有  
 B.公有和保护  
 C.保护和私有  
 D.私有  
 ★标准答案:B  
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 
28. 假定p是具有double类型的指针变量,则表达式++p使p的值(以字节为单位)增加( )。 (2分) 
 A.1  
 B.4  
 C.sizeof(double)  
 D.sizeof(p)  
 ★标准答案:C 
29. 假定指针变量p定义为“int *p=new int[30];”,要释放p所指向的动态内存,应使用语句( )。 (2分) 
 A.delete p;  
 B.delete *p;  
 C.delete &p;  
 D.delete []p;  
 ★标准答案:D 
30. 执行语句“char a[10]={"abcd"},*p; p=a;”后,*(p+4)的值是( ) (2分) 
 A.“abcd”  
 B.'d'  
 C.'\0'  
 D.不能确定  
 ★标准答案:C 
31. 一个C++程序至少应包含( )个函数。 (2分) 
 A.0  
 B.1  
 C.2  
 D.3  
 ★标准答案:B 
32. 以下错误的描述是( )。 (2分) 
 A.被调用函数中可以不用return语句  
 B.被调用函数中可以用多个return语句  
 C.被调用函数中,如果有返回值,就一定要有return语句  
 D.被调用函数中,一个return语句可返回多个值给调用函数  
 ★标准答案:D 
33. 设a=12,n=5,则表达式a%=(n%=2)运算后,a的值为( )。 (2分) 
 A.0  
 B.1  
 C.6  
 D.12  
 ★标准答案:D 
34. 下列标识符中( )是正确。 (2分) 
 A._suml23__  
 B._suml23$  
 C.*pt_123  
 D.Sum-Count  
 ★标准答案:A 
 
35. 函数调用不可以( )。 (2分) 
 A.出现在一个表达式中  
 B.出现在执行语句中  
 C.作为一个函数的实参  
 D.作为一个函数的形参  
 ★标准答案:D 
36. 在下面循环语句中循环体执行的次数为( )。
for(int i=0; i<n; i++) 
if(i>n/2) break; (2分) 
 A.n/2  
 B.n/2+1  
 C.n/2-1  
 D.n-1  
 ★标准答案:B 
37. C++语言的跳转语句中,对于break和continue说法正确的是( )。 (2分) 
 A.break语句只用于循环体中  
 B.continue语句只用于循环体中  
 C.break是无条件跳转语句,continue不是    
 D.break和continue的跳转范围不够明确,容易产生问题  
 ★标准答案:B 
38. C++中用于结构化程序设计的三种基本结构是 (2分) 
 A.顺序结构、选择结构、循环结构  
 B.if、switch、break  
 C.for、while、do-while  
 D.if、for、continue  
 ★标准答案:A 
 
39. 有以下程序
void main()

int i;
for(i=0;i<3;i++)
switch(i)

case 1: cout<<i;
case 2: cout<<i;
default: cout<<i;

}执行后输出的结果是  (2分) 
 A.011122  
 B.012  
 C.012020  
 D.120  
 ★标准答案:A 
 
40. switch语句能够改写为( )语句。 (2分) 
 A.for  
 B.if  
 C.do  
 D.while  
 ★标准答案:B

34555

  一. 单选 (共40题,共80分) 
1. 类中定义的成员默认为( )访问属性。 (2分) 
 A.public  
 B.private  
 C.protected  
 D.friend  
 ★标准答案:B 
2. 在类作用域中能够通过直接使用该类的( )成员名进行访问。 (2分) 
 A.私有  
 B.公用  
 C.保护  
 D.任何  
 ★标准答案:D 
3. 类的构造函数是在定义该类的一个( )时被自动调用执行的。 (2分) 
 A.成员函数  
 B.数据成员  
 C.对象  
 D.友元函数  
 ★标准答案:C 
4. 对于任意一个类,析构函数的个数最多为( ) (2分) 
 A

 
.0  
 B.1  
 C.2  
 D.3  
 ★标准答案:B 
5. 在一个类的定义中,包含有( )成员的定义。 (2分) 
 A.数据  
 B.函数  
 C.数据和函数  
 D.数据或函数  
 ★标准答案:C 
6. 对于一个类的析构函数,其函数名与类名( )。 (2分) 
 A.完全相同  
 B.完全不同  
 C.只相差一个字符  
 D.无关系  
 ★标准答案:C 
7. 下面有关重载函数的说法中正确的是( )。 (2分) 
 A.重载函数必须具有不同的返回值类型;  
 B.重载函数形参个数必须不同;  
 C.重载函数必须有不同的形参列表;  
 D.重载函数名可以不同;  
 ★标准答案:C 
8. 在关键字private后面定义的成员为类的( )成员。 (2分) 
 A.私有  
 B.公用  
 C.保护  
 D.任何  
 ★标准答案:A 
9. 类的构造函数可以带有( )个参数。 (2分) 
 A.0  
 B.1  
 C.2  
 D.任意  
 ★标准答案:D 
10. 假定AA为一个类,a为该类公有的数据成员,若要在该类的一个成员函数中访问它,则书写格式为( )。 (2分) 
 A.a  
 B.AA::a  
 C.a()  
 D.AA::a()  
 ★标准答案:A 
11. 假定AB为一个类,则执行AB x;语句时将自动调用该类的( )。 (2分) 
 A.有参构造函数  
 B.无参构造函数  
 C.拷贝构造函数  
 D.赋值构造函数  
 ★标准答案:B 
12. 一个类的友元不是该类的成员,与该类的关系密切,所以它( )。 (2分) 
 A.有this指针,有默认操作的对象  
 B.没有this指针,可以有默认操作的对象  
 C.有this指针,不能执行默认操作  
 D.没有this指针,也就没有默认操作的对象  
 ★标准答案:D 
 13. 如果类A被说明成类B的友元,则( ) (2分) 
 A.类A的成员即类B的成员  
 B.类B的成员即类A的成员  
 C.类A的成员函数不得访问类B的成员  
 D.类B不一定是类A的友元  
 ★标准答案:C 
14. 引入友元的主要目的是为了( )。 (2分) 
 A.增强数据安全性  
 B.提高程序的可靠性  
 C.提高程序的效率和灵活性  
 D.保证类的封装性  
 ★标准答案:C 
15. 被非静态成员函数访问的类的数据成员( )。 (2分) 
 A.可以是非静态数据成员或静态数据成员  
 B.不可能是类的静态数据成员  
 C.只能是类的非静态数据成员  
 D.只能是类的静态数据成员  
 ★标准答案:A 
16. 静态成员函数对类的数据成员访问( )。 (2分) 
 A.是不允许的  
 B.只允许是静态数据成员  
 C.只允许是非静态数据成员  
 D.可允许是静态数据成员或非静态数据成员  
 ★标准答案:B 
17. 设px是指向一个类对象的指针变量,则执行 “delete px;”语句时,将自动调用该类的( )。 (2分) 
 A.无参构造函数  
 B.带参构造函数  
 C.析构函数  
 D.拷贝构造函数  
 ★标准答案:C 
18. 假定AA是一个类,abc是该类的一个成员函数,则参数表中隐含的第一个参数的类型为( )。 (2分) 
 A.int  
 B.char  
 C.AA  
 D.AA*  
 ★标准答案:D 
19. C++的继承性允许派生类继承基类的( )。 (2分) 
 A.部分特性,并允许增加新的特性或重定义基类的特性  
 B.部分特性,但不允许增加新的特性或重定义基类的特性  
 C.所有特性,并允许增加新的特性或重定义基类的特性  
 D.所有特性,但不允许增加新的特性或重定义基类的特性  
 ★标准答案:A 
20. 派生类的对象对它的基类成员中( )是可以访问的。 (2分) 
 A.公有继承的公有成员;  
 B.公有继承的私有成员;  
 C.公有继承的保护成员;  
 D.私有继承的公有成员;  
 ★标准答案:A 
21. 如果类B在类A的基础上构造,那么,就称( )。 (2分) 
 A.类A为基类或父类,类B为超类或子类  
 B.类A为基类、父类或超类,类B为派生类或子类  
 C.类A为派生类,类B为基类  
 D.类A为派生类或子类,类B为基类、父类或超类  
 ★标准答案:B 
22. 派生类的成员函数可以直接访问基类的( )成员。 (2分) 
 A.所有  
 B.公有和保护  
 C.保护和私有  
 D.私有  
 ★标准答案:B 
23. C++的基类指针可以访问派生类对象,但不能访问派生类对象的( )成员。 (2分) 
 A.private  
 B.protected  
 C.public  
 D.新增  
 ★标准答案:A 
24. 静态联编又称为:() (2分) 
 A.静多态  
 B.静态约定  
 C.静态约束  
 D.静态束定  
 ★标准答案:D 
25. 凡是能用以派生新类,却不能创建自己的对象的类称为( )。 (2分) 
 A.虚基类  
 B.抽象类  
 C.容器类  
 D.派生类  
 ★标准答案:B 
26. 假定p是具有double类型的指针变量,则表达式++p使p的值(以字节为单位)增加( )。 (2分) 
 A.1  
 B.4  
 C.sizeof(double)  
 D.sizeof(p)  
 ★标准答案:C 
27. 在C++中,当为一个变量定义引用时,引用类型( )。 (2分) 
 A.必须与变量类型一致  
 B.不一定与变量类型一致  
 C.也即变量的指针  
 D.也即变量的地址  
 ★标准答案:A 
28. 假定有定义“int b[10]; int *pb;”,则不正确的赋值语句为( )。 (2分) 
 A.pb=b;  
 B.pb=&b[0];  
 C.*pb=new int;  
 D.pb=b[5];  
 ★标准答案:D 
29. 在下面的字符数组定义中,( )有语法错误。 (2分) 
 A.char a[20]="abcdefg";  
 B.char a[]="x+y=55.";  
 C.char a[15];  
 D.char a[10]='5';  
 ★标准答案:D 
30. 有二维字符数组char s[4][6]={“zhang”,”gao”,”tang”,”wang”},执行程序cout<<s[2],屏幕上显示( ) (2分) 
 A.gao  
 B.tang  
 C.g  
 D.t  
 ★标准答案:B 
31. 以下正确的函数声明语句是( )。 (2分) 
 A.double fun(int x,int y)  
 B.double fun(int x;int y)  
 C.double fun(int,int);  
 D.double fun(int x,y);  
 ★标准答案:C 
32. 函数调用不可以( )。 (2分) 
 A.出现在一个表达式中  
 B.出现在执行语句中  
 C.作为一个函数的实参  
 D.作为一个函数的形参  
 ★标准答案:D 
33. 在一个C++程序中 (2分) 
 A.main函数必须出现在所有函数之前  
 B.main函数可以在任何地方出现  
 C.main函数必须出现在所有函数之后

 D.main函数必须出现在固定位置  
 ★标准答案:B 
34. 函数声明语句正确的是( )。 (2分) 
 A.int Function(void a);  
 B.void Function (int);  
 C.int Function(a);  
 D.void int(double a);  
 ★标准答案:B 
35. C++中函数返回值的类型是由( )决定的。 (2分) 
 A.return语句中表达式的类型  
 B.该函数定义时的类型  
 C.调用函数时的调用语句  
 D.系统根据结果  
 ★标准答案:B 
36. 循环语句“for(int i=0; i<n; i++) cout<<i*i<<’ ’;”中循环体执行的次数为( )。 (2分) 
 A.1  
 B.n-1  
 C.n  
 D.n+1  
 ★标准答案:C 
37. 有以下程序
void main()

int i;
for(i=0;i<3;i++)
switch(i)

case 1: cout<<i;
case 2: cout<<i;
default: cout<<i;

}执行后输出的结果是  (2分) 
 A.011122  
 B.012  
 C.012020  
 D.120  
 ★标准答案:A 
38. 循环体至少被执行一次的语句为( )。 (2分) 
 A.for循环  
 B.while循环  
 C.do循环  
 D.任一种循环  
 ★标准答案:C 
39. 在下面循环语句中内层循环体S语句的执行总次数为( )。
for(int i=0; i<n; i++)
for(int j=i; j<n; j++) S; (2分) 
 A.n2  
 B.(n+1)/2  
 C.n(n-1)/2  
 D.n(n+1)/2  
 ★标准答案:D 
40. 在下面循环语句中循环体执行的次数为( )。
int i=0,s=0; while(s<20) {i++; s+=i;} (2分) 
 A.4  
 B.5  
 C.6  
 D.7  
 ★标准答案:C 
  . 关于封装,下列说法中不正确的是( )。 (2分) 
 A.通过封装,对象的全部属性和操作结合在一起,形成一个 
整体  
 B.通过封装,一个对象的实现细节被尽可能地隐藏起来(不 
可见)  
 C.通过封装,每个对象都成为相对独立的实体  
 D.通过封装,对象的属性都是不可见的  
 ★标准答案:D 
2. 假定AA是一个类,abc是该类的一个成员函数,则参数表
中隐含的第一个参数的类型为( )。 (2分) 
 A.int  
 B.char  
 C.AA  
 D.AA*  
 ★标准答案:D 
 
3. 当将一个类A或函数f()说明为另一个类B的友元后,类A或
函数f()能够直接访问类B的( )。 (2分) 
 A.只能是公有成员  
 B.只能是保护成员  
 C.只能是除私有成员之外的任何成员  
 D.任何权限的成员  
 ★标准答案:D 
 
4. 类的析构函数可以带有( )个参数。 (2分) 
 A.0  
 B.1  
 C.2  
 D.任意  
 ★标准答案:A 
5. 一个类的析构函数通常被定义为该类的( )成员。 (2分 
) 
 A.私有  
 B.保护  
 C.公用  
 D.友元  
 ★标准答案:C 
6. 函数重载是指( )。 (2分) 
 A.两个或两个以上的函数取相同的函数名,但形参的个数或
类型不同  
 B.两个以上的函数取相同的名字和具有相同的参数个数,但
形参的类型可以不同  
 C.两个以上的函数名字不同,但形参的个数或类型相同  
 D.两个以上的函数取相同的函数名,并且函数的返回类型相同  
 ★标准答案:A 
7. 一个类的构造函数通常被定义为该类的( )成员。 (2分
 A.公用  
 B.保护  
 C.私有  
 D.友元  
 ★标准答案:A 
8. 在C++程序中使用的cout标识符是系统类库中定义的( )
类中的一个对象。 (2分) 
 A.istream  
 B.ostream  
 C.iostream  
 D.fstream  
 ★标准答案:B 
9. 采用重载函数的目的是( )。 (2分) 
 A.实现共享  
 B.减少空间  
 C.提高速度  
 D.使用方便,提高可读性  
 ★标准答案:D 
10. 在公有继承的情况下,基类成员在派生类中的访问权限( 
 A.受限制  
 B.保持不变  
 C.受保护  
 D.不受保护  
 ★标准答案:B 
11. 在关键字private后面定义的成员为类的( )成员。 (2 
 A.私有  
 B.公用  
 C.保护  
 D.任何  
 ★标准答案:A

12. 假定AB为一个类,则执行AB x;语句时将自动调用该类
的( )。 (2分) 
 A.有参构造函数  
 B.无参构造函数  
 C.拷贝构造函数  
 D.赋值构造函数  
 ★标准答案:B 
13. 在关键字public后面定义的成员为类的( )成员。 (2
 A.私有  
 B.公用  
 C.保护  
 D.任何  
 ★标准答案:B 
14. 类的构造函数是在定义该类的一个( )时被自动调用执行的。 (2分) 
 A.成员函数  
 B.数据成员  
 C.对象  
 D.友元函数  
 ★标准答案:C 
15. 假定AB为一个类,则执行 “AB *s=new AB(a,5);”语句时得到的一个动态对象为( )。 
 A.s  
 B.s->a  
 C.s.a  
 D.*s  
 ★标准答案:D 
16. 在C++程序中使用的cin标识符是系统类库中定义的( ) 
类中的一个对象。 (2分) 
 A.istream  
 B.ostream  
 C.iostream  
 D.fstream  
 ★标准答案:A 
 
17. 假定AA为一个类,int a()为该类的一个成员函数,若 
该成员函数在类定义体外定义,则函数头为( )。 (2分) 
 A.int AA::a()  
 B.int AA:a()  
 C.AA::a()  
 D.AA::int a()  
 ★标准答案:A 
 
18. 假定AA为一个类,a为该类私有的数据成员,GetValue
()为该类公有函数成员,它返回a的值,x为该类的一个对象
,则访问x对象中数据成员a的格式为( )。 (2分) 
 A.x.a  
 B.x.a()  
 C.x->GetValue()  
 D.x.GetValue()  
 ★标准答案:D

19. 派生类的对象对其基类中( )可直接访问。 (2分) 
 A.公有继承的公有成员  
 B.公有继承的私有成员  
 C.公有继承的保护成员  
 D.私有继承的公有成员  
 ★标准答案:A 
20. 派生类的对象对它的基类成员中( )是可以访问的。 (2 
分) 
 A.公有继承的公有成员;  
 B.公有继承的私有成员;  
 C.公有继承的保护成员;  
 D.私有继承的公有成员;  
 ★标准答案:A

21.

 
如果类B在类A的基础上构造,那么,就称( )。 (2分 
) 
 A.类A为基类或父类,类B为超类或子类  
 B.类A为基类、父类或超类,类B为派生类或子类  
 C.类A为派生类,类B为基类  
 D.类A为派生类或子类,类B为基类、父类或超类  
 ★标准答案:B

22. C++中的虚基类机制可以保证( )。 (2分) 
 A.限定基类只通过一条路径派生出派生类  
 B.允许基类通过多条路径派生出派生类,派生类也就能多次
继承该基类  
 C.当一个类多次间接从基类派生以后,派生类对象能保留多
份间接基类的成员  
 D.当一个类多次间接从基类派生以后,其基类只被一次继承 
 ★标准答案:A 
23. 设置虚基类的目的是( )。 (2分) 
 A.简化程序;  
 B.消除二义性;  
 C.提高运行效率;  
 D.减少目标代码;  
 ★标准答案:B 
24. 抽象类是( ): (2分) 
 A.不可以定义对象  
 B.可以定义对象  
 C.不可以派生新类  
 D.不可以输出  
 ★标准答案:A 
25. 动态联编又称为() (2分) 
 A.多态  
 B.动态束定  
 C.动态约束  
 D.动态约定  
 ★标准答案:B 
26. 假定指针变量p定义为“int *p=new int;”,要释放p 所指向的动态内存,应使用语句( )。 
 A.delete p;  
 B.delete *p;  
 C.delete &p;  
 D.delete []p;  
 ★标准答案:A 
27. 有以下程序
#include <iostream.h>
#include <string.h>
void main()

char a[]={'a','b','c','d','e','f','g','h','\0'};
int i,j;
i=sizeof(a);
j=strlen(a);
cout<<i<<","<<j<<endl;
} (2分) 
 A.9,9  
 B.8,9  
 C.1,8  
 D.9,8  
 ★标准答案:D 
28. 若有定义:int aa[8];则以下表达式中不能代表数组元素aa[1]的地址的是( )。 
 A.&aa[0]+1  
 B.&aa[1]  
 C.&aa[0]++  
 D.aa+1  
 ★标准答案:C 
29. 设int x[]={1,3,5,7,9,11,13},*p; p=x;则不能正确引用数组元素的表达式是( ) (2 A.*(p--)  
 B.*(--p)  
 C.*(p++)  
 D.*(++p)  
 ★标准答案:B 
30. 以下能正确定义数组并正确赋初值的语句是 (2分) 
 A.int N=5,b[N][N];  
 B.int a[1][2]={{1},{3}};  
 C.int c[2][]={{1,2},{3,4}};  
 D.int d[3][2]={{1,2},{3,4}};  
 ★标准答案:D 
31. 预处理命令在程序中都是以( )符号开头 
 A.*  
 B.#  
 C.&  
 D.@  
 ★标准答案:B 
32. 下列字符串属于合法标识符的是( )。 (2分) 
 A.INT  
 B.5_student  
 C.long  
 D.!DF  
 ★标准答案:A 
33. 设x=1.2,y=2.0,则语句z=(int)x+y;执行后,x的结果 
为( )。 (2分) 
 A.3.2  
 B.1  
 C.3.0  
 D.1.2  
 ★标准答案:C 
34. 下列关于单目运算符++、--的叙述中正确的是 (2分) 
 A.它们的运算对象可以是任何变量和常量  
 B.它们的运算对象可以是char型变量和int型变量,但不能
是float型变量  
 C.它们的运算对象可以是int型变量,但不能是double型变
量和float型变量  
 D.它们的运算对象可以是char型变量、int型变量和float
型变量  
 ★标准答案:D 
35. 以下正确的函数声明语句是( )。 (2分) 
 A.double fun(int x,int y)  
 B.double fun(int x;int y)  
 C.double fun(int,int);  
 D.double fun(int x,y);  
 ★标准答案:C 
36. 以下程序执行后sum的值是( )。
#include <iostream.h>
void main()

int i,sum;
for(i=1;i<6;i++) sum+=i;
cout<<sum<<endl;
} (2分) 
 A.15  
 B.14  
 C.不确定  
 D.0  
 ★标准答案:C 
37. 在下面循环语句中循环体执行的次数为( )。
int i=0; do i++; while(i*i<10); (2分) 
 A.4  
 B.3  
 C.5  
 D.2  
 ★标准答案:A 
38. 以下描述中正确的是( )。 (2分) 
 A.for循环只能用于循环次数已经确定的情况  
 B.for循环是先执行循环体语句,后判断表达式  
 C.在for循环中,不能用break语句跳出循环体  
 D.for循环的循环体语句中,可以包含多条语句,但必须用
花括号括起来  
 ★标准答案:D 
39. do语句能够改写为( )语句。 (2分) 
 A.复合  
 B.if  
 C.switch  
 D.while  
 ★标准答案:D 
40. C++语言的跳转语句中,对于break和continue说法正确 
的是( )。 (2分) 
 A.break语句只用于循环体中  
 B.continue语句只用于循环体中  
 C.break是无条件跳转语句,continue不是  
 D.break和continue的跳转范围不够明确,容易产生问题  
 ★标准答案:B 
 1. 静态数据成员的初始化是在( )中进行的。 (2分) 
 A.构造函数  
 B.任何成员函数  
 C.所属类  
 D.类体外  
 ★标准答案:D 
2. 一个类的友元不是该类的成员,与该类的关系密切,所以它( )。 (2分) 
 A.有this指针,有默认操作的对象  
 B.没有this指针,可以有默认操作的对象  
 C.有this指针,不能执行默认操作  
 D.没有this指针,也就没有默认操作的对象  
 ★标准答案:D 
3. 假定AB为一个类,则执行 “AB x;”语句时将自动调用该类的( )。 (2分) 
 A.带参构造函数  
 B.无参构造函数  
 C.拷贝构造函数  
 D.赋值重载函数  
 ★标准答案:B 
4. 在一个类的定义中,包含有( )成员的定义。 (2分) 
 A.数据  
 B.函数  
 C.数据和函数  
 D.变量  
 ★标准答案:C 
5. 假定AA为一个类,a为该类公有的数据成员,若要在该类的一个成员函数中访问它,则书写格式为( )。 (2分) 
 A.a  
 B.AA::a  
 C.a()  
 D.AA::a()  
 ★标准答案:A 
6. 一个类的构造函数通常被定义为该类的( )成员。 (2分) 
 A.公用  
 B.保护  
 C.私有  
 D.友元  
 ★标准答案:A 
7. 在公有继承的情况下,基类成员在派生类中的访问权限( ) (2分) 
 A.受限制  
 B.保持不变  
 C.受保护  
 D.不受保

 
护  
 ★标准答案:B 
8. 对于任一个类,用户所能定义的构造函数的个数至多为( )。 (2分) 
 A.0  
 B.1  
 C.2  
 D.任意个  
 ★标准答案:D 
9. 假定AA为一个类,int a()为该类的一个成员函数,若该成员函数在类定义体外定义,则函数头为( )。 (2分) 
 A.int AA::a()  
 B.int AA:a()  
 C.AA::a()  
 D.AA::int a()  
 ★标准答案:A 
10. ( )是析构函数的特征。 (2分) 
 A.析构函数可以有一个或多个参数;  
 B.析构函数名与类名不同;  
 C.析构函数的定义只能在类体内;  
 D.一个类中只能定义一个析构函数  
 ★标准答案:D 
11. 下列关于对象数组的描述中,( )是错的。 (2分) 
 A.对象数组的下标是从0开始的;  
 B.对象数组的数组名是一个常量指针:  
 C.对象数组的每个元素是同一个类的对象;  
 D.对象数组只能赋初值,而不能被赋值。  
 ★标准答案:D 
12. 对于任意一个类,析构函数的个数最多为( ) (2分) 
 A.0  
 B.1  
 C.2  
 D.3  
 ★标准答案:B 
13. 有如下类声明:class Foo {int bar; };则Foo类的成员bar是 ( ) (2分) 
 A.公有数据成员  
 B.公有成员函数  
 C.私有数据成员  
 D.私有成员函数  
 ★标准答案:C 
14. 对于一个类的构造函数,其函数名与类名( )。 (2分) 
 A.完全相同  
 B.基本相同  
 C.不相同  
 D.无关系  
 ★标准答案:A 
15. 假定AB为一个类,则执行 “AB *s=new AB(a,5);”语句时得到的一个动态对象为( )。 (2分) 
 A.s  
 B.s->a  
 C.s.a  
 D.*s  
 ★标准答案:D 
16. 在一个类的定义中,包含有( )成员的定义。 (2分) 
 A.数据  
 B.函数  
 C.数据和函数  
 D.数据或函数  
 ★标准答案:C 
17. 对于任一个类,用户所能定义的析构函数的个数至多为( )。 (2分) 
 A.0  
 B.1  
 C.2  
 D.任意个  
 ★标准答案:B 
 
18. 在C++中,当一个对象被创建后,它的每一个成员函数都含有一个系统自动生成的隐含的指针,称之为( )指针。 (2分) 
 A.对象  
 B.派生  
 C.基类  
 D.this  
 ★标准答案:D 
19. C++的继承性允许派生类继承基类的( )。 (2分) 
 A.部分特性,并允许增加新的特性或重定义基类的特性  
 B.部分特性,但不允许增加新的特性或重定义基类的特性  
 C.所有特性,并允许增加新的特性或重定义基类的特性  
 D.所有特性,但不允许增加新的特性或重定义基类的特性  
 ★标准答案:A 
20. 下面描述中,表达错误的是( )。 (2分) 
 A.公有继承时基类中的public成员在派生类中仍是public的  
 B.私有继承时基类中的private成员在派生类中仍是private的  
 C.私有继承时基类中的protected成员在派生类中仍是protected的  
 D.私有继承时基类中的public成员在派生类中是private的  
 ★标准答案:C 
21. 派生类的成员函数可以直接访问基类的( )成员。 (2分) 
 A.所有  
 B.公有和保护  
 C.保护和私有  
 D.私有  
 ★标准答案:B 
22. 在c++中,一个虚函数是通过关键字( )放在其基类说明的前面来加以说明的. (2分) 
 A.virtual  
 B.protected  
 C.operator  
 D.this  
 ★标准答案:A 
23. 对于公有继承,基类的公有和保护成员在派生类中将( )成员。 (2分) 
 A.全部变成公有  
 B.全部变成保护  
 C.全部变成私有  
 D.仍然相应保持为公有和保护  
 ★标准答案:D 
24. 凡是能用以派生新类,却不能创建自己的对象的类称为( )。 (2分) 
 A.虚基类  
 B.抽象类  
 C.容器类  
 D.派生类  
 ★标准答案:B 
25. 动态联编又称为() (2分) 
 A.多态  
 B.动态束定  
 C.动态约束  
 D.动态约定  
 ★标准答案:B 
26. 在下面的二维数组定义中,正确的是( )。 (2分) 
 A.int a[5][];  
 B.int a[][5];  
 C.int a[][3]={{1,3,5},{2}};  
 D.int a[](10);  
 ★标准答案:C 
27. 若有一些定义和语句int a=4,b=3,*p,*q,*w;p=&a; q=&b; w=q; q=NULL;则以下选项中错误的语句是 (2分) 
 A.*q=0;  
 B.w=p;  
 C.*p=&a;  
 D.*p=*w;  
 ★标准答案:C 
28. 假定一条定义语句为“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 
29. 在下面的一维数组定义中,( )有语法错误。 (2分) 
 A.int a[]={1,2,3};  
 B.int a[10]={0};  
 C.int a[];  
 D.int a[5];  
 ★标准答案:C 
30. 假定变量m定义为“int m=7;”,则定义变量p的正确语句为( )。 (2分) 
 A.int p=&m;  
 B.int *p=&m;  
 C.int &p=*m;  
 D.int *p=m;  
 ★标准答案:B 
31. 10+'a'+1.5-567.345/'b'的结果是( )型数据。 (2分) 
 A.long  
 B.double  
 C.int  
 D.float  
 ★标准答案:B 
32. 以下正确的描述是( )。 (2分) 
 A.函数的定义可以嵌套,函数的调用不可以嵌套  
 B.函数的定义不可以嵌套,函数的调用可以嵌套  
 C.函数的定义和函数的调用均可以嵌套  
 D.函数的定义和函数的调用均不可以嵌套  
 ★标准答案:B 
33. C++中函数返回值的类型是由( )决定的。 (2分) 
 A.return语句中表达式的类型  
 B.该函数定义时的类型  
 C.调用函数时的调用语句  
 D.系统根据结果  
 ★标准答案:B 
34. 全局变量的作用域限于( )。 (2分) 
 A.整个程序  
 B.从定义变量的位置开始到本源文件结束  
 C.本源文件  
 D.从定义变量的位置开始到本程序结束  
 ★标准答案:B 
35. 下列对引用的陈述中不正确的是( )。 (2分) 
 A.每一个引用都是其所引用对象的别名,因此必须初始化  
 B.形式上针对引用的操作实际上作用于它所引用的对象  
 C.一旦定义了引用,一切针对其所引用对象的操作只能通过该引用间接进行  
 D.不需要单独为引用分配存储空间  
 ★标准答案:C 
36. 在下面循环语句中循环体执行的次数为( )。
int i=0; do i++; while(i*i<10); (2

 
分) 
 A.4  
 B.3  
 C.5  
 D.2  
 ★标准答案:A 
37. 以下描述中正确的是( )。 (2分) 
 A.for循环只能用于循环次数已经确定的情况  
 B.for循环是先执行循环体语句,后判断表达式  
 C.在for循环中,不能用break语句跳出循环体  
 D.for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来  
 ★标准答案:D 
38. switch语句能够改写为( )语句。 (2分) 
 A.for  
 B.if  
 C.do  
 D.while  
 ★标准答案:B 
39. C++语言的跳转语句中,对于break和continue说法正确的是( )。 (2分) 
 A.break语句只用于循环体中  
 B.continue语句只用于循环体中  
 C.break是无条件跳转语句,continue不是 
 D.break和continue的跳转范围不够明确,容易产生问题  
 ★标准答案:B 
40. do语句能够改写为( )语句。 (2分) 
 A.复合  
 B.if  
 C.switch  
 D.while  
 ★标准答案:D 
  
 一. 单选 (共40题,共80分) 
1. 在一个类的定义中,包含有( )成员的定义。 (2分) 
 A.数据  
 B.函数  
 C.数据和函数  
 D.数据或函数  
 ★标准答案:C 
2. 对于一个类的析构函数,其函数名与类名( )。 (2分) 
 A.完全相同  
 B.完全不同  
 C.只相差一个字符  
 D.无关系  
 ★标准答案:C 
3. 对于任一个类,用户所能定义的析构函数的个数至多为( )。 (2分) 
 A.0  
 B.1  
 C.2  
 D.任意个  
 ★标准答案:B  
4. 假定AA为一个类,a为该类公有的数据成员,若要在该类的一个成员函数中访问它,则书写格式为( )。 (2分) 
 A.a  
 B.AA::a  
 C.a()  
 D.AA::a()  
 ★标准答案:A  
5. 对于任一个类,用户所能定义的构造函数的个数至多为( )。 (2分) 
 A.0  
 B.1  
 C.2  
 D.任意个  
 ★标准答案:D 
6. 当将一个类A或函数f()说明为另一个类B的友元后,类A或函数f()能够直接访问类B的( )。 (2分) 
 A.只能是公有成员  
 B.只能是保护成员  
 C.只能是除私有成员之外的任何成员  
 D.任何权限的成员  
 ★标准答案:D 
7. ( )是析构函数的特征。 (2分) 
 A.析构函数可以有一个或多个参数;  
 B.析构函数名与类名不同;  
 C.析构函数的定义只能在类体内;  
 D.一个类中只能定义一个析构函数  
 ★标准答案:D 
8. 假定AA为一个类,a()为该类公有的函数成员,x为该类的一个对象,则访问x对象中函数成员a()的格式为( )。 (2分) 
 A.x.a  
 B.x.a()  
 C.x->a  
 D.x->a()  
 ★标准答案:B 
9. 一个类的友元不是该类的成员,与该类的关系密切,所以它( )。 (2分) 
 A.有this指针,有默认操作的对象  
 B.没有this指针,可以有默认操作的对象  
 C.有this指针,不能执行默认操作  
 D.没有this指针,也就没有默认操作的对象  
 ★标准答案:D 
10. 被非静态成员函数访问的类的数据成员( )。 (2分) 
 A.可以是非静态数据成员或静态数据成员  
 B.不可能是类的静态数据成员  
 C.只能是类的非静态数据成员  
 D.只能是类的静态数据成员  
 ★标准答案:A 
11. 假定AB为一个类,则执行AB x;语句时将自动调用该类的( )。 (2分) 
 A.有参构造函数  
 B.无参构造函数  
 C.拷贝构造函数  
 D.赋值构造函数  
 ★标准答案:B 
12. 类的析构函数是一个对象被( )时自动调用的。 (2分) 
 A.建立  
 B.撤消  
 C.赋值  
 D.引用  
 ★标准答案:B 
13. 假定AA是一个类,abc是该类的一个成员函数,则参数表中隐含的第一个参数的类型为( )。 (2分) 
 A.int  
 B.char  
 C.AA  
 D.AA*  
 ★标准答案:D  
14. 假定AB为一个类,则执行 “AB x(a,5);”语句时将自动调用该类的( )。 (2分) 
 A.带参构造函数  
 B.无参构造函数  
 C.拷贝构造函数  
 D.赋值重载函数  
 ★标准答案:A 
15. 对于一个类的构造函数,其函数名与类名( )。 (2分) 
 A.完全相同  
 B.基本相同  
 C.不相同  
 D.无关系  
 ★标准答案:A 
16. 类的析构函数可以带有( )个参数。 (2分) 
 A.0  
 B.1  
 C.2  
 D.任意  
 ★标准答案:A 
17. 采用重载函数的目的是( )。 (2分) 
 A.实现共享  
 B.减少空间  
 C.提高速度  
 D.使用方便,提高可读性  
 ★标准答案:D 
18. 对于任意一个类,析构函数的个数最多为( ) (2分) 
 A.0  
 B.1  
 C.2  
 D.3  
 ★标准答案:B 
19. 设置虚基类的目的是( )。 (2分) 
 A.简化程序;  
 B.消除二义性;  
 C.提高运行效率;  
 D.减少目标代码;  
 ★标准答案:B  
20. 建立包含有类对象成员的派生类对象时,自动调用构造函数的执行顺序依次为( )的构造函数。 (2分) 
 A.自己所属类、对象成员所属类、基类  
 B.对象成员所属类、基类、自己所属类  
 C.基类、对象成员所属类、自己所属类  
 D.基类、自己所属类、对象成员所属类  
 ★标准答案:C 
21. C++的继承性允许派生类继承基类的( )。 (2分) 
 A.部分特性,并允许增加新的特性或重定义基类的特性  
 B.部分特性,但不允许增加新的特性或重定义基类的特性  
 C.所有特性,并允许增加新的特性或重定义基类的特性  
 D.所有特性,但不允许增加新的特性或重定义基类的特性  
 ★标准答案:A 
22. 派生类的对象对其基类中( )可直接访问。 (2分) 
 A.公有继承的公有成员  
 B.公有继承的私有成员  
 C.公有继承的保护成员  
 D.私有继承的公有成员  
 ★标准答案:A  
23. 在定义一个派生类时,若不使用保留字显式地规定采用何种继承方式,则默认为( )方式。 (2分) 
 A.私有继承  
 B.非私有继承  
 C.保护继承  
 D.公有继承  
 ★标准答案:A 
24. 面向对象方法的多态性是指( )。 (2分) 
 A.一个类可以派生出多个特殊类  
 B.一个对象在不同的运行环境中可以有不同的变体  
 C.针对一消息,不同的对象可以以适合自身的方式加以响应  
 D.一个对象可以是由多个其他对象组合而成的  
 ★标准答案:C 
25. c++语言的运算符可以重载为成员函数和( ): (2分) 
 A.算术函数  
 B.输出函数  
 C.友元函数  
 D.逻辑函数

 

 ★标准答案:C  
26. 在下面的字符数组定义中,( )有语法错误。 (2分) 
 A.char a[20]="abcdefg";  
 B.char a[]="x+y=55.";  
 C.char a[15];  
 D.char a[10]='5';  
 ★标准答案:D 
27. 假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[2][1]的值为( )。 (2分) 
 A.0  
 B.4  
 C.8  
 D.6  
 ★标准答案:A 
28. 以下函数的返回结果是( )。
int function(char *x) {
char *p=x; 
while(*p++); 
return(p-x-1);
} (2分) 
 A.求字符串的长度  
 B.将字符串x连接到字符串p后面  
 C.将字符串x复制到字符串p中  
 D.将字符串x反向存放  
 ★标准答案:A 
29. sizeof("abcd")值为:( )。 (2分) 
 A.3  
 B.4  
 C.5  
 D.0  
 ★标准答案:C 
30. 在C++中,当为一个变量定义引用时,引用类型( )。 (2分) 
 A.必须与变量类型一致  
 B.不一定与变量类型一致  
 C.也即变量的指针  
 D.也即变量的地址  
 ★标准答案:A  
31. 设a为5,执行下列语句后,b的值不为2的是: (2分) 
 A.b=a/2  
 B.b=6-(--a)  
 C.b=a%2  
 D.b=a<3?3:2  
 ★标准答案:C 
32. 设”int a=12;”,则执行完语句”a+=a*a;”后,a的值是( )。 (2分) 
 A.12  
 B.144  
 C.156  
 D.288  
 ★标准答案:D  
33. 全局变量的作用域限于( )。 (2分) 
 A.整个程序  
 B.从定义变量的位置开始到本源文件结束  
 C.本源文件  
 D.从定义变量的位置开始到本程序结束  
 ★标准答案:B 
34. 设有变量定义 int a=3,b=5,c=10; 则表达式(++a*b--)/2.0*c 的值是( )。 (2分) 
 A.100、0  
 B.80.0  
 C.75.0  
 D.60.0  
 ★标准答案:A  
35. 设a=12,n=5,则表达式a%=(n%=2)运算后,a的值为( )。 (2分) 
 A.0  
 B.1  
 C.6  
 D.12  
 ★标准答案:D  
36. 有以下程序
void main()

int i;
for(i=0;i<3;i++)
switch(i)

case 1: cout<<i;
case 2: cout<<i;
default: cout<<i;

}执行后输出的结果是  (2分) 
 A.011122  
 B.012  
 C.012020  
 D.120  
 ★标准答案:A 
37. 以下描述中正确的是( )。 (2分) 
 A.for循环只能用于循环次数已经确定的情况  
 B.for循环是先执行循环体语句,后判断表达式  
 C.在for循环中,不能用break语句跳出循环体  
 D.for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来  
 ★标准答案:D 
38. 循环体至少被执行一次的语句为( )。 (2分) 
 A.for循环  
 B.while循环  
 C.do循环  
 D.任一种循环  
 ★标准答案:C 
39. 在下面循环语句中循环体执行的次数为( )。
int i=0; do i++; while(i*i<10); (2分) 
 A.4  
 B.3  
 C.5  
 D.2  
 ★标准答案:A 
40. 在下面循环语句中循环体执行的次数为( )。
for(int i=0; i<n; i++) 
if(i>n/2) break; (2分) 
 A.n/2  
 B.n/2+1  
 C.n/2-1  
 D.n-1  
 ★标准答案:B 
  • 1
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值