函数《cc 程序设计》(高起专)练习题

cc 163 com  时间:2021-02-21  阅读:()

一、单项选择题

1.C++是一种

A.面向对象

C.面向过程

《C++程序设计》 高起专练习题一的程序设计语言。

B. 即可面向过程又可面向对象

D.面向系统

2. 在下面有关析构函数特征的描述中正确的是  。

A.一个类中可以定义多个析构函数 B.析构函数名与类名完全相同

C.析构函数不能指定返回类型 D.析构函数可以有一个或多个参数

3. 下面对于友元函数描述正确的是  。

A.友元函数的实现必须在类的内部定义

B.友元函数是类的成员函数

C.友元函数破坏了类的封装性和隐藏性

6.重载赋值操作符时应声明为

A.友元B.虚

7.下列对模板的声明错误的是

A. template<clas s T 1,typename T2>

C. temp late<typ ename T>

8.下列类中 不是输入流类

A. ifstream B.istrstream

9.  不是构造函数的特征。

A.构造函数的函数名与类名相同

C.构造函数可以设置缺省参数

10.下列语句中错误的是  。

A. int*p=new int 10 ;

C. int*p=new int;

11.下列关于虚基类的描述错误的是

A.设置虚基类的目的是为了消除二义性

A. 公有继承时基类中的 public成员在派生类中仍是 public的

B. 公有继承时基类中的 p rivate成员在派生类中仍是 p rivate的

C. 公有继承时基类中的 protected成员在派生类中仍是 protected的

D.保护继承时基类中的 p ub lic成员在派生类中是p rivate的

5. 所谓多态性是指 

B. 不同的对象调用相同名称的函数

D. 一个对象调用不同名称的对象函数。

C.成员 D.多态

 。

B. template<class T 1,T2>

D. template<class T1,class T2,class T3>istream的派生类。

C. iostream D.ofstream

B构造函数可以重载

D构造函数必须指定类型说明

B. int*p=new int[10];

D. int*p=new int[40] 0

B. 虚基类的构造函数在非虚基类之后调用

C. 若同一层中包含多个虚基类这些虚基类的构造函数按它们说明的次序调用

D.若虚基类由非虚基类派生而来则仍然先调用基类构造函数再调用派生类的构造函数

12. 已知 p rint  函数是一个类的常成员函数 它无返回值下列表示中  是正确的。

A. void print   const; B. const void print   ;

C. void const print   ; D.void print const ;

13.在下面有关静态成员函数的描述中正确的是  。

A.在静态成员函数中可以使用th is指针

B. 在建立对象前就可以为静态数据成员赋值

C.静态成员函数在类外定义时要用s tatic前缀

D.静态成员函数只能在类外定义

14.在下列关键字中用于说明类中公有成员的是  。

A. public B.private C.protected D.friend

15. 以下有关继承的叙述正确的是  。

A.构造函数和析构函数都能被继承

B. 派生类是基类的组合

C.派生类对象除了能访问自己的成员以外不能访问基类中的所有成员

D.基类的公有成员一定能被派生类的对象访问

16. 下列各种高级语言中不是面向对象的程序设计语言的是  。

A. C++B. Java C.VB D.C

17. 下列说法中正确的是  。

A.类定义中只能说明函数成员的函数头不能定义函数体

B.类中的函数成员可以在类体中定义也可以在类体之外定义

C.类中的函数成员在类体之外定义时必须要与类声明在同一文件中

D.在类体之外定义的函数成员不能操作该类的私有数据成员

18. 静态数据成员的初始化必须在  。

A.类内 B.类外 C.构造函数内 D.静态成员函数内

19. 使用派生类的主要原因是  。

A.提高代码的可重用性 B.提高程序的运行效率

C.加强类的封装性 D. 实现数据的隐藏

20. 编译时的多态性通过使用 实现。

A.构造函数 B.虚函数 C.重载函数 D.析构函数

21. 下列关于运算符重载的描述中 的是  。

A.可以改变运算符的目数 B. 可以改变运算符的优先级

C.可以改变运算符的结合性 D.可以改变运算符的功能

22.如有以下模板类定义

Template<class T>class sum{T a,b;

Public: sum T x,T y ; }

则在类体外定义构造函数正确的是  。

A. temp late<class T>sum: :sum(T x,T y) {a=x;b=y; }

B. temp late<typ ename T>sum: :sum(T x,T y) {a=x;b=y; }

C. temp late<class T>sum<T>::sum(T x,T y) {a=x;b=y; }

23. 写一个C++文件要创建一个 流对象。

A. ifstream B.ofstream C.cin D. cout

24. 面有关重载函数的说法中正确的是  。

A.重载函数必须具有不同的返回值类型 B.重载函数形参个数必须不同

C.重载函数必须有不同的形参列表 D.重载函数名可以不同

