面向对象程序设计及C++ 期末试卷B

合集下载

c面向对象程序设计期末考试题及答案

c面向对象程序设计期末考试题及答案

c面向对象程序设计期末考试题及答案一、选择题(每题2分,共20分)1. 下列哪个是面向对象程序设计的特点?A. 封装B. 继承C. 多态D. 所有选项都是2. 在Java中,以下哪个关键字用于定义类?A. classB. structC. typeD. classdef3. 以下哪个是Java中不允许的类成员访问修饰符?A. publicB. protectedC. privateD. global4. 以下哪个是Java中实现多态的方式?A. 函数重载B. 函数重写C. 接口D. 抽象类5. 在Java中,哪个关键字用于声明一个方法,该方法没有返回值?A. voidB. returnC. noneD. null6. 以下哪个是Java中创建对象的语法?A. new ClassName();B. create ClassName;C. make ClassName;D. ClassName();7. 在Java中,以下哪个是正确的构造方法声明?A. public ClassName();B. public ClassName new();C. public new ClassName();D. public ClassName create();8. 以下哪个是Java中实现继承的方式?A. 使用extends关键字B. 使用implements关键字C. 使用interface关键字D. 使用new关键字9. 在Java中,以下哪个关键字用于实现接口?A. implementsB. extendsC. interfaceD. class10. 以下哪个是Java中实现封装的方式?A. 使用public关键字B. 使用private关键字C. 使用protected关键字D. 使用default关键字答案:1. D2. A3. D4. B5. A6. A7. A8. A9. A10. B二、简答题(每题10分,共20分)1. 简述面向对象程序设计中的“封装”概念及其重要性。

《面向对象程序设计C 》期末考试试卷

《面向对象程序设计C  》期末考试试卷

《面向对象程序设计C++》期末考试试卷一、选择题(每小题3分,共48分。

)01、下列关于C++函数的叙述中,正确的是( C )。

A)每个函数至少要具有一个参数 B)每个函数都必须返回一个值C)函数在被调用之前必须先声明 D)函数不能自己调用自己02、下列关于类和对象的叙述中,错误的是( A )。

A)一个类只能有一个对象 B)对象是类的具体实例C)类是对某一类对象的抽象 D)类和对象的关系是一种数据类型与变量的关系03、在C++中,用于实现运行时多态性的是( D )。

A)内联函数 B)重载函数 C)模板函数D)虚函数04、下列关于运算符重载的叙述中,正确的是( B )。

A)通过运算符重载,可以定义新的运算符 B)有的运算符只能作为成员函数重载C)若重载运算符+,则相应的运算符函数名是+ D)重载二元运算符时,必须声明两个形参05、对于语句 cout<<x<<endl;错误的是描述是( D )。

A)“cout”是一个输出流对象B)“endl”的作用是输出回车换行C)“x”是一个变量D)“<<”称作提取运算符06、有如下类声明,则类MyDERIVED中保护的数据成员和成员函数的个数是( )。

class MyBASE{ private: 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; } };A)4 B)3 C)2 D)107、已知在一个类体中包含如下函数原型: Volume operator-(Volume)const;,下列关于这个函数的叙述中,错误的是( )。

《面向对象程序设计C 》期末试卷及标准答案

《面向对象程序设计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、类定义的内容允许被其对象无限制地存取的就是( )。

(完整word版)《面向对象程序设计C 》期末试卷及标准答案(B)

(完整word版)《面向对象程序设计C  》期末试卷及标准答案(B)

《面向对象程序设计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.析构函数无任何函数类型8、类定义的内容允许被其对象无限制地存取的是( C )。

面向对象程序设计C#.NET-期末试卷及答案

面向对象程序设计C#.NET-期末试卷及答案

期末考试试卷课程名称:面向对象程序设计C#.NET 适用年级/专业: 081/计算机试卷类别开卷(√)闭卷()学历层次本科考试用时 120分钟《考生注意:答案要全部抄到答题纸上,做在试卷上不给分》...........................///////////////////////////////////////////////////一、单项选择题(每小题1分,共20分)1. C#不支持的注释格式是。

