您好,欢迎访问三七文档
当前位置:首页 > 高等教育 > 习题/试题 > 厦门大学软件学院C++期末考试热身卷
1软件学院《C++程序设计》考试热身卷(1)备注:试卷需要收回!学号:24320142202492姓名:王崇菲一、选择题1、有函数原型voidtest(inta,intb=7,char*c=*),下面函数调用中,不合法的调用()B)test(5,8);C)test(6,#)D)test(0,0,*);2、下面有关重载函数的说法中正确的是()重载函数必须具有不同的返回值类型;B)重载函数形参个数必须不同;C)重载函数必须有不同的形参列表D)重载函数名可以不同;3、下列关于构造函数的描述中,错误的是()构造函数可以设置默认参数;B)构造函数在定义类对象时自动执行构造函数可以是内联函数;D)构造函数不可以重载4、下列关于类和对象的叙述中,错误的是A)类是对某一类对象的抽象B)对象是类的具体实例C)一个类只能有一个对象D)类和对象的关系是一种数据类型与变量的关系5、下列关于运算符重载的叙述中,正确的是A)通过运算符重载,可以定义新的运算符B)有的运算符只能作为成员函数重载C)若重载运算符+,则相应的运算符函数名是+D)重载一个二元运算符时,必须声明两个形参6、已知在一个类体中包含如下函数原型:VOLUMEoperator-(VOLUME)const;,下列关于这个函数的叙述中,错误的是A)这是运算符-的重载运算符函数B)这个函数所重载的运算符是一个一元运算符C)这是一个成员函数D)这个函数不改变类的任何数据成员的值7、有如下类声明:classFoo{intbar;};则Foo类的成员bar是A)公有数据成员B)公有成员函数C)私有数据成员D)私有成员函数8、在下列函数原型中,可以作为类AA构造函数的是A)voidAA(int);B)intAA();C)AA(int)const;D)AA(int);9、下列关于this指针的叙述中,正确的是A)任何与类相关的函数都有this指针B)类的成员函数都有this指针C)类的友元函数都有this指针D)类的非静态成员函数才有this指针10、设有如下说明typedefstructST{longa;intb;charc[2];}NEW;则下面叙述中正确的是()A)以上的说明形式非法B)ST是一个结构体类型C)NEW是一个结构体类型D)NEW是一个结构体变量11、下列关于对象初始化的叙述中,正确的是A)定义对象的时候不能对对象进行初始化B)定义对象之后可以显式地调用构造函数进行初始化C)定义对象时将自动调用构造函数进行初始化D)在一个类中必须显式地定义构造函数实现初始化212、若在表达式y/x中,“/”是作为成员函数重载的运算符,则该表达式还可以表示为A)x.Operator/(Y)B)operator/(x,Y)C)Y.operator/(x)D)operator/(y,x)13、某类中有一个无参且无返回值的常成员函数Show,则正确的Show函数原型是A)constvoidShow();B)voidconstShow();C)voidShow()const;D)voidShow(const);14、下列叙述中正确的是A)线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的B)线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构C)线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构D)上述三种说法都不对15、为了提高函数调用的实际运行速度,可以将较简单的函数定义为A)内联函数B)重载函数C)递归函数D)函数模板16、下列关于析构函数的描述中,错误的是A)析构函数可以重载B)析构函数由系统自动调用C)每个对象的析构函数只被调用一次D)每个类都有析构函数17、已知:inta,&ra=a;关于ra的描述中正确的是()A.ra是int型变量a的地址值B.a是int型变量ra的地址值C.ra是int型变量a的引用D.ra是int型变量a的指针18、重载函数在调用时选择的依据中,错误的是()A.参数个数B.参数类型C.函数名字D.函数类型19、要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用().A.内联函数B.重载函数C.递归调用D.嵌套调用20、下述静态数据成员的特性中,错误的是()A.说明静态数据成员时前边要加修饰符staticB.静态数据成员要在类体外进行初始化C.引用静态数据成员时,要在静态数据成员前加〈类名〉和作用域运算符D.静态数据成员不是所有对象所共有的21、在C++中,关于下列设置参数默认值的描述中,正确的是()A.不允许设置参数的默认值B.设置参数默认值只能在定义函数时设置C.设置参数默认值时,应该是先设置右边的再设置左边的D.设置参数默认值时,应该全部参数都设置22、在C++中,cin是个A.类B.对象C.模板D.函数23、下列程序段中包含4个函数,其中具有隐含this指针的是intfun();classTest{public:intfun2();friendintfun3();staticintfun4();};A.fun1B.fun2C.fun3D.fun43二、填空题1、C++语言中使用const定义常量时需要指出常量类型_、_常量名_和常量值_。2、函数调用excc((v1,v2),(v3,v4,v5),v6);语句中实参的个数是_____3_.3、在用class定义一个类时,数据成员和成员函数的默认访问权限是(private)。4、在下面程序的横线处填上适当的语句,使该程序执行结果为10.iostreamusingnamespacestd;classMyClasspublic:MyClass(inta){x=a;}(intgetnum(){returnx;})//取x值privateintx;main()MyClassmy(10);coutMY.GETNUM()endl;return0;5、非成员函数应声明为类的(友元)函数才能访问这个类的private成员。6、判断题:静态数据成员是属于某个对象的。F7、判断题:没有参数的两个函数也可以重载。F三、简答题1、请描述静态数据成员的特性和静态成员函数在访问数据成员(包括静态数据成员和非静态数据成员)时的要求;静态数据成员为类的所有对象所共有,一旦数据值发生变化,则在所有类对象中该值均发生变化。静态成员函数可以直接访问该类的静态数据成员和成员函数,单数需要通过对象名来访问非静态数据成员2、使用const修饰类的成员函数有什么优点?不会改变对象数据成员的值,更有安全性3、C++异常处理机制有何优点?避免局部错误造成程序的全盘崩溃,提高程序的安全性和稳固性4、定义了用于表示日期的类Date,请按要求完成下列操作,将类Date的定义补充完整:(1)定义私有数据成员year,month和day分别用于表示年,月,日,它们都是int型的数据.(2)完成默认构造函数Date的定义,使Date对象的默认值为:year=1,month=1,day=1,(3)完成重载构造函数Date(inty,intm,intd)的定义,把数据成员year,month和day分别初始化为参数y,m,d的值(4)完成成员函数print的类外内联定义,使其以"年-月-日"的格式将Date对象的值输出到屏幕上.classDate{intyear;4intmonth;intday;public:Date():year(1),month(1),day(1){}Date(inty,intm,intd):year(y),month(m),day(d){}voidprint();};voidDate::print(){coutyear-month-dayendl;}四、程序结果运行题#includeiostreamvoidfun(int&x,inty){intt=x;x=y;y=t;}intmain(){inta[2]={23,42};fun(a[1],a[0]);std::couta[0],a[1]std::endl;return0;}程序结果:42,23#includeiostreamusingnamespacestd;classTest{pulbic:Test(){cout2;}Test(constTest&t){cout1;}};Testfun(Test&u){Testt=u;returnt;}intmain(){Testx,y;x=fun(y);return0;}程序结果:22115#includeiostreamusingnamespacestd;classAA{intn;public:AA(intk):n(k){}intget(){returnn;}intget()const{returnn+1;}};intmain(){AAa(5);constAAb(6);couta.get()b.get();return0;}程序结果:57#includeiostreamusingnamespacestd;classTest{public:Test(){n+=2;}~Test(){n-=3;}staticintgetNum(){returnn;}private:staticintn;};intTest::n=1;intmain(){Test*p=newTest;deletep;coutn=Test::getNum()endl;return0;}程序结果:n=0#includeiostream.h#includestring.hclassGirl{char*name,*dial;public:Girl(char*n,char*d){name=newchar[strlen(n)+1];strcpy(name,n);dial=newchar[strlen(d)+1];strcpy(dial,d);}friendvoiddisp(Girl&);~Girl(){deletename;deletedial;}};voiddisp(Girl&x){cout”Girl\’snameis:”x.name”,tel:”x.dialendl;}voidmain(){Girle(“Liping”,”0379-5515179”);disp(e);}程序结果:Girl’snameisLiping,tel:0379-5515179#includeiostreamusingnamespacestd;classPoint{intx,y;public:Point(intx1=0,inty1=0):x(x1),y(y1){}intget(){returnx+y;}};classCircle{Pointcenter;intradius;public:Circle(intcx,intcy,intr):center(cx,cy),raaius(r){}intget(){returncenter.get()+radius;}};intmain(){Circlec(3,4,5);coutc.get()endl;return0;}程序结果:12五、代码题1、声明一个dog类,包含体重、年龄、出生日期等三个数据成员及相应的成员函数。定义6一个对象dog1,体重为5,年龄为10;再定义另一个对象dog2,使用dog1的状态来初始化。要求:1采用多文件编程;2成员函数可实现对信息的录入和显示,至少要求要有一个const类型的成员函数3构造函数应包含参数默认值;4“出生日期”为类成员(定义为“日期”类)//file:Date.h#includeiostreamusingnamespacestd;classDate{intyear;intmonth;intday;public:Date():year(1),month(1),day(1){}Date(inty,intm,intd):year(y),month(m),day(d){}Date(Date
本文标题:厦门大学软件学院C++期末考试热身卷
链接地址:https://www.777doc.com/doc-2563125 .html