当前位置:文档之家› C++期末复习试题

C++期末复习试题

《C面向对象程序设计》谭浩强版复习总结

第一章C++ 基础 endl 换行并刷新输出流 setw(n) 设置字段位数为n hex,oct,dec 十六进制,八进制,十进制表示 setfill 定义填充字符 setprecision 定义浮点数的精度 left,right 左对齐,右对齐 showpoint 强制显示小数点以及全部尾部0 C++通过给常量命名的方式定义常量: const<数据类型名><常量名>=<表达式> 用const定义的标识符常量时,一定要对其初始化。在说明时进行初始化是对这种常量置值的唯一方法,不能用赋值运算符对这种常量进行赋值。 函数声明的一般形式为 函数类型函数名(参数表) 函数模板的定义 template 函数定义 例子:template T max(T a,T b){ return(a>b)? a:b; } 定义函数模板时可以使用多个类型参数,每个类型参数前面只需加上关键字typename或class,用逗号分隔: template

例子:template T1 max(T1 a,T2 b){ return (a>b) ? a : (T1)b; } 有默认参数的函数:实参与形参的结合是从左至右进行的,因此指定默认值的参数必须放在形参列表中的最右端 引用 定义对变量起另外一个名字(别名alias),这个名字称为该变量的引用。 <类型> &<引用变量名> = <原变量名>; 其中原变量名必须是一个已定义过的变量。如: int max ; int &refmax=max; refmax并没有重新在内存中开辟单元,只是引用max的单元。max与refmax在内存中占用同一地址,即同一地址两个名字。 对引用类型的变量,说明以下几点: 1、引用在定义的时候要初始化 2、对引用的操作就是对被引用的变量的操作。 3、引用类型变量的初始化值不能是一个常数。 4、一旦引用被声明,它就不能再指向其它的变量。 5、对引用的初始化,可以用一个变量名,也可以用另一个引用。 6、引用同变量一样有地址,可以对其地址进行操作,即将其地址赋给一指针。 当&m的前面有类型符时(如int &m),它必然是对引用的声明;如果前面无类型符(如cout<<&m),则是取变量的地址。 7、对常量(用const声明)的引用使用如下方式: int i=5; const int &a=i;

面向对象程序设计期末综合练习一(单选题)

22. 下列的符号常量定义中,错误的定义是()。 A. const M=10; B. const int M=20; C. const char ch; D. const bool mark=true; 40. 函数重载是指()。 A. 两个或两个以上的函数取相同的函数名,但形参的个数或类型不同 B. 两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同 C. 两个以上的函数名字不同,但形参的个数或类型相同 D. 两个以上的函数取相同的函数名,并且函数的返回类型相同 41. 以下关于函数模板叙述正确的是()。 A. 函数模板也是一个具体类型的函数 B. 函数模板的类型参数与函数的参数是同一个概念 C. 通过使用不同的类型参数,函数模板可以生成不同类型的函数 D. 用函数模板定义的函数没有类型 42. 下列()的调用方式是引用调用。 A. 形参和实参都是变量 B.形参是指针,实参是地址值 C. 形参是引用,实参是变量 D.形参是变量,实参是地址值

43. 为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应选择()。 A. 内联函数 B.重载函数 C.递归函数 D.函数模板 44. 函数原型语句正确的是()。 A. int Function(void a); B.void Function (int); C. int Function(a); D.void int(double a); 45. C++中函数返回值的类型是由()决定的。 A. return语句中表达式的类型 B.该函数定义时的类型 C.调用函数时的调用语句 D.系统根据结果 56. 采用重载函数的目的是()。 A. 实现共享 B. 减少空间 C. 提高速度 D. 使用方便,提高可读性 58. 以下叙述中正确的是( )。 A. 使用#define可以为常量定义一个名字,该名字在程序中可以再赋另外的值 B. 使用const定义的常量,其值在程序运行时是不可改变的 C. 在程序中使用内联函数使程序的可读性变差 D. 在定义函数时可以在形参表的任何位置给出缺省形参值 70. 用new运算符创建一个含10个元素的一维整型数组的正确语句是( )。 A. int *p=new a[10]; B. int *p=new float[10];

《面向对象程序设计C 》期末考试试卷

