东莞理工学院面向对象程序设计基础试卷选择题
- 格式:doc
- 大小:43.00 KB
- 文档页数:9
CoreJavaOOP考试题考试时间:90分钟考试总分:100分一、选择题(不定项选择)(22*4=88)1.类A,B的定义如下:class A {private int a = 100;A() {System.out.print("A()");System.out.println(a);}}class B extends A {private int a = 200;B() {System.out.print("B()");System.out.println(a);}}运行下面的代码:new B();输出的结果是:(A )。
A.A() 100B() 200B.A() 200B() 200C.B() 200A() 100D.B() 200A() 2002.下列说法正确的是(D )A.所有类都必须定义构造方法(构造器)B.构造方法必须初始化类的所有数据成员C.子类定义了构造器后,不再调用父类的构造器D.构造方法可以访问类的非静态成员3.在Java中,哪个关键字使类不能派生子类?, (A )A : finalB : publicC : privateD : native4.class Base{static void test(){System.out.println(“Base.test()”);}}public class Child extends Base{static void test(){System.out.println(“Child.test()”);}public static void main(String[] args){Base base = new Child();Child child = new Child();base.test();child.test();}}程序运行的结果是( C )A.Child.test() Child.test()B.Child.test() Base.test()C.Base.test() Child.test()D.Base.test() Base.test()5.下列哪些叙述是正确的(CD )A.在一个类中,方法不能与类名相同B.a bstract 可以修饰属性、方法和类C.实例方法可直接调用本类的static方法和非static方法D.static方法不能调用非static方法6.以下说法正确的是(ABC)A.子类不能继承父类的构造方法B.子类的构造方法可以访问父类的构造方法C.子类不可直接访问父类的私有属性D.子类可以重写父类的所有方法7.分析选项中关于Java中this关键字的说法正确的是( A )A.this关键字是在对象内部指代自身的引用B.this关键字可以在类中的任何位置使用C.this关键字和类关联,而不是和特定的对象关联D.同一个类的不同对象共用一个this8 下列关于继承的说法哪个是正确的?( B )A.子类只继承父类public方法和属性B.子类继承父类的非私有属性和方法C.子类只继承父类的方法,而不继承父类的属性D.子类将继承父类的所有属性和方法9.在Java中,关于final关键字的说法正确的是(AC )A.final修饰的变量,一旦赋值就不能被更改B.final修饰的类只能被一个子类继承C.final修饰的方法,不能在子类中被覆盖D.final修饰的方法,不能被子类继承10. String s=new String(“xyz”)创建了几个对象(C);A. 0B. 1C. 2D. 311.下列语句的序列执行后,k的值是( B )int m=3,n=6,k=0;While((m++)<(--n))++k;A.0B.1C.2D.312.下列哪一项不是面向对象的典型特征(D )A.封装 B.继承C. 多态D.抽象13.(多选)在java中,关于构造方法,下列说法正确的是(ABD )A.构造方法的名称必须与类名相同B.构造方法可以带参数C.构造方法不可以重载D.构造方法绝对不能有返回值14.下面关于变量的说法正确的是(BC )A.实例变量可以通过类名直接调用B.类变量可以通过类名直接调用C. Java中的参数传递都是值传递D. 在不同的作用域不能定义相同的变量15.下列代码有编译错误的是第(C )行1)public class Test{2)public static void main(String[] args){3)int[] arr1 = new int[12];4)char[] arr2 = new char[];5)int[] arr3 = {};6)Object[] obj = new Object[4];7)Object obj1 = new object[9];8)}9)}A.5)B.5) 7)C.4) 7)D.4)16.下列代码的运行结果是(A )public class Test{private int num;private static Test test;public Test(int num){this.num = ++ num;}static{int num = 16;test = new Test(num);++ test.num;}public static void main(String[] args){test = new Test(13);System.out.println(test.num);}}A.14B.15C.16D.1717.仔细分析下列代码,请指出错误的行(D )。
《面向对象程度设计》课程知识复习学习材料试题与参考答案一、单选题1.下列(C)的调用方式是引用调用。
A.形参和实参都是变量B.形参是指针,实参是地址值C.形参是引用,实参是变量D.形参是变量,实参是地址值2.假定CTest为一个类,并且有一无默认值的的有参构造函数和一无参构造函数,则执行“CTest objTest;”语句时将自动调用该类的(B)。
A.有参构造函数B.无参构造函数C.复制构造函数D.赋值构造函数3.假定AA为一个类,a为该类私有的数据成员,GetValue()为该类公有函数成员,它返回a 的值,x为该类的一个对象,则访问x对象中数据成员a的格式为(D)。
A.x.aB.x.a()C.x->GetValue()D.x.GetValue()4.C++编译系统确定调用是具体对象的过程称为关联。
C++有(B)关联。
A.1种B.2种C.3种D.4种5.下面有关重载函数的说法中正确的是(C)。
A.重载函数必须具有不同的返回值类型B.重载函数形参个数必须不同C.重载函数必须有不同的形参列表D.重载函数名可以不同6.如果表达式a==b中的“==”是作为普通函数重载的运算符,若采用运算符函数调用格式,则可表示为(C)。
A.a.operator==(b)B.b.operator==(a)C.operator==(a,b)D.operator==(b,a)7.下列对继承关系的描述中,(D)是正确的。
A.在公有继承中,基类中的公有成员和私有成员在派生类中都是可见的;B.在公有继承中,基类中只有公有成员对派生类的对象是可见的;C.在私有继承中,基类中只有公有成员对派生类是可见的;D.在私有继承中,基类中的保护成员对派生类的对象是可见的;8.定义p并使p指向动态空间中的包含30个整数的数组所使用的定义语句为(A)。
A.int *p=new int[30];B.int *p=new int(30);C.int *p=new [30];D.*p=new int[30];9.在一个类中可以对一个运算符进行(D)重载。
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. 简述面向对象程序设计中的“封装”概念及其重要性。
面向对象程序设计样卷一、选择题( 本大题共10小题, 每题2分, 共20分)4.在下列定义的引用中, ( B )是错误的。
A. int i;B. int i;int &j = i; float &j=i;C. float i;D. char d;float &j = i; char &e = d;5. 假定BB为一个类,则执行BB y;语句时将自动调用该类的( B )A. 有参构造函数B. 无参构造函数C. 拷贝构造函数D. 赋值重载函数7.下列对派生类的描述中, ( C )是错误的。
A. 一个派生类能够作为另一个派生类的基类B.派生类至少应有一个基类C. 基类中成员访问权限继承到派生类中都保持不变D.派生类成员除了自己定义的成员外, 还包含了它的基类成员10.控制输出格式的控制符中, ( D )是设置输出宽度的。
A.wsB.endsC. setfill()D.setw()二、填空题( 本大题共10小题, 每题2分, 共20分)1.以/*开始, 以*/结束, 在/*和*/之间的部分即为注释。
2.重载函数在参数类型或参数个数上不同, 但函数名和类名_相同。
3. 假如一个类的名称为MyClass, 使用这个类的一个对象初始化该类的另一个对象时, 能够调用__拷贝______构造函数来完成此功能。
4.当删除对象时, 程序自动调用析构函数。
5. 对于每一个类的非静态成员函数, 都有一个隐含的_this_______指针。
8. 抽象类是指类里有一个函数, 是纯嘘函数。
三、改错题( 下面程序或程序段中有一处错误, 请用注释标明错误所在行的出错原因。
本大题共5小题, 每题2分, 共10分) 1. #include<iostream>using namespace std;int main(){ cout<<"This is a program."<<endl;return 0;}2. #include<iostream>using namespace std;int main(){x=3;int y=x*x;cout<<"y="<<y<<"\n";return 0;}3. #include<iostream>using namespace std;class Aa{public:Aa(int i=0){a=i; cout<<"Constructor "<<a<<endl; } ~Aa(){ cout<<"Destructor "<<a<<endl; }void print( ){cout<<a<<endl;}private:int a;};int main(){Aa al(1),a2(2);al.print();cout<<a2.a<<endl;return 0;}4.class A{int a,b;public:A(int aa,int bb=78){a=aa;b=bb;} };int main(){A x(2), y(4,9);return 0;}5. #include<iostream>using namespace std;class Test{public:static int x;};int Test :: x=20;int main(){cout<<Test::x;return 0;}四、程序分析题( 分析程序, 写出运行结果。
面向对象测试题及答案一、选择题(每题2分,共20分)1. 面向对象编程(OOP)的核心概念不包括以下哪一项?A. 类B. 继承C. 多态D. 过程2. 在Java中,以下哪个关键字用于定义类?A. classB. typeC. structD. interface3. 下列哪个选项不是Java中访问控制的关键字?A. publicB. privateC. protectedD. global4. 封装是面向对象编程的一个重要特性,它主要指的是:A. 将数据和操作数据的方法组合在一起B. 将所有数据都设为公开访问C. 只允许通过特定的方法访问数据D. 将数据和方法分离5. 在Java中,以下哪个不是构造方法的特点?A. 与类名相同B. 没有返回类型C. 可以重载D. 可以被继承6. 继承在面向对象编程中允许:A. 一个类只能继承一个类B. 一个类可以继承多个类C. 一个类可以继承多个接口D. 一个类可以同时继承多个类和接口7. 接口在Java中的主要作用是:A. 定义类B. 实现多继承C. 定义方法的实现D. 定义方法的签名8. 以下哪个是Java中实现多态的方式?A. 继承B. 接口C. 重载D. 重写9. 抽象类在Java中不能:A. 被实例化B. 包含抽象方法C. 包含具体方法D. 被继承10. 下列哪个不是Java集合框架中接口?A. ListB. SetC. MapD. Array二、简答题(每题5分,共30分)1. 简述面向对象编程的三大特性。
2. 解释什么是多态,并给出一个Java中多态的例子。
3. 什么是封装?封装在Java中是如何实现的?4. 什么是接口?接口和抽象类有什么区别?5. 什么是构造方法?构造方法的作用是什么?6. 什么是继承?继承在Java中是如何实现的?三、编程题(每题25分,共50分)1. 编写一个Java程序,定义一个名为`Car`的类,包含以下属性和方法:- 属性:品牌(String类型),颜色(String类型),速度(int 类型)- 方法:启动汽车(startCar),加速(accelerate),减速(decelerate)2. 在上述`Car`类的基础上,创建一个名为`ElectricCar`的子类,继承`Car`类,并添加一个额外的属性:电池电量(int类型),并重写`startCar`方法以显示电动汽车启动的信息。
东莞理工学院(本科)试卷(A卷)2011 --2012学年第二学期《面向对象程序设计》试卷开课单位:计算机学院,考试形式:闭、开卷,允许带入场一.单项选择题(15小题,每小题2分,共30分,请将正确答案填写在以下对应的1.下列关于C++函数的叙述中,正确的是____________。
A.每个函数至少要具有一个参数B.每个函数都必须返回一个值C.函数在被调用之前必须先声明D.函数不能自己调用自己2、下列关于类和对象的叙述中,错误的是___________。
A.一个类只能有一个对象B.对象是类的具体实例C.类是对某一类对象的抽象D.类和对象的关系是一种数据类型与变量的关系3、对于语句cout<<x<<endl;错误的是描述是___________。
A.“cout”是一个输出流对象B.“endl”的作用是输出回车换行C.“x”是一个变量D.“<<”称作提取运算符4、有如下类声明,则类MyDERIVED中保护的数据成员和成员函数的个数是___________。
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.4B.3C.2D.15、下列关于C++标识符的命名不合法的是___________。
A. iPadB. name_LIC. A&BD. _a1686、下面四个选项中,___________是用来声明虚函数的。
A.virtualB.publicC.includeing namespace7、以下___________成员函数表示纯虚函数。
java面向对象程序设计期末考试题及答案一、单项选择题(每题2分,共20分)1. 在Java中,哪个关键字用于声明一个类?A. classB. structC. interfaceD. enum答案:A2. 下列哪个是Java中的访问修饰符?A. publicB. privateC. protectedD. All of the above答案:D3. 在Java中,哪个关键字用于创建对象?A. newB. createC. makeD. instantiate答案:A4. Java中的继承是通过哪个关键字实现的?A. extendsB. inheritC. deriveD. superclass答案:A5. 在Java中,哪个关键字用于实现接口?A. implementsB. extendsC. interfaceD. abstract答案:A6. 下列哪个不是Java中的方法重载的条件?A. 方法名相同B. 参数列表不同C. 返回值类型不同D. 访问修饰符不同答案:C7. 在Java中,哪个关键字用于声明一个抽象方法?A. abstractB. virtualC. overrideD. final答案:A8. Java中的多态性可以通过哪种方式实现?A. 方法重载B. 方法覆盖C. 接口实现D. 继承答案:B9. 在Java中,哪个关键字用于声明一个内部类?A. innerB. nestedC. staticD. inner class答案:B10. Java中的垃圾回收机制是自动的吗?A. YesB. NoC. SometimesD. Depends on the JVM答案:A二、填空题(每题2分,共20分)1. Java中,一个类可以继承另一个类的______方法和属性。
答案:非私有2. Java中的______关键字用于声明一个类是不可被继承的。
答案:final3. 在Java中,______关键字用于声明一个类是抽象的。
c面向对象程序设计考试试题一、选择题(每题2分,共20分)1. 面向对象程序设计中,以下哪一个不是基本特征?A. 封装B. 继承C. 多态D. 过程2. 在Java中,以下哪个关键字用于定义类?A. classB. functionC. structD. type3. 以下哪个是Java中不允许的类名?A. MyClassB. 1MyClassC. MyClass1D. MyClass$4. 在Java中,以下哪个是正确的构造方法声明?A. void MyClass() {}B. int MyClass() {}C. MyClass MyClass() {}D. MyClass() {}5. 以下哪个关键字用于实现类的继承?A. extendsB. implementsC. overrideD. abstract6. 以下哪个关键字用于声明接口?A. classB. interfaceC. abstractD. enum7. 在Java中,以下哪个关键字用于实现多态?A. newB. superC. overrideD. implements8. 在Java中,以下哪个关键字用于定义包?A. packageB. importC. classD. interface9. 以下哪个是Java中的访问控制修饰符?A. publicB. staticC. finalD. void10. 在Java中,以下哪个是正确的方法重载声明?A. void display(int a, int b)B. int display(int a, int b)C. void display(int a, int b) {}D. void display(int a, int b) { return a + b; }二、简答题(每题10分,共30分)1. 简述面向对象程序设计中的封装、继承和多态三个基本特征。
2. 解释Java中的接口和抽象类的区别。
面向对象的程序设计一、单项选择题1、下面那种结构不是C++的控制结构()A 顺序结构B 选择结构C 循环结构D 判断结构答: D2、下列是C++语言中合法标识符的是()。
A.3three B.ifC._1oneD.while答:C3、下列是合法的C++语言语句的是()。
A.if(x>0) then x=x-1;else x=x+1;B.if(x>0) x=x-1;else x=x+1;C.if x>0 x=x-1;else x=x+1;D.if x>0 x=x-1;答:B4、下面那一种不是计算机内部表示整数的方法()A 二进制码B原码C 补码D反码答:A5、在C++语言中,下列数为合法的实数的是()。
A.5E-3B.5E-3.5C. E5D.-3.5E答:A6、C++语言中数据类型最大的是()A longB floatC intD char7、如果一个函数可以在定义中直接或间接的调用自己,这样的函数称为()。
A.函数声明B.嵌套函数C.定义函数D.递归函数答:D8、表达式0x55^0xB4的结果为()。
A.0xF5B.0x15C.0xE1D.0x1E答:C9、C++中,源代码文件后缀为()A .cppB .objC .exeD .c答: A10、0X5A&0XB7结果是()A 0X13B 0X12C 0X14D 0X15答: B二、填空题1、程序的基本控制结构包括()、()和()。
答:顺序结构,选择结构,循环结构2、用来解决问题的,与有限多个步骤组成的具体过程称为()。
答:算法3、整数类型变量a和b被初始化为3和10,则循环语句while(a<=b) a=a+2;共执行()次,执行完语句后a的值为(),b的的值为()。
答:4,11,10)。
答:警告信息,致命错误5、计算机中的数据可以分为()和()两大类。
答:数值型、字符型6、字符型数据有两种编码方法:()和()答:有美国国家标准局制定的ASCII码、IBM公司提出的EBCDIC码7、通过C++ 语言中的()机制,可以从现存类中构建其子类。
面向对象程序设计试卷一、选择题(每题2分,共20分)1. 面向对象程序设计中的三大特征是:A. 封装、继承、多态B. 抽象、封装、继承C. 封装、继承、封装D. 继承、多态、封装2. 下列哪个不是面向对象程序设计的优点?A. 代码重用B. 易于维护C. 程序复杂度低D. 可扩展性好3. 在Java中,哪个关键字用于定义类?A. classB. structC. interfaceD. type4. 以下哪个是Java中不允许的类名?A. MyClassB. 2MyClassC. MyClass2D. MyClass_5. 在面向对象程序设计中,以下哪个概念不是用于实现封装?A. 私有成员B. 公有方法C. 访问控制D. 继承6. 下列哪个不是Java的访问控制修饰符?A. publicB. privateC. protectedD. global7. 以下哪个是Java中不允许的方法名?A. myMethodB. _myMethodC. my_methodD. myMethod_8. 在Java中,哪个关键字用于实现继承?A. extendsB. inheritC. deriveD. base9. 以下哪个不是Java的多态性实现方式?A. 接口B. 抽象类C. 重载D. 重写10. 在Java中,哪个关键字用于定义接口?A. interfaceB. protocolC. abstractD. type二、简答题(每题10分,共30分)1. 简述面向对象程序设计中封装的概念,并给出一个封装的简单示例。
2. 解释什么是多态性,并说明多态性在面向对象程序设计中的重要性。
3. 描述继承在面向对象程序设计中的作用,并举例说明如何使用继承来提高代码的复用性。
三、编程题(每题25分,共50分)1. 定义一个名为`Student`的类,包含以下属性:- 姓名(String类型)- 学号(String类型)- 年龄(int类型)并为该类实现以下方法:- 一个构造函数,用于初始化姓名、学号和年龄。
一、选择题1 以下不合法的用户标识符是(C)A f2_G3B IfC 4dD _82 double型数据所占字节数是(D)A 2B 4C 6D 83 若变量都已经正确定义,以下表达式中非法的是(B)A a/=b+cB a %C a=1/2*(x=y=10 , x*3)D a=b=c4 关于if语句中圆括号内的表达式,以下叙述正确的是:(D)A 只能用逻辑表达式B 只能用关系表达式C 只能用关系表达式或逻辑表达式D 可以用任意表达式5 若a=1、b=15、c=0,则表达式a>b>c的值为(B)A 1B 0C 非0D 真6 以下选项中不是字符常量的是(D)A ‘\v’B ‘\x6d’C ‘w’D “0”7 以下叙述中不正确的是:(C)A 函数名属于用户标识符,其起名规则与变量相同B 形参只能是变量C 为保证程序的正确运行,函数中定义的变量不能与其他函数中定义的变量同名D 函数中定义的变量可以与其他函数中定义的变量同名8 有定义语句:int a[]={1,2,3,4,5,6,7},*p=A *q=&a[5]; (A)则下列表达式中值不等于5的是A *q--B *--qC --*qD q-p9 若有以下定义语句:int a[10]={1,2,3,4,5,6,7,8,9,10};(D)则下列哪个是对该数组元素的正确引用A a[10]B a[a[3]-5]C a[a[9]] Da[a[4]+4]10 若有以下定义语句:double a[5],*p=a ; int i=0 ; (B)则对 a数组元素的错误引用是:A a[i]B a[5]C p[4]D p[i]11 以下非法的字符串常量为(B)A “\\ \\”B “It’s”C “m=\abc”D “$”12 字符串:”\\0211\”xab” 的长度为(B)A 1B 9C 10D 1113 以下叙述中错误的是:(C)A 局部变量的定义可以在函数体内部B 全局变量的定义可以在函数以外的任何位置C 同一程序中,全局变量和局部变量不能同名D 函数的形参属于局部变量14 以下叙述中错误的是:(B)A 变量的作用域取决于变量定义语句出现的位置B 同一程序中,全局变量的作用域一定比局部变量的作用域大C 局部变量的作用域是在定义它的函数体内D 全局变量的作用域是从定义位置开始至源文件结束15 定义一个结构体变量时,系统分配给他的内存单元是:(A)A 全部成员所需的内存量之和B 全部成员所需的内存量的最大值C 固定的容量D 结构体中第一个成员所需的容量16 要运行一个C语言编写的应用程序如下:(B)main() {printf("hello world");}在VC6的开发环境中,应该建立哪种类型的工程(B)A Win32 ApplicationB Win32 Console ApplicationC MFC AppWizard (exe)D Utility Project?17 在VC6环境中,把应用程序输入后,编译链接后出现如下错误,(192) : fatal error C1010: unexpected end of file while looking for precompiled header directive应该如何解决:(C)A 检查编写程序中的大小写问题B 检查编写程序中是否有未闭合的大括号C 检查是否在程序最开始包含了预编译头文件D 检查是否有未定义的变量名?18 关于VC6建立的工程的说法,正确的是:(C)A 工程只能包含.cpp和.h类型的文件B 工作区文件的后缀是.dspC 用鼠标双击工作区文件可以打开整个工程D 在VC的FileView中可以看到工程中所有的文件,包括工作区文件,项目文件等?19 下面关于在VC6环境下调试运行的说法错误的是(A)A 设置合适的断点(F9),按Ctrl+F5开始调试运行B 设置合适的断点,按F5开始运行C 调试时,可以随时观察断点处的变量值D 在调试运行过程中,可随时按下Stop Debugging(Shift+F5)结束调试运行20 在VC6开发环境中,双击工作区文件,就能打开该工作区及其包含的工程,其后缀是:(A)A .dswB .dspC .rcD .clw?21下列有关内联函数的叙述中,正确的是(D)A 内联函数在调用时发生控制转移B 使用内联函数有利于代码重用C 必须通过关键字inline来定义D 是否最后内联由编译器决定22 下列情况中,哪一种情况不会调用拷贝构造函数( B )A 用派生类的对象去初始化基类对象时B 将类的一个对象赋值给该类的另一个对象时C 函数的形参是类的对象,调用函数进行形参和实参结合时D 函数的返回值是类的对象,函数执行返回调用者时23 以下哪一关键字可用于重载函数的区分(C)A externB staticC constD virtual24 下列有关数组的叙述中,正确的是( B )A C++中数组的存储方式为列优先存储B 数组名可以作为实参赋值给指针类型的形参C 数组下标索引从1开始,至数组长度n结束D 数组指针的语法形式为:类型名 *数组名[下标表达式];25 下列有关继承和派生的叙述中,正确的是( C )A 派生类不能访问通过私有继承的基类的保护成员B 多继承的虚基类不能够实例化C 如果基类没有默认构造函数,派生类就应当声明带形参的构造函数D 基类的析构函数和虚函数都不能够被继承,需要在派生类中重新实现26 实现运行时多态的机制是( A )A 虚函数B 重载函数C 静态函数D 模版函数27 下列字符串中,正确的C++标识符是(D)A enumB 2bC foo-9D _3228 若有下面的函数调用:fun(a+b, 3, max(n-1, b));其中实参的个数是( A)A 3B 4C 5D 629 以下哪个关键字对应的属性破坏了程序的封装性( B )A constB friendC publicD protected30 以下哪个符号(或组合)是作用域限定符( C )A ->B .C ::D []31 下列关于this指针的说法正确的是( B)A this指针存在于每个函数之中B 在类的非静态函数中this指针指向调用该函数的对象C this指针是指向虚函数表的指针D this指针是指向类的函数成员的指针32 在下列关于C++函数的叙述中,正确的是(C)A 每个函数至少要有一个参数B 每个函数都必须返回一个值C 函数在被调用之前必须先声明D 函数不能自己调用自己33 下列运算符中,不能重载的是(C)A &&B !=C .D ->34 对于类的常成员函数的描述正确的是(A)A 常成员函数不修改类的数据成员B 常成员函数可以对类的数据成员进行修改C 常成员函数只能由常对象调用D 常成员函数不能访问类的数据成员35 使用如setw()的操作符对数据进行格式输出时,应包含的头文件是(D)A iostreamB fstreamC stdioD iomanip36 若有以下类定义class MyClass {public:MyClass() { cout << 1; }};则执行语句MyClass a,b[2],*p[2];后,程序的输出结果是(B)A 11B 111C 1111D 1111137 下面程序的输出结果是(B)#include <iostream>using namespace std;int i = 0;int fun(int n){static int a = 2;a++;return a+n;}void main(){int k = 5;{int i = 2;k += fun(i);}k += fun(i);cout << k;}A 13B 14C 15D 1638 下面程序的输出结果是(A)#include <iostream >using namespace std;void swap1( int &v1, int &v2){int tmp = v2;v2 = v1;v1 = tmp;}void swap1( int *v1, int *v2){int tmp= *v2;*v2 = *v1;*v1 = tmp;}void main(){int i = 10, j = 20; swap1(i,j); swap1(&i,&j);cout<<i<<”,”<<j<<endl;}A 10,20B 20,10C 10,10D 20,2039 下面的程序段的运行结果为(D)char str[] = "job", *p = str;cout << *(p+2) << endl;A 98B 无输出结果C 字符’b’的地址D 字符’b’40 下面程序的输出结果是( C )#include <iostream>using namespace std;class A{public:A (int i) { x = i; }void dispa () { cout << x << “,”; }private :int x ;};class B : public A{public:B(int i) : A(i+10) { x = i; }void dispb() { dispa(); cout << x << endl; }private :int x ;};void main(){B b(2);();}A 10,2B 12,10C 12,2D 2,241 下面程序的输出结果是( C)#include <iostream>using namespace std;class Base{public:Base(int i) { cout << i; }~Base () { }};class Base1: virtual public Base{public:Base1(int i, int j=0) : Base(j) { cout << i; }~Base1() {}};class Base2: virtual public Base{public:Base2(int i, int j=0) : Base(j) { cout << i; }~Base2() {}};class Derived : public Base2, public Base1{public:Derived(int a, int b, int c, int d) : mem1(a), mem2(b), Base1(c), Base2(d), Base(a){ cout << b; }private:Base2 mem2;Base1 mem1;};void main() { Derived objD (1, 2, 3, 4); }A 134122B 123412CD 14321242 以下程序对一维坐标点类Point进行运算符重载,输出结果是(A)#include <iostream>using namespace std;class Point {public:Point (int val) { x = val; }Point operator ++() { x++; return *this; }Point operator ++(int) { Point old = *this; ++(*this); return old; }Point operator +(Point a) { x += ; return *this; }int GetX() const { return x; }private:int x;};int main(){Point a(10);cout << (++a).GetX();cout << a++.GetX();}A 1111B 1011C 1112D 101043 下面程序的输出结果是(C)#include <iostream>using namespace std;class Base{public:virtual void f() { cout << “f0+”; }void g() { cout << “g0+”; }};class Derived : public Base{public:void f() { cout << “f+”; }void g() { cout << “g+”; }};void main() { Derived d; Base *p = &d; p->f(); p->g(); }A f+g+B f0+g+C f+g0+D f0+g0+44 下面程序的输出结果是(C)#include <iostream>using namespace std;int countp=0;class Point{int X,Y;public:Point(int x=0,int y=0) { X=x; Y=y;}Point(Point &p){X=;Y=;countp++;}friend Point myfun(Point p1 ,Point p2 ,const Point &p3);};Point myfun(Point p1,Point p2,const Point &p3){Point tmp++,++;return tmp;}void main(){Point pp0,pp1(1,2),pp2(1);myfun(pp0,pp1,pp2);std::cout<<countp<<endl;}A 0B 4C 3D 645 下面程序的输出结果是( C )#include <iostream>using namespace std;class Sample{friend long fun (Sample s){if < 2) return 1;return * fun(Sample);}public:Sample (long a) { x = a; }private:long x;};void main(){int sum = 0;for (int i=0; i<6; i++){sum += fun(Sample(i));}cout << sum;}A 120B 16C 154D 34。