(34)下面程序的运行结果为 #include
static int n; public:
A(){n=1;}
A(int num){n=num;} void print(){cout< int A::n=2; void main() { A a,b (3); a.print(); b.print(); } A)11 B)13 C)23 D)33 (35)下列不是描述类的成员函数的是 A)构造函数 B)析构函数 C)友元函数 D)拷贝构造函数 (36)继承机制的作用是 A)信息隐藏 B)数据封装 C)定义新类 D)数据抽象 (37)C++语言类体系中,不能被派生类继承的有 A)转换函数 B)构造函数 C)虚函数 D)静态成员函数 (38)下面程序的运行结果是 #include base(){cout<<\}; class base1:virtual base{ public: base1(){cout<<\}; class base2:virtual base{ public: base2(){cout<<\}; class derived:public base1,public base2{ public: derived(){cout<<\}; int main() { derived obj; return 0;} A)0123 B)3120 C)0312 D)3012 (39)对于类定义 class A{ public: virtual void func1(){} void func2(){} }; class B:public A{ public: void func1(){cout<<″class B func 1″< virtual void func2(){cout<<″class B func 2″< 下面正确的叙述是 A) A::func2()和B::func1()都是虚函数 B) A::func2()和B::func1()都不是虚函数 C) B::func1()是虚函数,而A::func2()不是虚函数 D) B::func1()不是虚函数,而A::func2()是虚函数 (40)下面关于运算符重载的描述错误的是 A)运算符重载不能改变操作数的个数、运算符的优先级、运算符的结合性和运算符的语法结构 B)不是所有的运算符都可以进行重载 C)运算符函数的调用必须使用关键字operator D)在C++语言中不可通过运算符重载创造出新的运算符 (41)下列程序的运行结果为 #include { TT a1, a2, a3; public: FF(TT b1, TT b2, TT b3){a1=b1; a2=b2; a3=b3;} TT Sum(){return a1+a2+a3;}}; void main() { FF cout< C)6 15.2 D)6.1 15 (42)下面关于C++语言的描述错误的是 A)C++语言支持数据封装 B)C++语言中引入友元没有破坏封装性 C)C++语言允许函数名和运算符重载 D)C++语言支持动态联编 (43)下面程序的运行结果为 #include int temp; temp=a++; a=b; b=temp; } void main() { int a=2,b=3; swap(a,b); cout< A)2,3 B)3,2 C)2,2 D)3,3 (44)下列关于C++语言类的描述中错误的是 A)类用于描述事物的属性和对事物的操作 B)类与类之间通过封装而具有明确的独立性 C)类与类之间必须是平等的关系,而不能组成层次结构 D)类与类之间可以通过一些方法进行通信和联络 (45)下列关于构造函数说法不正确的是 A)构造函数必须与类同名 B)构造函数可以省略不写 C)构造函数必须有返回值 D)在构造函数中可以对类中的成员进行初始化 (46)如果友元函数重载一个运算符时,其参数表中没有任何参数则说明该运算符是 A)一元运算符 B)二元运算符 C)选项A)和选项B)都可能 D)重载错误 (47)在重载一个运算符时,如果其参数表中有一个参数,则说明该运算符是 A)一元成员运算符 B)二元成员运算符 C)一元友元运算符 D)选项B)和选项C)都可能 (48)设置虚基类的目的是( ) A)简化程序 B)消除二义性 C)提高运行效率 D)减少目标代码 (49)表示在输出时显示小数位,和在文件输入时判断文件尾的函数分别是 A)showbase()和eof() B)showpoint()和eof() C)showpoint()和bad() D)showpoint()和good() (50)下列程序中画线处应填入的语句是 class Base { public: void fun(){cout<<\}; class Derived:public Base { void fun() { _____________ //调用基类的成员函数fun cout<<\} }; A)fun(); B)Base.fun(); C)Base::fun(); D)Base->fun(); (51)一个类的友元函数能够访问该类的 A)私有成员 B)保护成员 C)公有成员 D)所有成员 (52)关于静态数据成员的描述中正确的是 A)类的静态数据成员不是类的所有对象共享的数据 B)类的静态数据成员不能被类的成员函数调用 C)类的静态数据成员不能被类的构造函数调用 D)类的静态数据成员必须进行初始化 (53)下表正确的是 在父类中的访问属性 访问修饰符 在子类中的访问属性 A) public private 不能直接访问 B) protect public public C) private public 不能直接访问 D) protect private protect (54)下面这个程序的结果是 #include private:int a; public: void seta(); int geta();}; void A::seta() { a = 1;} int A::geta() { return a;} class B { private: int a; public: void seta(); int geta();}; void B::seta() {a = 2;} int B::geta() {return a;} class C : public A, public B { private:int b; public: void display();}; void C::display() { int b = geta(); cout << b;} void main() { C c; c.seta(); c.display();} A)1 B)2 C)随机输出1或2 D)程序有错 (56)下面叙述不正确的是 A)基类的保护成员在派生类中仍然是保护的成员 B)基类的保护成员在公有派生类中仍然是保护的 C)基类的保护成员在私有派生类中仍然是私有的 D)对基类成员的访问必须是无二义性 (57)类A是类B的友元,类B是类C的友元,则下列说法正确的是 A)类B是类A的友元 B)类C是类A的友元 C)类A是类C的友元 D)以上都不对 (58)若有如下类定义: classs B { void fun(){} protected; double varl; public: void fun2(){}