C++复习(选择与填空无答案)

更新时间:2023-05-30 12:33:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

基本知识 1.1 选择题 1. C++源程序文件的扩展名为 A) .CPP B) .C C).DDL D) .EXE 2.

不是C++语言的基本数据类型。

A)字符类型 B)整数类型 C)逻辑类型 D)枚举类型 3. 下列表达式的值为false的是

A)1<3 && 5<7 B)!(2>4) C) 3&0&&1 D) !(5<8)||(2<8) 4. 在C++语言里,一条语句以字符作为结束符。 A) , B) ; C) . D) 无符号 5.

下面对枚举类型的描述正确的是。 A) 枚举类型的定义为:

enum{Monday,Tuesday,Wednesday,Thursday,Friday}Day;

B) 在C++语言中,用户自定义的枚举类型的第一个常量的默认值是1

C)可以定义如下枚举类型:

enum{Monday,Tuesday,Wednesday=5,Thursday,Friday=5};

D) 以上说法都不正确 6. 定义如下变量:int i=2; int j=3; 则i/j的结果为。 A) 0.66667 B) 0 C) 0.7 D) 0.66666666…… 7.

有如下数组声明:int values [30];,下标值引用错误的是 。

A)values[30] B)values[20] C)values[10] D)values[0] 8.

下列描述正确的是。

A) 表示m>n为false或m<n为true的表达式为(m>n&&m<n)

B) switch语句结构中必须有default语句 C) if语句结构中必须有else语句

D)如果至少有一个操作数为true,则包含║运算符的表达式为true 9.

下列关于指针运算的描述错误的是。 A) 在一定条件下,两个指针可以相加 B)在一定条件下,两个指针可以进行逻辑判断 C)在一定条件下,指针可以为空值 D)在一定条件下,两个指针可以相互赋值 10. 下列对变量的引用错误的是。

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; 1.2 填空题

11. 程序文件的编译错误分为

12. 字符串类型的变量一般用和 13. 空字符串的长度是。

14. 设int x = 10,则表达式x<=10?20 : 30的值为。 15. 一个指针类型的对象占用内存的空间。

16. 除了在和的情况下,定义引用变量

必须初始化。

17. 对于嵌套的if…else语句,C++语法规定else总是与

匹配。

18. 下列程序计算出0到9之间的任意3个不相同的数字组成

的三位数共有多少种不同的组合方式。请完成下列程序。 #include < iostream.h> Void main() {

int i,j,k,count = 0; for(i=9;i>=1;i--) For(j=9;j>=0;j--) If else

for(k=0;k<=9;k++) If count++; cout<<count<<endl; } 648.

函数

2.1 选择题

19. 当一个函数无返回值时,函数的类型应为。

A) 任意 B) void C) int D)char

20. 在C++语言中函数返回值的类型时由

A) 调用该函数时系统临时 B) return语句中的表达式类型

C)定义该函数时所指定的函数类型 D) 调用该函数时的主调函数类型

21. 在不同文件的函数中,对全局变量的引用要加上关键字。

A) register B) auto C) static D)extern 22. 不能实现函数之间数据传递的是。

A)全局变量 B) 局部变量 C) 函数接口 D)函数返回值

23. 对下列程序段的描述正确的是

#include < iostream.h> Int Fun (int x,int y) {

Return x+y; }

Void main() {

Int i+ 10;

Cout<<Fun (i++,i)<<end1; }

A) 程序输出结果不能确定 B) 程序输出结果是20 C) 程序输出结果是21 D) 程序输出结果是22

2.2 填空题

24. 其

中, 调用又根据C++中变量值的不同分为:传递变量本身值的调用和 的 调用。

25. 在调用一个函数的过程中可以直接或间接地调用该函数,

这种调用称为 调用,该函数称为 。 26. 假定一个函数的参数说明为int x[],则等价的指针参数说

明为 。

27. 下面的函数Fun将一个整数字符串转换为一个整数。请完