A. //单行注释B. -- 单行注释C. /*多行注释*/ D. ///xml注释2. 以下标识符中,正确的是。

A. _nNameB. MainC. 6PtuerD. x5#3. Microsoft .Net Framework SDK内置的C#编译器是。

A.cs.exe B.javac.exe C. csc.exe D. scs.exe4. 以下说法中,正确的是。

A.Main函数是由C#语言提供的标准函数,不需要用户编写它的内容。

B.在C#程序中,要调用的函数必须在Main函数中定义。

C.在C#程序中,必须显式调用Main函数,它才起作用。

D.一个C#程序无论包含多少个函数,C#程序总是从Main函数开始执行。

5.派生类能够直接访问的基类的成员是。

A.抽象成员 B.保护成员C.私有成员D.静态成员6.下面是几条定义类的语句,不能被继承的类是。

A.abstract class Figure B.class FigureC.public class Figure D.sealed class Figure 7.下列数组初始化语句哪些是不正确的?。

A.int[] nums = new int[]{0,1,2,3,4};B.int[] nums2 = {0,1,2,3,4,5};C.int[][] num_1 = {new int[]{0,1},new int[]{0,1,2},newint[]{0,1,2,3}};D.int[][] num_2 = {{0,1},{0,1,2},{0,1,2,3}};8. 下面有关虚方法的描述正确的是。

《面向对象程序设计C 》期末试卷及答案

《面向对象程序设计C  》期末试卷及答案

选择题1.在C++中,函数原型不能标识( D )A.函数的返回类型B.函数参数的个数C.函数参数类型D.函数的功能2.在C++程序中,对象之间的相互通信通过( B )A.继承实现B.调用成员函数实现C.封装实现D.函数重载实现3.对于任意一个类,析构函数的个数最多为( B )A.0B.1C.2D.34.友元关系不能( A )A.继承B.是类与类的关系C.是一个类的成员函数与另一个类的关系D.提高程序的运行效率5.语句ofstream f(″SALARY.DAT″,ios::app|ios::binary);的功能是建立流对象f,试图打开文件SALARY.DAT 并与之连接,并且( A )A.若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件B.若文件存在,将其置为空文件;若文件不存在,打开失败C.若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件D.若文件存在,打开失败;若文件不存在,建立一个新文件6.下面说法正确的是( B )A.内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方B.内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方C.类的内联函数必须在类体内定义D.类的内联函数必须在类体外通过加关键字inline 定义7.可以用p.a 的形式访问派生类对象p 的基类成员a,其中a 是( D )A.私有继承的公有成员B.公有继承的私有成员C.公有继承的保护成员D.公有继承的公有成员8.在公有派生情况下,有关派生类对象和基类对象的关系,不正确的叙述是( C )A.派生类的对象可以赋给基类的对象B.派生类的对象可以初始化基类的引用C.派生类的对象可以直接访问基类中的成员D.派生类的对象的地址可以赋给指向基类的指针9. 派生类对象可访问基类中的什么成员( A )A.公有继承的公有成员B.公有继承的私有成员C.公有继承的保护成员D.私有继承的公有成员10. 定义析构函数时,应该注意(C)A.其名与类名完全相同B.返回类型是void类型C.无形参,也不可重载D.函数体中必须有delete语句11. 如果类A被说明成类B的友元,则( D )。

《面向对象程序设计C》期末考试试卷

《面向对象程序设计C》期末考试试卷

《面向对象程序设计 C++》期末考试一试卷一、选择题 ( 每题 3 分,共 48 分。

) 01、以下对于 C++函数的表达中,正确的选项是 ( ) 。

A)每个函数起码要拥有一个参数 B) 每个函数都一定返回一个值 C)函数在被调用以前一定先申明 D) 函数不可以自制调用自己 02、以下对于类和对象的表达中,错误的选项是 ( ) 。

A)一个类只好有一个对象 B) 对象是类的详细实例 C)类是对某一类对象的抽象 D)类和对象的关系是一种数据种类与变量的关系 03、在 C++中,用于实现运转时多态性的是 ( ) 。

A)内联函数 B) 重载函数 C) 模板函数 D) 虚函数 04、以下对于运算符重载的表达中,正确的选项是 ( ) 。

