网络课C++复习题.doc_第1页
网络课C++复习题.doc_第2页
网络课C++复习题.doc_第3页
网络课C++复习题.doc_第4页
网络课C++复习题.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

C+语言基础教程复习题一、单项选择题1.在C+中,当通过引用传递参数时,_。(A) 函数创建法一个变量以存储参数的值(B) 函数无法访问传递引用参数的值,而是自动引用 (C) 调用程序创建一个临时变量以容纳参数的值(D) 函数访问时调用程序中参数的原始值2.构造函数不需要有返回值类型,是因为_。(A) 构造函数不是函数,所以不需要返回类型(B) 构造函数使该类的对象初始化,所以它不需要返回值类型(C) 构造函数可以被重载,所以不需要返回值类型(D) 构造函数是系统自动调用的,没有程序能接收它的返回值,返回值没有任何意义3.在C+中对调用常量成员函数的对象来说,常量成员函数是_(A) 能够完全改变常量成员函数赫非常量成员函数(B) 只能改变非常量成员函数的数据(C) 只能改变常量成员函数的数据(D) 既不能改变常量成员数据也不能改变非常量成员的数据4.C+中,类模板是_。(A) 为了存储在不同的包容器中(B) 使用了不同的数据类型(C) 产生的对象都必须被唯一的标识(D) 产生的类及其成员函数的个数亦不同5.在C+中,静态函数是_。(A) 当对象删除时应当被调用 (B) 可以用类名和函数名来访问(C) 与类中的单个对象紧密联系着 (D) 当一个对象必须创建时方可使用6.C+中,运算符重载是_。(A) 可以重载C+中所有的运算符 (B) 赋予超出C+运算符本身的处理能力(C) 给已有德C+运算符赋予新的定义 (D) 创造新的C+语言从未有的运算符。7.以下程序的输出结果_。 #include int f(int)void main() int a=2,i; for(i=0;i3;i+) coutf(a);int f(int a) int b=0; static int c=3; b+;c+; return (a+b+c);(A) 7 7 7 (B)7 10 13 (C)7 9 11 (D)7 8 98.有关类和对象说法下列不正确的是_。(A) 对象是类的一个实例 (B) 任何一个对象只能属于一个具体的类(C) 一个类只能有一个对象 (D)类与对象的关系和数据类型和变量的关系相似9._是析构函数的特征。(A) 一个类中只能定义一个析构函数 (B)析构函数名与类名不同(C) 析构函数的定义只能在类体内 (D)析构函数可以有一个或多个参数10.下述静态数据成员的特性中,_是错误的。(A) 说明静态数据成员时前边要加修饰符static(B) 静态数据成员要在类体外进行初始化(C) 引用静态数据成员时,要在静态数据成员名前加和作用域运算符(D) 静态数据成员不是所有对象所公用的。11.已知:类A中一个成员函数说明如下:void set(A &a);其中,A &a的含义是_。(A) 指向类A的指针为a (B) 将a的地址值赋给变量Set(C) a是类A的对象引用,用来做函数Set()的形参(D) 变量A与a按位与作为Set()的参数。12.已知:print()函数是一个类的常成员函数,它无返回值,下列表示中,_是正确的。(A) void print() const (B) const void printf()(C) void const print() (D) void print(const)13.关于new运算符的下列描述中,_是错误的(A) 它可以用来动态创建对象和对象数组(B) 使用它创建的对象或对象数组,可以使用运算符delete删除(C) 使用它创建对象时要调用构造函数(D) 使用它创建对象数组时必须指定初始值14.C+中类有两种用法:一种是类的实例化,即生成类的对象,并参与系统得运行;另一种是通过_,派生出新的类。(A) 复用 (B) 继承 (C) 单继承 (D)多继承15.若类A和类B的定义如下:class A int i,jpublic: void get(); /;class B:public A int k;public: void make(); /void B:make() k=i*j;则上述定义中,_是非法的表达式(A)void get(); (B) int k. (C) k=i*j; (D)void make();16.下列对派生类的描述中,_是错误的(A) 一个派生类可以作为另一个派生类的基类(B) 派生类至少有一个基类(C) 派生类的成员除了它自己的成员外,还包含了它的基类成员(D) 派生类中继承的基类成员的访问权限到派生类保持不变17. 在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用_。(A) 内联函数 (B) 重载函数 (C) 递归调用 (D) 嵌套调用 18.使用如setw()的操作对数据进行格式输出时,应包含在_文件。(A) iostream.h (B) fstream.h (C) iomanip.h (D) stdlib.h19.关于纯虚函数河抽象类的描述中,_是错误的。(A) 纯虚函数是一种特殊的虚函数,它没有具体的实现 (B) 抽象类是指具有纯虚函数的类(C) 一个基类中说明有纯虚函数,该基类的派生类一定不再是抽象类(D) 抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出20.下列函数中,_不能重载。(A) 成员函数 (B) 非成员函数 (C) 析构函数 (D) 构造函数二、填空题1.面向对象程序设计的四大特征分别为【 】、【 】、【 】、【 】。2.每个C+程序开始执行的函数是【 】。3.在C+中enum类型中第一个枚举元素的缺省值为【 】。4.C+中只有一条语句是关于函数头部的描述,没有函数体部分,这条语句被称做函数的【 】。5.在C+中,允许不同的函数具有相同的名字,只有不同的类型和不同的参数个数,这种函数被称为【 】。6.初始化一个类的数据成员的专用成员函数是【 】。7.一个非成员函数必须声明为一个类的【 】,才有可能存取该类的私有数据成员。8. 【 】保留字表示在对象或变量初始化后是不可修改的。9. C+提供了【 】机制,允许一个导出类可以继承多个基类,甚至这些基类是互不相关的。10.所有函数模板都用【 】关键字定义,接着在符号范围内列出函数模板的模板形参表。11.当从一个带有public继承的基类中导出一个类时,这个基类的public成员就成为该导出类的【 】成员,而这个基类的protected成员就成为该导出类的【 】成员。12. 【 】关键字引入了重载运算符的函数定义。13.在类内部定义的【 】数据不能被该类的函数来存取,定义为【 】的数据和函数则可以在类外部进行存取。14.对于导出类的构造函数,在定义对象时构造函数的执行顺序为:先执行【 】,再执行【 】。三、程序改错,下面的程序段有错误,请说明错误原因及更正方法1.x=1; while(x=10); x+;2.void product(void) int a,b,c,result; coutabc; cout”Result is ”resultendl; return result;3.下面是Time类的部分定义: class Time public: /函数原型private: int hour=0; int minute=0;int second=0;4.下面试Emplyee类的定义:class Employeepublic: Employee(int y=10) data=y; int getIncreamentedData() const return +data; static int getCount() cout”Data is ”dataendl;Return count;private: int data; static int count;四、简答题1、简述构造函数的特点 1) 函数名与类名相同。2) 无函数返回类型说明。3) 主要完成对象的初始化工作。4) 当一个新的对象被建立时(通过对象说明语句或通过new),系统自动调用其相应的构造函数。5) 可有重载多个构造函数(各自的参数表不相同)。6) 若某个类定义中没有给出任一个显式的构造函数的话,则系统自动给出一个缺省的(隐式的)形式的构造函数。2、简述面向对象程序设计语言的几个特点。1.类的静态数据成员为该类的所有对象所共享。2. 必须在类外文件作用域中的某个地方对静态数据成员赋初值(因为构造函数多次被调用,而静态数据成员只初始化1次): : = 3、例举定义类中数据成员的3中访问权限及各自的特点。4、 简述什么是虚函数,定义虚函数的关键字及使用虚函数的目的。1.通过虚函数,达到了用基类指针访问派生类对象成员函数的目的,这样,只要声明了基类指针,就可以使不同的派生类对象产生不同的函数调用,实现了程序的运行时多态。 2.运行多态应该使用虚函数,并通过指针、引用或者成员函数调用虚函数。 虚函数是动态绑定的基础。 是非静态的成员函数。 在类的声明中,在函数原型之前写virtual。 virtual 只用来说明类声明中的原型,不能用在函数实现时。 具有继承性,基类中声明了虚函数,派生类中无论是否说明,同原型函数都自动为虚函数。 本质:不是重载声明而是覆盖。 调用方式:通过基类指针或引用,执行时会根据指针指向的对象的类,决定调用哪个函数。5、简述静态成员函数的使用方法,及静态数据成员的特点。1.在C+中,可以用关键字satic定义类的静态成员。2.一旦把类的成员声明为静态,无论创建多少个对象都只能有静态成员的一个拷贝,即静态成员被类的所有对象共享。3.类的静态成员属于类,不属于某个对象。五、程序综合题 (一)、程序填空1、下列程序的功能是调用求阶乘函数fac,计算1!+3!+5!+ 7!+9!,请填空。#include double fac(int k) double f = 1.0; for(【 】 ; i = k;i+) f = 【 】; return f;void main() int k, n = 9; double s = 0.0; for(k = 1; k =9; 【 】) coutfac(k)endl; s = s + fac(k);cout “s = ” s endl;2、以下程序的功能是:找出数组中的最小值并输出。请填空。#include class sample int x; public: void setx(int x0) x = x0; friend int fun(sample b,int n) int m = 【 】 ; for(int i = 0; i n;i+) if(bi.x m) m = 【 】; return m;void main() sample a6; int arr = 12,6,21,7,10,9; for(int i = 0;i 6;i+) ai.setx(arri); cout fun(【 】) endl;C+语言基础教程复习题参考答案一、选择题1【D】 2【D】 3【D】 4【B】 5【B】 6【C】 7【D】 8【C】9【A】10【D】11【C】12【A】13【D】14【B】15【C】16【D】17【A】18【C】19【A】20【C】二、填空题1、【抽象】2、【 封装 】3、【 继承 】4、【 多态 】5、【 main 】6、【 0 】7、【 声明 】8、【 函数重载 】 9、【 构造函数 】 10、【友元或friend 】 11、【 const 】 12、【 多重继承】 13、【template 】 14、【 public 】 15、【 protected 】 16、【 operator 】 17、【 private 】 18、【 public 】 19、【 基类的构造函数 】 20、【 导出类自身的构造函数 】三、程序改错,下面的程序段有错误,请说明错误原因及更正方法1、错误原因:在while头语句后面的分号会产生死循环; 改正方法:取掉while语句后面的分号,加上;或者取掉分号,并取掉x+;后面的右花括号2、错误:在函数前用了void,所以该函数是不能返回值的 改正:把return语句

温馨提示

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

最新文档

评论

0/150

提交评论