2022年甘肃农业大学C++考试题.doc
甘肃农业大学C+考试题面向对象程序设计课程考试试卷(A) 一、 选择题(每题2分,共30分) 1C+对C语言作了很多改进,下列描述中()使得C语言发生了质变,从面向过程变成了面向对象。 A、增加了一些新的运算符; B、允许函数重载,并允许设置缺省参数; C、规定函数说明必须用原型; D、引进了类和对象的概念; 2下列描述中,()是错误的。 A、内联函数主要解决程序的运行效率问题;B、内联函数的定义必须出现在内联函数第一次被调用之前; C、内联函数中可以包括各种语句; D、对内联函数不可以进行异常接口声明; 3在C+中,关于下列设置缺省参数值的描述中,()是正确的。 A、不允许设置缺省参数值; B、在指定了缺省值的参数右边,不能出现没有指定缺省值的参数; C、只能在函数的定义性声明中指定参数的缺省值;D、设置缺省参数值时,必须全部都设置; 4()不是构造函数的特征。 A、构造函数的函数名与类名相同;B、构造函数可以重载; C、构造函数可以设置缺省参数; D、构造函数必须指定类型说明。 5()是析构函数的特征。 A、析构函数可以有一个或多个参数; B、析构函数名与类名不同; C、析构函数的定义只能在类体内; D、一个类中只能定义一个析构函数; 6关于成员函数特征的下列描述中,()是错误的。 A、成员函数一定是内联函数; B、成员函数可以重载; C、成员函数可以设置缺省参数值;D、成员函数可以是静态的; 7下列静态数据成员的特性中,()是错误的。 A、说明静态数据成员时前边要加修饰符staticB、静态数据成员要在类体外进行初始化; C、静态数据成员不是所有对象所共用的;D、引用静态数据成员时,要在其名称前加和作用域运算符; 8友元的作用是()。 A、提高程序的运用效率; B、加强类的封装性; C、实现数据的隐藏性; D、增加成员函数的种类; 9关于new运算符的下列描述中,()是错误的。 A、它可以用来动态创建对象和对象数组; B、使用它创建的对象或对象数组可以使用运算符delete删除; C、使用它创建对象时要调用构造函数; D、使用它创建对象数组时必须指定初始值; 10关于delete运算符的下列描述中,()是错误的。 A、它必须用于new返回的指针; B、使用它删除对象时要调用析构函数; C、对一个指针可以使用多次该运算符;D、指针名前只有一对方括号符号,不管所删除数组的维数。 11const int *p说明不能修改()。 A、p指针;B、p指针指向的变量;C、p指针指向的数据类型;D、上述A、B、C三者; 12已知:print()函数是一个类的常成员函数,它无返回值,下列表示中()是正确的; A、void print() const; B、const void print();C、void const print();D、void print(const); 13派生类的对象对它的基类成员中()是可以访问的。 A、公有继承的公有成员; B、公有继承的私有成员;C、公有继承的保护成员;D、私有继承的公有成员; 14设置虚基类的目的是()。 A、简化程序; B、消除二义性; C、提高运行效率; D、减少目标代码; 15下列描述中,正确的是() A、虚函数是一个static 类型的成员函数;B、虚函数是一个非成员函数; C、抽象类是指具有纯虚函数的类; D、抽象类可以说明其对象; 二、判断下列描述的正确性,正确填T,错误填F。(每题2分,共30分) 1C+中标识符内的大小写字母是没有区别的。() 2C+是一种以编译方式实现的高级语言。() 3计算函数参数顺序引起的二义性是由不同的编译系统决定的。() 4返回值类型、参数个数和类型都相同的函数也可以重载。() 5使用关键字class定义的类中缺省的访问权限是私有(private)的。() 6类的私有成员只能被类中的成员函数访问,任何类以外的函数对它们的访问都是非法的。() 7多继承情况下,派生类的构造函数的执行顺序取决于成员初始化列表中的顺序。() 8在公有继承中,基类中的公有成员和私有成员在派生类中都是可见的。() 9在私有继承中,基类中所有成员对派生类都是不可见的。() 10在保护继承中,对于垂直访问等同于公有继承,对于水平访问等同于私有继承。() 11构造函数可以声明为虚函数。() 12在析构函数中调用虚函数时,采用动态束定。() 13在一个成员函数内调用一个虚函数时,对该虚函数的调用进行动态束定。() 14公有继承可以实现子类型。() 15构造函数可以声明为纯虚函数。() 三、分析下列程序的输出结果。(每题10分,共40分) 1#include class Test; void fun1(Test t); Test fun2(); class Test public: Test(int n=1) val=n; cout class A public: A() cout class R public: R(int r1,int r2) R1=r1;R2=r2; void print(); void print() const; private: int R1,R2; ; void R:print() cout class A public: virtual void act1(); void act2() act1(); ; void A:act1() cout1. 对象是和的封装体。 2. 定义重载函数时,要从和上进行区分。 3. 类定义中,缺省的成员是成员。 4. 当一个成员函数被调用时,该成员函数的指向调用它的对象。 5. 设置虚基类的目的是,虚基类子对象的初始化由完成。 6. 对虚函数使用基类类型的指针或引用调用,系统使用联编;使用对象调用时,系统使用联编。 7. 一元运算符作为类成员函数重载时形参;二元运算符作为 重载时需声明其右操 8. 带有的类称为抽象类,它只能作为来使用。 9. 请填写下列表格(填写直接派生类实例对基类成员的可见性)。 直接派生类继承方式 基类中成员类型 public private protected public private 不可见 不可见 不可见 protected 二, 单项选择题(每题2分,共20分)。 1. 下列描述中,()是不正确的。 A、面向对象程序设计可重用性较好; B、对象之间通过消息进行信息传递; C、多态性体现了行为共享; D、面向对象方法的核心是继承; 2. 执行下列语句后的输出结果是()。 int hot=100; int &rad=hot; hot+=100; cout B、100; C、200; D、300; 3. 在C+中,关于下列函数参数的描述中,()是正确的。 A、C+语言中,实参是按照自左至右的顺序求值的; B、若一个参数设置了默认值,则其右边的所有参数都具有默认值; C、函数参数的默认值不允许是表达式; D、设置参数默认值时,应该全部参数都设置; 4. 在()情况下适宜采用inline定义内联函数。 A、函数体含有循环语句;B、函数体含有递归语句;C、函数代码小,频繁调用;D、函数代码多,不常调用; 5. 定义析构函数时,应该注意()。 A、其函数名与类名完全相同; B、函数返回类型是void类型; C、无形参,也不可重载; D、函数体中必须有delete语句; 6. 下列关于构造函数的描述中,()是正确的。 A、构造函数可以设置缺省参数 B、构造函数可以被继承; C、构造函数可以对静态数据成员进行初始化;D、构造函数可以说明为虚函数; 7. 友元的作用是()。 A、提高程序的运用效率; B、加强类的封装性; C、实现数据的隐藏性; D、增加成员函数的种类; 8. int * const p说明不能修改()。 A、p指针; B、p指针指向的变量; C、p指针指向的数据类型; D、上述A、B、C三者; 9. 关于堆运算符的下列描述中,()是错误的。 A、使用堆运算符可以动态建立或删除对象; B、new运算符创建对象时要调用构造函数; C、可以在使用new创建数组时,为每个数组元素指定初始值; D、delete运算符可以作用于空指针; 10. 关于继承的描述中,()是正确的。 A、派生类是基类的子集;B、析构函数不能被继承;C、子类型关系是可逆的;D、派生类是基类的子类型; 面向对象程序设计课程考试试卷(C) 一、 填空题(每空1分,共20分)。 1. 所有的面向对象程序设计语言,都支持三个共同的本质特征、。 2. 为了解决程序中函数调用的效率问题,引入了,定义时需在函数前面加上说明;为了提高程序的运行效率,引入了,定义时需在函数前面加上说明。 3. 在类的定义当中,缺省的成员是成员。 4. 请填写下列表格(填写派生类中成员的类型)。 派生类继承方式 基类中成员类型 public private protected public private 不可见 不可见 不可见 protected 5. 利用成员函数对二元运算符进行重载时,其左操作数为,右操作数为。 6. 设置虚基类的目的是,可通过标识虚基类。 7. 动态联编是在的支持下实现的,它通过来调用该函数操作。 二、 选择题(每题2分,共20分)。 1. 下列关于类型转换的描述中,()是错误的。 A、在不同类型操作数组成的表达式中,其表达式类型一定是最高类型double型; B、逗号表达式的类型是最后一个表达式的类型; C、赋值表达式的类型是左值的类型; D、由低向高的类型转换是保值映射。 2. ()不是构造函数的特征。 A、构造函数的函数名与类名相同; B、构造函数可以重载; C、构造函数可以设置缺省参数; D、构造函数必须指定类型说明。 3. 在C+中,关于下列设置参数默认值的描述中,()是正确的。 A、不允许设置参数的默认值; B、设置参数默认值只能在定义函数时设置; C、设置参数默认值时,应该是先设置右边的,再设置左边的; D、设置参数默认值时,应该全部参数都设置。 4. 关于new运算符的下列描述中,()是错误的。 A、它可以用来动态创建对象和对象数组; B、使用它创建的对象或对象数组可以使用运算符delete删除; C、使用它创建对象时要调用构造函数; D、使用它创建对象数组时必须指定初始值。 5. 重载函数在调用时选择的依据中,()是错误的。 A、参数个数; B、参数的类型; C、函数名字; D、函数的类型。 6. 下列描述中,()是抽象类的特性。 A、可以说明虚函数; B、可以进行构造函数重载; C、可以定义友元函数; D、不能说明其对象。 7. ()是析构函数的特征。 A、一个类中只能定义一个析构函数; B、析构函数名与类名不同; C、析构函数的定义只能在类体内; D、析构函数可以有一个或多个参数; 8. 关于delete运算符的下列描述中,()是错误的。 A、它必须用于new返回的指针; B、它也适用于空指针; C、对一个指针可以使用多次该运算符; D、指针名前只有一对方括号符,不管所删除数组的维数。 9. const int *p说明不能修改()。 A、p指针; B、p指针指向的变量; C、p指针指向的数据类型; D、上述A、B、C三者。 10、关于子类型的描述中,()是错误的。 A、子类型就是指派生类是基类的子类型; B、一种类型当它至少提供了另一种类型的行为,则这种类型是另一种类型的子类型; C、在公有继承下,派生类是基类的子类型; D、子类型关系是不可逆的。 面向对象程序设计课程考试试卷(D) 一、 单项选择题(每题1分,共20分) 1面向对象程序设计中的数据隐藏指的是( )。 A输入数据必须输入保密口令 B数据经过加密处理 C对象内部数据结构上建有防火墙 D对象内部数据结构的不可访问性 2下列各项中不符合函数重载必须满足的条件的是( )。 A必须有不同的参数个数 B对应的参数类型必须不相同 CA和B必须同时满足 DA和B只要满足一个即可 3下列带缺省值参数的函数说明中,正确的说明是( )。 Aint Fun(int x,int y=2,int z=3); Bint Fun(int x=1,int y,int z=3); Cint Fun(int x,int y=2,int z); Dint Fun(int x=1,int y,int z=3); 4有如下的对类“CSample”的说明,其中( )是错误的。 class CSample Aint a=23; BCSample();public:C CSample(int val); D CSample(); 5已知类A中的一个成员函数的说明如下:void Set(A &a);则该函数的参数“A &a”的含义是( )。 A指向A的指针为a B将变量a的地址赋给类A C类A对象引用a用作函数的形参D变量A与a按位与后作函数参数 6若类A和类B的定义如下: class A public: int i,j; void get(); ; class B:A int i,j; protected: int k; public: void make(); ; void B:make() k=i*j; 则其中( )是非法的表达式。 Avoid get(); Bint k; Cvoid make(); 7下面的主程序中,语句( )是错误的。 class A int i; public: virtual void fun()=0; A(int a) i=a; ; class B int j; public: void fun() coutA进行数据类型的转换B用对象调用成员函数 C用对象初始化对象 D用一般类型的数据初始化对象 9下列说法中,正确的说法是( )。 A所有的运算符都能被重载 B运算符被重载时,它们的优先级与结合性不会改变 C当需要时,我们可以自定义一个运算符来进行重载D每个运算符都可以被重载成成员函数和友元函数 10下面对结构或类中成员的访问中,不正确的访问是( )。 A*pointer.salary; (其中pointer为指向类对象的指针) Bpointer->salary; Cx=worker.salary; (其中worker为具有类类型的对象) DLocation &rA=A1;int x=rAGetX(); (Location为已定义的类,A为对象) 二、填空题(每空2分,共20分) 1面向对象程序设计中的多态性包括静态多态性和动态多态性,前者由_机制支持,而后者则由_机制支持。 2由char const *str=”stucture”;所以定义的指针称为_,关键字const 所修饰的是_。 3引入虚基类的目的是为了解决多重继承中的_和_问题。 4派生类中所定义的虚函数的_不影响对它的动态联编,即基类中已定义的虚函数,其同名函数放在派生类中的_,都可以实现运行时多态性。 5构造函数与析构函数所调用的虚函数是_的函数,因此调用时实现的是_联编。 6C+的_规则能保证编译器调用正确的成员函数。有时为更保险地保证编译器调用正确的成员函数,可以使用_操作符。 7说明一个const成员函数(又称常量成员函数)的方法是,将const写在_之间,而且它修饰的是_。 8除析构函数外,不能带有参数的函数还有_,而且它的返回数据类型不能随便指定,而由_来决定。 9当使用new动态生成一个对象时,隐含着对_的一次调用;而当使用delete删除一个对象时,隐含着对_的一次调用。 10对某个运算符的重载,实际上是用关键字_与该运算符组成一个运算符函数,而且该运算符函数的返回类型不能是_的。 面向对象程序设计课程考试试卷(E) 一.对错题。判断以下说法的正确性,在下面表格中对应的编号下面写上“对”或“错”。(20分,每个题目2分) 1 说明函数原型时不需要指明每个函数参数的名字,只需要说明每个参数的类型和返回值类型就可以了。( ) 2 所有的表达式都有值。( ) 3 程序的编译是以文件为单位的,因此将程序分到多个文件中可以减少每次对程序修改所带来的编译工作量。 4 类的静态数据成员需要在定义每个类的对象时进行初始化。( ) 5 基类中被说明为protected和private的成员只能被其派生类的成员函数访问,不能被其它的函数访问。( ) 6 当将一个类S定义为另一个类A的友元类时,类S的所有成员函数都可以直接访问类A的所有成员。( ) 7 当函数的返回值是数组类型的,传递的是数组第一个元素的地址。( ) 8 如果派生类的成员函数的原型与基类中被定义为虚函数的成员函数原型相同,那么,这个函数自动继承基类中虚函数的特性。( ) 9 字符串hello,world”在内存中存放时,占用11个字节的空间。( ) 10. 用new动态申请的内存空间,必须用delete来释放 。( ) 二、简单编程题。根据程序要求,写出函数的完整定义。(共25分) 1(本小题15分)写一个函数,找出给定字符串中数字字符(即09这10个数字)的个数(如字符串”olympic2000”中数字字符的个数为4个。函数的原型为: int CalcDigital(char *str); 函数参数:str为所要处理的字符串。 函数返回值:所给字符串中数字字符的个数。 int CalcDigital(char *str) 2(本小题10分)用递归函数完成以下运算: sum(n)=12+22+n2 函数的原型如下: long sum(int n); 该函数完成12+22+n2的运算,并返回运算结果,其中n>0。 提示:你可以使用递归表达式:sum(n)=sum(n-1)+n2 long sum(int n) 面向对象程序设计课程考试试卷(F) 一、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。每小题2分,共40分) 1.C+对C语言作了很多改进,即从面向过程变成为面向对象的主要原因是( ) A.增加了一些新的运算符 B.允许函数重载,并允许设置缺省参数 C.规定函数说明符必须用原型 D.引进了类和对象的概念 2.下列符号不能组成标识符的是( ) A.连接符 B.下划线 C.大小写字母 D.数字字符 3.类型修饰符unsigned不能修饰( ) A. char B. int C. long int D. float 4.在int a=3,int *p=&a;中,*p的值是( ) A.变量a的地址值 B.无意义 C.变量p的地址值 D.3 5.下列关于指针的操作中,错误的是( ) A.两个同类型的指针可以进行比较运算 B.可以用一个空指针赋给某个指针 C.一个指针可以加上两个整数之差 D.两个同类型的指针可以相加 6.重载函数在调用时选择的依据中,错误的是( ) A.函数的参数 B.参数的类型 C.函数的名字 D.函数的类型 7.一个函数功能不太复杂,但要求被频繁调用,选用( ) A.内联函数 B.重载函数 C.递归函数 D.嵌套函数 8.下列不是描述类的成员函数的是( ) 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的友元 16.在类中声明转换函数时不能指定( ) A.参数 B.访问权限 C.操作 D.标识符 17.在公有继承的情况下,基类成员在派生类中的访问权限( ) A.受限制 B.保持不变 C.受保护 D.不受保护 18.C+类体系中,不能被派生类继承的有( ) A.转换函数 B.构造函数 C.虚函数 D.静态成员函数 19.假定AB为一个类,则执行AB x;语句时将自动调用该类的( ) A.有参构造函数 B.无参构造函数 C.拷贝构造函数 D.赋值构造函数 20.C+语言建立类族是通过( ) A.类的嵌套 B.类的继承 C.虚函数 D.抽象类 二、填空题(每空2分,共20分) 1.对象的三大基本特性是多态性、_、封装性。 2.C+语言的函数参数传递方式有传值和_。 3.重载赋值操作符时,应声明为_函数。 4.用_声明的基类称为虚基类。 5.用_声明函数称为虚函数。 6.派生类对基类继承控制访问有三种。派生类可以定义其基类中不具备的_。 7.静态成员是对象的成员,_函数不是类的成员。 8.在函数体之前加_关键字可以防止覆盖函数改变数据成员的值。 9.一个const对象只能访问_成员函数。 10.使用友元函数是为了提高程序效率,且节约了_开销。 面向对象程序设计课程考试试卷(G) 一、 填空题(每空1分,共20分)。 1.所有的面向对象程序设计语言,都支持三个共同的本质特征、。 2.为了解决程序中函数调用的效率问题,引入了,定义时需在函数前面加上说明;为了提高程序的运行效率,引入了,定义时需在函数前面加上说明。 3.在类的定义当中,缺省的成员是成员。 4.请填写下列表格(填写派生类中成员的类型)。 派生类继承方式 基类中成员类型 public private protected public private 不可见 不可见 不可见 protected 5.利用成员函数对二元运算符进行重载时,其左操作数为,右操作数为。 6.设置虚基类的目的是,可通过标识虚基类。 7.动态联编是在的支持下实现的,它通过来调用该函数操作。 二、 选择题(每题2分,共20分)。 1.下列关于类型转换的描述中,()是错误的。 A、在不同类型操作数组成的表达式中,其表达式类型一定是最高类型double型; B、逗号表达式的类型是最后一个表达式的类型; C、赋值表达式的类型是左值的类型; D、由低向高的类型转换是保值映射。 2.()不是构造函数的特征。 A、构造函数的函数名与类名相同; B、构造函数可以重载; C、构造函数可以设置缺省参数; D、构造函数必须指定类型说明。 3.在C+中,关于下列设置参数默认值的描述中,()是正确的。 A、不允许设置参数的默认值; B、设置参数默认值只能在定义函数时设置; C、设置参数默认值时,应该是先设置右边的,再设置左边的; D、设置参数默认值时,应该全部参数都设置。 4.关于new运算符的下列描述中,()是错误的。 A、它可以用来动态创建对象和对象数组; B、使用它创建的对象或对象数组可以使用运算符delete删除; C、使用它创建对象时要调用构造函数; D、使用它创建对象数组时必须指定初始值。 5.重载函数在调用时选择的依据中,()是错误的。 A、参数个数; B、参数的类型; C、函数名字; D、函数的类型。 6.下列描述中,()是抽象类的特性。 A、可以说明虚函数;B、可以进行构造函数重载; C、可以定义友元函数; D、不能说明其对象。 7.()是析构函数的特征。 A、一个类中只能定义一个析构函数; B、析构函数名与类名不同; C、析构函数的定义只能在类体内; D、析构函数可以有一个或多个参数; 8.关于delete运算符的下列描述中,()是错误的。 A、它必须用于new返回的指针; B、它也适用于空指针; C、对一个指针可以使用多次该运算符; D、指针名前只有一对方括号符,不管所删除数组的维数。 9.const int *p说明不能修改()。 A、p指针; B、p指针指向的变量; C、p指针指向的数据类型; D、上述A、B、C三者。 10、关于子类型的描述中,()是错误的。 A、子类型就是指派生类是基类的子类型; B、一种类型当它至少提供了另一种类型的行为,则这种类型是另一种类型的子类型; C、在公有继承下,派生类是基类的子类型; D、子类型关系是不可逆的。 六、 定义一个表示三维空间坐标点的类,并对下列运算符重载。(共9分) 1、(5分) 2、 > :如果A点到原点的距离大于B点到原点的距离,则A>B为真,否则为假。(4分) 面向对象程序设计课程考试试卷(H) 一、 选择题(每题2分,共30分) 1面向对象程序设计中的数据隐藏指的是()。 A、输入数据必须输入保密口令; B、数据经过加密处理; C、对象内部数据结构上建有防火墙; D、对象内部数据结构的不可访问性; 2下列描述中,不符合函数重载必须满足的条件的是()。 A、必须有不同的参数个数; B、对应的参数类型必须不相同; C、A和B必须同时满足; D、A和B只要满足一个即可; 3下列带缺省值参数的函数说明中,正确的说明是()。 A、int Fun(int x,int y=2,int z=3); B、int Fun(int x=1,int y,int z=3); C、int Fun(int x,int y=2,int z); D、int Fun(int x=1,int y,int z=3); 4有如下的对类“CSample”的说明,其中()是错误的。 Class CSample A、int a=23; B、CSample(); C、CSample(int val); D、 CSample();。 5()是析构函数的特征。 A、析构函数可以有一个或多个参数; B、析构函数名与类名不同; C、析构函数的定义只能在类体内; D、一个类中只能定义一个析构函数; 6关于成员函数特征的下列描述中,()是错误的。 A、成员函数一定是内联函数; B、成员函数可以重载; C、成员函数可以设置缺省参数值; D、成员函数可以是静态的; 7拷贝(复制)构造函数的作用是()。 A、进行数据类型的转换; B、用对象调用成员函数; C、用对象初始化对象; D、用一般类型的数据初始化对象; 8友元的作用是()。 A、提高程序的运用效率; B、加强类的封装性; C、实现数据的隐藏性; D、增加成员函数的种类; 9关于new运算符的下列描述中,()是错误的。 A、它可以用来动态创建对象和对象数组;B、使用它创建的对象或对象数组可以使用运算符delete删除; C、使用它创建对象时要调用构造函数; D、使用它创建对象数组时必须指定初始值; 10关于delete运算符的下列描述中,()是错误的。 A、它必须用于new返回的指针; B、使用它删除对象时要调用析构函数; C、对一个指针可以使用多次该运算符; D、指针名前只有一对方括号符号,不管所删除数组的维数。 11const int *p说明不能修改()。 A、p指针; B、p指针指向的变量;C、p指针指向的数据类型; D、上述A、B、C三者; 12已知:print()函数是一个类的常成员函数,它无返回值,下列表示中()是正确的; A、void print() const; B、const void print();C、void const print(); D、void print(const); 13派生类的对象对它的基类成员中()是可以访问的。 A、公有继承的公有成员;B、公有继承的私有成员; C、公有继承的保护成员; D、私有继承的公有成员; 14设置虚基类的目的是()。 A、简化程序; B、消除二义性; C、提高运行效率; D、减少目标代码; 15下列描述中,正确的是() A、虚函数是一个static 类型的成员函数; B、虚函数是一个非成员函数; C、抽象类是指具有纯虚函数的类; D、抽象类可以说明其对象; 二、判断下列描述的正确性,正确填T,错误填F。(每题2分,共30分) 1C+中标识符内的大小写字母是没有区别的。() 2C+是一种以编译方式实现的高级语言。() 3计算函数参数顺序引起的二义性是由不同的编译系统决定的。() 4返回值类型、参数个数和类型都相同的函数也可以重载。() 5使用关键字class定义的类中缺省的访问权限是私有(private)的。() 6类的私有成员只能被类中的成员函数访问,任何类以外的函数对它们的访问都是非法的。() 7多继承情况下,派生类的构造函数的执行顺序取决于成员初始化列表中的顺序。() 8在公有继承中,基类中的公有成员和私有成员在派生类中都是可见的。() 9在私有继承中,基类中所有成员对派生类都是不可见的。() 10在保护继承中,对于垂直访问等同于公有继承,对于水平访问等同于私有继承。() 11构造函数可以声明为虚函数。() 12在析构函数中调用虚函数时,采用动态束定。() 13在一个成员函数内调用一个虚函数时,对该虚函数的调用进行动态束定。() 14公有继承可以实现子类型。() 15构造函数可以声明为纯虚函数。() 面向对象程序设计课程试卷(I) 一, 选择题(每题2分,共30分) 1面向对象程序设计中的数据隐藏指的是()。 A、输入数据必须输入保密口令; B、数据经过加密处理; C、对象内部数据结构上建有防火墙; D、对象内部数据结构的不可访问性; 2下列描述中,不符合函数重载必须满足的条件的是()。 A、必须有不同的参数个数; B、对应的参数类型必须不相同; C、A和B必须同时满足; D、A和B只要满足一个即可; 3下列带缺省值参数的函数说明中,正确的说明是()。 A、int Fun(int x,int y=2,int z=3); B、int Fun(int x