面向对象复习资料b.doc_第1页
面向对象复习资料b.doc_第2页
面向对象复习资料b.doc_第3页
面向对象复习资料b.doc_第4页
面向对象复习资料b.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

复习资料模拟题一一、单项选择题1.C+对C语言作了很多改进,即从面向过程变成为面向对象的主要原因是( ) A.增加了一些新的运算符 B.允许函数重载,并允许设置缺省参数C.规定函数说明符必须用原型 D.引进了类和对象的概念解析:因为他C+基本上可以实现C所有的功能,而且C+新添加了比如类的思想,封装,覆盖,重载。把现实中的一些事物,包含一些虚拟的东西,我们可以把它抽象成一个类封装起来,里边包含这个类的属性和方法。即这个“东西”拥有什么(静态)和它能做什么(动态)两大方面。然后在类外边可以调用这些方法。这种思想主要就是让编程简单了,移植性更好,而且让程序员的思维也更加清晰。2.下列符号不能组成标识符的是( )A.连接符 B.下划线C.大小写字母 D.数字字符解析:C+标识符要求:1、必须由数字、字母或下划线构成,不能有其它字符;2、必须是以字母或下划线开头;3、字母大小写敏感,即大写字母和小写字母不是同一个标识符,例:num和Num是两个不同的标识符;4、不能是C+本身的关键字或保留字,也就是在C+中有固定含义的标识符,比如else;5、标识符长度任意,但有些操作系统会有一个长度上限。3.类型修饰符unsigned不能修饰( )A. char B. intC. long int D. Float解析:unsigned 是无符号类型 float 类型的范围是 单精度浮点类型4.在int a=3,int *p=&a;中,*p的值是( ) A.变量a的地址值 B.无意义 C.变量p的地址值 D.3设有定义语句:int a=3, b, *p=&a;要将变量a的值赋给变量b,下列语句中不正确的赋值方式是_。 A. b = *&a; B. b = *p C. b = a; D. b = *a; 选D*是用来取指针指向的地址中的数据的.a不是指针,当然不能写作*a了.而b=*&a之所以对是因为:int *p=&a;它相当于int *p;p=&a; p是指针,所以&a也是指针,所以才会有*(&a)之说啊5.下列关于指针的操作中,错误的是( ) A.两个同类型的指针可以进行比较运算 B.可以用一个空指针赋给某个指针 C.一个指针可以加上两个整数之差 D.两个同类型的指针可以相加指针运算指针变量加/减一个整数例如:p+,p-,p+i等。 C语言与C+语言规定,一个指针变量加/减一个整数是将改指针变量的原值(是一个地址)和它指向的变量所占用的内存单元字节数相加或相减。这样就保证了p+i指向p下面的第i个元素。 如p+i代表这样的地址计算:p+i*d,其中d为p所指向的变量单元所占用的字节数。 指针变量赋值C语言与C+语言规定,可以将一个变量或一个函数的入口地址赋值给相应的指针变量。 例如(假设p是相应的指针): p=&a; p=max;(max为已经定义的函数) 指针变量相减如果两个指针变量指向同一个数组的元素,则两个指针变量之差是两个指针之间的元素个数。 注意,指针变量相加无实际意义。 指针变量比较如果两个指针变量指向同一个数组的元素,则可以进行比较。指向前面元素的指针变量小于指向后面元素的指针变量。6. 重载函数在调用时选择的依据中,错误的是( ) A.函数的参数 B.参数的类型C.函数的名字 D.函数的类型系统在调用重载函数时往往根据一些条件确定哪个重载函数被调用。不能作为依据的是?A参数个数 B参数的类型 C函数名称 D函数的类型 C7.一个函数功能不太复杂,但要求被频繁调用,选用( A ) A.内联函数 B.重载函数C.递归函数D.嵌套函数重载的好处:方法重载的主要好处就是,不用为了对不同的参数类型或参数个数,而写多个函数。多个函数用同一个名字,但参数表,即参数的个数或(和)数据类型可以不同,调用的时候,虽然方法名字相同,但根据参数表可以自动调用对应的函数。如果我们使用reflector去查看微软写的.net的基类库的话,我们可以发现他使用很多的方法重载,这样我们在调用的时候,就不需要记那么多的方法名称,而是知道了方法的功能就可以直接的给他传递不同的参数,编译器会明确的知道我们调用了哪一个方法。8.下列不是描述类的成员函数的是(C ) A.构造函数 B.析构函数C.友元函数 D.复制构造函数 9.构造函数不具备的特征的是( ) A.构造函数的函数名与类名相同 B.构造函数可以重载 C.构造函数可以设置默认参数 D.构造函数必须指定类型说明 10.通常,拷贝构造函数的参数是( ) A.某个对象名 B.某个对象的成员名 C.某个对象的引用名 D.某个对象的指针名 11.继承机制的作用是( ) A.信息隐藏 B.数据封装C.定义新类 D.数据抽象可以实现代码复用,子类可以从父类中继承所有的非私有的方法。 12.类的析构函数的作用是( ) A.一般成员函数 B.类的初始化 C.对象的初始化D.撤消对象时所做的清理工作 13.类的析构函数是在( )调用的。 A.类创建时 B.创建对象时C.删除对象时D.不自动调用 14.在( )情况下适宜采用inline定义内联函数。 A.函数体含有循环语句 B.函数体含有递归语句 C.函数代码少、频繁调用 D.函数代码多、不常调用 15.如果类A被说明成类B的友元,则( ) A.类A的成员即类B的成员 B.类B的成员即类A的成员 C.类A的成员函数不得访问类B的成员 D.类B不一定是类A的友元 二、填空题 1.对象的三大基本特性是多态性、_ _、封装性。 2.C+语言的函数参数传递方式有传值和_ _。 3.重载赋值操作符时,应声明为_ _函数。 4.用_ _声明的基类称为虚基类。 5.用_ _声明函数称为虚函数。 6.派生类对基类继承控制访问有三种。派生类可以定义其基类中不具备的_ _。 7.静态成员是对象的成员,_ _函数不是类的成员。 8.在函数体之前加_ _关键字可以防止覆盖函数改变数据成员的值。 9.一个const对象只能访问_ _成员函数。 10.使用友元函数是为了提高程序效率,且节约了_ _开销。三、完成程序题 1.完成下面类中的成员函数的定义。 class test private: int num; float x; public: test(int n,float f); test(test&); ; test:test(int n,float f) num=n;_; test:test(text& t) _; x=t.f1; 2.根据下面的主程序,完成类说明的最小形式(不要求实现成员函数的定义)。 #include class base private: _; public: _; ; void main() base try(6); 3.一个类的头文件如下所示,程序main产生对象T,且T.num=10,并使用P( )函数输出这个对象的值。 class test private: int num; public: test(int); void show(); test:test(int n) num=n; test:P()coutnumendl; #include void main() _; _; 四、综合应用题1.分析下列程序可能的输出结果。 class test private: int num; public: test(); int TEST() return num; test(); ; test:test()num=0; test:test()coutDestructor is activeendl; void main() test x3; coutExiting mainendl; 模拟题二一、 单项选择题说明:在本试卷中统一规定整型(int)数据占用4个字节的存储单元。1、 在每个C+程序中都必须包含有这样一个函数,该函数的函数名为( ) A. main B. MAIN C. name D. function2、设x和y均为bool量,则x&y为真的条件是( ) A. 它们均为真 B. 其中一个为真 C. 它们均为假 D. 其中一个为假 3、下面的哪个保留字不能作为函数的返回类型?( ) A. void B. int C. new D. long 4、假定a为一个整型数组名,则元素a4的字节地址为( ) A. a+4 B. a+8 C. a+16 D. a+32 5、假定AB为一个类,则执行“AB a(4) , b3 , * p2 ;”语句时,自动调用该类构造函数的次数为( ) A. 3 B. 4 C. 6 D. 9 6、假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为:( ) A. AB operator+(AB&a,AB&b) B. AB operator+(AB& a) C. operator+(AB a) D. AB & operator+( )二、填空题 1、C+语言中的每条基本语句以 作为结束符,每条复合语句以 作为结束符。 2、执行“cout char(A+2)5的相反表达式为 。 6、假定一个一维数组的定义为“char * a8 ;”,则该数组所含元素的个数为 ,所占存储空间的字节数为 。 7、变量分为全局和局部两种, 变量没有赋初值时,其值是不确定的。 8、假定a是一个二维数组,则aij的指针访问方式为 。 9、假定一个结构类型定义为“struct Dint a;unionint b;double c; D * d2 ; ;”,则该类型的大小为 字节。 10、对一个类中的数据成员的初始化可以通过构造函数中的 实现,也可以通过构造函数中的 实现。 11、假定AB为一个类,则执行“AB a10;”语句时,系统自动调用该类的构造函数的次数为 。 12、假定类AB中有一个公用属性的静态数据成员bb,在类外不通过对象名访问该成员bb的写法为 。三、给出下列程序运行后的输出结果 1、# include void SB(char ch) switch(ch) case A: case a: cout well!; break; case B: case b: cout good!; break; case C: case c: cout pass!; break; default: cout nad!; break; void main() char a1=b,a2=C,a3=f; SB(a1);SB(a2);SB(a3);SB(A); cout endl; 2、# include # include void main() char *a5=student,worker,cadre,soldier,peasant; char *p1,*p2; p1=p2=a0; for (int i=0; i0) p1=ai; if (strcmp(ai,p2)0) p2=ai; cout p1 p2endl; 3、# include int a=5; void main() int a=10,b=20; cout a bendl; int a=0,b=0; for (int i=1; i6; i+) a+=i; b+=a; cout a b :aendl; cout a bendl; 4、# include int LB(int *a,int n) int s=1; for (int i=0; in; i+) s*=*a+; return s; void main() int a=1,2,3,4,5,6,7,8; int b=LB(a,5)+LB(&a3,3); cout b=bendl; 5、# include # include struct Worker char name15; / 姓名 int age; / 年龄 float pay; / 工资 ; void main() Worker x; char *t=liouting; int d=38; float f=493; strcpy(,t); x.age=d; x.pay=f; cout x.age x.payendl; 6、# include class A int a; public: A(int aa=0) a=aa; A() cout Destructor A!aendl; ; class B:public A int b; public: B(int aa=0,int bb=0):A(aa) b=bb; B() cout Destructor B!bendl; ; void main() B x(5),y(6,7); / 后定义的变量将先被释放 四、写出下列每个函数的功能 1、# include int SA(int a,int b) if (ab) return 1; else if (a=b) return 0; else return -1; 2、float FI(int n) / n为大于等于1的整数 float x,y=0; do cin x; n-; y+=x*x; while (n0); return y; 3、template void WE(Type a,Type b,int n) for (int i=0; if-name; StrNode * p=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论