c++ 期末练习题+答案

上传人:206****923 文档编号:37506403 上传时间:2018-04-17 格式:DOC 页数:24 大小:149KB
返回 下载 相关 举报
c++ 期末练习题+答案_第1页
第1页 / 共24页
c++ 期末练习题+答案_第2页
第2页 / 共24页
c++ 期末练习题+答案_第3页
第3页 / 共24页
c++ 期末练习题+答案_第4页
第4页 / 共24页
c++ 期末练习题+答案_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《c++ 期末练习题+答案》由会员分享,可在线阅读,更多相关《c++ 期末练习题+答案(24页珍藏版)》请在金锄头文库上搜索。

1、C+程序设计练习题 一、选择题 1. 有函数 f 定义如下: int f(int a = 1, int b = 2, int c = 3) return a + b + c; 下列说法中错误错误的是(D) 。 A函数调用 f()的结果为 6。 B函数调用 f(f(f()的结果为 16。 C函数调用 f(f(), f()的结果为 15 D函数调用 f(f(), f(f()的结果为 21。2.C+中,关于参数默认值的描述正确的是( B) 。A.只能在函数定义时设置参数默认值B.设置参数默认值时,应当从右向左设置 C.设置参数默认值时,应当全部设置D.设置参数默认值后,调用函数不能再对参数赋值3.

2、如果类 A 被说明成类 B 的友元,则 (D ) A. 类 A 的成员即类 B 的成员 B. 类 B 的成员即类 A 的成员 C. 类 A 的成员函数不得访问类 B 的成员 D. 类 B 不一定是类 A 的友元4、如下是某同学定义的类 A,则其中有(B)处错误。 class A int a = 1; void A(); A(void); A2B3C4D5 5、针对下列类型定义,可以出现在 main 函数中的语句有(A) 。 class Date private: int year, month, day; ; ADate d; BDate:year = 1; CDate d = 2009, 1

3、, 1; Dcout “abc“ 11.下列程序中,访问出错的是(B) 。 class A private:int x; protected:int y() x = 1;/ A public:int z; ; class B : public A public:void u() cout f();/ A pa-v();/ B B b; pa = pa-f();/ C pa-v();/ D 15.以下(C )成员函数表示纯虚函数。A.virtual int vf(int); B.void vf(int)=0;C.virtual void vf()=0; D.virtual void vf(int

4、)17.下列程序段中,ofs 是 ofstream 类的对象,ifs 是 ifstream 类的对象,c 是 char 型变量,则执行结果是(B) 。while (ifs.get(c) ofs.put(c); A把一个文件的第 1 个字节写入到另一个文件中 B把一个文件的内容全部写入到另一个文件 C仅仅把字符 c 写入到一个文件中 D把两个文件的内容合并到一起 4. 下面说法正确的是 (B) A.内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方 B.内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方 C.类的内联函数必须在类体内定义 D.类的内联函数必须在类体外通过加关键

5、字 inline 定义 18.下列(B)循环能够把 26 个小写字母以文本方式写入文件中。 int main() int a; ofstream ofs(“data.txt“); a = a; while (a fun();52.C+中,关于参数默认值的描述正确的是(A ) 。 A.只能在函数定义时设置参数默认值B.设置参数默认值时,应当从右向左设置 C.设置参数默认值时,应当全部设置D.设置参数默认值后,调用函数不能再对参数赋值 53如果表达式a+b中的“+”是作为成员函数重载的运算符,若采用运算符函 数调用格式,则可表示为(A ) 。A. a.operator+(b) B. b.opera

6、tor+(a)C. operator+(a,b) D. operator(a+b) 54.实现运行时的多态性要使用( D )。A.重载函数 B.构造函数 C.析构函数 D.虚函数55对数组名作函数的参数,下面描述正确的是(B ) 。 A.数组名作函数的参数,调用时将实参数组复制给形参数组。 B.数组名作函数的参数,主调函数和被调函数共用一段存储单元。 C.数组名作参数时,形参定义的数组长度不能省略。D.数组名作参数,不能改变主调函数中的数据。56对于一个功能不太复杂,并且要求加快执行速度,选用(A )合适。 A.内联函数 B.重载函数 C.递归调用 D.嵌套调用57.在 int a=3,int

7、 *p= 则执行下面语句后,x 的值是 B if(xy) z=x; x=y; y=z; A. 10 B. 20 C. 30 D. 0 64、循环语句 whlie(int i=0 )i-;的循环次数是 A A. 0 B. 1 C. 5 D. 无限 65、一个函数无返回值时,应选择的说明符是 C A. static B. extern C. void D. 无说明符 66、对重载函数形参的描述中,错误的是 D A. 参数的个数可能不同 B. 参数的类型可能不同 C. 参数的顺序可能不同 D. 参数的个数、类型、顺序都相同,只是函数的返回值类型不同 67、以下能正确定义数组并正确赋初值的语句是 D

8、A. int N=5,bNN; B. int a2=1,3,4,5; C. int c2=1,2,3,4; D. int d32=1,2,3,4; 68、下列给字符数组进行的初始化中,不正确的是 D A. char s1=“abcd“; B. char s23=x,y,0; C. char s3=a,x,y,0; D. char s46=“xyz“,“mnp“; 69、通常的拷贝构造函数的参数是 C A 某个对象名 B某个对象成员名 C 某个对象的引用 D某个对象的指针名 70、关于构造函数特点的描述中,错误的是 A A. 定义构造函数必须指出类型 B. 构造函数的名字与该类的类名相同 C.

9、一个类中可定义 0 至多个构造函数 D. 构造函数是一种成员函数 71、下面程序的运行结果为 D +using namespace std;后选 C #include int add(int a,int b); void main() extern int x,y; cout_ 。 11、已知有定义“int x, a=5,7,9, *pa=a;”,在执行“x=+*pa;”语句 后,x 的值是_6_,*(pa+1)的值为_7_。 12.若希望用一个已有对象来构造另一个同类型的对象,可以使用 拷贝构造函 数 来实现。 13、假定 AB 为一个类,则类定义体中的“AB(AB”语句为该类_拷贝构 造函

10、数_的原型语句,而“operator=(AB”为该类_赋值重载函数_ 的原型语句。 14、为了访问某个类的私有数据成员,必须在该类中声明该类的 友元 。 15、静态成员是局部于类的成员,它提供一种同类对象的_共享 _机制。 16、访问一个指针所指向的对象的成员所用的运算符是 _-_ 。17. 面向对象程序设计有四个主要特点,即抽象、封装、_继承_和_多态 _。 18.在用 class 定义一个类时,数据成员和成员函数的默认访问权限是 _private_。19.在函数体之后加 _const_ 关键字可以防止覆盖函数改变数据成员的值。 20.私有数据通常由公有成员函数来访问(读和写)。这些函数统称

11、为_操作 _。 21.在字长为 32 位的机器中,sizeof(float) 4 字节,sizeof(double) 8 字节 22.引用通常用作函数的参数和_引用变量_。 23. 如果 new 返回的指针丢失,则所分配的堆空间无法收回,称为 _内存 泄漏_ 。 24. C+中多态性包括两种多态性:_编译_时的多态性和_运行_时的 多态性。 25. 若有 char a80;则 cina 表示从键盘上读入一个_字符串_ 到数组 a中。 26.静态数据成员是类的所有对象中 共享 的成员,静态数据成员初始化与一 般数据成员初始化 不同 。27. C+流类库定义的 cin,cout,cerr 和 cl

12、og 是_全局流对象_ 。 28. 访问一个指针所指向的对象的成员所用的运算符是 _-_ 。 29. 假定用户没有给一个名为 shape 的类定义析构函数,则系统自动给出的缺 省析构函数定义为 _shap:shap()_ 。 30._构造函数_是特殊的成员函数,在创建和初始化对象时调用。 _静态成员_是局部于类的成员,它提供一种同类对象的_共享_机制。31.运算符重载的作用是使运算符可以操作自定义的_类_,但重载后运算符原有的 操作_不变。32.派生类不能访问基类的_私有_成员,但可以访问基类的公有成员和_保护_成员。33.具有_纯虚拟函数_的类称为抽象类。三、判断题 1.( F)基类中被说明

13、为 protected 和 private 的成员只能被其派生类的成 员函数访问,不能被其它的函数访问。 2.(F)break 语句也可以用于 if 体内,它可退出 if 语句。 3.( F) 类的静态数据成员需要在定义每个类的对象时进行初始化。 4 (F)友元函数说明在类体内,它是一种成员函数。 5.(F)在传值调用中,要求实参和形参的类型完全一致并且个数相等。 6.(T) 如果派生类的成员函数的原型与基类中被定义为虚函数的成员函数 原型相同,那么,这个函数自动继承基类中虚函数的特性。 7 (F)异常必须在其产生的当前函数中捕获,而不能在外层函数中捕获该 异常。 8.(T) 如果派生类的成员

14、函数的原型与基类中被定义为虚函数的成员函数 原型相同,那么,这个函数自动继承基类中虚函数的特性。 9.( F) 类的静态数据成员需要在定义每个类的对象时进行初始化。 10( T)程序的编译是以文件为单位的,因此将程序分到多个文件中可以 减少每次对程序修改所带来的编译工作量。 11( T)重载函数必须有不同的参数列表。 12.( T)类 B 从类 A 公有继承,则程序段 A a;B 会引发编译错误。 13.(T)拷贝构造函数用于用类的一个对象去初始化该类的另一个对象时 使用,也可已用于当函数的形参是类的对象,调用函数时,进行形参与实参结 合时使用。 14(T)类中所提供的成员函数可以直接访问私有

15、成员。15. ( T ) int i,*p= class Afriend double count(A public:A(double t, double r):total(t),rate(r) private: double total;double rate; ; double count(Areturn a.total; int main(void) A x(80,0.5),y(100,0.2); cout using namespace std; class Count private: static int counter; int obj_id; public: Count(); /constructor static void display_total(); /static function void display(); Count(); /destructor ; int Count:counter; /definition of static da

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号