您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 商业计划书 > 《面向对象技术与语言C++》期末考卷B
《面向对象技术与语言C++》期中/期末考试卷(A、B)使用专业、班级学号姓名l题数一二三四五六七总分得分一、选择题〖每题1分,共计20分〗1.在C++程序中使用的cout标识符是系统类库中定义的()类中的一个对象。A.istreamB.ostreamC.iostreamD.fstream………………………………………………………………………………………()2.在C++中有以下4条语句:staticinthot=200;int&rad=hot;hot=hot+100;coutradendl;执行这4条语句后输出为:________。A.0B.100C.300D.200………………………………………………………………………………………()3.派生类的对象对其基类中()可直接访问。A.公有继承的公有成员B.公有继承的私有成员C.公有继承的保护成员D.私有继承的公有成员………………………………………………………………………………………()4.当#include后面的文件名用双引号括起来时,寻找被包含文件的方式是()。A.直接按系统设定的标准方式搜索目录B.先在源程序所在目录搜索,再按系统设定的标准方式搜索目录江南大学考1考试形式开卷()、闭卷(),在选项上打(√)开课教研室命题教师命题时间使用学期sC.仅仅搜索源程序所在目录D.搜索当前逻辑盘上的所有目录………………………………………………………………………………………()5.关于void指针,下列说法正确的是()。A.void指针就是未指向任何数据的指针B.void指针就是已定义而未初始化的指针C.指向任何类型数据的指针可直接赋值给一个void指针D.void指针值可直接赋给一个非void指针………………………………………………………………………………………()6.构造函数不具备的特征的是________A.构造函数的函数名与类名相同B.构造函数可以重载C.构造函数可以设置默认参数D.构造函数必须指定类型说明………………………………………………………………………………………()7.假定有“structBOOK{chartitle[40];floatprice;};BOOK*book;”,则不正确的语句为()。A.BOOK*x=newbook;B.BOOKx={C++Programming,27.0};C.BOOK*x=newBOOK;D.BOOK*x=book;………………………………………………………………………………………()8.编写C++程序一般需经过的几个步骤依次是()。A.编译、编辑、连接、调试B.编辑、编译、连接、调试C.编译、调试、编辑、连接D.编辑、调试、编辑、连接………………………………………………………………………………………()9.关于运算符重载,下列说法正确的是()。A.所有的运算符都可以重载。B.通过重载,可以使运算符应用于自定义的数据类型。C.通过重载,可以创造原来没有的运算符。D.通过重载,可以改变运算符的优先级。………………………………………………………………………………………()10.假定变量b和pb定义为“intb[10],*pb=b;”,要将24赋值给b[1]元素中,不正试卷专用纸总张数教研室主任审核签字江南大学考试卷专用纸确的语句是()。A.*(pb+1)=24;B.*(b+1)=24;C.*++b=24;D.*++pb=24;………………………………………………………………………………………()11.假定AA为一个类,a()为该类公有的函数成员,x为该类的一个对象,则访问x对象中函数成员a()的格式为()。A.x.aB.x.a()C.x-aD.x-a()………………………………………………………………………………………()12.定义p并使p指向动态空间中的包含30个整数的数组所使用的定义语句为________。A.int*p=newint[30];B.int*p=newint(30);C.int*p=new[30];D.*p=newint[30];………………………………………………………………………………………()13.假定AA为一个类,inta()为该类的一个成员函数,若该成员函数在类定义体外定义,则函数头为________。A.AA::inta()B.intAA:a()C.AA::a()D.intAA::a()………………………………………………………………………………………()14.假定AB为一个类,则执行“ABx(a,5);”语句时将自动调用该类的()。A.带参构造函数B.无参构造函数C.拷贝构造函数D.赋值重载函数………………………………………………………………………………………()15.一个类的成员函数也可以成为另一个类的友元函数,这时的友元说明()。A.需加上类域的限定B.不需加上类域的限定C.类域的限定可加可不加D.不需要任何限定………………………………………………………………………………………()16.对于公有继承,基类中的私有成员在派生类中将()。A.能够直接使用成员名访问B.能够通过成员运算符访问C.仍然是基类的私有成员D.变为派生类的私有成员………………………………………………………………………………………()17.假定一个类的构造函数为“A(intaa=1,intbb=0){a=aa;b=bb;}”,则执行“Ax(4);”语句后,x.a和x.b的值分别为()。A.1和0B.1和4C.4和1D.4和0………………………………………………………………………………………()218.类的静态成员的访问控制()。A.只允许被定义为privateB.只允许被定义为private或protectedC.只允许被定义为publicD.可允许被定义为private、protected或public………………………………………………………………………………………()19.关于虚函数的描述中,()是正确的。A.虚函数是一个static类型的成员函数B.虚函数是一个非成员函数C.基类中说明了虚函数后,派生类中将其对应的函数不必说明为虚函数D.派生类的虚函数和基类的虚函数具有不同的参数个数和类型………………………………………………………………………………………()20.类B是通过public继承方式从类A派生而来的,且类A和类B都有完整的实现代码,那么下列说法正确的是():A.类B中具有pubic可访问性的成员函数个数一定不少于类A中public成员函数的个数。B.一个类B的实例对象占用的内存空间一定不少于一个类A的实例对象占用的内存空间。C.只要类B中的构造函数都是public的,在main函数中就可以创建类B的实例对象。D.类A和类B中的同名虚函数的返回值类型必须完全一致。………………………………………………………………………………………()二、填空题〖每空1分,共计10分〗21.在一个类中定义拷贝构造函数的目的,是为了当利用该类的一个对象初始化另一个对象时,能够避免这两个对象的同一指针同时指向同一块__________________。22.如果一个函数只允许同一程序中的函数调用,则应在该函数定义前加上__________C++保留字。23.已知有定义“intx,a[]={6,10,12},*pa=a;”,在执行“x=*++pa;”语句后,*pa的值是_______。24.若有定义“structAA{inta;charb;doublec;}x;”,则x占用空间大小为_______字节。江南大学考试卷专用纸25.若在类的定义体中只给出了一个成员函数的原型,而在类外给出完整定义时,则其函数名前必须加上________和两个冒号分隔符。26.为了在对象生存期结束时释放其指针成员所指向的动态存储空间,通常需要为该类定义______________。27.若只需要通过一个成员函数读取数据成员的值,而不需要修改它,则应在函数头的后面加上________关键字。28.假定p所指对象的值为25,p+1所指对象的值为42,则执行(*p)++运算后,p所指对象的值为________。29.对于类中定义的任何成员,其隐含访问权限为____________________。30.C++中语句constchar*constp=hello;所定义的指针p和它所指的内容都不能被_____________。三、程序填空题〖每空2分,共计24分〗31.在下面程序的底画线处填上适当的字句,使该程序执行显示的结果为60。#includeiostreamclassbase{intX;public∶voidinit(intX1){X=X1;}int?Getnum(){return?X+10;}};voidmain(){_________【1】____________________【2】__________coutTEST.Getnum();}32.根据运行结果,完成下面递归程序的填空。#includeiostream.hintf(int*x)3{if(!(*x==0)){cout*x,;_________【3】___________;∥递归调用;}main(){intA[]={3,2,1};int*y;y=A;_______【4】____________;∥调用f;}运行结果是:3,2,1,33.斐波那契数列的第1和第2个数分别为0和1,从第三个数开始,每个数等于其前两个数之和。求斐波那契数列中的前20个数,要求每行输出5个数。#includeiostream.hvoidmain(){intf,f1,f2,i;cout”斐波那契数列:\n”;f1=0;f2=1;coutsetw(6)f1setw(6)f2;for(i=3;i=20;i++){f=___【5】___;coutsetw(6)f;if(__【6】___)coutendl;f1=f2;f2=f;}coutendl;}34.已知一维数组类ARRAY的定义如下,ARRAY与普通一维数组区别是:其重载的运算符[]要对下标是否越界进行检查。classARRAY{int*v;//指向存放数组数据的空间ints;//数组大小public:ARRAY(inta[],intn);~ARRAY(){delete[]v;}intsize(){returns;}int&operator[](intn);};__【7】_operator[](intn)//[]的运算符成员函数定义{if(n0||__【8】_){cerr下标越界!;exit(1);}return__【9】_;}35.已知一个类的定义如下:#includeiostream.hclassAA{inta[10];intn;public:voidSetA(intaa[],intnn);//用数组aa初始化数据成员a,用nn初始化数据成员nintMaxA();//从数组a中前n个元素中查找最大值voidSortA();//采用选择排序的方法对数组a中前n个元素进行从小到大排序voidInsertA();//采用插入排序的方法对数组a中前n个元素进行从小到大排序voidPrintA();//依次输出数组a中的前n个元素};江南大学考4该类中MaxA()函数的实现如下,请在标号位置补充适当的内容。int______【1】________{intx=a[0];for(inti=1;in;i++)if(a[i]x)_____【2】______;_____【3】______;}四、程序功能题〖每小题8分,共计16分〗36.char*f8(char*str1,constchar*str2){inti=0,j=0;while(str1[i])i++;while(str2[j])str1[i++]=str2[j++];str1[i]='\0';returnstr1;}功能:__________
本文标题:《面向对象技术与语言C++》期末考卷B
链接地址:https://www.777doc.com/doc-2819616 .html