08-09面向对象程序设计(二)试卷B
《C++面向对象程序设计》试卷08-09-1(原A卷)
11.P是一个指向类Sample数据成员m的指针,s是类Sample的一具对象,如果要给m赋值为
5,则应写的命令为
12.如果要访问类中说明为private的成员变量,则必须通过________________函数
或____________________函数
13.C++语言中调用重载函数时,区分函数的依据是是和
三角形的面积。重载函数首部如下:5’
double area (double a ); a为正方形的边长
double area (double b, double h); b和h分别为三角形的底和高
C.成员函数可以是静态的D.成员函数可以设置参数的默认值
7.语句for ( int i=0,x=0;!x&&i<=3;i++)循环的次数为( )
A.5 B.4C. 6D.无限
8.表达式18/4*sqrt(4.0)/5值的数据类型是()
A. int B. float
C. doubleD.不确定
9.如果一个类至少有一个纯虚函数,则称该类为()
C.类模板实例化的结果是类D.类模板的基类可以是一个类
12.继承具有( ),即当基类本身也是某一个类的派生类时,底层的派生类也会自动继承
间接基类的成员
A.规律性B.传递性C.重复性D.多样性
13.下列表示引用的方法中,正确的是( )
已知:int m=10;
A.int &z;B.int &y=10;
C. int &x=m;D.float &t=&m;
st=;
int size=outstr.pcount();
软件设计师-面向对象技术(二)_真题-无答案
软件设计师-面向对象技术(二)(总分29,考试时间90分钟)1. 面向对象程序设计语言中提供的继承机制可将类组织成一个______结构,以支持可重用性和可扩充性。
A. 栈B. 星形C. 层次D. 总线2. 在C++语言中,若类C中定义了一个方法intf(int a,int b),那么方法不能与该方法同时存在于类C中。
A. int f(int x,int y)B. int f(float a,int b)C. float f(int x,float y)D. int f(int x,float y)3. 下面关于面向对象的描述正确的是______。
A. 针对接口编程,而不是针对实现编程B. 针对实现编程,而不是针对接口编程C. 接口与实现不可分割D. 优先使用继承而非组合4. 面向对象技术中,对象是类的实例。
对象有三种成分:______、属性和方法(或操作)。
A. 标识B. 规则C. 封装D. 消息5. 已知3个类A、B和C,其中类A由类B的一个实例和类C的1个或多个实例构成。
能够正确表示类A、B和C之间关系的UML类图是_____。
6. 面向对象的测试可分四个层次,按照由低到高的顺序,这四个层次是______。
A. 类层——模板层——系统层——算法层B. 算法层——类层——模板层——系统层C. 算法层——模板层——类层——系统层D. 类层——系统层——模板层——算法层7. 在UML中,______用于描述系统与外部系统及用户之间的交互。
A. 类图B. 用例图C. 交互图D. 协作图8. 以下关于单身模式(Singleton)的描述中,正确的是______。
A. 它描述了只有一个方法的类的集合B. 它能够保证一个类只产生唯一的一个实例C. 它描述了只有一个属性的类的集合D. 它能够保证一个类的方法只能被唯一一个类调用9. 类的实例化过程是一种合成过程,而不仅仅是根据单个类型进行的空间分配、初始化和绑定。
2008~09(2)“程序设计II”参考答案zucc浙江大学城市学院
浙江大学城市学院2008 — 2009 学年第 二 学期期末考试参考答案《 程序设计Ⅱ 》开课单位: 计算学院 ;考试形式:闭卷;考试时间:2009年6月17日;所需时间:120分钟一.单选题(本大题共12题,每题1分,共12分)二.程序阅读题 (本大题共6题,每题4分,共24分)输出2项,每项2分;输出3项,对1项得2分,对2项得3分;输出4项,每项1分;三.程序选择填空题 (本大题共4题12空,每空2分,共 24 分)四. 程序设计题 (本大题共4题,每题10分,共 40 分)1.编写程序,输入x(单精度),计算并输出下列分段函数 f(x) 的值(保留2位小数)。
⎪⎪⎩⎪⎪⎨⎧≤<<≤≤>+=00103133)(2x x x x xx x x f#include<stdio.h> #include<math.h> void main(){ float x,y;scanf(“%f”, &x);if(x>3) y=x+3 ;else if(x>=1) y=x*x;else if(x>0) y=sqrt(x);else y=0;printf(“y=%.2f\n”, y);}评分细则:计算7分,其它3分2.编写程序,输入一批学生的成绩(整数),遇0或负数则输入结束,要求分别统计并输出优秀(>=85)、通过(60~84)和不及格(小于60)的学生人数。
#include<stdio.h>void main(){ int n,n1=0,n2=0,n3=0;scanf(“%d”, &n);while(n>0){if(n>=85) n1++;else if(n>=60) n2++;else n3++;scanf(“%d”, &n);}printf(“优秀%d人, 通过%d人, 不及格%d人\n”, n1,n2,n3);}评分细则:循环7分,其它3分3.编写程序,在主函数中输入一个字符串(长度小于80),求字符串中的最大字符,并输出该字符。
计09面向对象程序设计 考试试卷(B卷)参考解答
{ cout<<"Num="<<Num<<" Name="<<Name.c_str()<<" Age=" <<Age<<"
Sex="<<Sex<<endl;
}
int main()
{ doctor s1,s2(1002,"周博士",28,'0'),*p;
s1.display();
s2.display(); p = new doctor(1003,"马博士",29,'0');
doctor(int Num0=1001, string Name0="彭博士", int Age0=30,char Sex0='1')
{ Num = Num0; Name = Name0; Age = Age0; Sex = Sex0;
}
void display();
};
void doctor::display()
错误
2 3 4 5 6 7 8 9 10
的打
×
(每
小题
————————————————————————密封线——————————————————————
学号
姓名
系(院) 计算机与通信学院 课程名称 面向对象程序设计 班级
湖南工业大学考试试卷纸
三、填空题(每空 2 分, 共 10 分)
第 1 页 共4 页
(4) new Number(5)
void print(); };
(5) p->GetNum()
面向对象程序设计期末试卷B
1绍兴文理学院 2011 学年 01学期信计 专业 09 级《面向对象程序设计》试卷(答题卷) (B)(考试形式:闭卷 )一、选择题: (共15分,每小题1分)1.在C++中,函数原型不能标识( )A.函数的返回类型B.函数参数的个数C.函数参数类型D.函数的功能 p108有叙述 2.在C++程序中,对象之间的相互通信通过( ) ? A.继承实现 B.调用成员函数实现 C.封装实现 D.函数重载实现 3.对于任意一个类,析构函数的个数最多为( )A.0B.1C.2D.3 4.下面函数模板定义中不正确的是( )A.template<class Q>B.template<class Q> QF(Q x){ QF(Q x){ return Q+x; return x+x; } }C.template<class T>D.template<class T> TF(T x){ TF(T x){ return x*x; return x>1; } } 5.友元关系不能( ) A.继承B.是类与类的关系C.是一个类的成员函数与另一个类的关系 p316D.提高程序的运行效率6.语句ofstream f(〃SALARY.DAT 〃,ios::app |ios::binary);的功能是建立流对象f ,试图打开文件SALARY.DAT 并与之连接,并且( )A.若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件B.若文件存在,将其置为空文件;若文件不存在,打开失败C.若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件D.若文件存在,打开失败;若文件不存在,建立一个新文件 7.下面说法正确的是( )A.内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方B.内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方C.类的内联函数必须在类体内定义D.类的内联函数必须在类体外通过加关键字inline 定义8.可以用p.a 的形式访问派生类对象p 的基类成员a ,其中a 是( ) A.私有继承的公有成员 B.公有继承的私有成员 C.公有继承的保护成员 D.公有继承的公有成员9.在公有派生情况下,有关派生类对象和基类对象的关系,不正确的叙述是( ) A.派生类的对象可以赋给基类的对象 B.派生类的对象可以初始化基类的引用 C.派生类的对象可以直接访问基类中的成员 D.派生类的对象的地址可以赋给指向基类的指针 10.对于类定义 class A{ public:virtual void func1( ){ } void func2( ){ } };class B:public A{ public:void func1( ){cout<<〃class B func 1〃<<end1;} virtual void func2( ){cout<<〃class B func 2〃<<end1;} };下面正确的叙述是( )A. A::func2( )和B::func1( )都是虚函数B. A::func2( )和B::func1( )都不是虚函数C. B::func1( )是虚函数,而A::func2( )不是虚函数D. B::func1( )不是虚函数,而A::func2( )是虚函数11. 关键字 ____________ 说明对象或变量初始化后不会被修改。
《面向对象程序设计C 》期末试卷及标准答案
《面向对象程序设计C++》期末考试试卷(B)一、单项选择题(每小题2分,共40分)1、关于C++与C语言关系的描述中,( )就是错误的。
A.C语言就是C++语言的一个子集B.C语言与C++语言就是兼容的C.C++语言对C语言进行了一些改进D.C++语言与C语言都就是面向对象的2、已知:int m=10; 下列表示引用的方法中,( )就是正确的。
A.int &x=m;B.int &y=10;C.int &z;D.float &t=&m;3、考虑下面的函数原型声明:void testDefaulParam(int a,int b=7,char z='*');下面函数调用中,不合法的就是( )。
A.testDefaulParam(5);B.testDefaulParam(5,8);C.testDefaulParam(5,'#');D.testDefaulParam(0,0,'*');4、系统在调用重载函数时往往根据一些条件确定哪个重载函数被调用,在下列选项中,不能作为依据的就是( )。
A.函数的返回值类型B.参数的类型C.函数名称D.参数个数5、下列有关C++类的说法中,不正确的就是( )。
A.类就是一种用户自定义的数据类型B.只有类中的成员函数或类的友元函数才能存取类中的私有成员C.在类中,如果不做特别说明,所有成员的访问权限均为私有的D.在类中,如果不做特别说明,所有成员的访问权限均为公用的6、已知X类,则当程序执行到语句X array[3];时,调用了( )次构造函数。
A.0B.1C.2D.37、有关析构函数的说法,不正确的就是( )。
A.析构函数有且仅有一个B.析构函数与构造函数一样可以有形参C.析构函数的功能就是在系统释放对象之前作一些内存清理工作D.析构函数无任何函数类型8、类定义的内容允许被其对象无限制地存取的就是( )。
计面向对象程序设计 考试试卷(B卷)
b=a++。
c=f(a,b,c)。
cout<<"a="<<a<<" c="<<c<<endl。
return 0。
} int f(int x,int y,int z)
1. 程序 1
{
答:运行结果为:
int m。
m = x+y+z。
return(m)。
}
{ return Num。
2.程序 2(10 分)
{cout<<"create recliner."<<endl。}
~recliner( ){cout<<"delete recliner."<<endl。 }
private:
chair member。 3. 程序 3
}。
答:程序 3 运行结果为:
void main( )
{
bed b。
recliner r(2)。
1.什么是面向对象的程序设计?它的几个特征是什么? 答:
学号
系(院) 计算机与通信学院 课程名称 面向对象程序设计 班级 姓名
湖南工业大学考试试卷纸
题号 一 二 三 四 五 六 七 八 九 十 总分
题分 10 24 10 26 10 20
统分人 签名
100
得分
考生注意事项:1、本试卷共 4 页,试卷如有缺页或破损,请立即举手报告以便更换。
个人收集整理资料, 仅供交流学习, 勿作商业用途
5/5
第 4 页 共 4 页 聞創沟燴鐺險爱氇谴净祸
{ CE c1, c2。
《面向对象的程序设计》期末试卷(B)答案
电子系计控专业《面向对象的程序设计》期末试卷(B)答案一、选择题(每题2分,共40分)1、下列关于窗体的描述中,错误的是A。
A. 执行Unload Form1语句后,窗体Form1消失,但仍在内存中B. 窗体的Load事件在加载窗体时发生C. 当窗体的Enabled属性为False时,通过鼠标和键盘对窗体的操作都被禁止D. 窗体的Height、Width属性用于设置窗体的高和宽2、窗体文件的扩展名是_D_。
A.frxB. basC. vbpD. frm3、双击窗体上的控件后,将显示的窗口是 C 。
A. 项目(工程)窗口B. 工具箱C. 代码窗口D.1属性窗口4、表示滚动条控件取值范围最大值的属性是__A__A. MaxB. LargeChangeC. ValueD. Max-Min5、若要设置文本框中文本所显示的颜色,使用的属性是_C__。
A. BackColorB. FillColorC. ForeColorD. BackStyle6、下列属性中, B 属性是列表框不具有的。
A. NameB. CaptionC. ColumnsD. Text7、设计动画时,通常用定时器控件的A属性来控制动画速度。
A. IntervalB. ValueC. MoveD. Enabled8、改变控件在窗体中的左右位置,应设置该控件的__B__。
A. TopB. LeftC.WidthD.Height9、可以同时删除字符串前导和尾部空格的函数是 C 。
A. LtrimB. RtrimC. TrimD. Mid10、列表框的_B_属性返回或设置列表框中各列表项的文本。
A. SelectedB. ListC. TextD. Caption11、以下选项中,不是VB标准控件的是_C_。
A. 单选框B. 复选框C. 对话框D. 定时器12、为了把焦点移到某个指定的控件,所使用的方法是 D 。
A. SetFocusB. VisibleC. RefreshD. GetFocus13、Byte类型的变量可存的最大整数是_A_。
程序设计基础(二)期末试卷B(07本下学期)
void main() { B x(5),y(6,7); }
4.#include<iostream.h>
class base
{int n;
public:
base(){};
base (int a)
{cout << "constructing base class" << endl;
n=a;
cout << "n=" << n << endl;
void display();//输出显示函数
Time& operator ++();//前置单目运算符++重载函数
private:
int hour,minute,second;//时,分,秒
};
请编写Time的上述3个函数。其中:
(1)构造函数用于创建时间对象时分别用参数h、m、s的值对私有数据成员hour,minute,second初始化;
}
五、编程题(第1小题10分,第2小题10分,共20分)
1.输入两个正整数m和n (1<m<n),求从m到n之间(包括m和n)的所有素数,并按每行5个数,每个数8列的格式输出。(素数是除1以外只能被自身整除的自然数)。
2.已知时间类定义如下:
class Time
{public:
Time(int h=0, int m=0, int s=0); //构造函数
2.C语言结构类型变量在程序执行期间()。
A)所有成员一起驻留在内存中。B)只有一个成员驻留在内存中。
C)部分成员驻留在内存中。D)没有成员驻留在内存中。
面向对象2 期末考试试题及参考答案
面向对象程序设计(专科)复习题二一、单选题1.下列关于友元函数的说法,正确的是()。
()A、提高程序的运行效率B、增强类的封装性C、实现数据的隐藏性D、增加成员函数的种类2.下列关于在类中定义的静态数据成员的说法,正确的是()()A、该类的每个对象都有一个静态数据成员B、对象创建时产生C、在类外进行初始化D、既可以在类外初始化,也可以在类内初始化3.有如下类定义:class Point{int x_, y_;public:Point():x_(0), y_(0){}Point(int x, int y = 0):x_(x), y_(y){}};若执行语句:Point a(2), b[3], *c[4]; 则Point类的构造函数被调用的次数是():()A、2次B、3次C、4次D、5次4.若类B公有继承自类A,则定义B类对象和撤销B类对象时,调用构造函数和析构函数的次序为()。
()A、A B; B AB、A B; A BC、B A; A BD、B A; A B5.在公有派生的前提下,下列说法错误的是()。
()A、在一个赋值语句中,等号的左边是一个基类对象时,右边可以是一个派生类对象B、若B是A的派生类,且有默认的构造函数,则语句A &a = *new BC、在一个返回值为基类指针的函数中,可以返回一个派生类对象的地址D、在调用一个形参类型为派生类引用的函数时,可以将一个基类对象作为实参6.类B是类A的公有派生类,类A和类B中都定义了虚函数func(),p是一个指向类A 对象的指针,则p->A::func()将()()A、调用类A中的函数func()B、调用类B中的函数func()C、根据p所指的对象类型而确定调用类A中或类B中的函数func()D、既调用类A中函数,也调用类B中的函数7.下列不能作为类的成员的是()。
()A、自身类对象的指针。
2008~09(1)“程序设计II”试卷(计算机专业)
诚信应考考出水平考出风格浙江大学城市学院2008 — 2009 学年第一学期期末考试试卷《程序设计Ⅱ》开课单位:计算分院;考试形式:闭卷;考试时间:_2009__年_ 1 _月_12_日;所需时间: 120 分钟注:答案一律写在答题卷上,在试题卷上答题无效。
一、程序阅读题(本大题共9题,每题4分,共36分)1.请写出下面程序的输出结果。
【程序】#include<stdio.h>int main(){ int i;for(i=1;i<15;i++){if(i%5!=0) continue;printf(“%d#”,i);}return 0;}2.写出以下程序段的输出结果。
【程序】# include <stdio.h>int f(int m){ static int k=0;int s=0;for(; k<=m; k++) s++;return s;}int main( ){ int s1, s2;s1=f(5);s2=f(3);printf("%d, %d\n", s1, s2);return 0;}3.下面的程序运行时输入1 2 3 4,请写出运行结果。
【程序】#include<stdio.h>int main(){int i,a[4],b[4];for(i=0;i<4;i++)scanf("%d",&a[i]);for(i=0;i<4;i++)if(i==0)b[i]=a[i+1];else if(i==3)b[i]=a[i-1];elseb[i]=a[i-1]+a[i+1];for(i=0;i<4;i++)printf("%d#",b[i]);return 0;}4.请问下面的函数中使用了哪种排序算法? 如果n=8,a[0]~ a[7]的值分别是:1、2、3、4、8、7、6、5,那么在排序过程中共发生了几次数组元素的两两交换操作?【程序】void sort(int a[], int n){int i,j,k,tmp;for(i=0;i<n-1;i++){k = i;for(j=i+1;j<n;j++)if (a[k]<a[j]) k = j;if(k!=i){tmp = a[k];a[k]=a[i]; 交换操作a[i]=tmp;}}}5.下面程序运行后输入3 5,请写出运行结果。
《Java面向对象程序设计》科目考试卷及答案
安徽财贸职业学院2011—2012学年第二学期 《Java 面向对象程序设计》期末试卷(B 卷)适用班级:软件1101一、单选题(每小题1分,共30分)1.在MyEclipse 中,( )视图可以将项目中包含的文件及层次结构展示出来。
A) Package B)Declaration C)Navigator D) Console 2.下列标识符中,正确的是( )。
A)class B) 123_rr C) _lei D) test&12 3.下列的( )选项可以正确用以表示八进制值8。
A )0x8 B )0x10 C )08 D )010 4.以下哪个不是Java 的原始数据类型( ) A) int B) boolean C) float D) Char 5.下列有关Java 布尔类型的描述中,正确的是( ) A)一种基本的数据类型,它的类型名称为boolean B)用int 表示类型C)其值可以赋给int 类型的变量 D)有两个值,1代表真,0代表假6.在Java 中,不属于整数类型变量的是( ) A) double B) long C) int D) byte 7.以下do-while 语句构成的循环执行次数是( )。
int k=0;do { ++k ;}while(k<1);A) 一次也不执行 B) 执行1次 C) 无限次 D) 有语法错误,不能执行8.表达式(1/0<1)&& (12==0) 的值为( )。
A) true B) false C) 0 D) 运行时抛出异常 9.以下( )表达式不可以作为循环条件 A) i=5 B )i<3 C) count==i D) bEqual=str.equals("q") 10.下列数组初始化正确的是( ) A) int score[5] = {90,12,34,77,56}; B) int[5] score = new int[];C) int[] score = new int[5]{90,12,34,77,56};班级_______ 考号________ 姓名______________________________装______订______线____________________________________________________________________________D) int score[] = new int[]{90,12,34,77,56};11.若有定义:byte[] x={11,22,33,-66};其中0≤k≤3,则对x数组元素错误的引用是()A) x[5-3] B) x[k] C) x[k+5] D) x[0]12.以下代码的输出结果是()。
计08面向对象程序设计方案考试参考答案(B卷)
六、编程题(20分,评分标准:写出类和成员函数得12分,编出main()函数得8分,注意:程序的所有等价写法同样给分)
#include <iostream>
#include <fstream>
using namespace std。
class teacher
{
Num = Num0。
Name = Name0。
Age = Байду номын сангаасge0。
Sex = Sex0。
}
void display()。
}。
void teacher::display()
{
cout<<"Num="<<Num<<" Name="<<Name.c_str()<<" Age=" <<Age<<" Sex="<<Sex<<endl。
2.(评分标准:两个知识点各4分)
答:结构是类的一种特例,在结构体中也可以定义成员函数、构造函数和析构函数,成员也可使用private、protected、public。结构和类的区别是:在缺省情况下,结构中的所有成员都是公有的,而在类中是私有的
3.(评分标准:两个知识点各4分)
答:多态性是指:向不同的对象发送同一个消息,不同的对象在接收时会产生不同的行为(即方法)。
答:运行结果为:(评分标准:每对一个得3分)
a=8 c=22
2.程序2(10分,评分标准:每对一个给2分)
答:程序运行结果为:
2008年B试卷
考试课程名称:面向对象程序设计学时: 28+20考试方式:闭卷,笔试------08------B考试内容:一、名词解释(共20分)1.对象2. 重载3. 消息4.析构函数5.浅拷贝二、单选题(共20分)1.下列那一项不是面向对象系统所包含的要素( )。
A重载 B对象 C类 D继承2.在int a=3,*p=&a;中,*p的值是( )。
A变量a的地址值 B无意义 C变量p的地址值 D变量a的值3.下面对模板声明正确的是():A template<T>B template<class T1,T2>C template<class T1,class T2>D template<class T1;class T2>4.以下关于This指针的描述中,错误的是( ):A this指针是指向对象的指针B This指针是在使用对象引用成员函数时系统自动生成的C This指针是指向成员函数的指针D This指针可以在程序中显示使用5.下面有关析构函数的描述正确是( )A.析构函数可以带参数B.析构函数可以有多个C.析构函数在对象被撤消(销毁)之前执行D.析构函数可以为虚函数6.在()情况下适宜采用inline定义内联函数。
A、函数体含有循环语句B、函数代码少、频繁调用C、函数代码多、不常调用D、函数体含有递归语句7.若有int k=7,x=12;则其值为3的表达式为( )A x%=(k%=5)B x%=(k-k%5)C x%=k-k%5D (x%=k)-(k%=5)8.下面引用的定义中,错误的是( )A. int I; int&j; j = I;B. int I=6; int&j = I;C.char d; char &k=d;D.float I; const float &j=I;9.有关类的友元描述错误的是( )A.友元函数可以访问该类的所有成员。
《面向对象程序设计C 》期末试卷及标准答案(B)
《面向对象程序设计C++》期末考试试卷(B)一、单项选择题(每小题2分,共40分)1、关于C++与C语言关系的描述中,()是错误的。
A.C语言是C++语言的一个子集B.C语言与C++语言是兼容的C.C++语言对C语言进行了一些改进D.C++语言和C语言都是面向对象的2、已知:int m=10; 下列表示引用的方法中,()是正确的。
A.int &x=m; B.int &y=10; C.int &z; D.float &t=&m;3、考虑下面的函数原型声明:void testDefaulParam(int a,int b=7,char z='*');下面函数调用中,不合法的是()。
A.testDefaulParam(5); B.testDefaulParam(5,8);C.testDefaulParam(5,'#'); D.testDefaulParam(0,0,'*');4、系统在调用重载函数时往往根据一些条件确定哪个重载函数被调用,在下列选项中,不能作为依据的是()。
A.函数的返回值类型B.参数的类型C.函数名称D.参数个数5、下列有关C++类的说法中,不正确的是()。
A.类是一种用户自定义的数据类型B.只有类中的成员函数或类的友元函数才能存取类中的私有成员C.在类中,如果不做特别说明,所有成员的访问权限均为私有的D.在类中,如果不做特别说明,所有成员的访问权限均为公用的6、已知X类,则当程序执行到语句X array[3];时,调用了()次构造函数。
A.0 B.1 C.2 D.37、有关析构函数的说法,不正确的是()。
A.析构函数有且仅有一个B.析构函数和构造函数一样可以有形参C.析构函数的功能是在系统释放对象之前作一些内存清理工作D.析构函数无任何函数类型8、类定义的内容允许被其对象无限制地存取的是()。
A.private 部分B.protected 部分C.public 部分D.以上都不对9、关于常数据成员的说法,不正确的是()。
计09面向对象程序设计考试试卷(B卷)
第1 页共4页二、简答题(每小题8分,共24分)1. 什么是而向对象的程序设计?它的几个特征是什么? 答:考生注意事项:1、本试卷共上_页,试卷如有缺页或破损,请立即举手报告以便更换。
2、考试结束后,考生不得将试卷、答题纸和草稿纸带出考场。
(答案请写在密封线内和答卷正而,否则不记分)课程名称:面向对象程序设计 (B 卷闭卷)适用专业年级:计算机科学与技术09级考试时间:100分钟2.类和结构有什么异同?一、判断题,正确的在下列表格中打错误的打X (每小题1分,答:1. 在C++语言中,只能使用class 来建义一个类。
( )2. 采用inline 泄义内联函数时,在对于函数代码少、频繁调用的情况下特別有效。
( )3. 函数重载时,它们的参数个数和类型要求都不能相同。
()4. 类中的静态成员数据为该类的所有对象所共享,并且,在该类对象被撤销时,静态成员并 没有撤销。
( )5.构造函数和析构函数均不能被说明为虚函数。
()6. 在C 语言中,不使用命轻空间,但在C++程序中,一立要使用命名空间。
( )7. ASCII 码文件和二进制文件都可在记事本中直接打开。
()8. 类的友员函数是指可以访问本类私有成员的其它类的成员函数。
()9. 而向对象的编程方法还是要以而向过程的编程方法做基础,故学了面向过程的编程方法后, 对学习面向对象的编程方法很有帮助。
()3..函数重载的主要作用是什么?调用不同的重载函数是在编译时决左还是在运行 时决定? 答:三、填空题(每空2分,共10分)根据程序说明和程序中的注释,填充程序中不完整的部分。
类Number的成员函数TwoTimes是递归函数,功能是求2“(假设n<0时返回值为0)。
ttinclude <iostream>using namespace std;class Number{private:int Num;public:int n;int TwoTimes (int n) //递归函数TwoTimes (n)求2” o{ if (—⑴—)return 0;if (n=0)—⑵—;else return _____ (3) ___ ;}int GetNumO{return Num;}Number(int n=0) {Num = n;}};void mainO{Number *p;P二__ ⑷;〃动态生成由p指向的Number对象,并使Num为5。
08学年第2学期面向对象分析与设计试卷(B)_答案
华南农业大学期末考试试卷(B卷)2008学年第2学期考试科目:面向对象分析与设计考试类型:(闭卷)考试时间:120 分钟学号姓名年级专业一、单项选择题(每题2分,共30分。
将正确答案填入下表)1.下面关于面向对象方法中消息的叙述,不正确的是()。
BA.键盘、鼠标、通信端口、网络等设备一有变化,就会产生消息。
B.操作系统不断向应用程序发送消息,但应用程序不能向操作系统发送消息。
C.应用程序之间可以相互发送消息。
D.发送与接收消息的通信机制与传统的子程序调用机制不同。
2.面向对象技术中,对象是类的实例。
对象有三种成分:()、属性和方法(或操作)。
AA.标识B.规则C.封装D.消息3~5:在UML提供的图中,可以采用(3)对逻辑数据库模型建模;(4)用于接口、类和协作的行为建模,并强调对象行为的事件顺序;(5)用于系统的功能建模,并强调对象间的控制流。
D、B、CA.用例图B.构件图C.活动图D.类图A.协作图B.状态图C.序列图D.对象图A.状态图B.用例图C.活动图D.类图6.采用面向对象技术开发的应用系统的特点是()。
AA.重用性更强B.运行数度更快C.占用存储量小D.维护更复杂7.继承反映了类间的一种层次关系,而()反映了一种整体与部分的关系。
BA.继承B.组合C.封装D.多态8.下列叙述中正确的是()。
CA.面向对象程序设计语言都不支持过程化的程序设计B.面向对象系统只可采用面向对象设计语言实现C.某些过程化程序设计语言也可实现面向对象系统D.面向对象程序设计语言不支持对成员变量的直接访问9.面向对象的特点主要概括为()。
CA.可分解性、可组合性、可分类性B.继承性、封装性、多态性C.抽象性、继承性、封装性、多态性D.封装性、易维护性、可扩展性、可重用性10.下列关于面向对象方法中描述中错误的是()。
CA.使用设计模式有助于在软件开发中应用面向对象技术B.选择面向对象程序设计语言时需要考虑开发人员对其的熟悉程度C.UML作为一种可视化建模语言需要与RUP开发过程同时使用D.目前在软件生命周期的分析、设计、实现和测试中均可以应用面向对象方法11.在类图中,那个类图中的类Order所生成的代码具有public class Order {public Customer recipient;}的形式?()AA. B.C D.12.关于用例与类的对比中()是错误的。
《面向对象高级设计》期末考试试卷(B卷)及答案
《面向对象高级设计》期末考试试卷(B 卷) 适用专业:1. 按要求编写Java 应用程序。
(20分) (1)建立一个名叫Cat 的类: 属性:姓名、毛色、年龄 行为:显示姓名、喊叫 (2)编写主类: 创建一个对象猫,姓名为“妮妮”,毛色为“灰色”,年龄为2岁,在屏幕上输出该对象的毛色和年龄,让该对象调用显示姓名和喊叫两个方法。
ChongZai ,该类中有3个重载的方法void print();其次, 再编写一个主类来测试ChongZai 类的功能。
(20分)3. 编写一个Java应用程序,该程序包括3个类:Monkey类、People类和主类E。
(30分)(1) Monkey类中有个构造方法:Monkey (String s),并且有个public void speak() 方法,在speak方法中输出“咿咿呀呀......”的信息。
(2)People类是Monkey类的子类,在People类中重写方法speak(),在speak方法中输出“小样的,不错嘛!会说话了!”的信息。
(3)在People类中新增方法void think(),在think方法中输出“别说话!认真思考!”的信息。
(4)在主类E的main方法中创建Monkey与People类的对象类测试这2个类的功能。
Vehicle,包含的属性有车轮个数wheels和车重weight。
小车类Car是Vehicle的子类,其中包含的属性有载人数loader。
卡车类Truck是Car类的子类,其中包含的属性有载重量payload。
每个类都有构造方法和输出相关数据的方法。
最后,写一个测试类来测试这些类的功能。
(30分)《面向对象高级设计》期末试卷答案(B)1///////////////catpublic class Cat {String name;String color;String age;public Cat(String name,String color,String age){ = name;this.color = color;this.age = age;}void SayName(){System.out.println(name);}void Call(){System.out.println(" 咪咪");}}//////////////TestCarpublic class TestCar {public static void main(String[] args) {Cat cat = new Cat("妮妮","灰色","2");System.out.println();System.out.println(cat.color);cat.SayName();cat.Call();}}2//////////////// ChongZaipublic class ChongZai {void print(){System.out.println("重载1");}void print(String a){System.out.println("重载方法2");}void print(String a,String b){System.out.println("重载方法3");}}////////////// TestChongZaipublic class TestChongZai {public static void main(String[] args) { ChongZai cz = new ChongZai();cz.print();cz.print("a");cz.print("a", "b");}}3////////// Monkeypublic class Monkey {public Monkey(String s){}public void speak(){System.out.println("咿咿呀呀......");}}//////////////Peoplepublic class People extends Monkey {public People(String s) {super(s);}public void speak() {System.out.println("小样的,不错嘛!会说话了!");}void think(){System.out.println("别说话!认真思考!");}}/////////////////Epublic class E {public static void main(String[] args) {Monkey monkey = new Monkey("a");monkey.speak();People people = new People("a");people.speak();people.think();}}4///////////Vehiclepublic class Vehicle {String wheels;String weight;public Vehicle(String wheels,String weight){this.weight = weight;this.wheels = wheels;}@Overridepublic String toString() {return wheels+weight;}}/////////Carpublic class Car extends Vehicle{String loader;public Car(String wheels, String weight,String loader) { super(wheels, weight);this.loader = loader;}public String toString() {return super.toString()+loader;}}//////////////Truckpublic class Truck extends Car{String payload;public Truck(String wheels, String weight, String loader,String payload) {super(wheels, weight, loader);this.payload = payload;}public String toString() {return super.toString()+payload;}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
华侨大学面向对象程序设计(二)试卷(B)系别计算机、软件工程、网络工程08 考试日期 2009年 06月29日姓名学号成绩一、选择题 (20分,每小题2分)(1)在C++中,关于下列设置参数默认值的描述中,正确的是 (1) 。
A)不允许设置参数的默认值B)设置参数默认值只能在定义函数时设置C)设置参数默认值时,应该是先设置右边的再设置左边的D)设置参数默认值时,应该全部参数都设置(2)编译时多态性通过使用(2)获得。
A)重载函数 B)虚函数 C)继承 D)析构函数(3)派生类构造函数的成员初始化列表中,不能包含(3)。
A)基类的构造函数B)派生类中成员对象的初始化C)基类中成员对象的初始化D)派生类中一般数据成员的初始化(4)下面关于友元的描述中,错误的是(4)。
A)友元函数可以访问该类的私有数据成员B)一个类的友元类中的成员函数都是这个类的友元函数C)友元可以提高程序的运行效率D)类与类之间的友元关系可以继承(5)在定义派生类对象时构造函数的执行顺序为:(5)。
A)先执行基类的构造函数,再执行成员对象的构造函数,最后执行派生类本身的构造函数B)先执行基类的构造函数,再执行派生类本身的构造函数,最后执行成员对象的构造函数C)先执行派生类本身的构造函数,再执行基类的构造函数,最后执行成员对象的构造函数D)先执行派生类本身的构造函数,再执行成员对象的构造函数,最后执行基类的构造函数(6)以下叙述中不正确的是(6)A) 在不同的函数中可以使用相同名字的变量B) 函数中的形式参数是局部变量C) 在一个函数内定义的变量只在本函数范围内有效D) 在一个函数内的复合语句中定义的变量在本函数范围内有效(7)下面关于构造函数的叙述中,正确的叙述是 (7) 。
A)引入构造函数是为了对象的自动执行B)构造函数名必须与类名相同C)构造函数不能重载D)构造函数也是成员函数,因此可以被其它函数调用(8)以下关于函数指针的叙述中,正确的是(8)。
A) 函数指针用来存放函数入口地址 B)函数指针用来存放函数调用的结果C) 函数指针用来指示函数的出口地址 D) 函数指针就是指针函数的别名(9)下列关于继承的描述中,错误的是(9)。
A)析构函数不能被继承 B)派生类是基类的组合C)派生类的成员除了它自己的成员外还包含了它的基类的成员D)派生类中继承的基类成员的访问权限在派生类中保持不变(10)以下正确的描述是(10) 。
在C++语言程序中A)函数的定义可以嵌套,但函数的调用不可以嵌套B)函数的定义不可以嵌套,但函数的调用可以嵌套C)函数的定义和函数的调用均不可以嵌套D)函数的定义和函数的调用均可以嵌套二、阅读以下程序并给出执行结果(20分,每小题5分)。
1、#include<iostream>using namespace std;void func();int a=1;int main(){int x=0, y=-1;cout<<"x="<<x<<", y="<<y<<", a="<<a<<endl;func();cout<<"x="<<x<<", y="<<y<<", a="<<a<<endl;func();return 1;}void func(){static int x=2;int y=5;x+=2, y+=5;a+=12;cout<<"x="<<x<<", y="<<y<<", a="<<a<<endl;}2、#include<iostream>using namespace std;class Add{private:int x,y;Add(int a,int b){x=a; y=b;cout<<"调用构造函数1"<<endl;}Add(Add &p){x=p.x; y=p.y;cout<<"调用构造函数2"<<endl;}~Add(){cout<<"调用析构函数"<<endl;}int add(){ r eturn x+y; }};void main(){Add p1(2,3);Add p2(p1);cout<<p2.add()<<endl;}3、#include <iostream>using namespace std;class Base{protected:int b;public:Base(int bval=0){ cout<<"Constructing Base..."<<bval<<endl;b=bval;}};class Derive1: virtual public Base{protected:int d1;public:Derive1(int bval, int dval):Base(bval){ cout<<"Constructing Derive1..."<<dval<<endl;d1=dval;};class Derive2:virtual public Base{protected:int d2;public:Derive2(int bval,int dval):Base(bval){ cout<<"Constructing Derive2..."<<dval<<endl;d2=dval;}};class Derive:public Derive1, public Derive2{ protected:int d;public:Derive(int bval, int dval1,int dval2,int dval); };Derive::Derive(int bval, int dval1,int dval2,int dval):Derive1(bval, dval1),Derive2(bval, dval2),Base(bval) {cout<<"Constructing Derive..."<<dval<<endl;d=dval;}void main(){Derive Objectd(1,2,3,4);}4、#include <iostream>using namespace std;void a(int i){int j,k;for(j=0;j<=7-i;j++) cout<<" ";for(k=0;k<2*i+1;k++) cout<<"*";cout<<endl;}int main(){ int i;for(i=0;i<3;i++) a(i);for(i=3;i>=0;i--) a(i);return 1;}三、阅读以下程序(或函数)并简要叙述其功能(20分,每小题5分)1、#include <iostream>using namespace std;char* fun(char* dest, const char* src);int main(){char a[80],b[80];cout<<"Please input a string:";cin>>a;cout<<fun(b,a)<<"\n";return 1;}char* fun(char* dest, const char* src){char* pdest=dest;while(*pdest++ = *psrc++);return dest;}请叙述函数fun( )的功能。
2、#include <iostream>using namespace std;int func(int[][4],int,int);void main(){int sg[3][4]={{68,77,73,86},{87,96,78,89},{90,70,81,86}};cout<<"The result is:"<<func(sg,3,4)<<endl;}int func(int grade[][4],int pupils,int tests){int p1=grade[0][0];for(int i=0;i<pupils;i++)for(int j=0;j<tests;j++)if(grade[i][j]<p1)p1=grade[i][j];return p1;}输出运行结果:请叙述函数func( )的功能。
3、int funp(long m){int flag;double sqrtm;int i;if (m==2)flag=1;elseif (m%2==0)flag=0;else{flag=1;sqrtm=sqrt(m);for(i=3;i<=sqrtm && flag;i+=2)if (m%i==0)flag=0;}return flag;}请叙述函数funp( )的功能。
4、#include <iostream>using namespace std;char s[20];char * f1(int);int main(){int num;cout<<"Please a number(>0):";cin>>num;if(num<0)cout<<"Error input!"<<endl;elsecout<<f1(num)<<endl;return 1;}char * f1(int n){int p=0;do{s[p]=n%10+'0';p++;}while((n=n/10)!=0);s[p]='\0';return s;}输入:483运行结果:?函数f1( )的功能:?四、阅读以下程序并填空(填上正确的语法成分),使其成为完整的程序(10分,每空2分)假设原链表的结点是按学号(number)由小到大排列的。