25. 一个函数功能不太复杂但要求被频繁调用应选用  。

A.内联函数 B.重载函数 C.递归函数 D.嵌套函数

26. 关于new运算符的下列描述中,  是错的。

A. 它可以用来动态创建对象和对象数组

B. 使用它创建的对象和对象数组可以使用运算符 delete删除

C. 使用它创建对象时要调用构造函数

D. 使用它创建对象数组时必须指定初始值

27. 可以用p.a的形式访问派生类对象 p的基类成员a,其中a是  。

A.私有继承的公有成员 B.公有继承的私有成员

C. 公有继承的保护成员 D. 公有继承的公有成员

28. 若有定义“int x=17;”,则语句“cout<<oct<<x;”的输出结果是  。

A. 11 B.0x11 C.21 D.021

29. 已知f1和f2是同一类的两个成员函数但 f1不能直接调用f2 这说明  。

A.fl和f2都是静态函数 B.f1是静态函数 f2不是静态函数

C.f1不是静态函数 f2是静态函数 D.f1和f2都不是静态函数

30. 假设Sample是个类则语句 aSample<2] ,*p[3];'调用构造函数的次数为  。

A.0 B.2 C. 3 D. 5

D. sum<T>::sum(T x,T y) {a=x;b=y; }

31.C++利用 实现面向对象程序设计的封装性。

A.构造数据类型——类 B.构造数据类型——枚举

32.在声明类时下面的说法正确的是( )。

A.可以在类的声明中给数据成员赋初值

B.数据成员的数据类型可以是reg is ter

C.private 、 pub lic 、 protected可以按任意顺序出现

33.假设已经有定义 const char*const name="chen" 面的语句中正确的是 )。

A.name[3]='a'; B.name="l in";

;

A. classvirtualB:publicA B

35.下列关于纯虚函数的描述中正确的是(

A.纯虚函数是一种特殊的虚函数

B.具有纯虚函数的类称为虚基类 它是个空函数

D.没有用private、 pub lic 、 protected定义的数据成员是公有成员

C. 一个基类中说明有纯虚函数其派生类一定要实现该纯虚函数

D. 具有纯虚函数的类不能创建类对象

36.能用友元函数重载的运算符是( )。

A + B = C [] D ->

37.下面函数模板定义中不正确的是( )

A temp late<c las s T> B

}

>

判断题

1. 静态的成员函数没有隐含的th is指针 所以它们只能访问静态的数据成员。

2. 通过类对象可以访问类中所有的成员。

3. 构造函数是可以被派生类继承的。 (

4. 构造函数和析构函数都可以是虚函数。

5. 只有类中全部函数都为纯虚函数时该类才被称为抽象类。

6.

7. 一个类的友元一定是另一个类的成员函数。

对于同一个运算符来说重载的运算符的优先级比未重载的运算符的优先级高。

8. C++中对象保存在内存中栈内存是自动分配和释放的而堆内存需要用户自己申请和释放。 ( )

9. C++不允许定义有默认参数的函数。 ( )

10. 构造函数和析构函数都不能重载。 ( )

11. 构造函数和析构函数都不可以由程序员调用只能由系统自动调用。 ( )

12.凡是用inline说明的函数一定是内联函数。 ( )

13. 友元函数是独立于当前类的外部函数。 ( )

14. 静态成员函数与在一般的成员函数一样都隐含有一个 th is 指针。 ( )

15. C++编译器不能够区分重载的无参函数和缺省参数的函数。 ( )

16. 指针和引用都是变量都占有单独的内存空间。 ( )

17. 一个类可以定义多个构造函数和多个析构函数。 ( )

18. 构造函数是不能说明它的返回值类型的但可以说明为 vo id类型。 ( )

三、简答题

1. 什么是封装性请举例说明。

2. 什么是函数重载和运算符重载为什么要使用重载

3. 拷贝构造函数在哪几种情况下被调用

4. 什么是类什么是对象对象与类的关系是什么

5. 什么是面向对象程序设计

6. 什么是继承性请举例说明。

7.结构s truc t和类c las s有什么异同

8. 在定义拷贝构造函数时为什么通常还要定义一个重载的赋值运算符

9. 什么是消息消息具有什么性质

10. 若程序员没有定义拷贝构造函数则编译器自动生成一个缺省的拷贝构造函数它可能会产生什么问题

四、程序分析题

1. 指出下面程序中的1处错误并说明原因。 #inc lude<iostream.h>class Point

{int X,Y;public:

Point( ){X=0;Y=0;}

Point(intx=0,inty=0){X=x;Y=y;}void display( ){cout<<X<<","<<Y<<endl;} };void main()

{

Pointp;

p.display();

}答

2. 指出下面程序中的1处错误并说明原因。#inc lude<io s tream.h>class CTest{public:

CTest(){x=20; }p rivate:int x;friend void friend_f(CTest fri);

};void friend_f(CTest fri) {fri.x=55; }void main()

