《电大开放教育C++语言程序设计期末复习题资料参考答案【含答案.doc》由会员分享,可在线阅读,更多相关《电大开放教育C++语言程序设计期末复习题资料参考答案【含答案.doc(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、电大C+语言程序设计期末复习题及答案小抄资料一、单项选择题1、 面向对象程序设计数据与_放在一起,作为一个相互依存、不可分割的整体来处理。A、对数据的操作B、信息C、数据隐藏D、数据抽象2、 已知:int a=1,b=2,c=3,d=4,则表达式ab?a:cd?c:d 的值为_。A、1B、2C、3D、43、下列while循环的次数是_。while( int i=0 ) i- -;A、0B、1C、5D、无限4、以下程序的输出结果是_。#include fuc( char* s) char* p=s; while( *p) p+; return (p-s);main() coutfuc(ABCDE
2、F); A、3B、6C、8D、05、_的功能是对对象进行初始化。A、析构函数B、数据成员C、构造函数D、静态成员函数6、下列引用的定义中,_是错误的。A、int i;B、int i;C、float i;D、char d;int& j=i; int &j; float& j=i;j=i; char &k=d;7、若类A和类B的定义如下:class A int i,j;public: void get(); /.;class B:public A int k;public: make(); /.;void B:make() k=i*j;则上述定义中,_是非法的表达式。A、void get();B、
3、int k;C、void make();D、k=i*j;8、以下程序段_。int x = -1;do x = x*x;while( !x );A、是死循环B、循环执行2次C、循环执行1次D、有语法错误9、对定义重载函数的下列要求中,_是错误的。A、要求参数的个数不同B、要求参数中至少有一个类型不同C、要求参数个数相同时,参数类型不同D、要求函数的返回值不同10、一个_允许用户为类定义一种模式,使得类中的某些数据成员及某些成员函数的返回值能取任意类型。A、函数模板B、模板函数C、类模板D、模板类(Key:1-5:AAABC6-10:BDCDC)二、填空题1、在C+类中可以包含 、 和 三种具有不
4、同访问控制权的成员。(Key:公有或public,保护或protected,私有或private)2、以下程序的执行结果是_。#include void func( int );void func( double );void main( ) double a=88.18; func(a); int b=97; func(b); void func( int x ) coutxendl;void func( double x ) coutx,;(Key: 88.18,97)3、类中的数据和成员函数默认访问类型为_。(Key:私有或private)4、以下程序的执行结果是_。#include u
5、sing namespace std;f(int b,int n)int i,r=1;for( i=0;i=n;i+ )r=r*bi;return r;int _tmain()int x,a = 2,3,4,5,6,7,8,9;x=f(a,3);coutx=xendl;return 0;(Key: x=120)5、在类内部定义的_数据不能被不属于该类的函数来存取,定义为_的数据则可以在类外部进行存取。(Key:private或 私有 或 protected 或 保护;public 或 公有)6、下列程序输出的结果是_。#include using namespace std;void sub(
6、 char a,char b )char c=a;a=b;b=c;void sub( char* a,char b )char c=*a;*a=b;b=c;void sub( char* a,char* b )char c=*a;*a=*b;*b=c;int _tmain() char a=A,b=B;sub(&a,&b);coutabendl;return 0;(Key: BA)7、下列程序输出的结果是_。#include using namespace std;void Exchange( int* pFirst,int* pLast )if( pFirstpLast )int Chang
7、e = *pFirst;*pFirst = *pLast;*pLast = Change;Exchange(+pFirst,-pLast);void Print( int Integer,int HowMany)for( int Index=0; IndexHowMany; Index+ )coutIntegerIndex ;coutendl;int _tmain()int Integer = 1,2,3,4;Exchange(&Integer0,&Integer3);Print(Integer,4);return 0;(Key: 4 3 2 1)8、下列程序输出的结果是_。#include
8、using namespace std;int _tmain()int nInteger = 5, &rInteger = nInteger;rInteger = nInteger+1;coutnInteger,rIntegerendl;return 0;(Key: 6,6)9、_是一种特殊的成员函数,它主要用来为对象分配内存空间,对类的数据成员进行初始化并进行对象的其他内部管理操作。(构造函数)10、下列程序输出的结果是_。#include using namespace std;int _tmain()int x=2,y=3,z=4;cout( xy ) & ( !z ) | (x*y)
9、)endl;return 0;(Key:1)三、程序分析:给出程序运行后的输出结果(每小题5分,共20分)1、#include using namespace std;int _tmain() int x=1,y=2,z=3; x+=y+=z; cout(xy?y:x),; cout(xy?x+:y+),; coutyendl; return 0;Key: 6,5,6 2、#include using namespace std;void func( int b );void main() int a = 5,6,7,8 ,i; func(a); for( i=0;i4;i+ ) coutai
10、 ;void func( int b ) int j; for( j=0;j4;j+ ) bj = 2*j;Key: 0 2 4 63、#include using namespace std;class CSampleint i;public:CSample(void);CSample(void);CSample(int val);void Print(void);CSample:CSample(void)coutConstructor1endl;i=0;CSample:CSample(int val)coutConstructor2endl;i=val;void CSample:Print
11、(void)couti=iendl;CSample:CSample(void)coutDestructorendl;int _tmain() CSample a,b(10);a.Print();b.Print();return 0;Key: Constructor1Constructor2i=0i=10DestructorDestructor4、#include using namespace std;class CDataprotected:int nInteger;public:CData( int Integer );CData( void );void Print(void);CDat
12、a:CData( int Integer ): nInteger(Integer)coutConstructing a dataendl;CData:CData( void )coutDestructing a dataendl;void CData:Print(void)coutThe data is nIntegerendl;class CNumber :public CDataprotected:double fNumber;public:CNumber(int Integer,double Number);CNumber(void);void Print(void);CNumber:C
13、Number( int Integer,double Number ): CData( Integer ), fNumber(Number)coutConstructing a numberendl;CNumber:CNumber( void )coutDestructing a numberendl;void CNumber:Print(void)CData:Print();coutThe number is fNumberendl;int _tmain()CNumber Number(1,3.8);Number.Print();return 0;Key: Constructing a da
14、taConstructing a numberThe data is 1The number is 3.8Destructing a numberDestructing a data四、根据要求完成程序1、完成以下程序,求1!+2!+3!+4!+5!+6!+7!+8!+9!+10!之和。#include using namespace std;int _tmain() long Term=_ ,Sum=_;for( int Index=1;Index=_;Index+)Term *=_;Sum +=_;coutSum of factorial from 1 to 10 is ; coutSum
15、endl;return 0; Key:1 0 10 Index Term2、完成下面程序,计算三角形和正方形的面积。设三角形和正方形的宽为fWidth,高为fHeight,则三角形的面积为fWidth*fHeigth/2。#include using namespace std;class CShapepublic:CSquare:CSquare(double Width,double Height):_double CSquare:Area(void)_;int _tmain() CTriangle Triangle(16,8); coutThe area of triangle is Tr
16、iangle.Area()endl; CSquare Square(13,8); coutThe area of square is Square.Area()endl; return 0; Key: fWidth(Width) CShape(Width,Height) return fWidth*fHeight/2 CShape(Width,Height) return fWidth*fHeight五、用面向对象方法设计一个阶乘类CFactorial,在CFactorial类的构造函数CFactorial(long Integer)中,将Integer的值赋给nInteger;在主函数int
17、 _tmain(),键盘输入任一整数Integer,以Integer的值为实际参数构造一个阶乘对象Factorial,调用对象Factorial的相应成员函数输出nInteger的阶乘值fFactorial。完成以下函数的代码设计:(1)、设计构造函数CFactorial(long Integer),求出nInteger的阶乘值fFactorial。若nInteger没有阶乘值,则fFactorial赋值为0。(2)、设计CFactorial类的成员函数void Print(void),输出nInteger的阶乘值fFactorial。若nInteger没有阶乘,则输出nInteger没有阶乘
18、的信息。#include using namespace std;class CFactorialpublic:CFactorial(long Integer);protected:long nInteger;float fFactorial;public:void Print(void);CFactorial:CFactorial(long Integer) : nInteger(Integer)/作答处void CFactorial:Print(void)/作答处int _tmain()long Integer;coutInteger; CFactorial Factorial(Integ
19、er);Factorial.Print();return 0; Key: 解:参考程序:#include using namespace std;class CFactorialpublic:CFactorial(long Integer);protected:long nInteger;float fFactorial;public:void Print(void);CFactorial:CFactorial(long Integer) : nInteger(Integer)if( nInteger1 ) /1分fFactorial*=Integer; /1分Integer-; /1分void CFactorial:Print(void)if( fFactorial ) /0.5分coutThe factorial of nInteger is fFactorialendl; /1分else /0.5分coutThere is not any factorial for nIntegerendl;/1分int _tmain()long Integer;coutInteger; CFactorial Factorial(Integer);Factorial.Print();return 0;
限制150内