C++复习题1的.docVIP

  • 112
  • 0
  • 约1.01万字
  • 约 14页
  • 2017-08-21 发布于浙江
  • 举报
C复习题1的

一、概念题 1.类和对象有什么区别和联系? 2.什么是类的实现? 3.this指针的概念是什么? 4.为什么要引入构造函数和析构函数? 5.什么时候需要自定义拷贝构造函数?若程序员没有定义拷贝构造函数,则编译器自动生成一个缺省的拷贝构造函数,它可能会产生什么问题?C++语言支持的两种多态性分别是编译时的多态性和的多态性。C++有两种联编方式,其中在程序编译时的联编叫做______联编 42.虚函数可以是另一类的______函数 43.定义虚函数需要用______关键字 44.将函数“void vf()”定义为纯虚数的格式是virtual void vf()______ 45.拥有纯虚函数的类就是______,该类不能产生类的实例 46.派生类没有重载基类的纯虚函数,则此派生类也是______ 47.有如下程序 #include iostream.h class CSAI_A { public: virtual void fun(){coutA;} }; class CSAI_B:public CSAI_A { public: virtual void fun(){CSAI_A::fun();coutB;} }; void main() { CSAI_A *p=new CSAI_B; p-fun(); delete p; } 执行这个程序的输出结果是()答案:______ 48. 有如下程序 #includeiostream.h const int T=8; void main() { int i,s=0; for(i=1;i=T;i++){ s+=i*i; couts ; } coutendl; } 运行结果:______ 49. 有如下程序 int ff(int x,int y){ int z; coutx+y=; cinz; if(x+y==z) return 1; else return 0; } 函数功能:______ 50. 有如下程序 char *f(char *s){ int n=strlen(s); char * r=new char[n+1]; for(int i=0;in;i++) if(s[i]=a s[i]=z)r[i]=s[i]-a+A; else r[i]=s[i]; r[n]=\0; return r; } 函数功能:______ 51.C++虚函数有两种调用方式,分别是______和多态调用方式 52.当运算符重载为成员函数时,对象本身就是______,不在参数表中显示地出现。 53.若以成员函数形式,为类CSAI重载“double”运算符,则该运算符重载函数的原则是______ 54.在表达式“x+=y”中,“+=”是作为非成员函数重载的运算符,若是使用显式的函数调用代替直接使用运算符“+=”,这个表达式还可以表示为______ 55.将运算符“”重载为类CSAI的友元函数的格式是:friend instream operator ______ 56.this指针______破坏类的封装性。 57.通过指向基类的指针调用派生类对象的函数时,采用______调用。 58.下面是对按从小到大排列的有序数组a[n]中进行二分查找x的算法,若查找成功返回该元素的下标,否则返回-1。 int BinnarySearch(int a[],int n,int x) { int low=0,high=n-1; //定义并初始化区间下界和上界变量 int mid; //定义保存中点元素下标的变量 while(low=high){ mid=(low+high)/2; if(x==a[mid]) ______ else if(xa[mid])high=mid-1; else ______ } return -1; } 59.请补充完整如下的类定义: #includestring.h class A{ char *a; public: A(){a=0;} //定义无参构造函数,使A的值为空 A(char *aa){ a= ______ ; //进行动态存储分配 strcpy(a,aa); //用aa所指字符串初始化a所指向的动态存储空间 } ______ ; //定义析构函数,删除a所指向的动态存

文档评论(0)

1亿VIP精品文档

相关文档