北航1212考试批次《C++程序设计》复习题一-答案

.

北航1212考试批次《C++程序设计》复习题一

一、客观题 单项选择题(本大题共20小题,每小题1.5分,共30分)

1、在面向对象的程序设计中,一切都是围绕着___展开的( B )。 A.语言 B.类 C.数据类型 D.结构 2、以下关于类和对象的叙述中,正确的是( D )。

A.类和对象间没有联系 B.一个类的成员函数可以任意被调用 C.对象是抽象的,而类是具体实现

D.一般只有通过具体的对象才能访问类的成员函数

3、关于C++语言和C语言的关系的下列描述中,错误的是( D )。 A.C语言是C++语言的一个子集 B.C++语言对C语言做了些改进 C.C++语言与C语言兼容 D.C语言和C++语言都是面向对象的语言 4、下列函数中,可以为虚函数的是( D )。

A.自定义的构造函数 B.拷贝构造函数 C.静态成员函数 D.析构函数 5、在一个被调用函数中,关于return语句使用的描述,错误的是( C )。 A.被调用函数中可以不用return语句; B.被调用函数中可以使用多个return语句; C.被调用函数中,一个return语句可以返回多个值给调用函数; D.被调用函数中,如果有返回值,就一定要有return语句; 6、若用数组名作为函数调用时的实参,则实际上传递给形参的是( A)

A、数组首地址 B、数组的第一个元素值 C、数组中全部元素的值 D、数组元素的个数 7、在以下关于C++语言的注释的叙述中,不正确的是(C )

A、C++程序中,注释可用“/*”、“*/”形式表示,也可用“//”形式表示 B、C++编译器在编译一个程序时,将跳过注释,不对其进行处理 C、C++编译器在编译一个程序时,可发现注释中的单词拼写错误 D、程序中注释的多少不会影响所生成的可执行文件的长度 8、下列关于C++函数的叙述中,正确的是(C)

A、每个函数至少要具有一个参数 B、每个函数都必须返回一个值 C、函数在被调用之前必须先声明 D、函数不能自己调用自己

9、假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为: ( B)。

A、AB operator+(AB & a , AB & b) B、AB operator+(AB & a) C、operator+(AB a) D、AB & operator+( ) 10、面向对象系统不具有( C)特性。

A、继承性 B、封装性 C、过程性 D、多态性

11、下面四组运算符中,全都不能重载为友元函数的一组是( D )。

A.=,(),[],-> B.[],->,*,++ C.=,(),++,-- D.*,++,--,/ 12、动态联编要求类中应有( D )。

A.成员函数 B.内联函数 C.构造函数 D.虚函数 13、下列字符中不能构成标识符的是( C )。

A.数字字符 B.大写字母 C.连接符 D.下划线字符 14、下面说法中,正确的是( D )。

A.公有派生类的成员函数可以访问基类的私有成员; B.私有派生类的成员函数可以访问基类的私有成员;

精选word范本!

.

C.无论公有派生还是私有派生,派生类的成员函数均可以访问基类的私有成员; D.无论公有派生还是私有派生,派生类的成员函数均可以访问基类的公有成员; 15、对于全局函数 int f(void),与其完全等价的函数原型为( B )。

A.int &f( ) B.const int f( ) C.int f(void ) const D.以上都不是 16、在C++语言中,为了使重载函数具有通用的函数体,应使用( D )。 A.虚函数 B.纯虚函数 C.友元函数 D.函数模板 17、编译预处理工作是在___完成的( A )。

A.编译前 B.编译时 C.编译后 D.连接时 18、下列运算符中优先级别最高的是( A )。 A.++ B.?: C.!= D.+= 19、下列说法中,错误的是( C )。 A.带有纯虚函数的类称为抽象类;

B.不能定义抽象类的对象,但可以说明抽象类的指针和引用; C.不能定义抽象类的对象,也不能说明抽象类的指针和引用; D.定义抽象类的目的是为整个类族规定一个统一接口形式; 20、为了取代C中带参数的宏,在C++中使用 (B )

A、重载函数 B、内联函数 C、递归函数 D、友元函数 二、主观题 应用题(本大题共3小题,每题15分,共计45分) 21、请解释面向对象中“封装”的含义。

答:封装就是将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的函数代码进行有机的结合,形成“类”,其中的数据和函数都是类的成员。 22、写出下面程序的运行结果。 #include \

int a[]={1,3,5,7,9};

int *p[]={a,a+1,a+2,a+3,a+4}; void main(){

printf(\

printf(\

}

程序运行结果为: 9 5 3 8 4 7 23、写出下面程序运行结果。 #include void SB(char ch) {

switch(ch){ case 'A': case 'a':

cout <<\ case 'B': case 'b':

cout <<\

精选word范本!

.

case 'C': case 'c':

cout <<\ default:

cout <<\ } }

void main() {

char a1='b',a2='C',a3='f';

SB(a1);SB(a2);SB(a3);SB('A'); cout <

程序运行结果为:good!pass!bad!well!

程序设计题(本大题共1小题,每小题25分,共25分)

24、声明一个类模板,利用它分别实现两个整数、浮点数和字符的比较,求出大数和小数。

#include using namespace std;

template//声明一个类模板 class Compare {public:

Compare(numtype a,numtype b) {x=a;y=b;} numtype max()

{return (x>y)?x:y;} numtype min()

{return (x

numtype x,y; };

int main()

{Compare cmp1(3,7);

cout<

cout< cmp2(45.78,93.6);

cout<

cout< cmp3('a','A');

cout<

精选word范本!

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4