C++期末总复习
C++期末总复习
1.关于变量的存储类型,下列说法错误的是(C )。
A、函数形参默认为是自动变量
B、全局变量默认为是静态变量
C、局部变量没有缺省值
D、静态变量具有缺省值0
2.类中不能给成员变量进行初始化
3.二维数组的列元素不能为空
4.关于类的构造函数,下列说法不正确的是( D )。
A、每个类都有构造函数
B、编写程序时,可以不为类定义构造函数
C、为了初始化类的数据成员,通常需要定义构造函数
D、每个类均有且只有一个缺省的构造函数
5.关于类的静态数据成员,下列叙述正确的是( D )。
A、静态数据成员不可以在类的构造函数中赋值
B、静态数据成员不可以被类的对象调用
C、静态数据成员不受类的访问权的限制
D、静态数据成员可以通过类名调用
6.关于常对象和常成员,下列叙述错误的是(C )。
A、常成员函数既能访问常成员数据,也能访问非常成员数据
B、非常成员函数既能访问非常成员数据,也能访问常成员数据
C、常对象既能访问常成员函数,也能访问非常成员函数
D、非常对象既能访问非常成员函数,也能访问常成员函数
7.下列关于虚函数的描述中正确的是(D )。
A、可以把静态的成员函数说明为虚函数
B、可以把非成员函数说明为虚函数
C、可以把构造函数和析构函数说明为虚函数
D、基类中的虚函数继承到派生类中,即使不用virtual说明仍为虚函数
8.以下关于类的友元函数的描述中,不正确的是(C )。
A、类的友元函数要用关键字“friend”说明
B、友元函数在类体中说明时,不受类中访问权限的限制
C、友元函数的作用域与类中成员函数的作用域相同
D、通常在类体之外定义友元函数的函数体
9.下面关于运算符重载的描述错误的是(C )。
A、运算符重载不能改变操作数的个数、运算符的优先级和结合性
B、不是所有的运算符都可以重载
C、运算符重载函数的调用必须使用关键字operator
D、在C++语言中不可通过运算符重载创造出新的运算符
10.下列关于单目运算符重载函数的参数描述中,错误的是(D )。
A、运算符重载函数的参数个数可能为0个
B、运算符重载函数的参数个数可能为1个
C、运算符重载函数的参数个数可能为2个
D、运算符重载函数的参数个数是可以变化的
11.若用友元函数重载运算符“/”,则对象表达式“y/x”还可以表示为( D)。
A、x.operator/(y)
B、operator/(x,y)
C、y.operator/(x)
D、operator/(y,x)
12.设有下列说明语句: int m=10;
const int n=10;
const double k=10;
; 则下列数组的定义中没有语法错误的是( A)。
A、float a[n+5];
B、int b[m];
C、double c[k];
D、float d[ ]
13.下列能用作C++自定义标识符的是(D )。
A、char
B、5d
C、-ab
D、_5D
14.自定义标识符是指在编程中,用户根据需要为变量,函数等对象起的名称,作为名称的标识符必须由字母,数字,下划线组成,且不能以数字开头。
15.数组的大小必须是整数常量表达式,也就是说,在编译时就必须知道数组的大小。例如:
设有下列说明语句: int m=10;
const int n=10;
const double k=10;
; 则下列数组的定义中没有语法错误的是( A)。
A、float a[n+5];
B、int b[m];
C、double c[k];
D、float d[ ]
16.本关任务:下列程序声明了一个表示连续正整数序列的类MagicNumber,用于求序列中的对称数。MagicNumber的成员函数Invert的功能是计算一个数的反序数,成员函数Symmetry的功能是查找一个序列中的对称数。将一个数的每位数倒过来所得到的新数叫原数的反序数,如果一个数等于它的反序数,则称该数为对称数。
用while循环来实现
1 |
|
17.本关任务:下列程序声明了一个字符串类STRING,用于实现字符串的交叉插入,即把2个源字符串交叉地插入到目标字符串中。
测试输入:无
预期输出:
源字符串1:abcde
源字符串2:ABCDEFGH
目标字符串:aAbBcCdDeEFGH
1 |
|
18.下面关于成员函数重载运算符和友元函数重载运算符叙述正确的是(A )。
A、成员函数和友元函数可重载的运算符是不相同的
B、成员函数和友元函数重载运算符时都需要用到this指针
C、成员函数和友元函数重载运算符时都需要声明为公有的
D、成员函数和友元函数重载运算符时的参数可能是相同的
19.下列关于友元函数的描述错误的是(A )。
A、友元函数具有类作用域,在类中随处可见
B、友元函数是类的外部函数,但能访问类的私有成员
C、在类体中说明友元函数时,不受访问权限的限制
D、在类体外定义友元函数时,不能通过作用域运算符指明其所属的类
20.下列关于纯虚函数的叙述中不正确的是( B)。
A、纯虚函数的说明以“=0;”结束,没有函数体
B、若不定义纯虚函数的函数体,编译时会产生连接错误
C、含纯虚函数的类是抽象类,不能定义其对象,但可以定义其指针或引用D、在派生类中定义基类纯虚函数的实现后,方可产生派生类的对象
21.关于派生冲突及解决方法,下列说法错误的是( C)。
A、来自不同类的同名成员,可用类名和作用域运算符进行区分
B、解决派生类中出现基类成员多个拷贝的方法是把基类声明为虚基类
C、用关键字virtual声明的虚函数不会出现同名冲突
D、派生成员和新增成员同名时,派生类中默认引用的是新增成员
22.关于类的静态成员,下列叙述错误的是(D )。
A、可以通过类名和作用域运用符使用类的静态成员
B、可以通过对象名和成员运用符使用类的静态成员
C、类的静态成员函数不能直接使用类的非静态成员
D、在声明对象前系统不为类的任何数据成员分配存储空间