程序设计基础(二)试卷A(2010_第1页
程序设计基础(二)试卷A(2010_第2页
程序设计基础(二)试卷A(2010_第3页
程序设计基础(二)试卷A(2010_第4页
程序设计基础(二)试卷A(2010_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

1、 试题纸(A卷) 课程名称: 程序设计基础(二) 适用专业年级: 2009级计算机、软件、网络、电本 考生学号: 考 生 姓 名: 一、 单项选择题(每题1分,共15分)1、 C+语言对C语言做了很多改进,C+语言相对于C语言的最根本的变化是( )。A)增加了一些新的运算符 B)允许函数重载,并允许设置缺省参数C)规定函数说明符必须用原型 D)引进了类和对象的概念2、 下列哪个是C+语言的有效标识符? ( )。A)_No1 B)No.1 C)12345 D)int3、 对类成员访问权限的控制,是通过设置成员的访问控制属性实现的,下列不是访问控制属性的是( )。A)公有类型 B)私有类型 C)保

2、护类型 D)友元类型4、 在类的定义中,用于为对象分配内存空间,对数据成员进行初始化等操作的函数是( )。A)友元函数 B)虚函数 C)构造函数 D)析构函数5、 类的析构函数的作用是( )。A)一般成员函数的初始化 B)类的初始化 C)对象的初始化 D)删除类创建的对象6、 下列运算符中,在C+语言中不能重载的是( )。A)* B)= C): D)/7、 若mytemp是一个只有一个虚拟类型参数的类模板,且有如下语句序列 Mytemp p2; mytemp p32;编译系统在处理上面的语句序列时,所生成的模板mytemp的实例的个数是( )。A)1 B)2 C)3 D)08、 在c+中,ci

3、n是个( )。A)类 B)对象 C)模板 D)函数9、 要定义一个引用变量p,使之引用类myclass的一个对象,正确的定义语句是( )。A)myclass p=myclass; B)myclass p=new myclass;C)myclass &p=new myclass; D)myclass a,&p=a;10、 有如下两个类定义class xx class yy : protected xxprivate: double x1; private: double y1; protected: double x2; protected: double y2; public: double

4、x3; ; public: double y3; ;在类yy中保护成员变量的个数是( )。A)1 B)2 C)3 D)411、 下列关于运算符重载的描述中,错误的是( )。A)可以通过运算符重载在c+中创建新的运算符B)赋值运算符只能重载为成员函数C)运算符函数重载为类的成员函数时,第一操作数是该类对象D)重载类型转换运算符时不需要声明返回类型12、 下列关于类模板的描述中,错误的是( )。A)类模板的成员函数都是模板函数 B)可以为类模板参数设置默认值C)类模板描述了一组类 D)类模板中只允许有一个类型参数13、 下列说法正确的是( )。A)内联函数在运行时是将该函数的目标代码插入每个调用该

5、函数的地方B)内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方C)类的内联函数必须在类体内定义D)类的内联函数必须在类体外通过加关键字inline定义14、 下面对静态数据成员的描述中,正确的是( )。A)静态数据成员可以在类体内进行初始化 B)静态数据成员不可以被类的对象调用C)静态数据成员不能受private控制符的作用 D)静态数据成员可以直接用类名调用15、 下面对于友元函数描述正确的是( )。A)友元函数的实现必须在类的内部定义 B)友元函数是类的成员函数C)友元函数破坏了类的封装性和隐藏性 D)友元函数不能访问类的私有成员二、 填空题(每空2分,共20分)1. 程序设计

6、方法大致可以分为两类:( )和( ),其中前一种将复杂的问题分解成许多小的、简单的问题来求解,而后一种则将已经求解的小问题组合起来以得到复杂问题的解,然而许多程序设计方法是这两者的结合。2. 假定xcs是一个类,该类中一个成员函数的原型为“xcs *abc();”,则在类外定义时对应的函数头为( )。3. 下面的函数定义是某函数模板能够生成的函数实例:int square( int n ) return n*n; double square( double n ) return n*n; 由此可知,该函数模板的定义是( )。4. 非成员函数应该声明为类的( )函数才能访问该类的私有成员。5.

7、进行函数重载时,被重载的同名函数如果都没有用const修饰,则它们形参的( )必须不同。6. 在一个C+语言程序中有且仅有一个函数名为( )的函数。7. 对于不提供类外的任何函数直接访问类成员,应将其访问属性定义为( )。8. 设px是指向一个类动态对象的指针变量,则执行”delete px;”语句时,将自动调用该类的( )。 9. 若要在程序文件中进行标准输入输出操作,则必须在开始的# include命令中使用( )头文件。 三、 阅读程序,将程序运行结果填写答题册上。(每小题5分,共25分)1、 #includeusing namespace std;class b public: b(i

8、nt xx): x(xx) +count; x+=10; virtual void show( ) const coutcount - x endl; protected: static int count; private: int x;class d:public b public: d(int xx,int yy):b(xx),y(yy) +count; y+=100; virtual void show() const coutcount - y show(); delete ptr; 2、 #includeusing namespace std;class base public:b

