《面向对象程序设计C 》期末考试考题
- 格式:doc
- 大小:38.50 KB
- 文档页数:7
《面向对象程序设计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、关于常数据成员的说法,不正确的是()。
C++面向对象程序设计语言期末考试试卷一.选择题(每题1分,共10分)1.在C++中,常量’C’和”C”两者________。
A)完全不同B)存储长度相同C)类型相同D)存储值相同2.有二维字符数组char s[4][6]={“zhang”,”gao”,”tang”,”wang”},执行程序cout<<*s[2],屏幕上显示________。
A)gao B)tang C)g D)t3.若w=1,x=2,y=3,z=4,则条件表达式w>x?w:z>y?z:x的结果为_______。
A)4 B)3 C)2 D)14.设a和b为整型变量,执行语句b=(a=2+3,a*4),a+5;后a和b的值为_______。
A)5,10 B)20,25 C)5,25 D)5,205.如果整型变量a,b,c的值分别为5,4,3,则语句if(a>=b>=c) c++;执行后c的值是______。
A)5 B)4 C)3 D)2int i=10;执行下列语句后,i的值是_______。
{case 9: i+=1;case 10: i+=1;case 11: i+=1;case 12: i+=1;}A)10 B)11 C)12 D)136.执行以下程序:#include<iostream.h>void main(void){char c=0; cout<<c<<’\n’;}输出的结果是________。
A) ‘\0’B)语法错C)0 D) 一个空行7.设有类型说明:enum color{red,yellow=3,white,black};则执行语句cout<<white<<’\n’;后输出的结果是________。
A) 4 B) 3 C) 2 D) 18.对于下面的几个函数:void f(int x){……}//1int f(int y){……}//2int f(int i,int j){……}//3float k(int x) {……}//4_______是重载函数。
《面向对象程序设计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、在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用()。
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++》期末考试试卷(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、在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用()。
《面向对象程序设计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、类定义的内容允许被其对象无限制地存取的就是( )。
期末考试试卷课程名称:面向对象程序设计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++》期末考试试卷(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.析构函数无任何函数类型。
一、填空题(每空1分,共14分)1、观看以下程序:class point{public:void show() {cout<<”point”<<endl;}};void main(){point p1;point *p;p=&p1;_______________//通过对象p1访问show函数______________//通过指针p访问show函数}2、在C++类中可以包含______________、______________和______________三种具有不同访问控制权的成员。
3、定义类时,在类头中将使用关键字_____________来表示类定义的开始。
4、如果一个类中至少有一个纯虚函数,则该类称为________________。
5、C++类的组成包括数据成员和______________,友元_____(是、不是)该类的成员函数。
6、友员函数是用关键字____________修饰的非成员函数。
7、若有:int i;int &j=i;i=10;j=i+1;则i=__________,j=__________。
8、 new的功能是____________________,delete的功能是____________________。
二、选择题(每小题1.5分,共30分)1、下列特性中不是面向对象程序设计语言所特有的是()。
(A)数据封装(B)继承(C)多态性(D)模板2、()是给变量取一个别名,它引入了变量的同意词。
(A)指针(B)引用(C)枚举(D)结构3、类成员的访问权限中,()只能被本类的成员函数和其友元函数访问。
(A)share (B)public (C)private (D)protected4、关于构造函数,下列说法不正确的是()。
(A)构造函数名字和类名相同(B)构造函数在创建对象时自动执行(C)构造函数无任何函数返回类型(D)构造函数有且只有一个5、派生类可以访问其基类的()。
《面向对象程序设计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、在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用()。
封面作者:PanHongliang仅供个人学习《面向对象程序设计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)重载二元运算符时,必须声明两个形参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 ).A)这是运算符-地重载运算符函数B)这个函数所重载地运算符是一个一元运算符C)这是一个成员函数D)这个函数不改变类地任何数据成员地值08( a ).cout.fill('*')。
cout.width(6)。
cout.fill('#')。
cout << 123 << endl。
A)###123 B)123### C)***123 D)123***09、在下列函数原型中,可以作为类AA构造函数地是( d ).A)void AA(int)。
B)int AA()。
C)AA(int)const。
D)AA(int)。
10、下面四个选项中,( a)是用来声明虚函数地.A)virtual B)public C)include D)using namespace11、实现运行时地多态性要使用( d ).A)重载函数 B)构造函数 C)析构函数 D)虚函数12、要实现动态联编,必须通过( a )调用虚函数.A)对象指针B)成员名限定C)对象名 D)派生类名13、以下( c )成员函数表示纯虚函数.A)virtual int vf(int)。
B)void vf(int)=0。
C)virtual void vf()=0。
D)virtual void vf(int){}14、有如下类声明:class XA{ private: int x。
public: XA(int n){ x=n。
} }。
class XB: public XA{ private: int y。
public: XB(int a,int b)。
}。
在构造函数XB地下列定义中,正确地是( b ).A)XB::XB(int a,int b): x(a),y(b){ }B)XB::XB(int a,int b): XA(a),y(b){ }C)XB::XB(int a,int b): x(a),XB(b){ } D)XB::XB(int a,int b): XA(a),XB(b){ }15、在表达式 x+y*z中, + 是作为成员函数重载地运算符,* 是作为非成员函数重载地运算符.则 operator+ 有个参数,operator* 有参数.( c )A)2、2 B)2、1 C)1、2 D)1、116、应在下列程序划线处填入地正确语句是( c ).class Base{ public:void fun(){cout<<"Base::fun"<<endl。
} }。
class Derived:public Base{ void fun(){ //显示调用基类地函数fun()cout<<"Derived::fun"<<endl。
}}。
A)fun()。
B)Base.fun()。
C)Base::fun()。
D) Base->fun()。
二、填空题(每空2分,共20分.)17、面向对象程序设计有四个主要特点,即抽象、封装、____和____.18、非成员函数应声明为类地____函数才能访问这个类地private成员.19、派生类中地成员不能直接访问基类中地____成员.20、在用class定义一个类时,数据成员和成员函数地默认访问权限是____.21、运算符重载函数可能是类地____函数,也可以是类地____函数,还可以是普通函数.22、用流对象地成员函数控制输出格式时,用于设置字段宽度地流成员函数地名称是____,与之作用相同地控制符名称是____.23、含有纯虚函数地类称为____.三、程序地填空、程序地执行(每题29、编写一个程序计算“三角形、正方形、圆形”三种图形地面积,要求:a)抽象出一个基类base;b)在其中说明一个虚函数用来求面积;c)利用派生类定义“三角形、正方形、圆形”;d)编写主函数并测试.参考答案一、选择题(每小题3分,共48分.)01-05 CADBD06-10 BBADA11-16 DACBCC二、填空题(每空2分,共20分.)17、继承、多态性18、友元19、私有20、private或私有21、成员、友元22、width/setw23、抽象类三、程序地填空、程序地执行(每题4分,共20分.)24、counter operator + (counter c)25、virtual26、23,2327、ABC28、XY四、编程题(12分)29、#include <iostream>using namespace std。
class base{ public:virtual float area() const{ return 0。
}}。
class triangle: public base{ protected:float bian,height。
public:triangle(float a=0, float h=0) { bian=a。
height=h。
}virtual float area() const{ return bian*height/2。
}}。
class square: public base{ protected:float bian。
public:square(float a=0) { bian=a。
}virtual float area() const{ return bian*bian。
}}。
class circle: public base{ protected:float radius。
public:circle(float r=0) { radius=r。
}virtual float area() const{ return 3.14*radius*radius。
}}。
int main(){ triangle t(3,4)。
square s(5)。
circle c(2)。
base *p。
p=&t。
cout<<"triangle's area:"<<p->area()<<endl。
p=&s。
cout<<"square's area:"<<p->area()<<endl。
p=&c。
cout<<"circle's area:"<<p->area()<<endl。
return 0。
}版权申明本文部分内容,包括文字、图片、以及设计等在网上搜集整理。
版权为潘宏亮个人所有This article includes some parts, including text, pictures, and design. Copyright is Pan Hongliang's personal ownership.用户可将本文的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。
除此以外,将本文任何内容或服务用于其他用途时,须征得本人及相关权利人的书面许可,并支付报酬。
Users may use the contents or services of this article for personal study, research or appreciation, and other non-commercial or non-profit purposes, but at the same time, they shall abide by the provisions of copyright law and other relevant laws, and shall not infringe upon the legitimate rights of this website and its relevant obligees. In addition, when any content or service of this article is used for other purposes, written permission and remuneration shall be obtained from the person concerned and the relevant obligee.转载或引用本文内容必须是以新闻性或资料性公共免费信息为使用目的的合理、善意引用,不得对本文内容原意进行曲解、修改,并自负版权等法律责任。
Reproduction or quotation of the content of this article must be reasonable and good-faith citation for the use of news or informative public free information. It shall not misinterpret or modify the original intention ofthe content of this article, and shall bear legal liability such as copyright.。