一. 单选(共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分)
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应定义为()
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<<’’;”中循环体执行的次数为( )。
A.1
B.n-1
C.n
D.n+1 ★标准答案:C
38. C++语言的跳转语句中,对于break和continue说法正确的是( )。(2分)
A.break语句只用于循环体中
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
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

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