9、ase(int x=0):valb(x) coutvalb; base() coutvalb; private: int valb;class derived:public base public: derived( int x=0, int y=0 ): base(x),vald(y) coutvald; derived() coutvald; private: int vald;int main() derived obj12(2,3); return 0; 3、 #includeusing namespace std;class apublic: a(int i=0) : r1(i) v

10、oid print() couter1 -; void print() const coutc r1*r1 -; void print(int x) coutp r1*r1*r1 -; private: int r1;void main() a a1; const a a2(4); a1.print(2); a2.print(); 4、#includeusing namespace std;class A public: A() cout1; A() cout2; ;class B:public A public: B() cout3; B() cout4; ;void main() B b;

11、 5、#includevoid main( ) try int a=8; double b=8.8; throw ab?a:b; catch( int x ) cout”the int value “x”was thrown”endl; catch( double y ) cout”the double value “y”was thrown”endl; 四、 程序填空题(根据题意要求,将程序补充完整,每空2分,共20分)1、请将下面的类date的定义补充完整,使得由语句date firstday; 定义的对象firstday的值为2010年1月1日。class datepublic: dat

12、e(_(1)_): year(y), month(m), day(d) private: int year, month, day; /依次表示年、月、日 ;2、请将下面的程序补充完整,使得程序输出“飘是张娜的书”。#includeusing namespace std;class bookpublic:book( _(2)_ ) strcpy(title,str); _(3)_ void printinfo( ) couttitleendl; protected: char title50;class mybook : public bookpublic:mybook(char *s1,_(

13、4)_):_(5)_ strcpy (owner,s2); virtual void printinfo() couttitle”是”owner”的书”printinfo();3、在有理数类rational中重载插入运算符,以便按a/q形式输出。请将运算符函数的定义补充完整。class rationalpublic:rational(int aa, int qq):a(aa),q(qq) friend _(6)_ operator(ostream &out, rational &x) return (outx.a/x.q); private: _(7)_;4、补充完整下面的类定义:const

14、double PI=3.14;class Circle protected: double r; /半径public: Circle(double radius=0 ): _(8)_ _(9)_; /计算圆形物体表面积的纯虚函数声明;class Cylinder : public Circle /圆柱体类 double h; /高度public: Cylinder( double radius, double height=0):Circle(radius),h(height) virtual double Area( ) return _(10)_; /计算圆柱体的表面积五、 编程题(每题1

15、0分,共20分)1、先定义一个point点类,包含两个int型数据成员x和y,构造函数,Getx(),Gety()以及点的移动Move()等成员函数,然后分别按照类的组合方式和继承方式定义一个矩形类,该类具有输出矩形面积、周长以及矩形移动等成员函数。2、定义一个日期类,含年、月、日3个int型成员变量,实现运算符 +,- 的重载。其中,运算符 + 实现日期加上一个天数,得到新日期;运算符 - 实现日期减去一个天数,得到新日期。参考答案一、 单项选择题(每题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(

16、15)C二、 填空题(每空2分,共20分)(1)结构化程序设计 面向对象程序设计(2)xcs * xcs:abc( )(3)template (4)友元(friend)T square(T n) return n*n; (5)类型或个数(6)main(7)private(8)析构函数(9)iostream三、 阅读程序,将程序运行结果填写答题册上。(每小题5分,共25分)1、 2-120 2、 2332 3、 p0-c16- 4、 1342 5、the double value 8 was thrown四、 程序填空题(每空2分,共20分)(1)int y=2010,int m=1,int d

17、=1(2)char *str(3)virtual(4)char *s2(5)book(s1)(6)ostream(7)int a,q;(8)r(radius)(9)virtual double Area()=0;(10)2*PI*r*(r+h)五、 编程题(每小题10分,共20分)1、 class Point5分 private: int x,y; public: Point(int xx=0,int yy=0) x=xx; y=yy; int Getx() return x; int Gety() return y; int Move(int dx,int dy) x+=dx; y+=dy;

18、 ;(1)class Rectangle : public Point5分 private: double w,h; public: Rectangle(int xx,int yy,int ww,int hh):Point(xx,yy),w(ww),h(hh) double Area() return w*h; double length() return 2*w+2*h; void MoveR(int dx,int dy) Move(dx,dy); ;(2) class Rectangle5分 private: Point lt,rb; public: Rectangle(int xx,in

19、t yy,int ww,int hh):lt(xx,yy),rb(ww,hh) double Area() return (rb.Getx()lt.Getx())*(lt.Getx()rb.Getx()); double length() return 2*(rb.Getx()lt.Getx())+(lt.Getx()rb.Getx()); void MoveR(int dx,int dy) lt.Move(dx,dy); rb.Move(dx,dy); ;2、 class Date3分 private: int y,m,d; public: Date(int yy=2010,int mm=5,int

温馨提示

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

评论

0/150

提交评论