《面向对象程序设计C++》期末考试试卷 一、选择题(每小题3分,共48分。) 01、下列关于C++函数的叙述中,正确的是( C )。 A)每个函数至少要具有一个参数B)每个函数都必须返回一个值 C)函数在被调用之前必须先声明D)函数不能自己调用自己 02、下列关于类和对象的叙述中,错误的是( A )。 A)一个类只能有一个对象B)对象是类的具体实例 C)类是对某一类对象的抽象D)类和对象的关系是一种数据类型与变量的关系 03、在C++中,用于实现运行时多态性的是( D )。 A)内联函数B)重载函数C)模板函数D)虚函数 04、下列关于运算符重载的叙述中,正确的是( B )。 A)通过运算符重载,可以定义新的运算符B)有的运算符只能作为成员函数重载 C)若重载运算符+,则相应的运算符函数名是+ D)重载二元运算符时,必须声明两个形参 05、对于语句cout<

C面向对象程序设计重点复习

面向对象程序设计复习题 一、单项选择题 1.下面关于对象概念的描述中,_______是错误的。(B) A.对象代表着正在创建的系统中的一个实体 B.对象就是C语言中的结构体变量 C.对象是一个状态和操作(或方法)的封装体 D.对象之间的信息传递是通过消息进行的 2. 继承机制的作用是:(C) A.信息隐藏B.数据封装C.定义新类D.数据抽象 3.有关析构函数的说法不正确的是_________(D) A.析构函数有且只有一个 B.析构函数无任何函数类型 C.析构函数没有形参 D.析构函数不能是虚函数 4.友元的作用之一是__________(A) A.提高程序的运行效率 B.加强类的封装性 C.实现数据的隐藏性 D.增加成员函数的种类 5.通常拷贝构造函数的参数是__________。(C) A.某个对象名 B.某个对象的成员名 C.某个对象的引用名 D.某个对象的指针名 6.如果在基类中将show声明为不带返回值的纯虚函数,正确的写法是________。(C) A.virtual show()=0; B.virtual void show(); C.virtual void show()=0; D.void show=0 virtual; 7.下面关于友元的描述中,错误的是_________。(D) A.友元函数可以访问该类的私有数据成员 B.一个类的友元类中的成员函数都是这个类的友元函数 C.友元可以提高程序的运行效率 D.类与类之间的友元关系可以继承 8.在C++中,_________运算符不能重载。(B) A. + B.?: C.- D.<= 9.下列关于运算符重载的描述中,________是正确的。(D) A.运算符重载可以改变操作数的个数 B.运算符重载可以改变优先级 C.运算符重载可以改变结合性 D.运算符重载不可以改变语法结构

面向对象程序设计C期末试卷及标准答案B样本

《面向对象程序设计C++》期末考试试卷( B) 班级: 姓名: 学号: 分数: 试卷说明: 本套试题共四个大题, 全部题目都答在答题纸上, 写在其它地方均无效。 ( 答题纸在本套试卷的第8页上) 一、单项选择题( 每小题2分, 共40分) 1、关于C++与C语言关系的描述中, ( D ) 是错误的。 A.C语言是C++语言的一个子集 B.C语言与C++语言是兼容的 C.C++语言对C语言进行了一些改进 D.C++语言和C语言都是面向对象的 2、已知: int m=10; 下列表示引用的方法中, ( A ) 是正确的。 A.int &x=m; B.int &y=10; C.int &z; D.float &t=&m; 3、考虑下面的函数原型声明: void testDefaulParam(int a,int b=7,char z='*');下面函数调用中, 不合法的是( C ) 。 A.testDefaulParam(5); B.testDefaulParam(5,8); C.testDefaulParam(5,'#'); D.testDefaulParam(0,0,'*'); 4、系统在调用重载函数时往往根据一些条件确定哪个重载函数被调用, 在下列选项中, 不能作为依据的是( A ) 。 A.函数的返回值类型 B.参数的类型 C.函数名称 D.参数个数 5、下列有关C++类的说法中, 不正确的是( D ) 。 A.类是一种用户自定义的数据类型 B.只有类中的成员函数或类的友元函数才能存取类中的私有成员 C.在类中, 如果不做特别说明, 所有成员的访问权限均为私有的

D.在类中, 如果不做特别说明, 所有成员的访问权限均为公用的 6、已知X类, 则当程序执行到语句X array[3];时, 调用了( D ) 次构造函数。 A.0 B.1 C.2 D.3 7、有关析构函数的说法, 不正确的是( B ) 。 A.析构函数有且仅有一个 B.析构函数和构造函数一样能够有形参 C.析构函数的功能是在系统释放对象之前作一些内存清理工作 D.析构函数无任何函数类型 8、类定义的内容允许被其对象无限制地存取的是( C ) 。 A.private 部分 B. protected 部分 C.public 部分 D.以上都不对9、关于常数据成员的说法, 不正确的是( D ) 。 A.常数据成员的定义形式与一般常变量的定义形式相同, 只不过常数据成员的定义必须出现在类体中 B.常数据成员必须进行初始化, 而且不能被更新 C.常数据成员经过构造函数的成员初始化列表进行初始化 D.常数据成员能够在定义时直接初始化 10、运用运算符delete删除一个动态对象时( C ) 。 A.系统首先为该动态对象调用构造函数, 再释放其占用的内存 B.系统首先释放该动态对象占用的内存, 再为其调用构造函数 C.系统首先为该动态对象调用析构函数, 再释放其占用的内存 D.系统首先释放动态对象占用的内存, 再为其调用析构函数 11、能够在类外用p.a的形式访问派生类对象p的基类成员a, 其中a是( D ) 。 A.私有继承的公用成员 B.公用继承的私有成员 C.公用继承的保护成员 D.公用继承的公用成员

