



版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一大类C++基础.要求指针P既不可修改其本身的内容,也不可修改其所指向地址的内容,定义正确的是A.constchar*p="ABCD"; B.char*constp="ABCD"; 2016.C.charconst♦p=**ABCDW; D.constchar♦constp=**ABCD";答案:D2〇.已知:func()函数是ー个类的常成员函数.它无返回值,下列表示中,是正确的是A.voidfunc()const; B.constvoidfunc();C.voidconstfunc(); D.voidfunc(const);答案:A8.在兩数体之前加 关情字可以防止用或雨鼓改变数屐成员的伍.3.已知:print()函数是ー个类的常成员函数,无返回值,下列表示中正确的是voidprint()voidprint()constC.voidconstprint()voidprint(const)D.constvoidprint()constint♦p=c:constint♦p=c:P是指针不能用变量赋值改&c#include<iostream>usingnamespacestd;intmain()Iinta=10,b=18,c=77;cout«*p«endl;return0;
51.#include<iostream.h>classexampleIinta;public:sample(intb=5)|a=b++;|voidprint(){a=a+1;cout«a«voidprint()constIcout«a«endl;|输出62输出62x是普通对象.调用普通的print。函数y是常量对象调用常量成员函数voidmain()Iexamplex;ccmstexampley(2);x.print();y.print();13.用于标识ハ进制常量的前缀或后缀是()A.无 B.后缀L或1C.前缀零 D.前缀Ox41.#include<iostream.h>main(){intx=9,y=8,z=7;constint*p=z;cout«*p«endl;}42.#include<iostream.h>main(){intx=8,y=6;constint*constp=&x;p=&y;cout«*p«endl;)41»constint♦p=z: 普通変曜不能给指针变鼠赋值改为constint•p=&z;P=&y; p是指向常嚴的常歐指什不能做为表达式的左值.#include<iostream.h>inain(){intx=5.y=6:constint*p=&x;*p=y;〃・p不能作为左伯出现,改:把con、lよ掉cout«*p«endl:}45.#include<iostream.h>main(){intx=6;constint*p=x://error:应改为constint*p=&x:cout«*p«endl:47.下面是ー个输入半径,输出其面积和周长的Ch程序,在下划线处填上正确的语句。#include<iostream>usingnamespacestd; constpi=3.14159;voidmain()(doubler:coutvv"r=";_cin«r;;doublel=2.0*pi*r:doubles=pi*r*r;cout«"\nThelongis:”«l«endl;coutcv“Theareais:”«s«endl:继承18.ー个类可以获得另ー个类的特性的机制称为()A.抽象 B.封装C.继承 D.多态性20.在哪种派生方式中,派生类可以访问基类中的protected成员( )BA.public和private B.public和protectedC.protected和private D.仅protected20.派生类的对象可以访问以下那种情况继承的基类成员(D)A.私有继承的私有成员 B.公有继承的私有成员C.私有继承的保护成员 D.公有继承的公有成员19.基类中的public成员,通过public派生,其在派生类中的访问权限为()A.不可访问B.privateC.protectedD.public.在继承中,派生类拥有的基类个数为( )A.0个 B.1个C.多个 D.至少1个B.privateD.public.基类中的protected成员,通过public派生,其在派生类中的可见性为B.privateD.publicA.不可访问C.protected36.派生类的主要用途是可以定义其基类中ユ好ルす员类A继承了类B,类C继承了类A,那么类C也相应的继承了类B,也就是说类B的后代是A,类A的后代是C,那么类C也具有类B的特征,这就叫传递性。2.在C++中,类与类之间的继承关系具有A,自反性 B.对称性 C.传递性 D,反对称性答案:C5.在04中,类与类之间的编款关系具有A,自反性 &对称性C传递性ユ反对称性26.C++中有两种继承:单ー继承和〇多重继承39.举出C++中两种代码复用的方式: 、复用。继承3.下列关于对静态数据成员的描述中,正确的是A.静态数据成员不能用public控制符修饰B.静态数据成员可以直接用类名或者对象名来调用C.静态数据成员不可以被类的对象调用D.静态数据成员不能用private控制符修饰答案:B13.当ー个派生类公有继承一个基类时,基类中的所有公有成员成为派生类的J^/ublic成员 B.private成员protected成员 D.友元9.下列关于类的继承描述中,错误的是ん基类不一定具有派生类的全部属性和方法B.派生类可以访问基类的所有数据成员,也能调用基类的所有成员函数C继承描述类的层次关系,派生类可以具有与基类相同的属性和方法 bー个基类可以有多个派生类,ー个派生类可以有多个基类33.在保护派生中,基类权限为pubUc的成员在派生类中为丄ユ_。^include<iostreain.h>classBasedIpublic:Based() 1cout«"Based构造函数、n”;fun();|vixtualvoidfun()Icoul«**Based::fun()函数、2IIclassDerived:publicBasedIpublic•TOC\o"1-5"\h\zDerived() キIcout«"Derived构造函数'n" ;|voidfun()Icout«"Derived::fun()函数'n";| ,I;voidmain(){Derivedd;内联函数为什么要用内联函数?举例:对于ー个简单的函数intisnumber(charc){Return(c>='0'&&c<=,9,)?1:0;}Voidmain(){Charc;Cout«S'shurucharacter";Cin»c;lf(isnumber(c))cout«"shuzi";Elsecout«"bushishuzi";)
如果在程序中需要多次用到,那么就要多次调用这个函数,降低使用效率,为了提交效率,将主函数中对isnumber函数的调用替换成表达式即"(isnumbe「⑹)换成if((c>=O&&cv='9')?1:0)手工替换很繁琐,那么把函数定义的前面加上inline即可声明内联函数Inlineintisnumber(charc)(Return(c>=,0,&&c<=,9,)?1:0;}编译器在调用函数的地方都会用函数体替换C++中除具有循环语句,switch语句的函数不能声明为内联函数,其他都可以。4,适宜采用inline定义函数情况是A.函数体含有循环语句 B.函数体含有递归语句C,函数代码多、不常调用 D.函数代码少、频繁调用答案:D8.下列哪个类型函数不适合声明为内联函数( )AA.函数体语句较多A.函数体语句较多C.函数执行时间较短B.函数体语句较少D,函数执行时间过长12.内联函数的特点是12.内联函数的特点是(A)A.减少代码量,加快访问速度C.增加代码量,减缓访问速度B.减少代码量,减缓访问速度D.増加代码量,加快访问速度28.C++中使用_inline_关键字说明函数为内联函数。10.声明函数为内联函数时所使用的关键字为()A.constB.inlineC.shortD.signed10.包含哪种语句的函数不能声明为内联函数( )A.循环 B.变量自增自减C.if...else... D.变量声明10.下列哪个类型函数不适合声明为内联函数?»函数»函数体语句较多C.函数执行时间较短B,函数体语句较少D.函数执行时间过长3.要求通过函数来实现ー种不太复杂的功能,并且要求加快执行速度,选用AA.内联函数 B.重载函数C.内部函数D,函数模板6.下列哪个类型函数不适合声明为内联函数A.函数体语句较多C.函数执行时间较短B,函数体语句较少D.函数被频繁调用34,在函数前面用一心一保留字修饰时,则表示该函数为内联函数。25.在C++中除具有川 语句和switch语句的函数外,其它函数都1函数声明11.函数intsum(inta=Lintb=l,intc=3)可ワト列哪个函数同时声明()A.doublesum(int);B.charsum(inttint);C.intsum(double):D.intsum(int»int,int):50,在卜.而横线处填上求两个浮点数之差的cha函数的原型声明、调用方法Q#include<iostream>usingnamespacestd:voidmain()(floata,b:_floatcha(float,float); //函数cha的原型声明a=12.5;b=6.5:floatc=_cha(a.b); //调用函数chacout«c«endl;)floatcha(floatx,floaty)(floatw;w=x-y:returnw:函数引用9.函数int&min(int&,inl&)返回参数中较小者,设有两整型变量:inla=10;inlb=15:在执行语句min(a,bA:之后,a,b值分别为()A.9,14B.9,15C.10,14DJ0,159.设int&max(int&,int&)返回两参数中较大者,如有两整型变量inta=10;in"后,a,b值分别为( )A.10,15 B.1L15C.10,16 D.11,16成员函数6.C++允许在结构中定义函数,这些函数称为( )A.静态函数 B.构造函数C.析构函数 D.成员函数8.决定C++语言中函数的返回值类型的是()A.return语句中的表达式类型B.调用该函数时系统随机产生的类型C.调用该函数时的主调用函数类型D,在定义该函数时所指定的数据类型1.对C++中主函数描述正确的是()A.名称为main,可为多个B.名称不限,可为多个C.名称为main,必须有且只能有一个D.名称不限,必须有且只能有一个25.C++程序必须有且只有一个主函数,其函数名为_main.II.关于成员函数特征的楕述中,错误的是A.成员函数一定是内乐的数 B,成员函数可以重載Q成员法政可以改置参数的默认侑 d成员弱敷可以是静态的解释:A在C++中,成员函数可以是内联函数,也可以是非内联函数.在类定义体内定义和实现的函数都是内联函数.在类定义体外实现的函数可以通过在函数说明和定义上分别加上inline来表示该函数是内联函数,否则就不是内联函数.C++要求对一般的内置函数要用关键字inline声明,但对类内定义的成员函数,可以省略inline,因为这些成员函数已被隐含地指定为内置函数.如果成员函数不在类体内定义,而在类体外定义,系统并不把它默认为内置(inline)函数,调用这些成员函数的过程和调用一般函数的过程是相同的。如果想将这些成员函数指定为内置函数,应当用inline作显式声明。10.在C++中,函数原型不能标识A.函数的返回类型 B.函数参数的个数C.函数参数类型 D,函数的功能 口19.以下叙述中不正确的是A.在ー个函数中,可以有多条return语句B.函数的定义不能嵌套,但函数的调用可以嵌套函数必须有返回值D?不同的函数中可以使用相同名字的变量构造函数8.下列不是构造函数的特征的是A.构造函数的函数名与类名相同 B,构造函数可以重载c.构造函数可以设置缺省参数 レイ勾造函数不能重载4.ー个类可拥有多少个构造函数()B.1个D.以上皆无A.0B.1个D.以上皆无C.1或多个.关于构造函数的说法,不正确的是A.没有定义构造函数时,系统将不会调用它.其名与类名完全相同C.它在对象被创建时由系统自动调用D.没有返回值30.假设类F的对象f是类A的成员对象,则“Aa”语句执行时,先调用类构造函数。10.下列关于构造函效的描述中,幡谈的是A.构造函数可以设置欧认叁敷 B.构造函敷在定义类对象时自动执行C.构造函数可以是内联函数 0构造函敷不可以重載解释:D构造函数是类的ー个特殊成员函数,它与类同名,并且没有返回值.C++在创建一个对象时,会自动调用类的构造函数,在构造函数中可以执行初始化成员变量的操作.构造函数可以是内联函数,也可以重载.当编译器发现某段代码在调用一个内联函数时,它不是去调用该函数,而是将该函数的代码,整段插入到当前位置。这样做的好处是省去了调用的过程,加快程序运行速度。这样做的不好:由于每当代码调用到内联函数,就需要在调用处直接插入一段该函数的代码,所以程序的体积将增大。9.下列有关构造函数的描述中,正确的是BA.构造函数可以带有返回值 B.构造函数的名字与类名完全相同C,构造函数必须带有参数 D.构造函数必须定义,不能缺省构造函数自定义之后系统将不再提供无参的默认构造函数44.#include<iostream>usingnamespacesld构造函数自定义之后系统将不再提供无参的默认构造函数classCMax{private:intxx:intyy:public:CMax(intx»inty){xx=x;yy=y:voidsetValuefintx*inty){xx=x:yy=y:)intmax(){returnxx>yy?xx:yy;voidmain()(CMaxm();m.setValue(20t30):cout«*rMax=w«m.max()«cndl12.如果没有为一个关定义任何构造函数的情况下,下列描述正确的是( )AA.编译器总是日动创建一个不带参数的构造函数B・这个类没有构造函数C.这个类不需要构造函数D.该类不能通过编译14.类的构造函数在以下什么情况下会被自动调用(B)A.定义成员函数时 B.定义对象时C.定义数据成员时 D.定义友元函数时12.一个类拥有多个构造函数,则这些构造函数冋为(A.重载关系 B.重复关系C.拷贝关系 D.无关系
析构函数32.为了在对象生存期结束时释放其指针成员所指向的动态存储空间,通常为该类定メ〇 析构函数20.对类的构造函数和析构函数描述正确的是A.构造函数可以重载,析构函数不能重载B.构造函数不能重载,析构函数可以重载C.构造函数可以重载,析构函数也可以重载D.构造函数不能重载,析构函数也不能重载34.C++类中构造函数的个数最多是无限个,析构函数的个数最多是 27.在Ci程序中,对刚创建的対象进行初始化的工作由构造函数来完成;而碇前的一些清理工作対是由 曲数来光成的6析构ー个类可包含析构函数的个数是( )BA.0个 B.1个C.至少ー个 D.0个或多个15.下列关于析构函数描述正确的是(D)A.可以用载 B.函数体中必须有delete语句C.返回类型必须是voidC.返回类型必须是void类型D.不能指定返回类型32.对于类Point而言,其析构函数的定义原型为_-Point();引用12,下列说明语句中正确的是DB.int&refa[10]D.int*pi,*&pref=piA.inta,&ra二B.int&refa[10]D.int*pi,*&pref=piC.inta,&ra=a,&*refp=&ra8.已知:intm,10;下列我示引用的方法中,正确的是A,int&Z;B.mt&t>1)CintAx=m; D.XAf=Am;解释:c引用实际上就是变量的别名,使用引用和直接使用变量一样,引用与变量名在使用的形式上是完全ー样的,但引用本身并不是对象,只是作为标识对象的手段,声明方式为数据类型&别名=对象名不能直接声明对数组的引用,也不能声明引用的引用int&&x=m就是非法的39.将指向对象的引用作为函数的形参,形参是对象的引用.实参是对轨名。29.C++语言中如果调用函数时,需要改变实参或者返回多个值,应该采取方式。传地址或引用方式。41.#include<iostream,h>usingnamespacestd;voidsetzero(int&a)ja=0;Iintmain(){intxl=10;setzero(&xl);cout«xl«endl;return0;r15.关于引用,下列的说法中错误的是ん引用是给被引用的变量取ー个别名B.引用主要是用来作函数的形参和函数的返回值C.在声明引用时,要给它另开辟内存单元D.在声明引用时,必须同时使它初始化 C5.设存在整型变量intx,则下列句与其它三项含义不同的是(A)A.int*p=&x: B.int&p=x;C.int&p=x;D.int&p=x:5.从本质上看,引用是被引用变量的いA.拷贝B.别名C.复制D.克隆20.对引用调用描述正确的是()A.分配新存储空间B.修改已存储空间的名称为引用名C.引用名与已存在存储空间无任何关联D.将引用名标识符与一块已存在储区域相关联,没有分配キ24.C++函数中按引用调用传递参数时使用ー对象利さ.作为参数54.给出下面程序的输出结果#include<iostream>usingnamespacestd;voidmain()(intnum=300;int&ref=num;cout«ref;ref=ref-IOO;cout«n"«num;num=num-50;couivv”H«ref«endl;}300200150拷贝构造函数5.通常拷贝构造函数的参数是A,某个对象的成员名C,某个对象的引用名答案:c9,通常的拷贝构造函数的参数是A.某个对象名个对象的引用3.拷贝构造函数应该是A.不带参数的构造函数C.带有两个参数的构造函数B.某个对象的指针名D.某个对象名B,某个对象成员名D,某个对象的指针名B.带有一个参数的构アD.缺省构造函数21.通常使川対象的用用来初始化创建中的对象。答案:拷贝构造函数39.拷贝构造函数使用作为参数初始化创建中的对象。拷贝构造函36.使用对象的引用来初始化创建中的对象的炳畋金拷贝构造函数38.震•构造函依使用作为形式参数。对象的引用14.对类A,复制构造函数的原型是()A.A::A(constA&):B.A::A(constA*);C.A::A(conslA):D.A::A():は对于拷贝构造函数point::point(point&p),下列说明正确的是(A.该函数只能访问P的私有成员 B.该函数不能访问P的公平C.该函数可以访问P的私有和公有成员 D.该函数不能访问P的成ウ友元函数19.对于友元描述正确的是( )BA,友元是本类的成员函数 B.友元不是本类的成员函数C.友元不是函数 D.友元不能访问本类私有成员19.如果类A被声明成类B的友元,则(D)A.类A的成员即类B的成员B.类B的成员即类A的成员C.类A的成员函数不得访问类B的成员D.类B不一定是类A的友元17.下列关于友元的描述错误的是( )A.成员函数不可作友元 B.类可以作友元C.普通函数可以作友元 D.静态函数可以作友元•・友元函•・友元函6,下列不是类的成员函数的是A一方元函数 B.构造函数C,析构函数 D.拷贝构造函数答案:A12.对于友元描述正确的是 ノA.友元是本类的成员函数 也ノる不是本类的成员函数C,友元不是函数 、ク友元不能访问本类私有成员17.已知类A是类B的友元,类B是类C的友元,则ヽ.类A一定是类C的友元B.类C一定是类A的友元(:.类C的成员函数可以访问类B的对象的任何成员D.类A的成员函数可以访问类B的对象的任何成员答案:c33.如果要把ヨ谒E类的巡蚓值为void的成员南敢e(),声明为类TcMhcr的友元版數,则应在美Tether的定义中加入谓句.friendvoidA::f()30.如果要把A类成员函数f()且返回值为voidfriendvoidA::f()定义中加入语句最好加分号加入语句,语句后面加分号;20.下列关于友元函数的描述,正确的是A.B.C.A.B.C.D.友元函数不可以是ー个类友元函数的作用之一是实现数据的隐藏性在类中说明的友元函数,函数的定义不可在类体之外#include<iostream.h>#include<string,h>classBaseIpublic:Base(char♦s=H\0w)|strcpy(name,s);|voidshow();protected:•二 它是普通函数不是成员函数.友元函数,前面加friendcharnameriOl5友元函数,前面加friendI;Baseb;voidshow()Icout«"name:"««endl;|voidmain(){Based2(”hello”);show();I运算符重载40.重载的运算符保持其原有的操作数 、优先级和结合性不变。S.如処&达式++a中的“++”是作为成员函数朮载的运算价,若采用运ので网以は用格大,则可表示为B.operator++(a)B.operator++(a)D.a.ojjcrator+♦()C.operator++(a,1)答案:D24.重载的运算符保持其原有的操作数和结合性不变。答案:优先级12.下列运算符中,在C++语言中不能重载的是A.* B.>= C.:: D./答案:C17.下列运算符中,在C++语言中不能重载的是A.* B.>= : D.17.下列关于运算符重教•的表述中,正・的是A.C1已有的任何运算符都可以重教B.运算符函数的返回类型不能声明为基本数据类型c.在美璽精换符函收的定义中不需要声明返回类R0.可以通过运算符重教来创建CI中原来没有的运算符C(1)除了类属关系运算符”.”、成员指针运算符".*"、作用域运算符"::"、sizeof运算符和三目运算符"?:"以外,C++中的所有运算符都可以重载。(2)重载运算符限制在C++语言中已有的运算符范围内的允许重载的运算符之中,不能创建新的运算符。(3)运算符重载实质上是函数重载,因此编译程序对运算符重载的选择,遵循函数重载的选择原则。(4)重载之后的运算符不能改变运算符的优先级和结合性,也不能改变运算符操作数的个数及语法结构。(5)运算符重载不能改变该运算符用于内部类型对象的含义。它只能和用户自定义类型的对象一起使用,或者用于用户自定义类型的对象和内部类型的对象混合使用时。(6)运算符重载是针对新类型数据的实际需要对原有运算符进行的适当的改造,重载的功能应当与原有功能相类似,避免没有目的地使用重载运算符。18.友元运为符9両彼Ci埒译器哪释为AoptTatortF*(obj) H.oprntortf(obj.0)G6bj.opEiiord() D.obj.oprmlortf(0)解释C重载的运算符函数不可能有默认参数函数重载5.采用重载函数的目的是A.实现共享 B.减少空间C.提高速度 む使用方便,提高可读性38.重载函数在参数类型或参数个数上不同,但 必须相同。函数名12.下列不是函数■裂所要求的条件是A.的数名相同B..效个效不同C.弁败类型不同0.函数返回值类る不同解释:D函数重载使ー个函数名具有多种功能,也就是同一个名字的函数具有多种形态,叫多态性。构成函数重载,参数类型不同、参数个数不同、函数名相同。返回值不同是没有办法区分重载的。C++多态性可以直观的表示,ー个名字,多个函数。源代码只指明函数调用,而不说明具体调用那个函数,直到程序运行时才能确定调用哪个函数,这叫动态联编或迟后联编。举例:intadd(inta=3Jntb=5){returna+b;}带默认值的函数要想实现重载,必须大于两个参数,因为有默认值,编译器不能确定到底是几个参数的重载。23.塀律时的多密性通过 函数实现。函数重载多态从实现的角度可以划为两类:编译时多态(静态的)和运行时多态(动态的x编译时的多态是通过静态连编来实现的;运行时的多态是用动态连编来实现的。编译时的多态性主要是通过函数重载和运算符重载来实现的;运行时的多态性主要是通过虚函数来实现的.C++中定义重载函数时,应至少使重载函数的参数个数或 彳.不同对鎳可以调用相同名称的函数,但可导致完全不同的行为的现象称为_多态性 ・24.静态联编所支持的多态性称为ー编译时的多态性。36.函数重载可使ー个函数名具有多种功能,称这种特性为20.不同对象调用同名函数,但导致完全不同行为的现象称为()A.抽象B.封装C.继承D.多态性intFunc(int,int):不可与下列哪个函数构成重载( )BA.intFunc(,int): B.doubleFunc(int»int):C.doubleFiinc(double*double): D.doubleFunc(int*double):33.类A有如下成员函数intA::fun(doublex)(return(int)x/2:)intA::fun(intx){returnx*2;)设a为类A的对象’在主函数中有inls=a.fun(6.0Ha.fun(2),则执行该语句后,s的值为_7010.下列函数不能和函数voidprint(char)构成币:载的是(C)A.intprint(int): B.voidprint(char,char):C.intprint(char): D.voidprint(int,int):42.#include<iostream.h>classf{private:intxfy;public:f)(){x=0;y=0;}fl(intajntb)(x=a;y=b;Jprint(){cout«x«w«y«endl;})main(){fa;//イ;能円接调用fl()Ha.print();}42.错误:a.fl(1,1)修改意见:增加一个fl的函数重载:voidfl(int1,intj){x=l;y=j:}45.#include<iostream.h>classpoint{intx;public:voidinit(inta){x=a;}intgetx(){returnxj}voidsetx(inta){x7a;}トーmain(){pointa;/a.init(20,30);cout«a.getx()«endl;)
43.#include<iostream.h>folalp;|p=newfolat[5];for(inti=0;i<5;i++){cin»*(p+i);cout«*(p+i)«endl;}deletep;函数模板9.实现两个相同类型数加法的函数模板的声明是A.add(Tx,Ty)C.Tadd(Tx,y)B.Tadd(x,y)A.add(Tx,Ty)C.Tadd(Tx,y)D.Tadd(Tx.Ty)答案:D15.关于函数模板,描述错误的是A.函数模板必须由程序员实例化为可执行的函数模板;B.函数模板的实例化由编译器实现;C.一个类定义中,只要有一个函数模板,则这个类是类模板;D.类模板的成员函数都是函数模板,类模板实例化后,成员函数也随之实例化;答案:C3.关于函数模板,描述错误的是A.函数模板必须由程序员实例化为可执行的函数模板B.函数模板的实例化由编译器实现/TV个类岸义中,只要有一个函数模板,则这个类是类模板D.类模板的成员函数都是函数模板,类模板实例化后,成员函数也随之实例仇13.下列有关模板的描述中,偉誤的是A模板把セ据类型作为ー个设计叁数,称为参数化程序设计B,使用时.模板参数与函收参数相同,是按位置而不是名称对应的C模板实例化参数类型包牯数徳类型和值D.类模板与模板类是同一个被念类模板可以成为另夕ー个类模板的成员(叫"成员模板"),函数模板没有实参和形参之分,函数模板可以看成一个无参函数,它的参数要根据调用对象的参数而定.函数模板的ー个实例就是ー个函数定义7.以下类模板定义正确的为A.template<classT> B.template<classT,classinC.template<classT,typenameT>D.template<classT1,T2>19.有关函数模板和模板函数说法错误的是A.函数模板只是对函数的描述,编译器不为其产生任何执行代码,所以它不J实实在在的函数B.模板函数是实实在在的函数,它由编译系统在遇到具体函数调用时所生成用执行C,函数模板需要实例化为模板函数后才能执行D.当函数模板和一般函数同名时,系统先去匹配函数模板,将其实例化后进行16.设有函数TSum(Tx,Ty){retumx+y:)(其中T为模板类型,则下列语句中对该函数错误的使用是(D)A.Sum(1,2):A.Sum(1,2):B.Sum(3.0,2.2);C.Sum(、A',〇:D.Sum(“A”,“C”):12.函数模板template<typenameT>voidFunc(T.T)可具有卜列哪种实例化形式()A.voidFunc(floai»int)B.voidFunc(char»char)C.voidFunc(int»double)D.voidFunc(boohfloat)26.C++中规定模板以关键字和一个形参表示开头。11.定义函数模板中使用的参数类型标识符需使用卜.列哪笄A.o B."“C.Q D.{}52.给出ド面程序的愉出结果.#include<iostream>usingnamespacestd;template<classT>Tmax(Tml,Tm2)(reium(ml>m2)?ml:m2:)voidmain(){coui«max(1»7)«"V"«max(2.0»5.0)«endl;coui«max(* ;b'v<"\t,r«max(vA","a")«endh7 5.0ya44.template<classT>Tf(Tx){Ty;y=x40returny;}函数调用19.考虑兩数晩嗯void ini*.inlb»7.charrh«»1.下面的函数调用中・属于不合法博用的是A.iwlfS)B.<01(5.8> CteM(6.•り D.lesl(O,O,<O解释:C.非数组指针或引用型变量做实参时,它和对应虚参之间的数据传递方式是・BA.地址传递 B.单向值传递C.双向值传递D.由用户指定传递方ヨ调用声明为intresultanta,intb)的函数时,正确的方法是()A.result(L2)B.result(l)C.result(0.1,0.3)D.result(1,2,3)设存在函数intmax(int,in。返回两参数中较大值,若求22,59,70三者中最大值,下列A.intm=max(22,max(59,70));B.intm=max(max(22,59),max(59,70));C.intm=max(max(22,70),59);D.以上皆正确7.设存在搬imMint,im)返酮期中默值,若求22,59,70三者中联值,下列表达式不正确的是( )CA.intm=max(22,max(59,70)); B.intm=max(max(22,59),70);C.intm=max(22,59,70): D.intm=max(59,max(22,70));9.设存在函数intmin(int,int)返回两参数中较小值,若求15,26.47三者中最小值,下列表达式中错误的是(B)A.intm=min(min(15*26)*min(15«47)):B.intm=min(15*26*47):C.intm=min(15*min(47,26)):D.intm=min(min(47,26),16):44.#include<iostream.h>classf{private:intx,y;public:fl(inta,intb){x=a:y=b;}voidprint(){cout«x«y«endl:}};main(){fa;a.fl(1.5,1.8):〃ヒ小心びmFリリfl函数的形参类,致,应修改为一致・a.print():9.使用引用调用方式将实参传给形参,下列说法正确的是(A.形参是实参的备份 B.实参是形C.形参和实参共享同一对象 D.形参和实7.设函数voidinc(int)将形参加1,如有整型变量inti=10;则执行inc(i);ノA.9 B.10C.ll D.未知7.设函数voidswap(int&,int&)将交换两形参的值,如两整型变量inta=IO:intb=15:则执行swap(a,b)后,a、b值分别为(C)A.10,10 B.10915 C.15,10 D.15,1535.将指向对象的指针作为函数参数,形参是对象指针,实参是对象的一地址值.默认参数27.若有函数定义为:intadd(intml=0,intm2=2*intm3=4){returnml+m2+m3:}在主函数中有ints二add(l)+add(0,l)+add(0,1,2);则执行此语句后s的值为_15ー〇
8.函数趺认参数在函数原型中说明,默认参数必须放在参数序列的(C)A.前部 B.中部 C.后部 D.两端8.下列哪种默认参数的声明是不正确的( )intmax(inta,intb,intc,intd=0);intmax(inta»intb,intc=0,intd=0);intmax(inta=0,intb,intc=0>intd=0);intmax(inta»intb=0>intc=0>intd=0);.使用值传递方式将实参传给形参,ド列说法正确的是( )AA,形参是实参的备份 B.实参是形参的备份C.形参和实参是同一对象 D.形参和实参无联系.在函数调用时,如某ー默认参数要指明一个特定值,则有(A.其之前所有参数都必须赋值A.其之前所有参数都必须赋值B.其之后所有参数都必须赋值C.其前、后所有参数都必须赋值C.其前、后所有参数都必须赋值D.其前、后所有参数都不必赋值抽象类10.以下基类中的成员函数表示纯虚函数的是A.virtualvoidvf(int) B.voidvf(int)=0C.virtualvoidvf()=0 D.virtualvoidyf(inl)|i答案:C下题表示函数声明不是定义注意两题的区别15.下面函数原型声明中,声明了fun为虚函数的是A.voidfun()=0 B.virtualvoidfun()=0IC^rirtualvoidfun() D.virtualvoidfun(){}22.抽象类中至少要イfー个函数。答案;纯虚16.下列虚基类的声明中,正确的是16.下列虚基类的声明中,正确的是A.classvirtualB:publicAC.classB:publicAvirtual^^^lassB:virtualpublicAD.virtualclassB:publicA24.ー个抽象类的派生类可以实例化的必要条件是实现了所有的 纯虚函数〇26.定义虚函数所用的关键字是ーvirtualO7.类Cat是类Animal的公有派生类,类Anima!和类Cat中都定义了虚函数func(),p是ー个指向类Animal对象的指针,则PAnimal::fund)将A.调用类Animal中的函数func()B调用第Cat中的函数func() 一C.根据p所指的对象类型而确定调用类Animal中或类Cat中的函数func()D.既调用美、nimal中南数.也调用类Cat中的函数答案:的.当物讦系统编评含冇中函数的类时,将为它建立一个餐威效衣,我中的得一个无宗韩指肉1e虚函数的地址
B.classB:virtualpublicD.virtualclassB:publi5.下列虚基类的声明中,正确的是B.classB:virtualpublicD.virtualclassB:publiA.classvirtualB:publicAC.classB:publicAvirtual8.C++中要实现动态联编,调用虚函数时必须使用D.对象A.基类指针 B.类名 C,D.对象++—4.设x=8,执行语句Y=x++,则y等于DA.6 B.7 C.9 D.811.假定—ケ类的构造函数为A(intaa,intbb)|a=aa++;b=a*++bb;(,则执行A1句后,x.a和x.b的值分别为A.4和5 B.4和20 C.4和24 D.20和5答案:C37.若inta=8;intb=(++0++;则b= '',32.假设inta=1,b=2;则表达式(++a/b)*b―的值为 26.假定・=5,尸6.则表达式ス“♦♦”的値カ35
运算2,若有以下类量标识符定义:intx=2;charw=a:floaty=23.45f;doublet=45.671哀达式・»•«*y-«的结果类型是A.floatHcharD.doubleA.floatHchar解释:混合运算,不同类型的数据要先转换成同一类型,然后进行运算,这种转换是系统自动按照相应的规律进行的。转换规则是:字符数据必须先转换未整型数据,short型转换为int型数据,float转换成双精度类型,也就是说范围小的向范围大的进行转换。5.下列运算符中,优先级最高的是BA.* B.—> C.&& D.>=1.若有以下类型标识符定义:charc=*c*;inta=4;floatf=3.14;doubled=表达式c+a/(int)d+f的结果类型是A.floatC.intA.floatC.intD.double3I法!!定义H・=3,则执ケ完语句・♦ ・••。は后,・的他为34.I!定ス是ー个運机席,则温的位カ11.设X和y均为bool量,则x&&y为真的条件是ュ』:们均为真
C,ュ』:们均为真
C,它们均为假B.D.其中一个为真
其中一个为假18.在C++语言中,能代表逻辑值“假”的是A.小于〇的数 B.大于〇的数 C.非〇整数6.逻辑运算符两侧运算对象的数据A.是逻辑型数据 B,只能是整型数据 いC.只能是整型或字符型数据 D.可以是任何类型的数据28.假定x=15,则表达式x<=10?20:30的值为〇.设"inta=3,b=4,c=5;”,表达式"(a+b)>c&&b==c"的值是,.描述命题”A小于B或小于C”的表达式为〇14.在C++语言中,080是A.ハ进制数 B,十进制数C.十六进制数 、L非法数”.在下列成对的表达式中,运算结果类型相同的对是(D)A.7/2和7.0/2.0 B.7/2.0和7/2C.7.0/2和7/2 D.7.0/2.0和7.0/240.设有定义inix;floaty;.则10+x+y值的数据类型是〇编译预处理2L#include<iostream,h>命令中,include的意义是:包含头文件13.在编译指令中,宏定义使用哪个指令C.#defineD.#errorA.#if B.#includeC.#defineD.#error答案:c22.C”提供的據处理语句有3軸,文件包含,条件编译和22C++提供的编译预处理功能主要有以下三种:①宏定义②文件包含③条件编译17.下列哪个编译指令属了条件编译指令(C)A.#includeB.#defineC.#elseD,#pragma38.u指令定义ー个标识符及事,在源程序中每次遇到该标识符时,货TOC\o"1-5"\h\z3.可替换#definePI3.1415926的语句是( )A.floatPI3.1415926: B.constfloatPI=3.1415926:C.constPI(3.1415926); D.const3.1415926;16.在编译指令中,宏定义使用哪个指令( )BA.#include B.#defineC.#if D.#else\o"CurrentDocument"15.下列哪个指令属于条件编译指令( )A.#elif B.#errorC.#pragma D.#include29.在源程序中有宏定义:#definePI3.14,则若不想使该宏定义影响到程序的其它地方,可以使用_#undefPl删除该宏定义。(注:配套教材上没行)16.ド列哪个编译指令不属「条件编译指令()A.#ifB.#elseC.*endifD.#eiror19.下面叙述中错误的是A.预处理命令都必须以“#”开始B.在程序中凡是以“#”开始的语句行都是预处理命令行C++程序在程序执行过程中对预处理命令进行处理一行只能写一条预处理命令 c50.下面是ー个输入半径,输出其面积和周长的C++程序,在横线处填上正确的语句。(圆周率为3.14159)#mcludeNstdafx.#include<iostream>#includewmath,h"usingnamespacestd;〃宏定义 ^definepi3.14159voidmain()Idoublerad;cout«"rad=w;cin»rad;double1=2.0♦pi♦rad;; doubles=pi♦rad♦radcout«**\nThelongis:"«l«endl;cout«**Theareais:M«s«endl;|29._#inchide.指令指示编译器将一个源文件抿入到带该指令的源文件之中。.包含自定义头文件file.h的预处理指令是(D)A.#define<file.h>B.#includefiie.hC.#definefile.h D.#includeMfile.hM.用于标识十六进制前缀或后缀是(D)A.无 B.后綴L或e C.前缀零 D.前缀Ox3.用于包含C++标准库沁stream的预处理指令是()A.#define<iostream>B.#include<iostream>C.#definc4iostream9D.#include*iostream*数组10.假定a为ー个整型数组名,则元素a[4]的字节地址为C字节地址每个占4个字节A.a+4 B.a+8 C.a+16 D,a+3214.以下能正确定义数组并正确赋初值的语句是A.intN=5,b[N][N]; B.inta[2]={111,|3|,[4j,|5|C.mtc[2][]=Hl,2},{3,4H; D.intd[3][2]=||1,2|,|3,4||;答案:D16.下面关于C卄字符数组的叙述中,错误的是A,字符数组可以放字符串B.字符数组的字符可以整体输入、输出C.可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值D.可以用关系运算符对字符数组比较大小11.若二维数组y有m列,则位于之前的元素数量是B.1B.1♦m+jD.i»m+j+1C.i♦m+j-19.对于im•p«[Sj;的描述中,正确的是んp是ーヰ指向数组的指针.所指向的数组是5个加型元なBpa是ー个推向某敷组中第5个元京的指軒,该元素是ini型变量pa[5]表示敷组的第5个元素的值.是int型的值a是ー个具有5个元素的指时数组,每个元素是ー个对型指针解释:Dint(*pa)[5]与int*pa[5]的区别。int(*pa)[5]本质上是数组,是指ー个指向整形数组的指针,而int*pa[5]是本质是指针数组,pa[]里面存的是地址。它指向的位置的值就是・pa[0]、・pa[l]....*pa[3] 6.卜.面关于数组的初始化正确的是()A.charstr[X'a'/b'/c*);B.charstr[2]={'a\V,ゼトC.chars(rri]r21={{,a\b},{—'d'}}:D.charstr[][]={fa\V»で);14.用new运算符创建一壊数用的正确形式是A.int*psnewa[iO)s B.!kmt•p=new10]jCirt•p■newftooi[10]: DM•p=newint⑸=11,2345,61;解释:B#include<ioslream>usingnamespacestd;intmain()|constintnum=20;iniscores[num];fbr(inii=1;i<=num;i-h-)「・[・scores[IJ=1;return0;! 卜标越界
43.#include<iostream>usingnamespacestd;intmain(){constintnum=20;intscores[num|;for(inti=l;i<=num:i++)(数组下标越界scores[i]=i:数组下标越界}return0:指针16.如果有mtx,• ・q;则下面隆作中,正确的是A.psx B>p=q C.p»dn D.p=时解释:cThis14.this指针存在的目的是()BA.保证基类公有成员在子类中可以被访问B.保证每个对象圳有自己的数据成员,但共享处理这些数据成员的代码C,保证基类保护成员在子类中可以被访问D.保证基类私有成员在子类中可以被访问2.不同对象调用同一成员函数时,this指针指向()A.不同对象 B.相同对售C.无对象 D.不确定22.this指针始终指向调用成员函数的 ・嚴 019.关于this指针的说法错误的是A.this指针必须显式声明B.当创建一个对象后,this指针就指向该对象C.动态成员函数拥有this指针D.静态成员函数不拥有this指针答案:A15.以下关于!hh指叶的叙述中,正・的是A.任何与类相关的函数都斉由指叶B.类的成员函数都有・指竹Q类的友元函我那有加,指ft D.类的非静蓑成员函效オ有如・指纣解释:D类的每一个成员函数都有一个隐含的常量指针,this指针・类的静态成员函数不能含有this指针.因为this指针是ー个指向本对象的指针.注意:this指针只能用于成员函数,成员变量,对于静态函数和静态变量,是不允许使用this(因为静态函数或变量,都是属于对象本身,即所有实例都可以访问他们,但是this只是指向自身实例的地址,是ー个个例。)友元函数也没有this指针。(友元函数至少需要一个参数)this引用成员变量用法有二:this->va!或者(*this).val.这就像指针引用类似。向量vector23.vector类中用于删除向量:中的所有对象的函数是答案:clear()35.已知有20个元素int类型向量V1,若用ッ1初始化为'-向量.语句是 vector<int>V2(V1);38.在C++中,利用向量类模板定义一个具有!0个int的向量A,其元素均被置为1,实习此操作的语句是vectoro<int>A(10,1)字符串25.执行下列代码stringstr(11NihaoC++**);cout«str.substr(5,3);程序的输出结果是。答案:C++.下面不能够判断字符串S是空串的是A.if(S[0]=0) B.if(strlen(S)=0)Cif(strcmp(SJ")=0) D.if(S=>\0,)A.下列检出字符’ア的方法中,错误的是A.cout«put('d,) B.cout«*d* AC.cout.put(4d1) D.chara=1d*;cout«a;36.在使用string类的find成员函数来检索主审中是否含有指定的子申时,若在主事中不含指定的子串,find函数的返回值是ー-1.18.使用slring.h库操纵字符中时,将两个字符串连接成一个字符串的函数是いA.strlen()B.strcapf)C.strcatOD.strcnapO复数26.写出声明一个复数对象的语句,并使该对象被初始化为2.2+13,此声明语句是—complex<double>c(2.2,1.3); .2】.在C++语言的面向对象设计框架中,是程序的基本组成单元..执行代码doublepi=3.1415192;cout<<setprecision(3)<<pi;程序的输出结果是,.C卄语言提供的的基本控制结构可以分为3种类型:顺序结构、和循环结构..要使用STL库提供的对数组进行降号作序算法,在源程序中需要包含的头文件是ー.在C++标准库中,用 类来表示复数..将对象作为函数参数,是将实参对象的传递给形参对象,这种传递是单向的。.C++函数的返回类型可以是除数组与以外的任何类型..能提供封装的C++关健字是0.在C++的类声明中,用public关健字声明的类成员的访问权限是».开发一个C++语言程序的步骤通常包括编辑、,连接'运行和调试。多态性14.有关多态性说法不正确的是 CA.C++语言的多态性分为编译时的多态性和运行时的多态性B.编译时的多态性可通过函数重载实现C,运行时的多态性可通过模板和虚函数实现D.实现运行时多态性的机制称为动态多态性动态是通过基类指针或基类引用和虚函数来实现的29.不同对象可以调用相同名称的函数,但执行完全不同行为的现象称为ー27.C++支持两种多态性:时的多态性和运行时的多态性。编译39I不同对我可以谢用相同名称的兩数.但执行完全不附行为的现象称为.多态性基础1.C++语言是从早期的C语言逐渐发展演变而来的,与C语言相比,C++在求解问法上进行的最大改进号A,面向过程 Lメ”面向对象 C.安全性D.复用性36.C++中一般的程序都要有两条语句,包含头文件"#include<iostream>”语命名空间“”语句。4.以下说法中正确的是C++程序总是从第一个定义的函数开始执行C++程序总是从main函数开始执行C++中函数必须有返回值C++中函数名必须唯一29.C++流库预定义了4个流,它们分别是cinxcoutxclog和 〇cerr33.Ch程序的源文件扩展名为(pp37.C++程序的编译是以为单位进行的。文件2I面向对繚程序设计不仅館选行功能抽象,而只能进行抽象°解释:21数据 结构化程序设计使用的是功能抽象,面向对象程序设计不仅能进行功能抽象,而且能进行数据抽象。“对象”实际上是功能抽象和数据抽象的统ー40.下面程序运行的结果是 〇#inclu<le<iostrcam.h>voidmain()!cout.fill('*0;rout.widlh(6);cxMJt«"hello'*«cndl;r<,ul.rl「;ir,);I *helloC++中定义标准输入输出的库为A.stdio B.math C.iostream D.stdlil31.C++语言的一中^提供了与要操作的元素类型无关的算法。标准模板库2.编写C++程序一般需经过的几个步骤依次是DA.编辑、调试、编译、连接 B.编译、调试、编辑、连接C.编译、编辑、连接、运行 D.编辑、编译、连接、运行7.存储下列数据,占用存储字节最多的是DA.0 B.’〇’ C.'、〇” D.0.0.对C++语言和C语言的兼容性,描述正确的是( )AA.C++兼容C B.C++部分兼容CC.C++不兼容C D.C兼容C++.在C++中,头文件扩展名为( )A..cpp B..hC..lib D..objLC卄源程序文件扩展名为(A)A..cppB..hC..libD..obj37.C++语言对C语言做了很多改进,C++语言相对于C语言的最根本的变イ.对C++语言和C语言的兼容性,描述正确的是(AA.C++兼容CB.C++部分兼容C C.C++不兼容]类8.所谓数据封装就是将一组数据和与这组数据有关操作组装在ー起,形成一个实体あ实体也就是 Aん类 B.对象 C.函数体 D,数据块35.面向对象的四个基本特性是多态性、继承性、封装性、一012.下列关于类的权限的描述错误的是ん类本身的成员函数只能访问自身的私有成员B.类的对象只能访问该类的公有成员C.普通函数不能直接访问类的公有成员,必须通过对象访问D.ー个类可以将另ー个类的对象作为成员28.在用class定义一个类时,数据成员和成员函数的默认访冋权限是 。private(私有)1S,已知:P是一个指向类A数据成员m的指针,A1是类A的ー个对象。如果要给m斌值为5,正确的是A.Al.p=5;B.Al->p=5;C.Al.*p=5;D.♦Al.p=5;答案:Da対美中声明的交・,下列描述中正确的是ん属于全局变量B,属于诙类,某些情況下也可被该类不同实例所共享C只属于该类D.任何情况下那可被读类所有实例共享解释:类中的静态成员变量,为所有类对象所共享,但不属于任何ー个对象。动态成员变量不能被该类的实例共享,每个实例的动态成员变量空间是不同的。B7.在类定义的外部,可以被访问的成员有A,所有类成员 B.private或protected的类成员C.public的类成员 D,public或private的类成员解释:Apublic属性的成员对外可见,对内可见private属性的成员对外不可见,对内可见。Protected属性的成员对外不可见,对内可见,对派生类是可见的(比如父母的钱对外不可见,但是对于后代是可用的)成员没有加修饰符,默认是private6.以下关键字不能用来声明类的访问权限吵A.public B.private ^^^stadcD.protected7.有如下类声明"classA{intx;,则A类的成员x是A,公有数据成员 &Z私有数据成员C,公有成员函数 D.私有成员函数8.关于类和对象不正确的说法是CA,类是一种类型,它封装了数据和操作 B.对象是类的实例C.ー个类的对象只有一个 D.ー个对象必属于某个类13.关于对象概念的描述中,说法错误的是A(类オ是)A.对象就是C语言中的结构体B.对象代表着正在创建的系统中的ー个实体C.对象是类的ー个变量D,对象之间的信息传递是通过消息进行的贺.在用daw定义ー个类时.收据成员却成员函数的歌ル访问权限是私有private42.#include<iostream.h>classtest{private:intx:public:test(inta){x=a:}voidset(inta){x=a;}voidget(){cout«x«endl;}}//error缺少分号;main()(consttesta(3):a.set(5);a.get():)
8.下列对于类的描述错误的是()A.类要先声明后使用B.类是具有唯一标识的实体C.两个类可以使用同一个名称D.组成类的不仅有数据,还可以有对数据进行操作的函数10.关于对象的性质,下列描述错误的是()A.同一类对象之间可相互赋值B.不能使用对象数组C.对象可以用作函数参数D.ー个对象可以用作另ー个类的成员16.下列关于类的权限描述错误的是()A.类本身的成员函数可以访问自身的任何成员B.类的对象可以访问该类的所有成员C.普通函数不能直接访问类的公有成员,必须通过成员函D.ー个类可以将另ー个类的对象作为成员6.在定义类成员时,为产生封装性,则需使用哪个关键’*D)A.public B.publishC.protectedD.private20.下列哪个不是面向对象的关键要素( )B.结构性D.多态性A.B.结构性D.多态性C.封装性7.下列哪个要素不是面向对象的关键要素()B.抽象性D.B.抽象性D.继承性C.封装性
4.如没有使用private关键字定义类的数据成员,则默认为(B.publicD.friendA.privateB.publicD.friendC.protected13.类的私有成员可在何处被访问(A)A.本类的成员函数中 B.本类及子类的成员函数中C.通过对象名在任何位置 D.不可访问13.ド列访问成员的方式哪个是正确的()A.对象名.对象成员名B.对象指针名.对致成员名C.对象名ー对象成员名D.类名ー对象成员名11.类的私有成员可在何处访问( )DA,通过子类的对象访问 B,本类及子类的成员函数中C,通过该类对象访问 D.本类的成员函数中30.类和其它数据类型不同的是,组成这种类型的不仅可以有数据,还可以冇对数据进行操作的_函数34.对象传送的消息一般由3部分组成:接收对象名、调用操作名和一参数.15.下列关于类的权限的描述错误的是( )AA.类本身的成员函数只能访问自身的私有成员B.类的对象只能访问该类的公有成员C.普通函数不能直接访问类的公有成员,必须通过对象访问D.一个类可以将另ー个类的对象作为成员17.设类A将其它类对象作为成员,则建立A类对象时,下列描述正确的是(A.A类构造函数先执行A.A类构造函数先执行B,成员构造函数先执行D,不能确定C.D,不能确定.C―类中定义的成员默认访问属性为()A.public.privateC.protectedD.friend43.#include<iostream.h>classf{private:intx=O,y=0;〃不能用接4类里而给对象赋值public:voidfl(inta»intb){x=a:y=b:|voidget(){cout«x«*«y«endl;}卜main(){fa;a.fl(l,3):a.get();42.#include<iostream>usingnamespacestd;classA(voidshow(){cout«"Hcllo!w;, 改错默认为私有); 不能在主函数中inimain〇( 访问show。Aa;a.show();return0;静态成员函数9.下列对静态成员的描述中,不正确的是A.静态成员不属于对象,是类的共享成员B.静态数据成员要在类外定义和初始化C.调用静态成员函数时要通过类或对象激活,所以静态成员函数拥有!D.非静态成员函数也可以操作静态数据成员35.C++的静态数据成员需要在 进行初始化,可以被该类的所有33.若类的成员函数用关键字stade进行修饰,这样的成员函数称为.18.下列描述错误的是( )AA.在创建对象前,静态成员不存在 B.静态成员是类的成员C.静态成员不能是虚函数 D.静W成员由数不能兑接访问非静态成员18.关于类的静态成员函数描述错误的是(A)A.在创建对象前不存在 B.不能说明为虚函数C.不能直接访问非静态函数 D.不是对软的成员17.类A中存在静态数据成员X,设a和b是类A的两个对象,在执行a.x=10之后,b.x的值为()A.未初始化B.等于a.xC.等于〇D.M机16.设类Test中存在成员staticintx,则下列哪种初始化方式是正确的(A.Test::intx=25; B.intx=25;C.intTest::x=25; D.intTestx=25;11.类中能访问静态成员的函数是BC,构造函数D.析构函数A.C,构造函数D.析构函数41.232345678910111213141516intx,y=20:错,在类内部不能对数据成员直接复制改为intx,y:#includewstdafx.h"#include<iostream>usingnamespacestd;classTestIprivate:intx,y=20;public:Test(j)|x=i,y=j;}intgetx()Ireturnx;1intgety()|returny;)I;voidmain(){Testmt(10,20);cout«mt.getx()«endl;coul«mt.gety()«endl;/include<iostream.h>classAton12Y;一 因为X,Y都是私有的,在类外无Pasted: 法直接访问,修改为publicintzxtzy;public:voidinit(inli,intj)|zx=i;zy=j;|Aton(inti,intj,intn=0,intm=0)JX=i,Y=jtzx=mtzy=n;II;voidmain()IAtonA(25,20,3,5);A.init(5,9);cout«A.X«endl;cout«A.Y«endi;1748.在下面程序的横线处填上适当的字句,使该程序执行结果为40。#include<iostream.h>classTestIpublic: •staticintx;Test(inti=0)intGetnum()IreturnTest::x+10;|I;intTest::x=30voidmain(){Testtest;cout«test.Cetnum()«endl;1.从
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年功率测量仪表项目资金需求报告代可行性研究报告
- 2025年经济法考试实战试题及答案
- 2025年免疫学考试模拟试题含答案
- 2025年口腔修复学知识考试题库含答案
- 2025年第一届全国大学生就业创业知识竞赛考试题库含答案
- 结合实际案例的市政工程分析试题及答案
- 2024-2025公司项目负责人安全培训考试试题附参考答案【轻巧夺冠】
- 2024-2025部门安全培训考试试题高清版
- 2024-2025企业安全管理人员安全培训考试试题【考点精练】
- 2024-2025厂级员工安全培训考试试题【名校卷】
- 2025年中考语文专题复习《文言文断句》课件
- 护士法律法规知识培训课件
- 信贷业务法律风险防范
- 冷链物流司机岗位职责与工作流程介绍
- 资源与运营管理-第二次形考任务-国开-参考资料
- 2型糖尿病中西医结合诊疗指南(2025年)解读课件
- 2025-2030激活素A行业市场现状供需分析及重点企业投资评估规划分析研究报告
- 多尺度矢量数据融合-全面剖析
- 2025-2030中国建筑钢结构行业市场现状供需分析及投资评估规划分析研究报告
- 商业物业管理培训
- 《低钾血症病人护理》课件
评论
0/150
提交评论