C++超经典练习题(配答案).doc_第1页
C++超经典练习题(配答案).doc_第2页
C++超经典练习题(配答案).doc_第3页
C++超经典练习题(配答案).doc_第4页
C++超经典练习题(配答案).doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1.C+语言属于( )。(选择一项)A) 自然语言 B) 机器语言 C)面向对象语言 D) 汇编语言2.下面选项中不属于面向对象程序设计特征的是( ) 。(选择一项)A)继承性 B)多态性 C)相似性 D)封装性3.可用作C+语言用户标识符的一组标识符是( )。(选择一项)A) void define +WORD B) a3_b3 _123 YNC) for -abc CaseD) 2a DO sizeof4.假定一个二维数组的定义语句为“int a34=3,4,2,8,6;”,则元素a21的值为( )。(选择一项)A) 0 B) 4 C) 8 D) 65.下列情况中,哪一种情况不会调用拷贝构造函数 ( )(选择一项)A)用派生类的对象去初始化基类对象时B)将类的一个对象赋值给该类的另一个对象时C)函数的形参是类的对象,调用函数进行形参和实参结合时D)函数的返回值是类的对象,函数执行返回调用者时6.以下哪一关键字可用于重载函数的区分( )(选择一项)A)externB)staticC)constD)virtual7.下列有关数组的叙述中,正确的是( )(选择一项)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)3B)4C)5D)611.下列关于this指针的说法正确的是( )(选择一项)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)13B)14C)15D)1615.下面的程序段的运行结果为( )(选择一项)char str = job, *p = str;cout *(p+2) endl;A)98 B)无输出结果 C)字符b的地址 D)字符b16.下面程序的输出结果是( )(选择一项)#include 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);b.dispb();A)10,2B)12,10C)12,2D)2,217.下面程序的输出结果是( )(选择一项)#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 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)123412C)14302012D)14321218.下面程序的输出结果是( )(选择一项)#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 Samplefriend 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;void main() int sum = 0; for (int i=0; i4; i+) sum += fun(Sample(i); cout sum; A)12B)16C)10D)3420.以下程序的输出结果是:( )(选择一项)#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. 321.有如下程序段:int i=1;while(1)i+;if (i=10) break;if(i%2=0) cout*;执行这个程序段输出字符*的个数是( ) (选择一项)A. 10 B. 3 C. 4 D.522.下列关于虚基类的描述中,错误的是( ) (选择一项)A.使用虚基类可以消除由多继承产生的二义性B.构造派生类对象时,虚基类的构造函数只被调用一次C.声明 class B:virtual public A 说明类B为虚基类D.建立派生类对象时,首先调用虚基类的构造函数23.有下类定义Class A Char *a;Public:A():a(0)A(char *aa) /把aa所指字符串拷贝到a所指向的存储空间A=_;Strcpy(a,aa);A() delete a;正确的选择是( )(选择一项)A. new charstrlen(aa)+1 B. charstrlen(aa)+1C. charstrlen(aa) D. new charsizeof(aa)-124.假定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 Testpublic:Test() Test()cout#;int main()Test temp2, *pTemp2; return 0;执行这个程序输出星号(#)的个数为( )。(选择一项)A)1 B)2 C)3 D)427.有如下程序: #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;int main()MyClass obj1(1),obj2(2),obj3(obj1);obj1=obj2;return 0;运行时的输出结果是( )。(选择一项)A)1123444 B)11114444 C)121444 D)1131444428.有如下程序: #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)729.友元运算符obj+被C+编译器解释为( )。 (选择一项)A. operator+(obj) B. operator+(obj,0)B. obj.operator+( ) D. obj.operator+(0)30.对于类定义class Apublic:virtual void func1( ) void func2( ) class B:public Apublic:void func1( )coutclass B func 1end1virtual void func2( )coutclass B func 2x = a; this-y = b; 中,this的类型是( ) (选择一项) A. int B. int * C. A D. A *39.动态内

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论