2015年北方民族大学面向对象技术及程序设计复习题A(1)

合集下载

(完整word版)2014-2015面向对象程序设计试卷_共9页

(完整word版)2014-2015面向对象程序设计试卷_共9页

研究生院2014-2015学年《面向对象程序设计》考试试卷开卷一、填空(共15分,每空1分)1、编译时的多态性通过__重载__函数实现。

2、面向对象的四个基本特性是_抽象__、__多态性_、__继承性__和_封装性_。

3. 假定AB为一个类,则执行“AB a(2), b[4],*p[4];”语句时调用该类构造函数的次数为__5__。

4.要实现动态联编必须通过对象指针或引用来调用_虚函数_实现。

5.在函数前面用_ inline _保留字修饰时,则表示该函数表为内联函数。

6.如果将一个对象说明为常对象,则通过该对象只能调用它的__公有成员__函数。

7、非成员函数应声明为类的__友元___函数才能访问这个类的private成员。

8、在用class定义一个类时,数据成员和成员函数的默认访问权限是_ 私有____。

9、运算符重载函数可能是类的_友元_函数,也可以是类的_成员_函数,还可以是普通函数。

10、__转换构造函数__函数可以将一个指定的数据转换为类的对象,_类型转换函数_函数实现类的对象转换成其它类型的数据。

二、简答题(共25分,每小题5分)1、什么是类模板,类模板声明的一般形式是什么?答案:类模板是对一批仅仅成员数据类型不同的类的抽象,程序员只要为这一批类所组成的整个类家族创建一个类模板,给出一套程序代码,就可以用来生成多种具体的类,(这类可以看作是类模板的实例),从而大大提高编程的效率。

定义类模板的一般形式是:template <类型名参数名1,类型名参数名2,…>class 类名{类声明体};2、有哪几种继承方式?每种方式的派生类对基类成员的继承性如何?答案:继承方式包括:public、private、protected。

3、简述运算符重载的实现方式有哪几种?给出对应的声明语法形式。

答案:(1)类外定义的运算符重载函数格式为:friend <返回类型> operator <op>(<类型> 参数1,<类型> 参数2) { <函数体> }(2)成员运算符重载函数<返回类型> <类名>::operator <op> (<类型> 参数){ <函数体> }4、写出下面程序的输出结果#include<iostream.h>#include<string.h>class Person{}答案:第1次调用类型转换构造函数!第2次调用类型转换构造函数!调用复制构造函数!OldObjectOldObjectNewObject第1次调用析构函数!OldObject第2次调用析构函数!第3次调用析构函数!5. 写运行结果#include <iostream>using namespace std;class A{};答案:(A,B,C,D)= 31,2,3,4三、改错题(共20分,每小题4分)1. 以下程序可动态分配二维数组并释放内存,且可实现二维指针和一维指针复用,试问程序能否正常运行,如不能运行找出原因并改正之。

15秋北交《面向对象的程序设计》在线作业二满分答案

15秋北交《面向对象的程序设计》在线作业二满分答案

15秋北交《面向对象的程序设计》在线作业二满分答案一、单选题(共 23 道试题,共 57.5 分。

)1. 下列不合法的变量名为()A. intB. int1C. name_1D. name0正确答案:A2. 下面关于派生类的描述中,()是错的。

A. 一个派生类可以作为另一个派生类的基类B. 派生类至少有一个基类C. 派生类的成员除了它自己的成员外,还包含了它的基类的成员D. 派生类中继承的基类成员的访问权限到派生类保持不变正确答案:D3. 面向对象系统不具有()特性A. 继承性B. 封装性C. 过程性D. 多态性正确答案:C4. 有如下函数模板定义: template T func(T x, T y) { returnx*x+y*y; } 在下列对func的调用中,错误的是( )A. func(3, 5);B. func(3.0, 5.5);C. func (3, 5.5);D. func(3, 5.5);正确答案:C5. 以下保留字()不能出现在说明虚函数原型的语句中。

