2022年C++超经典练习题 .pdf
1. C+语言属于 ( )。 (选择一项)A) 自然语言B) 机器语言C)面向对象语言D) 汇编语言2. 下面选项中不属于面向对象程序设计特征的是( ) 。 (选择一项)A)继承性B)多态性C)相似性D)封装性3. 可用作 C+语言用户标识符的一组标识符是( )。 (选择一项)A) void define +WORD B) a3_b3 _123 YN C) for -abc Case D) 2a DO sizeof 4. 假定一个二维数组的定义语句为“int a34=3,4,2,8,6;” ,则元素a21 的值为() 。 (选择一项)A) 0 B) 4 C) 8 D) 6 5. 下列情况中,哪一种情况不会调用拷贝构造函数() (选择一项)A)用派生类的对象去初始化基类对象时B)将类的一个对象赋值给该类的另一个对象时C)函数的形参是类的对象,调用函数进行形参和实参结合时D)函数的返回值是类的对象,函数执行返回调用者时6. 以下哪一关键字可用于重载函数的区分() (选择一项)A)extern B)static C)const D)virtual 7. 下列有关数组的叙述中,正确的是() (选择一项)A)C+中数组的存储方式为列优先存储B)数组名可以作为实参赋值给指针类型的形参C)数组下标索引从1 开始,至数组长度n 结束D)数组指针的语法形式为:类型名*数组名 下标表达式 ; 8. 下列有关继承和派生的叙述中,正确的是( ) (选择一项)A)派生类不能访问通过私有继承的基类的保护成员B)多继承的虚基类不能够实例化C)如果基类没有默认构造函数,派生类就应当声明带形参的构造函数D)基类的析构函数和虚函数都不能够被继承,需要在派生类中重新实现9. 实现运行时多态的机制是() (选择一项)A)虚函数B)重载函数C)静态函数D)模版函数10. 若有下面的函数调用:fun(a+b, 3, max(n-1, b); 其中实参的个数是() (选择一项)A)3 B)4 C)5 D)6 11. 下列关于 this 指针的说法正确的是() (选择一项)名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 1 页,共 9 页 - - - - - - - - - 第2页 共9页A)this 指针存在于每个函数之中B)在类的非静态函数中this 指针指向调用该函数的对象C)this 指针是指向虚函数表的指针D)this 指针是指向类的函数成员的指针12. 在下列关于C+函数的叙述中,正确的是() (选择一项)A)每个函数至少要有一个参数 B)每个函数都必须返回一个值C)函数在被调用之前必须先声明D)函数不能自己调用自己13. 下列运算符中,不能重载的是() (选择一项)A)& B)!= C). D) - 14. 下面程序的输出结果是() (选择一项)#include 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)13 B)14 C)15 D)16 15. 下面的程序段的运行结果为() (选择一项)char str = job, *p = str; cout *(p+2) endl; A)98 B)无输出结果C)字符 b的地址D)字符 b16. 下面程序的输出结果是() (选择一项)#include using namespace std; class A 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 2 页,共 9 页 - - - - - - - - - 第3页 共9页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); b.dispb(); A)10,2 B)12,10 C)12,2 D)2,2 17. 下面程序的输出结果是() (选择一项)#include 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 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 3 页,共 9 页 - - - - - - - - - 第4页 共9页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)134122 B)123412 C) 14302012 D)143212 18. 下面程序的输出结果是() (选择一项)#include 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 f(); p-g(); A)f+g+ B)f0+g+ C)f+g0+ D)f0+g0+ 19. 下面程序的输出结果是() (选择一项)#include using namespace std; class Sample friend long fun (Sample s) if (s.x 2) return 1; return s.x * fun(Sample(s.x-1); public: Sample (long a) x = a; private: long x; ; 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 4 页,共 9 页 - - - - - - - - - 第5页 共9页void main() int sum = 0; for (int i=0; i4; i+) sum += fun(Sample(i); cout sum; A )12 B)16 C)10 D)34 20. 以下程序的输出结果是:() (选择一项)#include using namespace std; int fun(char *s) char *p=s; while (*p!=0) p+; return (p-s); void main() coutfun(abc)endl; A0 B. 1 C. 2 D. 3 21. 有如下程序段:int i=1; while(1) i+; if (i=10) break; if(i%2=0) cout * ; 执行这个程序段输出字符*的个数是 ( ) (选择一项)A. 10 B. 3 C. 4 D.5 22. 下列关于虚基类的描述中,错误的是( ) (选择一项)A. 使用虚基类可以消除由多继承产生的二义性B. 构造派生类对象时,虚基类的构造函数只被调用一次C. 声明 class B:virtual public A 说明类 B 为虚基类D. 建立派生类对象时,首先调用虚基类的构造函数23. 有下类定义Class A Char *a; Public: 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 5 页,共 9 页 - - - - - - - - - 第6页 共9页A():a(0) A(char *aa) / 把 aa所指字符串拷贝到a 所指向的存储空间A=_; Strcpy(a,aa); A() delete a; ; 正确的选择是() (选择一项)A. new charstrlen(aa)+1 B. charstrlen(aa)+1 C. charstrlen(aa) D. new charsizeof(aa)-1 24. 假定 AA 为一个类, a 为该类私有的数据成员,GetValue( )为该类公有函数成员,它返回 a 的值, x 为该类的一个对象,则访问x 对象中数据成员a 的格式为() 。 (选择一项)A) x.a B) x.a() C) GetValue() D) x.GetValue( ) 25. 假定 AA 为一个类, int a()为该类的一个成员函数,若该成员函数在类定义体外定义,则函数头为() 。 (选择一项)A) int AA:a( ) B) int AA:a() C) AA:a() D) AA:int a() 26. 有如下程序:#include using namespace std; class Test public: Test() Test()cout#; ; int main() Test temp2, *pTemp2; return 0; 执行这个程序输出星号(#)的个数为() 。 (选择一项)A)1 B)2 C)3 D)4 27. 有如下程序:#include using namespace std; class MyClass public: MyClass(int i=0)cout1; MyClass(const MyClass&x)cout2; MyClass& operator=(const MyClass&x)cout3; return *this; MyClass()cout4; ; 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 6 页,共 9 页 - - - - - - - - - 第7页 共9页int main() MyClass obj1(1),obj2(2),obj3(obj1); obj1=obj2; return 0; 运行时的输出结果是() 。 (选择一项)A)1123444 B)11114444 C)121444 D)11314444 28. 有如下程序:#include using namespace std; class point public: static int number; public: point() number+; point() number-; ; int point:number=0; void main() point *ptr; point A,B; point *ptr_point=new point3; ptr=ptr_point; point C; delete ptr; coutpoint:number; 程序结果为 ( ) (选择一项)A)3 B) 4 C)6 D)7 29. 友元运算符obj+被 C+编译器解释为() 。 (选择一项)A. operator+(obj) B. operator+(obj,0) B. obj.operator+( ) D. obj.operator+(0) 30.对于类定义class A public:virtual void func1( ) void func2( ) ;class B:public A public:void func1( )coutclass B func 1end1;名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 7 页,共 9 页 - - - - - - - - - 第8页 共9页virtual void func2( )cout class B func 2x = a; this-y = b; 中, this 的类型是 ( ) (选择名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 8 页,共 9 页 - - - - - - - - - 第9页 共9页一项)A. int B. int * C. A D. A * 39.动态内存分配的主要目的是() (选择一项)A.使程序按动态联编方式运行B.正确合理的使用内存C.提高程序的运行速度D.提高程序的可维护性40.设置虚基类的目的是( ) (选择一项)A.简化程序B.消除二义性C.提高运行效率D.减少目标代码答案:15 C C B A B 610 C B C A A 1115 B C C B D16 20 C C C C D 21 25 C C A D A 26 30 B A A D C 31 35 A D B D D 36 40 A A C B B 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 9 页,共 9 页 - - - - - - - - -