-
C++
选择题
填空题
判断题
1
、选择题
1
、
_____
只能访问静态成员变量。
A
静态函数
B
虚函数
C
构造函数
D
析构函数
2
、下列的各类函数中,
_____
不是类的成员函数。
A
构造函数
B
析构函数
C
友元函数
D
拷贝构造函数
3
、友元的作用
_____
。
A
提高程序的运行效率
B
加强类的封装性
C
实现数据的隐藏性
D
增加成员函数的种类
4、类模板的使用实际上是将类模板实例化成一个具体的
_____
。
A
类
B
对象
C
函数
D
模板类
5
、下列函数中,
_____
不能重载。
A
成员函数
B
非成员函数
C
析构函数
D
构造函数
6
、
_____
是一个在基类中说明的虚 函数,它在该基类中没有定义,但要求任何派生类都必须定义自己的版本。
A
虚析构函数
B
虚构造函数
C
纯虚函数
D
静态成员函数
7
、
_____
是
istrea m
的派生类,处理文件输入;
_____
是
iostream
的派生 类,可以同时处理文件的
I/O
。
A
、
ifstream B
、
ostream C
、
fstream D
、
ofstream
8
、对于派生类的构造函数,在定义对象时构造函数的执行顺序为:
先执 行
_____
,再执行
_____
,后执行
_____
。< br>
A
成员对象的构造函数
B
基类的构造函数
C
派生类本身的构造函数
9
、
局部变量可以隐藏全局变量,< br>那么在有同名全局变量和局部变量的情形时,
可以用
_____
提供对全局变量 的访
问。
A
域运算符
B
类运算符
C
重载
D
引用
10
、一个
____ _
允许用户为类定义一种模式,使得类中的某些数据成员及某些成员函数的返回值能取任意类型。
A
函数模板
B
模板函数
C
类模板
D
模板类
11
、
系统在调用重 载函数时,
往往根据一些条件确定哪个重载函数被调用,
在下列选项中,
不能作为依据 的是
_____
。
A
参数个数
B
参数的类型
C
函数名称
D
函数的类型
< br>12
、如果一个类至少有一个纯虚函数,那么就称该类为
_____
。
A
抽象类
B
虚基类
C
派生类
D
以上都不对
13
、进行文件操作时需要包含
_____
文件。
A iostream B fstream C stdio.h D stdliB
、
h
14
、在
C++
中,打开一个文件, 就是将这个文件与一个
_____
建立关联;关闭一个文件,就取消这种关联。
A
类
B
流
C
对象
D
结构
15
、
_____
提供了类对外部的接口,而
_____
不允许外界访问,但允许派生类的成员访问。
A
公有成员
B
私有成员
C
私有成员函数
D
保护成员
16
、
C++
对
C
语言作 了很多改进,下列描述中
_____
使得
C
语言发生了质变,从面向过程变成 了面向对象。
A
、增加了一些新的运算符;
B
、允许函数重载,并允许设置缺省参数;
C
、规定函数说明必须用原型;
D
、引进了类和对象的概念;
17
、在
C++
中,关于下列设置缺省参数值的描述中,
_____
是正确的。
A
、不允许设置缺省参数值;
B
、在指定了缺省值的参数右边,不能出现没有指定缺省值的参数;
C
、只能在函数的定义中指定参数的缺省值;
D
、设置缺省参数值时,必须全部都设置;
18
、
_____
不是构造函数的特征。
A
、构造函数的函数名与类名相同;
B
、构造函数可以重载;
C
、构造函数可以设置缺省参数;
D
、构造函数必须指定类型说明。
1
/
30
19
、
_____
是析构函数的特征。
A
、析构函数可以有一个或多个参数;
B
、析构函数名与类名不同;
C
、析构函数的定义只能在类体内;
D
、一个类中只能定义一个析构函数;
大家帮忙吖,考试要用的呢
,要答案吖,谢谢哦
,急!!!
问题补充:
20
、关于成员函数特征的下列描述中,
_____
是错误的。
A
、成员函数一定是内联函数;
B
、成员函数可以重载;
C
、成员函数可以设置缺省参数值;
D
、成员函数可以是静态的;
21
、下列静态数据成员的特性中,
_____
是错误的。
A
、说明静态数据成员时前边要加修饰符
static
;
B
、静态数据成员要在类体外进行初始化;
C
、静态数据成员不是所有对象所共用的;
D
、引用静态数据成员时, 要在其名称前加
<
类名
>
和作用域运算符;
22
、关于
new
运算符的下列描述中,
_____
是错误的。
A
、它可以用来动态创建对象和对象数组;
B
、使用它创建的对象或对象数组可以使用运算符
delete
删除;
C
、使用它创建对象时要调用构造函数;
D
、使用它创建对象数组时必须指定初始值;
23
、关于
del ete
运算符的下列描述中,
_____
是错误的。
A
、它必须用于
new
返回的指针;
B
、使用它删除对象时要调用析构函数;
C
、对一个指针可以使用多次该运算符;
D
、指针名前只有一对方括号符号,不管所删除数组的维数。
119512 083
Leroy→queen
Leroy%A1%FAque
C++选择题回答0
30
最佳答案
1 A2 C3 C4 A5 C6 C7 AC8 ABC9 A10 C11 D12 A13 B14 B15 AD16 D17 B18 D19 A20 A21 C22 D23 C
C++
选择题求助(觉得必对的,请另外选择出来,作为参考)
20
分
标签:选择题
试题
选题
C++
回答:
1
浏览:
470
提问时间:
2010-06-23 09:42
一、单选题(共
20
道试题)
V 1.
说明友元函数的关键字为
()
A. inline
B. virtual
C. friend
D. define
2.
对
A *p
用
new A
或
(A *)malloc(sizeof (A))
赋值,如下叙述正确的是
()
A. malloc
分配内存后会调用构造函数初始化,但
new
函数不会。
B. new
分配内存后会调用构造函数初始化,但
malloc
函数不会。
C. new
和
malloc
分配内存后都会调用构造函数初始化。
D. new
和
malloc
分配内存后都不会调用构造函数初始化。
3.
运算符重载是对已有的运算符赋予多重含义,因此
()
A. 可以对基本类型
(
如
int
类型
)
的数据,重新定义“ +”运算符的含义
2
/
30
B.
可以改变一个已有运算符的优先级和操作数个数
C.
只能重载
C++
中已经有的运算符,不能定义新运算符
D. C++
中已经有的所有运算符都可以重载
4.
有关类和对象的说法不正确的是
()
A.
对象是类的一个实例
B.
一个类只能有一个对象
C.
任何一个对象只能属于一个具体的类
D.
类与对象的关系和数据类型与变量的关系相似
5.
下面
()
不能由编译系统自动生成
A.
构造函数
B.
析构函数
C.
拷贝构造函数
D.
友元函数
6.
重载“>>”时,为保证其连用性,重载函数的返回类型应为
()
A. istream
B. ostream
C. istream &
D. ostream &
7.
下列关于运算符重载的描述中,正确的是
()
A.
不能改变运算符的优先级
B.
能够改变操作数的数目
C.
能够重载内嵌类型的运算符的预定含义
D.
通过重载运算符“()”能够改变运算符的结合性
8. C++
源程序文件的扩展名为
()
A. .cpp
B. .c
C. .c++
D. .dll
9.
若有
float f=6.8;int i= int(f);
则
i
的值为
()
A. 6
B. 7
C. 6.8
D.
不确定
10.
下列
()
是
C++
语言的有效标识符。
A. No.1
B. 12345
C. _No1
D. int
3
/
30
11. private
访问属性限制对象的成员可以在
()
中访问。
A.
本类的成员函数
B. main
函数
C.
父类的成员函数
D.
子类的成员函数
12.
含有
()
的类称为抽象类,不能直接用它实例化对象。
A.
纯虚函数
B.
虚函数
C.
静态成员
D.
友元
13.
有类模板定义如下:
template
下列类对象的定义中,正确的是
()
A. Dream a
B. Dream
C. Dream
D. Dream
14.
如果定义了 一个类
myclass
,则为
myclass
类对象以成员函数形式重载后< br>++
运算符的声明应该为
()
A. myclass operator++()
B. myclass operator++( int )
C. myclass& operator++()
D. myclass& operator++( int )
15.
下列
()
不能有参数。
A.
构造函数
B.
析构函数
C.
友元函数
D.
运算
16.
下列关于抽象类的描述中,正确的是
()
A.
抽象类中最多只能有一个纯虚函数
B.
抽象类不能定义该类的指针
C.
抽象类不能定义该类的对象
D.
抽象类至少有一个虚函数
17.
以下
()
是不正确的强制类型转换方式。
A. (type
表达式
)
B. (type)
表达式
C. type(
表达式
)
D. (type)(
表达式
)
18.
有如下函数模板定义:
template
在下列对
f
的调用中,错误
的是
()
A. f(3,5)
B. f(3.0,5.5)
4
/
30
C. f
D. f(3,5.5)
19.
空类就是没有
()
的类。
A.
类名
B.
任何成员
C.
数据成员
D.
成员函数
20.
下列关于类的描述中,错误的说法是
()
A.
类是一组对象的模板
B.
类是数据和操作的封装体
C.
类是对象的实例
D.
类是一种自定义的数据类型
共
0
条评论
...
[
学姐
]
1.C 2.B 3.C 4.B 5.A 6.C 7. 8.A 9.A 10.A 11.A 12.A 13.C 14. 15.B 16. 17.
18. 19.B 20.C
模拟试题一
一、选择题
1
、
C++
对
C
语言作了很多改进,下列描述中(
)使得
C
语言发生了质变,从面向过程变成了面向对象。
A
、增加了一些新的运算符;
B
、允许函数重载,并允许设置缺省参数;
C
、规定函数说明必须用原型;
D
、引进了类和对象的概念;
2
、下列描述中,(
)是错误的。
A
、内联函数主要解决程序的运行效率问题;
B
、内联函数的定义必须出现在内联函数第一次被调用之前;
C
、内联函数中可以包括各种语句;
D
、对内联函数不可以进行异常接口声明;
3
、在
C++
中,关于下列设置缺省参数值的描述中,(
)是正确的。
A
、不允许设置缺省参数值;
B
、在指定了缺省值的参数右边,不能出现没有指定缺省值的参数;
C
、只能在函数的定义性声明中指定参数的缺省值;
D
、设置缺省参数值时,必须全部都设置;
4
、(
)不是构造函数的特征。
A
、构造函数的函数名与类名相同;
B
、构造函数可以重载;
C
、构造函数可以设置缺省参数;
D
、构造函数必须指定类型说明。
5
、(
)是析构函数的特征。
A
、析构函数可以有一个或多个参数;
B
、析构函数名与类名不同;
C
、析构函数的定义只能在类体内;
5
/
30
D
、一个类中只能定义一个析构函数;
6
、关于成员函数特征的下列描述中,(
)是错误的。
A
、成员函数一定是内联函数;
B
、成员函数可以重载;
C
、成员函数可以设置缺省参数值;
D
、成员函数可以是静态的;
7
、下列静态数据成员的特性中,(
)是错误的。
A
、说明静态数据成员时前边要加修饰符
static
;
B
、静态数据成员要在类体外进行初始化;
C
、静态数据成员不是所有对象所共用的;
D
、引用静态数据成员时,要在其名称前加
<
类名
>
和作用域运算 符;
8
、友元的作用是(
)。
A
、提高程序的运用效率;
B
、加强类的封装性;
C
、实现数据的隐藏性;
D
、增加成员函数的种类;
9
、关于
new
运算符的下列描述中,(
)是错误的。
A
、它可以用来动态创建对象和对象数组;
B
、使用它创建的对象或对象数组可以使用运算符
delete
删除;
C
、使用它创建对象时要调用构造函数;
D
、使用它创建对象数组时必须指定初始值;
、关于
delete
运算符的下列描述中,(
)是错误的。
A
、它必须用于
new
返回的指针;
B
、使用它删除对象时要调用析构函数;
C
、对一个指针可以使用多次该运算符;
D
、指针名前只有一对方括号符号,不管所删除数组的维数。
、
const int *p
说明不能修改(
)。
A
、
p
指针;
B
、
p
指针指向的变量;
C
、
p
指针指向的数据类型;
D
、上述
A
、
B
、
C
三者;
< br>、已知:
print()
函数是一个类的常成员函数,它无返回值,下列表示中,(
A
、
void print() const
;
B
、
const void print()
;
C
、
void const print()
;
D
、
void print(const)
;
、派生类的对象对它的基类成员中(
)是可以访问的。
A
、公有继承的公有成员;
B
、公有继承的私有成员;
C
、公有继承的保护成员;
D
、私有继承的公有成员;
、设置虚基类的目的是(
)。
A
、简化程序;
B
、消除二义性;
C
、提高运行效率;
D
、减少目标代码;
6
/
30
)是正确的;
10
11
12
13
14
15
、下列描述中,正确的是(
)
A
、虚函数是一个
static
类型的成员函数;
B
、虚函数是一个非成员函数;
C
、抽象类是指具有纯虚函数的类;
D
、抽象类可以说明其对象;
二、判断下列描述的正确性,正确填
T
,错误填
F
。
1
、
C++
中标识符内的大小写字母是没有区别的。(
)
2
、
C++
是一种以编译方式实现的高级语言。(
)
3
、计算函数参数顺序引起的二义性是由不同的编译系统决定的。(
)
4
、返回值类型、参数个数和类型都相同的函数也可以重载。(
)
5
、使用关键字
class
定义的类中缺省的访问权限 是私有(
private
)的。(
)
6
、类的 私有成员只能被类中的成员函数访问,任何类以外的函数对它们的访问都是非法的。(
7
、多继 承情况下,派生类的构造函数的执行顺序取决于成员初始化列表中的顺序。(
)
8
、在公有继承中,基类中的公有成员和私有成员在派生类中都是可见的。(
)
9
、在私有继承中,基类中所有成员对派生类都是不可见的。(
)
10
、在保护继承中,对于垂直访问等同于公有继承,对于水平访问等同 于私有继承。(
)
11
、构造函数可以声明为虚函数。(
)
12
、在析构函数中调用虚函数时,采用动态束定。(
)
13
、在一个成员函数内调用一个虚函数时,对该虚函数的调用进行动态束定。(
)
14
、公有继承可以实现子类型。(
)
15
、构造函数可以声明为纯虚函数。(
)
三、分析下列程序的输出结果。
1
、
#include
class Test;
void fun1(Test t);
Test fun2();
class Test
{
public:
Test(int n=1) {val=n;
cout<<
}
Test(const Test& t) {val=; cout<<
Test& operator = (Test& t)
{
val=;
cout<<
return *this;
}
private:
int val;
};
void main()
{
Test t1(1);
Test t2=t1;
Test t3;
t3=t1;
7
/
30
)
fun1(t2);
t3=fun2();
}
void fun1(Test t){}
Test fun2()
{
Test t;
return t;
}
2
、
#include
class A
{
public:
A()
{cout<<
~A(){cout<<
}
};
class B
{
public:
B()
{cout<<
~B(){cout<<
}
};
class C:public A,public B
{
public:
C():member(),B(),A()
{cout<<
~C(){cout<<
}
private:
A member;
};
void main()
{
C obj;
}
3
、
#include
class R
{
public:
R(int r1,int r2) {R1=r1;R2=r2;}
void print();
void print() const;
private:
int R1,R2;
};
void R::print()
{
8
/
30
cout<
void R::print() const
{
cout<
void main()
{
R a(5,4);
();
const R b(20,52);
();
}
4
、
#include
class A
{
public:
virtual void act1();
void act2() {act1();}
};
void A::act1()
{
cout<<
}
class B : public A
{
public:
void act1();
};
void B::act1()
{
cout<<
B
::act1() called.
}
void main()
{
B b;
2();
}
模拟试题二
一、填空题(每空
1
分,共
20
分)。
1
、对象是
和
的封装体。
2
、定义重载函数时,要从
和
上进行区分。
3
、类定义中,缺省的成员是
成员。
4
、当一个成员函数被调用时,该成员函数的
指向调用它的对象。
5
、设置虚基类的目的是
,虚基类子对象的初始化由
完成。
9
/
30
6
、对虚函数使用基类类型的指针或引用调用,系统使用
联编;使用对象调用时,系统使用
联编。
7
、
一元运算符作为类成员函数重载时
形参;
二元运算符作为
重载时需声明
其右操作数。
8
、带有
的类称为抽象类,它只能作为
来使用。
9
、请填写下列表格(填写直接派生类实例对基类成员的可见性)。
public
直接派生类继承方式
基类中成员类型
public
private
protected
不可见
不可见
不可见
private
protected
二、单项选择题(每题
2
分,共
20
分)。
1
、下列描述中,(
)是不正确的。
A
、面向对象程序设计可重用性较好;
B
、对象之间通过消息进行信息传递;
C
、多态性体现了行为共享;
D
、面向对象方法的核心是继承;
2
、执行下列语句后的输出结果是(
)。
int hot=100;
int &rad=hot;
hot+=100;
cout<
A
、
0
;
B
、
100
;
C
、
200
;
D
、
300
;
3
、在
C++
中,关于下列函数参数的描述中,(
)是正确的。
A
、
C++
语言中,实参是按照自左至右的顺序求值的;
B
、若一个参数设置了默认值,则其右边的所有参数都具有默认值;
C
、函数参数的默认值不允许是表达式;
D
、设置参数默认值时,应该全部参数都设置;
4
、在(
)情况下适宜采用
inline
定义内联函数。
A
、函数体含有循环语句;
B
、函数体含有递归语句;
C
、函数代码小,频繁调用;
D
、函数代码多,不常调用;
5
、定义析构函数时,应该注意(
)。
A
、其函数名与类名完全相同;
B
、函数返回类型是
void
类型;
C
、无形参,也不可重载;
D
、函数体中必须有
delete
语句;
6
、下列关于构造函数的描述中,(
)是正确的。
A
、构造函数可以设置缺省参数;
B
、构造函数可以被继承;
10
/
30
C
、构造函数可以对静态数据成员进行初始化;
D
、构造函数可以说明为虚函数;
7
、友元的作用是(
)。
A
、提高程序的运用效率;
B
、加强类的封装性;
C
、实现数据的隐藏性;
D
、增加成员函数的种类;
8
、
int * const p
说明不能修改(
)。
A
、
p
指针;
B
、
p
指针指向的变量;
C
、
p
指针指向的数据类型;
D
、上述
A
、
B
、
C
三者;
9
、关于堆运算符的下列描述中,(
)是错误的。
A
、使用堆运算符可以动态建立或删除对象;
B
、
new
运算符创建对象时要调用构造函数;
C
、可以在使用
new[]
创建数组时,为每个数组元素指定初始值;
D
、
delete
运算符可以作用于空指针;
10
、关于继承的描述中,(
)是正确的。
A
、派生类是基类的子集;
B
、析构函数不能被继承;
C
、子类型关系是可逆的;
D
、派生类是基类的子类型;
三、改错题(程序的每一行前加上了行号,可以通过说明行号来指出错误位置)(共
20
分)。
1
、指出下面程序中的错误并改正。
Line1:
class MyClass
Line2:
{
Line3:
public:
Line4:
MyClass(int i) {member=i;}
Line5:
void SetMember(int m) {member=m;}
Line6:
int GetMember() const {return member;}
Line7:
private:
Line8:
int member;
Line9:
};
Line10:
void main()
Line11:
{
Line12:
MyClass obj1;
Line13:
MyClass obj2(3);
Line14:
=5;
Line15:
ber(10);
Line16:
}
2
、指出下面程序中的错误,并说明错误原因。
Line1:
class A
Line2:
{
Line3:
public:
Line4:
A() {func();}
Line5:
virtual void func()=0;
11
/
30
Line6:
};
3
、指出下面程序中的错误,说明错误原因并改正。
Line1:
class Test
Line2:
{
Line3:
public:
Line4:
Test(int i)
Line5:
{
Line6:
ptr=new int(i);
Line7:
}
Line8:
~Test()
Line9:
{
Line10:
delete ptr;
Line11:
}
Line12:
private:
Line13:
int *ptr;
Line14:
};
Line15:
void main()
Line16:
{
Line17:
Test obj1(1);
Line18:
Test obj2(obj1);
Line19:
}
四、简答题(共
30
分)。
1
、在下面给定的继承结构中,回答下列提出的问题。
class One
{
public:
int a;
void b();
void c(float);
};
class Two
{
public:
void b();
void c();
private:
int a;
};
class Three : public One,public Two
{
public:
void b();
};
void main()
{
Three obj;
12
/
30
obj.a=1;
----------------S1
obj.b();
--------------
--S2
obj.c(10);
----------------S3
}
(1)
、什么是多继承中的支配原则?
(2)
、主函数中对各条语句(
S1, S2, S3
)的访问是否具有二义性?为什么?
2
、写出下面程序的输出结果。
#include
int Div(int x,int y)
{
if(y==0)
throw y;
return x/y;
}
void main()
{
try
{
cout<<
cout<<
cout<<
}
catch(int)
{
cout<<
}
cout<<
}
3
、写出下面程序的输出结果。
#include
class A
{
public:
A(char i) {cout<<
~A() {cout<<
};
class B : virtual public A
{
public:
B(char i,char j) : A(i) {cout<<
~B() {cout<<
private:
char b;
};
class C : virtual public A
13
/
30
{
public:
C(char i,char j) : A(i) {cout<<
~C() {cout<<
};
class D : public B,public C
{
public:
D(char i,char j,char k,char l,char m,char n)
: C(k,l), B(i,j),A(i),aa(m)
{cout<<
~D() {cout<<
private:
A aa;
};
void main()
{
D obj('a','b','c','d','e','f');
}
五、根据给定的程序执行结果,将下列程序补充完整。(
10
分)。
#include
class Base
{
public:
Base(int i) {b=i;}
(1)
protected:
int b;
};
class Derive1:public Base
{
public:
(2)
void Print()
{
cout<<
}
};
class Derive2:public Base
{
(3)
};
void fun(
(4)
)
{
obj->Print();
}
14
/
30
void main()
{
(5)
fun(d1);
fun(d2);
}
程序的执行结果如下:
Derive1's Print() called.
Derive2's Print() called.
模拟试题三
一、填空题(每空
1
分,共
20
分)。
1
、所有的面向对象程序设计语言,都支持三个共同的本质特征
、
、
。
2
、
为了解决程序中函数调用的效率问题,引入了
,定义时需在函数前面加上
说明;为了提高程序
的运行效率,引入了
,定义时需在函数前面加上
说明。
3
、在类的定义当中,缺省的成员是
成员。
4
、请填写下列表格(填写派生类中成员的类型)。
public
生类继承方式
基类中成员类型
public
private
protected
不可见
不可见
不可见
派
private
protected
5
、利用成员函数对二元运算符进行重载时,其左操作数为
,右操作数为
。
6
、设置虚基类的目的是
,可通过
标识虚基类。
7
、动态联编是在
的支持下实现的,它通过
来调用该函数操作。
二、选择题(每题
2
分,共
20
分)。
1
、下列关于类型转换的描述中,(
)是错误的。
< br>A
、在不同类型操作数组成的表达式中,其表达式类型一定是最高类型
double型;
B
、逗号表达式的类型是最后一个表达式的类型;
C
、赋值表达式的类型是左值的类型;
D
、由低向高的类型转换是保值映射。
2
、(
)不是构造函数的特征。
A
、构造函数的函数名与类名相同;
B
、构造函数可以重载;
C
、构造函数可以设置缺省参数;
D
、构造函数必须指定类型说明。
3
、在
C++
中,关于下列设置参数默认值的描述中,(
)是正确的。
A
、不允许设置参数的默认值;
B
、设置参数默认值只能在定义函数时设置;
C
、设置参数默认值时,应该是先设置右边的,再设置左边的;
D
、设置参数默认值时,应该全部参数都设置。
4
、关于
new
运算符的下列描述中,(
)是错误的。
A
、它可以用来动态创建对象和对象数组;
B
、使用它 创建的对象或对象数组可以使用运算符
delete
删除;
C
、使用它创建对象时要调用构造函数;
15
/
30
-
-
-
-
-
-
-
-
本文更新与2021-01-26 08:58,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/570990.html