您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 人事档案/员工关系 > 程序设计基础(二)试卷A(2010)
(首页)注:1、教师命题时题目之间不留空白;2、考生不得在试题纸上答题,教师只批阅答题册正面部分。试题纸(A卷)课程名称:程序设计基础(二)适用专业年级:2009级计算机、软件、网络、电本考生学号:考生姓名:………………………………………………………………………………………………………………………一、单项选择题(每题1分,共15分)1、C++语言对C语言做了很多改进,C++语言相对于C语言的最根本的变化是()。A)增加了一些新的运算符B)允许函数重载,并允许设置缺省参数C)规定函数说明符必须用原型D)引进了类和对象的概念2、下列哪个是C++语言的有效标识符?()。A)_No1B)No.1C)12345D)int3、对类成员访问权限的控制,是通过设置成员的访问控制属性实现的,下列不是访问控制属性的是()。A)公有类型B)私有类型C)保护类型D)友元类型4、在类的定义中,用于为对象分配内存空间,对数据成员进行初始化等操作的函数是()。A)友元函数B)虚函数C)构造函数D)析构函数5、类的析构函数的作用是()。A)一般成员函数的初始化B)类的初始化C)对象的初始化D)删除类创建的对象6、下列运算符中,在C++语言中不能重载的是()。A)*B)=C)::D)/7、若mytemp是一个只有一个虚拟类型参数的类模板,且有如下语句序列Mytempintp2;mytempintp3[2];编译系统在处理上面的语句序列时,所生成的模板mytemp的实例的个数是()。A)1B)2C)3D)08、在c++中,cin是个()。A)类B)对象C)模板D)函数9、要定义一个引用变量p,使之引用类myclass的一个对象,正确的定义语句是()。A)myclassp=myclass;B)myclassp=newmyclass;C)myclass&p=newmyclass;D)myclassa,&p=a;10、有如下两个类定义classxxclassyy:protectedxx{private:doublex1;{private:doubley1;protected:doublex2;protected:doubley2;public:doublex3;};public:doubley3;};在类yy中保护成员变量的个数是()。A)1B)2C)3D)411、下列关于运算符重载的描述中,错误的是()。A)可以通过运算符重载在c++中创建新的运算符B)赋值运算符只能重载为成员函数C)运算符函数重载为类的成员函数时,第一操作数是该类对象D)重载类型转换运算符时不需要声明返回类型12、下列关于类模板的描述中,错误的是()。A)类模板的成员函数都是模板函数B)可以为类模板参数设置默认值C)类模板描述了一组类D)类模板中只允许有一个类型参数13、下列说法正确的是()。(附1页)注:1、教师命题时题目之间不留空白;2、考生不得在试题纸上答题,教师只批阅答题册正面部分。A)内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方B)内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方C)类的内联函数必须在类体内定义D)类的内联函数必须在类体外通过加关键字inline定义14、下面对静态数据成员的描述中,正确的是()。A)静态数据成员可以在类体内进行初始化B)静态数据成员不可以被类的对象调用C)静态数据成员不能受private控制符的作用D)静态数据成员可以直接用类名调用15、下面对于友元函数描述正确的是()。A)友元函数的实现必须在类的内部定义B)友元函数是类的成员函数C)友元函数破坏了类的封装性和隐藏性D)友元函数不能访问类的私有成员二、填空题(每空2分,共20分)1.程序设计方法大致可以分为两类:()和(),其中前一种将复杂的问题分解成许多小的、简单的问题来求解,而后一种则将已经求解的小问题组合起来以得到复杂问题的解,然而许多程序设计方法是这两者的结合。2.假定xcs是一个类,该类中一个成员函数的原型为“xcs*abc();”,则在类外定义时对应的函数头为()。3.下面的函数定义是某函数模板能够生成的函数实例:intsquare(intn){returnn*n;}doublesquare(doublen){returnn*n;}由此可知,该函数模板的定义是()。4.非成员函数应该声明为类的()函数才能访问该类的私有成员。5.进行函数重载时,被重载的同名函数如果都没有用const修饰,则它们形参的()必须不同。6.在一个C++语言程序中有且仅有一个函数名为()的函数。7.对于不提供类外的任何函数直接访问类成员,应将其访问属性定义为()。8.设px是指向一个类动态对象的指针变量,则执行”deletepx;”语句时,将自动调用该类的()。9.若要在程序文件中进行标准输入输出操作,则必须在开始的#include命令中使用()头文件。三、阅读程序,将程序运行结果填写答题册上。(每小题5分,共25分)1、#includeiostreamusingnamespacestd;classb{public:b(intxx):x(xx){++count;x+=10;}virtualvoidshow()const{coutcount'-'xendl;}protected:staticintcount;private:intx;};classd:publicb{public:d(intxx,intyy):b(xx),y(yy){++count;y+=100;}virtualvoidshow()const{coutcount'-'yendl;}private:inty;};intb::count=0;voidmain(){b*ptr=newd(10,20);ptr-show();deleteptr;}(附2页)注:1、教师命题时题目之间不留空白;2、考生不得在试题纸上答题,教师只批阅答题册正面部分。2、#includeiostreamusingnamespacestd;classbase{public:base(intx=0):valb(x){coutvalb;}~base(){coutvalb;}private:intvalb;};classderived:publicbase{public:derived(intx=0,inty=0):base(x),vald(y){coutvald;}~derived(){coutvald;}private:intvald;};intmain(){derivedobj12(2,3);return0;}3、#includeiostreamusingnamespacestd;classa{public:a(inti=0):r1(i){}voidprint(){cout'e’r1’-’;}voidprint()const{cout'c'r1*r1’-‘;}voidprint(intx){cout'p'r1*r1*r1’-‘;}private:intr1;};voidmain(){aa1;constaa2(4);a1.print(2);a2.print();}4、#includeiostream.husingnamespacestd;classA{public:A(){cout1;}~A(){cout2;}};classB:publicA{public:B(){cout3;}~B(){cout4;}};voidmain(){Bb;}5、#includeiostream.hvoidmain(){try{inta=8;doubleb=8.8;throwab?a:b;}catch(intx){cout”theintvalue“x”wasthrown”endl;}catch(doubley){cout”thedoublevalue“y”wasthrown”endl;}}四、程序填空题(根据题意要求,将程序补充完整,每空2分,共20分)1、请将下面的类date的定义补充完整,使得由语句datefirstday;定义的对象firstday的值为2010年1月1日。classdate(附3页)注:1、教师命题时题目之间不留空白;2、考生不得在试题纸上答题,教师只批阅答题册正面部分。{public:date(_____(1)______):year(y),month(m),day(d){}private:intyear,month,day;//依次表示年、月、日};2、请将下面的程序补充完整,使得程序输出“飘是张娜的书”。#includeiostreamusingnamespacestd;classbook{public:book(______(2)______){strcpy(title,str);}____(3)______voidprintinfo(){couttitleendl;}protected:chartitle[50];};classmybook:publicbook{public:mybook(char*s1,_____(4)______):____(5)_____{strcpy(owner,s2);}virtualvoidprintinfo(){couttitle”是”owner”的书”endl;}private:charowner[10];};voidmain(){book*prt=newmybook(飘);prt-printinfo();}3、在有理数类rational中重载插入运算符,以便按a/q形式输出。请将运算符函数的定义补充完整。classrational{public:rational(intaa,intqq):a(aa),q(qq){}friend____(6)______operator(ostream&out,rational&x){return(outx.a’/’x.q);}private:______(7)_________};4、补充完整下面的类定义:constdoublePI=3.14;classCircle{protected:doubler;//半径public:Circle(doubleradius=0):_____(8)_________{}________(9)___________;//计算圆形物体表面积的纯虚函数声明};classCylinder:publicCircle//圆柱体类{doubleh;//高度public:Cylinder(doubleradius,doubleheight=0):Circle(radius),h(height){}virtualdoubleArea(){return_____(10)_________;}//计算圆柱体的表面积}五、编程题(每题10分,共20分)1、先定义一个point点类,包含两个int型数据成员x和y,构造函数,Getx(),Gety()以及点的移动Move()等成员函数,然后分别按照类的组合方式和继承方式定义一个矩形类,该类具有输出矩形面积、周长以及矩形移动等成员函数。2、定义一个日期类,含年、月、日3个int型成员变量,实现运算符+,-的重载。其中,运算符+实现日期加上一个天数,得到新日期;运算符-实现日期减去一个天数,得到新日期。(附4页)注:1、教师命题时题目之间不留空白;2、考生不得在试题纸上答题,教师只批阅答题册正面部分。参考答案一、单项选择题(每题1分,共15分)(1)D(2)A(3)D(4)C(5)D(6)C(7)C(8)B(9)D(10)C(11)A(12)D(13)B(14)D(15)C二、填空题(每空2分,共20分)(1)结构化程序设计面向对象程序设计(2)xcs*xcs::abc()(3)templ
本文标题:程序设计基础(二)试卷A(2010)
链接地址:https://www.777doc.com/doc-2238074 .html