A. staticB. operatorC. voidD. const正确答案:A6. 下列关于类和对象的叙述中,错误的是( )A. 一个类只能有一个对象B. 对象是类的具体实例C. 类是对某一类对象的抽象D. 类和对象的关系是一种数据类型与变量的关系正确答案:A7. 下列不是C++流对象的是( )。

A. coutB. cinC. cerrD. ostream正确答案:D8. 下面有关重载函数的说法中正确的是()A. 重载函数必须具有不同的返回值类型B. 重载函数形参个数必须不同C. 重载函数必须有不同的形参列表D. 重载函数名可以不同正确答案:C9. 下面关于C++流的叙述中,正确的是( )A. cin是一个输入流对象B. 可以用ifstream定义一个输出流对象C. 执行语句序列char *y="QMN"; cout&lt;D. 执行语句序列char x[80]; cin.getline(x,80); 时,若键入 Happy new year 则x中的字符串是"Happy"正确答案:A10. 假定AB为一个类,则执行“AB a(4) , b[3] , * p[2] ;”语句时,自动调用该类构造函数的次数为()。

面向对象程序设计期末综合练习一(单选题)(精选五篇)

面向对象程序设计期末综合练习一(单选题)(精选五篇)

面向对象程序设计期末综合练习一(单选题)(精选五篇)第一篇:面向对象程序设计期末综合练习一(单选题)面向对象程序设计期末综合练习一(单选题)单选题1.C++源程序文件的缺省扩展名为(A)。

A.cppB.exeC.objD.lik 2.由C++源程序文件编译而成的目标文件的缺省扩展名为(C)。

A.cpp B.exe C.obj D.lik 3.由C++目标文件连接而成的可执行文件的缺省扩展名为(B)。

A.cpp B.exe C.obj D.lik 7.程序中主函数的名字为(A)。

A.mainB.MAINC.MainD.任意标识符 8.C++程序的基本模块为(D)。

A.表达式B.标识符C.语句D.函数9.可用作C++语言用户标识符的一组标识符是(B)。

A.void define +WORDB.a3_b3 _123 YNC.for-abc CaseD.2a DO sizeof 38.以下说法中正确的是(B)。

A.C++程序总是从第一个定义的函数开始执行B.C++程序总是从main函数开始执行C.C++函数必须有返回值,否则不能使用函数D.C++程序中有调用关系的所有函数必须放在同一个程序文件中39.以下叙述中不正确的是(C)。

A.在一个函数中,可以有多条return语句B.函数的定义不能嵌套,但函数的调用可以嵌套C.函数必须有返回值D.不同的函数中可以使用相同名字的变量40.函数重载是指(A)。

A.两个或两个以上的函数取相同的函数名,但形参的个数或类型不同B.两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同C.两个以上的函数名字不同,但形参的个数或类型相同D.两个以上的函数取相同的函数名,并且函数的返回类型相同 41.以下关于函数模板叙述正确的是(C)。

A.函数模板也是一个具体类型的函数B.函数模板的类型参数与函数的参数是同一个概念C.通过使用不同的类型参数,函数模板可以生成不同类型的函数D.用函数模板定义的函数没有类型42.下列(C)的调用方式是引用调用。

《面向对象程序设计C 》期末试卷(A)10-11

《面向对象程序设计C  》期末试卷(A)10-11

北京化工大学北方学院2010——2011学年第一学期《面向对象程序设计C++》期末考试试卷(A)班级:姓名:学号:分数:试卷说明:本套试题共四个大题,全部题目都答在答题纸上,写在其他地方无效。

(答题纸在本套试卷的第9页上)一、选择题(每小题2分,共40分)1、下列描述中,不属于面向对象思想主要特征的是()。

A. 封装性B. 多态性C. 继承性D. 跨平台2、若定义:string str; 当语句cin>>str; 执行时,从键盘输入:Microsoft Visual Studio 6.0!所得的结果是str=()。