c面向对象复习题答案版

c面向对象复习题答案 版 Standardization of sany group #QS8QHH-HHGX8Q8-GNHHJ8-HHMHGN#

一、填空题 ++中有两种数据类型:( char )和( int long )可以使用signed修饰符。 在C++中,用数组、指针、和( 引用 )作为函数参数,能够将参数值带回。 2.为了降低函数调用的时间开销,建议将小的调用频繁的函数定义为(内联函数),方法是在函数类型前加上(inline)关键字。 3.面向对象的程序设计有四大特征,它们是抽象、封装、( 继承 )、( 多态 )。 4.拷贝构造函数是在用一个对象初始化另一个对象时被调用,系统缺省的拷贝构造函数的工作方法是( 把对象的每个数据成员的值都复制到新建立的对象中)。 5.用new申请某一个类的动态对象数组时,在该类中必须能够匹配到(该类的)构造函数,否则应用程序会产生一个编译错误。 6.静态数据成员必须在类外进行初始化,且静态数据成员的一个拷贝被类的所有对象( 共享 )。 7.在C++中,定义重载函数时,应至少使重载函数的参数个数或参数类型( 不同 )。 8.在C++中,虽然友元提供了类之间数据进行访问的一种方式,但它破坏了面向对象程序设计的( 封装 )特性。 9.预编译指令由三种,它们是:文件包含、( 宏定义 )和( 条件编译 )。 10.静态的成员函数没有隐含的( this ),所以,它们只能直接访问类的静态的数据成员。 11.在C++中,函数的参数有两种传递方式,它们是值传递和( 地址 )。 12.当非静态成员函数被调用时,该成员函数的( this )指向调用它的对象。 13.拷贝构造函数使用( 引用 )作为参数初始化创建中的对象。 14.在公有继承的情况下,基类数据成员在派生类中的访问权限( 不变 )。 15.在C++中,构造派生类对象时,总是先从( 基类 )的初始化开始的。 16.当需要统计程序中某个类创建对象的个数时,需要给该类定义(静态数据)成员。 17.在多个类之间有重复继承时,为避免被重复继承的基类数据成员在内存中有多个拷贝,应将该基类定义为(虚基类)。 18.在C++类中,有一种不能定义对象的类,这样的类只能被继承,称之为( 抽象类 ),定义该类至少具有一个( 纯虚函数 )。 19.在C++中构造一个对象时,其数据成员在构造函数中初始化。对于内嵌的对象、( 常量 )、( 引用 )数据成员需要在构造函数的成员初始化列表中初始化。 20.在类的定义中,说明为protected的数据成员称为保护成员。保护数据成员具有双重作用:对于其派生类而言,( 可以访问 );而对于其外部的程序而言,( 不可以访 问 )。 21.控制格式输出的 操纵符中,(setprecision)是设置数据精度的,( hex)是设置十六进制的。 22.如果s是int型变量,且s=6,则下面s%2+(s+1)%2表达式的值为__0_ _。

面向对象程序设计期末综合练习一(单选题)总结

面向对象程序设计期末综合练习一(单选题) 单选题 1. C++源程序文件的缺省扩展名为( )。 A. cpp B. exe C. obj D. lik 2. 由C++源程序文件编译而成的目标文件的缺省扩展名为( )。 A. cpp B. exe C. obj D. lik 3. 由C++目标文件连接而成的可执行文件的缺省扩展名为( )。 A. cpp B. exe C. obj D. lik 7. 程序中主函数的名字为()。 A. main B. MAIN C. Main D. 任意标识符 8. C++程序的基本模块为()。 A. 表达式 B. 标识符 C. 语句 D. 函数 9. 可用作C++语言用户标识符的一组标识符是( )。 A. void define +WORD B. a3_b3 _123 YN C. for -abc Case D. 2a DO sizeof 38. 以下说法中正确的是()。 A. C++程序总是从第一个定义的函数开始执行 B. C++程序总是从main函数开始执行 C. C++函数必须有返回值,否则不能使用函数 D. C++程序中有调用关系的所有函数必须放在同一个程序文件中 39. 以下叙述中不正确的是()。 A. 在一个函数中,可以有多条return语句 B. 函数的定义不能嵌套,但函数的调用可以嵌套 C. 函数必须有返回值 D. 不同的函数中可以使用相同名字的变量 40. 函数重载是指()。 A. 两个或两个以上的函数取相同的函数名,但形参的个数或类型不同 B. 两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同 C. 两个以上的函数名字不同,但形参的个数或类型相同 D. 两个以上的函数取相同的函数名,并且函数的返回类型相同 41. 以下关于函数模板叙述正确的是()。 A. 函数模板也是一个具体类型的函数 B. 函数模板的类型参数与函数的参数是同一个概念 C. 通过使用不同的类型参数,函数模板可以生成不同类型的函数 D. 用函数模板定义的函数没有类型 42. 下列()的调用方式是引用调用。 A. 形参和实参都是变量 B.形参是指针,实参是地址值

《面向对象程序设计JAVA语言程序设计》期末考试试题及部分答案

一、单选题 1.在下列概念中,Java语言只保留了D A.运算符重载B.结构和联合C.指针D.方法重载 2.下列类定义中,不正确的是B A.class x { .... } B.static class x implements y1,y2 { .... } C.public class x extends Applet { .... } D.class x extends y { .... } 3.下列语句序列执行后,k 的值是B int m=3, n=6, k=0; while( (m++) < (- - n) ) ++k; i++ 先把i的初值赋给表达式(i++),作为表达式(i++)的值,然后i自增 1作为i的值。 如i=1,则表达式(i++)的值等于1,而i的值变为2。 ++i i先自增1,再把自增后的值赋给表达式(++i)。 如i=1,则表达式(++i)的值等于2,i的值也为2, A.0 B.1 C.2 D.3 4.设i、j为int型变量名,a为int型数组名,以下选项中,正确的赋值语句是A A.a[0] = 7; B.i = i + 2 C.i++ - --j; D.a(0) = 66; 5.Java语言的类间的继承关系是B A.多重的B.单重的C.线程的D.不能继承 6.下列语句序列执行后,k 的值是C int i=10, j=18, k=30; switch( j - i ) { case 8 : k++; case 9 : k+=2; case 10: k+=3; default : k/=j; } A.31 B.3 C.2 D.33 7.设有定义float x=3.5f, y=4.6f, z=5.7f;则以下的表达式中,值为true的是C A.x > y || x > z B.z > ( y + x ) C.x != y D.x < y & ! ( x < z )

c面向对象复习题答案版

一、填空题 ++中有两种数据类型:( char )和( int long )可以使用signed修饰符。在C++中,用数组、指针、和( 引用 )作为函数参数,能够将参数值带回。 2.为了降低函数调用的时间开销,建议将小的调用频繁的函数定义为(内联函数),方法是在函数类型前加上(inline)关键字。 3.面向对象的程序设计有四大特征,它们是抽象、封装、( 继承 )、( 多态 )。 4.拷贝构造函数是在用一个对象初始化另一个对象时被调用,系统缺省的拷贝构造函数的工作方法是( 把对象的每个数据成员的值都复制到新建立的对象中)。 5.用new申请某一个类的动态对象数组时,在该类中必须能够匹配到(该类的)构造函数,否则应用程序会产生一个编译错误。 6.静态数据成员必须在类外进行初始化,且静态数据成员的一个拷贝被类的所有对象( 共享 )。 7.在C++中,定义重载函数时,应至少使重载函数的参数个数或参数类型( 不同 )。 8.在C++中,虽然友元提供了类之间数据进行访问的一种方式,但它破坏了面向对象程序设计的( 封装 )特性。 9.预编译指令由三种,它们是:文件包含、( 宏定义 )和( 条件编译 )。 10.静态的成员函数没有隐含的( this ),所以,它们只能直接访问类的静态的数据成员。 11.在C++中,函数的参数有两种传递方式,它们是值传递和( 地址 )。 12.当非静态成员函数被调用时,该成员函数的( this )指向调用它的对象。 13.拷贝构造函数使用( 引用 )作为参数初始化创建中的对象。 14.在公有继承的情况下,基类数据成员在派生类中的访问权限( 不变 )。 15.在C++中,构造派生类对象时,总是先从( 基类 )的初始化开始的。 16.当需要统计程序中某个类创建对象的个数时,需要给该类定义(静态数据)成员。 17.在多个类之间有重复继承时,为避免被重复继承的基类数据成员在内存中有多个拷贝,应将该基类定义为(虚基类)。 18.在C++类中,有一种不能定义对象的类,这样的类只能被继承,称之为( 抽象类 ),定义该类至少具有一个( 纯虚函数 )。 19.在C++中构造一个对象时,其数据成员在构造函数中初始化。对于内嵌的对象、( 常量 )、( 引用 )数据成员需要在构造函数的成员初始化列表中初始化。 20.在类的定义中,说明为protected的数据成员称为保护成员。保护数据成员具有双重作用:对于其派生类而言,( 可以访问 );而对于其外部的程序而言,( 不可以访问 )。 21.控制格式输出的 操纵符中,(setprecision)是设置数据精度的,( hex)是设置十六进制