{

CTestc1,c2;c 1.friend_f(c2);

}答

3. 写出下面程序的运行结果。

#inc lude<io stream.h>c las s T est {private: int num;public:

Test(int n=0){num=n;num++;}

~Test( ){cout<<”Destructor is active,number=}; <<num<<endl;}void main( )

{

Test x[2];c out<<”Exiting main”<<endl;

}答

4. 写出下面程序的运行结果。 #inc lude<io s tream.h>c las s

Test{private: static int val; int a;public:static int func();static void sfunc(Test&r);

};int Test: :val=20;int Test: :func()

{val--;return val; }void Test: :sfunc(Test&r)

{r.a=25;cout<<"Result3="<<r.a; }void main()

{c out<<"Resultl="<<Test: :func()<<endl;Test a;c o ut<<"Re s ult2="<<a.func()<<end l;T e s t::s func(a);

}答

5指出下列程序中的1处错误并说明为什么。#inc lude<io stream.h>c las s Student{c har name[10];int age;flo at aver;void printStu();

};void main()

Student p 1,p2,p3;p 1.age=30;

//…

}答

6指出下列程序中的2处错误并说明为什么。 #inc lude<io s tream.h>c las sTest{public:

Test(int y=10){data=y;}int getData()const {return++data;} static int getCount()

{cout<<"Data is "<<data<<endl;return count;

}p rivate:int data;static int count;

};

答

7写出下列程序的运行结果。

#inc lud e"io s tream.h"class test

{p rivate:int num;floatfl;public:tes t( );int getint( ){return num;} float getfloat( ){return fl;}~test( );

};tes t: :test( )c out<<"Initaliz ing default"<<endl;num=0;fl=0.0;

易探云330元/年,成都4核8G/200G硬盘/15M带宽,仅1888元/3年起

易探云服务器怎么样?易探云是国内一家云计算服务商家,致力香港云服务器、美国云服务器、国内外服务器租用及托管等互联网业务,目前主要地区为运作香港BGP、香港CN2、广东、北京、深圳等地区。目前,易探云推出的国内云服务器优惠活动,国内云服务器2核2G5M云服务器低至330元/年起;成都4核8G/200G硬盘/15M带宽,仅1888元/3年起!易探云便宜vps服务器配置推荐:易探云vps云主机,入门型云...

搬瓦工:香港PCCW机房即将关闭;可免费升级至香港CN2 GIA;2核2G/1Gbps大带宽高端线路,89美元/年

搬瓦工怎么样?这几天收到搬瓦工发来的邮件,告知香港pccw机房(HKHK_1)即将关闭,这也不算是什么出乎意料的事情,反而他不关闭我倒觉得奇怪。因为目前搬瓦工香港cn2 GIA 机房和香港pccw机房价格、配置都一样,可以互相迁移,但是不管是速度还是延迟还是丢包率,搬瓦工香港PCCW机房都比不上香港cn2 gia 机房,所以不知道香港 PCCW 机房存在还有什么意义?关闭也是理所当然的事情。点击进...

npidc:9元/月,cn2线路(不限流量)云服务器,金盾+天机+傲盾防御CC攻击,美国/香港/韩国

npidc全称No Problem Network Co.,Limited(冇問題(香港)科技有限公司,今年4月注册的)正在搞云服务器和独立服务器促销,数据中心有香港、美国、韩国,走CN2+BGP线路无视高峰堵塞,而且不限制流量,支持自定义内存、CPU、硬盘、带宽等,采用金盾+天机+傲盾防御系统拦截CC攻击,非常适合建站等用途。活动链接:https://www.npidc.com/act.html...

cc 163 com为你推荐
深圳公交车路线深圳公交路线百度手写百度手写显示今日热点怎么删除怎样删除实时热点办公协同软件免费的多人协同办公软件哪些,我了解的有钉钉、企业微信,其他的还有么?腾讯文章腾讯罗剑楠是何许人也?lockdowndiphone4s 完美越狱5.1.1时出现Could not connect to lockdownd。求救啊!!ios系统iOS系统为什么那么好小米手柄买了个小米蓝牙手柄,游戏是可以玩但是按键位置不舒服,怎么可以改按键宽带接入服务器用wifi连不上服务器怎么办263企业邮箱设置263企业邮箱如何添加新的信箱?
windows虚机 美国vps推荐 中文域名申请 香港ufo highfrequency dd444 40g硬盘 圣诞促销 老左正传 183是联通还是移动 泉州电信 免费活动 服务器合租 免费mysql数据库 申请网站 万网主机管理 中国电信测速网站 阿里云邮箱登陆地址 免费网络空间 买空间网 更多