A. Microsoft Visual Studio 6.0!B. MicrosoftC. Microsoft VisualD. Microsoft Visual Studio 6.03、考虑下面的函数原型声明:void test (int a,int b=7,char z='*');下面函数调用中,不合法的是()。

A. test (5);B. test (5,8);C. test (5,'#');D. test (0,0,'*');4、已知函数fun的原型为int fun(int, int, int);下列重载函数原型中错误的是()。

A. char fun(int, int);B. double fun(int, int, double);C. int fun(int, char*);D. float fun(int, int, int);5、下列表示引用的方法中,()是正确的。

已知:int a=1000;A. int &x=a;B. char &y;C. int &z=1000;D. float &t=&a;6、在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用()。

面向对象程序设计复习题(附参考答案)

面向对象程序设计复习题(附参考答案)

【题目】【题型:单选题】【难度:中】【考核能力:理解】【漏选得分:是】【自动判分:是】【应用类别:终考】【特殊标签:】机器语言中的指令编码为()编码。

[A.]二进制[B.1符号[c.1十进制[D.]数字【答案】A【知识点】01106.1.1.1【解析】无【题目】【题型:单选题】【难度:中】【考核能力:理解】【漏选得分:是】【自动判分:是】【应用类别:终考】【特殊标签:】JaVa语言的主要特点不包括()。

[A.]面向对象[B.]自动垃圾回收[CJ处理文件[D.]可移植性【答案】C【知识点】01106.1.1.1【解析】无【题目】【题型:单选题】【难度:中】【考核能力:理解】【漏选得分:是】【自动判分:是】【应用类别:终考】【特殊标签:】Java开发工具包简称为()。

[A.]JKD[B.]JRK[C.]JDK[D.]JRE【答案】C【知识点】01106.1.1.1【解析】无【题目】【题型:单选题】【难度:中】【考核能力:理解】【漏选得分:是】【自动判分:是】【应用类别:终考】【特殊标签:】具有相同属性和服务的一组对象的模板称为()。

1B.]类[c.1代码[D.]概念【答案】B【知识点】01106.1.1.1【解析】无【题目】【题型:单选题】【难度:中】【考核能力:理解】【漏选得分:是】【自动判分:是】【应用类别:终考】【特殊标签:】类是对具有共同属性和行为的对象的抽象描述,每个对象称为该类的一个()。

[A.]产品[B.1元素[c1成分[D.]实例【答案】D【知识点】01106.1.1.1【解析】无【题目】【题型:单选题】【难度:中】【考核能力:理解】【漏选得分:是】【自动判分:是】【应用类别:终考】【特殊标签:】Java是一门()语言。

[A.]机器[B.]汇编[C.)面向过程的高级[D.]面向对象的高级【答案】D【知识点】01106.1.1.1【解析】无【题目】【题型:单选题】【难度:中】【考核能力:理解】【漏选得分:是】【自动判分:是】【应用类别:终考】【特殊标签:】使用JDK编译JaVa程序时使用的命令是()。

15年14本《MS面向对象应用技术》期末考试复习提纲 (1) 2

15年14本《MS面向对象应用技术》期末考试复习提纲 (1) 2

2015~2016学年度第一学期14本《MS面向对象应用技术》期末考试复习提纲一、单项选择题1、键盘事件有哪些?KeyPress KeyUp KeyDown2、数据提供程序的核心对象是什么?数据库3、一个WPF程序会生成哪4个文件?其中包括四个重要的文件,有关它们的说明分别为:文件名称说明App.xamlApplication的设置,通过此文件可以设置应用程序的起始文件和资源App.xaml.cs这个是App.xaml的后台文件,继承System.Windows.Application,用于描述WPF应用程序Window1.xaml 一个WPF窗体的XMAL设计文件。

Window1.xaml.csWindow1.xaml的后台文件,继承自System.Windows.Window,是WPF窗口的实现类4、树视图控件TreeView中,节点左边的加、减号有什么含义?可扩展或缩合其下属子节点5、一般来说,可视化界面中菜单控件提供的是一组什么?一组相关的命令6、中Command对象的方法有哪些?ExecuteNonQuery 返回受SQL语句影响的行数ExecuteReader 使用该方法检索数据,返回DataReader对象ExecuteScalar 返回单个值,如第一行的第一列7、在文件中数据的层次都分成哪些?位→字节(ASCII字符)→域→记录→文件8、图形框的SizeMode属性有哪些枚举值?Normal(正常)、StretchImage(拉伸)、Autosize(自动调整尺寸)、CenterImage(居中排图像)或Zoom(变焦)等9、国际标准化数据库查询语言是什么?写出它的英文全称。

结构化查询语言 Structured Query Language10、提供了哪两个关键组件用来访问和处理数据?NET Framework数据提供程序和数据集(DataSet)11、创建于数据库的连接有哪几个步骤?(1)定义连接字符串:该串包括要连接的数据库提供者的名称、登录信息、要使用的数据库名称。

面向对象程序设计-试卷-A(附答案)

面向对象程序设计-试卷-A(附答案)

面向对象程序设计-试卷-A(附答案)本页仅作为文档页封面,使用时可以删除This document is for reference only-rar21year.March2012 --2013学年第二学期《面向对象程序设计》试卷开课单位:计算机学院,考试形式:闭卷,允许带入场对应的答题表格中)1、在类定义的外部,可以被访问的成员有()A、所有类成员B、private的类成员C、public或private的类成员D、public的类成员2、下列关于C++语言类的描述中错误的是( ) 。

A 、类用于描述事物的属性和对事物的操作B、类与类之间通过封装而具有明确的独立性C、类与类之间必须是平等的关系,而不能组成层次结构D、类与类之间可以通过一些方法进行通信和联络3、下列数组定义中,不正确的是()。

A、 int x[1][3];B、 int x[2][2]={1,2,3};C、 int x[2][]={1,2,3,4 };D、 int x[][2]={1,2,3,4 }4、定义析构函数时,应该注意:()A、其名与类名完全相同B、返回类型是void类型C、无形参,也不可重载D、函数体中必须有delete语句5、下列函数中,正确的递归函数是()。

A 、int Fun(int n){ if(n<1) return 1; else return n*Fun(n+1); }B 、int Fun(int n){ if (abs(n)<1) return 1; else return n*Fun(n/2); }C 、int Fun(int n){ if(n>1) return 1; else return n*Fun(n*2); }D、 int Fun(int n){ if(n>1) return 1; else return n*Fun(n-1); }6、在C++中编译器所生成的文件的扩展名为()[答案修改过]A、 .cppB、 .objC、 .libD、 .exe7、派生类的对象对它的基类成员中的()是可以访问A、公有继承的公有成员B、公有继承的私有成员C、公有继承的保护成员D、私有继承的公有成员8. C++设置虚基类的目的是( )A、消除二义性B、简化程序C、提高运行效率D、减少目标代码9. 以下关于this指针的叙述中正确的是:()A、任何与类相关的函数都有this指针;B、类的成员函数都有this指针;C、类的友员函数都有this指针;D、类的非静态成员函数才有this指针;10实现运行时的多态性采用( )A、重载函数B、构造函数C、析构函数D、虚函数11、若有int a[10]={0,1,2,3,4,5,6,7,8,9},*p=&a[5];则( ) 不是对a数组元素的正确引用(其中0≤i<10)A、p[i]B、 *(*(p+i) )C、a[p-a]D、* (&a[i])12、int Func(int,int);不可与下列哪个函数构成重载()A、int Func(int,int,int);B、double Func(int,int);C、double Func(double,double);D、double Func(int,double);13、局部变量可以隐藏全局变量,那么在有同名全局变量和局部变量的情形时,可以用()提供对全局变量的访问。

15春北交《面向对象的程序设计》在线作业一答案辅导资料

15春北交《面向对象的程序设计》在线作业一答案辅导资料

15春北交《面向对象的程序设计》在线作业一答案辅导资料一、单选题(共23 道试题,共57.5 分。

)V 1. 模板是实现类属机制的一种工具,它的功能非常强大,它是元约束类属机制和约束类属机制的集合,允许用户构造类属函数的是()。

A. 类模板B. 模板类C. 函数模板D. 模板函数满分:2.5 分2. 有如下类声明:class MyBASE{ int k; public: void set(int n){ k=n;} int get( )const{ return k; } }; class MyDERIVED: protected MyBASE{ protected: int j; public: void set(int m, int n){MyBASE::set(m); j=n;} int get( )const{ return MyBASE::get( )+j; } }; 则类MyDERIVEA. 4B. 3C. 2D. 1满分:2.5 分3. 关于new运算符的描述中错误的是()。

A. 用它创建对象和堆对象数组B. 用它创建对象和堆对象数组时要调用相应的构造函数C. 用它创建对象和堆对象数组时可用运算符delete释放D. 用它创建堆对象数组时可指定初始值满分:2.5 分4. 执行语句序列int i=0; while(i >< 25) i+=3; cout< 输出结果是/( )A. 24B. 25C. 27D. 28满分:2.5 分5. 以下保留字()不能出现在说明虚函数原型的语句中。

A. staticB. operatorC. voidD. const满分:2.5 分6. 下面的哪个保留字不能作为函数的返回类型?()A. voidB. intC. newD. long满分:2.5 分7. 关于getline()函数的下列描述中,错误的是()。

A. 该函数中所使用的终止符只能是换行符B. 该函数读取字符串时,遇到终止符时便停止C. 该函数读取的字符串长度是受限制的D. 该函数可以用来从键盘上读取字符串满分:2.5 分8. 关于虚函数的描述中,正确的是()A. 虚函数是一个static类型的成员函数B. 虚函数是一个非成员函数C. 基类中说明了虚函数后,派生类中将其对应的函数可不必说明为虚函数D. 派生类的虚函数与基类的虚函数具有不同的参数个数和类型满分:2.5 分9. 对于语句cin>>x;中各个组成部分,下列叙述中错误的是()。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2015年北方民族大学面向对象技术及程序设计复习题(A)
一、选择题(2分/题)
1. 编写C++程序一般需经过的几个步骤依次是(B)
A. 编辑、调试、编译、连接
B. 编辑、编译、连接、运行
C. 编译、调试、编辑、连接
D. 编译、编辑、连接、运行
2. 决定C++语言中函数的返回值类型的是(D )
A. return语句中的表达式类型
B. 调用该函数时系统随机产生的类型
C. 调用该函数时的主调用函数类型
D. 在定义该函数时所指定的数据类型
3. 对基类和派生类的关系描述中,错误的是(B)
A. 派生类是基类的具体化
B. 基类继承了派生类的属性
C. 派生类是基类定义的延续
D. 派生类是基类的特殊化
4.所谓多态性是指(B)
A. 不同的对象调用不同名称的函数
B. 不同的对象调用相同名称的函数
C. 一个对象调用不同名称的函数
D.一个对象调用不同名称的对象
5. 假设ClassY:publicX,即类Y是类X的派生类,则说明构造一个Y类的对象时和删除Y类对象时,调用构造函数和析构函数的次序分别为(A)
A. X,Y;Y,X
B. X,Y;X,Y
C. Y,X;X,Y
D. Y,X;Y,X
6. 适宜采用inline定义函数情况是(C)
A. 函数体含有循环语句
B. 函数体含有递归语句
C. 函数代码少、频繁调用
D. 函数代码多、不常调用
7. 假定一个类的构造函数为A(int aa,int bb) {a=aa--;b=a*bb;},则执行A (4,5);语句后,x.a和x.b的值分别为(C )
A. 3和15
B. 5和4
C. 4和20
D. 20和5
8. 下列程序的输出结果是(B )
#include <iostream.h>
void main()
{
int n[][3]={10,20,30,40,50,60};
int (*p)[3];
p=n;
cout<<p[0][0]<<","<<*(p[0]+1)<<","<<(*p)[2]<<endl;}
A. 10,30,50
B. 10,20,30
C. 20,40,60
D. 10,30,60
9. 假定AB为一个类,则执行“AB a(2), b[3],*p[4];”语句时调用该类构造函数的次数为(A)
A. 4
B. 3
C. 5
D. 9
10. 在int a=3,int *p=&a;中,*p的值是(D )
A. 变量a的地址值
B. 无意义
C. 变量p的地址值
D. 3
二、填空题(2分/题)
11. 假设int a=1,b=2;则表达式(++a/b)*b--的值为_____2_______
12. 下面程序的输出结果为_____5______。

#include <iostream.h>
void main()
{
int num=2,i=6;
do
{
i--;
num++;
}while(--i);
cout<<num<<endl;
}
13. 静态成员函数、友元函数、构造函数和析构函数中,不属于成员函数的是___友元函数________。

14. C++语言中如果调用函数时,需要改变实参或者返回多个值,应该采取____传递地址或引用_______方式。

三、简答题
15 .(6分)全局变量和局部变量有什么区别?是怎么实现的?操作系统和编译器是怎么知道的?
生命周期不同:全局变量随主程序创建而创建,随主程序销毁而销毁;局部变量在局部函数内部,甚至局部循环体等内部存在,退出就不存在;
使用方式不同:通过声明后全局变量程序的各个部分都可以用到;局部变量只能在局部使用;分配在栈区。

操作系统和编译器通过内存分配的位置来知道的,全局变量分配在全局数据段并且在程序开始运行的时候被加载。

局部变量则分配在堆栈里面。

16.(6分)引用与指针有什么区别?
1 指针是一个实体,而引用仅是个别名;
2 引用使用时无需解引用(*),指针需要解引用;
3 引用只能在定义时被初始化一次,之后不可变;指针可变;引用“从一而终”
4 引用没有const,指针有const,const的指针不可变;
5引用不能为空,指针可以为空;
6 sizeof引用得到的是指向的变量(对象)的大小,而sizeof指针得到的是指针本身(所指向的变量或对象的地址)的大小;
7 指针和引用的自增运算意义不一样;
17.(6分)解释多态,虚函数,纯虚函数?
18.(6分)C++有哪些性质(面向对象特点)
19.(8分)Struct 和class 的区别。


20. (1)(6分)下面的代码有什么问题?
void DoSomeThing(…)
{
char* p;

p = malloc(1024); // 分配1K 的空间
if (NULL == p)
return;

p = realloc(p, 2048); // 空间不够,重新分配到2K if (NULL == p)
return;

}
(2) (8分)写出运行结果:
char str[] = ”world”;
cout << sizeof(str) << ”: ”;
char *p = str;
cout << sizeof(p) << ”: ”;
char i= 10;
cout << sizeof(i) << ”: ”;
void *pp= malloc(10);
cout << sizeof(p) << endl;
}
四、程序设计题
21.(12分)已知交通工具类定义如下。

要求:(1)实现这个类;(2)定义并实现一个小车类car,是它的公有派生类,小车本身的私有属性有载人数,小车的函数有init(设置车轮数,重量和载人数),getpassenger(获取载人数 ),print(打印车轮数,重量和载人数)。

class vehicle
{
protected:
int wheels;//车轮数
float weight;//重量
public:
void init(int wheels,float weight);
int get_wheels();
float get_weight();
void print();
};
void vehicle::init(int wheels,float weight)
this->wheels=wheels;
this->weight=weight;
cout<<wheels<<endl;
}
int vehicle::get_wheels()
{
return wheels;
}
float vehicle::get_weight()
{
return weight;
}
void vehicle::print()
{
cout<<"车轮数:"<<wheels<<","<<"重量:"<<weight<<endl;
}
22.(14分)建立一个对象数组,内放5个学生的数据(学号、成绩),设立一个函数max,用指向对象的指针作函数参数,在max函数中找出5个学生中成绩最高者,并输出其学号。

初值自拟。

相关文档
最新文档