2016面向对象程序设计B卷
2016高级语言程序设计考卷B及参考答案
二
三
四
五
六 合计
满分 28
24
18
30
100
得分
专业 班级
得分
一、单项选择题 (本大题共 14 小题,每小题 2 分,共 28 分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将所选代码填写在下面
表格中的对应位置。错选、多选或未选均无分。
1 2 3 4 5 6 7 8 9 10 11 12 13 14
A.x
B.p
C.&x
D.&*p
12.设 char s[10],*p=s; 下列语句中错误的是
A.p=s+5;
B.*p=s[0]; C.s[2]=p[4]; D.s=p+5;
13.在 C++中,函数的形式参数是 A.局部变量 B.全局变量
C.静态变量
D.外部变量
14.有以下定义和语句
int a[3][2]={1,2,3,4,5,6,},*p[3];
1 --> 2 --> 3 --> 4 --> 5 --> 6。 #include <iostream.h> struct Node { int data;
Node *next; }; typedef Node * LinkList; void print(LinkList head) { Node *p; if (head==NULL) return; p=head; while (p->next) { cout<<p->data<<" --> ";
sum2+=f2(i); cout<<"S1="<<sum1<<",S2="<<sum2<<endl; return 0; }
16秋北交《面向对象的程序设计》在线作业二
A.错误
B.正确
正确答案:
14.在私有继承方式下,派生类的对象可访问基类中的公有成员。()
A.错误
B.正确
正确答案:
15.抽象类中只能有一个纯虚函数。()
A.错误
B.正确
正确答案:
北交《面向对象的程序设计》在线作业二
一、单选题(共23道试题,共57.5分。)
2.下列关于派生类可访问它基类成员的描述中,错误的是()。
A.派生类可访问它基类中的成员与继承方式有关
B.派生类不可访问它基类中的私有成员
C.公有继承方式下,派生类可访问它基类的私有成员
D.私有继承方式下,派生类可访问它基类中的公有成员和保护成员
正确答案:
3.执行语句序列int i=0; while(i >< 25) i+=3; cout<输出结果是/( )
A.错误
B.正确
正确答案:
6.用new动态申请的内存是在堆中分配的,而不是在栈中分配的。()
A.错误
B.正确
正确答案:
7.子对象的初始化在其构造函数的成员初始化列表中实现。()
A.错误
B.正确
正确答案:
8.析构函数是不能重载的。()
A.错误
B.正确
正确答案:
9.使用const说明常量时,可以不必指出类型.()
A. 0
B. 5
C. 6
D.无数次
正确答案:
14.关于虚函数的描述中,正确的是()
A.虚函数是一个static类型的成员函数
B.虚函数是一个非成员函数
C.基类中说明了虚函数后,派生类中将其对应的函数可不必说明为虚函数
计算机10级面向对象程序设计 考试试卷(B卷) 参考解答
5.在VC6.0开发环境中,可以同时开发几个工程。()
6.如果在一个类的对象之间要进行数据交换,可以使用该类的静态数据成员来完成。()
7.如果一个类的所有对象都共享某一个变量,则应当将该变量定义为该类的私有成员。()
8在C++中,文件的输入输出可以通过iostream类对象来完成。()
(5)iSum
四、阅读下面的程序,写出程序运行的结果。(共26分)
1.程序1(6分)
#include <iostream>
using namespace std;
int main()
{ int a=5,b;
int &c=b;
int f(int x,int y,int z);
b=a++;
c=f(a,b,c);
一、判断题,正确的在下列表格中打√,错误的打×(每小题1分,共10分)(评分标准:每对一个得1分)
1
2
3
4
5
6
7
8
9
10
×
√
√
√
√
√
×
×
×
×
1.C++程序总是从第一个定义的函数开始执行。()
2.在MFC编程中,通过Invalidate(TRUE)可以发出重绘视图的消息。()
3.在内存中,一个字符常量或变量是以ASCII码值存储的,它可直接作为整数值参加运算。()
第1页共4页
三、填空题(每空2分,共10分)
下面是一个求数组元素之和的程序。主程序中定义并初始化了一个数组,然后计算该数组各元素的和,并输出结果。函数sum计算数组元素之和,填充程序中不完整的部分。
西安交通大学16年9月课程考试《面向对象程序设计》作业考核试题答案
西安交通大学16年9月课程考试《面向对象程序设计》作业考核试题1:定义p并使p指向动态空间中的包含30个整数的数组所使用的定义语句为()。
A:int *p=new int [30];B:int *p=new int(30);C:int *p=new [30];D:*p=new int [30];正确答案:A2:下面的类中,()不是由抽象基类ios直接派生出来的。
A:istreamB:ostreamC:iostreamD:fstreambase正确答案:C3:对于一个类的构造函数,其函数名与类名()。
A:完全相同B:基本相同C:不相同D:无关系正确答案:A4:下列的符号常变量定义中,错误的定义是()。
A:const M=10;B:const int M=20;C:const char ch;D:const bool mark=true;正确答案:C5:当一个类对象离开它的作用域时,系统自动调用该类的( )。
A:无参构造函数B:带参构造函数C:拷贝构造函数D:析构函数正确答案:D6:假定一个类的构造函数为“A(int aa,int bb) {a=aa; b=aa*bb;}”,则执行“A x(4,5);”语句后,x.a和x.b的值分别为( )A:4和5B:5和4D:20和5正确答案:C7:设置虚基类的目的是()。
A:简化程序B:消除二义性C:提高运行效率D:减少目标代码正确答案:B8:基类和派生类可以分别称为()。
A:“大类”和“小类”B:“父类”和“子类”C:“小类”和“大类”D:“子类”和“父类”正确答案:B9:一个类的析构函数通常被定义为该类的( )成员。
A:私有B:保护C:公用D:友元正确答案:C10:下列对继承关系的描述中,()是正确的。
A:在公有继承中,基类中的公有成员和私有成员在派生类中都是可见的;B:在公有继承中,基类中只有公有成员对派生类的对象是可见的;C:在私有继承中,基类中只有公有成员对派生类是可见的;D:在私有继承中,基类中的保护成员对派生类的对象是可见的;正确答案:D11:假定AB为一个类,则执行“AB *px=new AB[n];”语句时将( )。
计面向对象程序设计 考试试卷(B卷)参考解答
{public:
五、理解问答题(10 分)
说明:读懂如下程序,回答题后的问题。
#include "iostream.h"
//0 行
class CE {
private:
int a,b。
int getmin() {return (a<b?a:b)。}
public int c。
void SetValue(int x1,int x2,int x3) {
//13 行 //14 行 //15 行 //16 行 //17 行 //18 行 //19 行 //20 行
六、编程题(20 分)
定义一个博士类 doctor,它的私有数据成员有 Num(编号,为 int 型)、Name (姓名,为 string 型)、Age(年龄,为 int 型)、Sex(性别,为 char 型)。公用 成员函数有:GetNum( ),它返回博士编号;Display( ),它输出博士的上述基本信息 (注意:Display( )函数在类外定义)。 博士类的构造函数原型为: doctor(int Num0=1001, string Name0="彭博士", int Age0=30,char Sex0='1')。
{ CE c1, c2。
//21 行
c1.SetValue(1,2,3)。
//22 行
c2.SetValue(3,2,1)。
//23 行
if (c1>c2)
//24 行
cout<<” c1>c2”<<endl。
//25 行
else
//26 行
cout<<” c1<c2”<<endl。 return 0。}
《Java面向对象程序设计》考试卷及答案带注释
一、单选题(每小题1分,共30分)1.在MyEclipse中,()视图可以将项目中包含的文件及层次结构展示出来。
CA) Package B)Declaration C)Navigator D) Console2.下列标识符中,正确的是()。
CA)class B) 123_rr C) _lei D) test&123.下列的()选项可以正确用以表示八进制值8。
0x代表16进制,0代表8进制 D A)0x8 B)0x10 C)08 D)0104.以下哪个不是Java的原始数据类型()DA) int B) boolean C) float D) Char引用数据类型5.下列有关Java布尔类型的描述中,正确的是()AA)一种基本的数据类型,它的类型名称为booleanB)用int表示类型C)其值可以赋给int类型的变量D)有两个值,1代表真,0代表假6.在Java中,不属于整数类型变量的是( ) AA) double 浮点型B) long C) int D) byte7.以下do-while语句构成的循环执行次数是()。
Bint k=0;do { ++k ;}while(k<1);A) 一次也不执行B) 执行1次C) 无限次D) 有语法错误,不能执行8.表达式(1/0<1)&& (12==0) 的值为()。
逻辑运算结果只有true和false两种 BA) true B) false C) 0 D) 运行时抛出异常9.以下()表达式不可以作为循环条件 AA) i=5 B )i<3 C) count==i D) bEqual=str.equals("q") 10.下列数组初始化正确的是() DA) 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数组元素错误的引用是() CA) x[5-3] B) x[k] C) x[k+5] D) x[0]12.以下代码的输出结果是()。
面向对象程序设计期末试卷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. 关键字 ____________ 说明对象或变量初始化后不会被修改。
面向对象程序设计B
专业年级:_________________ 学号_______________ 姓名_____________(注意:所有答案必须都写到答题纸上)一、选择题(每题1分,共25分)1.关于类和对象的说法正确的是______。
A、面向对象程序设计方法通过数据抽象和行为抽象,封装形成了“类”B、类具有的行为由变量表示。
C、类的属性一般由函数表示,且定义为public的D、类是具体的,对象是抽象的2.下面赋值语句错误的是。
A、char name[3]="abc";B、char name[3]={'a','b','c'};C、string name=”abc”;D、string name(“abc”);3.关于字符常量的写法,错误的是______。
A、'/'B、"a"C、'\t'D、'\0'4.下面C++标识符命名正确的是:______。
A、classB、@mailC、1varD、_inline5.下面基本数据类型初始化表达式错误的是______。
A、int i(5);B、float f=3.56f;C、char c='ab'D、double f=3.56;6.关于友元,下列说法错误的是______。
A、友元关系可以传递B、友元关系是单向的C、友元关系是不能被继承的D、友元的声明使用关键字friend7.下列函数原型声明中错误的是______。
A、void Fun(int x=0,int y);B、void Fun(int x,int y);C、void Fun(int x,int y=0);D、void Fun(int x=0,int y=0);8.有以下类定义class Point{int _x,_y;public:Point(int x=0,int y=0){_x=x;_y=y;}void Print() const{cout<<'('<<_x<<','<<_y<<')'<<endl;}void Move(int xOff,int yOff){_x+=xOff;_y+=yOff;}};下列语句中会发生编译错误的是______。
《面向对象程序设计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、类定义的内容允许被其对象无限制地存取的就是( )。
Java语言程序设计(面向对象程序设计)
1、下列关于类的描述中,错误的是()。
A.可以将所有类成员的访问权限都设为私有权限B.类可认为是一种高级数据类型C.类包含数据成员和函数成员D.用类所定义出的变量称为对象正确答案:A2、下列关于重用代码的描述中,错误的是()。
A.函数是重用算法代码的语法形式B.类是一种数据类型,因此只能重用数据代码C.结构体类型是重用数据代码的语法形式D.类是同时重用算法代码和数据代码的语法形式正确答案:B3、关于程序开发过程中的程序员角色,下列哪种描述是错误的?A.一个程序员可以使用其他程序员提供的代码,即代码使用者B.一个程序员可以既是代码提供者,同时又是代码使用者C.一个程序员不能既是代码提供者,同时又是代码使用者D.一个程序员可以为其他程序员提供代码,即代码提供者正确答案:C4、关于程序设计方法,下列哪种描述是错误的?A.结构化程序设计分解出的函数是一种算法零件B.程序设计方法是研究如何对大型程序设计任务进行分解的方法C.结构化程序设计分解出的结构体类型是一种数据零件D.面向对象程序设计分解出的类是一种数据零件5、下列哪种思想不属于面向对象程序设计?A.继承B.模块化C.抽象D.封装正确答案:B6、下列关于类的描述中,错误的是()。
A.可以用流程图来描述类的设计B.类是描述客观事物的数据模型C.类的数据成员也被称作属性D.类的函数成员也被称作方法正确答案:A7、按照面向对象程序设计的观点,下列关于对象描述中错误的是()。
A.客观世界中的事物被称作客观对象B.类是描述客观对象的数据模型C.程序中用类定义出的对象被称作内存对象D.同一个类所定义出的两个内存对象可以有不同的成员正确答案:D8、关于面向对象程序设计方法,下列哪种描述是错误的?A.面向对象程序设计方法所设计出的类代码不能重用B.面向对象程序设计方法更便于代码分类管理C.面向对象程序设计方法中的类是客观事物抽象后的数据模型D.面向对象程序设计方法是当今程序设计的主流方法9、假设编写一个教务管理系统,通过分析可抽象出若干个类,其中不应当包括下列哪个类?A.宿舍类B.教师类C.课程类D.学生类正确答案:A10、如果将客观世界中的钟表抽象成一个钟表类,其中不应当包含下列哪个成员?A.设置时间B.显示时间C.功率D.时、分、秒正确答案:C11、下列关于字段成员的描述中,错误的是()。
《面向对象程序设计C--》期末试卷及标准答案集总解析
《面向对象程序设计C++》期末考试试卷(B)班级:姓名:学号:分数:试卷说明:本套试题共四个大题,全部题目都答在答题纸上,写在其他地方均无效。
(答题纸在本套试卷的第8页上)】一、单项选择题(每小题2分,共40分)1、关于C++与C语言关系的描述中,( D )是错误的。
A.C语言是C++语言的一个子集B.C语言与C++语言是兼容的C.C++语言对C语言进行了一些改进D.C++语言和C语言都是面向对象的2、已知:int m=10; 下列表示引用的方法中,(A )是正确的。
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='*');下面函数调用中,不合法的是( C )。
>A.testDefaulParam(5); B.testDefaulParam(5,8); C.testDefaulParam(5,'#'); D.testDefaulParam(0,0,'*');4、系统在调用重载函数时往往根据一些条件确定哪个重载函数被调用,在下列选项中,不能作为依据的是( A )。
A.函数的返回值类型B.参数的类型C.函数名称D.参数个数5、下列有关C++类的说法中,不正确的是( D )。
A.类是一种用户自定义的数据类型B.只有类中的成员函数或类的友元函数才能存取类中的私有成员C.在类中,如果不做特别说明,所有成员的访问权限均为私有的^D.在类中,如果不做特别说明,所有成员的访问权限均为公用的6、已知X类,则当程序执行到语句X array[3];时,调用了(D )次构造函数。
A.0 B.1 C.2 D.37、有关析构函数的说法,不正确的是( B )。
A.析构函数有且仅有一个B.析构函数和构造函数一样可以有形参C.析构函数的功能是在系统释放对象之前作一些内存清理工作D.析构函数无任何函数类型。
南开16秋学期《面向对象程序设计》在线作业
C. 有实参
D. 以上都不正确
正确答案:
5. 有如下类声明: class Sample { int x; }; 则Sample类成员x是Sample类的()。
A. 公有数据成员
B. 保护数据成员
C. 私有数据成员
D. 以上选项都不正确
正确答案: 该类的()。
A. void print(int); void print(double);
B. void fun(int); int fun(int);
C. int max(int,int); int min(int,int);
D. void mm(); int mm();
正确答案:
26. 下面叙述中错误的是()。
A. 错误
B. 正确
正确答案:
7. 抽象类不能定义对象,但可以声明抽象类的指针或引用。
A. 错误
B. 正确
正确答案:
8. 基类类型的指针可以指向其派生类对象。
A. 错误
B. 正确
正确答案:
9. 类中所提供的成员函数可以直接访问该类的私有成员。
A. 错误
B. 正确
正确答案:
D. 类B的成员即类A的成员
正确答案:
31. 下列运算符中,()在C++中不能重载。
A. ?:
B. +
C. -
D. <=
正确答案:
32. “#include <iostream>”是()预处理命令。
A. 宏定义
B. 文件包含
C. 条件编译
D. 工程配置
c++_面向对象程序设计考试试题1
考试试题纸(B 卷)《面向对象程序设计》课程计算机院(系)网络工程、计算机科学与技术班级考试时量 100分钟学生人数命题教师系主任交题时间:年月日考试时间:年月日1.一、简答题(每小题5分,共20分)1.什么是类?什么是对象?对象与类的关系是什么?2.构造函数和析构函数的主要作用是什么?他们各有什么特性?3.派生类构造函数和析构函数的执行顺序是怎样的?4.什么是虚函数?虚函数与函数重载有哪些相同点和不同点?2.二、选择题(每小题2分,共20分)1.假设已经有定义char *const pName=”Student”;下面的语句正确的是。
A.pName[3]=’t’; B. pName=”score”;C. pName=new char[5];D. pName=new char(‘p’);2.在下面有关对构造函数的描述中,正确的是。
A. 构造函数可以带有返回值B. 构造函数的名字与类名完全相同C. 构造函数必须带有参数4.构造函数必须定义,不能缺省3.在下面有关析构函数特征的描述中,错误的是。
A. 一个类中只能定义一个析构函数B. 析构函数名与类名完全相同C. 析构函数不能指定返回类型D. 析构函数不能带有参数4.假定AB为一个类,则执行“AB a(4) , b[3] , * p[2] ;”语句时,自动调用该类构造函数的次数为。
A. 3B. 4C. 6D. 95. 假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为。
A. AB operator+(AB &a,AB &b)B. AB operator+(AB &a)C. operator+(AB a)D. AB & operator+( )6. 假设定义了函数模版:template<class T>T max(T x, T y){ return (x>y)?x:y; }并定义了:int i;char c;那么下列错误的调用该模版的是。
面向对象程序设计试卷
面向对象程序设计试卷一、选择题(每题2分,共20分)1. 面向对象程序设计中的三大特征是:A. 封装、继承、多态B. 抽象、封装、继承C. 封装、继承、封装D. 继承、多态、封装2. 下列哪个不是面向对象程序设计的优点?A. 代码重用B. 易于维护C. 程序复杂度低D. 可扩展性好3. 在Java中,哪个关键字用于定义类?A. classB. structC. interfaceD. type4. 以下哪个是Java中不允许的类名?A. MyClassB. 2MyClassC. MyClass2D. MyClass_5. 在面向对象程序设计中,以下哪个概念不是用于实现封装?A. 私有成员B. 公有方法C. 访问控制D. 继承6. 下列哪个不是Java的访问控制修饰符?A. publicB. privateC. protectedD. global7. 以下哪个是Java中不允许的方法名?A. myMethodB. _myMethodC. my_methodD. myMethod_8. 在Java中,哪个关键字用于实现继承?A. extendsB. inheritC. deriveD. base9. 以下哪个不是Java的多态性实现方式?A. 接口B. 抽象类C. 重载D. 重写10. 在Java中,哪个关键字用于定义接口?A. interfaceB. protocolC. abstractD. type二、简答题(每题10分,共30分)1. 简述面向对象程序设计中封装的概念,并给出一个封装的简单示例。
2. 解释什么是多态性,并说明多态性在面向对象程序设计中的重要性。
3. 描述继承在面向对象程序设计中的作用,并举例说明如何使用继承来提高代码的复用性。
三、编程题(每题25分,共50分)1. 定义一个名为`Student`的类,包含以下属性:- 姓名(String类型)- 学号(String类型)- 年龄(int类型)并为该类实现以下方法:- 一个构造函数,用于初始化姓名、学号和年龄。
(完整版)面向对象分析与设计练习题含答案
(完整版)⾯向对象分析与设计练习题含答案⾯向对象分析与设计试题B卷⼀、单项选择题( 在每⼩题的四个备选答案中,选出⼀个正确答案,并将正确答案的序号填在题⼲的括号内。
每⼩题2 分,共20 分)/* 上个世纪80年代开始⾄今还盛⾏的以Smalltalk,C++等为代表的⾯向对象软件开发⽅法(00)*/1.到20世纪末,⾯向对象软件⼯程已经逐渐发展成熟,特别是(D)的形成和⼴泛使⽤,采⽤⾯向对象分析与编程的软件开发⽅法已成为软件开发的主流⽅法。
A. Simula67语⾔(20世纪70年代的Simula-67是第⼀个⾯向对象的语⾔)B. Smalltalk语⾔(80年代初的Smalltalk语⾔)C. Java语⾔(对流⾏的语⾔进⾏⾯向对象的扩充得到的语⾔或C++)D. 统⼀建模语⾔(UML)的标准2. ⾯向对象的运动产⽣了多种⾯向对象的语⾔, 其中(C)是⼀种混合性⾯向对象语⾔, 既⽀持⾯向过程的程序设计⽅法,⼜⽀持⾯向对象的程序设计⽅法,有⼴泛应⽤的基础和丰富开发环境的⽀持,因⽽使⾯向对象的程序设计能得到很快普及。
A. SmalltalkB. EiffelC. C++D. Java3.下列不属于⾯向对象技术的基本特征的是(B)。
A. 封装性B. 模块性C. 多态性D. 继承性4. ⾯向对象程序设计将描述事物的数据与( C ) 封装在⼀起,作为⼀个相互依存、不可分割的整体来处理。
A. 信息B. 数据隐藏C. 对数据的操作D. 数据抽象5. 关于⾯向对象⽅法的优点,下列不正确的叙述是(C)。
A. 与⼈类习惯的思维⽅法⽐较⼀致B. 可重⽤性好C. 以数据操作为中⼼D.可维护性好6.(D)是从⽤户使⽤系统的⾓度描述系统功能的图形表达⽅法。
A. 类图C. 序列图D. ⽤例图7. (C ) 是表达系统类及其相互联系的图⽰,它是⾯向对象设计的核⼼,建⽴状态图、协作图和其他图的基础。
A.对象图 B. 组件图 C. 类图 D. 配置图**8.(D)描述了⼀组交互对象间的动态协作关系,它表⽰完成某项⾏为的对象和这些对象之间传递消息的时间顺序。
《JAVA面向对象程序设计》练习题库B
D. Variant
【解析】A
5.在屏幕上显示的消息正确的语句是(选择一项)
A. System.out.println(“I am Java Expert”);
B. system.out.println(“I am Java Expert”);
C. System.Out.Println(“I am Java Expert”);
B.JPopupMenu
C.JMenu
D.JMenuBar
【解析】A
2.( )是对JMenu”文件”的有效声明。(选择二项)
A.JMenu mnufile = new JMenu(“文件”);
B
Mnufile.setText(“文件”);
C.JMenu mnufile = new JMenu(“文件”);
B.JPanel
C.JScrollPane
D.JTextArea
【解析】C
4.( )是用来生成文本框的Swing组件(选择一项)
A.JComponent
B.JTextField
C.Object
D.JTextArea
【解析】B
5.( )允许在任何时间点从一组选项中只选择一个选项。(选择一项)
A.JTextArea
Mnufile.setLabel(“文件”);
D.JMenu mnufile = new JMenu(“文件”);
Mnufile.setCaption(“文件”);
【解析】AB
3.以下菜单类中,( )是父类。(选择一项)
A.JCheckBoxMenuItem
B.JRadioButtonMenuItem
B.exists();
面向对象程序设计C++期末试卷2套(含答案)
面向对象程序设计C++ 第一套试卷一、选择题(共32分,每小题2分)1.按照C++标识符的规则,下面( B )是c++的标识符。
A.8_afrB.a_ideC.t-axyD._3?d2.C++中声明常量的关键字是( A )A.constB.externC.publicD.enum3.建立( C )的作用是为变量另起一个名字。
A.指针B.枚举C.引用D.结构4.在( D )情况下适宜采用内联函数。
A.函数体含有循环语句B.函数代码多,频繁调用C.函数体含有递归语句D. 函数代码少,频繁调用5.关于new运算符的下列描述中,错误的是( D )A.它可以用来动态创建对象和对象数组B.使用它创建的对象或对象数组可以使用运算符delete删除C.使用它创建对象时要调用构造函数D.使用它创建对象数组时必须指定初始值6.类成员的访问权限中,( C )只能被本类的成员函数和其友元函数访问。
A.shareB.publicC.privateD.protected7.在下面有关构造函数的描述中,正确的是( B )A.构造函数可以带有返回值B.构造函数名字与类名完全相同C.构造函数必须带参数D.构造函数必须定义,不能默认8.有如下类声明:class A{ private: int x;public: A(int n){ x=n;} };class B: public A{ private: int y;public: B(int a,int b); };在构造函数B的下列定义中,正确的是( C )。
A. B::B(int a,int b): x(a),y(b){ }B. B::B(int a,int b): x(a),B(b){ }C. B::B(int a,int b): A(a),y(b){ }D. B::B(int a,int b): A(a),B(b){ }9.设置虚基类的目的是( B )A.简化程序B.消除二义性C.提高运行效率D.减少目标代码10.当一个派生类私有继承一个基类时,基类中的所有公有成员和保护成员成为派生类的( C )A.public成员B. protected成员C.private成员D.友元11. 应在下列程序划线处填入的正确语句是( D )#include<iostream>using namespace std;class Base{ public: void fun(){cout<<"Base::fun"<<endl;}};class Derived:public Base{ public: void fun() {cout<<"Derived::fun"<<endl;}};void main(){ Derived obj;_____________ //调用基类的fun函数}A.obj.fun(); B. Base.fun(); C. Base->fun(); D. obj.Base::fun();12. 假定一个类的构造函数为B(int x,int y){a=x;b=a*y;},则执行B obj(3,5); 语句后,obj.a和obj.b的值分别为( C )A.3和5 B.5和3 C.3和15 D.20和513.模板的使用是为了( A )A.提高代码的可重用性B.提高代码的运行效率C.加强类的封装性D.实现多态性14.在下列选项中( A )不是ostream类的对象。
《面向对象程序设计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、关于常数据成员的说法,不正确的是()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
重庆大学《面向对象程序设计》课程试卷2016—2017学年第1学期开课学院:计算机课程号:CST21101考试日期:2017.1.4考试方式: 考试时间:120分钟SECTION 1: Short Answer Questions (40 points, 8 points each)1. Please describe the role of the “class”.2. Describe the key components of STL.3. What is pure virtual function?4. What is copy constructor?5. What is function object ?SECTION 2: Analyzing and Understanding Program (40 points, 10 points each)命题人:曾令秋、刘骥、杨广超组题人:葛亮审题人:邹东升命题时间:2016.12.20教务处制学院专业、班年级学号姓名考试教室公平竞争、诚实守信、严肃考纪、拒绝作弊封线密1. Please write the output result of the following program. #include <iostream>#include <functional>#include <numeric>using namespace std;int myFunction(int x, int y) {return x + 2 * y;}class MyObject {public:int operator()(int x, int y) {return x + 3 * y;}};int main() {int init = 100;int numbers[] = { 10, 20, 30 };cout << "using default accumulate: ";cout << accumulate(numbers, numbers + 3, init);cout << '\n';cout << "using functional's minus: ";cout << accumulate(numbers, numbers + 3, init, minus<int>());cout << '\n';cout << "using custom function: ";cout << accumulate(numbers, numbers + 3, init, myFunction);cout << '\n';cout << "using custom object: ";MyObject obj;cout << accumulate(numbers, numbers + 3, init, obj);cout << '\n';return 0;}2. Please write the output result of the following program. #include<iostream>using namespace std;class Sample{private:int x,y;public:Sample(){x=y=0;}Sample(int i,int j){ x=i; y=j;}void copy(Sample &s);void setxy(int i,int j){x=i;y=j;}void print(){cout<<"x="<<x<<",y="<<y<<endl;}};void Sample::copy(Sample &s){x=s.x;y=s.y;}void func(Sample s1,Sample &s2){s1.setxy(10,20);s2.setxy(30,40);}int main(){Sample p(1,2),q;q.copy(p);func(p,q);p.print();q.print();return 0;}3.Please write the output result of the following program. #include<iostream>using namespace std; class A{private:int a;public:A(int x): a(x){ cout << "A Constructor" << endl;}void Show() const { cout << "A::a=" << a << endl; }};class B: public A{private:int b;public:B(int x, int y): A(x), b(y){ cout << "B Constructor" << endl;}void Show() const { cout << "B::b=" << b << endl; }};class C: public A{private:int c;public:C(int x, int y): A(x), c(y){ cout << "C Constructor" << endl;}void Show() const { cout << "C::c=" << c << endl; }};int main(){B b(1, 6);C c(2, 8);A *p = &c;p->Show();return 0;}4.Please find out the errors in the following program and correct them. #include <iostream>using namespace std;class A{public:A( );A(A);A& operator = (const A& r);int operator[](int index);friend const A operator + (A& r1,A& r2);friend ostream &operator<<( ostream &, const A & ); private:int arr[10];};A::A(){for(int i=0;i<10;i++)arr[i]=i;}A::A(A array){for(int i=0;i<10;i++)arr[i]=array.arr[i];}A& A::operator = (const A& r){for(int i=0;i<10;i++)arr[i]=r.arr[i];return this;}const A operator+ (A& r1, A& r2){A re;for(int i=0;i<10;i++)re[i]=r1[i]+r2[i];return re;}int A::operator[](int index){return arr[index];}ostream &operator<<( ostream & output, const A & r){for(int i=0;i<10;i++)output<<r.arr[i]<<" ";return output;}int main( ){A a1,a2,a3;a3=a1+a2;a3[3]=7;cout<<a3;return 0;}SECTION 3: Write the program to solve the following problem.(20 points, 20 points each)Create an inheritance hierarchy that containing a base class Film and two derived classes Film2D and Film3D. The base class Film should include a data member of type string to represent the film name and a data member of type float to represent the film duration. You should design the constructor to initial the two data members. And there should be a pure virtual function named seeFilm.Derived class Film2D should inherit the functionality of the Film. But also include a data member of type int to represent the film hall(电影厅). You should implement the constructor and the virtual function seeFilm.Derived class Film3D should also inherit the functionality of the Film. and include an additional data member of type int to represent the film private room(电影包房). You also should implement the constructor and the virtual function seeFilm.In the main function, you should create a vector of Film pointers to Film2D and Film3D objects. For each Film in the vector, using member function seeFilm to show what film to see.Please write the code.。