77范文网 - 专业文章范例文档资料分享平台

C++期末复习题(2)

来源:网络收集 时间:2019-08-30 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

C. char *p= \ D. char *p ; p= \51.以下关于两个同类型指针变量的叙述中,不正确的是 。D

A.在一定条件下,两个指针变量可以互相赋值 B.在一定条件下,两个指针变量可以进行比较运算 C.在一定条件下,两个指针变量可以进行减法运算 D.在一定条件下,两个指针变量可以进行加法运算

52.下列说法中错误的是 。D

A. 将数组名作为实参,实际上是让形参和实参指向同一段内存空间 B. 数组名作为实参时,传递的是数组的地址

C. 数组名作为实参,并没有将实参元素复制一份给形参

D. 数组名作为实参,函数中对形参所表示数组元素的改变不会影响到实参数组元素的值 53. 将两个字符串连接起来组成一个字符串时,选用 函数。C A. strlen() B. strcap() C. strcat() D. strcmp() 54. 比较两个字符串大小时,选用 函数。D

A. strlen() B. strcap() C. strcat() D. strcmp()

55.设有函数原型说明 void test(int a, int b=7, char *c=\下面的函数调用中存在语法错误的是 。C

A.test(3) B. test(3,8.2) C. test(6, \ D. test(0,0, \56.设有说明语句:float fun( int &, char *); int x; char s[200]; 以下对函数fun的调用中, 正确的调用格式是 。B

A. fun(&x, s) B. fun(x, s) C. fun(x, *s) D. fun(&x, *s) 57.有关类和对象的说法不正确的是______。C

A:对象是类的一个实例 B:任何一个对象只能属于一个具体的类

C:一个类只能有一个对象 D:类与对象的关系和数据类型和变量的关系相似 58.下列关于this指针的叙述中,正确的是______。D A: this指针是一个隐含指针,它隐含于类的成员函数中 B: 只有在使用this时,系统才会将对象的地址赋值给this C: 类的友元函数也有this指针

D: this指针表示了成员函数当前操作的数据所属的对象 59.若有如下类定义,x的值是____.D #include class S{ int x;

S(int a=0){x=++a;} ~S(){ }; };

void main() { S a(10); }

A: 0 B: 10 C: 11 D: 有语法错,得不到值 60.若有如下类定义,x的值是____.C #include class S{

int x;

public: S(int a=0){x=++a;}

6

~S(){ }; };

void main() { S a(10); }

A: 0 B: 10 C: 11 D: 有语法错,得不到值

61.若有一个MyClass类,则执行语句MyClass a,b(2),*p;后,自动调用该类的构造函数_____次。A A: 2 B: 3 C: 4 D: 5

62.若有一个MyClass类,则执行语句MyClass a,b[2],*p;后,自动调用该类的构造函数__ __次。B A: 2 B: 3 C: 4 D: 5 63.若有如下程序,则运行结果正确的是____.C #include class S{ int x;

public: S(){x=0;} S(int a){x=++a;}

void show(){cout<<\ };

void main()

{ S s1=100; s1.show(); }

A: 有语法错 B: x=100 C: x=101 64.若有如下程序,则运行结果正确的是____.B #include class S{ int x;

public: S(){x=0;} S(int a){x= a ++;}

void show(){cout<<\ };

void main()

{ S s1=100; s1.show(); }

A: 有语法错 B: x=100 C: x=101 65.若有下列程序: #include class Q{ int x,y; public:

Q(int a=0,int b=0) {x=a;y=b;} ...

};

void main() { Q q(); //L ... }

则以下说法正确的是____.B

D: x=0 D: x=0 7

A: L行说明了一个对象q B: L行说明了一个函数原型 C: L行说明了一个对象数组 D: 以上说法都不正确 66.若有下列程序: #include class Q{ int x,y; public:

Q(int a=0,int b=0) {x=a;y=b;} ...

};