c面向对象程序设计期末考试题及完整参考答案

学院2011/2012 学年第一学期面向对象程序设计期末考试试题卷(A) 考试时间:120分钟 一、填空题(每空1分,共20分) 1.客观世界中的事物都是对象。对象具有自己的______,用来描述对象的静态特征;而对象的______用于描述对 象的动态特征。 2.在面向对象的模型中,对象之间的关系可在类级别上概述为聚合、______、______和一般关联等四种。其中基 类和派生类之间的关系属于______关系。 3.C#程序的基本结构包括注释、______、______、______和类型及其成员等五部分。 4.数据类型是对客观数据对象的抽象,C#语言中的数据类型分为引用类型和______两大类。其中引用类型包括 ______、______、______和数组等。 5.方法是最基本的函数成员,对象所能执行的操作都是通过方法来定义的。方法应该包括返回类型、______、 ______和执行体等4个部分。 6.类的______函数名称与类名相同,且不能声明返回类型,其代码主要完成对象的初始化工作。 7.类索引函数的参数类型必须为______或______。 8.类对接口方法的实现时,在方法名称之前加上接口名,这叫做对接口方法的______实现,此时这个方法是这个 类的______成员,不能通过类的实例来访问。 9.作为一种特殊的函数成员,重载类的操作符时,被重载的操作符必须被声明为公有的和______,并通过在关键 字operator后跟操作符来声明。 二、判断题(每小题1分,共5分) 1.一个类只能有一个析构函数,且不能有参数和返回类型,也不能是静态的。() 2.类的静态构造函数为类的所有对象共享,并且只在首次使用该类时被调用。() 3.派生类可以继承基类的所有成员,并增加自己的成员进行功能扩张。() 4.接口方法不能是静态的,也不能使用任何访问限制修饰符。() 5.如果一个类被声明为抽象的,则它的派生类不可以被声明为抽象类。() 三、选择题(每小题2分,共10分) 1.在设计一个类时,如果不希望外部对象访问该类成员,应定义为()。 A) 私有的或保护的B) 公有的C) 保护的或者共有的D)公有的或者私有的 2.在类中未说明访问权限的情况下,所有成员都是()的 A) 共有的B) 私有的C) 内部的D) 保护的 3.关于数组型参数下面那个说法是错误的() A) 方法中只允许定义一个数组型参数; B) 数组型参数所定义的数组必须是一维数组; C) 数组型参数可以作为引用参数或者输出型参数使用; D) 数组型参数必须位于参数列表中的最后; 4.有如下程序片段: class Student { public virtual string WhoYouAre(){ return "I am a Student."; } } class PostStudent:Student { public new string WhoYouAre(){ return "I am a PostStudent."; } } static void Main(){ Student st = new PostStudent(); Console.WriteLine(st.WhoYouAre()); } 则正确的执行结果是()。 A) I am a Student.B) I am a PostStudent.C) st.WhoYouAre()D)异常退出 5.已知st是类Student的一个实例,read()是Student类的一个静态成员。如果要访问Student的read()成员, 则下列()表达式是正确的。 A)st.read() B)st::read() C)Student.read() D)Student::read() 四、简答题(每小题5分,共15分) 1.在面向对象的模型中,什么是类的多态性?C#是如何实现类的多态特性的?

《面向对象程序设计c++》期末复习题

《面向对象程序设计》期末复习题

