面向对象程序设计C期末试卷和标准答案(B)
西电2022年秋季《面向对象程序设计(c++)》大作业及答案
学习中心/函授站姓名学号西安电子科技大学网络与继续教育学院2022 学年下学期《面向对象程序设计(C++)》期末考试试题(综合大作业)考试说明:1、大作业试题公布时间:(1)毕业班:2022 年10 月21 日;(2)正常班:2022 年11 月18 日;2、考试必须独立完成,如发现抄袭、雷同均按零分计;3、答案须用《西安电子科技大学网络与继续教育学院2022 秋期末考试答题纸》(个人专属答题纸)手写完成,要求字迹工整、卷面干净、整齐;4、在线上传时间:(1)毕业班学生于2022 年10 月21 日至2022 年11 月1 日在线上传大作业答卷;(2)正常班学生于2022 年11 月18 日至2022 年12 月5 日在线上传大作业答卷;5、拍照要求完整、清晰,一张图片对应一张个人专属答题纸(A4 纸),正确上传。
一、简答题(10 分)1、运算符 new 和 delete 的功能分别是什么?(3 分)答案:运算符new的功能是创建动态对象;delete的功能是释放由new创建的动态对象。
2、若派生类以 private 方式从一个基类派生,派生类的对象可以访问基类中的哪些成员?派生类的成员函数可以访问基类中的哪些成员?(3 分)答案:若派生类以private方式从一个基类派生,派生类的对象不能访问基类中的任何成员(1分);派生类的成员函数可以访问基类中的public和protected成员(2分)。
3、构造函数的作用是什么?在创建派生类的对象时,应按照怎样的顺序调用构造函数?(4 分)答案:构造函数的作用是创建对象并对其进行必要的初始化。
(1分)构造函数调用顺序:基类构造函数、子对象类构造函数(如果有)、派生类构造函数。
(2分)二、填空题(每空 2 分,共 20 分)1、函数的返回值是通过函数体中的return语句带回的;若被调用函数被定义为 void 类型,则被调用函数不带回任何值。
2、表示逻辑关系“ a 大于等于8 或者 a 小于等于5”的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. 简述面向对象程序设计中的“封装”概念及其重要性。
《面向对象程序设计》期末考核试题样例及解答
《面向对象程序设计》期末考核试题样例及解答一、单项选择(每小题1分,12小题,共12分)1. 源程序文件的缺省扩展名为( )。
A. B. C. D.2. x>0 5的相反表达式为()。
A. x<=0 5B. x<=0 5C. x>0 5D. x>0 53. 在下面的字符数组定义中,有语法错误的是( )。
A. a[20]=“”;B. a[]=“55.”;C. a[15];D. a[10]=’5’;4. 以下正确的函数原型语句是( )。
A. ( y)B. ( y)C. ();D. ( );5. 在下面存储类中,()的对象不是局部变量。
A. 外部静态类B. 自动类C. 函数形参D. 寄存器类6. 假定有“ { [40]; ;}; * ;”,则正确的语句是()。
A. (>,””);B. (,””);C. (*,””);D. ((*)->,””);7. 软件产品所具有的全部或部分地再用于新的应用的能力称为该软件的()。
A. 可维护性B. 可复用性C. 兼容性D. 正确性8. 在多文件结构的程序中,通常把含有()函数的文件称为()。
A. 主文件B. 实现文件C. 程序文件D. 头文件9. 在一个用链表实现的队列类中,假定每个结点包含的值域用表示,包含的指针域用表示,链队的队首指针用表示,队尾指针用表示,若链队为空,则进行插入时必须把新结点的地址赋给( )。
A. B.C. 和D. 或10. 假定为一个类,则执行“ a, b(2), c[3], *;”语句时共调用该类无参构造函数的次数为( )。
A. 5B. 6C. 3D. 411. 引入友元的主要目的是为了()。
A. 增强数据安全性B. 提高程序的可靠性C. 提高程序的效率和灵活性D. 保证类的封装性12. 如果是类B在类A的基础上构造,那么,就称()。
A. 类A为基类或父类,类B为超类或子类B. 类A为基类、父类或超类,类B为派生类或子类C. 类A为派生类,类B为基类D. 类A为派生类或子类,类B为基类、父类或超类二、填空(每空1分,15小题,共18分)1. 语言是在语言的基础上发展起来的。
最新国家开放大学电大本科《面向对象程序设计》期末题库及答案
最新国家开放大学电大本科《面向对象程序设计》期末题库及答案考试说明:本人针对该科精心汇总了历年题库及答案,形成一个完整的题库,并且每年都在更新。
该题库对考生的复习、作业和考试起着非常重要的作用,会给您节省大量的时间。
做考题时,利用本文档中的查找工具,把考题中的关键字输到查找工具的查找内容框内,就可迅速查找到该题答案。
本文库还有其他网核及教学考一体化答案,敬请查看。
《面向对象程序设计》题库及答案一一、单项选择题(每小题2分,共20分)1.设x和y均为bool量,则x||y为假的条件是( )。
A.它们均为真 B.其中一个为真C.它们均为假 D.其中一个为假2.假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}}”,则元素a[1][2]的值为( )。
A.2 B.4 C.6 D.83.假定P是具有int* *类型的指针变量,则给P赋值的正确语句为( )。
A.p=new int B.p=new int*C.p=new int** D.p=new int[10]4.软件产品在需求发生变化、运行环境发生变化或发现软件产品本身的错误或不足时进行相应的软件更新的难易程度叫做软件的( )。
A.可维护性 B.可复用性C.兼容性 D.正确性5.若需要把一个类外定义的成员函数指明为内联函数,则必须把关键字( )放在函数原型或函数头的前面。
‘A.in B.inlineC.inLine D.InLiner .6.在一个用数组实现的队列类中,假定数组长度为MS,队首元素位置为first,队列长度为length,则队尾的后一个位置为( )。
A.1ength+1 B first+lengthC.(first+1ength—1)%MS D.(first+length)%MS7.假定一个类的构造函数为“A(int aa,int bb){a=aa;b=aa*bb;)”,则执行“A x(4,5);”语句后,X.a和x.b的值分别为( )。
《面向对象程序设计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)
《面向对象程序设计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 适用年级/专业: 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)标准答案
《面向对象程序设计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++》期末考试试卷(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++》期末考试试卷(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++面向对象程序设计》期末考试试题
《C++面向对象程序设计》考试试题✧本试卷满分100分;✧请将答案写在答题纸上,写明题号,不必抄题,字迹工整、清晰;✧请在答题纸和试题纸上都写上你的班级,学号和姓名,交卷时请将试题纸、答题纸和草纸一并交上来。
一、单选题(共10分,每题1分)1.C++中解决命名冲突的机制是:D(A)虚基类(B)虚函数(C)函数重载(D)名字空间2.若类A的一个对象所占的内存空间中包含虚函数表的入口地址,则:C(A)类A不能有静态数据成员(B)类A中公有的成员函数一定是虚的(C)类A中至少有一个成员函数是虚的(D)类A的析构函数一定是虚的3.任意一个类,析构函数的个数最多是:B(A)不限个数(B)1(C)2(D)34.下列关于this指针的说法,哪个是正确的:D(A)this指针一定指向常量型数据(B)this指向的数据不可更改(C)静态成员函数中也可以访问this指针(D)this指针本身可直接作为成员函数的返回值5.在类定义中,为说明成员的访问权限,private,protected,public可以出现次数为:A(A)次数没有具体限定(B)每种至多一次(C)public至少一次(D)每种至少一次6.下面哪种定义方式是正确的,并且使得p可以作为函数void f(A*const pp);的实参:A(A)A*p=new A;(B)A a;A*p=a;(C)const A*p=new A;(D)A a;const A*p=a;7.obj是类A的一个对象,执行语句const A&aA=obj;,则下列说法正确的是:C(A)类A的拷贝构造函数会被调用(B)类A的赋值函数会被调用(C)&aA的值就是&obj(D)语句obj.f();等价于语句aA.f();8.下面关于访问类A的私有数据成员的说法,错误的是:C(A)类A的友元函数可以访问类A的私有成员。
(B)类A的友元类中的非静态成员函数可以访问类A的私有成员。
c程序设计期末考试试题及答案
c程序设计期末考试试题及答案一、选择题(每题2分,共20分)1. 下面哪个选项是C语言中的关键字?A. intB. floatC. stringD. array答案:A2. C语言中,下列哪个运算符用于比较两个值是否相等?A. ==B. =C. !=D. %答案:A3. 在C语言中,以下哪个函数用于将字符串转换为浮点数?A. atoi()B. atof()C. itoa()D. sprintf()答案:B4. 下列哪个选项是正确的C语言变量声明?A. int num = 10;B. int num = "10";C. int num = '10';D. int num = 10.0;答案:A5. C语言中,以下哪个语句用于循环执行代码块?A. forB. whileC. ifD. switch答案:A6. 在C语言中,以下哪个函数用于计算数组中元素的总和?A. sum()B. count()C. average()D. max()答案:A7. 下列哪个选项是C语言中正确的注释格式?A. // 这是注释B. /* 这是注释 */C. //* 这是注释 */D. /* 这是注释答案:A8. 在C语言中,如何定义一个指向整数的指针?A. int *p;B. int *p = 0;C. int *p = 10;D. int p = 10;答案:A9. 在C语言中,以下哪个选项是正确的函数定义?A. int function() {}B. int function() { return 0; }C. int function() { return; }D. int function() { return 1; }答案:B10. 下列哪个选项是C语言中正确的字符串字面量?A. "Hello, World!"B. 'Hello, World!'C. "Hello, WorldD. 'Hello, World'答案:A二、填空题(每题3分,共15分)1. 在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)。
《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.以下代码的输出结果是()。
c面向对象程序设计期末考试题及完整参考答案
3)
4)
5)
6)
01223,王五,男,35岁
7)
洛阳理工学院
参考答案及评分标准
课程:
一、填空题(每空1分,共20分)
1.属性操作
2.泛化依赖泛化
3.命名空间 主程序方法 程序集
4.值类型委托类接口
5.方法名称参数列表
6.构造
7.整数字符串
8.显式私有
9.静态
二、判断题(每小题1分,共5分)
1.V2.V3.V4.V5.X
A)st.read() B)st::read() C)Student.read() D)Student::read()
四、简答题(每小题5分,共15分)
1.在面向对象的模型中,什么是类的多态性?C#是如何实现类的多态特性的?
2.
3.
五、
分)
1.
class Circle
{
protected float _r;〃圆的半径
三、选择题(每小题2分,共10分)
1.在设计一个类时,如果不希望外部对象访问该类成员,应定义为()。
A)私有的或保护的B)公有的C)保护的或者共有的D)公有的或者私有的
2.在类中未说明访问权限的情况下,所有成员都是()的
A)共有的B)私有的C)内部的D)保护的
3.关于数组型参数下面那个说法是错误的()
学院
考试时间:120分钟
一、填空题(每空1分,共20分)
1.客观世界中的事物都是对象。对象具有自己的,用来描述对象的静态特征;而对象的用于描述对
象的动态特征。
2.在面向对象的模型中,对象之间的关系可在类级别上概述为聚合、、口一般关联等四种。其中基
类和派生类之间的关系属于关系。
(完整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++ 第一套试卷一、选择题(共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)。
《面向对象程序设计C++》期末考试试卷(B)班级:姓名:学号:分数:试卷说明:本套试题共四个大题,全部题目都答在答题纸上,写在其他地方均无效。
(答题纸在本套试卷的第8页上)一、单项选择题(每小题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、关于常数据成员的说法,不正确的是()。
A.常数据成员的定义形式与一般常变量的定义形式相同,只不过常数据成员的定义必须出现在类体中B.常数据成员必须进行初始化,并且不能被更新C.常数据成员通过构造函数的成员初始化列表进行初始化D.常数据成员可以在定义时直接初始化10、运用运算符delete删除一个动态对象时()。
A.系统首先为该动态对象调用构造函数,再释放其占用的内存B.系统首先释放该动态对象占用的内存,再为其调用构造函数C.系统首先为该动态对象调用析构函数,再释放其占用的内存D.系统首先释放动态对象占用的内存,再为其调用析构函数11、可以在类外用p.a的形式访问派生类对象p的基类成员a,其中a是()。
A.私有继承的公用成员B.公用继承的私有成员C.公用继承的保护成员D.公用继承的公用成员12、在公用继承方式下,有关派生类对象和基类对象的关系,不正确的叙述是()。
A.派生类的对象可以赋给基类的对象B.派生类的对象可以初始化基类的引用C.派生类的对象可以直接访问基类中的成员D.派生类的对象的地址可以赋给指向基类的指针13、设置虚基类的目的是()。
A.简化程序B.消除二义性C.提高运行效率D.减少目标代码14、在C++中,用于实现动态多态性的是()。
A.内联函数B.重载函数C.模板函数D.虚函数15、不能说明为虚函数的是()。
A.析构函数B.构造函数C.类的成员函数D.以上都不对16、如果一个类至少有一个纯虚函数,那么就称该类为()。
A.抽象类B.派生类C.纯基类D.以上都不对17、下面关于友元的描述中,错误的是()。
A.友元函数可以访问该类的私有数据成员B.一个类的友元类中的成员函数都是这个类的友元函数C.友元可以提高程序的运行效率D.类与类之间的友元关系可以继承18、下列运算符中,()运算符在C++中不能被重载。
A.&& B.[] C.:: D.new19、模板的使用实际上是将类模板实例化成一个()。
A.函数B.对象C.类D.抽象类20、假定MyClass为一个类,则该类的拷贝构造函数的声明语句为()。
A.MyClass(MyClass x) B.MyClass&(MyClass x)C.MyClass(MyClass &x) D.MyClass(MyClass *x)二、填空题(前16个空,每空1分,后2个空,每空2分,共20分)1、类和对象的关系可表述为:类是对象的,而对象则是类的。
2、在C++中,三种继承方式的说明符号为、和,如果不加说明,则默认的继承方式为。
3、如果只想保留公共基类的一个复制,就必须使用关键字把这个公共基类声明为虚基类。
4、若要把void fun()定义为类A的友元函数,则应在类A的定义中加入语句。
5、类的静态成员分为和。
6、运算符重载要求保持其原来的操作数个数、、和语法结构。
7、通过关键字可以声明模板,通过关键字指定函数模板的类型参数,有几个类型参数就有几个类型关键字。
8、列出C++中两种用户自定义的数据类型:、。
9、构造函数的作用是。
10、后置自增运算符“++”重载为类的成员函数(设类名为A)的形式为。
三、阅读下面3个程序,写出程序运行时输出的结果:(共13分)1、#include<iostream >using namespace std;void fun(int &a,int &b){ int p;p=a; a=b; b=p;}void exchange(int &a,int &b,int &c){ if(a<b)fun(a,b);if(a<c)fun(a,c);if(b<c)fun(b,c);}int main(){ int a=12,b=89,c=56;exchange(a,b,c);cout<<"a="<<a<<",b="<<b<<",c="<<c<<endl;return 0;}using namespace std;class Date{public:Date(int,int,int);Date(int,int);Date(int);Date();void display();private:int month, day, year;};Date::Date(int m,int d,int y):month(m),day(d),year(y) { } Date::Date(int m,int d):month(m),day(d) {year=2009;}Date::Date(int m):month(m){day=1; year=2010; }Date::Date() {month=1; day=1; year=2010; }void Date::display(){cout<<month<<"/"<<day<<"/"<<year<<endl;} int main(){ Date d1(12,31,2009);Date d2(12,31);Date d3(1);Date d4;d1.display();d2.display();d3.display();d4.display();return 0; }using namespace std;class A{ public:A(){cout<<"constructing A "<<endl;}~A(){cout<<"destructing A "<<endl;}};class B: public A{ public:B(){cout<<"constructing B "<<endl;}~B(){cout<<"destructing B "<<endl;}};class C : public B{ public:C(){cout<<"constructing C "<<endl;}~C(){cout<<"destructing C "<<endl;}};int main(){ C c1;return 0;}四、编程题(共27分)1、(10分)已知复数类Complex的声明如下:class Complex{public:Complex(); //无参构造函数Complex(double ); //转换构造函数Complex(double, double);//有两个形参的构造函数friend Complex operator+(Complex&, Complex&); //对“+”运算符进行重载friend ostream& operator<<(ostream&, Complex&); //对“<<”运算符进行重载friend istream& operator>>(istream&, Complex&); //对“>>”运算符进行重载private:double real,imag;};要求:(1)写出该类的所有构造函数的类外定义代码。
(2)写出对运算符“+”、“<<”、“>>”进行重载的运算符重载函数的定义。
2、(17分)下列Shape类是一个表示形状的抽象类,area( )为求图形面积的函数,total( )则是一个通用的用以求不同形状的图形面积总和的函数。
class Shape{public:virtual double area()=0;};double total(Shape *s[ ], int n){ double sum=0.0;for(int i=0; i<n; i++) sum+=s[i]->area( );return sum;}要求:(1)从Shape类派生圆类(Circle)、正方形类(Square),圆类新增数据成员半径(radius),正方形类新增数据成员边长(a),圆类和正方形类都有构造函数,修改、显示数据成员值的函数,求面积函数。