一、单项选择题(本大题共20小题,每小题1分,共20分)
第1题编写C++程序一般需经过的几个步骤依次是()
A.编辑、调试、编译、连接
B.编辑、编译、连接、运行
C.编译、调试、编辑、连接
D.编译、编辑、连接、运行
【正确答案】B
第2题设有定义int i;double j=5;,则10+i+j值的数据类型是()
A.int
B.double
C.float
D.不确定
【正确答案】B
第3题决定C++语言中函数的返回值类型的是()
A.return语句中的表达式类型
B.调用该函数时系统随机产生的类型
C.调用该函数时的主调用函数类型
D.在定义该函数时所指定的数据类型
【正确答案】D
第4题假定AB为一个类,px为指向该类的一个含有n个对象的动态数组的指针,则执行“delete[]px;”语句时调用该类析构函数的次数为()
A.0
B.1
C.n
D.n+1
【正确答案】C
第5题如果表达式++i*k中的“++”和“*”都是重载的友元运算符,则采用运算符函数调用格式,该表达式还可表示为()
A.operator*(i.operator++(),k)
B.operator*(operator++(i),k)
C.i.operator++().operator*(k)
D.k.operator*(operator++(i))
【正确答案】B
第6题在下列成对的表达式中,运算结果类型相同的一对是()
A.7.0/2.0和7.0/2
B.5/2.0和5/2
C.7.0/2和7/2
D.8/2和6.0/2.0
【正确答案】A
第7题友元关系不能()
A.提高程序的运行效率
B.是类与类的关系
C.是一个类的成员函数与另一个类的关系
D.继承
【正确答案】D
第8题this指针存在的目的是()
A.保证基类公有成员在子类中可以被访问
B.保证每个对象拥有自己的数据成员,但共享处理这些数据成员的代码
C.保证基类保护成员在子类中可以被访问
D.保证基类私有成员在子类中可以被访问
【正确答案】B
第9题存在定义int a[10],x,*pa;,若pa=&a[0],下列的四个选项中有一个和其他3个选项不是等价的为()
A.x=*pa;
B.x=*(a+l);
C.x=*(pa+1);
D.x=a[1];
【正确答案】A
第10题在编译指令中,宏定义使用哪个指令()
A.#if
B.#include
C.#define
D.#error
【正确答案】C
第11题使用地址作为实参传给形参,下列说法正确的是()
A.实参是形参的备份
B.实参与形参无联系
C.形参是实参的备份
D.实参与形参是同一对象
【正确答案】D
第12题类的析构函数是对一个对象进行以下哪种操作时自动调用的是()
A.建立
B.撤销
C.赋值
D.引用
【正确答案】B
第13题假定AA为一个类,a()为该类公有的函数成员,x为该类的一个对象,则访问x对象中函数成员a()的格式为()
A.x.a
B.x.a()
C.x->a
D.(*x).a()
【正确答案】B
第14题派生类的构造函数的成员初始化列表中,不能包含()
A.基类的构造函数
B.基类的对象初始化
C.派生类对象的初始化
D.派生类中一般数据成员的初始化
【正确答案】C
第15题下列for循环的循环体执行次数为()
for(int i(0),j(10);i=j=4;i++,j--)
A.0
B.1
C.4
D.无限
【正确答案】D
第16题在C++中,编写一个内联函数Fun,使用int类型的参数,求其平方并返回,返回值也为int类型,下列定义正确的是()
A.int Fun(int x){return x*x;}
B.int inline Fun(int x){return x*x;}
C.inline int Fun(int x){return x*x;}
D.int Fun(int x){inline return x*x;}
【正确答案】C
第17题定义析构函数时,说法正确的是()
A.其名与类名完全相同
B.返回类型是void类型
C.无形参,也不可重载
D.函数体中必须有delete语句
【正确答案】C
第18题假定一个类的构造函数为A(int aa,int bb){a=aa++;b=a*++bb;},则执行A x(4,5);语句后,x.a和x.b的值分别为()
A.4和5
B.4和20
C.4和24
D.20和5
【正确答案】C
第19题如果class类中的所有成员在定义时没有指明权限,则所有成员默认权限是()
A.public
B.protected
C.private
D.static
【正确答案】C
第20题在C++语言中,数据封装要解决的问题是()
A.数据的规范化
B.便于数据转换
C.避免数据丢失
D.防止不同模块之间数据的非法访问
【正确答案】D