A)经过运算符重载,能够定义新的运算符 B)有的运算符只好作为成员函数重载 C)若重载运算符 +,则相应的运算符函数名是 + D) 重载二元运算符时,一定申明两个形参 05、对于语句 cout<<x<<endl 。

错误的选项是描绘是 ( ) 。

A)“cout ”是一个输出流对象 B)“endl ”的作用是输出回车换行 C)“x ”是一个变量 D)“<<”称作提取运算符 06、有以下类申明,则类 MyDERIVED 中保护的数据成员和成员函数的个数是 ( ) 。

class MyBASE { private: 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) int get( )const{ return MyBASE::get( )+j 。

《面向对象程序设计C++》期末试卷(B)标准答案

《面向对象程序设计C++》期末试卷(B)标准答案

《面向对象程序设计C++》期末考试试卷(B)标准答案班级:姓名:学号:分数:一、单项选择题(每小题2分,共40分)1-5.D A C A D6-10.D B C D C11-15.D C B D B16-20.A D C C C二、填空题(前16个空,每空1分,后2个空,每空2分,共20分)1.抽象、实例2.public 、private _ ___、protected 、private _ ___ 3.virtual ___ 4.friend void fun(A &a) _ 5.静态数据成员、静态成员函数6.结合性、优先级_ ___ 7.Template 、 class(或typename) 8.类、结构体___ 9.在创建对象时初始化对象的数据成员___ 10. A operator++(int)___三、阅读程序(共13分)1、a=89,b=56,c=122、12/31/200912/31/20091/1/20101/1/20103、constructing Aconstructing Bconstructing Cdestructing Cdestructing Bdestructing A四、编程题(共27分)1、(10分)Complex::Complex(){real=0;imag=0;}Complex::Complex(double r){real=r;}Complex::Complex(double r,double i){real=r;imag=i;} Complex operator+(Complex &c1,Complex &c2){ Complex c;c.real=c1.real+c2.real; c.imag=c1.imag+c2.imag;return c;}ostream& operator << (ostream& output,Complex& c){ output<<"("<<c.real<<"+"<<c.imag<<"i)"<<endl;return output;}istream& operator >> (istream& input,Complex& c){ cout<<"input real and imaginary part of complex number:";input>>c.real>>c.imag;return input;}2、(17分)class Circle:public Shape{public:Circle(double r){radius=r;}void set(){ cout<<"Please input the value of the circle:"<<endl;cin>>radius;}void show(){ cout<<"the radius of the circle="<<radius<<endl; }double area() {return 3.14159*radius*radius;} private:double radius;};class Square:public Shape{public:Square(double a){this->a=a;}void set(){ cout<<"Please input the value of a:"<<endl;cin>>a;}void show(){ cout<<"a="<<a<<endl; }double area(){return a*a;}private:double a;};int main(){Circle C(5.5);C.show();Square S(9.9);S.show();Shape *s[]={&C,&S};cout<<"total="<<total(s,2)<<endl;return 0;}。

《面向对象程序设计C--》期末试卷及标准答案集总解析

《面向对象程序设计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.析构函数无任何函数类型。

《面向对象程序设计C++》期末试卷及标准答案

《面向对象程序设计C++》期末试卷及标准答案

《面向对象程序设计C++》期末考试试卷(A)班级::学号:分数:试卷说明:本套试题共四个大题,全部题目都答在答题纸上,写在其他地方均无效。

(答题纸在本套试卷的第10页上)一、选择题(每小题2分,共40分)1、C++是()。

A. 面向对象的程序设计语言B. 面向过程的程序设计语言C. 既支持面向对象的程序设计又支持面向过程的程序设计的混合型语言D. 非结构化的程序设计语言2、面向对象程序设计思想的主要特征中不包括()。

A. 封装性B. 多态性C. 继承性D. 功能分解,逐步求精3、若定义:string str; 当语句cin>>str; 执行时,从键盘输入:Microsoft Visual Studio 6.0!所得的结果是str=()。

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

A. testDefaulParam(5);B. testDefaulParam(5,8);C. testDefaulParam(5,'#');D. testDefaulParam(0,0,'*');5、下列语句中,将函数int sum(int x, int y)正确重载的是()。

A. float sum(int x, int y);B. int sum(int a, int b);C. float sum(float x, float y);D. double sum(int y, int x);6、下列表示引用的方法中,()是正确的。

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

《面向对象的程序设计》期末试卷(B)答案

《面向对象的程序设计》期末试卷(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_。

《面向对象程序设计C--》期末试卷及答案

《面向对象程序设计C--》期末试卷及答案

一、选择填空题(共20小题,每小题2分,共40分)。

1. 关于C++与C语言关系的描述中,(d)是错误的。

a.C语言是C++语言的一个子集b.C语言与C++语言是兼容的c.C++语言对C语言进行了一些改进d.C++语言和C语言都是面向对象的2.按照标识符的要求,(a )符号不能组成标识符。

a.连接符b.下划线c.大小写字母d.数字字符3. 为了避免嵌套的if-else语句的二义性,C语言规定else总是与(c)组成配对关系。

a.缩排位置相同的ifb.在其之前未配对的ifc.在其之前未配对的最近的ifd.同一行上的if4. 在"int a[ ][3]={{1},{3,2},{4,5,6},{0}};"中,a[2][2]的值是(c)。

a.1b.0c.6d.25. 设"char **s;",以下正确的表达式是(b)。

a.s="computer";b.*s="computer";c.**s="computer";d.*s='c';6. 对于"int *pa[5];"的描述中,(d )是正确的。

a.pa是一个指向数组的指针,所指向的数组是5个int型元素b.pa是一个指向某数组中第5个元素的指针,该元素是int型变量c.pa [5]表示某个元素的第5个元素的值d.pa是一个具有5个元素的指针数组,每个元素是一个int型指针7. 在下列表示引用的方法中,(a )是正确的。

已知:int m=10;a.int &x=m;b.int &y=10;c.int &z;d.float &t=&m;8. 下列for循环的次数为(b)。

for(i=0, x=0; !x&&i<=5; i++)a.5b.6c.1d.无限9. 对于C/C++语言的函数,下列叙述中正确的是(a)。

《面向对象程序设计C》期末考试试卷

《面向对象程序设计C》期末考试试卷

《面向对象程序设计C》期末考试试卷面向对象程序设计C一、填空题(每题5分,共30分)1、C语言是一种面向对象的编程语言,它是由 ________ 公司在1983年推出的。

2、C++是在C语言的基础上发展而来的,它增加了________和________两种核心机制。

3、在C++中,类的成员包括________、和。

4、在C++中,构造函数是一种特殊的成员函数,它用于初始化________。

5、在C++中,析构函数也是一种特殊的成员函数,它用于________。

6、在C++中,________是一种用于封装数据和方法的机制。

二、选择题(每题3分,共36分)1、下列哪个选项不是面向对象编程语言的特征?() A. 封装 B. 继承 C. 多态 D. 过程化2、下列哪个关键字在C++中用来实现封装?() A. private B. protected C. public D. default3、下列哪个选项不是类的成员?() A. 变量 B. 函数 C. 枚举 D. 结构体4、下列哪个选项不是构造函数的作用?() A. 初始化对象 B. 调用其他构造函数 C. 返回对象值 D. 给对象赋值5、下列哪个选项不是析构函数的作用?() A. 清理资源 B. 释放对象 C. 返回对象值 D. 断开与对象的关联6、下列哪个关键字在C++中用来实现继承?() A. extends B. inherits C. override D. derived7、下列哪个选项不是多态的实现方式?() A. 函数重载 B. 运算符重载 C. 虚函数 D. 构造函数重载8、下列哪个选项不是C++11引入的新特性?() A. 智能指针 B. Lambda表达式 C. 右值引用 D. switch语法的改进三、程序设计题(每题20分,共40分)1、请设计一个类表示一个矩形,包含长、宽两个属性以及计算面积和周长的方法。

要求:类的私有成员包括长和宽两个double类型的变量,公有成员包括一个构造函数(初始化长和宽)和两个方法(计算面积和周长)。

c面向对象程序设计期末考试题及完整参考答案

c面向对象程序设计期末考试题及完整参考答案
}
public abstract void Speak();
}
public class Truck:Vehicle
private float weight;
public float Weight
{
get { retur n weight; }
}
private float load;
public float Load
{
return (1+load/Weight/2) * base.Ru n(dista nee);
}
public override voload; }
}
public Truck(i nt weight, i nt load)
:base(50)
{
this.weight = weight; this .load = load;
}
public new float Run( float dista nee) //重载
A)方法中只允许定义一个数组型参数;
B)数组型参数所定义的数组必须是一维数组;
C)数组型参数可以作为引用参数或者输出型参数使用;
D)数组型参数必须位于参数列表中的最后;
4.有如下程序片段:
class Stude nt
{
public virtual stri ng WhoYouAre(){
return "I am a Stude nt."; }
public float R
{
get { retur n _r; }
set { _r = value; }
} _
public con st double PI= 3.1415;/定一个双精度常量表示圆周率

(完整word版)《面向对象程序设计C》期末考试试卷

(完整word版)《面向对象程序设计C》期末考试试卷

《面向对象程序设计C++》期末考试试卷一、选择题(每小题3分,共48分.)01、下列关于C++函数的叙述中,正确的是( C )。

A)每个函数至少要具有一个参数B)每个函数都必须返回一个值C)函数在被调用之前必须先声明D)函数不能自己调用自己02、下列关于类和对象的叙述中,错误的是( A )。

