C++练习
一、选择题
1.字符串常量"ME"的字符个数是__________.
A 4    B)  3    C)  2  D)  1
2.下面对枚举类型的描述正确的是__________.
A)枚举类型的定义为:enum {Monday,Tuesday,Wednesday,Thursday,Friday} Day;
B)在C++语言中,用户自定义的枚举类型的第一个常量的默认值是1.
C)可以定义如下枚举类型:enum {Monday,Tuesday,Wednesday=5,Thursday,Friday=5};.
D)以上说法都不正确.
3.定义如下枚举类型:enum Number{one=1, two=2, four=4, eight=8}; ,则下列语句正确的是__________.
ANumber num=1;                        BNumber num=Number(20);   
CNumber num=Number(eight|0xFF);        D)枚举类型Number的取值范围是015.
4.下列对字符数组进行初始化的语句正确的是__________.
Achar a[]="Hello";                        Bchar a[][]={‘H’,’e’,’l’,’l’,’o’};
Cchar a[5]= "Hello";                        Dchar a[2][5]={ "Hello","World"};
5.下列描述正确的是__________.
A)不是每个C++程序都必须包含预处理命令#include<iostream.h>.
B)C++程序必须有return语句.
C)C++程序中的变量必须定义在主程序内部.
D)C++程序中所使用的符号常量可以不进行定义.
6.对于语句const int x=10;的描述正确的是__________.
A)该语句不允许定义为int const x=10;
B)在程序中可以重新对x赋值.
C)变量x不能使用++运算符.
D)const关键字只能用来修饰常量.
7.执行完C++程序中的下列三条语句之后c指向__________.
int a,b,*c=&a;        int *p=c;        p=&b;
A)p        B)c        C)b        D)a
8.有如下定义语句:    typedef char *PCHAR; ,下列语句正确的是__________.
A)语句PCHAR p定义了一个字符变量
B)PCHAR p=’a’;
C)PCHAR p;  char  name[5]=”jone”;    p=name;           
D)PCHAR p=”hello”; cout<<p;的输出结果是’h’.
9.下列对变量的引用中错误的是__________.
A)int a; int &p=a;                    B)char a; char &p=a;
C)int a; int &p; p=a;                D)float a; float &p=a;
10.下列程序段循环__________.
int x=-10;
while(++x){}
A)9            B)10        C)11            D)无限
11.当一个函数无返回值时,函数的类型应为__________.
A)任意        B)void        C)int        D)char
12.一个函数带有参数说明时,则参数的默认值应该在__________中给出.
A)函数定义        B)函数声明        C)函数定义或声明        D)函数调用
13.C++语言中函数返回值的类型是由__________决定的.
A)调用该函数时系统临时
B)return语句中的表达式类型
C)定义该函数时所指定的函数类型
D)调用该函数时的主调函数类型
14.若有以下函数调用语句:
f(m+n,x+y,f(m+n,z,(x,y)));
在此函数调用语句中实参的个数是__________.
A)    6        B)5        C)4        D)3
15.C++语言中,对函数参数默认值的描述正确的是__________.
A)函数参数的默认值只能设定一个
B)一个函数的参数若有多个,则参数默认值的设定可以不连续
C)函数参数必须设定默认值
D)在设定了参数的默认值后,该参数后面定义的所有参数都必须设定默认值
16.不能作为函数重载判断依据的是__________.
A)const            B)返回类型        C)参数个数        D)参数类型
17.不能实现函数之间数据传递的是__________.
A)全局变量        B)局部变量        C)函数接口        D)函数返回值
18.一个函数为void f(int, char=’a’),另一个函数为 void f(int),则它们__________.
A)不能在同一个程序中定义
B)可以在同一程序中定义并可重载
C)一个定义在main函数中,一个定义在子函数中
D)以上说法均不正确
19.函数定义为Fun(int &i),变量定义 n=100,则下面调用正确的是__________.
A) Fun(20)        B) Fun(20+n)        C) Fun(n)            D) Fun(&n)
20.对类的构造函数和析构函数描述正确的是__________.
A)构造函数可以重载,析构函数不能重载
B)构造函数不能重载,析构函数可以重载
C)构造函数可以重载,析构函数可以重载
D)构造函数不能重载,析构函数不能重载
21.假定MyClass为一个类,则执行MyClass a, b(2), *p; 语句时,自动调用该类构造函数__________.
A)    2        B)3        C)4        D)5
22.下面对于友元函数描述正确的是__________.
A)友元函数的实现必须在类的内部定义
B)友元函数是类的成员函数
C)友元函数破坏了类的封装性和隐藏性
D)友元函数不能访问类的私有成员
23.C++,数据封装要解决的问题是__________.
A)数据的规范化        B)便于数据转换       
C)避免数据丢失        D)防止不同模块之间数据的非法访问
24.一个类的友元函数或友元类能够通过成员操作符访问该类的__________.
A)私有成员        B)保护成员        C)公有成员        D)所有成员
25.下面对静态数据成员的描述中,正确的是__________.
A)静态数据成员可以在类体内进行初始化
B)静态数据成员不可以被类的对象调用
C)静态数据成员不能受private控制符的作用
D)静态数据成员可以直接用类名调用
26.下面对静态数据成员的描述中,正确的是__________.
A)静态数据成员是类的所有对象共享的数据
B)类的每个对象都有自己的静态数据成员
C)类的不同对象有不同的静态数据成员值
D)静态数据成员不能通过类的对象调用
27.假定MyClass为一个类,则执行MyClass a[3],*p[2]; 语句时,自动调用该类构造函数_____.
A) 2            B) 3            C) 4            D) 5
28.对于常数据成员,下面描述正确的是_____.
A)常数据成员可以不初始化,并且不能更新
B)常数据成员必须被初始化,并且不能更新
C)常数据成员可以不初始化,并且可以被更新
D)常数据成员必须被初始化,并且可以被更新
29.对下列语句正确的描述是_____.
const int *x;  //
int * const x;  //
A)语句①的含义是指针变量x不能更改
B)语句②的含义是指针变量x所指向的值不能更改
C)语句②的含义是指针变量x不能更改
D)语句①和②相同含义的不同定义方式
30.关于new运算符的错误的描述是_____
A)enum c++使用运算符new创建对象数组时必须定义初始值
B)使用运算符new创建对象时,会调用类的构造函数
C)运算符new可以用来动态创建对象和对象数组
D)使用new运算符创建的对象可以使用运算符delete删除
31.下列关于运算符重载的描述中,正确的是_____.
A)运算符重载可以改变运算符的操作数的个数
B)运算符重载可以改变优先级
C)运算符重载可以改变优先级
D)运算符重载不可以改变语法结构
32.C++语言建立类族是通过_____实现的。
A)类的嵌套            B)虚函数        C)类的继承        D)抽象类
33.继承具有_____,即当基类本身也是某一个类的派生类时,底层的派生类也会自动继承间接基类成员.
A)规律性            B)传递性        C)重复性          D)多样性
34.下列对基类和派生关系的描述中,错误的是_____.
A)派生类是基类的具体化
B)派生类是基类的子集
C)派生类是基类定义的延续
D)派生类是基类的组合
35.下列对派生类的描述中,错误的是_____.
A)一个派生类可以作为另一个派生类的基类
B)派生类至少有一个基类
C)派生类的缺省继承方式是private
D)派生类只继承了基类的公有成员和保护成员
36.下列关于继承的描述中,错误的是_____.
A)析构函数不能被继承   
B)派生类是基类的组合
C)派生类的成员除了它自己的 成员外,还包含了它的基类的 成员
D)派生类中继承的基类成员的访问权限到派生类保持不便
37.派生类的 对象对它的基类成员中_____是可以访问的.
A)公有继承的成员            B)公有继承的私有成员       
C)公有继承的保护成员        D)私有继承的公有成员
38.派生类的构造函数的成员初始化列表中,不能包含_____.
A)基类的构造函数
B)派生类中子对象的初始化
C)基类中子对象的初始化
D)派生类中一般数据成员的初始化
39.关于多继承二义性的描述中,错误的是_____.
A)一个派生类的两个基类中都有某个同名成员,在派生类中对这个成员的访问可能出现二义性
B)解决二义性的最常用的方法是对成员名的限定法
C)基类和派生类中同时出现的同名函数,也存在二义性问题
D)一个派生类是从两个基类派生出来的,而这两个基类又有一个共同的基类,对该基类成员进行访问时,可能出现二义性
40.下面_____的叙述不符合赋值兼容规则.
A)派生类的对象可以赋值给基类的对象
B)基类的对象可以赋值给派生类的对象
C)派生类的对象可以初始化基类的引用
D)派生类的对象的地址可以赋值给指向基类的指针
41.下列程序中,编译时不会出错的语句是_____.
#include<iostream.h>
class Base
{
public:
    Base(){}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。