一、选择题(每小题1分,共40分)
1、关于运算符重载,下列表述中正确的是( )。
A.c++已有的任何运算符都可以重载
B.运算符函数的返回类型不能声明为基本数据类型
C.在类型转换符函数的定义中不需要声明返回类型
D.可以通过运算符重载来创建c++中原来没有的运算符
2、在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部管理操作的函数是( )。
A.友元函数
B.虚函数
C.构造函数
D.析构函数
3、软件设计中模块划分应遵循的准则是( )。
A.低内聚低耦合
B.高内聚低耦合
C.低内聚高耦合
D.高内聚高耦合
4、如果类A被说明成类B的友元,则( )。
A.类A的成员即类B的成员
B.类B的成员即类A的成员
C.类A的成员函数不得访问类B的成员
D.类B不一定是类A的友元
5、有如下类定义:
class Foo
{
public:
Foo(int v):value(V){}//①
~Foo(){}//②
private:
Foo(){}//③
int value=0://④
};
其中存在语法错误的行是( )。
A.①
B.②
C.③
D.④
6、下面关于数组的描述错误的是( )。
A.在C++语言中数组的名字就是指向该数组第一个元素的指针
B.长度为n的数组,下标的范围是0~n-1
C.数组的大小必须在编译时确定
D.数组只能通过值参数和引用参数两种方式传递给函数
7、运算符重载是对已有的运算符赋予多重含义,因此( )。
A.可以对基本类型(如int类型)的数据,重新定义“+”运算符的含义
B.可以改变一个已有运算符的优先级和操作数个数
C.只能重载c++中已经有的运算符,不能定义新运算符
D.C++中已经有的所有运算符都可以重载
8、有如下类和对象的定义:
class Constants{
public:
static double getPI(){return 3.1416;}
};
Constants constants:
下列各组语句中,能输出3.1416的是( )。
A.coutD.cout<
9、 程序流程图中带有箭头的线段表示的是( )。
A.图元关系
B.数据流
C.控制流
D.调用关系
10、下列程序的执行结果为( )。
#include
void main()
{
int a=3,b=0;
int*P =&a;
b=+a++;
cout
B.4,3
C.3,4
D.4,4
11、 对长度为n的线性表排序,在最坏情况下,比较次数不是n(rt一1)/2的排序方法是( )。
A.快速排序
B.冒泡排序
C.直接插入排序
D.堆排序
12、 字面常量42、4.2、42L的数据类型分别是( )。
A.long,double、int
B.lon9、float、int
C.int、double、long
D.int、float、long
13、 下列叙述中正确的是( )。
A.栈是“先进先出”的线性表
B.队列是“先进后出”的线性表
C.循环队列是非线性结构
D.有序线性表既可以采用顺序存储结构,也可以采用链式存储结构
14、 不能作为重载函数的调用的依据是( )。
A.参数个数
B.参数类型
C.函数类型
D.函数名称
15、 下列语句中,错误的是( )。
A.const int buffer=256;
B.const double*point;
C.int const buffer=256;
D.double*eonst point:
16、 下列运算符中,在c++语言中不能重载的是( )。
A.*
B.>=
C.::
D./
17、 有如下说明:
int a[10]={1,2,3,4,5,6,7,8,9,10},* P=a; 则数值为9的表达式是( )。
A.*P+9
B.木(P+8)
C.*P+=9
D.P+8
18、 执行下列语句段后,输出字符“*”的个数是( )。
for(int i=50;i>1;i-=2)Cout