资源描述:
《oop技术:面向对象技术复习思考题》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、OOP技术:《面向对象技术》复习思考题一.填空题1.在C++中,函数的参数有两种传递方式,它们是值传递和。当一个成员函数被调用时,该成员函数的指向调用它的对象。2.拷贝构造函数使用作为参数初始化创建中的对象。3.在公有继承的情况下,基类数据成员在派生类中的访问权限。4.用new申请某一个类的动态对象数组时,在该类中必须能够匹配到构造函数,否则应用程序会产生一个编译错误。5.静态数据成员在类外进行初始化,且静态数据成员的一个拷贝被类的所有对象。6.设"inta=3,b=4,c=5;",表达式"(a+b)>c&&b!=c"的值是。7.在C++中,定义重载函数时,应至少使重载函数的参数个数或参数类型
2、。8.动态联编要满足两个条件,它们是、。9.在C++类中,有一种不能定义对象的类,这样的类只能被继承,称之为,定义该类至少具有一个。10.举出C++中两种用户自定义的数据类型:、。11.C++中没有字符串类型,字符串是通过来表示的,每一个字符串都有一个结尾字符。12.在C++中,虽然友元提供了类之间数据进行访问的一种方式,但它破坏了面向对象程序设计的特性。13.在C++中,构造派生类对象时,总是先从的初始化开始的。14.类是用户定义的类型,具有类类型的变量称作。15.在5个运算符"*(乘号)、&&、<=、!、!="中,优先级由高到低的顺序是。16.在C++中,类定义一般用class关键字,不过
3、用struct关键字也可以定义类,它们定义类的区别在于。1.静态的成员函数没有隐含的,所以,它们只能访问静态的数据成员。2.与"(!a==0)"等价的C++表达式是。3.若a=6,b=4,c=2,则表达式"!(a-b)+c-1&&b+c/2"的值是。4.在面向对象的程序设计中,通过实现数据隐藏;通过实现代码的复用。5.在类的定义中,说明为protected的数据成员称为保护成员。保护数据成员具有双重作用:对于其派生类而言,;而对于其外部的程序而言,。6.C++中有两种数据类型:和可以使用signed修饰符。7.举出C++中两种流程控制语句、。8.C++中,对象保存在内存中,内存是自动分配和释放
4、的,而内存需要用户自己申请和释放。9.在C++函数中,可用return语句带回一个值。如果有多个返回值,可用、等带回。二.写出程序的运行结果1.#include voidmain() { inta; charch; ch='a'; ch++; a=ch; cout< voidmain() { inta[10]={1,2,3,4,5,6,7,8,9,10},
5、*p=a; printf("%d",*(p+2)); }4.#include voidmain() { int*v,b; v=&b;b=100;*v+=b; printf("%d",b); }5.voidfun(int*x) {printf("%d",++*x);} main() { inta=25; fun(&a); }6.#include voidmain() { inta[]={1,2,3,4,5}; intx,y,*p; p=&a[0]; x=*(p+2); y=*(p+4); printf("*p=%d,x=%d,y
6、=%d",*p,x,y); return; }7.#include voidast(intx,inty,int*cp,int*dp) { *cp=x*y; *dp=x%y; } voidmain() { inta,b,c,d; a=2;b=3; ast(a,b,&c,&d); cout< structcmplx { intx; inty; }cnum[2]={1,3,2,7}; intmain() { printf("%d",cnum[0].y*cnum[1].x); ret
7、urn0; }9.#include structstu {intnum; charname[10]; intage; }; voidfun(stu*p) {cout<<(*p).name<