面向对象程序设计期末小抄(填空题)
- 格式:doc
- 大小:94.50 KB
- 文档页数:11
C++面向对象程序设计复习试题类型1、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。
15题,每小题2分,共30分) [主要从作业题目中抽出来]2. 填空题。
(10题,每小题3分,共30分)3、阅读程序,写出程序运行结果。
【也称计算题】(3题,每小题5分,共15分)4、程序编制题【也称综合分析题】。
(第1、2题每题8分,第3题9分,共25分) 重点复习内容打*号是重点,打▲号是编程题出题范围* 基本概念,对象,消息,类。
面向对象系统特性,封装性,继承性,多态性。
*▲C++类的构成,类与对象,构造与析构,动态存储,类嵌套。
静态成员,对象数组,友元。
*函数重载。
运算符重载。
*引用定义与引用参数* 基类与派生类的定义。
* 基类及派生类的访问权(含派生类对基类的访问、通过派生类对象对基类的访问)和初始化。
多继承与虚基类。
*多态性与虚函数。
纯虚函数、抽象类。
*▲函数模板。
*▲使用类来定义对象并在程序中的应用题型样题填空题 1. 假定AB为一个类,则执行“AB a[10];”语句时,系统自动调用该类的构造函数的次数为_________。
答案:102.可以用p.a的形式访问派生类对象P的基类成员a,其中a是_________。
答案:公有继承的公有成员3.能作为重载函数的调用的依据是_________。
答案:参数个数、参数类型4.在进行完任何C++流的操作后,都可以用C++流的有关成员函数检测流的状态;其中只能用于检测输入流是否结束状态的操作函数名称是_________答案:eof5.函数重载是指_________。
答案:两个或两个以上的函数取相同的函数名,但形参的个数或类型不同6.在派生类中重新定义虚函数时必须在_________ 方面与基类保持一致。
答案:参数个数阅读程序例题【计算题】1.分析以下程序的执行结果#include<iostream.h>class Sample{int x,y;public:Sample() {x=y=0;}Sample(int a,int b) {x=a;y=b;}~Sample(){if(x==y)cout<<“x=y”<<endl;elsecout<<“x!=y”<<endl;}void disp(){cout<<“x=”<<x<<“,y”=<<y<<endl;}};void main(){Sample s1,s2(2,3);s1.disp();s2.disp();}解:x=0,y=0x=2,y=3x!=yx=y2.分析以下程序的执行结果#include<iostream.h>int add(int x,int y){return x+y;}int add(int x,int y,int z){return x+y+z;}void main(){int a=4,b=6,c=10;cout<<add(a,b)<<,<<add(a,b,c)<<endl; }解:10,20 3.分析以下程序执行结果#include<iostream.h>int add(int x,int y){return x+y;}double add(double x,double y){return x+y;}void main(){int a=4,b=6;double c=2.6,d=7.4;cout<<add(a,b)<<","<<add(c,d)<<endl; }解:10,104.分析以下程序执行的结果#include<iostream.h>class Sample{int x,y;public:Sample(){x=y=0;}Sample(int a,int b){x=a;y=b;}void disp(){cout<<"x="<<x<<",y="<<y<<endl;}};void main(){Sample s1,s2(1,2),s3(10,20);Sample *pa[3]={&s1,&s2,&s3};for(int i=0;i<3;i++)pa[i]->disp();}解:x=0,y=0x=1,y=2x=10,y=20 5. 分析以下程序的执行结果:#include<iostream.h>class base{int n;public:base(){};base (int a){cout << "constructing base class" << endl; n=a;cout << "n= "<< n << endl;}~base() { cout << "destructing base class" << endl; }};class subs : public base{int m;public:subs(int a, int b) : base(a){cout << "constructing sub class "<< endl; m=b;cout << "m= "<< m << endl;}~subs() { cout << "destructing sub class "<< endl; }};void main (){subs s(1,2);}解:constructing base classn= 1constructing sub classm= 2destructing sub classdestructing base class6.分析以下程序的执行结果:#include <iostream.h>class Sample{protected:int x;public:Sample() { x=0; }Sample(int val) { x=val; }void operator++() { x++; }};class Derived:public Sample{int y;public:Derived():Sample(){ y=0; }Derived(int val1,int val2):Sample(val1){ y=val2; }void operator--(){ x--;y--;}void disp(){cout<<"x="<< x << ",y=" << y << endl; }};void main (){Derived d(3,5);d.disp();d++;d.disp ();d--;d--;d.disp();}解:x=3,y=5x=4,y=5x=2,y=37 分析以下程序执行结果:#include <iostream.h>class A{public:A(char *s) { cout << s << endl; }~A() {}};class B:public A {public:B(char *sl,char *s2) :A(sl){cout << s2 << endl;}};class C:public A{public:C(char *sl,char *s2) :A(sl){cout << s2 << endl;}};class D:public B,public C{public:D(char *sl,char *s2,char *s3,char *s4) :B(sl,s2),C(sl,s3){cout << s4 << endl;}};void main (){D d("class A","class B","class C","class D");}解:class Aclass Bclass Aclass Cclass D 补充例题1.分析以下程序的执行结果#include<iostream.h>template <class T>T max(T x,T y){ return (x>y?x:y); }void main(){ cout<<max(2,5)<<“,”<<max(3.5,2.8)<<endl; }解答:5,3.5 2.分析以下程序的执行结果#include<iostream.h>void main(){int a[]={10,20,30,40},*pa=a;int *&pb=pa;pb++;cout<<*pa<<endl;}解答:输出为:20 3.分析以下程序的执行结果#include<iostream.h>template <class T>T abs(T x){ return (x>0?x:-x); }void main(){ cout<<abs(-3)<<“,”<<abs(-2.6)<<endl; }解答:输出为:3,2.64.分析以下程序的执行结果#include<iostream.h>class Sample{char c1,c2;public:Sample(char a){c2=(c1=a)-32;}void disp(){ cout<<c1<<“转换为”<<c2<<endl; } };void main(){Sample a('a'),b('b');a.disp();b.disp();}解答:a转换为Ab转换为B 5.分析以下程序的执行结果#include<iostream.h>void main(){int a;int &b=a; // 变量引用b=10;cout<<“a=”<<a<<endl;} 解答:输出为:a=10 6.分析以下程序的执行结果#include<iostream.h>class Sample{int x;public:Sample(){};Sample(int a){x=a;}Sample(Sample &a){x=a.x++ +10;}void disp(){cout<<“x=”<<x<<endl; }};void main(){ Sample s1(2),s2(s1);s1.disp();s2.disp();}解答:x=3 // ++运算的结果x=12 // 2+107.分析以下程序的执行结果#include<iostream.h>class Sample{int x;public:Sample(){};Sample(int a){x=a;}Sample(Sample &a){x=a.x+1;}void disp(){cout<<“x=”<<x<<endl; } };void main(){ Sample s1(2),s2(s1);s2.disp();}解答:输出为:x=3。
《面向对象程序设计》期末考核试题样例及解答一、单项选择(每小题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. 语言是在语言的基础上发展起来的。
面向对象程序设计期末综合练习二(填空题)填空题1.以面向对象方法构造的系统,其基本单位是____对象_____。
2.每个对象都是所属类的一个____实例______。
3.对象将其大部分实现细节隐藏起来,这种机制称为___封装_______。
4.基类和派生类的关系称为____继承______。
5.复杂对象可以由简单对象构成,这种现象称为_______聚合___。
6.对象是对问题域中客观事物的_抽象_,它是一组属性和在这些属性上操作的_封装体______。
7.特殊类的对象拥有其一般类的全部属性与操作,称特殊类____继承____了一般类。
8.如果一个派生类的基类不止一个,则这种继承称为_____多继承_______。
9.如果一个派生类只有一个唯一的基类,则这样的继承关系称为____单继承______。
10.C++支持两种多态性:____编译_____时的多态性和_____运行_____时的多态性。
11.在C++中,编译时的多态性是通过_____重载_____实现的,而运行时的多态性则是通过______虚函数____实现的。
12.面向对象软件开发的生命周期分为三个阶段,即分析、____设计__和___实现____。
13.面向对象的分析包括_____问题域_____分析和____应用__分析两步。
14.类定义中,既包含数据成员,也包含____函数____成员。
15.类中的数据成员的访问属性通常被指明为___private_____。
16.类中的供外部调用定义的函数成员,其访问属性通常被定义为_____public___。
17.对于类中定义的任何成员,其隐含访问权限为____ private_____。
18.对于结构中定义的任何成员,其隐含访问权限为_____ public____。
19.为了使类中的成员不能被类外的函数通过成员操作符访问,则应把该成员的访问权限定义为___ private______。
20.若在类的定义体中给出了一个成员函数的完整定义,则该函数属于___内联_____函数。
最新国家开放大学电大本科《面向对象程序设计》期末题库及答案考试说明:本人针对该科精心汇总了历年题库及答案,形成一个完整的题库,并且每年都在更新。
该题库对考生的复习、作业和考试起着非常重要的作用,会给您节省大量的时间。
做考题时,利用本文档中的查找工具,把考题中的关键字输到查找工具的查找内容框内,就可迅速查找到该题答案。
本文库还有其他网核及教学考一体化答案,敬请查看。
《面向对象程序设计》题库及答案一一、单项选择题(每小题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的值分别为( )。
最最新面向对象程序设计试题填空题一、1. C++语言是在 C 语言的基础上发展起来的。
2.假定x=5,y=6,则执行表达式y*=x++后,y的值为30_ 。
3.在if语句中,每个else关键字与它前面同层次并且最接近的if关键字相配套。
4.一维字符数组a[20]能够存储的字符串的长度至多为19__。
5.假定p所指对象的值为25,p+l所指对象的值为42,则执行*p++运算后,p所指对象的值为42。
6.若采用p—>abc(y)表达式调用一个成员函数,在成员函数中使用的this就代表了类外的P指针。
7.一个类中定义的数据成员或函数成员,可以使用_3_种保护属性中的一种。
b= bb;}",则定义该类的对8.假定用户只为类AB定义了一个构造函数"AB(int aa,int bb=0) {a=aa;象时,其初始化实参表中至少带有1个实参。
9.在重载一个单目运算符时,参数表中没有参数,说明该运算符函数只能是类的_成员函数_。
10.重载一个运算符时,该运算符的优先级、_结合性_以及运算对象的个数都不允许改变。
11.存储字符串"a"需要占用2个字节。
12.重载一个函数的条件是:该函数必须在参数的个数(或数目)或参数对应的类型上与其它同名函数不相同。
13.假定P是一个指向整数对象的指针,则用*p表示该整数对象。
14.元素a[i]的指针访问方式为*(a+i) _ 。
”语句后,x 的值是6。
15.已知有定义“int x,a[3]={5,7,9},*pa=a;”,在执行“x=++*pa;16.在一个用数组实现的队列类中,假定数组长度为MS,队首元素位置为first,队列长度为length,则队列为满的条件是length= =MS。
17.对类中对象和基类成员的初始化只能通过在构造函数中给出的初始化表来实现的。
18.假定AB为一个类,则执行"AB a,b(2),c[3],*p=&a"语句时共调用该类无参构造函数的次数为4次。
java面向对象程序设计期末考试题及答案一、单项选择题(每题2分,共20分)1. 在Java中,哪个关键字用于声明一个类?A. classB. structC. interfaceD. enum答案:A2. 下列哪个是Java中的访问修饰符?A. publicB. privateC. protectedD. All of the above答案:D3. 在Java中,哪个关键字用于创建对象?A. newB. createC. makeD. instantiate答案:A4. Java中的继承是通过哪个关键字实现的?A. extendsB. inheritC. deriveD. superclass答案:A5. 在Java中,哪个关键字用于实现接口?A. implementsB. extendsC. interfaceD. abstract答案:A6. 下列哪个不是Java中的方法重载的条件?A. 方法名相同B. 参数列表不同C. 返回值类型不同D. 访问修饰符不同答案:C7. 在Java中,哪个关键字用于声明一个抽象方法?A. abstractB. virtualC. overrideD. final答案:A8. Java中的多态性可以通过哪种方式实现?A. 方法重载B. 方法覆盖C. 接口实现D. 继承答案:B9. 在Java中,哪个关键字用于声明一个内部类?A. innerB. nestedC. staticD. inner class答案:B10. Java中的垃圾回收机制是自动的吗?A. YesB. NoC. SometimesD. Depends on the JVM答案:A二、填空题(每题2分,共20分)1. Java中,一个类可以继承另一个类的______方法和属性。
答案:非私有2. Java中的______关键字用于声明一个类是不可被继承的。
答案:final3. 在Java中,______关键字用于声明一个类是抽象的。
《面向对象程序设计JA V A语言程序设计》期末考试试卷及部分答案2一、单选择题(每小题2分,共10分)1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( B )。
A. .javaB. .classC. .htmlD. .exe2、设x = 1 , y = 2 , z = 3,则表达式y+=z--/++x 的值是( A )。
A. 3B. 3. 5C. 4D. 53、在Java Applet程序用户自定义的Applet子类中,一般需要重载父类的( D )方法来完成一些画图操作。
A. start( )B. stop( )C. init( )D. paint( )4、不允许作为类及类成员的访问控制符的是( C )。
A. publicB. privateC. staticD. protected5、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( A )。
A. static void method( )B. public void method( )C. final void method( )D. abstract void method( )二、填空题(每空格1分,共20分)1、开发与运行Java程序需要经过的三个主要步骤为编辑源程序、编译生成字节码、和解释运行字节码。
2、如果一个Java Applet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是Applet、类的子类并且存储该源程序文件的文件名为MyApplet 。
3、如果一个Java Applet程序文件中定义有3个类,则使用Sun公司的JDK编译器 javac.exe 编译该源程序文件将产生 3 个文件名与类名相同而扩展名为 . class 的字节码文件。
4、在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占用 2 字节内存空间,这样,无论是中文字符还是英文字符,都是占用 2 字节内存空间。
1.对象有如下的特性:1 每个对象必须有一个名字以区别于其他对象。
2 有属性(或叫状态)来描述对象的某些特征。
3 有一组操作,每一操作决定对象的一种行为。
4 对象的整体性:把属性和操作放在一起,这里的操作要与属性相关,通过使用名字就可以使用整个对象。
2对象:静态特征——属性,一般用数据(结构)来体现。
动态行为——方法,基于数据的函数或过程。
3类是一组具有相同属性和行为特征的对象的抽象描述。
类和对象的关系:抽象和具体的关系,类是多个对象的归纳和总结(分类的结果),对象又是类的个体实物,一个对象就是类的一个实例。
4类和对象实际上就是C的数据类型和变量,在面向对象语言中,统称为类和对象。
类没有具体的值,对象才有,对象的这些具体的值称为对象的状态。
5类:数据成员——对应对象的属性,也叫做成员变量。
成员函数——对应对象的方法,是类功能的载体。
6类只在源程序的代码中出现,它是编译器生成对象的说明书,并不会在运行的程序中出现,即类只在编译时存在;对象作为类的实例是在运行的程序中出现,并占有内存空间,它是程序运行时存在的实体,是机器指令操作的内容。
7.对象的交互:现实世界的对象并非孤立的实体,它们间存在着联系,从而构成不同的系统。
面向对象程序设计中,对象的联系我们称为对象的交互。
对象交互的实现:在OOP中,对象交互的实现要用到一个重要的工具:事件消息。
8消息传递与调用实际上,对象的消息传递对应于程序设计中的过程(函数)调用。
比如:键盘对象的按键消息传给显示对象消息的发送和接收发送消息的对象为发送者或请求者,接收消息的目标对象为接收者或服务者(有处理者消息的能力)。
9.消息的内容组成包含有接收者的名字,请求的方法,一个或多个参数。
10.面向对象系统最突出的特征:封装性、继承性、多态性(三个特性)11抽象——从特定的实例抽取共同性质形成概念的过程。
抽象是对系统简化的描述或规范说明,它强调了系统中一部分细节和特性(用户关心的),而忽略了其他部分。
程序设计(期末考试试题及答案)JAVA面向对象面向对象程序设计一、单选择题1、编译Java Application源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为(B)。
A.javaB..classC.htmlD..exe2、不允许作为类及类成员的访问控制符的是(C)。
A.publicB.privateC.staticD.Protected3、设x=1,y=2,z=3,则表达式y+=z--/++x的值是(A)。
A.3B.3.5C.4D.54、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为(A)。
A.static void method()B.public void method()C.final void method()D.abstract void method()5、下列属于容器的组件有:(B)A.JButton B.JPaneC.Canvas D.JTextArea6、v oid的含义:(C)A.方法体为空B.定义的方法没有形参C.定义的方法没有返回值 D.方法的返回值不能参加算术运算7、关于Java中异常的叙述正确的是:(D)A.异常是程序编写过程中代码的语法错误B.异常是程序编写过程中代码的逻辑错误C.异常出现后程序的运行马上中止D.异常是可以捕获和处理的8、下面哪个不是java语言中的关键字?(B)A.longB.sizeofC.instanceofD.Const9、在复选框中移动鼠标,然后单击一选项,要捕获所选项必需实现哪个接口?(D)A.ActionListenerB.MouseListenerC.MouseMotionListernD.ItemListener10、以下有关类的继承的叙述中,正确的是:(D)A子类能直接继承父类所有的非私有属性,也可通过接口继承父类的私有属性B.子类只能继承父类的方法,不能继承父类的属性C.子类只能继承父类的非私有属性,不能继承父类的方法D.子类不能继承父类的私有属性二、填空题1、开发与运行Java程序需要经过的三个主要步骤为编辑源程序、编译生成字节码和解释运行字节码。
电大面向对象程序期末复习题目与答案(精选)一、单选题,在括号内填写正确的选项编号{每小题2分,共20分)1.对象是构成现实世界的一个独立单位,它具有自己的静态特征和()特征。
A.颜色B.动态 c.状态 D 重量2.使用JDK编译Java程序时使用的命令是( )。
A. javaB. javacC. appletviewer D javadoc3.包含主方法的类被称为主类,主方法的存储控制属性应定义为()。
A. finalB. abstractC. short Do static4.在类的定义中,若需要把一个属性或方法定义为类成员,而不是实例成员,则使用的修饰符为( )。
A. constB. finalC. static D public5.JaV3 语言中规定的转义字符,以()字符作前缀。
A. B.I C. / D.\6.把对象的属性和服务组合成一个独立的整体,尽可能隐蔽其内部的细节,这称为对象的()。
A.封装性B.多态'性C.继承性D.开放性7.具有()访问权限的成员能够被本类和其他任何类中的成员所访问。
A. publicB. protectdC. privateD.缺省8.在类定义首部的语法格式中,()不能作为其中的修饰符。
A. publicB. protectdC. extendsD. abstract9.下面的关键字( )与异常处理无关。
A. throwB. throwsC. importD. finally10.下面( )既可以作为流的数据源,又可以作为流的目的地。
A.键盘B.磁盘文件c.显示器D.扫描仪二、是非判断题,在每小题后面括号内打上对号、/表示叙述正确,打上叉号×表示叙述错误11. Java既支持类的单继承,又支持类的多重继承。
( )12.在一个派生类中,能够定义与上层父类中的成员具有相同名称的成员。
( )13.派生类可以直接访问从父类中继承下来的所有成员。
( )14.在Java语言中,可以把实现了一个接口的类对象,赋给这个接口的引用对象。
一、选择填空题(共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++ 第一套试卷一、选择题(共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类的对象。
面向对象程序设计课程期末复习一、填空题1.Java源程序的扩展名是.java ,经过编译后的程序的扩展名是.class 。
2.Socket通常也称为套接字,用于描述IP地址和端口。
3.线程的优先级在0 至31 之间,数值越大任务越紧急4.构造方法是一种特殊的成员方法,构造方法名及类名相同5.Java语言只允许单继承,指每个类只能有一个父类。
6. 在面向对象方法中,类描述的是具有相似属性及操作的一组对象。
7. 对象是Java程序中基本的结构单位。
8. 组件不能独立地显示出来,必须将组件放在一定的容器中才能显示。
9. 能将显示空间分成很多层的布局管理器是CardLayout 。
10. 任何一个Java程序都默认引入一个包,这个包的名字叫ng 。
11. Java语言中,有一个类是所有类或接口的父类,这个类的名称是 Object 。
12. 只能被同一包中的类访问的类中定义的成员变量是default 成员13. J2EE 是大型企业级用容器管理专用组件的应用平台。
14. 在Java语言中,用 abstract 修饰符定义的类为抽象类。
15.Swing中用来表示面板的类是16.执行下列代码后的结果是什么? int x,a=2,b=3,c=4;x=++a+b+++c++;x=1017.java.util包包含了Collection的接口和类的API18.main方法的声明格式包括 public static voidmain(String[]args)19.下列程序中构造了一个SET并且调用其方法add(),输出结果是 1public class A{public int hashCode(){return 1;}public Boolean equals(Object b){return true}public static void main(String args[]){ Set set=new HashSet();set.add(new A());set.add(new A());set.add(new A());System.out.println(set.size());}}20.下列程序的运行结果是 26class A{class Dog{private String name;private int age;public int step;Dog(String s,int a){name=s;age=a;step=0;}public void run(Dog fast){fast.step++;}}public static void main (String args[]){A a=new A();Dog d=a.new Dog("Tom",3);d.step=25;d.run(d);System.out.println(d.step);}}21.Java语言中, final 类不能被继承。
面向对象程序设计习题-填空面向对象程序设计习题-填空题1.在计算机中书写C++语言程序需要用到(编辑器)程序。
2.(链接程序)将编译器输出和各种库函数结合起来,可产生可执行程序。
3.C++语言是面向(对象)的语言。
4.C语言是广为人知的(UNIX )操作系统语言。
5.唯一能让计算机直接理解的语言称为计算机的(机器语言)。
6.面向结构的程序设计方法主要由以下3种逻辑结构组成:顺序结构、(循环结构)和(选择结构)。
7.面向对象的程序设计达到了软件工程的3个目标,即(重用性)、灵活性和扩展性。
8.面向对象系统最主要的特性是(封装性)、(继承性)和多态性。
9.(继承)机制为程序提供了一种组织、构造和重用类的手段。
10.(多态)指对象接收到不同消息时产生不同的行为方式。
11.每一个C++语言程序从(main )函数处开始执行。
12.每个函数体从({)开始,从(})结束。
13.每个C++语言语句以(; )结束。
14.(cin )对象通过键盘输入值。
15.(// )用于为程序做单行注解,提高程序的可读性。
16.(cout )用于在屏幕上打印信息。
17.C++语言使用运算符“<<”和“>>”分别实现(输入)和(输出)。
18.预处理器指令以(# )符号开头。
19.标准命名空间可以简写成为(std )。
20.为了使用C++语言的标准字符串类,必须要包含头文件(string )。
21.布尔型是最简单的数据类型,它有两种表示形式:(true )和(false )。
22.声明枚举的关键字是(enum )。
23.C++语言的数据类型十分丰富,包括基本数据类型、(派生类型)和(类类型)。
24.按照存储空间,整型又可分为短整型、(整型)和(长整型)。
25.C++语言中的(sizeof )运算符,可以用来计算一个特定对象或类型存储时需要的字节数。
26.浮点类型取值范围的定义包含在标准头文件(climits )中。
面向对象程序设计期末综合练习二(填空题)填空题1. C++语言是在_________语言的基础上发展起来的。
2. C++语言的编译单位是扩展名为__________的__________文件。
3. 行尾使用注释的开始标记符为__________。
4. 多行注释的开始标记符和结束标记符分别为__________和__________。
5. 用于输出表达式值的标准输出流对象是_________。
6. 用于从键盘上为变量输入值的标准输入流对象是________。
7. 一个完整程序中必须有一个名为________的函数。
8. 一个函数的函数体就是一条_________语句。
9. 当执行cin语句时,从键盘上输入每个数据后必须接着输入一个________符,然后才能继续输入下一个数据。
10. 在C++程序中包含一个头文件或程序文件的预编译命令为__________。
11. 程序中的预处理命令是指以______字符开头的命令。
12. 一条表达式语句必须以______作为结束符。
13. 在#include命令中所包含的头文件,可以是系统定义的头文件,也可以是________定义的头文件。
14. 使用#include命令可以包含一个头文件,也可以包含一个______文件。
15.一个函数定义由________和________两部分组成。
16.若一个函数的定义处于调用它的函数之前,则在程序开始可以省去该函数的______语句。
17.C++头文件和源程序文件的扩展名分别为______和______。
18.程序文件的编译错误分为________和________两类。
19.当使用_______保留字作为函数类型时,该函数不返回任何值。
20.当函数参数表用______保留字表示时,则表示该参数表为空。
21.从一条函数原型语句“int fun1(void);”可知,该函数的返回类型为______,该函数带有______个参数。
22. 当执行cout语句输出endl数据项时,将使C++显示输出屏幕上的光标从当前位置移动到________的开始位置。
23. 假定x=5,y=6,则表达式x++*++y的值为__________。
24. 假定x=5,y=6,则表达式x--*--y的值为__________。
25. 假定x=5,y=6,则执行表达式y*=x++计算后,x和y的值分别为__________和__________。
26. 假定x=5,y=6,则执行表达式y+=x--计算后,x和y的值分别为__________和__________。
27. C++常数0x145对应的十进制值为__________。
28. C++常数0345对应的十进制值为__________。
29. 十进制常数245对应的十六进制的C++表示为__________。
30. 十进制常数245对应的八进制的C++表示为__________。
31. signed char类型的值域范围是________至__________之间的整数。
32. int和float类型的数据分别占用_________和__________个字节。
33. float和double类型的数据分别占用_________和________个字节。
34. bool和char类型的数据分别占用_________和________个字节。
35. unsigned short int和int类型的长度分别为_________和________。
36. 字符串”This\’s a book.\n ”的长度为__________。
37. 字符串”\nThis\’s a pen\n\n ”的长度为__________。
38. 在C++中存储字符串”abcdef ”至少需要________个字节。
39. 在C++中存储字符串”a+b=c ”至少需要________个字节。
40. 假定x 和y 为整型,其值分别为16和5,则x%y 和x/y 的值分别为__________和__________。
41. 假定x 和y 为整型,其值分别为16和5,则x/y 和double(x)/y 的值分别为__________和__________。
42. 假定x 是一个逻辑量,则x && true 的值为__________。
43. 假定x 是一个逻辑量,则x || true 的值为__________。
44. 假定x 是一个逻辑量,则x && false 的值为__________。
45. 假定x 是一个逻辑量,则x || false 的值为__________。
46. 假定x 是一个逻辑量,则!x || false 的值为__________。
47. 假定x 是一个逻辑量,则x && !x 的值为__________。
48. 假定x 是一个逻辑量,则x || !x 的值为__________。
49. 数学算式xyyx 2+的C++表达式为________________。
50. 数学算式yx xy+3的C++表达式为________________。
51. 数学算式221by ax +的C++表达式为________________。
52. 设enum Printstatus{ready,busy,error}; 则 cout<<busy 的输出结果是________。
53. 设enum Printstatus{ready=2,busy,error}; 则cout<<busy 的输出结果是________。
54. 常数-4.205和6.7E-9分别具有__________和__________位有效数字。
55. 枚举类型中的每个枚举值都是一个__________,它的值为一个__________。
56. 常数100和3.62的数据类型分别为__________和__________。
57. 若x=5, y=10, 则计算y*=++x 表达式后,x 和y 的值分别为______和______。
58. 假定x 和ch 分别为int 型和char 型,则sizeof(x)和sizeof(ch)的值分别为______和______。
59. 假定x=10,则表达式x<=10?20:30的值为______。
60. 表达式sqrt(81)和pow(6,3)的值分别为______和______。
61. 含随机函数的表达式rand()%20的值在_____至______区间内。
62. 在switch 语句中,每个语句标号所含关键字case 后面的表达式必须是_______。
63. 在if 语句中,每个else 关键字与它前面同层次并且最接近的________关键字相配套。
64. 作为语句标号使用的C++保留字case 和defaule 只能用于________语句的定义体中。
65. 执行switch 语句时,在进行作为条件的表达式求值后,将从某个匹配的标号位置起向下执行,当碰到下一个标号位置时(停止/不停止)________执行。
66. 若while 循环的“头”为“while(i++<=10)”,并且i 的初值为0,同时在循环体中不会修改i 的值,则循环体将被重复执行______次后正常结束。
67. 若do 循环的“尾”为“while(++i<10)”,并且i 的初值为0,同时在循环体中不会修改i的值,则循环体将被重复执行______次后正常结束。
68. 当在程序中执行到________语句时,将结束本层循环类语句或switch语句的执行。
69. 当在程序中执行到________语句时,将结束所在循环语句中循环体的一次执行。
70. 在程序中执行到________语句时,将结束所在函数的执行过程,返回到调用该函数的位置。
71.在程序执行完________函数调用后,将结束整个程序的执行过程,返回到C++集成开发窗口。
72. 元素类型为int的数组a[10]共占用________字节的存储空间。
73. 元素类型为double的二维数组a[4][6]共占用________字节的存储空间。
74. 元素类型为char的二维数组a[10][30]共占用________字节的存储空间。
75. 存储字符’a’和字符串”a”分别需要占用________和________个字节。
76. 空串的长度为________,存储它需要占用________个字节。
77. 字符串”\’a\’xy=4\n”的长度为________。
78. 字符串”a:\\xxk\\数据”的长度为________。
79. 用于存储一个长度为n的字符串的字符数组的长度至少为________。
80. 若a是一个字符数组,则从键盘上向该数组输入一个字符串的表达式为__________。
81. 若a是一个字符数组,则向屏幕输出a中所存字符串的表达式为__________。
82. 一个二维字符数组a[10][20]能够存储________个字符串,每个字符串的长度至多为________。
83. 对一个二维字符数组a进行初始化的数据为{”123”,”456”,”789”},则a[1]元素对应的字符串为__________。
84. strlen(”apple”)的值为________,strcmp(”a”,”A”)的值为________。
5 185. 若需要把一个字符串”aaa”赋值到字符数组a中,则需要执行________函数的调用来实现。
85. 假定对数组a[]进行初始化的数据为{2,7,9,6,5,7,10},则a[2]和a[5]分别被初始化为________和________。
86. 假定对二维数组a[3][4]进行初始化的数据为{{3,5,6},{2,8},{7}},则a[1][1]和a[2][3]分别被初始化为_______和________。
87. 在C++语言中,一个函数由函数头和__________组成。
88. 重载一个函数的条件是:该函数必须在参数的个数或参数的__________上与其它同名函数有所不同。
89. 如果一个函数只允许同一程序中的函数调用,则应在该函数定义前加上__________C++保留字。
90. 若“double x=100;”是文件F1.CPP中的一个全局变量定义语句,若文件F2.CPP中的某个函数需要访问此x , 则应在文件F2.CPP中添加对x的声明语句为_________________。
91. 定义一个函数模板要用到的第一个修饰符是____________。
92. 在函数模板的参数中,用class修饰的参数称为__________参数。