A)一个类只能有一个对象B)对象是类的具体实例C)类是对某一类对象的抽象D)类和对象的关系是一种数据类型与变量的关系03、在C++中,用于实现运行时多态性的是( D )。

A)内联函数B)重载函数C)模板函数D)虚函数04、下列关于运算符重载的叙述中,正确的是( B ).A)通过运算符重载,可以定义新的运算符B)有的运算符只能作为成员函数重载C)若重载运算符+,则相应的运算符函数名是+ D)重载二元运算符时,必须声明两个形参05、对于语句cout〈〈x<<endl;错误的是描述是( D ).A)“cout”是一个输出流对象B)“endl”的作用是输出回车换行C)“x”是一个变量D)“〈<”称作提取运算符06、有如下类声明,则类MyDERIVED中保护的数据成员和成员函数的个数是()。

class MyBASE{ private: 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;} };A)4 B)3 C)2 D)107、已知在一个类体中包含如下函数原型:Volume operator-(Volume)const;,下列关于这个函数的叙述中,错误的是( )。

面向对象程序设计C++期末试卷2套(含答案)

面向对象程序设计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)

《面向对象程序设计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、关于常数据成员的说法,不正确的是()。

面向对象程序设计基础期末考试试卷b卷

面向对象程序设计基础期末考试试卷b卷

I 选择题(共10小题,每小题2分,共20分)(1)以下哪个符号(或组合)是作用域限定符()A)-> B). C):: D)[](2)以下程序对一维坐标点类Point进行运算符重载,输出结果是()#include <iostream>using namespace std;class Point {public:Point (int val) { x = val; }Point operator ++() { x++; return *this; }Point operator ++(int) { Point old = *this; ++(*this); return old; }Point operator +(Point a) { x += a.x; return *this; }int GetX() const { return x; }private:int x;};int main(){Point a(10);cout << (++a).GetX();cout << a++.GetX();}A)1111 B)1011 C)1112 D)1010(3)下面程序的输出结果是()#include <iostream>using namespace std;int countp=0;class Point{int X,Y;public:Point(int x=0,int y=0) { X=x; Y=y;}Point(Point &p){X=p.X;Y=p.Y;countp++;}friend Point myfun(Point p1 ,Point p2 ,const Point &p3);};Point myfun(Point p1,Point p2,const Point &p3){Point tmp(p1.X+p2.X+p3.X,p1.Y+p2.Y+p3.Y);return tmp;}void main(){Point pp0,pp1(1,2),pp2(1);myfun(pp0,pp1,pp2);std::cout<<countp<<endl;}A)0 B)4 C)3 D)6(4)在下列关于C++函数的叙述中,正确的是()A)每个函数至少要有一个参数B)每个函数都必须返回一个值C)函数在被调用之前必须先声明D)函数不能自己调用自己(5)对于类的常成员函数的描述正确的是()A)常成员函数不修改类的数据成员B)常成员函数可以对类的数据成员进行修改C)常成员函数只能由常对象调用D)常成员函数不能访问类的数据成员(6)下面程序的输出结果是()#include <iostream>using namespace std;int i = 0;int fun(int n){static int a = 2;a++;return a+n;}void main(){int k = 5;{int i = 2;k += fun(i);}k += fun(i);cout << k;}A)13 B)14 C)15 D)16(7)下面程序的输出结果是()#include <iostream>using namespace std;class A{public:A (int i) { x = i; }void dispa () { cout << x << “,”; }private :int x ;};class B : public A{public:B(int i) : A(i+10) { x = i; }void dispb() { dispa(); cout << x << endl; }private :int x ;};void main(){B b(2);b.dispb();}A)10,2 B)12,10 C)12,2 D)2,2(8)下列有关继承和派生的叙述中,正确的是( )A)派生类不能访问通过私有继承的基类的保护成员B)多继承的虚基类不能够实例化C)如果基类没有默认构造函数,派生类就应当声明带形参的构造函数D)基类的析构函数和虚函数都不能够被继承,需要在派生类中重新实现(9)下列字符串中,正确的C++标识符是()A)enum B)2b C)foo-9 D)_32(10)以下哪个关键字对应的属性破坏了程序的封装性()A)const B)friend C)public D)protectedII 基本语法结构(共30分)1 执行完下列语句后,a、b、c 3个变量的值各为多少?(3分)a = 30;c = ++a;b = a++;2 执行完下列语句后,n的值为多少?(3分)int n;for(n = 1; n < 100; n++);3 写出下列表达式的值:(3分)① 41/4.0② 23/4③ 102%44 写出下列表达式的值:(3分)① 12 < 3 && 7 < 9② !(5 < 6)③ !(13 > 14) || ( 16 < 9)5 若a = 2,b = 3,c = 4,下列各式的结果是什么?(4分)① a | (b – c)② a ^ b & -c③ a & b | c④ a | b & c6 若a = 1,下列各式的结果是什么?(4分)① !a|a② ~a|a③ a^a④ a>>27 写出下面程序运行的结果:(10分)#include <iostream>using namespace std;void myFunction();int x=2,y=3;int main(int argc, char* argv[]){cout<<"x="<<x<<endl;cout<<"y="<<y<<endl;myFunction();cout<<"x="<<x<<endl;cout<<"y="<<y<<endl;return 0;}void myFunction(){int y=10;cout<<"x="<<x++<<endl;cout<<"y="<<y++<<endl;}打印的结果:x=y=x=y=x=y=III上机编码试题,共5小题,每小题10分,共50分,请按要求答在给定的项目文件中提交。

《面向对象程序设计C++》期末试卷及标准答案(B)

《面向对象程序设计C++》期末试卷及标准答案(B)

《面向对象程序设计C++》期末试卷及标准答案(B) 《面向对象程序设计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、系统在调用重载函数时往往根据一些条件确定哪个重载函数被调用,在下列选项中,不能作为依据的是( D )。

A(函数的返回值类型 B(参数的类型 C(函数名称 D(参数个数 5、下列有关C++类的说法中,不正确的是( A )。

A(类是一种用户自定义的数据类型B(只有类中的成员函数或类的友元函数才能存取类中的私有成员C(在类中,如果不做特别说明,所有成员的访问权限均为私有的D(在类中,如果不做特别说明,所有成员的访问权限均为公用的 6、已知X 类,则当程序执行到语句X array[3];时,调用了( D )次构造函数。

【《面向对象程序设计c》期末考试试卷】

【《面向对象程序设计c》期末考试试卷】

《面向对象程序设计C++》期末考试试卷一、选择题(每小题3分,共48分。

)01、下列关于C++函数的叙述中,正确的是( c )。

A)每个函数至少要具有一个参数B)每个函数都必须返回一个值C)函数在被调用之前必须先声明D)函数不能自己调用自己02、下列关于类和对象的叙述中,错误的是( A )。

A)一个类只能有一个对象B)对象是类的具体实例C)类是对某一类对象的抽象D)类和对象的关系是一种数据类型与变量的关系03、在C++中,用于实现运行时多态性的是( D )。

A)内联函数B)重载函数C)模板函数D)虚函数04、下列关于运算符重载的叙述中,正确的是( B )。

A)通过运算符重载,可以定义新的运算符B)有的运算符只能作为成员函数重载C)若重载运算符+,则相应的运算符函数名是+ D)重载二元运算符时,必须声明两个形参05、对于语句cout<<x<<endl;错误的是描述是( D )。

A)“cout”是一个输出流对象B)“endl”的作用是输出回车换行C)“x”是一个变量D)“<<”称作提取运算符06、有如下类声明,则类MyDERIVED中保护的数据成员和成员函数的个数是( B )。

class MyBASE{ private: 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; } };A)4 B)3 C)2 D)107、已知在一个类体中包含如下函数原型: Volume operator-(Volume)const;,下列关于这个函数的叙述中,错误的是( B )。

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

南京邮电大学 学年第 二 学期《面向对象程序设计及C++》期末试卷2院(系) 班级 学号 姓名 (★温馨提醒:① 这是试题纸,教师不批改,请将所有最终答案写在答题纸上 ② 请在试题纸和答题纸上均完整填写班级、学号、姓名信息 ③ 考试结束时请将答题纸、试题纸及草稿纸一并交来 谢谢合作!祝同学们取得好成绩!)一、填空题(共10分,每空1分)1、面向对象程序设计思想中的几个主要特征是:抽象和 ① 、 ② 、 ③ 。

2、C++为类的成员函数提供了一个名字为 ④ 的指针,当创建一个对象时,系统将这种指针初始化为指向该对象。

3、假设AB 为一个类,则该类的拷贝构造函数的原型是 ⑤ 。

4、C++中有三种继承方式,如果基类的公有成员到派生类中仍是公有成员,则应使用 ⑥ 继承方式;如果基类的保护成员到派生类中变成私有成员,则应使用 ⑦ 继承方式。

5、cout 是C++中的标准输出流对象,它在标准头文件 ⑧ 里定义。

6、通过在虚函数参数表后加 ⑨ ,可以定义为纯虚函数。

含有纯虚函数的类称为 ⑩ 。

二、单选题(共20分,每题2分)1、系统在调用重载函数时往往根据一些条件确定哪个重载函数被调用,在下列选项中,不能作为依据的是 。

A 、参数的个数 B 、参数的类型C 、参数的顺序D 、函数的返回类型2、下列定义引用类型变量时, 是正确的。

已知:int k=1000;A 、int &x=k;B 、char &y;C 、int &z=1000;D 、float &t=&k;装 订 线 内 不 要 答 题自觉遵 守考 试 规 则,诚 信 考 试,绝 不作 弊3、下列几个运算符以类的成员函数形式重载时,哪一个与其他3个的形式参数个数不一样。

A、后缀++B、前缀++C、+D、/4、关于析构函数的定义,正确的是。

A、析构函数可以有一个或多个参数B、析构函数返回类型是voidC、析构函数无参数,也不可重载D、析构函数体中必须有delete5、下列哪一项能声明为虚函数。

A、静态函数B、友元函数C、构造函数D、析构函数6、考虑下面的函数原型:void fun(int a,int b=7,char z='*'); 下面函数调用中不合法的。

A、fun (5) ;B、fun (5,8) ;C、fun (5,'#') ;D、fun ( , ,'*') ;7、下列语句中错误的是。

A、int *p=new int(10) ;B、int *p=new int[40](10) ;C、int *p=new int ;D、int *p=new int[10] ;8、在公有派生方式下,下列叙述不正确的是。

A、派生类的对象可以赋给基类的对象B、派生类对象的地址可以直接赋给指向基类的指针C、派生类的对象可以直接访问基类的成员D、派生类的对象可以初始化基类的引用9、当使用ifstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为_______。

A、ios::inB、ios::outC、ios::trunkD、ios::binary10、设有类A和类B,其定义如下:class A{private:int i;public:A( int x){ i=x; }};class B{private:A a1,a2; int b;public:B( int x,int y,int z):a2(x),a1(y){ b=z; }};在声明类B对象b1时,其数据成员a1,a2,b被初始化的顺序为______。

A、a1,a2,bB、a2,a1,bC、b,a1,a2D、b,a2,a1三、读程题(共30分,每空2分)1、以下程序运行后的输出结果是。

#include <iostream.h>int x=100;void main(){int x=200;::x+=x;cout<<::x<<endl;}2、以下程序运行后输出的第一行是,第二行是,第三行是。

#include <iostream.h>class Sample{int x,y;public:Sample(int a=0,int b=0){x=a; y=b;}Sample(const Sample &S){x=2*S.x;y=2*S.y;}void disp( ){cout<<x<<" "<<y<<endl;}};void f(Sample S){S.disp( );}void main( ){Sample s1(2,3),s2=s1;s1.disp( );s2.disp( );f(s1);}3、以下程序运行后输出的第一行是,第二行是第三行是,第四行是。

#include <iostream.h>class Base{public:int x;Base(int x=10){ this->x=x; }void print( ){ cout<<"Base::x is "<<x<<endl;}};class Derived1:public Base{public:void print( ){ cout<<"Derived1::x is "<<x<<endl; } };class Derived2:private Base{public:Derived2(int x):Base(x*4){ }void print( ){ cout<<"Derived2::x is"<<x<<endl; } };void main(){Base objB(20),*p;Derived1 objD1;Derived2 objD2(25);p=&objD1;objB.print( );objD1.print( );objD2.print( );p->print( );装订线内不要答题自觉遵守考试规则,诚信考试,绝不作弊4、以下程序运行后输出的第一行是 ,第二行是 ____ 。

#include <iostream.h> class cord { int x; int y; public:cord(int i=0,int j=0) { x=i;y=j; } void print( ){ cout<<"x="<<x<<",y="<<y<<endl; } cord operator++( ); };cord cord::operator++( ) { ++x; ++y;return *this; }void main() {cord obj(1,2); obj.print(); ++obj;obj.print(); }5、以下程序运行后输出的第一行是 ,第二行是 ,第三行是 。

#include <iostream.h> template <class T> void swap(T &a,T b ) {T temp;temp=a; a=b; b=temp; }void main( ) { int a=5,b=8;double x=4.5,y=8.7;cout<<a<<" "<<b<<endl; swap(a,b);cout<<a<<" "<<b<<endl; swap(x,y);cout<<x<<" "<<y<<endl;装 订 线 内 不 要 答 题自觉遵 守 考 试 规 则,诚 信 考 试,绝 不作 弊6、以下程序运行后输出的第一行是,第二行是。

#include <iostream.h>#include <string.h>class teacher;class student{char name[20];public:student(char *s){ strcpy(name,s);}friend void print(student &,teacher &);};class teacher{char name[20];public:teacher(char *s){ strcpy(name,s);}friend void print(student &,teacher &);};void print(student &a,teacher &b){cout<<"the student is:"<<<<endl;cout<<"the teacher is:"<<<<endl;}void main(){student s("Li Hu");teacher t("Wang Ping");print(s,t);}四、程序填空题(共10分,每空2分)下面的程序首先从键盘输入字符串s的值,再定义ofstream 流对象与D盘根目录下的输出文件file.txt建立关联。

在文件打开成功后,将字符串s中的小写字母转换为大写字母,其余字符保持不变,存放到D盘根目录下的file.txt文件中。

请完善程序:#include <iostream.h>#include <fstream.h>#include <string.h>void main( ){char s[100];unsigned int i;cout<<"input the string s:\n";①;ofstream ②;if(!out){ cout<<"file error!"<<endl;return ;}for(i=0;i<strlen(s);i++){if ( ③) s[i]=s[i]-32;④ ;}⑤;}五、编程题1(共15分)定义类Point表示一个坐标点,有两个double类型的数据成员x,y,在该类中定义构造函数和输出函数show(显示坐标点的位置)。

相关文档
最新文档