一、单选题 1.能作为C++程序的基本单位是(c )。 A. 字符B.语句 C. 函数 D. 源程序文件 2.存储以下数据,占用存储字节最多的是( d)。 A. 0 B. ‘0’ C. “0” D. 0.0 3.设”int a=15,b=26;”,则”cout<<(a,b);”的输出结果是( d)。 A. 15 B. 26,15 C.15,26 D. 26 4.下列的符号常量定义中,错误的定义是(c )。 A. const M=10; B. const int M=20; C. const char ch; D. const bool mark=true; 5.函数重载是指(a )。 A. 两个或两个以上的函数取相同的函数名,但形参的个数或类型不同 B.两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同 C. 两个以上的函数名字不同,但形参的个数或类型相同 D. 两个以上的函数取相同的函数名,并且函数的返回类型相同 6.以下关于函数模板叙述正确的是(c )。 A.函数模板也是一个具体类型的函数 B. 函数模板的类型参数与函数的参数是同一个概念 C.通过使用不同的类型参数,函数模板可以生成不同类型的函数 D. 用函数模板定义的函数没有类型 7.42. 下列( c )的调用方式是引用调用。 A.形参和实参都是变量 B.形参是指针,实参是地址值 C. 形参是引用,实参是变量D.形参是变量,实参是地址值 8. 43. 为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应选择 ( a )。 A.内联函数 B.重载函数 C.递归函数D.函数模板 9. 56. 采用重载函数的目的是( d )。 A. 实现共享B. 减少空间 C. 提高速度D. 使用方便,提高可读性 10. 58. 以下叙述中正确的是(b)。 A. 使用#define可以为常量定义一个名字,该名字在程序中可以再赋另外的值 B. 使用const定义的常量名有类型之分,其值在程序运行时是不可改变的 C. 在程序中使用内联函数使程序的可读性变差 D. 在定义函数时可以在形参表的任何位置给出缺省形参值 11. 70. 用new运算符创建一个含10个元素的一维整型数组的正确语句是 ( c )。 A.int *p=new a[10]; B. int *p=newfloat[10]; C. int *p=new int[10]; D. int *p=new int[10]={1,2,3,4,5} 12.71. 下列给字符数组赋初值时,正确的是( a)。 A. char s1[]=”abcdef”; B. char s2[4]=”abcd”; C. char s3[2][3]={“abc”,”xyz”}; D. chars4[4][]={‘a’,’x’,’s’,’t’};

《面向对象程序设计C 》期末考试考题

封面

作者:PanHongliang 仅供个人学习 《面向对象程序设计C++》期末考试试卷 一、选择题(每小题3分,共48分.) 01、下列关于C++函数地叙述中,正确地是( c ). A)每个函数至少要具有一个参数 B)每个函数都必须返回一个值 C)函数在被调用之前必须先声明 D)函数不能自己调用自己 02、下列关于类和对象地叙述中,错误地是( a ). A)一个类只能有一个对象B)对象是类地具体实例

C)类是对某一类对象地抽象D)类和对象地关系是一种数据类型与变量地关系 03、在C++中,用于实现运行时多态性地是( d ). A)内联函数 B)重载函数 C)模板函数 D)虚函数 04、下列关于运算符重载地叙述中,正确地是( b ). A)通过运算符重载,可以定义新地运算符B)有地运算符只能作为成员函数重载 C)若重载运算符+,则相应地运算符函数名是+ D)重载二元运算符时,必须声明两个形参 06、有如下类声明,则类MyDERIVED中保护地数据成员和成员函数地个数是(b ). class MyBASE { private: int k。 public: void set(int n){ k=n。} int get( )const{ return k。}}。 class MyDERIVED: protected MyBASE { protected: int j。 public: void set(int m, int n){ MyBASE::set(m)。 j=n。} int get( )const{ return MyBASE::get( )+j。 } }。 A)4 B)3 C)2 D)1 07、已知在一个类体中包含如下函数原型: Volume operator-(Volume)const。,下列关于这个函数地叙述中,错误地是( b ). A)这是运算符-地重载运算符函数B)这个函数所重载地运算符是一个一元运算符 C)这是一个成员函数D)这个函数不改变类地任何数据成员地值 08( a ). cout.fill('*')。 cout.width(6)。 cout.fill('#')。 cout << 123 << endl。 A)###123 B)123### C)***123 D)123*** 09、在下列函数原型中,可以作为类AA构造函数地是( d ). A)void AA(int)。 B)int AA()。 C)AA(int)const。 D)AA(int)。 10、下面四个选项中,( a)是用来声明虚函数地. A)virtual B)public C)include D)using namespace 11、实现运行时地多态性要使用( d ). A)重载函数 B)构造函数 C)析构函数 D)虚函数 12、要实现动态联编,必须通过( a )调用虚函数. A)对象指针B)成员名限定C)对象名 D)派生类名 13、以下( c )成员函数表示纯虚函数. A)virtual int vf(int)。 B)void vf(int)=0。 C)virtual void vf()=0。 D)virtual void vf(int){} 14、有如下类声明:class XA { private: int x。 public: XA(int n){ x=n。} }。 class XB: public XA { private: int y。 public: XB(int a,int b)。 }。 在构造函数XB地下列定义中,正确地是( b ). A)XB::XB(int a,int b): x(a),y(b){ }B)XB::XB(int a,int b): XA(a),y(b){ } C)XB::XB(int a,int b): x(a),XB(b){ } D)XB::XB(int a,int b): XA(a),XB(b){ } 15、在表达式 x+y*z中, + 是作为成员函数重载地运算符,* 是作为非成员函数重载地运算符.则 operator+ 有个参数,operator* 有参数.( c ) A)2、2 B)2、1 C)1、2 D)1、1 16、应在下列程序划线处填入地正确语句是( c ). class Base { public: void fun(){cout<<"Base::fun"<fun()。 二、填空题(每空2分,共20分.) 17、面向对象程序设计有四个主要特点,即抽象、封装、____和____. 18、非成员函数应声明为类地____函数才能访问这个类地private成员. 19、派生类中地成员不能直接访问基类中地____成员. 20、在用class定义一个类时,数据成员和成员函数地默认访问权限是____. 21、运算符重载函数可能是类地____函数,也可以是类地____函数,还可以是普通函数. 22、用流对象地成员函数控制输出格式时,用于设置字段宽度地流成员函数地名称是____,与之作用相同地控制符名称是____.

