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

合集下载

C++面向对象技术复习题汇总(含答案)

C++面向对象技术复习题汇总(含答案)

C++面向对象技术复习题汇总(含答案)面向对象程序设计C++复习资料与答案第一、二、六、七章习题一、选择题1、系统约定C++源程序文件名的缺省的扩展名为()A、bccB、c++C、cppD、vcc2、面向对象的程序设计将数据与()放在一起,作为一个相互依存、不可分割的整体来处理。

A、对数据的操作B、信息C、数据隐藏D、数据抽象3、当一个函数无返回值时,函数的类型应定义为()A、voidB、任意C、intD、无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<<name[3];< bdsfid="94" p=""></name[3];<>7、假设已经定义:char *const name=”chen”;, 下面的语句中正确的是:()A、name[3]=’q’; B、name=”lin”;C、name=new char[5]; D、name=new char(‘q’);8、假设已经定义:const char *name=”chen”;, 下面的语句中错误的是:()A、name[3]=’q’; B、name=”lin”;C、name=new char[5]; D、name=new char(‘q’);9、下面的类型声明中正确的是:( )A、int &a[4];B、int &*p;C、int &&qD、int i,*p=&i;10、假设定义了函数模板()templateT 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、二个语句都错C、语句cin>>x 错D、二个语句正确,没有语法错13、设有语句:void f(int a[10],int &x);int y[10],*py=y,n;则对函数f的正确调用语句是( )A、f(py[10],n);B、f(py,n)C、f(*py,&n)D、f(py,&n)14、在C++中实现封装是借助于()A、枚举B、类C、数组D、函数15、对于下面几个函数:(1) void f(int x,float y) {…… }(2) int f(int a,float b){…… }(3) int f(int i,int j){…… }(4) float k(int x){…… }是重载函数。

《面向对象程序设计c》综合复习题集及答案详解

《面向对象程序设计c》综合复习题集及答案详解

《面向对象程序设计c》综合复习题集及答案详解综合复习题集一、单选题1.C++源程序文件的缺省扩展名为(A)。

A.cppB.e某eC.objD.lik2.由C++源程序文件编译而成的目标文件的缺省扩展名为(C)。

A.cppB.e某eC.objD.lik3.由C++目标文件连接而成的可执行文件的缺省扩展名为(B)。

A.cppB.e某eC.objD.lik4.编写C++程序一般需经过的几个步骤依次是()。

A.编译、编辑、连接、调试B.编辑、编译、连接、调试C.编译、调试、编辑、连接D.编辑、调试、编辑、连接5.以下标识符中不全是保留字的是()。

A.caeforintB.defaultthenwhileC.boolclalongD.gotoreturnchar6.能作为C++程序的基本单位是()。

A.字符B.语句C.函数D.源程序文件7.程序中主函数的名字为()。

A.mainB.MAINC.MainD.任意标识符8.C++程序的基本模块为()。

A.表达式B.标识符C.语句D.函数9.可用作C++语言用户标识符的一组标识符是()。

A.voiddefine+WORDB.a3_b3_123YNC.for-abcCaeD.2aDOizeof10.存储以下数据,占用存储字节最多的是()。

A.0B.‘0’C.“0”D.0.011.程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用()符号作为分隔符。

A.空格或逗号B.逗号或回车C.逗号或分号D.空格或回车12.设”inta=12;”,则执行完语句”a+=a某a;”后,a的值是()。

A.12B.144C.156D.28813.假设在程序中a、b、c均被定义成整型,所赋的值都大于1,则下列能正确表示代数式1/abc的表达式是()。

A.1.0/a某b某cB.1/(a某b 某c)C.1/a/b/(float)cD.1.0/a/b/c14.设”inta=15,b=26;”,则”cout<A.15B.26,15C.15,26D.2615.设某是一个bool型的逻辑量,y的值为10,则表达式某&&y的值为()。

c面向对象考试题及答案

c面向对象考试题及答案

c面向对象考试题及答案一、选择题(每题2分,共10分)1. 在C++中,以下哪个关键字用于定义类的成员函数?A. staticB. virtualC. friendD. public答案:B2. 以下哪个选项不是C++中的访问修饰符?A. privateB. protectedC. publicD. global答案:D3. 在C++中,哪个关键字用于创建类的实例?A. classB. newC. structD. enum答案:B4. C++中的继承默认使用的是哪种继承方式?A. 公有继承B. 私有继承C. 保护继承D. 无继承答案:A5. 以下哪个不是C++中的多态性实现方式?A. 函数重载B. 函数覆盖C. 运算符重载D. 模板答案:D二、填空题(每题2分,共10分)1. 在C++中,类的构造函数可以有参数,也可以没有参数,没有参数的构造函数称为_________构造函数。

答案:默认2. C++中,析构函数的名称是在类名前加上一个_________符号。

答案:~3. 当一个类的对象被销毁时,会自动调用该对象的_________函数。

答案:析构4. 在C++中,如果一个类继承自另一个类,那么被继承的类称为_________类。

答案:基类5. C++中,如果一个类继承自多个类,这种继承方式称为_________继承。

答案:多重三、简答题(每题5分,共20分)1. 简述C++中类的封装性。

答案:类的封装性是指将数据(属性)和行为(方法)捆绑在一起,并对外部隐藏其内部实现细节,只提供有限的接口与外部交互。

2. 描述C++中类的继承机制及其作用。

答案:C++中的继承机制允许一个类(派生类)继承另一个类(基类)的属性和方法,从而实现代码的重用和扩展。

继承可以是公有的、保护的或私有的,分别对应不同的访问权限。

3. 解释C++中的多态性及其应用场景。

答案:多态性是指允许不同类的对象对同一消息做出响应的能力,即同一个接口可以被不同的实例以不同的方式实现。

C++面向对象程序设计复习练习试题带答案(1)

C++面向对象程序设计复习练习试题带答案(1)

