面向对象程序设计复习试题答案)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

肄语法扩充蒁1.1选择题蚁在C++中用(D)能够实现将参数值带回。蝿a)数组b)指针c)引用d)上述ABC都可蒅考虑函数原型voidtest(inta,intb=7,char*ch=*),下面的函数调用中,属于不合法调用的是:(C)膃A)test(5)B)test(5,8)C)test(6,#)D)test(0,0,*);蒀已知:intm=10;下列表示引用的方法中,正确的是:(C)衿A)int&Z;B)int&t=10;C)int&X=m;D)float&f=&m;袆下列不是函数重载所要求的条件是:(D)蚁A)函数名相同B)参数个数不同艿C)参数类型不同D)函数返回值类型不同罿在C++中执行以下4条语句后输出rad值为:(C)羃staticinthot=200;莃int&rad=hot;羈hot=hot+100;肈coutradendl;莄A)0B)100C)300D)200螁系统在调用重载函数时,不能作为确定哪个重载函数被调用的依据是:(D)肁A)参数个数B)参数类型C)函数名称D)函数的返回值类型膈对C++语言和C语言的兼容性,描述正确的是:(A)螅A)C++兼容CB)C++部分兼容CC)C++不兼容CD)C兼容C++薃在C++中使用流进行输入输出,其中用于屏幕输出的对象是:(C)螀A)cerrB)cinC)coutD)cfile芈对使用关键字new所开辟的动态存储空间,释放时必须使用(C)膆A)freeB)createC)deleteD)realse羁在函数调用时,如某一默认参数要指明一个特定值,则有(A)蕿A)其之前所有参数都必须赋值B)其之后所有参数都必须赋值莈C)其前、后所有参数都必须赋值D)其前、后所有参数都不必赋值薇下列哪个类型函数不适合声明为内联函数(A)蚂A)函数体语句较多B)函数体语句较少薂C)函数执行时间较短D)函数执行时间过长莈intFunc(int,int);不可与下列哪个函数构成重载(B)蚃A)intFunc(int,int,int);B)doubleFunc(int,int);蒄C)doubleFunc(double,double);D)doubleFunc(int,double);莀下面的哪个保留字不能作为函数的返回类型(C)蒈A)voidB)intC)newD)long肄一个函数功能不太复杂,但要求被频繁调用,选用(A)。袂A.内联函数B.重载函数C.递归函数D.嵌套函数腿已知函数f的原型为:voidf(int&a,char*b);变量s,t的定义是:ints;chart[]=ABCD;薈把s和t分别作为第一参数和第二参数来调用函数f,正确的调用语句是(C)蒅Af(&s,&t);Bf(&s,t);Cf(s,t);Df(s,&t);薄若定义cinstr;羈当输入蚈MicrosoftVisualStudio6.0!袆所得结果是str=(B)。肂A、MicrosoftVisualStudio6.0!羁B、Microsoft螇C、MicrosoftVisual肃D、MicrosoftVisualStudio6.0螄.函数模板(C)。螀A、代表某一具体函数袇B、与模板函数是同一个函数蒄C、与某一个具体的数据类型连用膂D、是模板函数实例化的结果葿在C++中,关于下列设置参数默认值的描述中,正确的是(C)袇A、不允许设置参数的默认值袅B、设置参数默认值只能在定义函数时设置羄C、设置参数默认值时,应该是先设置右边的再设置左边的薂D、设置参数默认值时,应该全部参数都设置羇下列表示引用的方法中,(A)是正确的。芆已知:k=1000;莁A、int&x=k;B、char&y;芁C、int&z=1000;D、float&t=&k;肇有如下模板定义:蚇templateclassTTfun(Tx,Ty){returnx*x+y*y;}肃在下列对fun的调用中,错误的是:(C)聿A)fun(2,8)B)fun(2.0,8.2)C)fun(2.3,8)D)fun(‘2’,’8’)膇通常情况下,函数模板中的类型参数个数不能是(A)螃A)0个B)1个C)2个D)3个薁1.2填空题袈1、假定有如下定义:intx;,若要将整型变量y定义为变量x的引用,则应使用的定义语句是_int&y=x;________。芇具有相同函数名但具有不同参数表的函数称为重载函数。'膄2、在进行函数调用时,将把参数的值传递给值参数,把参数的_地址_传递给引用参数。芃3、执行完下列三条语句后,指针变量c指向__b___。袁Inta,b,*c=&a;莇int*&p=c;薅p=&b;螁4、假设有如下函数定义:voidFun(intx,inty=100);则语旬Fun(5)语句__Fun(5,100)_等价。蚀5、在一个C++程序中,每个变量都必须遵循__先定义后使用__的原则。蒆6、下面是一个求数组元素之和的程序。主程序中定义并初始化了一个数组,然后计算该数组各元素之和,并输出结果。羆函数TotalSum计算数组元素之和。请完成下列程序。蒃#includeiostream.h荿__int?Totalsum(int?array[],int?len)__;蒆voidmain()莇{袁inta[5]={2,3,6,8,10};蒂__intTotal___;薆Total=Totalsum(a,5);薄coutSumofarray:Totalendl;薃}膁intTotalsum(intarray[],intlen)蚆{羅____intsum=0____;莄for(intI=0;____Ilen____;I++)羀____sum+=array[I]_____;螆returnsum;莅}螂7、下面的函数Fun未使用中间变量实现了对两个数的交换,请完成下列函数的定义。螈VoidFun(int&x,int&y)袆{螆x+=y;蒄y=___x-y____;螁__x=x-y_____;羆}袃8、定义一个函数时,若只允许函数体访问形参的值而不允许修改它的值,则应把该形参声明为__常量__,即在该形参声明的前面加上__const__关键字进行修饰。羂9、在一个函数的定义或声明前加上关键字__inline__时,该函数就声明为内联函数。薀1.3简答题肅A、.内联函数的含义芄在函数前加上关键字inline说明了一个内联函数,这使一个函数在程序行里进行代码扩展而不被调用。这样的好处是减少了函数调用的开销,产生较快的执行速度。但是由于重复编码会产生较长代码,所以内联函数通常都非常小。如果一个函数在类说明中定义,则将自动转换成内联函数而无需用inline说明。蚄B、.函数重载的含义荿在同一作用域范围内,相同的函数名通过不同的参数类型或参数个数可以定义几个函数,编译时编译器能够识别实参的个数和类型来决定该调用哪个具体函数。需要注意的是,如果两个函数仅仅返回类型不同,则编译时将会出错,因为返回类型不足以提供足够的信息以使编译程序判断该使用哪个函数。所以函数重载时必须是参数类型或者数量不同。荿C、引用与指针的区别蚅D、内联函数使用上的限制膂E、定义带默认参数值函数的规则莂F、指针与常量的关系葿1.4程序阅读题肆1)写出下列程序的运行结果。袄#includeiostream.h膁voidmain()蕿{蒇intx;节int&p=x;袀x=10;虿p=x+10;蚄coutx,pendl;肃}虿结果:20,20蝿2)写出下列程序的运行结果。肄#includeiostream.h蒁intf(inta)蚁{蝿return++a;蒅}膃intg(int&a)蒀{衿return++a;袆}蚁voidmain()艿{罿intm=0,n=0;羃m+=f(g(m));莃n+=f(f(n));羈coutm=mendl;肈coutn=nendl;莄}螁结果:肁m=3膈n=2螅3)写出下列程序的运行结果。薃#includeiostream.h螀voidFun()芈{膆intnum=20;羁coutTheFun'snumisnumendl;蕿}莈voidmain()薇{蚂intnum=10;薂coutThemain'snumisnumendl;莈Fun();蚃{蒄intnum=30;莀coutTheField'snumisnumendl;蒈}肄coutThemain'snumisnumendl;袂}腿结果:薈Themain'snumis10蒅TheFun'snumis20薄TheField'snumis30羈Themain'snumis10袅类和对象肄2.1选择题芀下列的各类函数中,不是类的成员函数。(C)腿A)构造函数B)析构函数C)友元函数D)拷贝初始化构造函数羅作用域运算符“::”的功能是:(B)芁A)标识作用域的级别的B)指出作用域的范围的羂C)给定作用域的大小的D)标识成员是属于哪个类的羈已知:print()函数是一个类的常成员函数,它无返回值,下列表示中,是正确的。(A)肅A)voidprint()const;B)constvoidprint();蚂C)voidconstprint():D)voidprint(const);蒀在类定义的外部,可以被访问的成员有(C)蚇A)所有类成员B)private的类成员膅C)public的类成员D)public或private的类成员肃关于类和对象不正确的说法是:(C)膁A)类是一种类型,它封装了数据和操作B)对象是类的实例螀C)一个类的对象只有一个D)一个对象必属于某个类膅在C++中实现封装是借助于(B)蒃A)枚举B)类C)数组D)函数蕿定义析构函数时,应该注意:(C)蒈A)其名与类名完全相同B)返回类型是void类型芅C)无形参,也不可重载D)函数体中必须有delete语句袄类claseCC1的说明如下,错误的语句是:(A)芁claseCC1{芇inta=2;//(A)莅CC1();//(B)羁public:蝿CC1(intval);//(C)肆~CC1();//(D)蒄};莂类的指针成员的初始化是通过函数完成的,这个函数通常是:(B)蒁A)析构函数B)构造函数C)其它成员函数D)友元函数聿关于构造函数的说法,不正确的是:(A)薄A)没有定义构造函数时,系统将不会调用它B)其名与类名完全相同螃C)它在对象被创建时由系统自动调用D)没有返回值罿通常拷贝构造函数的参数是:(C)袈A)对象名B)对象的成员名C)对象的引用名D)对象的指针名蚄关于成员函数特征的描述中,错误的是:(A)膄A)成员函数一定是内联函数B)成员函数可以重载蚁C)成员函数可以设置参数的默认值D)成员函数可以是静态的薇下列关于构造函数的描述中,错误的是:(D)蚄A)构造函数可以设置默认参数;B)构造函数在定义类对象时自动执行薅C)构造函数可以是内联函数;D)构造函数不可以重载肈有如下类声明“classA{intx;……};”,则A类的成员x是:(B)蚀A)公有数据成员B)私有数据成员C)公有成员函数D)私有成员函数螄类TM和类TN是两个独立的类,那么类TM中哪种形式的数据成员一定是不允许的:(C)螂A)TM*aB)TN&aC)TMaD)TNa;袀以下关于this指针的叙述中正确的是:(D)莈A)任何与类相关的函数都有this指针;B)类的成员函数都有this指针;袄C)类的友员函数都有this指针;D)类的非静态成员函数才有this指针;膂.关于类模板的说法正确的是:(B)薂A)类模板的主要作用是生成抽象类膇B)类模板实例化时,编译器将根据给出的模板实参生成一个类羄C)在类模板中的数据成员具有同样类型薃D)类模板中的成员函数没有返回值羀.以下关键字不能用来声明类的访问权限的是:(C)羆A)publicB)privateC)staticD)protected肄.类的私有成员可在何处访问(D)羄A)通过子类的对象访问B)本类及子类的成员函数中蚂C)通过该类对象访问D

1 / 67
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功