二级C++笔试-311
(总分100,考试时间90分钟)
一、选择题
下列各题A、B、C、D四个选项中,只有一个选项是正确的
1. 下列关于类中成员函数特征的描述中错误的是( )。
A. 类的成员函数一定是内联函数 B. 类的成员函数可以重载
C. 成员函数可以设置参数的默认值 D. 成员函数可以是静态的
2. 带有虚基类的多层派生类构造函数的成员初始化列表中都要列出虚基类的构造函数,这样将对虚基类的子对象初始化( )。
A. 与虚基类下面的派生类个数有关 B. 多次
C. 两次 D. 一次
3. 关于关键字class和typename,下列描述正确的是( )。
A. 程序中所有的class都可以替换为typename
B. 程序中所有的typename都可以替换为class
C. A和B都可以
D. A和B都不可以
4. 多态性指的是( )。
A. 以任何方式调用一个虚函数
B. 以任何方式调用一个纯虚函数
C. 借助于指向对象的基类指针或引用调用一个虚函数
D. 借助于指向对象的基类指针或引用调用一个纯虚函数
5. C++语言本身没有定义I/O操作,但I/O操作包含在C++实现中。C++标准库iostream提供了基本的I/O类。I/O操作分别由两个类istream和( )提供。
A.fstream B.iostream
C. ostream D. cin
6. 下列关于C++语言类的描述中错误的是( )。
A. 类用于描述事物的属性和对事物的操作
B. 类与类之间通过封装而具有明确的独立性
C. 类与类之间必须是平等的关系,而不能组成层次结构
D. 类与类之间可以通过一些方法进行通信和联络
7. 对于下面定义的类MyClass,在函数f()中将对象成员n的值修改为50的语句应该是( )。
class MyClass
public:
MyClass(int x) n=x;
void SetNum(int n1) n=n1;
private:
int n;
int f()
MyClass *ptr=new MyClass(45);
A.MyClass(50) B.SetNum(50)
C. ptr->SetNum(50) D. ptr->n=50
8. 若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是( )。
A. 函数调用可以作为独立的语句存在 B. 函数调用可以无返回值
C. 函数调用可以出现在表达式中 D. 函数调用可以作为一个函数的形参
9. 在E-R图中,用来表示实体的图形是( )。
A. 矩形 B. 椭圆形
C. 菱形 D. 三角形
10. 以下程序执行后的输出结果是( )。
#include<iostream>
using namespace std;
void try(int,int,int,int);
int main()
int x,y,z,r;
x=1;
y=2;
try(x,y,z,r);
cout<<r<<endl;
return 0;
void try(int x,int y, int z,int r)
z = x+y;
X = x*x;
y = y*y;
r = z+x+y;
A. 18 B. 9
C. 10 D. 不确定
11. 运算符重载是对已有的运算符赋予多重含义,因此( )。
A. 可以对基本类型(如int类型)的数据,重新定义“+”运算符的含义
B. 可以改变一个已有运算符的优先级和操作数个数
C. 只能重载C++中已经有的运算符,不能定义新运算符
D. C++中已经有的所有运算符都可以重载
12. 若有以下程序:
#include<iostream>
using namespace std;
class data
public:
int x;
data(int x)
data::x=x;
class A
private:
data dl;
public:
A(int x): dl(x)
void dispaO
cout<<dl.x<<",";
;
class B: public A
private:
data d2;
public:
B(int x):A(x-1),d2(x)
void dispb()
cout<<d2.x<<endl;
;
class C: public B
public:
C(int x):B(x-1)
void disp0
dispa();
dispb();
;
int main()
C obj(5);
obj.disp();
return 0;
程序执行后的输出结果是( )。
A. 5,5 B. 4,5
C. 3,4 D. 4,3
13. 对虚函数的调用( )。
A. 一定使用动态联编 B. 必须使用动态联编
C. 一定使用静态联编 D. 不一定使用动态联编
14. 在C++中,数据封装要解决的问题是( )。
A. 数据的规范化 B. 便于数据转换
C. 避免数据丢失 D. 防止不同模块之间数据的非法访问
15. 有如下程序:
#include <iostream>
using namespace std;
class Complex
double re, im,
public:
Complex(double r, double i): re(r), im(i)
double real() const return re;
double image() const return im,
Complex& operator +=(Complex a)
re +=a.re;
im +=a.im;
return *this;
;
ostream& operator << (ostream& s, const Complex& z)
return s<<'('<<z.real()<<','<<z.image()<<')';
int main()
Complex x(1,-2), y(2,3);
cout << (x+=y) << endl;
return 0;
执行这个程序的输出结果是( )。
A. (1,-2) B. (2,3)
C. (3,5) D. (3,1)
16. 有如下程序:
#include<iostream>
using namespace std;
int main()
void function(double val);
double val;
function(val);
do while语句流程图 cout<<val;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论