




已阅读5页,还剩31页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1. 在语句cindata;中,cin是(类与对象3)C+的关键字类名对象名函数名2. 有如下程序:#include using namespace std;class Complexdouble re, im;public:Complex(double r, double i) : re(r), im(i) double real() const return re; double image() const return im; Complex& operator += (Complex a)re += a.re;im += a.im;return *this;ostream& operator (ostream& s, const Complex& z)return s(z.real(),z.image();int main()Complex x(1,-2), y(2,3);cout (x+=y) endl;return 0;执行这个程序的输出结果是(1,-2)(2,3)(3,5)(3,1)3. 执行如下的程序段后,输出结果是( )。cout.fill(*); cout.width(6); cout.fill(#); cout 123 endl;#123123#*123123*4. 在进行完任何C+流的操作后,都可以用C+流的有关成员函数检测流的状态;其中只能用于检测输入流状态的操作函数名称是()faileofbadgood5. 在C+语言中,打开一个文件就是将这个文件与一个( )建立关联。结构流类对象6. 下面关于C+流的叙述中,正确的是( )。cin是一个输入流对象可以用ifstream定义一个输出流对象执行语句序列char *y=PQMN; couty; 将输出字符串 PQMN的地址执行语句序列char x80; cin.getline(x,80); 时,若键入Happy new year则x中的字符串是Happy7. 在说明语句:int *f();中,标识符f代表的是().一个用于指向整型数据的指针变量一个用于指向一维数组的行指针一个用于指向函数的指针变量一个返回值为指针型的函数名8. 有如下函数模板定义:template T func(T x, T y) return x*x+y*y; 在下列对func的调用中,错误的是( )。 func(3, 5);func(3.0, 5.5); func (3, 5.5); func(3, 5.5);在下列函数原型中,可以作为类AA构造函数的是( )。void AA(int);int AA( );AA(int)const;AA(int);9. 有如下函数模板定义:template T func(T x,T y) return x*x+y*y;在下列对 func 的调用中,错误的是( )。func(3,5);func(3.0,5.5);func(3,5.5);func(3,5.5);10. 有如下函数模板templateT square(T x) return x* x; 其中T是函数形参函数实参模板形参模板实参11. 在C+中,用于实现运行时多态性的是( )。内联函数重载函数模板函数虚函数12. #include using namespace std;class Apublic:virtual void func1( ) coutA1; void func2( ) coutA2; ;class B:public Apublic:void func1( ) coutB1; void func2( ) coutfunc1( );p-func2( );return 0;运行此程序,屏幕上将显示输出B1B2A1A2B1A2A1B213. 要实现运行时的多态性,必须通过( )调用虚函数基类指针派生类指针对象名派生类名14. 要实现动态联编,派生类中的虚函数( )返回的类型可以与虚函数的原型不同参数个数可以与虚函数的原型不同参数类型可以与虚函数的原型不同以上都不对15. 要实现动态联编,必须通过( )调用虚函数对象指针成员名限定对象名派生类名16. 虚函数支持多态调用,一个基类的指针可以指向派生类的对象,而且通过这样的指针调用虚函数时,被调用的是指针所指的实际对象的虚函数,而非虚函数不支持多态调用。有如下程序:#include using namespace std;class Basepublic:virtual void f()coutf0+;void g()coutg0+;class Derived:public Basepublic:void f()coutf+;void g()coutf();p-g();return 0;运行时输出的结果是( )。f+g+f0+g+f+g0+f0+g0+17. 下面四个选项中,( )是用来声明虚函数的。virtualpublicincludeusing namespace18. 下面描述中,正确的是( )。virtual可以用来声明虚函数含有纯虚函数的类是不可以用来创建对象的,因为它是虚基类即使基类的构造函数没有参数,派生类也必须建立构造函数静态数据成员可以通过成员初始化列表来初始化19. 下面关于C+语言的描述错误的是( )。C+语言支持数据封装C+语言中引入友元没有破坏封装性C+语言允许函数名和运算符重载C+语言支持动态联编20. 有如下程序#includeusing namespace std;class Baseprotected:Base() cout A; Base(char c) cout c; ;class Derived :public Basepublic:Derived(char c) cout c; ;int main()Derived d1(B);return 0;执行这个程序屏幕上将显示输出_。BBAABBB21. 在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是( )。派生类的对象可以赋给基类的对象派生类的对象可以初始化基类的引用派生类的对象可以直接访问基类中的成员派生类的对象的地址可以赋给指向基类的指针22. 在公有继承的情况下,允许派生类直接访问的基类成员包括?公有成员公有成员和保护成员公有成员保护成员和私有成员保护成员23. 在公有继承的情况下,基类成员在派生类中的访问权限() 。受限制保持不变受保护不受保护24. 在多继承中,公有派生和私有派生对于基类成员在派生类中的可访问性与单继承的规则( )。完全相同完全不同部分相同,部分不同以上都不对25. 下面叙述不正确的是()。基类的保护成员在派生类中仍然是保护的成员基类的保护成员在公有派生类中仍然是保护的基类的保护成员在私有派生类中仍然是私有的对基类成员的访问必须是无二义性的26. 下面描述中,表达错误的是 ()公有继承时基类中的public成员在派生类中仍是public的公有继承时基类中的private成员在派生类中仍是private的公有继承时基类中的protected成员在派生类中仍是protected的私有继承时基类中的public成员在派生类中是private的27. 运用运算符delete删除一个动态对象时( )。系统首先为该动态对象调用构造函数,再释放其占用的内存系统首先释放该动态对象占用的内存,再为其调用构造函数系统首先为该动态对象调用析构函数,再释放其占用的内存系统首先释放动态对象占用的内存,再为其调用析构函数28. 有如下类声明:class MyBASEint k;public:void set(int n) k=n;int get( )const return k; ;class MyDERIVED: protected MyBASEprotected:int j;public:void set(int m, int n) MyBASE:set(m); j=n;int get( )const return MyBASE:get( )+j; ;则类MyDERIVED中保护的数据成员和成员函数的个数是( )。432129. 有如下类定义:class MyBaseint k;public: MyBase(int n=0):k(n) int value()return k;class MyDerived: MyBase int j;public; MyDerived(int i): j(i) int getK()const return k; int getJ()constreturn j;在一个派生类对象结束其生命周期时( )。先调用派生类的析构函数后调用基类的析构函数先调用基类的析构函数后调用派生类的析构函数如果基数没有定义析构函数,则只调用派生类的析构函数如果派生类没有定义析构函数,则只调用基类的析构函数30. 执行下列语句后的结果为().int x=3,y;int *px=&x;y=*px+;x=3,y=4x=3,y=3x=4,y=4x=3,y不知48. 在用关键字class定义的类中,以下叙述正确的是( )。在类中,不作特别说明的数据成员均为私有类型在类中,不作特别说明的数据成员均为公有类型类成员的定义必须是成员变量定义在前,成员函数定义在后类的成员定义必须放在类定义体内部31. 有如下程序:includeclass BASEchar c;public:BASE(char n) : c(n)virtual BASE() cout c; ;class DERIVED:public BASEchar c;public:DERIVED(char n) : BASE(n + 1), c(n)DERIVED() cout c; ;int main()DERIVED D(X);return 0;执行上面的程序将输出( )。XYYXXY32. 在以下new和delete运算符使用中,错误的是().char *p=new char10; deletep;char *p=new char5; delete p; p=new char10; delete p;char *p=new char; delete p;char *p=new int10; delete p;33. 有如下程序:#include using namespace std;class BASEpublic:BASE( ) coutBASE;class DERIVED: public BASE public:DERIVED( ) coutDERIVED;int main( )DERIVED x; return 0 ;执行后的输出结果是( )。BASEDERIVEDBASEDERIVEDDERIVEDBASE34. 有如下程序:#include using namespace std;class A public:A( ) cout A; ;class B public: B( ) cout B; ;class C : public A B b;public:C( ) cout C; ;int main( ) C obj; return 0; 执行后的输出结果是( )。CBABACACBABC35. 有如下程序:#include using namespace std;class Apublic:A(int i)x=i;void dispa()coutx,;private:int x;class B:public Apublic:B(int i):A(i+10)x=i;void dispb()dispa();coutxendl;private:int x;int main()B b(2);b.dispb();return 0;运行时输出的结果是10, 212,1012,22,236. 用new运算符创建一维数组的正确形式是().int *p=new a10;float *p=new float10;int *p=new int10=0;int *p=new int5=1,2,3,4,5,6;37. 有如下程序:#include using namespace std;class Apublic:A() cout A; A() cout A; ;class B : public AA* p;public:B() cout B; p = new A(); B() cout B; delete p; ;int main()B obj;return 0;执行这个程序的输出结果是BAAABAABABAABAABAAABA ABA49. 重载运算符的实质是函数调用,如果重载了后置单目运算符“+”,执行C+,则相当于执行了哪个函数( )c.operator+(c,0)c.operator+( )operator+()operator+(c,0)38. 应在下列程序划线处填入的正确语句是()#includeclass Base public:void fun()coutBase:funENDL;class Derived:public Base void fun()_ /显示调用基类的函数fun()coutDerived:funfun();39. 有如下程序#include#includeusing namespace std;class MyClasspublic: MyClass()coutA; MyClass(char c )coutc; MyClass()coutB;void main() MyClass p1,*p2; p2=new MyClass(X); delete p2;执行这个程序幕上将显示输出_。ABXABXBAXBAXBB40. 有如下程序:#includeusing namespace std;class Pointpublic: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;coutPoint:numberendl;deleteptr;运行时输出的结果是346741. 以下程序的运行结果是 _。#include stdio.hmain( )int a =1,2,3,4,5,6,7,8,9,10,11,12;int *p=a+5,*qNULL;*q=*(p+5);cout *p*q;运行后报错6 66 125 542. 有如下程序:#include using namespace std;class Test public:Test( ) n+=2; Test( ) n-=3; static int getNum( ) return n; private:static int n;int Test:n = 1;int main( )Test* p = new Test;delete p;cout n= Test:getNum( ) endl;return 0;执行后的输出结果是( )。n=0n=1n=2n=343. 以下程序段的输出结果是().char *alp=ABC,DEF,GHI; int j; coutalp1;ABDDEF44. 以下程序的输出结果是_。main( ) int i,x33=9,8,7,6,5,4,3,2,1,*p=&x11;for(i=0;i4;i+=2) coutpi;5 25 15 39 745. 以下程序的输出结果是().#include void main() char s=123,*p; p=s; cout*p+endl;1231332146. 以下程序的输出结果是( )。#include void main() 47. char s=12134211,*p;int v1=0,v2=0,v3=0,v4=0;for (p=s;*p;p+)switch(*p)case 1:v1+;case 3:v3+;case 2:v2+;default: v4+;coutv1,v2,v3,v4endl;4,2,1,14,7,5,87,3,2,18,8,8,847.已知数组A和指针p定义为:int A2010,*p;,要使p指向A的首元素,正确的赋值表达式是( )。p=&A 或 p=A00p=A 或 p=&A00p=&A0 或 p=A00p=A0 或 p=&A0050. 要使语句p=new double20;能够正常执行,变量p应定义为( )。double p20;double p;double (*p)20;double *p;51. 要定义一个具有5个元素的一维数组,并使其各元素的初值依次是30,50,-88,0和0,则下列定义语句中不正确的是 。int vect=30,50,-88;int vect=30,50,-88,0,0;int vect5=30,50,-88;int vect5=30,50,-88,0,0;52. 下面说明不正确的是().char a10=china;char a10,*p=a;p=chinachar *a;a=china;char a10,*p;p=a=china53. 重载赋值操作符时,应声明为( )函数 。友元虚成员多态54. 在一个类中可以对一个操作符进行()重载。1种2种以下3种以下多种55. 在下列函数原型中,可以作为类AA构造函数的是( )。void AA(int)int AA()AA(int)constAA(int)56. 在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部管理操作的函数是( )。虚函数友元函数构造函数析构函数57. 在定义构造数据类型时,不能()。说明变量说明存储类型初始化末尾不写分号58. 在表达式 x+y*z中, + 是作为成员函数重载的运算符,* 是作为非成员函数重载的运算符。则 operator+ 有( )个参数,operator* 有( )参数。2、22、11、21、159. 在表达式 x+y*z中, + 是作为成员函数重载的运算符,* 是作为非成员函数重载的运算符。下列叙述中正确的是( )。operator+有两个参数,operator*有两个参数operator+有两个参数,operator*有一个参数operator+有一个参数,operator*有两个参数operator+有一个参数,operator*有一个参数60. 在C+语言中,数据封装要解决的问题是( )。数据的规范化便于数据转换避免数据丢失防止不同模块之间数据的非法访问61. 有如下类声明:class Foo int bar; ;则Foo类的成员bar是( )。公有数据成员公有成员函数私有数据成员私有成员函数62. 有如下类声明:class SAMPLEint n;public:SAMPLE(int i=0):n(i)void setValue(int n0);下列关于 getValue 成员函数的实现中,正确的是( )。SAMPLE:setValue(int n0) n=n0;void SAMPLE:setValue(int n0) n=n0;void setValue(int n0) n=n0;(int n0) n=n0;63. 有如下程序:#includeusing namespace std;class testprivate:int a;public:test()coutconstructorendl;test(int t ):a(t) coutaendl;test(const test &_test)a=_test.a;coutcopy constructorendl;test()coutdestructorendl;int main()test A(3);return 0;运行时的输出结果是( )。33 destructorcopy constructorconstructor64. 有关析构函数的说法,不正确的是( )。析构函数有且仅有一个析构函数和构造函数一样可以有形参析构函数的功能是在系统释放对象之前作一些内存清理工作析构函数无任何函数类型65. 有如下程序:#includeusing namespace std;class Apublic:static int a;void init()a=1;A(int a=2)init();a+;int A:a=0;A obj;int main()coutobj.a;return 0;运行时输出的结果是012366. 以下有关静态数据成员函数的叙述不正确的是( )。静态成员函数属于整个类对静态成员函数的引用不允许使用对象名在静态成员函数中不能直接引用类的非静态成员使用类名可以直接调用其静态成员函数67. 以下关于类和对象叙述正确的是().一个类只能有一个对象一个对象可以属于几个不同的类对象是类的一个具体实例一个类中可以有本类的对象68. 有如下程序:#include using namespace std;class Samplefriend long fun(Sample s);public:Sample(long a ) x=a;private:long x;long fun(Sample s)if(s.x2) return 1;return s.x*fun(Sample(s.x -1);int main()int sum=0;for(int i=0;i6;i+)sum+=fun(Sample(i);coutsum;return 0;运行时输出的结果是120161543469. 以下关于typedef的叙述正确的是()。用typedef可以定义各种类型名,但不能用来定义变量用typedef可以增加新类型用typedef只是将已存在的类型用一个新的名字来代表使用typedef便于程序的通用70. 有如下程序:#include using namespace std;class AAint n;public:AA(int k):n(k) int get( ) return n;int get( )const return n+1;int main( )AA a(5);const AA b(6);couta.get( )b.get( );return 0;执行后的输出结果是( )。5557757771. 以下关键字不能用来声明类的访问权限的是_。publicstaticprotectedprivate72. 以下各选项企图说明一种新的类型名,其中正确的是()。typedef v1 int;typedef v2=int;typedef int v3;typedef v4: int;73. 已知在一个类体中包含如下函数原型: VOLUME operator-(VOLUME)const;,下列关于这个函数的叙述中,错误的是( )。这是运算符-的重载运算符函数这个函数所重载的运算符是一个一元运算符这是一个成员函数这个函数不改变类的任何数据成员的值74. 已知X类,则当程序执行到语句:X array3;时,调用了( )次构造函数。012375. 已知:print( )函数是一个类的常成员函数,它无返回值,下列表示中,( )是正确的。void print( ) const;const void print( );void const print( );void print(const);76. 一个类的友元函数或友元类能够通过成员操作符访问该类的( )。私有成员保护成员公有成员所有成员77. 下述静态成员的特性中,( )是错误的。静态成员函数不能利用this指针静态数据成员要在类体外进行初始化引用静态数据成员时,要在静态数据成员名前加和作用域运算符静态数据成员不是所有对象所共有的78. 下面有关重载函数的说法中正确的是()重载函数必须具有不同的返回值类型;重载函数形参个数必须不同;重载函数必须有不同的形参列表重载函数名可以不同;79. 下面说法中,正确的是( )一个类只能定义一个构造函数,但可以定义多个析构函数一个类只能定义一个析构函数,但可以定义多个构造函数构造函数与析构函数同名,只要名字前加了一个求反符号()构造函数可以指定返回类型,而析构函数不能指定任何返回类型,即使是void类型也不可以80. 下面关于运算符重载的描述错误的是( )。运算符重载不能改变操作数的个数、运算符的优先级、运算符的结合性和运算符的语法结构不是所有的运算符都可以进行重载运算符函数的调用必须使用关键字operator在C+语言中不可通过运算符重载创造出新的运算符81. 下面关于友元的描述中,错误的是( )。友元函数可以访问该类的私有数据成员一个类的友元类中的成员函数都是这个类的友元函数友元可以提高程序的运行效率类与类之间的友元关系可以继承1. 设有说明:ofstream outfile;则执行语句:outfile.open(data1.txt);后,文件:data1.txt是一个( )。/(类与对象4)用于输入的文本文件用于输出的文本文件用于输入的二进制文件用于输出的二进制文件2.若执行fopen函数时发生错误,则函数的返回值是()。地址值01EOF3.下面对模板的声明,正确的是( )templatetemplatetemplatetemplate4. 下列函数模板的定义中,合法的是( )。templateT abs(T x)return x0?-x:x;template classT abs(T x)return x0 ?-x:x;template T abs(T x)return x0 ?-x:x;template T abs(T x)return x0 ?-x:x;5. 下列关于模板的叙述中,错误的是( )。模板声明中的第一个符号总是关键字template在模板声明中用 括起来的部分是模板的形参表类模板不能有数据成员在一定条件下函数模板的实参可以省略6. 下列关于模板的说法正确的是( )模板的实参在任何时候都可以省略类模板与模板类所指的是同一概念类模板的参数必须是虚拟类型的类模板中的成员函数全部都是模板函数7. 下面4个选项中,( )是用来声明虚函数的。virtualpublicusingfalse8. 下列程序的运行结果为#includetemplateclass FF 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 x(int(1.1),2,3),y(int(4.2),5,6);coutx.Sum() y.Sum()endl;6.1 15.26 156 15.26.1 159. 下列属于动态多态的是( )函数重载运算符重载虚函数构造函数重载10. 下列哪种说法是正确的( )不能声明虚构造函数不能声明虚析构函数不能定义抽象类的对象,但可以定义抽象类的指针或引用纯虚函数定义中不能有函数体11. 下列描述中,( )是抽象类的特征可以说明虚函数可以进行构造函数重载可以定义友元函数不能说明其对象12.下列关于多态性的描述,错误的是( )。C+语言中的多态性分为编译时的多态性和运行时的多态性编译时的多态性可通过函数重载实现运行时的多态性可通过模板和虚函数实现实现运行时多态性的机制称为动态绑定13. 下列关于动态联编的描述中,错误的是()。动态联编是以虚函数为基础动态联编是运行时确定所调用的函数代码的动态联编调用函数操作是指向对象的指针或对象引用动态联编是在编译时确定操作函数的14. 通过( )调用虚函数时,采用动态束定。对象指针对象名成员名限定派生类名15. 实现运行时的多态性要使用( )。重载函数构造函数析构函数虚函数16. 设置虚基类的目的是( )。简化程序消除二义性提高运行效率减少目标代码17. 如果一个类至少有一个纯虚函数,那么就称该类为()。抽象类虚函数派生类以上都不对22. 类A是类B的友元,类B是类C的友元,则下列正确的是( )。B是类A的友元C是类A的友元A是类C的友元上都不对23. 关于友元的描述中,( )是错误的。友元函数是成员函数,它被说明在类体内友元函数可直接访问类中的私有成员友元函数破坏封装性,使用时尽量少用友元类中的所有成员函数都是友元函数24. 关于下列虚函数的描述中,( )是正确的。虚函数是一个static存储类的成员函数虚函数是一个非成员函数基类中说明了虚函数后,派生类中将其对应的函数可不必说明为虚函数派生类的虚函数与基类的虚函数应具有不同的类型或个数25. 不能说明为虚函数的是( )。析构函数构造函数类的成员函数以上都不对26. 模板的使用实际上是将类模板实例化成一个( )。函数对象类抽象类27. cin和cout是I/O流库预定义的( ).类包含文件对象常量28. 对于下面的程序ifstream fin(c:test.txt);if(fin)cout ok;elsecout ,它是一个( )。用于输入的友元函数用于输入的成员函数用于输出的友元函数用于输出的成员函数32. 对于重载的运算符,它是一个( )。用于输入的友元函数用于输入的成员函数用于输出的友元函数用于输出的成员函数33. 对于语句 coutxendl;错误的是描述是( )。“cout”是一个输出流对象“endl”的作用是输出回车换行“x”是一个变量“”称作提取运算符34. 关于静态数据成员,下列说法错误的是( )。静态数据必须初始化静态数据的初始化是在构造函数中进行的说明静态数据成员时前面要加static引用静态数据成员时,要在静态数据成员名前加和作用域运算符35. 关于静态成员的描述中,( )是错误的。静态成员可分为静态数据成员和静态成员函
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年湖北省社会科学院人才引进10人模拟试卷及答案详解(全优)
- 2025年中储粮新疆分公司春季招聘拟聘用人选笔试题库历年考点版附带答案详解
- 2025年2月广东广州市海珠区人民法院招聘劳动合同制法官助理、书记员招聘拟聘人选考前自测高频考点模拟试题(含答案详解)
- 2025湖南衡阳市水务投资集团有限公司招聘30人考前自测高频考点模拟试题及答案详解(名师系列)
- 2025湖南新宁县事业单位和县属国有企业人才引进降低开考比例岗位模拟试卷完整答案详解
- 2025届深圳地铁运营集团有限公司应届生招聘笔试题库历年考点版附带答案详解
- 2025湖南长沙市生态环境局芙蓉分局招聘编外合同制工作人员考前自测高频考点模拟试题附答案详解(黄金题型)
- 2025海南澄迈县就业局招聘见习生1人模拟试卷及答案详解(全优)
- 2025年湖南邵阳城步县事业单位选调28人模拟试卷(含答案详解)
- 2025中电信数政科技有限公司招聘50人笔试题库历年考点版附带答案详解
- 第四版(2025)国际压力性损伤溃疡预防和治疗临床指南解读
- 三年级下册劳动《整 理书桌》课件
- DB14T 2922-2023 公路机电工程标准工程量清单及计量规范
- 2023年全国职业院校技能大赛-融媒体内容策划与制作赛项规程
- 《电力建设施工企业安全生产标准化实施规范》
- 糖尿病周围神经病变知多少课件
- 新概念英语青少版入门 A-Unit-1课件(共98张)
- 儿童肺炎支原体肺炎诊疗指南(2023年版)解读
- 个人履职考核情况表
- 中小学消防安全、交通安全、食品安全、防溺水、防欺凌系统安全教育主题课件
- 关于农民工工资催付告知函
评论
0/150
提交评论