《面向对象程序设计C--》期末试卷及标准答案(B)

《面向对象程序设计C--》期末试卷及标准答案(B)

《面向对象程序设计C++》期末考试试卷(B) 班级:姓名:学号:分数:题号一二三四总分 得分 试卷说明:本套试题共四个大题,全部题目都答在答题纸上,写在其他地方均无效。 (答题纸在本套试卷的第8页上) 一、单项选择题(每小题2分,共40分) 1、关于C++与C语言关系的描述中,( D )是错误的。 A.C语言是C++语言的一个子集B.C语言与C++语言是兼容的 C.C++语言对C语言进行了一些改进D.C++语言和C语言都是面向对象的2、已知:int m=10; 下列表示引用的方法中,( A )是正确的。 A.int &x=m; B.int &y=10; C.int &z; D.float &t=&m; 3、考虑下面的函数原型声明:void testDefaulParam(int a,int b=7,char z='*'); 下面函数调用中,不合法的是( C )。 A.testDefaulParam(5); B.testDefaulParam(5,8); C.testDefaulParam(5,'#'); D.testDefaulParam(0,0,'*'); 4、系统在调用重载函数时往往根据一些条件确定哪个重载函数被调用,在下列选项中,不能作为依据的是(A )。 A.函数的返回值类型B.参数的类型C.函数名称D.参数个数5、下列有关C++类的说法中,不正确的是( D )。 A.类是一种用户自定义的数据类型 B.只有类中的成员函数或类的友元函数才能存取类中的私有成员 C.在类中,如果不做特别说明,所有成员的访问权限均为私有的 D.在类中,如果不做特别说明,所有成员的访问权限均为公用的 6、已知X类,则当程序执行到语句X array[3];时,调用了( D )次构造函数。 第 2 页

《面向对象程序设计C 》期末试卷(A)

《面向对象程序设计C++》期末考试试卷(A)班级:姓名:学号:分数: 试卷说明:本套试题共四个大题,全部题目都答在答题纸上,写在其他地方均无效。 (答题纸在本套试卷的第10页上) 一、选择题(每小题2分,共40分) 1、C++是()。1-5.C D B C C A.面向对象的程序设计语言 B.面向过程的程序设计语言 C.既支持面向对象的程序设计又支持面向过程的程序设计的混合型语言 D.非结构化的程序设计语言 2、面向对象程序设计思想的主要特征中不包括()。 A.封装性 B.多态性 C.继承性 D.功能分解,逐步求精 3、若定义:string str; 当语句cin>>str;执行时,从键盘输入: Microsoft Visual Studio 6.0! 所得的结果是str=()。 A.Microsoft Visual Studio 6.0! B.Microsoft C.Microsoft Visual D.Microsoft Visual Studio 6.0 4、考虑下面的函数原型声明:void testDefaulParam(int a,int b=7,char z='*'); 下面函数调用中,不合法的是()。 A.testDefaulParam(5); B.testDefaulParam(5,8); C.testDefaulParam(5,'#'); D.testDefaulParam(0,0,'*'); 5、下列语句中,将函数int sum(int x, int y)正确重载的是()。 A. float sum(int x, int y); B. int sum(int a, int b); C. float sum(float x, float y); D. double sum(inty,int x); 6、下列表示引用的方法中,()是正确的。6-10.A A D D B

2011面向对象C++期末复习习题练习

