- 347.00 KB
- 2022-04-22 11:51:13 发布
- 1、本文档共5页,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
- 文档侵权举报电话:19940600175。
title,”WangTao”);B.strcpy(book.title,”WangTao”);C.strcpy(*book.title,”WangTao”);D.strcpy((*book)->title,”WangTao”);86.假定有“structBOOK{chartitle[40];floatprice;};BOOK*book;”,则不正确的语句为(A)。A.BOOK*x=newbook;B.BOOKx={"C++Programming",27.0};C.BOOK*x=newBOOK;D.BOOK*x=book;87.假定有“structBOOK{chartitle[40];floatprice;}book;”,则正确的语句为(B)。A.BOOK&x=&book;B.BOOK&x=book;C.BOOK&x=newBOOK;D.BOOK&x=BOOK;88.下列对引用的陈述中不正确的是(C)。A.每一个引用都是其所引用对象的别名,因此必须初始化B.形式上针对引用的操作实际上作用于它所引用的对象C.一旦定义了引用,一切针对其所引用对象的操作只能通过该引用间接进行D.不需要单独为引用分配存储空间91.假定指针变量p定义为“int*p=newint(100);”,要释放p所指向的动态内存,应使用语句(A)。A.deletep;B.delete*p;C.delete&p;D.delete[]p;92.假定指针变量p定义为“int*p=newint[30];”,要释放p所指向的动态内存,应使用语句(D)。A.deletep;B.delete*p;C.delete&p;D.delete[]p;93.假定变量x定义为“intx=5;”,要使rx成为x的引用(别名),rx应定义为(D)。A.intrx=x;B.intrx=&x;C.int*rx=&x;D.int&rx=x;78
94.关于消息,下列说法中不正确的是(B)。A.发送消息的对象请求服务,接受消息的对象提供服务B.消息的发送者必须了解消息的接收者如何相应消息C.在C++中,消息的发送具体体现为对接收消息的对象的某个函数的调用D.每个对象只能接收某些特定格式的消息95.关于封装,下列说法中不正确的是(D)。A.通过封装,对象的全部属性和操作结合在一起,形成一个整体B.通过封装,一个对象的实现细节被尽可能地隐藏起来(不可见)C.通过封装,每个对象都成为相对独立的实体D.通过封装,对象的属性都是不可见的96.面向对象方法的多态性是指(C)。A.一个类可以派生出多个特殊类B.一个对象在不同的运行环境中可以有不同的变体C.针对一消息,不同的对象可以以适合自身的方式加以响应D.一个对象可以是由多个其他对象组合而成的97.软件产品在需求发生变化、运行环境发生变化或发现软件产品本身的错误或不足时进行相应的软件更新的难易程度叫做软件的(A)。A.可维护性B.可复用性C.兼容性D.正确性98.软件产品可被全部或部分地再用于新的应用的能力叫做软件的(B)。A.可维护性B.可复用性C.兼容性D.正确性99.软件产品与其他软件产品组合成一个整体的难易程度叫做软件的(C)。A.可维护性B.可复用性C.兼容性D.正确性100.软件产品准确执行软件需求规格说明书中所规定的任务的能力叫做软件的(D)。A.可维护性B.可复用性C.兼容性D.正确性101.面向对象软件开发中使用的OOA表示(A)。A.面向对象分析B.面向对象设计C.面向对象语言D.面向对象方法102.面向对象软件开发中使用的OOD表示(B)。A.面向对象分析B.面向对象设计C.面向对象语言D.面向对象方法103.关于面向对象系统分析,下列说法中不正确的是(B)。A.术语“面向对象分析”可以用缩写OOA表示B.面向对象分析阶段对问题域的描述比实现阶段更详细C.面向对象分析包括问题域分析和应用分析两个步骤D.面向对象分析需要识别对象的内部和外部特征104.在一个类的定义中,包含有(C)成员的定义。A.数据B.函数C.数据和函数D.数据或函数105.在类作用域中能够通过直接使用该类的(D)成员名进行访问。A.私有B.公用C.保护D.任何106.在关键字public后面定义的成员为类的(B)成员。A.私有B.公用C.保护D.任何107.在关键字private后面定义的成员为类的(A)成员。A.私有B.公用C.保护D.任何78
108.假定AA为一个类,a为该类公有的数据成员,x为该类的一个对象,则访问x对象中数据成员a的格式为(D)。A.x(a)B.x[a]C.x->aD.x.a109.假定AA为一个类,a()为该类公有的函数成员,x为该类的一个对象,则访问x对象中函数成员a()的格式为(B)。A.x.aB.x.a()C.x->aD.x->a()110.假定AA为一个类,a为该类公有的数据成员,px为指向该类对象的一个指针,则访问px所指对象中数据成员a的格式为(C)。A.px(a)B.px[a]C.px->aD.px.a111.假定AA为一个类,a为该类私有的数据成员,GetValue()为该类公有函数成员,它返回a的值,x为该类的一个对象,则访问x对象中数据成员a的格式为(D)。A.x.aB.x.a()C.x->GetValue()D.x.GetValue()112.假定AA为一个类,inta()为该类的一个成员函数,若该成员函数在类定义体外定义,则函数头为(A)。A.intAA::a()B.intAA:a()C.AA::a()D.AA::inta()113.假定AA为一个类,a为该类公有的数据成员,若要在该类的一个成员函数中访问它,则书写格式为(A)。A.aB.AA::aC.a()D.AA::a()114.若需要把一个类外定义的成员函数指明为内联函数,则必须把关键字(B)放在函数原型或函数头的前面。A.inB.inlineC.inLineD.InLiner115.在多文件结构的程序中,通常把类的定义单独存放于(D)中。A.主文件B.实现文件C.库文件D.头文件116.在多文件结构的程序中,通常把类中所有非内联函数的定义单独存放于(B)中。A.主文件B.实现文件C.库文件D.头文件117.在多文件结构的程序中,通常把含有main()函数的文件称为(A)。A.主文件B.实现文件C.程序文件D.头文件118.一个C++程序文件的扩展名为(C)。A..hB..cC..cppD..cp119.在C++程序中使用的cin标识符是系统类库中定义的(A)类中的一个对象。A.istreamB.ostreamC.iostreamD.fstream120.在C++程序中使用的cout标识符是系统类库中定义的(B)类中的一个对象。A.istreamB.ostreamC.iostreamD.fstream121.假定AA是一个类,abc是该类的一个成员函数,则参数表中隐含的第一个参数的类型为(D)。A.intB.charC.AAD.AA*122.假定AA是一个类,abc是该类的一个成员函数,则参数表中隐含的第一个参数为(C)。A.abcB.*thisC.thisD.this&123.假定AA是一个类,“AA&abc();”是该类中一个成员函数的原型,若该函数存在对*this赋值的语句,当用x.abc()调用该成员函数后,x的值(A)。A.已经被改变B.可能被改变C.不变D.不受函数调用的影响78
124.假定AA是一个类,“AA*abc()const;”是该类中一个成员函数的原型,若该函数返回this值,当用x.abc()调用该成员函数后,x的值(C)。A.已经被改变B.可能被改变C.不变D.受到函数调用的影响125.类中定义的成员默认为(B)访问属性。A.publicB.privateC.protectedD.friend126.结构中定义的成员默认为(A)访问属性。A.publicB.privateC.protectedD.friend127.当类中一个字符指针成员指向具有n个字节的存储空间时,它所能存储字符串的最大长度为(C)。A.nB.n+1C.n-1D.n-2128.在一个用数组实现的队列类中,假定数组长度为MS,队首元素位置为first,队列长度为length,则队尾(即最后一个)元素的位置为(C)。A.length+1B.first+lengthC.(first+length-1)%MSD.(first+length)%MS129.在一个用数组实现的队列类中,假定数组长度为MS,队首元素位置为first,队列长度为length,则队尾的后一个位置为(D)。A.length+1B.first+lengthC.(first+length-1)%MSD.(first+length)%MS130.在一个用数组实现的队列类中,假定数组长度为MS,队首元素位置为first,队列长度为length,则队首的后一个位置为(B)。A.first+1B.(first+1)%MSC.(first-1)%MSD.(first+length)%MS131.在一个用链表实现的队列类中,假定每个结点包含的值域用elem表示,包含的指针域用next表示,链队的队首指针用elemHead表示,队尾指针用elemTail表示,若链队非空,则进行插入时必须把新结点的地址赋给(D)。A.elemHeadB.elemTailC.elemHead->next和elemHeadD.elemTail->next和elemTail132.在一个用链表实现的队列类中,假定每个结点包含的值域用elem表示,包含的指针域用next表示,链队的队首指针用elemHead表示,队尾指针用elemTail表示,若链队为空,则进行插入时必须把新结点的地址赋给(C)。A.elemHeadB.elemTailC.elemHead和elemTailD.elemHead或elemTail133.队列具有(A)的操作特性。A.先进先出B.先进后出C.进出无序D.进出任意134.栈具有(B)的操作特性。A.先进先出B.先进后出C.进出无序D.进出任意135.对于一个类的构造函数,其函数名与类名(A)。A.完全相同B.基本相同C.不相同D.无关系136.对于一个类的析构函数,其函数名与类名(C)。A.完全相同B.完全不同C.只相差一个字符D.无关系137.类的构造函数是在定义该类的一个(C)时被自动调用执行的。A.成员函数B.数据成员C.对象D.友元函数138.类的析构函数是一个对象被(B)时自动调用的。A.建立B.撤消C.赋值D.引用78
139.一个类的构造函数通常被定义为该类的(A)成员。A.公用B.保护C.私有D.友元140.一个类的析构函数通常被定义为该类的(C)成员。A.私有B.保护C.公用D.友元141.假定AB为一个类,则执行“ABx;”语句时将自动调用该类的(B)。A.带参构造函数B.无参构造函数C.拷贝构造函数D.赋值重载函数142.假定AB为一个类,则执行“ABx(a,5);”语句时将自动调用该类的(A)。A.带参构造函数B.无参构造函数C.拷贝构造函数D.赋值重载函数143.假定AB为一个类,则执行“AB*s=newAB(a,5);”语句时得到的一个动态对象为(D)。A.sB.s->aC.s.aD.*s144.假定AB为一个类,则执行“ABr1=r2;”语句时将自动调用该类的(D)。A.无参构造函数B.带参构造函数C.赋值重载函数D.拷贝构造函数145.若需要使类中的一个指针成员指向一块动态存储空间,则通常在(B)函数中完成。A.析构B.构造C.任一成员D.友元146.当类中的一个整型指针成员指向一块具有n*sizeof(int)大小的存储空间时,它最多能够存储(A)个整数。A.nB.n+1C.n-1D.1147.假定一个类的构造函数为“A(intaa,intbb){a=aa;b=aa*bb;}”,则执行“Ax(4,5);”语句后,x.a和x.b的值分别为(C)。A.4和5B.5和4C.4和20D.20和5148.假定一个类的构造函数为“A(intaa=1,intbb=0){a=aa;b=bb;}”,则执行“Ax(4);”语句后,x.a和x.b的值分别为(D)。A.1和0B.1和4C.4和1D.4和0149.假定AB为一个类,则(B)为该类的拷贝构造函数的原型说明。A.AB(ABx);B.AB(AB&x);C.voidAB(AB&x);D.AB(intx);150.假定一个类的构造函数为“B(intax,intbx):a(ax),b(bx){}”,执行“Bx(1,2),y(3,4);x=y;”语句序列后x.a的值为(C)。A.1B.2C.3D.4151.假定一个类AB只含有一个整型数据成员a,当用户不定义任何构造函数时,系统为该类定义的无参构造函数为(D)。A.AB(){a=0;}B.AB(intaa=0):a(aa){}C.AB(intaa):a(aa){}D.AB(){}152.假定一个类AB只含有一个整型数据成员a,用户为该类定义的带参构造函数可以为(C)。A.AB(){}B.AB():a(0){}C.AB(intaa=0){a=aa;}D.AB(intaa){}153.对于任一个类,用户所能定义的构造函数的个数至多为(D)。A.0B.1C.2D.任意个154.对于任一个类,用户所能定义的析构函数的个数至多为(B)。A.0B.1C.2D.任意个155.假定AB为一个类,则执行“AB*px=newAB[n];”语句时将(A)。A.动态分配一个数组B.动态分配一个对象C.静态分配一个数组D.静态分配一个对象78
156.设px是指向一个类对象的指针变量,则执行“deletepx;”语句时,将自动调用该类的(C)。A.无参构造函数B.带参构造函数C.析构函数D.拷贝构造函数157.当一个类对象离开它的作用域时,系统自动调用该类的(D)。A.无参构造函数B.带参构造函数C.拷贝构造函数D.析构函数158.假定一个类对象数组为A[n],当离开它定义的作用域时,系统自动调用该类析构函数的次数为(C)。A.0B.1C.nD.n-1159.假定AB为一个类,则执行“ABa[10];”语句时调用该类无参构造函数的次数为(D)。A.0B.1C.9D.10160.假定AB为一个类,则执行“AB*px=newAB[n];”语句时调用该类无参构造函数的次数为(A)。A.nB.n-1C.1D.0161.假定AB为一个类,则执行“ABa,b(3),*p;”语句时共调用该类构造函数的次数为(A)。A.2B.3C.4D.5162.假定AB为一个类,则执行“ABa(2),b[3],*p[4];”语句时共调用该类构造函数的次数为(B)。A.3B.4C.5D.9163.假定AB为一个类,则执行“ABa,b(2),c[3],*p=&a;”语句时共调用该类无参构造函数的次数为(D)。A.5B.6C.3D.4164.假定AB为一个类,则执行“AB*p=newAB(1,2);”语句时共调用该类构造函数的次数为(B)。A.0B.1C.2D.3165.假定AB为一个类,px为指向该类的一个含有n个对象的动态数组的指针,则执行“delete[]px;”语句时共调用该类析构函数的次数为(C)。A.0B.1C.nD.n+1166.对类对象成员的初始化是通过构造函数中给出的(B)实现的。A.函数体B.初始化表C.参数表D.初始化表或函数体167.对类中常量成员的初始化是通过构造函数中给出的(C)实现的。A.函数体B.参数表C.初始化表D.初始化表或函数体168.对类中引用成员的初始化是通过构造函数中给出的(C)实现的。A.函数体B.参数表C.初始化表D.初始化表或函数体169.类的构造函数可以带有(D)个参数。A.0B.1C.2D.任意170.类的析构函数可以带有(A)个参数。A.0B.1C.2D.任意171.一个类的静态数据成员所表示属性(C)。A.是类的或对象的属性B.只是对象的属性C.只是类的属性D.类和友元的属性172.类的静态成员的访问控制(D)。A.只允许被定义为privateB.只允许被定义为private或protected78
C.只允许被定义为publicD.可允许被定义为private、protected或public173.静态成员函数对类的数据成员访问(B)。A.是不允许的B.只允许是静态数据成员C.只允许是非静态数据成员D.可允许是静态数据成员或非静态数据成员174.被非静态成员函数访问的类的数据成员(A)。A.可以是非静态数据成员或静态数据成员B.不可能是类的静态数据成员C.只能是类的非静态数据成员D.只能是类的静态数据成员175.静态数据成员的初始化是在(D)中进行的。A.构造函数B.任何成员函数C.所属类D.全局区176.当将一个类A或函数f()说明为另一个类B的友元后,类A或函数f()能够直接访问类B的(D)。A.只能是公有成员B.只能是保护成员C.只能是除私有成员之外的任何成员D.具有任何权限的成员177.引入友元的主要目的是为了(C)。A.增强数据安全性B.提高程序的可靠性C.提高程序的效率和灵活性D.保证类的封装性178.一个类的成员函数也可以成为另一个类的友元函数,这时的友元说明(A)。A.需加上类域的限定B.不需加上类域的限定C.类域的限定可加可不加D.不需要任何限定179.一个类的友元不是该类的成员,与该类的关系密切,所以它(D)。A.有this指针,有默认操作的对象B.没有this指针,可以有默认操作的对象C.有this指针,不能执行默认操作D.没有this指针,也就没有默认操作的对象180.在重载一个运算符时,其参数表中没有任何参数,这表明该运算符是(B)。A.作为友元函数重载的1元运算符B.作为成员函数重载的1元运算符C.作为友元函数重载的2元运算符D.作为成员函数重载的2元运算符181.在成员函数中进行双目运算符重载时,其参数表中应带有(B)个参数。A.0B.1C.2D.3182.双目运算符重载为普通函数时,其参数表中应带有(C)个参数。A.0B.1C.2D.3183.如果表达式a+b中的“+”是作为成员函数重载的运算符,若采用运算符函数调用格式,则可表示为(A)。A.a.operator+(b)B.b.operator+(a)C.operator+(a,b)D.operator(a+b)184.如果表达式a==b中的“==”是作为普通函数重载的运算符,若采用运算符函数调用格式,则可表示为(C)。A.a.operator==(b)B.b.operator==(a)C.operator==(a,b)D.operator==(b,a)185.如果表达式a++中的“++”是作为普通函数重载的运算符,若采用运算符函数调用格式,则可表示为(C)。A.a.operator++()B.operator++(a)C.operator++(a,1)D.operator++(1,a)78
186.如果表达式++a中的“++”是作为成员函数重载的运算符,若采用运算符函数调用格式,则可表示为(D)。A.a.operator++(1)B.operator++(a)C.operator++(a,1)D.a.operator++()187.关于运算符重载,下列说法正确的是(C)。A.重载时,运算符的优先级可以改变。B.重载时,运算符的结合性可以改变。C.重载时,运算符的功能可以改变。D.重载时,运算符的操作数个数可以改变。188.关于运算符重载,下列说法正确的是(B)。A.所有的运算符都可以重载。B.通过重载,可以使运算符应用于自定义的数据类型。C.通过重载,可以创造原来没有的运算符。D.通过重载,可以改变运算符的优先级。189.一个程序中数组a和变量k定义为“inta[5][10],k;”,且程序中包含有语句“a(2,5)=++k*3;”,则此语句中肯定属于重载操作符的是(A)。A.()B.=C.++D.*190.假定K是一个类名,并有定义“Kk;intj;”,已知K中重载了操作符(),且语句“j=k(3);”和“k(5)=99;”都能顺利执行,说明该操作符函数的原形只可能是(C)。A.Koperator()(int);B.intoperator()(int&);C.int&operator()(int);D.K&operator()(int);191.假定M是一个类名,且M中重载了操作符=,可以实现M对象间的连续赋值,如“m1=m2=m3;”。重载操作符=的函数原型最好是(D)。A.intoperaotor=(M);B.intoperator=(M&);C.Moperator=(M&);D.M&operator=(M);192.下面是重载双目运算符+的普通函数原形,其中最符合+原来含义的是(A)。A.Valueoperator+(Value,Value);B.Valueoperator+(Value,int);C.Value&operator+(Value,Value);D.Value&operator+(Value&,Value&);193.下面是重载双目运算符-的成员函数原形,其中最符合-原来含义的是(A)。A.ValueValue::operator-(Value);B.ValueValue::operator-(int);C.Value&Value::operator-(Value);D.Value&Value::operator-(Value&);194.在重载一运算符时,若运算符函数的形参表中没有参数,则不可能的情况是(D)。A.该运算符是一个单目运算符。B.该运算符函数有一个隐含的参数this。C.该运算符函数是类的成员函数。D.该运算符函数是类的友元函数。195.关于插入运算符<<的重载,下列说法不正确的是(B)。A.运算符函数的返回值类型是ostream&。B.重载的运算符必须定义为类的成员函数。C.运算符函数的第一个参数的类型是ostream&。D.运算符函数有两个参数。196.从一个基类派生出的各个类的对象之间(C)。78
A.共享所有数据成员,每个对象还包含基类的所有属性B.共享部分数据成员,每个对象还包含基类的所有属性C.不共享任何数据成员,但每个对象还包含基类的所有属性D.共享部分数据成员和函数成员197.如果是类B在类A的基础上构造,那么,就称(B)。A.类A为基类或父类,类B为超类或子类B.类A为基类、父类或超类,类B为派生类或子类C.类A为派生类,类B为基类D.类A为派生类或子类,类B为基类、父类或超类198.C++的继承性允许派生类继承基类的(C)。A.部分特性,并允许增加新的特性或重定义基类的特性B.部分特性,但不允许增加新的特性或重定义基类的特性C.所有特性,并允许增加新的特性或重定义基类的特性D.所有特性,但不允许增加新的特性或重定义基类的特性199.派生类的成员函数可以直接访问基类的(B)成员。A.所有B.公有和保护C.保护和私有D.私有200.对于公有继承,基类的公有和保护成员在派生类中将(D)成员。A.全部变成公有B.全部变成保护C.全部变成私有D.仍然相应保持为公有和保护201.对于公有继承,基类中的私有成员在派生类中将(C)。A.能够直接使用成员名访问B.能够通过成员运算符访问C.仍然是基类的私有成员D.变为派生类的私有成员202.当保护继承时,基类的(B)在派生类中成为保护成员,在类作用域外不能够通过派生类的对象来直接访问该成员。A.任何成员B.公有成员和保护成员C.保护成员和私有成员D.私有成员203.在定义一个派生类时,若不使用保留字显式地规定采用何种继承方式,则默认为(A)方式。A.私有继承B.非私有继承C.保护继承D.公有继承204.建立包含有类对象成员的派生类对象时,自动调用构造函数的执行顺序依次为(C)的构造函数。A.自己所属类、对象成员所属类、基类B.对象成员所属类、基类、自己所属类C.基类、对象成员所属类、自己所属类D.基类、自己所属类、对象成员所属类205.当派生类中有和基类一样名字的成员时,一般来说,(B)。A.将产生二义性B.派生类的同名成员将覆盖基类的成员C.是不能允许的D.基类的同名成员将覆盖派生类的成员206.C++中的虚基类机制可以保证:(D)。A.限定基类只通过一条路径派生出派生类B.允许基类通过多条路径派生出派生类,派生类也就能多次继承该基类C.当一个类多次间接从基类派生以后,派生类对象能保留多份间接基类的成员D.当一个类多次间接从基类派生以后,其基类只被一次继承207.下列对派生类的描述中错误的说法是:(D)。78
A.派生类至少有一个基类B.派生类可作为另一个派生类的基类C.派生类除了包含它直接定义的成员外,还包含其基类的成员D.派生类所继承的基类成员的访问权限保持不变208.派生类的对象对其基类中(A)可直接访问。A.公有继承的公有成员B.公有继承的私有成员C.公有继承的保护成员D.私有继承的公有成员二、判断题1.C++中标识符内的大小写字母是没有区别的。(F )2.C++是一种以编译方式实现的高级语言。(T )3.计算函数参数顺序引起的二义性是由不同的编译系统决定的。(T )4.返回值类型、参数个数和类型都相同的函数也可以重载。(F )5.使用关键字class定义的类中缺省的访问权限是私有(private)的。(T )6.类的私有成员只能被类中的成员函数访问,任何类以外的函数对它们的访问都是非法的。(F )7.多继承情况下,派生类的构造函数的执行顺序取决于成员初始化列表中的顺序。(F )8.在公有继承中,基类中的公有成员和私有成员在派生类中都是可见的。(F )9.在私有继承中,基类中所有成员对派生类都是不可见的。(F )10.在保护继承中,对于垂直访问等同于公有继承,对于水平访问等同于私有继承。(T )11.构造函数可以声明为虚函数。(F )12.在析构函数中调用虚函数时,采用动态束定。(F )13.在一个成员函数内调用一个虚函数时,对该虚函数的调用进行动态束定。(T )14.公有继承可以实现子类型。(T )15.构造函数可以声明为纯虚函数。(F )16.说明函数原型时不需要指明每个函数参数的名字,只需要说明每个参数的类型和返回值类型就可以了。对17.所有的表达式都有值。错18.程序的编译是以文件为单位的,因此将程序分到多个文件中可以减少每次对程序修改所带来的编译工作量。对19.类的静态数据成员需要在定义每个类的对象时进行初始化。错20.基类中被说明为protected和private的成员只能被其派生类的成员函数访问,不能被其它的函数访问。错21.当将一个类S定义为另一个类A的友元类时,类S的所有成员函数都可以直接访问类A的所有成员。对22.当函数的返回值是数组类型的,传递的是数组第一个元素的地址。错78
23.如果派生类的成员函数的原型与基类中被定义为虚函数的成员函数原型相同,那么,这个函数自动继承基类中虚函数的特性。对24.字符串’hello,world”在内存中存放时,占用11个字节的空间。错25.用new动态申请的内存空间,必须用delete来释放。对26.静态数据成员必须在类外定义和初始化。(√)27.保护继承时,派生类中的成员函数可以直接访问基类中的protected成员。(√)28.静态成员函数可以引用属于该类的任何函数成员。(×)29.指针常量可以指向相应类型的常量。(√)30.友元函数是在类声明中由关键字friend修饰说明的类的成员函数。(×)31.如果程序中未声明构造函数,则系统自动产生出一个默认形式的构造函数。(√)32.友元函数访问对象中的成员可以不通过对象名(×)33.如果程序中未声明析构函数,编译器将自动产生一个默认的析构函数。(√)34.类中的成员数据可以是另一个类的对象。(√)35.常引用做形参,在函数中不能更新所引用的对象。(√)36.虚函数不能是类的静态成员。对37.重定义虚函数的派生类必须是公有继承的。对38.对于从基类继承的虚函数,派生类也可以不进行重定义。对39.纯虚函数与函数体为空的虚函数等价。错40.多态类提供了一种动态多分支派送机制。对41.作为虚函数隐含参数的this指针,决定了虚函数调用时执行的代码。对三、填空题1. C++语言是在_________语言的基础上发展起来的。2. C++语言的编译单位是扩展名为__________的__________文件。5. 用于输出表达式值的标准输出流对象是_________。6. 用于从键盘上为变量输入值的标准输入流对象是________。8. 一个函数的函数体就是一条_________语句。9. 当执行cin语句时,从键盘上输入每个数据后必须接着输入一个________符,然后才能继续输入下一个数据。10. 在C++程序中包含一个头文件或程序文件的预编译命令为__________。13. 在#include命令中所包含的头文件,可以是系统定义的头文件,也可以是________定义的头文件。14. 使用#include命令可以包含一个头文件,也可以包含一个______文件。17.C++头文件和源程序文件的扩展名分别为______和______。18.程序文件的编译错误分为________和________两类。22. 当执行cout语句输出endl数据项时,将使C++显示输出屏幕上的光标从当前位置移动到________的开始位置。38. 在C++中存储字符串”abcdef”至少需要________个字节。78
39. 在C++中存储字符串”a+b=c”至少需要________个字节。52. 设enum Printstatus{ready,busy,error}; 则 cout<#include