C++面向对象程序设计模拟试题一一、单项选择题(本大题共10小题,每小题2分,共201.说明虚函数的关键字是()。

A. inlinevirtual C. define D. static2.在每个C++程序中都必须包含有这样一个函数,该函数的函数名为()。

A. mainB. MAINC. nameD. function 3.cout是某个类的标准对象的引用,该类是()。

A. ostream B. istream C. stdout D. stdin4.如果在类外有函数调用CPoint::func();则函数func()是类CPoint的()。

A. 私有静态成员函数B. 公有非静态成员函数C. 公有静态成员函数 B. 友元函数5. 如果class类中的所有成员在定义时都没有使用关键字public、private或protected,则所有成员缺省定义为()。

A. publicB. protectedC. private D.static6.一个类的所有对象共享的是()。

A. 私有数据成员 B. 公有数据成员 C. 保护数据成员 D. 静态数据成员7.动态联编所支持的多态性称为()。

A. 虚函数 B. 继承C. 编译时多态性D. 运行时多态性8.定义类模板时要使用关键字()。

A. const B. newC. deleteD. template9.对虚基类的定义()。

A. 不需要使用虚函数 B. 必须使用虚函数C. 必须使用privatD. 必须使用public10.类型转换函数()。

A. 不能带有参数 B. 只能带一个参数 C. 只能带2个参数D. 只能带3个参数二、判断正误题(本大题共6小题,每小题2分,共12分)1.虚函数在基类和派生类之间定义,且要求函数原型完全一致。

()2.抽象类可以用来直接创建对象。

()3.内联函数中可以出现递归语句。

()4.模板类与类模板的意义完全相同。

()5.常对象只能调用常成员函数。

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

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

c面向对象程序设计期末考试题及答案一、选择题(每题2分,共20分)1. 下列哪个是面向对象程序设计的特点?A. 封装B. 继承C. 多态D. 所有选项都是2. 在Java中,以下哪个关键字用于定义类?A. classB. structC. typeD. classdef3. 以下哪个是Java中不允许的类成员访问修饰符?A. publicB. protectedC. privateD. global4. 以下哪个是Java中实现多态的方式?A. 函数重载B. 函数重写C. 接口D. 抽象类5. 在Java中,哪个关键字用于声明一个方法,该方法没有返回值?A. voidB. returnC. noneD. null6. 以下哪个是Java中创建对象的语法?A. new ClassName();B. create ClassName;C. make ClassName;D. ClassName();7. 在Java中,以下哪个是正确的构造方法声明?A. public ClassName();B. public ClassName new();C. public new ClassName();D. public ClassName create();8. 以下哪个是Java中实现继承的方式?A. 使用extends关键字B. 使用implements关键字C. 使用interface关键字D. 使用new关键字9. 在Java中,以下哪个关键字用于实现接口?A. implementsB. extendsC. interfaceD. class10. 以下哪个是Java中实现封装的方式?A. 使用public关键字B. 使用private关键字C. 使用protected关键字D. 使用default关键字答案:1. D2. A3. D4. B5. A6. A7. A8. A9. A10. B二、简答题(每题10分,共20分)1. 简述面向对象程序设计中的“封装”概念及其重要性。

面向对象期末考试题及答案

面向对象期末考试题及答案

面向对象期末考试题及答案一、选择题(每题2分,共20分)1. 面向对象编程中的三大特性是?A. 封装、继承、多态B. 抽象、继承、封装C. 继承、封装、多态D. 封装、抽象、多态答案:A2. 在Java中,哪个关键字用于定义类?A. classB. structC. typeD. interface答案:A3. 以下哪个不是面向对象设计原则?A. 单一职责原则B. 开闭原则C. 里氏替换原则D. 模块化原则答案:D4. 在面向对象编程中,构造函数的作用是什么?A. 用于创建对象B. 用于销毁对象C. 用于实现继承D. 用于实现多态答案:A5. 以下哪个是Java中的访问修饰符?A. privateB. publicC. protectedD. 全部都是答案:D...(此处省略剩余选择题)二、简答题(每题10分,共30分)1. 简述面向对象编程的基本思想。

答案:面向对象编程是一种编程范式,它将现实世界中的实体抽象成对象,这些对象具有属性和行为。

面向对象编程的基本思想是将数据和处理数据的方法结合在一起,形成对象。

通过对象之间的交互来实现程序的功能。

2. 解释什么是多态性,并给出一个简单的例子。

答案:多态性是指允许不同类的对象对同一消息做出响应,但具体的行为会根据对象的实际类型而有所不同。

例如,在Java中,可以通过重载和重写来实现多态。

假设有一个动物类Animal,它有一个方法makeSound()。

然后有一个子类Dog,它重写了makeSound()方法。

当我们创建一个Dog对象并调用makeSound()时,会执行Dog类中的makeSound()方法,而不是Animal类中的。

3. 什么是封装?封装的好处是什么?答案:封装是将对象的数据(属性)和行为(方法)组合在一起,并隐藏对象的内部细节,只暴露出一个可以被外界访问的接口。

封装的好处包括:保护数据、减少错误、提高代码的重用性、增强模块化。

三、编程题(每题25分,共50分)1. 编写一个Java程序,实现一个简单的银行账户类Account,包含以下特性:- 私有属性:账户余额balance- 公共方法:存款deposit(double amount)、取款withdraw(double amount)、获取余额getBalance()答案:```javapublic class Account {private double balance;public Account() {this.balance = 0;}public void deposit(double amount) {if (amount > 0) {balance += amount;}}public void withdraw(double amount) {if (amount > 0 && balance >= amount) {balance -= amount;}}public double getBalance() {return balance;}}```2. 假设有一个名为Car的类,它有两个属性:品牌brand和颜色color。

C++面向对象程序设计(试题与答案)

C++面向对象程序设计(试题与答案)

模拟试题(1)一、判断对错题(10%)(对√,错×)()1.自动变量用堆方式创建,它与块共存亡。

()2.运算符+=是右结合的。

()3.表达式cout<<99的类型为int。

()4.++i是左值,但i++不是左值。

()5.Y[I][J]与*(*Y+I)+J不等价。

()6.从外部看类的private 成员和protected成员有区别。

()7.运算符&不可以重载。

()8.基类的protected成员经过protected派生,在派生类中它变成了private成员。

()9.2.0/-3.0是一个正确的表达式。

()10.字符'\12'的ASCII为12。

二、填空题(20%)#include <iostream.h>typedef struct node{long data;node * next;};class stack{private:node * head;①__________stack();~stack();void push (②__________);③__________ pop();④__________ print();};stack::stack(){ head = new ⑤__________head->next = ⑥__________ }stack::~stack(){node * p;p = head;while (p){head = head->next;⑦__________p = head;}}void stack::push(long x){node * p = new node;p->data = x;p->next = head->next;⑧__________ = p;cout<<"Push" <<x<<" ok !"<<endl;}long stack::pop(){node *p = head->next;if(p!=NULL){long x = p->data;head->next = p->next;⑨__________cout<<"pop "<<x<<" ok !"<<endl;return x;}elsecout<<"Stack is empty !"<<endl;return 0;}void stack::print(){node * p = head->next;cout<<"Stack_Top"<<endl;while (p){cout<<p->data<<endl;⑩__________;}cout<<"Stack_bottom"<<endl;}三、简答题(20%)(按条列出论点)1.注解。

c面向对象程序设计考试试卷(详细讲解).doc

c面向对象程序设计考试试卷(详细讲解).doc

c面向对象程序设计考试试卷(详细讲解).docC++面向对象程序设计考试试卷(详细讲解)一、单项选择题(共20 题,每题 1 分,共 20 分)1、下列关于 C++标识符的命名不合法的是C与 C#一样A. PadB. name_1C. A#bcD. _a122、若有以下类型标识符定义:() Dint x=2;char w='a';float y=23.45f;double z=45.6712;则表达式 w*x+y-z 的结果类型是A. floatB. charC. intD. double6、对重载函数形参的描述中,错误的是 D 重载是重点A.参数的个数可能不同B.参数的类型可能不同C.参数的顺序可能不同D.参数的个数、类型、顺序都相同,只是函数的返回值类型不同7、以下能正确定义数组并正确赋初值的语句是 DA. int N=5,b[N][N];B. int a[2]={{1},{3},{4},{5}};C. int c[2][]={{1,2},{3,4}};D. int d[3][2]={{1,2},{3,4}};8、下列给字符数组进行的初始化中,不正确的是 DA. char s1[]="abcd";B. char s2[3]={'x','y','\0'};C. char s3[]={'a','x','y','\0'};D. char s4[6]={"xyz","mnp"};9、通常的拷贝构造函数的参数是 CA.某个对象名 B.某个对象成员名C.某个对象的引用D.某个对象的指针名10、关于构造函数特点的描述中,错误的是 AA.定义构造函数必须指出类型(构造函数特点是无返回类型)B.构造函数的名字与该类的类名相同C.一个类中可定义0 至多个构造函数(不写构造函数,系统会自动生成一个空的构造函数)D.构造函数是一种成员函数11、下面程序的运行结果为 C#includeint add(int a,int b);void main(){extern int x,y;cout<<add(x,y)<<endl;< bdsfid="108" p=""></add(x,y)<<endl;<>}int x=20,y=5;int add(int a,int b){int s=a+b;- 1 -return s;}A.20 B.5 C.25 D.编译会提示出错信息12、关于常成员的描述中,错误的是 BA.常成员包含常数据成员和常成员函数两种B.常数据成员必须是公有的C.常数据成员要使用构造函数成员初始化列表进行初始化D.常对象只能调用它的常成员函数,不能调用其它的成员函数13、关于友元函数的描述中,错误的是 BA.友元函数不是成员函数B.友元函数只能访问类中私有成员C.友元函数破坏隐藏性,尽量少用D.友元函数说明在类体内,使用关键字friend14、如果有 int x,*p; float y,*q; 则下面操作正确的是 CA.p=x B.p=qC.p=&x D.p=&y16、若数组名作实参而指针变量作形参,函数调用时实参传给形参的是 DA.数组的长度B.数组第一个元素的值C.数组所有元素的值D.数组第一个元素的地址17、对于动态分配内存空间描述正确的是 DA.使用 new 运算符分配的内存空间的长度必需是常量B.delete 运算符可以释放动态的存储空间和静态的存储空间C.由 new 分配的内存空间是不连续的D.delete 运算符只能释放由new 分配的动态存储空间18、能够释放对象所占资源的是() AA.析构函数 B.数据成员C.构造函数 D.静态成员函数19、虚函数的定义是在基类中进行的,定义时需要冠以关键字 CA.static B.frendC.virtualD.public20、在 C++中串流类是在头文件 strstrea.h 中定义的,下列不属于串流类的是) CA.strstream B.ostrstreamC.ofstream D.istrstream二、填空题(共9 题 16 空,每空 1 分,共 16 分)1、函数重载时,编译系统会根据 __形参的类型 __或__形参的个数__来区分。

c++面向对象复习题答案版

c++面向对象复习题答案版

c++面向对象复习题答案版第1页共22页一、填空1.c++中有两种数据类型:(char)和(intlong)可以使用signed修饰符。

在c++中,用数组、指针、和(引用)作为函数参数,能够将参数值带回。

2.为了减少函数调用的时间成本,建议将频繁调用的小函数定义为(内联函数),方法是在函数类型之前添加关键字(内联)。

3.面向对象的程序设计有四大特征,它们是抽象、封装、(继承)、(多态)。

4.当用一个对象初始化另一个对象时,会调用复制构造函数。

复制构造函数的默认工作方法是(将对象的每个数据成员的值复制到新创建的对象)。

5.用new申请某一个类的动态对象数组时,在该类中必须能够匹配到(该类的)构造函数,否则应用程序会产生一个编译错误。

6.静态数据成员必须在类之外初始化,并且静态数据成员的副本由类的所有对象共享。

7.在c++中,定义重载函数时,应至少使重载函数的参数个数或参数类型(不同)。

8.在c++中,虽然友元提供了类之间数据进行访问的一种方式,但它破坏了面向对象程序设计的(封装)特性。

9.有三条预编译指令:文件包含(宏定义)和(条件编译)。

10.静态的成员函数没有隐含的(this),所以,它们只能直接访问类的静态的数据成员。

11.在c++中,函数的参数有两种传递方式,它们是值传递和(地址)。

12.当非静态成员函数被调用时,该成员函数的(this)指向调用它的对象。

13.拷贝构造函数使用(引用)作为参数初始化创建中的对象。

14.在公有继承的情况下,基类数据成员在派生类中的访问权限(不变)。

15.在c++中,构造派生类对象时,总是先从(基类)的初始化开始的。

16.当需要计算程序中某个类创建的对象数时,需要为该类定义(静态数据)成员。

17.当多个类之间存在重复继承时,为了避免在内存中重复继承的基类数据成员的多个副本,基类应定义为(虚拟基类)。

18.在c++类中,有一种不能定义对象的类,这样的类只能被继承,称之为(抽象类),定义该类至少具有一个(纯虚函数)。

c#面向对象试题及答案

c#面向对象试题及答案

一、选择题:1、下列关于类的描述中,错误的是( A )。

A.类就是C语言中的结构类型B.类是创建对象的模板C.类是抽象数据类型的实现D.类是具有共同行为的若干对象的统一描述体2、下列常量中,不是字符常量的是( B )。

A.'\n' B."y"C.'x' D.'\7'3、下列表达式中,其值为0的是( A )。

A.5/10 B.!0C.2>4?0:1 D.2&&2||04、下列关于数组维数的描述中,错误的是( C )。

A.定义数组时必须将每维的大小都明确指出B.二维数组是指该数组的维数为2C.数组的维数可以使用常量表达式D.数组元素个数等于该数组的各维大小的乘积5、下列关于字符数组的描述中,错误的是( D )。

A.字符数组中的每一个元素都是字符B.字符数组可以使用初始值表进行初始化C.字符数组可以存放字符串D.字符数组就是字符串6、已知:int a[5] = {1, 2, 3, 4}; 下列数组元素值为2的数组元素是( B )。

A.a[0] B.a[1]C.a[2] D.a[3]7、下列while循环语句的循环次数是( A )。

while(int i(0)) i--;A.0 B.1C.2 D.无限8、已知:int a[ ]={1,2,3,4,5},*p=a;在下列数组元素地址的表示中,正确的是( C )。

A.&(a+1) B.&(p+1)C.&p[2] D.*p++9、已知:int a=1,b=2,*p[2];下列表达式中正确的是( C )。

A.p=&a B.p=&bC.p[0]=&a,p[1]=&b D.p[ ]={&a,&b};10、当一个函数没有返回值时,该函数类型应说明为( A )。

A.void B.intC.无D.任意11、下列关于类的定义格式的描述中,错误的是( C )。

面向对象技术(答案)

面向对象技术(答案)

●下面关于面向对象方法中消息的叙述,不正确的是____(2)__。

(2)A. 键盘、鼠标、通信端口、网络等设备一有变化,就会产生消息B.操作系统不断向应用程序发送消息,但应用程序不能向操作系统发送消息C. 应用程序之间可以相互发送消息D.发送与接收消息的通信机制与传统的子程序调用机制不同正确答案:B【解析】在系统中既使用对象又使用类和继承等机制,而且对象之间仅能通过传递消息实现彼此的通信,这样的方法才称为"面向对象的方法"。

●面向对象技术中,对象是类的实例。

对象有三种成份:____(3)____、属性和方法(或操作)。

(3) A. 标识B. 规则C. 封装D. 消息正确答案:A解析:对象有三种成份:标识(对象名)、属性和方法(或操作)。

●在面向对象技术中,类属是一种__(1)__机制。

一个类属类是关于一组类的一个特性抽象,它强调的是这些类的成员特征中与__(2)__的那些部分,而用变元来表示与__(3)__的那些部分。

(1)A.包含多态B.参数多态C.过载多态D.强制多态(2)A.具体对象无关B.具体类型无关C.具体对象相关D.具体类型相关(3)A.具体对象无关B.具体类型无关C.具体对象相关D.具体类型相关解析:在面向对象技术中,对象在收到信息后要予以响应。

不同的对象收到同一消息可产生完全不同的结果,这一现象称为多态。

多态有多种不同的形式,其中参数多态和包含多态称为通用多态,过载多态和强制多态成为特定多态。

参数多态应用比较广泛,被称为最纯的多态。

这是因为同一对象、函数或过程能以一致的形式用于不同的类型。

包含多态最常见的例子就是子类型化,即一个类型是另一类型的子类型。

过载多态是同一变量被用来表示不同的功能,通过上下文以决定一个类所代表的功能。

即通过语法对不同语义的对象使用相同的名,编译能够消除这一模糊。

强制多态是通过语义操作把一个变元的类型加以变换,以符合一个函数的要求,如果不做这一强制性变换将出现类型错误。

C-面向对象程序设计习题解答(全)Word版

C-面向对象程序设计习题解答(全)Word版

《C++面向对象程序设计》习题解答陈腊梅目录第一章面向对象程序设计概述.............................................................. 错误!未定义书签。

第二章对C语言的基础扩充................................................................... 错误!未定义书签。

第三章类和对象的初步探讨 ................................................................. 错误!未定义书签。

第四章类和对象的进一步解析.............................................................. 错误!未定义书签。

第五章在对象中使用运算符—运算符重载.......................................... 错误!未定义书签。

第六章继承与派生 (2)第七章多态性与虚函数 (2)第一章面向对象程序设计概述一、选择题二、填空题1、多态性2、成员函数3、抽象4、处理这些数据的操作或处理这些数据的函数5、面向对象分析、面向对象分析、面向对象编程、对象对象测试、面向对象维护第二章对C语言的基础扩充二、程序阅读题1答案a=639,b=78,c=122答案a=5,b=8a=8,b=53答案104答案x=20.6 y=5 z=Ax=216.34 y=5 z=Ax=216.34 y=2 z=Ax=216.34 y=2 z=E5答案ic=11fc=7.82ic=5fc=2.15第三章类和对象的初步探讨一、选择题二、填空题1 数据成员、成员函数2 private 、protected 、public3 指向对象的指针、对象的引用4 属性、行为、属性、行为5 对象、属性和操作这些属性的操作、对外隐藏四、程序改错题#include <iostream>using namespace std;class Clock{//public:void set_clock(void);void show_clock(void);//private:int hour;int minute;int second;};Clock clock;int main( ){clock.set_clock( );clock.show_clock ( );//return 0 ;}void Clock::set_clock(void){cin>>hour;cin>>minute;cin>>second;}void Clock::show_clock(void){cout<<hour<<":"<<minute<<":"<<second<<endl;}第四章类和对象的进一步解析二、填空题1 this2所有成员3友元类、友元函数4 friend5 程序编译、程序结束三、程序阅读题1答案Default constructor called.constructor called.0,06,86,8Destructor called.0,0Destructor called.2答案x!=y3答案Initalizing defaultInitalizing default0 0Destructor is activeDestructor is active4答案n=2,sum=2n=3,sum=5n=5,sum=105答案x=36答案x=1,y=2x=30,y=407答案1 2 3 4 4exit main3 2 1 08答案n=1009答案the student is:Li Huthe teacher is:Wang Ping10答案211答案1035,789.50412答案13答案constructing object:x=1第五章在对象中使用运算符—运算符重载二、程序完善题1(1)A A::operator+(A &b)(2){ A temp;temp.i = i+b.i;return temp; }三、程序阅读题1.答案n=4n=3232.答案c1=10 c2=20c1=100 c2=200c1=11 c2=21c1=100 c2=2003.答案1 2 4 7 11 16第六章派生与继承1 继承2 具体化、抽象3 公有继承、保护继承、私有继承4 子对象5 public(共有的)、protected(保护的)、不可访问6 protected(保护的)、protected(保护的)、不可访问的7 private(私有的)、private(私有的)、不可访问的8 二义性1.C++语言中,既允许单继承,又允许多继承。

C#面向对象编程基础考试

C#面向对象编程基础考试

C#面向对象编程基础考试(答案见尾页)一、选择题1. 在C中,下列哪个关键字用于定义类的成员变量?A. privateB. publicC. protectedD. internal2. 在C中,下列哪个关键字用于定义类的方法?A. privateB. publicC. protectedD. internal3. 在C中,下列哪个关键字用于实现继承?A. virtualB. overrideC. sealedD. abstract4. 在C中,下列哪个关键字用于限制某个类的成员只能被同一类中的其他成员访问?A. privateB. publicC. protectedD. internal5. 在C中,下列哪个关键字用于创建抽象类?A. virtualB. overrideC. sealedD. abstract6. 在C中,下列哪个关键字用于标记某个成员是静态的?A. privateB. publicC. protectedD. internal7. 在C中,下列哪个关键字用于表示数组的长度?A. lengthB. sizeC. lengthD. capacity8. 在C中,下列哪个关键字用于抛出异常?A. throwB. catchC. finallyD. fault9. 在C中,下列哪个关键字用于同步对共享资源的访问?A. lockB. unlockC. sleepD. wait10. 在C中,下列哪个关键字用于定义委托?A. delegateB. eventC. interfaceD. class11. C是一种哪种编程语言?A. 面向过程B. 面向对象C. 函数式编程D. 逻辑编程12. 在C中,什么是类?A. 一种数据类型B. 一种方法C. 一种属性D. 一种代码组织方式13. 在C中,什么是字段?A. 类的成员变量B. 方法内部的变量C. 属性的成员变量D. 构造函数的参数14. 在C中,什么是接口?A. 一种数据类型B. 一种方法C. 一种属性D. 一种代码组织方式15. 在C中,什么是继承?A. 一种数据类型B. 一种方法C. 一种属性D. 一种代码组织方式16. 在C中,什么是多态?A. 一种数据类型B. 一种方法C. 一种属性D. 一种代码组织方式17. 在C中,什么是封装?B. 一种方法C. 一种属性D. 一种代码组织方式18. 在C中,什么是委托?A. 一种数据类型B. 一种方法C. 一种属性D. 一种代码组织方式19. 在C中,什么是事件?A. 一种数据类型B. 一种方法C. 一种属性D. 一种代码组织方式20. 在C中,什么是LINQ?A. 一种数据类型B. 一种方法C. 一种属性D. 一种代码组织方式21. C是一种什么编程语言?A. 面向过程B. 面向对象C. 函数式编程D. 逻辑编程22. 在C中,什么是类?A. 一种数据类型B. 一种代码组织方式C. 一个对象的集合23. 在C中,什么是字段?A. 类的成员变量B. 方法内部的局部变量C. 类的静态成员变量D. 对象的内部成员变量24. 在C中,什么是方法?A. 类的成员函数B. 函数库中的函数C. 对象的行为D. 代码块25. 在C中,什么是属性?A. 类的成员变量B. 方法内部的局部变量C. 访问或修改类成员的方法D. 代码块26. 在C中,什么是索引器?A. 类的成员变量B. 方法内部的局部变量C. 访问或修改类成员的方法D. 代码块27. 在C中,什么是委托?A. 一种数据类型B. 一种代码组织方式C. 一个对象的集合D. 一个函数库28. 在C中,什么是事件?B. 一种代码组织方式C. 一个对象的集合D. 一个函数库29. 在C中,什么是继承?A. 一种数据类型B. 一种代码组织方式C. 一个类可以继承另一个类的特性D. 一个类可以继承另一个类的功能30. 在C中,什么是多态?A. 一种数据类型B. 一种代码组织方式C. 同一个接口可以被不同的类实现D. 一个类可以有多个基类31. 关于C语言中面向对象编程的描述,以下哪个是正确的?A. C#支持继承和多态B. C#支持封装和多态C. C#支持继承和封装D. C#只支持封装32. 在C中,以下哪个关键字用于定义类?A. classB. structC. interfaceD. delegate33. 在C中,以下哪个关键字用于定义属性(Accessors)?A. publicB. privateC. protectedD. virtualA. publicB. privateC. protectedD. virtual35. 在C中,以下哪个关键字用于实现接口?A. implementsB. extendsC. implementsD. extends36. 在C中,以下哪个关键字用于访问类的成员?A. thisB. baseC. staticD. void37. 在C中,以下哪个关键字用于创建对象实例?A. newB. createC. instanceD. newinstance38. 在C中,以下哪个关键字用于抛出异常?A. throwB. catchC. finallyD. fault39. 在C中,以下哪个关键字用于同步代码块?A. lockB. syncC. beginD. commitA. staticB. constC. virtualD. abstract二、问答题1. 什么是面向对象编程(OOP)?2. 在C中,类和对象有什么区别?3. 什么是封装?在C中如何实现封装?4. 什么是继承?在C中如何实现继承?5. 什么是多态?在C中如何实现多态?6. 在C中,如何使用LINQ技术查询数据?7. 什么是委托?在C中如何使用委托?8. 什么是异常处理?在C中如何处理异常?参考答案选择题:1. A2. B3. D4. A5. D6. C7. C8. A9. A 10. A11. B 12. A 13. A 14. A 15. D 16. D 17. D 18. B 19. D 20. D21. B 22. A 23. A 24. A 25. C 26. D 27. C 28. D 29. C 30. C31. A 32. A 33. D 34. D 35. A 36. A 37. A 38. A 39. A 40. A问答题:1. 什么是面向对象编程(OOP)?面向对象编程是一种编程范式,它使用“对象”来设计软件。

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

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

c面向对象程序设计期末考试题及答案一、选择题(每题2分,共20分)1. 在C++中,以下哪个关键字用于定义类?A. structB. typedefC. enumD. union答案:A2. 以下哪个选项不是面向对象编程的三大特性?A. 封装B. 继承C. 多态D. 抽象答案:D3. 在C++中,构造函数的作用是什么?A. 初始化局部变量B. 初始化成员变量C. 销毁对象D. 计算对象的值答案:B4. 下列哪个关键字用于实现类的继承?A. extendsB. implementsC. inheritsD. public答案:D5. 在C++中,友元函数可以访问类的哪些成员?A. 公有成员B. 私有成员C. 保护成员D. 所有成员答案:D6. 下列关于虚函数的描述,哪个是正确的?A. 虚函数不能在基类中定义B. 虚函数不能在派生类中重写C. 虚函数可以用于实现多态D. 虚函数不能在接口类中定义答案:C7. 在C++中,下列哪个关键字用于定义纯虚函数?A. abstractB. virtualC. overrideD. final答案:B8. 下列关于静态成员的描述,哪个是错误的?A. 静态成员变量可以在类外初始化B. 静态成员函数可以访问类的非静态成员C. 静态成员属于类本身D. 静态成员函数不能访问类的静态成员答案:B9. 在C++中,下列哪个关键字用于定义常量成员函数?A. constB. staticC. finalD. abstract答案:A10. 下列关于运算符重载的描述,哪个是正确的?A. 运算符重载不能改变运算符的优先级B. 运算符重载可以改变运算符的结合性C. 运算符重载可以改变运算符的操作数数量D. 运算符重载可以改变运算符的类型答案:A二、填空题(每题2分,共20分)1. 在C++中,使用关键字________定义类。

答案:class2. 面向对象编程的三大特性包括封装、继承和________。

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

c面向对象程序设计期末考试题及完整参考答案
2.Iflyable接口定义中的public float Run(float distanee);,改为float Run(float distanee);
3.distanee/400.0改为distanee/400或者distanee/400.0f;
4.public float ISwimmable.Run(float distanee)改为float ISwimmable.Run(float distanee)
7.类索引函数的参数类型必须为或。
8.类对接口方法的实现时,在方法名称之前加上接口名,这叫做对接口方法的实现,此时这个方法是这个
类的员,不能通过类的实例来访问。
9.作为一种特殊的函数成员,重载类的操作符时,被重载的操作符必须被声明为公有的和,并通过在关键
字operator后跟操作符来声明。
二、判断题(每小题1分,共5分)
public virtual float Run( float dista nce)
{
retur n dista nce/Speed;
}
public Automobile(float speed)
{
Speed = speed;
}
}
public class Amphicar:Automobile, ISwimmable
Console.WriteLine("{0}空中飞行1000公里需{1}小时", plane, plane.Run(1000)); //调用IFlyable接口Run方法
Con sole.ReadL in e();
}
}
public in terface IFIyable
{
public float Run( float dista nee);

面向对象程序设计复习题答案

面向对象程序设计复习题答案

面向对象程序设计复习选择题1. 一个设计得好的面向对象系统具有(B)特征。

A 低内聚、低耦合B 高内聚、低耦合C 高内聚、高耦合D 低内聚、高耦合2. 面向对象程序设计的特点主要概括为(C)。

A 可分解性、可组合性、可分类性B 继承性、封装性、多态性C 抽象封装性、继承性、多态性D 封装性、易维护性、可扩展性、可重用性3. 关于C#程序的书写,下列不正确的说法是( D )。

A. 区分大小写B. 一行可以写多条语句C. 一条语句可写成多行D. 一个类中只能有一个Main()方法,因此多个类中可以有多个Main()方法4. 关于C#语言的基本语法,下列哪些说法正确的是(C)A. C#语言使用using 来引用需要用到的命名空间;B. 用C#编写的程序中,Main 函数是唯一允许的全局函数;C. C#语言中使用的名称严格区分大小写;D. C#中一条语句必须写在一行内;5 以下标识符中,正确的是(A)。

A._nNameB. typeofC. 6bD. x5#6.字符串连接运算符包括&和(A)。

A. +B. -C. *D. /7.拆箱是关于:(B)A、值类型到引用类型的转换B、引用类型到值类型的转换C、引用类型到引用类型的转换D、值类型到值类型的转换8.装箱是关于:(A)A、值类型到引用类型的转换B、引用类型到值类型的转换C、引用类型到引用类型的转换D、值类型到值类型的转换9.下列引用类型和值类型描述正确的是(A)。

A. 引用类型变量保存内存地址,值类型直接保存变量值B. 引用类型在变量中直接保存变量值,值类型保存内存地址C. 引用类型和值类型保存数据的方式相同D. .NET Framework不支持值类型,因为所有的类型都是引用类型了10.一个类中的静态方法的调用可以:(A)A、通过类名调用B、通过实例化的对象调用C、在主方法中直接调用D、在同一个类中的某一方法中直接调用11.以下数据类型中,属于引用类型的是:(A)A、string类型B、double类型C、int类型D、 char类型12.下列类型中为值类型的是(C)A. 字符串类型B. 树组类型C. 枚举类型D. 接口类型13.decimal类型和浮点类型都可以表示小数,正确说法:(C)A. 两者没有任何区别B. 小数类型比浮点类型取值范围大C.小数类型比浮点类型精度高D. 小数类型比浮点类型精度低14. 有定义语句:int [,]a=new int[5,6]; 则下列正确的数组元素的引用是(C)。

《面向对象程序设计c 》综合复习题集及答案详解

《面向对象程序设计c  》综合复习题集及答案详解

《面向对象程序设计》综合复习题集四、程序填充1. 斐波那契数列的第1和第2个数分别为0和1 ,从第三个数开始,每个数等于其前两个数之和。

求斐波那契数列中的前20个数,要求每行输出5个数。

#include<iostream.h>void main() {int f,f1,f2,i;cout<<”斐波那契数列:\n”;f1=0; f2=1;cout<<setw(6)<<f1<<setw(6)<<f2;for(i=3;i<=20;i++) {f=______(1)______;cout<<setw(6)<<f;if(_____(2)______) cout<<endl;f1=f2;f2=____(3)_______;}cout<<endl;}(1) (2) (3)2. 计算∑=+ -10 11!)1(iiiix的值。

#include<iostream.h>void main(){double x,p1=1,p2=1,s=0;int i,j=1;cout<<"输入x的值:";cin>>x;for(i=1;i<=10;i++) {p1*=___(1)_____;p2*=____(2)____;s+=j*p1/p2; //j的值为(-1)i+1j=____(3)____;}cout<<s<<endl;}(1) (2) (3)17. 假定有定义为“struct NODE{int data; NODE* next;};”,下面算法根据table 数组中的n个元素建立一个表头指针为L的链表,链表中结点值的顺序与数组元素值的顺序相同。

void f5(NODE*& L, int table[], int n){if(n<=0) {L=NULL; return;}L=new NODE; //生成附加的头结点int i=0;NODE* p=L;while(___(1)___) {p=p->next=___(2)___;p->data=___(3)___;i++;}p->next=NULL; //把最后一个结点的指针域置空p=L;L=L->next; //使L指向链表的第一个带值的结点delete p;}(1) (2) (3)22. 已知一维数组类ARRAY的定义如下,构造函数的作用是把参数n的值赋给s,给v 动态分配长度为n的数组空间,接着利用数组参数a初始化v所指向的数组。

c面向对象程序设计试题和答案汇总

c面向对象程序设计试题和答案汇总

一、填空题(每空1分,共14分)1、观看以下程序:classpoint{public:voidshow({cout<<”point”<};voidmain({pointp1;point*p;p=&p1;_______________//经过对象p1接见show函数______________//经过指针p接见show函数}2、在C++类中可以包括______________、______________和______________三种拥有不相同接见控制权的成员。

3、定义类时,在类头中将使用要点字_____________来表示类定义的开始。

4、若是一个类中最少有一个纯虚函数,则该类称为________________。

5、C++类的组成包括数据成员和______________,友元_____(是、不是)该类的成员函数。

6、友员函数是用要点字____________修饰的非成员函数。

7、若有:inti;int&j=i;i=10;j=i+1;则i=__________,j=__________。

8、new的功能是____________________,delete的功能是____________________。

二、选择题(每题分,共30分1、以下特点中不是面向对象程序设计语言所特有的是()。

(A)数据封装(B)继承(C)多态性(D)模板2、()是给变量取一个别名,它引入了变量的赞成词。

(A)指针(B)引用(C)列举(D)构造3、类成员的接见权限中,()只能被本类的成员函数和其友元函数接见。

(A)share(B)public(C)private(D)protected4、关于构造函数,以下说法不正确的选项是()。

(A)构造函数名字和类名相同(B)构造函数在创办对象时自动执行(C)构造函数无任何函数返回种类(D)构造函数有且只有一个5、派生类可以接见其基类的()。

c++面向对象程序设计语言重点难点复习题及答案

c++面向对象程序设计语言重点难点复习题及答案

c++面向对象程序设计语言重点难点复习题及答案2、如果一个函数定义中使用了static修饰,则该函数不允许被其它文件中的函数调用。

5、C++程序运行时的内存空间可以分成全局数据区,堆区,栈区和代码区。

6、局部变量具有局部生存期,存放在内存的栈区中。

7、对类中对象成员的初始化是通过在构造函数中给出的初始化表来实现的。

8、对类中常量成员的初始化是通过在构造函数中给出的初始化表来实现的。

9、对类中引用成员的初始化只能通过在构造函数中给出的初始化表来实现。

10、对类中一般数据成员的初始化既可以通过在构造函数中给出的初始化表来实现,也可以通过构造函数中的函数体来实现。

11、假定要把aa定义为AB类中的一个常量整数型数据成员,则定义语句const int aa。

12、假定要把aa定义为AB类中的一个引用整数型数据成员,则定义语句为int &aa。

13、假定AB类中只包含一个整型数据成员a,并且它是一个常量成员,若利用参数aa对其进行初始化,则该类的构造函数的定义为AB (int aa){a=aa;}。

14、假定AB类中只包含一个整型数据成员a,并且它是一个引用成员,若利用引用参数aa对其进行初始化,则该类的构造函数的定义为AB(int &aa){a=aa;}。

15、静态成员函数能够直接访问类的静态数据成员,只能通过对象名访问类的非静态数据成员。

16、静态数据成员必须在所有函数的定义体外进行初始化。

17、一个类的成员函数也可以成为另一个类的友元函数,这时的友元说明必须在函数名前加上类域的限定。

四、修改程序题:下列程序段中,A_class的成员函数Variance()可求出两数的平方差,请改写该程序段,把Variance()函数从A_class类中分离出来,用友元函数来实现该函数的功能。

class A_class {private:int x,y,t;public:A_class(int i,int j):x(i),y(j) {if(y>x){t=x;x=y;y=t;}}int Variance(){return x*x-y*y;}//其它函数从略};void main() {A_class A_obj(3,5);cout<<"Result:"<<a_obj.variance()<<endl;}< p="">修改后的源程序:class A_class {private:int x,y,t;public:A_class(int i,int j):x(i),y(j) {if(y>x){t=x;x=y;y=t;}}friend int Variance();//其它函数从略};int variance (){return x*x-y*y;}void main() {A_class A_obj(3,5);cout<<"Result:"<<a_obj.variance()<<endl;< p="">2、数组、指针与字符串一、1、在下面的一维数组定义中,哪一个有语法错误。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

面向对象程序设计C++复习资料与答案第一、二、六、七章习题一、选择题1、系统约定C++源程序文件名的缺省的扩展名为()A、bccB、c++C、cppD、vcc2、面向对象的程序设计将数据与()放在一起,作为一个相互依存、不可分割的整体来处理。

A、对数据的操作B、信息C、数据隐藏D、数据抽象3、当一个函数无返回值时,函数的类型应定义为()A、voidB、任意C、intD、无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<<name[3];7、假设已经定义:char *const name=”chen”;, 下面的语句中正确的是:()A、name[3]='q'; B、name=”lin”;C、name=new char[5]; D、name=new char(‘q');8、假设已经定义:const char *name=”chen”;, 下面的语句中错误的是:()A、name[3]='q'; B、name=”lin”;C、name=new char[5]; D、name=new char(‘q');9、下面的类型声明中正确的是:( )A、int &a[4];B、int &*p;C、int &&qD、int i,*p=&i;10、假设定义了函数模板()template <class T>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、二个语句都错、二个语句正确,没有语法错D 错cin>>x 、语句C.13、设有语句:void f(int a[10],int &x);int y[10],*py=y,n;则对函数f的正确调用语句是( )A、f(py[10],n);B、f(py,n)C、f(*py,&n)D、f(py,&n)14、在C++中实现封装是借助于()A、枚举B、类C、数组D、函数15、对于下面几个函数:(1) void f(int x,float y) {…… }(2) int f(int a,float b){…… }(3) int f(int i,int j){…… }(4) float k(int x){…… }是重载函数。

A、4个全部B、1和2C、2和3D、3和416、使用myFile.open(“Sales.dat”,ios::app);语句打开文件Sales.dat后,则()A、使输出追加到文件尾部B、打开一个文件进行读操作C、打开一个文件进行读和写操作D、文件以二进制方式打开,默认时为文本文件二、填空题1、面向对象的程序设计有四大特征,它们是抽象、封装、、。

2、结构体类型中的数据和成员函数默认类型为。

3、C++要求为每个函数建立原型,以说明函数的名称、参数的和,以及函数返回值。

4、在函数说明前加关键字“inline”,则该函数被声明为函数,其引入的目的是为了消除函数调用时的开销,以提高运行速度。

5、引用变量与被引用变量占有内存单元。

6、运算符能够用于访问当前作用域内与局部变量同名的全局变量。

7、#include <iostream.h>void s(int a,int &b){int t=a;a=b;b=t;}void main(void){ int x=500,y=1000;cout<<x<<'\t'<<y<<'\n';s(x,y);cout<<x<<'\t'<<y<<'\n'; }程序的第一行输出为,第二行输出为。

8、#include <iostream.h>void main(void){ for(int a=1,b=1;a<=5;a++){ if(b>=8) break;if(b%2==1){b+=7;continue;}b-=3; }cout<<”a=”<<a<<'\n'<<”b=”<<b<<'\n';}程序输出结果是a= ,b= 。

9、#include <iostream.h>int x=100;void main(void)2{ int x=200;x+=::x; {int x=500;::x+=x;} cout<<x<<'\n';cout<<::x<<'\n';}程序的第一行输出为,第二行输出为。

10、#include<iostream.h>void f(float x=5, int y=16, char z=‘C');void main( ){ float a=1.6; int b=2; char c='D';f();f(a);f(a,b); f(a,b,c); }void f(float x, int y, char z){ cout<<“x=”<<x<<“y=”<<y<<“z=”<<z<<endl; }程序的第二行输出为,第三行输出为。

11、以下程序的输出结果是。

#include <iostream.h>char a[]=“ABCDEFGHI”;char &f(int);int main(){ f(6)=‘X'; cout<<a<<endl; return 0;}char &f(int i){ return a[i]; }12、如果C++程序中使用了:cout、strcpy,则必须在程序首部包含文件和。

13、#include <iostream.h>#include <iomanip>void main(){ int i=7890; cout<<setw(6)<<i<<endl; cout<<i<<endl; }程序的第一行输出为,第二行输出为。

14、#include <iostream.h>void main(){ int i=100;cout.setf(ios::hex); cout<<i<<”\t”;cout<<i<<”\t”;cout.setf(ios::dec);cout<<i<<”\n”;} 以上程序运行的结果是第三章类和对象一、选择题1、()不是构造函数的特征。

A、构造函数的函数名与类名相同;B、构造函数可以重载;C、构造函数可以设置缺省参数;D、构造函数必须指定类型说明。

2、下列关于构造函数的描述中,()是正确的。

A、构造函数可以设置缺省参数;B、构造函数可以被继承;C、构造函数可以对静态数据成员进行初始化;D、构造函数可以说明为虚函数;33、()是析构函数的特征。

A、析构函数可以有一个或多个参数;B、析构函数名与类名不同;C、析构函数的定义只能在类体内;D、一个类中只能定义一个析构函数;4、定义析构函数时,应该注意()。

A、其函数名与类名完全相同;B、函数返回类型是void类型;C、无形参,也不可重载;D、函数体中必须有delete语句;5、下列静态数据成员的特性中,()是错误的。

A、说明静态数据成员时前边要加修饰符static;B、静态数据成员要在类体外进行初始化;C、静态数据成员不是所有对象所共用的;D、引用静态数据成员时,要在其名称前加<类名>和作用域运算符;6、友元的作用是()。

A、提高程序的运用效率;B、加强类的封装性;C、实现数据的隐藏性;D、增加成员函数的种类;7、关于成员函数特征的下列描述中,()是错误的。

A、成员函数一定是内联函数;B、成员函数可以重载;C、成员函数可以设置缺省参数值;D、成员函数可以是静态的;8、已知:print()函数是一个类的常成员函数,它无返回值,下列表示中,()是正确的;A、void print() const;B、const void print();C、void const print();D、void print(const);9、在()情况下适宜采用inline定义内联函数。

A、函数体含有循环语句;B、函数体含有递归语句;C、函数代码小,频繁调用;D、函数代码多,不常调用;10、假定AB为一个类,则执行“AB a(4) , b[3] , * p[2] ;”语句时,自动调用该类构造函数的次数为( )。

A、 3B、 4C、6 D、 911、通常拷贝初始化构造函数的参数是( )。

A、某个对象名B、某个对象的成员名C、某个对象的引用名D、某个对象的指针名412、有关类的说法不正确的是( )。

A、类是一种用户自定义的数据类型B、只有类中的成员函数才能存取类中的私有数据C、在类中,如果不作特别说明,所有的数据均为私有类型D、在类中,如果不作特别说明,所有的成员函数均为公有类型13、在声明类时,下面说法正确的的是( )。

A、可以在类的声明中给数据成员赋初值B、数据成员的类型可以是registerC、public, private, protected这三种属性的成员可以按任意顺序出现D、没有用public, private, protected定义的成员是公有成员14、已知:p是一个指向类A数据成员m的指针,A1是类A的一个对象。

相关文档
最新文档