C++习题及答案(共25页).doc
《C++习题及答案(共25页).doc》由会员分享,可在线阅读,更多相关《C++习题及答案(共25页).doc(25页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上第一、二章习题1 关于C+语言,下列说法不正确的是A C+具有简洁、高效和接近汇编语言的特点B C+本身几乎没有支持代码重用的语言结构C C+语言不是一种纯面向对象的语言D C+支持面向对象的程序设计,这是它对C的重要改进B2 使用关键字_说明的函数为内联函数。inline3 C+支持两钟多态性,即_和_。编译时的多态性运行时的多态性4 在下面横线处填上适当字句,使程序输出结果为5,10# include void main()_int n=5;int& _=n;ref=ref+5;coutn”,”ref;constref5 const int *p;表明A p本身是
2、常量B p指向一个固定的int类型的地址,而p的内容可以修改C p只能指向一个整型常量D p只能指向一个被const修饰的int类型的常量C6 数据封装给数据提供了与外界联系的_,只有通过这些_,使用规范的方式,才能访问数据。标准接口 接口7 在下面横线处填上适当字句,使程序完整。int arr=1,2,3,4,5;_index(int i)return ai;void main()index(3)= _;/将a3改为6int &68 #include void main()int *p,i,j;cinj;/输入4p=new intj;if(!p)cout”Allocation errorn”
3、;for(i=0;ij;i+)pi=i;for(i=0;ij;i+)coutpi“ “;coutendl;delete p;输出为:4(这是输入的数据)01239#include void comp(const int&,int&);int main()int n=6,t=10;cout”n=”n”,t=”tendl;comp(n,t);cout”n=”n”,t=”tendl;return 0;void comp(const&in1,int &in2)in2=in1*10+in2;输出为:n=6, t=10n=6,t=7010 下列属于C+头文件约定使用的扩展名的是i. .cppii. .hp
4、piii. .civ. .c+B11 C+提供了一种新的注释方式:从“/”开始,直到_,都被计算机当做注释。行尾12 在C+中,多态性被直观地称为“_”。一个名字,多个函数13 #include void addsub(int&,int&);void main()int a=10,b=15;addsub(a,b);cout”a=”a”,b=”b;void addsub(int &m,int &n)int temp=m;m=m*n;n=temp-n;输出为:a=150,b=-514 #include void main()int a22=2,4,6,8;int *pa2;pa0=a0;pa1=a
5、1;for(i=0;i2;i+)for(j=0;j2;j+,pai+)cout“a”i“ ”j“=”*paiendl;输出为:a00=2a01=4a10=6a11=815 #include #include main()coutsetfill(*)setw(2)21endlsetw(3)21endlsetw(4)21endl;输出为:21*21*2116 C+有几种联编i. 1种ii. 2种iii. 3种iv. 4种B17 由于引用不是变量,所以不能说明引用的_,也不能说明数据类型为引用数组或是指向引用的指针。引用18 函数原型标识一个函数的_,同时也标识该函数参数的_和_。返回类型个数类型1
6、9 #include void f()static int i=15;i+;cout”i=”iendl;void main()for(int k=0;k2;k+)f();输出为:i=16i=1720 #include #include main()couthex20endl;coutoct10endl;coutsetfill(x)setw(10);cout100”aa”endl;return 0;输出为:1412xxxxxxx144aa21 #include int fun(int n1,int n2)return n1*n2;float fun(int f1,float f2)return
7、f1*f2;void main()int a=10;int b=2.5;float c=2.55;float d=5.52;coutfun(a,b)endl;coutfun(c,d)endl;输出为:2011.0422 与标准错误输出设备相关联(缓冲方式)的,由C+流库预定义的流是_。clog23 C+的流类库预定义的,与标准输出设备相关联的流是i. cinii. coutiii. cerriv. clogB第三章习题及答案9 缺省的析构函数的函数体是A 不存在的B 随机产生的C 空的D 无法确定的C10 以下说法中正确的是A 一个类只能定义一个构造函数,但可以定义多个析构函数B 一个类只能定
8、义一个析构函数,但可以定义多个构造函数C 构造函数与析构函数同名,只是名字前加了一个波浪号()D 构造函数可以指定返回类型;而析构函数不能指定任何返回类型,即使是void类型也不可以B11 不能在C+中提供封装的关键字是A classB structC typeD unionC12 由于数据隐藏的需要,静态数据成员通常被说明为A 私有的B 保护的C 公有的D 不可访问的A13 在类中说明的任何成员都不能用_、_和_关键字进行修饰。extern autoregist14 构造函数是和_同名的函数,但要在后者的名字之前冠有一个_,以区别于前者。析构函数波浪号 15 用关键字static修饰的成员称
9、为_。静态成员16 已知AA是一个类,则AA *a2;声明了一个_数组。类对象指针17 拷贝初始化构造函数用对它所在类的_作为参数。引用18 指出下面程序段中的错误,并说明出错原因。/str1.h#include #include class strprivate:char *string;public:str(char* s)string=new charstrlen(s)+1;strcpy(string,s);str()cout”Delete”endl;delete string;void print()coutstringendl;#include “str1.h”void main()
10、str s1=”student”;str s2=s1;s1.print();s2.print();指针悬挂问题24 指出下面程序段中的错误,并说明出错原因。class Locationpublic:void init(int initX,int initY);private:int X=1;public:int getX();private:int y;不能采用这种方式初始化25 指出下面程序段中的错误,并说明出错原因。class Testprivate: int num;protected: int p;void fun()Test m;int x=m.p;类之外定义的函数不能访问类的保护成
11、员26 指出下面程序段中的错误,并改正。class testint x;test *ptr=new test2;delete ptr;应为:delete ptr;27 在下面横线处填上适当字句,完成类的定义。class Tpublic: void init(int initx)x=initx;int getx()_;/取x值private: _;return xint x28 在下面横线处填上适当字句,完成类中成员函数的定义。class ABCint n;float f;public: ABC(int,float);ABC(ABC&);ABC:ABC(_)n=num;f=f1;ABC:ABC(
12、ABC&t)n=_;f=t.f;int num,float f1t.n29 #include class Apublic: static int x;int y;int A:x=15;void main()A a;coutA:xendl;couta.xendl;输出为:151530 class testprivate: int num;public: test();int get()return num;test();test:test()num=0;test:test()cout”Destructor is active”endl;void main()test t2;cout”Exitin
13、g main”endl;输出为:Exiting mainDestructor is activeDestructor is active31 #include class salaryint x,y;static int n;public: salary(int b):x(b)void f(double i)y=x*i;static void g(int p)n=p;int h()constreturn(x+y+n);int salary:n=100;void main()salary s1(1000),s2(2000);s1.f(0.2);s2.f(0.15);salary:g(400);c
14、out”s1=”s1.h()”,s2=”s2.h()”n”输出为:S1=1600,S2=270032 #include class tint x;float y;public: t(int n)x=n;t(int n,float f)x=n;y=f;int f()return x;float g()return y;t one2=3,4;t two2=t(3,5.5),t(7,8.8);void main()for(int i=0;i2;i+)cout“one”i“=”onei.f()endl;coutendl;for(int i=0;i2;i+)cout“two”i“=(”twoi.f()”
15、,”twoi.g()”)”endl;输出为:one0=3one1=4two0=(3,5.5)two1=(7,8.8)33 说明友元函数使用关键字i. friendii. staticiii. constiv. volatileA34 指向类X中类型为type的数据成员的指针的说明形式为i. type X:*pointerii. X:type *pointeriii. Type *X:pointeriv. X:*type pointerA35 有关类作用域,下列说法中不正确的是i. 说明类时使用的一对花括号形成所谓的类作用域ii. 类作用域不包含类中成员函数的作用域iii. 类作用域中说明的标识
16、符只在类中可见iv. 在可能出现两义性的情况下,必须使用作用域限定符“:”B36 形如X:X(X&)的构造函数称为i. 拷贝函数ii. 复制函数iii. 初始化构造函数iv. 拷贝初始化构造函数D37 友元关系不具有_,即当说明类A是类B的友元时,类B不一定是类A的友元。交换性38 new和_一同起作用,delete与_一起工作。构造函数析构函数39 指出下列程序段中的错误,并改正。class Bbprivate:int n;float f;public:Bb(int n1,float f1)n=n1;f=f1;Bb(Bb b)n=b.n;f=b.f;应为:Bb(Bb &b)n=b.n;f=b
17、.f;40 指出下面程序段中的错误,并改正。class testpublic: static int x;int test.x=10;应为:int test:x=10;41 在下面横线处填上适当字句,完成类中成员函数的定义。class Aprivate: int x;float y;public: A (int aa,float b)x=_;/用aa初始化xy=_;/用b初始化y;aab42 #include class Aprivate: int a,b;public: A(int m,int n)a=m;b=n;void fun()couta”,”bendl;void fun()const
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 习题 答案 25
限制150内