C++程序练习题有答案
选择题部分
1.编写C++程序一般需经过的几个步骤依次是(B)
A. 编辑、调试、编译、链接
B. 编辑、编译、链接、运行
C. 编译、调试、编辑、链接
D. 编译、编辑、链接、运行
2.下列关于C++函数的叙述中,正确的是(D)
A.每个函数都必须有参数
B.每个函数都必须返回一个值
C.函数在被调用之前可以不先声明
D.函数可以自己调用自己
3.在什么阶段可能会遇到一个关于不到某个函数或符号未定义的错误?(B)
A.在编译的过程中
B.在链接的过程中
C.在程序启动时
D.在你调用方法的时候
4.编译和链接分开的好处?(D)
A.没有好处
B.更容易分析错误因为你可以知道问题出自链接阶段还是编译阶段
C.这样做只让有改动的文件重新编译,节省了编译和链接时间
D.这样做只让有改动的文件重新编译,节省了编译时间
5.C++中声明常量的关键字是(A)
A.const
B. extern
C. public
D. enum
6.对于如f(int &i)声明的函数以及变量int a = 10,则下面调用正确的是(C)。
A. f(10);
B. f(10,a);
C. f(a);
D. f(&a)
7.对于如下定义的变量
const char* p = “test”;
下列语句哪个是错误的(D)。
A.printf(“%s\n,” p);
B.printf(“%c\n”, p[0]);
C.p = “TEST”;
D.*(p + 0) = ‘T’;
析构函数的定义8.下列表示引用的方法中,(A)是正确的。已知:int i = 50;
A.int & a = i;
B.char &a;
C.int &a = 50;
D.float &a = &i;
9.下列哪一项不适合使用引用?(A)
A.返回一个某函数的临时变量的引用
B.为了避免一个较大的值传递给函数时的复制操作
C.为了强制函数的一个参数,其值永远不能为NULL
D.为了让一个函数能够访问传递给它的原始变量,而无需使用指针
10.不能作为函数重载判断依据的是(C)
A . 参数顺序B. 参数类型C. 返回类型D. 参数个数
11.对于语句cout << a << endl;错误的是描述是(A)
A.“cout”是一个输入流对象
B.“endl”的作用是换行并刷新与设备相关联的缓冲区
C.“cout”是一个输出流对象
D.“cout”的类型是ostream
12.下面叙述不正确的是(D)
A. 派生类一般都用公有派生
B. 对基类成员的访问必须是无二义性的
C. 赋值兼容规则也适用于多重继承的组合
D. 基类的公有成员在派生类中仍然是公有的
13.对基类和派生类的关系描述中,错误的是(A)
A. 基类继承了派生类的属性
B. 派生类是基类的具体化
C. 派生类是基类定义的延续
D. 派生类是基类的特殊化
14.关于this指针使用说法正确的是(C)
A. 保证基类私有成员在子类中可以被访问
B. 保证每个对象拥有自己的数据成员以及各自独立的一份成员函数代码
C. 保证每个对象拥有自己的数据成员,但共享处理这些数据的代码
D. 保证基类公有成员在子类中可以被访问
15.下列不是类的成员函数的是(C)
A.类的构造函数
B. 类的析构函数
C. 类的友元函数
D. 类的=操作符重载函数
16.定义类的析构函数时,应该注意(C)
A.其名与类名完全相同
B.返回类型是void 类型
C.无形参,也不可重载
D.函数体中必须有delete 语句
17.对类的构造函数和析构函数描述正确的是(B)。
A. 构造函数不能重载,析构函数可以重载
B. 构造函数可以重载,析构函数不能重载
C. 构造函数可以重载,析构函数也可以重载
D. 构造函数不能重载,析构函数也不能重载
18.关于在构造函数中使用初始化列表,以下表述正确的是(D)
A.在你想要让构造函数尽可能地高效以及想要避免构造空的对象时
B.在你初始化一个常量的时候
C.在你想要运行类的某个非默认构造函数的时候
D.以上都正确
19.假定AB 为一个类,则执行AB x; 语句时将自动调用该类的(B)。
A.有参构造函数
B.无参构造函数
C.拷贝构造函数
D.赋值构造函数
20.关于new运算符的下列描述中,错误的是(D)
A. 它可以用来动态创建对象和对象数组
B. 使用它创建的对象或对象数组可以使用运算符delete删除
C. 使用它创建对象时要调用构造函数
D. 使用它创建数组时必须指定初始值。
21.对于动态分配内存空间描述正确的是(D)
A.使用new运算符分配的内存空间的长度必需是常量
B.delete运算符可以释放动态的存储空间和静态的存储空间
C.用malloc分配空间,将触发构造函数的调用
D.delete运算符只能释放由new分配的动态存储空间
22.面向对象程序设计数据与(A)放在一起,作为一个相互依存、不可分割的整体来处理。
A.对数据的操作 B.信息 C.数据隐藏 D.数据抽象
23.下面说法中,正确的是(D)
A. 一个类只能定义一个构造函数,但可以定义多个析构函数
B. 一个类只能定义一个析构函数,析构函数能够带参数
C. 构造函数与析构函数同名,其中构造函数名字前加了一个求反符号(~)
D. 构造函数和析构函数不可以指定返回类型
24.下面对友元函数的描述中正确的是(C)。
A.友元函数的实现必须在类的内部定义
B.友元函数是类的成员函数
C.在类中必须用friend声明友元函数
D.友元函数不能访问类的私有成员
25.如果类A被声明为类B的友元,则以下哪个说法是正确的(D)。
A. 类B也一定是类A的友元
B. 类B的成员即类A的成员
C. 类A的成员即类B的成员
D. 类A的成员函数可以访问类B的成员
26.下面哪个选项定义了结构体
struct MyStruct {
int func();
};
中声明的func方法?(C)
A.int func() { return 1;}
B.MyStruct::int func() { return 1;}
C.int MyStruct::func() { return 1;}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论