不太懂的学生看看c++复习资料.docx
- 文档编号:7981245
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:19
- 大小:37KB
不太懂的学生看看c++复习资料.docx
《不太懂的学生看看c++复习资料.docx》由会员分享,可在线阅读,更多相关《不太懂的学生看看c++复习资料.docx(19页珍藏版)》请在冰豆网上搜索。
不太懂的学生看看c++复习资料
不太懂的学生看看,c++复习资料
一.单选(共40题,共80分)
1.假定AB为一个类,则执行“ABx;”语句时将自动调用该类的()。
(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为一个类,则执行“ABx(a,5);”语句时将自动调用该类的()。
(2分)
A.带参构造函数 B.无参构造函数 C.拷贝构造函数 D.赋值重载函数 ★标准答案:
A
9.设px是指向一个类对象的指针变量,则执行“deletepx;”语句时,将自动调用该类的()。
(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为一个类,inta()为该类的一个成员函数,若该成员函数在类定义体外定义,则函数头为()。
(2分)
A.intAA:
:
a() B.intAA:
a() C.AA:
:
a() D.AA:
:
inta() ★标准答案:
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.假定有定义“intb[10];int*pb;”,则不正确的赋值语句为()。
(2分)
A.pb=b; B.pb=&b[0]; C.*pb=newint; D.pb=b[5]; ★标准答案:
D
27.假定一条定义语句为“inta[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.chars1[]=”abcdef”; B.chars2[4]=”abcd”;
C.chars3[2][3]={“abc”,”xyz”};
D.chars4[4][]={‘a’,’x’,’s’,’t’}; ★标准答案:
A
29.执行语句“chara[10]={"abcd"},*p;p=a;”后,*(p+4)的值是()(2分)
A.“abcd” B.'d' C.'\0' D.不能确定 ★标准答案:
C
30.设有如下函数定义
intf(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.charx='C'; B.charx='#'; C.charx=''; D.charx='$'; ★标准答案:
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定义为“intx=5;”,要使rx成为x的引用(别名),rx应定义为()。
(2分)
A.intrx=x; B.intrx=&x; C.int*rx=&x; D.int&rx=x; ★标准答案:
D
36.以下描述中正确的是()。
(2分)
A.for循环只能用于循环次数已经确定的情况 B.for循环是先执行循环体语句,后判断表达式 C.在for循环中,不能用break语句跳出循环体 D.for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 ★标准答案:
D
37.循环语句“for(inti=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.在下面循环语句中循环体执行的次数为()。
inti=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
1.采用重载函数的目的是()。
(2分)
A.实现共享 B.减少空间 C.提高速度 D.使用方便,提高可读性
★标准答案:
D
2.假定AB为一个类,则执行“ABx(a,5);”语句时将自动调用该类的()。
(2分)
A.带参构造函数 B.无参构造函数 C.拷贝构造函数 D.赋值重载函数
★标准答案:
A
3.假定AB为一个类,则执行“AB*s=newAB(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.以下函数的返回结果是()。
intfunction(char*x){
char*p=x;
while(*p++);
return(p-x-1);
}(2分)
A.求字符串的长度 B.将字符串x连接到字符串p后面
C.将字符串x复制到字符串p中 D.将字符串x反向存放 ★标准答案:
A
8.假定p是具有double类型的指针变量,则表达式++p使p的值(以字节为单位)增加()。
(2分)
A.1 B.4 C.sizeof(double) D.sizeof(p) ★标准答案:
C
29.假定指针变量p定义为“int*p=newint[30];”,要释放p所指向的动态内存,应使用语句()。
(2分)
A.deletep; B.delete*p; C.delete&p; D.delete[]p; ★标准答案:
D
30.执行语句“chara[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
3.设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(inti=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.有以下程序
voidmain()
{
inti;
for(i=0;i<3;i++)
switch(i)
{
case1:
cout<<i;
case2:
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
一.单选(共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为一个类,则执行ABx;语句时将自动调用该类的()。
(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.被非静态成员函数访问的类的数据成员(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 不太懂 学生 看看 c+ 复习资料
![提示](https://static.bdocx.com/images/bang_tan.gif)