成下列函数定义。 #include < iostream.h> Int Fun (char*str) {

Int num,digital,len;

//给变量num赋初值 Len = strlen(str); While (*str != NULL) {

Difital = *str-'0'; Digital *=10; Len--;

Num += digital; } Return }

类与对象

3.1选择题

28. 对类的构造函数和析构函数描述正确的是。

A) 构造函数可以重载,析构函数不能重载 B) 构造函数不能重载,析构函数可以重载 C) 构造函数可以重载,析构函数也可以重载 D) 构造函数不能重载,析构函数也不能重载 29. 下面对于友元函数描述正确的是

A)友元函数的实现必须在类的内部定义(外部) B)友元函数是类的成员函数(不是) C)友元函数破坏了类的封装性和隐蔽性 D)友元函数不能访问类的私有成员(能)

30. 下面对静态数据成员的描述中,正确的是。

A)静态数据成员可以在类体内进行初始化(外) B)静态数据成员不可以被类的对象调用 C)静态数据成员不能受private控制符的作用 D)静态数据成员可以直接用类名调用 3.2 填空题

31. 在C语言中,编程的单位是;在C++语言中,编

程的单位是 。

32. 在结构定义中,数据和成员函数默认权限是在

类定义中,数据和成员函数默认权限是 。 33. 运算符对指定类型对象动态分配内存并返回该

类型的 。

34. 非成员函数应声明为类的private成员。 35. 完成下面的类定义。

Class MyClass { Public; MyClass(){x=0;}

my); Private; Int x ; };

{

Return my.x; }

类与对象的高级操作

4.1 选择题

36. 假定MyClass为一个类,则执行MyClass a[3],*p[2];语句

时,自动调用该类构造函数 次 A) 2 B) 3 C) 4 D)5 类MyClass的定义如下: Class MyClass { Public;

MyClass(){}

MyClass(int i) {value = new int(i); } Int*value; };

37. 若要对value赋值,则下面语句正确的是。

A)MyClass my;my.value = 10; B)MyClass my;*my.value = 10; C)MyClass my;my.*value = 10; D)MyClass my(10)

38. 关于new运算符的错误的描述是。

A) 使用运算符new创建对象数组必须定义初始值 B) 使用运算符new创建对象时,会调用类的构造函数 C) 运算符new可以用来动态创建对象和对象数值 D) 使用new运算符创建的对象可以使用运算符delete删除 4.2 填空题

39. 常量对象应,并且不能在生成之后修改。 40. 指向数组的指针是指

41. 有如下定义语句:MyClass p[10];则系统自动调用该类构

造函数 次。当类对象数组p离开它的作用域时,

系统自动调用该类析构函数 次。

运算符重载

5.1选择题

42. 下了运算符中,运算符在C++中不能重载。

A) ?: B) [] C) new D) &&

43. 下面对C++运算符的正确的描述是。

A) 只有类成员运算符 B) 只有友元运算符 C) 只有非成员和非友元运算符 D) 上述三者都有 44. 下列关于运算符重载的描述中,正确的是

A) 运算符重载可以改变运算符的操作数的个数 B) 运算符重载可以改变优先级 C) 运算符重载可以改变结合性 D) 运算符重载不可以改变语法结构 5.2 填空题

45. 单目运算符作为类成员函数重载时双目运算

符作为 重载时需要声明其右操作数,作为 重载时需声明全部操作数。

46. 利用成员函数对二元运算符重载,其左操作数为,右

操作数为 。

47. 通过重载函数调用运算符实现下列数字函数的抽象:

F(x,y)=ax2+by+c

继承与派生

6.1 选择题

48. C++语言建立类族是通过

A) 类的嵌套 B) 虚函数 C) 类的继承 D)抽象类 49. 下列对基类和派生类关系的描述中,错误的是。

A)派生类是基类的具体化 B)派生类是基类的子集 C)派生类是基类定义的延续 D)派生类是基类的组合 50. 派生类的对象对它的基类成员中是可以访问的。

A)公有继承的公有成员 B)公有继承的私有成员 C)公有继承的保护成员 D)私有继承的公有成员 51. 派生类的构造函数的成员初始化列表中,不能包

含 。

A)基类的构造函数 B)派生类中子对象的初始化 C)基类中子对象的初始化 D)派生类中一般数据成员的初始化

52. 带有虚基类的多层派生类构造函数的成员初始化列表中

都要列出虚基类的构造函数,这样将对虚基类的子对象初始化

A)与虚基类下面的派生类个数有关 B)多次 C)两次 D) 一次

53. 下面叙述错误的是。

A)派生类可以使用private派生 B)对基类成员的访问必须是无二义性的

C)基类成员的访问能力在派生类中维持不变 D)赋值兼容规则也适用于多继承的组合

6.2填空题

54. 派生类可以调用其中不具备的数据和操作。 55. C++提供的机制允许一个派生类继承多个基类,

即使这些基类是相互无关的。

56. 当用protected继承从基类派生一个类时,基类的public

成员成为派生类的 成员,protected成员成为派生类的 成员。

57. 当撤销一个含有基类和子对象成员的派生类对象时,将首

先完成 的析构函数定义体的执行,接着完成 的析构函数定义体的执行,最后完成 的析构函数定义体的执行。

58. 指向基类的对象的指针变量也可以指向

多态性

7.1 选择题

59. 下列关于动态联编的描述中,错误的是A)动态联编是以虚函数为基础的

B)动态联编是在运行时确定所调用的函数代码的 C)动态联编调用函数操作是指向对象的指针或对象引用 D)动态联编是在编译时确定操作函数的 60. 编译时的多态性可以通过使用获得。

A)虚函数和指针 B)重载函数和析构函数 C)虚函数和对象 D)虚函数和引用

61. 关于虚函数和抽象类的描述中,错误的是。

A)纯虚函数是一种特殊的虚函数,它没有具体的实现 B)抽象类是指具有纯虚函数的类

C)一个基类中说明有纯虚函数,该基类的派生类一定不再是抽象类

D)抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出

62. 下面的描述中,正确的是

A)virtual可以用来声明虚函数

B)含有纯虚函数的类是不可以用来创建对象的,因为它是虚基类

C)即使基类的构造函数没有参数,派生类也必须建立构造函数

D)静态数据成员可以通过成员初始化列表来初始化

7.2 填空题

63. 静态联编所支持的多态性称为编所支持的多态性则称为 多态性,动态多态性由 来支持。

64. C++中虚析构函数。

C++的I/O流库

9.1选择题

65. 下面是关于ios类的叙述,正确的是

A)它是istream类和ostream类的虚基类 B)它只是istream类的虚基类

C)它只是ostream类的虚基类 D)它是iostream类的虚基类

66. cin是Cout、cerr和

clog是cout处理标准输出,cerr和colg都处理标准出错信息,只是 输出不带缓冲, 输出带缓冲。

A)istream B)ostream C)cerr D)clog 67. 若已知char str[20;],有语句cin>>str;当输入为:This is a

program

所得的结果是str= 。

A)This is a program B)This C)This is D) This is a

68. 在ios是转换为十

六进制形式的标志位。

A)hex B)oct C)dec D)left

69. 文件的I/O由和是

istream的派生类,处理文件输入;是ostream的派生类,处理文件输出: 是iostream的派生类,可以同时处理文件的输入和输出。

A)ifstream B)ofstream C)fstream D)fstream.h

9.2 填空题

70. 与系统中标准设备对应的四个对象是、、

和 。

71. 参数化的流操作子设备和清除格式化状态标志。

72. 设置标志位可使显示的正数前面带有

一个加号。

73. Fstream、ifstream和ofstream文件流类的成员函数

关闭函数。 74.

本文来源:https://www.bwwdw.com/article/gn64.html

Top