2011面向对象C++期末复习习题练习 一、选择题 ( D ) 1、C++对C语言作了很多改进,下列描述中使得C语言发生了质变。 A、增加一些新的运算符 B、允许函数重载,并设置默认参数 C、规定函数说明必须用原形 D、引进了类和对象的概念 ( D ) 2、下列关于指针的运算中,是非法的。 A、在一定条件下,可以进行相等或不相等的运算 B、可以用一个空指针赋值给某一个指针 C、一个指针可以加上两个整数之差 D、两个指针在一定条件下可以相加 ( A ) 3、下列for循环的循环体的执行次数为__________。 for(int i(0),j(10);i=j=0;i++,j--); A、0 B、1 C、10 D、无限 ( D ) 4、在函数说明时,下列项不是必要的。 A、函数的类型 B、函数参数类型和名字 C、函数名字 D、返回值表达式 ( A ) 5、友元的作用是 A、提高程序的效率 B、加强类的封装 C、实现数据的隐藏性 D、增加成员函数的种类 ( C ) 6、下列运算符中不能重载的是 A、&& B、[] C、:: D、new ( C ) 7、关于虚函数的描述中,是正确的。 A、虚函数是一个static类型的成员函数 B、虚函数一个非成员函数 C、基类中说明了虚函数后,派生类中与其对应的函数可以不必说明为虚函数

D、派生类的虚函数与基类的虚函数具有不同的参数个数和类型 ( C ) 8、抽象类是指 A、没有实现的类 B、含有虚函数的类 C、含有纯虚函数的类 D、以上都不是( B ) 9、动态释放内存的运算符为: A、new B、delete C、malloc D、free ( D ) 10、以下声明正确的为 A、double area(double a=2.6,double b); B、double area(double =2.6,double b,double =4); C、double area(double a, double b=3.0,double c); D、double area(double a,double b=3,double c=4); ( D ) 11、下列各种高级语言中,不是面向对象的程序设计语言是( )。 A.C++ B.Java C.https://www.doczj.com/doc/2510216624.html, D.C ( B ) 12、下列关于定义一个指向double型变量的指针,正确的是()。 A.int a(5);double *pd=&a;B.double d(2.5),*pd=&d; C.double d(2.5),*pd=d;D.double a(2.5),pd=&a;; ( C ) 13、下列变量名中,非法的是( )。 A.A25 B.My_car C.My-str D.abc ( C ) 14、下列关于常成员的描述中,错误的是( )。 A.常成员是用关键字const说明的 B.常成员有常数据成员和常成员函数两种 C.常数据成员的初始化是在类体内定义它时进行的 D.常数据成员的值是不可以改变的 ( A ) 15、已知:int a(5),&ra=a;下列描述中,错误的是( )。 A.ra是变量a的引用,即为变量的别名B.ra的值为5 C.ra的地址值为&a D.改变ra的值为10,变 量a值仍为5 ( D ) 16、下列关于运算符new的描述中,错误的是( )。 A.它可以创建对象或变量 B.它可以创建对 象数组或一般类型数组 C.用它创建对象或对象数组时要调用相应的构造函数 D.用它创建的对

大学计算机C面向对象技术复习题汇总含答案

面向对象程序设计C++ 复习资料与答案 第一、二、六、七章习题 一、选择题 1、系统约定C++源程序文件名的缺省的扩展名为() A、bcc B、c++ C、cpp D、vcc 2、面向对象的程序设计将数据与()放在一起,作为一个相互依存、不可分割的整体来处理。 A、对数据的操作 B、信息 C、数据隐藏 D、数据抽象 3、当一个函数无返回值时,函数的类型应定义为() A、void B、任意 C、int D、无 4、对于C++的函数,正确的叙述是: A、函数的定义不能嵌套,但函数的调用可以嵌套 B、函数的定义不能嵌套,但函数的调用不能嵌套 C、函数的定义和调用都不能嵌套 D、函数的定义和调用都可以嵌套 5、下列语句中错误的是() A、int *p=new int(10); B、int *p=new int[10] C、int *p=new int; D、int *p=new int[40](0); 6、假设已经有定义:const char *const name=”chen”;,下面的语句中正确的是:() A、name[3]='a'; B、name=”lin”; C、name=new char[5]; D、cout< T max(T x,T y){ return(x>y)?x:y;} 并定义了int i;char c;错误的调用语句是:() A、max(i,i) B、max(c,c) C、max((int)c,i); D、max(i,c) 11、模板的使用是为了() A、提高代码的可重用性 B、提高代码的运行效率 C、加强类的封装性 D、实现多态性 12、设有二个语句:int x[‘a'];cin>>x;则编译器认为() A、说明语句int x[‘a']错 B、二个语句都错

相关主题
文本预览
相关文档 最新文档