北语-18秋《C++》作业答案_第1页
北语-18秋《C++》作业答案_第2页
北语-18秋《C++》作业答案_第3页
北语-18秋《C++》作业答案_第4页
北语-18秋《C++》作业答案_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

118 秋C+作业_1一、单选题 1. C+语言是以( )语言为基础逐渐发展而演变而成的一种程序设计语言。A. Pascal B. C C. Basic D. Simula67 答案 B 答案联系屏幕左上的 “文档贡献者” 。2. 下列不是描述类的成员函数的是( ) 。A. 构造函数 B. 析构函数 C. 友元函数 D. 拷贝构造函数 答案 C3. 以下有关继承的叙述正确的是( ) 。A. 构造函数和析构函数都能被继承 B. 派生类是基类的组合 C. 派生类对象除了能访问自己的成员以外,不能访问基类中的所有成员 D. 基类的公有成员一定能被派生类的对象访问 答案 C4. 所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体也就是() 。A. 类 B. 对象 C. 函数体 D. 数据块 答案 A5. 友元关系不能( ) 。A. 提高程序的运行效率 B. 是类与类的关系 C. 是一个类的成员函数与另一个类的关系 D. 继承 答案 D6. 下列标识符中, ( )是文件级作用域的。A. 函数形参 B. 语句标号 C. 外部静态类标识符 D. 自动类标识符 17. 进行文件操作时需要包含头文件( ) 。A. iostream.h B. stdio.h C. fstream.h D. stdlib.h 8. 下列关于构造函数的描述中,错误的是( ) 。A. 构造函数可以设置默认参数 B. 构造函数在定义类对象时自动执行 C. 构造函数可以是内联函数 D. 构造函数不可以重载 9. C+所有输入和输出流的基类是() 。A. stream.h B. iostream.h C. cin 和 cout D. ios 10. 与 C 语言相比+增加了()的概念A. 函数 B. 指针 C. 类 D. 变量 11. 在 C+中,打开一个文件就是将这个文件与一个()建立关联;关闭一个文件就是取消这种关联。A. 流 B. 类 C. 结构 D. 对象 12. 函数调用 func(exp1,exp2),(exp3,exp4,exp5)中所含实参的个数为() 。A. 1 B. 2 C. 4 D. 5 13. 在双向链表存储结构中,删除 p 所指的结点时须修改指针() 。A. A B. B C. C D. D 114. 关于对象成员的构造函数的调用顺序,说法正确的是( ) 。A. 与它们在成员初始化列表中给出的顺序相同 B. 与析构函数的调用顺序相同 C. 与它们在类中说明顺序相同 D. 以上说法都不对 二、多选题 1. C+中类的派生方式有() 。A. private B. static C. public D. protected 三、判断题 1. C+中的函数都具有返回值。2. 一个函数中可以有多于一个 return 语句。3. 一条语句最多只能定义一个变量并指定初始值。4. 同一个数组中的各个元素数据类型一定相同。5. sizeof(表达式)的功能是返回指定的表达式值的数据类型在内存中占用的字节数。18 秋C+作业_2一、单选题 1. 若派生类中没有对基类的虚函数进行重定义,则它继承基类中的( ) 。A. 访问权限 B. 保护成员 C. 虚函数 D. 成员函数 2. 关于类模板的说法正确的是( ) 。A. 类模板的主要作用是生成抽象类 B. 类模板实例化时,编译器将根据给出的模板实参生成一个类 C. 在类模板中的数据成员具有同样类型 D. 类模板中的成员函数没有返回值 3. 下列关键字中, ( ) 即在 C 语言中使用,又在 C+语言中使用。A. inline B. break C. private D. public 4. 下列关于 C+与 C 语言关系的描述中错误的是( ) 。A. C+是 C 语言的超集 B. C+是 C 语言进行了扩充 1C. C+和 C 语言都是面向对象的程序设计语言 D. C+包含 C 语言的全部语法特征 5. 对基类和派生类的关系描述中,错误的是() 。A. 派生类是基类的具体化 B. 基类继承了派生类的属性 C. 派生类是基类定义的延续 D. 派生类是基类的特殊化 6. 假定一个类的构造函数为 A(int aa,int bb) a=aa-;b=a*bb;,则执行 A x(4,5);语句后,x.a 和x.b 的值分别为() 。A. 3 和 15 B. 4 和 20 C. 5 和 4 D. 20 和 5 7. 下列标识符不合法的是()A. a1 B. tex_1 C. _sum D. 2word 8. 如没有使用 private 关键字定义类的数据成员,则默认为( ) 。A. private B. public C. protected D. friend 9. 对 C+语言和 C 语言的兼容性,描述正确的是( ) 。A. C+兼容 C B. C+部分兼容 C C. C+不兼容 C D. C 兼容 C+ 10. 下面叙述不正确的是( ) 。A. 派生类一般都用公有派生 B. 对基类成员的访问必须是无二义性的 C. 赋值兼容规则也适用于多重继承的组合 1D. 基类的公有成员在派生类中仍然是公有的 继承方式有三种:公有、私有和保护。多继承中,多个基类具有同名成员,在它们 的子类中访问这些成员,就产生了二义性,但进行访问时,不能存在二义性。赋值兼容规则是指 派生类对象可以当作基类对象使用,只要存在继承关系,所以单继承或多继承都适用。基类中的 公有成员采用私有继承时,在派生类中变成了私有成员,所以 D 项错误。11. 下面关于模板的描述,正确的是() 。A. 模板的实参在任何时候都可以省略 B. 类模板与模板类所指的是同一概念 C. 类模板的参数必须是虚拟类型的 D. 类模板的成员函数都是模板函数 12. 设类 A 将其它类对象作为成员,则建立 A 类对象时,下列描述正确的是( ) 。A. A 类构造函数先执行 B. 成员构造函数先执行 C. 两者并行执行 D. 不能确定 13. 内联函数的特点是( ) 。A. 减少代码量,加快访问速度 B. 减少代码量,减缓访问速度 C. 增加代码量,减缓访问速度 D. 增加代码量,加快访问速度 14. 在 C+中,类与类之间的继承关系具有( ).A. 自反性 B. 对称性 C. 传递性 D. 反对称性 二、多选题 1. 下面变量赋初值中正确的是()A. int a=3; B. int a=3; C. int a=3=3; D. int a=b=3 三、判断题 1. for 语句中的循环控制变量必须在 for 语句内部进行声明。2. 结构体的默认访问权限为 public,而类中的默认访问权限为 protected。3. typedef 是用来定义一些 C+中没有的新数据类型。14. C+是最开始提出类概念的语言5. C+中的注释可以帮助读者阅读源程序,但并不参与程序的运行。18 秋C+作业_3一、单选题 1. 下列有关重载函数的说法中正确的是( ) 。A. 重载函数必须具有不同的返回值类型 B. 重载函数参数个数必须相同 C. 重载函数必须有不同的形参列表 D. 重载函数名可以不同 2. 下面程序的输出结果是( ) 。#include int fun(char *s) char *p=s; while(*p!=0) p+; return (p-s); void main() coutA. 20 B. 6 C. 19 D. 0 3. 类定义的内容允许被其他对象无限制地存取是( ) 。A. private 部分 B. protected 部分 C. public 部分 D. 以上都不对 4. C+允许在结构中定义函数,这些函数称为( ) 。A. 静态函数 B. 构造函数 C. 析构函数 D. 成员函数 5. 下列对重载函数的描述中, ( )是错误的。1A. 重载函数中不允许使用默认参数 B. 重载函数中编译时根据参数表进行选择 C. 不要使用重载函数来描述毫无相干的函数 D. 构造函数重载将会给初始化带来多种方式 6. 用于标识十六进制前缀或后缀是( ) 。A. 无 B. 后缀 L 或 e C. 前缀零 D. 前缀 0x 7. 多个具有不同类型或个数参数的函数共用一个函数标识名被称为()函数。A. 继承 B. 重载 C. 递归 D. 多态 8. 下列关于析构函数描述正确的是( ) 。A. 可以重载 B. 函数体中必须有 delete 语句 C. 返回类型必须是 void 类型 D. 不能指定返回类型 9. 下列( )不是构造函数的特征。A. 构造函数的函数名与类名相同 B. 构造函数可以重载 C. 构造函数可以设置默认参数 D. 构造函数必须指定类型说明 10. 采用函数重载的目的在于( ) 。A. 实现共享 B. 减少空间 C. 提高速度 D. 使用方便,提高可靠性 11. 一个函数功能不太复杂,但要求被频繁调用,则应把它定义为( ) 。A. 内联函数 B. 重载函数 C. 递归函数 D. 嵌套函数 112. 在编译指令中,宏定义使用哪个指令( ) 。A. #if B. #include C. #define D. #error 13. 下列 C+标点符号中表示复合语句结束的标记符是( ) 。A. # B. / C. D. ; 14. 有一个 int 型变量,在程序中频繁使用,最好定义它为( )A. register B. auto C. extern D. static 二、多选题 1. 下列选项中,是 C+关键字的是()A. class B. function C. friend D. virtual 三、判断题 1. 想要在程序中正确地使用自定义的函数,则必须先声明它,然后再定义它。2. C+中的指针既可以指向内存中的变量,也可以指向寄存器变量。3. for 语句的格式为:for( 表达式 1;表达式 2;表达式 3) 语句若在 for 语句中省略 3 个表达式,则循环一定执行无数次。4. 指针指向的内存地址可以改变,与之类似,引用指向的变量也可以改变。5. 在 C+中,运算符优先级相同的情况下,按照从右向左的顺序进行计算。18 秋C+作业_4一、单选题 1. 下面程序的执行结果是( ) 。#include void main() void swap(); extern int a; a=3; b=10; 1swap(); cout“a=“A. a=3=10 B. a=10=3 C. a=temp=temp D. 语法错误,不能输出正确结果 2. 下列不能作为类的成员的是A. 自身类对象的指针 B. 自身类对象 C. 自身类对象的引用 D. 另一个类的对象 3. 当一个函数无返回值时,函数的类型应定义为( ) 。A. void B. 任意 C. int D. 无 4. 下列关于栈的叙述正确的是() 。A. 栈是非线性结构 B. 栈是一种树状结构 C. 栈具有先进先出的特征 D. 栈具有后进先出的特征 5. 对于 int *pa5;的描述,正确的是() 。A. pa 是一个指向数组的指针,所指向的数组是 5 个 int 型元素 B. pa 是一个指向某个数组中第 5 个元素的指针,该元素是 int 型变量 C. pa 5表示某个数组的第 5 个元素的值 D. pa 是一个具有 5 个元素的指针数组,每个元素是一个 int 型指针 6. 假设 ClassY:publicX,即类 Y 是类 X 的派生类,则说明一个 Y 类的对象时和删除 Y 类对象时,调用构造函数和析构函数的次序分别为() 。A. X,Y 和 Y,X B. X,Y 和 X,Y C. Y,X 和 Y,X D. Y,X 和 X,Y 7. 如果采用动态多态性,要调用虚函数的是( ).A. 基类对象指针 B. 对象名 C. 基类对象 D. 派生类名 18. 在类的定义形式中,数据成员、成员函数和( )组成了类定义体。A. 成员的访问控制信息 B. 公有消息 C. 私有消息 D. 保护消息 9. C+类体系中,不能被派生类继承的有( ) 。A. 常成员函数 B. 构造函数 C. 虚函数 D. 静态成员函数 10. 下列关于 C+语言的发展说法错误的是( ) 。A. C+语言起源于 C 语言 B. C+语言最初被称为“带类的 C” C. 在 1980 年 C+被命名 D. 在 1983 年 C+被命名 11. 下面关于友元的描述中,错误的是( ) 。A. 友元函数可以访问该类的私有数据成员。 B. 一个类的友元类中的成员函数都是这个类的友元函数。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论