void main() { Q q; //L ... }

则以下说法正确的是____.A

A: L行说明了一个对象q B: L行说明了一个函数原型 C: L行说明了一个对象数组 D: 以上说法都不正确 67.以下属于析构函数的特征是____.D

A: 析构函数名与类名不能相同 B: 析构函数的定义必须在类体内 C: 析构函数可以带或不带参数 D: 在一个类中析构函数有且只有一个 68.下面有关类的构造函数与析构函数的叙述中,正确的是____ .A

A: 同一个类的构造函数可以定义多个 B: 同一个类的构造函数只能有一个 C: 同一类的析构函数可定义多个 D: 类的析构函数名可任意定义 69.通过公有派生类的对象,只能访问基类成员中的______。A

A: 公有成员 B: 私有成员 C: 保护成员 D: 公有成员和保护成员 70.下列关于赋值兼容规则的叙述中,不正确的是____.B A: 派生类的对象可以赋值给基类的对象 B: 基类的对象可以赋值给派生类的对象 C: 派生类的对象可以初始化其基类的引用

D: 可以将派生类对象的地址赋值给其基类的指针变量 71.C++中不能被派生类继承的是____.B

A: 虚函数 B: 析构函数 C: 静态成员函数 D: 运算符重载函数72.C++中不能被派生类继承的是____.B

A: 虚函数 B: 构造函数 C: 成员函数 D: 运算符重载函数 73.下列关于虚函数的描述中,正确的是 .C A: 虚函数是一个 static类型的成员函数 B: 虚函数是一个非成员函数

C: 基类中采用virtual说明一个虚函数后,派生类中相同原型的函数也是虚函数

D: 派生类中的虚函数必须与基类中相同的虚函数名的虚函数具有不同的参数个数或类型 74.以下关于虚函数和函数重载的叙述中,不正确的是( )A A: 虚函数不是类的成员函数 B: 虚函数实现了 C++的多态性

C: 函数重载允许非成员函数,而虚函数则不行

D: 函数重载的调用根据参数的个数、序列来确定,而虚函数依据对象来确定

8

75.下列关于运算符重载的描述中,______是正确的。D

A: 运算符重载可以改变操作数的个数 B: 运算符重载可以改变化先级 C: 运算符重载可以改变结合性 D: 运算符重载不可以改变语法结构 76.下列运算符中不能在C++中重载的是______。A

A: ?: B: + C: - D: <=

77.为了区分一元运算符的前缀和后缀运算,在后缀运算符进行重载时,额外添加一个参数,其类型是____。C

A: void B: char C: int D: float

78.若通过类的成员函数和友元函数所实现的运算符重载的功能是一样的,下列说法正确的是___。D A: 这两种函数的参数相同,函数体实现过程不同 B: 编译器对这两种函数编译时所作的解释相同 C: 这两种函数都带有this指针

D: 友元函数比成员函数多一个参数 79.下面程序的输出结果为______。A #include<iostream.h> class CStatic { public:

CStatic(){val++;} static int val; };

int CStatic::val=0; void main()

{ CSatic cs1; cout<

CStatic cs2; CStatic cs3,cs4; cout<

A: 14 B: 24 C: 34 D:80.若有以下程序 #include class A

{ public:

A(int i,int j) { a=i; b=j; }

void move(int x,int y) { a+=x; b+=y; } void show() { cout<

int a,b; };

class B:private A { public:

B(int i,int j):A(i,j){}

void fun() { move(3,5); } void fl() { A::show(); } };

void main()

{ B d(3,4); d. fun(); d.fl(); }

54 9

程序执行后的输出结果是______。C

A: 3,4 B: 6,8 C: 6,9 D: 4,3

二、填空题

●基本概念题

1. 在c++中,标识符是以字母或 (1) 下划线 开头的,由字母、数字和 (1) 组成的

字符序列。

2. 在VC++程序中,要使用库函数,必须用编译预处理指令将相应的头文件包含进来;如要进行标准

输入/输出,则该编译预处理指令为 #include

3. 设有说明语句int j;float x;则执行语句x=j=4.8;后,x的值为 4或4.0 。 4. 设有语句int a=5,b=7,c=15,d;d=b>a||(c=a+b);则c的值为 15 。 5. 设有循环语句:

for (int i=0, x=0,s=0; i<=9&&x!=55 ; i++){ cin>>x; s+=x; } 在这循环语句中,循环体最多执行 10 次。 6. 设有循环语句:

for (int i=0, x=0,s=0; i<=9&&x!=55 ; i++){ cin>>x; s+=x; }

在这循环语句中,循环体最少执行 1 次。

7. 静态整型变量有确定的初值,其缺省的初值为 0 。 8. 设有语句:int a[10]; 则a的值为 数组的起始地址 。

9. 设有语句:int x[4][3]={3,4,5,6,7,8,9,10,11,12};则x[3][0]的初值为 12 。 10. m×n的数组中包含 m×n 个元素。

11. 在C++中,函数的参数传递方式有三种: 值传递 、地址传递和引用传递。 12. 在C++中,函数的参数传递方式有三种:值传递、 地址传递 和引用传递。 13. 若有语句:int a[5]={25,14,27,18},*p=a;

执行语句: (*p)++;则*p的值为 26 ; 14. 若有语句:int a[5]={25,14,27,18},*p=a;

执行语句:*p++;则*p的值为 14 。

15. 面向对象程序设计的三大特征:封装性,继承性和 多态性。 16. 面向对象程序设计的三大特征: 封装性,继承性和多态性。

17. 对于每一个类,均有构造函数和析构函数。在这两种函数中能定义为虚函数的是 析构函数。 18. 对于每一个类,均有构造函数和析构函数。在这两种函数中不能定义为虚函数的是 构造函数。 19. 对基类数据成员的初始化必须在派生类构造函数中的 成员初始化列表 处执行。 20. 在公有派生类的成员函数中可以使用基类的公有和保护成员。

●阅读程序题

21. 假定输入为60和20,则下列程序运行的结果为 20,60 。

#include using namespace std; int main() { int a,b; cin>>a>>b; if(a>b){ a=a+b; b=a-b; a=a-b;} cout<

10

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库C++期末复习题(2)在线全文阅读。

C++期末复习题(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/jiaoyu/704481.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: