【MOOC】C++程序设计-淮阴工学院 中国大学慕课MOOC答案_第1页
【MOOC】C++程序设计-淮阴工学院 中国大学慕课MOOC答案_第2页
【MOOC】C++程序设计-淮阴工学院 中国大学慕课MOOC答案_第3页
【MOOC】C++程序设计-淮阴工学院 中国大学慕课MOOC答案_第4页
【MOOC】C++程序设计-淮阴工学院 中国大学慕课MOOC答案_第5页
已阅读5页,还剩13页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

【MOOC】C++程序设计-淮阴工学院中国大学慕课MOOC答案11-1随堂测验1、【单选题】C++语言是从早期的C语言逐渐发展演变而来的,与C语言相比,它在求解问题方法上进行的?最大改进是(?)??本题答案:【面向对象?】2、【单选题】下列标识符中都是合法的是(?)??本题答案:【_key,?example,?a_b】3、【单选题】classAnimal{public:voidsleep(doubleh=1){hour+=h;}private:doubledistance;doublehour;};小明将类中成员函数进行类外定义如下,请问有几处错误?classAnimal{public:voidsleep(doubleh=1);private:doubledistance;doublehour;};voidsleep(doubleh=1){hour+=h;}本题答案:【2】4、【判断题】类的成员函数只能在类内定义。本题答案:【错误】5、【判断题】voidAccount::SetAccount(intd,doublem){id=d;money=m;}相当于:voidAccount::SetAccount(intd,doublem){this-id=d;this-money=m;}本题答案:【正确】11-2对象测验1、【单选题】数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体也就是(??)。?本题答案:【类】2、【单选题】类的实例化是指(???)。?本题答案:【创建类的对象】3、【单选题】以下创建对象的方法中,哪个是错误的?本题答案:【Tdatedate1】4、【填空题】类的访问限定符包括public、________和private。本题答案:【protected】5、【填空题】类成员默认的访问方式是________。本题答案:【private】类和对象作业类和对象测验题1、【单选题】关于面向对象的程序设计方法,下列说法正确的是______。本题答案:【在面向对象的程序设计中,结构化程序设计方法仍有着重要作用】2、【单选题】在C++中,实现封装性需借助______。本题答案:【类】3、【单选题】下列关于类和对象的叙述中,错误的是______。本题答案:【一个类只能有一个对象】4、【单选题】以下关键字不能用来声明类的访问权限的是______。本题答案:【static】5、【单选题】有如下类声明:classFoo{intbar;};则Foo类的成员bar是______。本题答案:【私有数据成员】6、【填空题】在C++面向对象程序设计框架中,______是程序的基本组成单元。本题答案:【类##%_YZPRLFH_%##class】7、【填空题】在面向对象的程序设计中,将数据和处理数据的操作封装成一个整体就定义了一种事物的类型,称作类。类是一种抽象的概念,属于该类的一个实例叫做______。本题答案:【对象】8、【填空题】与指针成员访问表达式p-name等价的表达式是______。本题答案:【(*p).name】9、【填空题】有如下类声明:classMyClass{inti;private:intj;protected:intk;public:intm,n;};其中,私有成员的数量为______。本题答案:【2##%_YZPRLFH_%##两个##%_YZPRLFH_%##2个】12-1构造函数测验1、【单选题】下列说法中正确的是(???)。本题答案:【类中的函数成员可以在类体中定义,也可以在类体之外定义】2、【单选题】类的构造函数被自动调用执行的情况是在创建该类的(??)本题答案:【对象时】3、【单选题】在下列函数原型中,可以作为类AA构造函数的是(????)本题答案:【AA(int)const;】4、【单选题】Account类定义如下,用该类创建对象错误的是()classAccount{public://公有成员函数Account(intd=1151,doublem=0.0){//默认参数构造函数id=d;money=m;//初始化数据成员}voiddeposit(doublem){//一般成员函数money+=m;}voidwithdraw(doublem){//一般成员函数money-=m;}voidprint(){//一般成员函数cout“ID:”id“,Money:”moneyendl;}private://私有数据成员intid;doublemoney;};本题答案:【Accountcc(1151,10,1);】5、【判断题】构造函数在类体外实现时要通过类名进行限定。本题答案:【正确】12-2类成员初始化测验1、【判断题】对象成员构造函数的调用发生在类的构造函数调用之前本题答案:【正确】2、【判断题】classPerson{public:Person(char*n,inth){strcpy(name,n);height=h;}private:charname[20];intheight;Birthdaybirth(2016,2,24);};以上代码能够对birth进行初始化。本题答案:【错误】3、【填空题】类对象作为数据成员时,用______调用类对象的构造函数进行初始化。本题答案:【初始化表】12-3析构函数测验1、【单选题】()不是析构函数的特点本题答案:【析构函数可以有一个或多个参数】2、【判断题】每个类必须有一个析构函数,若未提供类的析构函数,则C++会提供一个默认的析构函数。本题答案:【正确】3、【判断题】类对象成员析构的顺序是:按照类对象成员声明顺序依次调用析构函数。本题答案:【错误】构造函数和析构函数作业构造函数与析构函数测试1、【单选题】有以下类定义classMyClass{public:MyClass(){cout1;}};则执行语句MyClassa,b[2],*p[2];后,程序的输出结果是______。A:11B:111C:1111D:11111本题答案:【111】2、【单选题】关于类的概念下列说法正确的是______。本题答案:【类可以没有显式的构造函数】3、【单选题】有如下两个类的定义classAA{};classBB{AAv1,*v2;BBv3;int*v4;};其中有一个成员变量的定义是错误的,这个变量是_____________。本题答案:【v3】4、【单选题】Sample是一个类,定义如下classSample{intval;public:Sample(intv):val(v){}};执行下面语句后,调用Sample类的构造函数的次数是_______。Samplea[3],*p=newSample;本题答案:【4】5、【单选题】有如下程序:className{char*name;public:Name():name(NULL){}Name(char*fname)//将fname所指字符串拷贝到name所指向的存储空间{name=________________;strcpy(name,fname);}~Name(){delete[]name;}};横线处应填写的表达式是__________________。本题答案:【newchar[strlen(fname)+1]】6、【填空题】有如下定义:classMA{intvalue;public:MA(intn=0):value(n){}};MA*ta,tb;其中MA类的对象名标识符是______。本题答案:【tb】7、【填空题】己知下列程序的输出结果是42,请将画线处缺失的部分补充完整。#includeiostreamusingnamespacestd;classFoo{intvalue;public:Foo():value(0){}voidsetValue(intvalue){______=value;}//给Foo的数据成员value赋值voidprint(){coutvalue;}};intmain(){Foof;f.setValue(42);f.print();return0;}本题答案:【this->value##%_YZPRLFH_%##Foo::value##%_YZPRLFH_%##(*this).value】8、【填空题】1、插入排序算法的主要思想是:每次从未排序序列中取出的一个数据,插入到已排序序列中的正确位置。InsertSort类的成员函数sort()实现了插入排序算法。请将画线处缺失的部分补充完整。classInsertSort{public:InsertSort(int*a0,intn0):a(a0),n(n0){}//参数a0是某数组首地址,n是数组元素个数voidsort(){//此函数假设已排序序列初始化状态只包含a[0],未排序序列初始为a[1]…a[n-1]for(inti=1;in;++i){intt=a[i];intj;for(______;j0;--j){if(t=a[j-1])break;a[j]=a[j-1];}a[j]=t;}}protected:int*a,n;//指针a用于存放数组首地址,n用于存放数组元素个数};本题答案:【j=i】拷贝构造函数作业拷贝构造函数测试1、【单选题】有如下程序:#includeiostreamusingnamespacestd;classA{public:A(inti=0):r(i){}A(Aa){r=a.r;cout1;}voidprint(){coutr;}private:intr;};voidfun(Aa){a.print();}Afun(){Aa(2);returna;}intmain(){Aa1(2),a2(a1),a3,a4;a3=fun();a4=a1;fun(A(6));coutendl;return0;}运行此程序时,类A的拷贝构造函数执行的次数是_________________。本题答案:【3】2、【单选题】有如下程序#includeiostreamusingnamespacestd;classMyClass{public:MyClass(intx):val(x){}voidprint()const{coutconst:val=val\t;}voidprint(){coutval=val\t;}private:intval;};intmain(){constMyClassobj1(10);MyClassobj2(20);obj1.print();obj2.print();return0;}程序的输出结果是______________。本题答案:【const:val=10val=20】3、【多选题】拷贝构造函数使用的场合有_______________。本题答案:【由一个对象初始化另一个对象时#当对象作为函数实参传递给函数形参时#当对象作为函数的返回值,创建一个临时对象时】4、【填空题】有如下类定义,请将Sample类的拷贝构造函数补充完整。classSample{public:Sample(){}~Sample(){if(p)deletep;}Sample(constSamples){p=newint;*p=___________;}voidSetData(intdata){p=newint(data);}voidprint(){cout*pendl;}private:int*p;};本题答案:【*(s.p)##%_YZPRLFH_%##*(s.p)】常量成员、静态成员与友元测验常量成员、静态成员与友元测验1、【单选题】有如下类定义和变量定义:classA{public:A(){data=0;}~A(){}intGetData()const{returndata;}voidSetData(intn){data=n;}private:intdata;};constAa;Ab;下列函数调用中错误的是__________。本题答案:【a.SetData(10);】2、【单选题】有如下程序#includeiostreamusingnamespacestd;classTest{public:Test(){data=0;k++;}~Test(){}intgetK(){returnk;}private:staticintk;intdata;};intTest::k=0;intmain(){Testa[2],*ptr;Testb;coutb.getK()endl;return0;}程序的输出结果是______________。本题答案:【3】3、【单选题】关于友元说法错误的是______。本题答案:【友元函数必须被声明在public区】4、【单选题】一个类的友元函数能够通过成员访问运算符符访问该类的______。本题答案:【公有成员、保护成员、私有成员】5、【单选题】下列各种函数中,______不是类的成员函数。本题答案:【友元函数】6、【填空题】将一个函数声明为一个类的友元函数必须使用关键字______。本题答案:【friend】7、【填空题】若需要把一个函数voidF();定义为一个类AB的友元函数,则应在类AB的定义中加入一条声明语句:______。本题答案:【friendvoidF();】继承与派生作业(1)继承与派生测验(1)1、【单选题】在公有派生的情况下,派生类中定义的成员函数只能访问原基类的______。本题答案:【公有成员和保护成员】2、【单选题】下列说法中错误的是______。本题答案:【公有继承时基类中的private成员在派生类中仍是private的】3、【单选题】若有如下类定义:classB{voidfun1(){}protected:doublevar1;public:voidfun2(){}};classD:publicB{protected:voidfun3(){}};已知obj是类D的对象,下列语句中不违反类成员访问控制权限的是______。本题答案:【obj.fun2();】4、【单选题】下列关于派生类的描述中错误的是______。本题答案:【派生类只继承了基类的公有成员和保护成员】5、【单选题】下列关键字中,不能用来表示继承方式的是______。本题答案:【static】6、【填空题】基类中被说明为______的成员只能被其派生类的成员函数访问,不能被外界函数访问。本题答案:【protected##%_YZPRLFH_%##保护##%_YZPRLFH_%##基类中被说明为protected的成员只能被其派生类的成员函数访问,不能被其它的函数访问。】7、【填空题】类继承中,缺省的继承方式是______。本题答案:【私有继承##%_YZPRLFH_%##private继承##%_YZPRLFH_%##私有##%_YZPRLFH_%##private##%_YZPRLFH_%##本题考查的是继承的基本概念。类的继承方式有公有、保护、私有三种。默认的继承方式为私有继承。】继承与派生测验(2)——虚函数与抽象类1、【单选题】关于虚函数的描述中,正确的是______。本题答案:【基类中声明了虚函数后,派生类中将其对应的函数可不必声明为虚函数】2、【单选题】关于纯虚函数,下列表述正确的是______。本题答案:【纯虚函数的声明总是以=0;结束】3、【单选题】有如下程序:#includeiostreamusingnamespacestd;classA{public:virtualvoidf(){cout1;}voidg(){cout2;}};classB:publicA{public:virtualvoidf(){cout3;}voidg(){cout4;}};voidshow(Aa){a.f();a.g();}intmain(){Bb;show(b);return0;}运行时的输出结果是_____________本题答案:【32】4、【单选题】有如下程序:#includeiostreamusingnamespacestd;classBase{public:voidoutput(){cout1;}virtualvoidPrint(){cout'B';}};classDerived:publicBase{public:voidoutput(){cout2;}voidPrint(){cout'D';}};intmain(){Base*ptr=newDerived;//合法ptr-output();ptr-Print();deleteptr;return0;}程序的输出结果是______。本题答案:【1D】5、【单选题】下列有关继承和派生的叙述中,正确的是______。本题答案:【如果派生类没有实现基类的一个纯虚函数,则该派生类是一个抽象类】6、【填空题】有如下程序:#includeiostreamusingnamespacestd;classMonitor{public:Monitor(chart):type(t){}voidPrint()const{coutThetypeofmonitoristypeendl;}private:chartype;};classComputer{public:Computer(inti,charc):____________{id=i;}voidPrint()const{coutThecomputerisidendl;mon.Print();}private:intid;Monitormon;//注意这里};intmain(){constComputermyComputer(101,'B');myComputer.Print();return0;}请将程序补充完整,使程序在运行时输出:Thecomputeris101'ThetypeofmonitorisB本题答案:【mon(c)##%_YZPRLFH_%##mon(c)##%_YZPRLFH_%##mon(c)##%_YZPRLFH_%##mon(c)】7、【填空题】“图形”类Shape中定义了纯虚函数CalArea(),“三角形”类Triangle继承了类Shape,请将Triangle类中的CalArea函数补充完整。#includeiostreamusingnamespacestd;classShape{public:virtualdoubleCalArea()=0;//求面积};classTriangle:publicShape{public:Triangle(doubles,doubleh):side(s),height(h){}________________{returnside*height/2;}//求三角形面积private:doubleside;//底边长doubleheight;//底边上的高};intmain(){Triangletri(3,5);coutTrianglearea=tri.CalArea()endl;return0;}本题答案:【virtualdoubleCalArea()##%_YZPRLFH_%##doubleCalArea()##%_YZPRLFH_%##virtualdoubleCalArea()##%_YZPRLFH_%##doubleCalArea()】多态性作业多态性测验1、【单选题】关于虚函数的描述中,正确的是______。本题答案:【基类中声明了虚函数后,派生类中将其对应的函数可不必声明为虚函数】2、【单选题】关于纯虚函数,下列表述正确的是______。本题答案:【纯虚函数的声明总是以=0;结束】3、【单选题】有如下程序:#includeiostreamusingnamespacestd;classA{public:virtualvoidf(){cout1;}voidg(){cout2;}};classB:publicA{public:virtualvoidf(){cout3;}voidg(){cout4;}};voidshow(Aa){a.f();a.g();}intmain(){Bb;show(b);return0;}运行时的输出结果是_____________本题答案:【32】4、【单选题】有如下程序:#includeiostreamusingnamespacestd;classBase{public:voidoutput(){cout1;}virtualvoidPrint(){cout'B';}};classDerived:publicBase{public:voidoutput(){cout2;}voidPrint(){cout'D';}};intmain(){Base*ptr=newDerived;//合法ptr-output();ptr-Print();deleteptr;return0;}程序的输出结果是______。本题答案:【1D】5、【单选题】下列有关继承和派生的叙述中,正确的是______。本题答案:【如果派生类没有实现基类的一个纯虚函数,则该派生类是一个抽象类】6、【填空题】有如下程序:#includeiostreamusingnamespacestd;classMonitor{public:Monitor(chart):type(t){}voidPrint()const{coutThetypeofmonitoristypeendl;}private:chartype;};classComputer{public:Computer(inti,charc):____________{id=i;}voidPrint()const{coutThecomputerisidendl;mon.Print();}private:intid;Monitormon;//注意这里};intmain(){constComputermyComputer(101,'B');myComputer.Print();return0;}请将程序补充完整,使程序在运行时输出:Thecomputeris101'ThetypeofmonitorisB本题答案:【mon(c)##%_YZPRLFH_%##mon(c)##%_YZPRLFH_%##mon(c)##%_YZPRLFH_%##mon(c)】7、【填空题】“图形”类Shape中定义了纯虚函数CalArea(),“三角形”类Triangle继承了类Shape,请将Triangle类中的CalArea函数补充完整。#includeiostreamusingnamespacestd;classShape{public:virtualdoubleCalArea()=0;//求面积};classTriangle:publicShape{public:Triangle(doubles,doubleh):side(s),height(h){}________________{returnside*height/2;}//求三角形面积private:doubleside;//底边长doubleheight;//底边上的高};intmain(){Triangletri(3,5);coutTrianglearea=tri.CalArea()endl;return0;}本题答案:【virtualdoubleCalArea()##%_YZPRLFH_%##doubleCalArea()##%_YZPRLFH_%##virtualdoubleCalArea()##%_YZPRLFH_%##doubleCalArea()】继承小作业小测验1、【单选题】下列有关继承和派生的叙述中,正确的是______。本题答案:【抽象类不能被实例化】2、【单选题】下列有关抽象类和纯虚函数的叙述中,错误的是______。本题答案:【纯虚函数都不能有函数体】3、【单选题】有如下程序:#includeiostreamusingnamespacestd;classBase{public:voidfun(){coutBase::funend1endl;}};classDerived:publicBase{public:voidfun(){______coutDerived::funend1endl;}};intmain(){Derivedd;d.fun();return0;}已知其执行后的输出结果为:Base::funDerived::fun则程序中下划线处应填入的语句是______。本题答案:【Base::fun();】4、【单选题】有如下程序:#includeiostreamusingnamespacestd;classGA{public:virtualintf(){return1;}};classGB:publicGA{public:virtualintf(){return2;}};voidshow(GAg){coutg.f();}voiddisplay(GAg){coutg.f();}intmain(){GAa;show(a);display(a);GBb;show(b);display(b);return0;}运行时的输出结果是______。本题答案:【1112】运算符重载作业(1)运算符重载测试(1)1、【单选题】通过运算符重载,可以改变运算符原有的______。本题答案:【操作数类型】2、【单选题】下列关于运算符函数的描述中,错误的是()。本题答案:【运算符函数只能定义为类的成员函数】3、【单选题】在下面的运算符重载函数的原型中,错误的是______。本题答案:【Volumeoperator-(double,double);】4、【单选题】有以下程序#includeiostreamusingnamespacestd;classComplex//复数类{public:Complex(doubler=0,doublei=0):re(r),im(i){}doublereal()const{returnre;}doubleimag()const{returnim;}Complexoperator+(Complexc)const{returnComplex(re+c.re,im+c.im);}private:doublere,im;//实部,虚部};intmain(){Complexa=Complex(1,1)+Complex(5);couta.real()'+'a.imag()'i'endl;return0;}程序执行后的输出结果是______。本题答案:【6+1i】5、【单选题】下面程序中对一维坐标点类Point进行运算符重载#includeiostreamusingnamespacestd;classPoint{public:Point(intval){x=val;}Pointoperator++(){x++;return*this;}Pointoperator++(int){Pointold=*this;++(*this);returnold;}intGetX()const{returnx;}private:intx;};intmain(){Pointa(10);cout(++a).GetX();couta++.GetX();return0;}编译和运行情况是______。本题答案:【运行时输出1111】6、【填空题】若将一个二元运算符重载为类的成员函数,其形参个数应该是______个。本题答案:【1##%_YZPRLFH_%##一##%_YZPRLFH_%##壹##%_YZPRLFH_%##one】7、【填空题】在下面程序的横线处填上适当的内容,使程序执行后的输出结果为1/2005。#includeiostream.hclassDate{public:Date(intm=1,inty=0):month(m),year(y){}voidPrint(){coutmonth/yearendl;}__________operator+(constDated1,constDated2);private:intmonth,year;};Dateoperator+(constDated1,constDated2){intyear,month;year=d1.year+d2.year;month=d1.month+d2.month;year+=(month-1)/12;month=(month-1)%12+1;returnDate(month,year);}intmain(){Dated1(3,2004),d2,d3(10);d2=d3+d1;d2.Print();return0;}本题答案:【friendDate##%_YZPRLFH_%##friendDate】8、【填空题】Staff类含有int型数据成员ID,两个Staff对象相等是指它们的ID相同。下面的函数重载了运算符==,它用来判断两个Staff对象是否相等,相等时返回true,否则返回false。请将横线处缺失部分补充完整。boolStaff::Staff==(constStaffs){return();}本题答案:【ID==s.ID##%_YZPRLFH_%##s.ID==ID##%_YZPRLFH_%##s.ID==this->ID##%_YZPRLFH_%##this->ID==s.ID##%_YZPRLFH_%##(*this).ID==s.ID##%_YZPRLFH_%##s.ID==(*this).ID】运算符重载作业(2)运算符重载测验(2)1、【单选题】1.在表达式x+y*z中,+是作为成员函数重载的运算符,*是作为非成员函数重载的运算符。下列叙述中正确的是______。本题答案:【operator+有一个参数,operator*有两个参数】2、【单选题】有如下程序:#includeiostreamusingnamespacestd;classAmount{intamount;public:Amount(intn=0):amount(n){}intgetAmount()const{returnamount;}Amountoperator+=(Amounta){amount+=a.amount;return______;}};intmain(){Amountx(3),y(7);x+=y;coutx.getAmount()endl;return0;}已知程序的运行结果是10,则下划线处缺失的表达式是______。本题答案:【*this】3、【填空题】多数运算符既能作为类的成员函数重载,也能作为类的非成员函数重载,但[]运算符只能作为类的______函数重载。本题答案:【成员】4、【填空题】补充完整下面的类定义:classMyString{char*a;public:MyString(char*as){//构造函数a=newchar[strlen(aa)+1];strcpy(a,aa);}MyStringoperator=(constMyStringx){//重载赋值运算符Delele[]a;a=newchar[strlen(x.a)+l];strcpy(a,x.a)return________;}~MyString(){delete[]a;}};本题答案:【*this】函数模板作业函数模板测验1、【单选题】有如下函数模板:templateclassTTsquare(Tx){returnx*x;}其中T是______。本题答案:【模板形参】2、【单选题】下列函数模板的定义中,合法的是______。本题答案:【templatetypenameTTabs(Tx){returnx0?-x:x;}】3、【单选题】C++中的模板包括______。本题答案:【函数模板和类模板】4、【单选题】下列是模板声明的开始部分,其中正确的是______。本题答案:【templateclassT1,classT2】5、【单选题】执行下列程序后,输出的结果是______。#includeiostreamusingnamespacestd;templatetypenameTTtotal(T*data){Ts=0;while(*data)s+=*data++;returns;}intmain(){intx[]={2,4,6,8,0,12,14,16,18};couttotal(x);return0;}本题答案:【20】6、【填空题】1、已知intDBL(intn){returnn+n;}和longDBL(Longn){returnn+n;}是一个函数模板的两个实例,请补充完整该函数模板的定义:_____________TDBL(Tn){returnn+n;}本题答案:【template##%_YZPRLFH_%##template##%_YZPRLFH_%##template##%_YZPRLFH_%##template】类模板作业类模板测验1、【单选题】以下关于类模板的模板参数的叙述中,错误的是______。本题答案:【模板参数不能作为成员函数的局部变量的类型】2、【单选题】关于关键字class和typename,下列表述中正确的是______。本题答案:【程序中所有的typename都可以替换为class】3、【单选题】关于类模板下列说法不正确的是______。本题答案:【类模板只是虚拟类型的参数】4、【填空题】补充完整下面的模板定义:templateclassType//Type为类型参数classXtwo{//由两个Type类型的数据成员构成的模板类Typea;Typeb;public:Xtwo(Typeaa=0,Typebb=0):a(aa),b(bb){}intCcmpare(){//比较a和b的大小if(ab)returm1;elseif(a==b)return0;elsereturn-1;}TypeSnm(){returna+b;}//返回a和b之和TypeMult();//函数声明,返回a和b之乘积};templateclassType____________::Mult()//Mult函数的类外定义{returna*b;}本题答案:【Xtwo##%_YZPRLFH_%##Xtwo##%_YZPRLFH_%##Xtwo##%_YZPRLFH_%##Xtwo】C++标准库作业2020-2021-2<>(下)期末试卷1、【单选题】有如下类定义和变量定义:classA{public:A(){data=0;}~A(){}intGetData()const{returndata;}voidSetData(intn){data=n;}private:intdata;};constAa;Ab;下列函数调用中错误的是__________。本题答案:【a.SetData(10);】2、【单选题】在公有派生的情况下,派生类中定义的成员函数只能访问原基类的______。本题答案:【公有成员和保护成员】3、【单选题】关于友元说法错误的是______。本题答案:【友元函数必须被声明在public区】4、【单选题】关于虚函数的描述中,正确的是______。本题答案:【基类中声明了虚函数后,派生类中将其对应的函数可不必声明为虚函数】5、【单选题】下列关于派生类的描述中错误的是______。本题答案:【派生类只继承了基类的公有成员和保护成员】6、【单选题】关于纯虚函数,下列表述正确的是______。本题答案:【纯虚函数的声明总是以=0;结束】7、【单选题】有如下程序:#includeiostreamusingnamespacestd;classBase{public:voidoutput(){cout1;}virtualvoidPrint(){cout'B';}};classDerived:publicBase{public:voidoutput(){cout2;}voidPrint(){cout'D';}};intmain(){Base*ptr=newDerived;//合法ptr-output();ptr-Print();deleteptr;return0;}程序的输出结果是______。本题答案:【1D】8、【单选题】通过运算符重载,可以改变运算符原有的______。本题答案:【操作数类型】9、【单选题】有如下函数模板:templateclassTTsquare(Tx){returnx*x;}其中T是______。本题答案:【模板形参】10、【单选题】C++中的模板包括______。本题答案:【函数模板和类模板】11、【单选题】若磁盘上己存在某个文本文件,其全路径文件名为d:\myfile\test.txt,下列语句中不能打开该文件的是______。本题答案:【ifstreamfile(d:\myfile\test.txt);】12、【单选题】关于面向对象的程序设计方法,下列说法正确的是______。本题答案:【在面向对象的程序设计中,结构化程序设计方法仍有着重要作用】13、【单选题】在C++中,实现封装性需借助______。本题答案:【类】14、【单选题】下列关于类和对象的叙述中,错误的是______。本题答案:【一个类只能有一个对象】15、【单选题】有如下类声明:classFoo{intbar;};则Foo类的成员bar是______。本题答案:【私有数据成员】16、【单选题】有以下类定义classMyClass{public:MyClass(){cout1;}};则执行语句MyClassa,b[2],*p[2];后,程序的输出结果是______。本题答案:【11】17、【单选题】有如下两个类的定义classAA{};classBB{AAv1,*v2;BBv3;int*v4;};其中有一个成员变量的定义是错误的,这个变量是_____________。本题答案:【V3】18、【单选题】Sample是一个类,定义如下classSample{intval;public:Sample(intv):val(v){}};执行下面语句后,调用Sample类的构造函数的次数是_______。本题答案:【4】19、【单选题】有如下类的定义:classTeacher{public:inta;protected:intb;private:intc;};classStudent:protectedTeacher{public:intm;protected:intn;};则派生类Student中保护数据成员的个数是___个。本题答案:【3】20、【单选题】下列哪个不属于C++的预定义的流对象______。本题答案:【iostream】21、【填空题】在C++面向对象程序设计框架中,______是程序的基本组成单元。本题答案:【类##%_YZPRLFH_%##class##%_YZPRLFH_%##Class##%_YZPRLFH_%##CLASS】22、【填空题】在面向对象的程序设计中,将数据和处理数据的操作封装成一个整体就定义了一种事物的类型,称作类。类是一种抽象的概念,属于该类的一个实例叫做______。本题答案:【对象】23、【填空题】与指针成员访问表达式p-name等价的表达式是______。本题答案:【(*p).name】24、【填空题】有如下类声明:classMyClass{inti;private:intj;protected:intk;public:intm,n;};其中,私有成员的数量为______。本题答案:【2##%_YZPRLFH_%##2个##%_YZPRLFH_%##两个】25、【填空题】如果一个类中至少有一个纯虚函数,则该类称为_____________。本题答案:【抽象类】26、【填空题】在C++类中可以包含______、_______和___三种具有不同访问控制权的成员。(填写中文)本题答案:【私有##%_YZPRLFH_%##公有##%_YZPRLFH_%##保护】27、【填空题】友员函数是用关键字__________修饰的非成员函数。本题答案:【friend】28、【填空题】有如下类定义,请将Sample类的拷贝构造函数补充完整。classSample{public:Sample(){}~Sample(){if(p)deletep;}Sample(constSamples){p=newint;*p=___________;}voidSetData(intdata){p=newint(data);}voidprint(){cout*pendl;}private:int*p;};本题答案:【*(s.p)##%_YZPRLFH_%##*(s.p)】29、【填空题】若需要把一个函数voidF();定义为一个类AB的友元函数,则应在类AB的定义中加入一条声明语句:______。本题答案:【friendvoidF();】30、【填空题】“图形”类Shape中定义了纯虚函数CalArea(),“三角形”类Triangle继承了类Shape,请将Triangle类中的CalArea函数补充完整。#includeiostreamusingnamespacestd;classShap

温馨提示

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

评论

0/150

提交评论