C++模拟测试题 下载本文

内容发布更新时间 : 2024/5/18 6:32:28星期一 下面是文章的全部内容请认真阅读。

1.类中定义的成员,其默认的访问属性是 D 。

A) public B)friend C) protected D)private 2.下列关于类和对象的叙述中,错误的是 B 。

A) 对象是类的具体实例 B) 一个类只能有一个对象 C) 类是对某一类对象的抽象 D) 类和对象的关系是数据类型与变量的关系

3.若需要把一个类外定义的成员函数指明为内联函数,则必须把关键字 ____C____ 放在函数原型或函数头的前面。

A) in B) inLine C) inline D) InLiner 4.若一个函数功能很简单,但要求被频繁调用,则最好定义其为 B 。

A) 重载函数 B) 内联函数 C) 递归函数 D) 嵌套函数

5.定义p并使p指向动态空间中的包含20个整数的数组所使用的定义语句为 a 。

A) int *p = new int[20]; B) int *p = new int(20); C) int *p = new [20]; D) *p = new int[20]; 6.假设AB为一个类,则该类的拷贝构造函数的声明语句为 ___c______ 。

A) AB&(AB x); B) AB(AB x); C) AB(AB &x); D) AB(AB *x);

7.面向对象程序设计思想的主要特征中不包括 d 。

A)封装性 B)多态性 C)继承性 D)功能分解, 逐步求精

8.一维整型数组a的正确定义是 d 。

A) int a(10); B) int n; cin>>n; int a[n]; C) int n=10; int a[n]; D) const int SIZE=10; int a[SIZE]; 9.下列静态数据成员特性中, c 是错误的。 A) 说明静态数据成员时前边要加修饰符static; B) 静态数据成员要在类体外进行初始化; C) 静态数据成员不是所有对象共有的;

D) 引用静态数据成员时,要在静态数据成员名前加<类名>和作用域分辨符。

10.下列各种函数中, a 不是类的成员函数。

A)友元函数 B)析构函数 C) 构造函数 D)拷贝构造

函数

11.C++语言中规定,函数的返回值的类型是由 c 。

A) return语句中的表达式类型所决定 B) 调用该函数时的主调用函数类型所决定 C) 在定义该函数时所指的数据类型所决定 D) 调用该函数时系统临时决定

1.一般说来,一个C++ 程序的开发步骤依次为: 编写 、编译、 连接 、运行和调试。

2.在C++ 中,有两种给出注释的方法。一种是沿用C语言的注释符, 即 “//” 。 另一种是从它开始,直到它所在行尾的字符都为注释的注释符,即 “/*……*/” 。

3.C++中的类拥有两类成员,它们是 __数据__ 成员 和 ___函数__ 成员 。 4.如果类A继承了类B,则类A称为 子 类(或派生类),类B称为 父 类 (或基类)。

5.在C++程序中,对刚创建的对象进行初始化的工作由 构造 函数来完成;而对象被删除前的一些清理工作则是由 析构 函数来完成的。

6.当成员函数被调用时,系统自动向它传递一个隐含的指针指向调用它的对象,该指针 称为 ___this__ 指针。动态绑定是在程序 __运行__ 阶段时完成的。

7.一般情况下,按照面向对象编程方法的要求 ,把类中数据成员的访问控制属性定义为 _私有_ 类型,而把成员函数的访问控制属性定义为 __公有 __ 类型。

1.简述“构造函数”和“析构函数”在特征、作用上的区别。 答:构造函数和析构函数是在类体中说明的两种特殊的成员函数。 构造函数的功能是在创建对象时,使用给定的值来将对象初始化。

析构函数的功能是用来释放一个对象的。在对象删除前,用它来做一些清理工作,它与构造函数的功能正好相反。

构造函数的特点如下:

(1)构造函数是成员函数,函数体可写在类体内,也可写在类体外。 (2)构造函数是一个特殊的函数,该函数的名字与类名相同,该函数不指定类型说明,它有隐含的返回值,该值由系统内部使用。该函数可以有一个参数,也可以有多个参数。

(3)构造函数可以重载,即可以定义多个参数个数不同的函数。

(4)程序中不能直接调用构造函数,在创建对象时系统自动调用构造函数。

析构函数的特点如下:

(1)析构函数是一个特殊的成员函数,它的名字同类名,并在前面加“~”字符,用来与构造函数加以区别。析构函数不指定数据类型,并且也没有参数。

(2)一个类中只能定义一个析构函数,析构函数不能重载。

(3)析构函数可以被调用,也可以由系统调用。在下面两种情况下,析构函数会被自动调用。一是如果一个对象被定义在一个函数体内,则当这个函数结束时,该对象的析构函数被自动调用;二是当一个对象是使用new运算符被动创建的,在使用delete运算符释放它时,delete将会自动调用析构函数。 1.源程序如下:

#include

void fun(int &a, int &b)

{ cout<<\

a -= 10; b += 21; }

void main( ) {

int x=13 , y=15 ; fun(x, y);

cout<<\}

运行结果: in fun: 13,15 in main: 3,36

2. 源程序如下:

#include class AB { public :

AB( int n = 20 , int m = 40 ) ;

~AB( ) ;

void Set( int n , int m ) { x = n ; y = m ; } private :

int x, y ; } ;

AB::AB( int n , int m ) { Set( n , m ) ;

cout<<“Construct : x=”<< x <<“, y=” << y << endl ; }

AB :: ~AB( ) {

cout<<“Destruct : x=” << x <<“, y=” << y << endl ; }

void main( )

{ AB x ( 3 ) ;

AB y ( 4 , 5 ) ; }

运行结果: