《面向对象程序设计》习题三答案
- 格式:doc
- 大小:43.50 KB
- 文档页数:4
学堂在线《面向对象程序设计C++》习题(作业部分)作业一多选题(2分)C++源程序不能直接运行,需要经过如下哪些步骤,才能得到可以运行的程序?A.编译器B.链接器C.汇编器D.编辑器正确答案:AB判断题(1分)C++源程序必须使用两个以上的文件来存放,才能编译链接成可执行程序。
正确答案:×多选题(2分)关于main()函数的参数,以下说法正确的是A.不使用参数也是允许的B.若带参数,则第一个参数是整数类型C.若带参数,则第二个参数是字符串数组D.参数名称只能使用argc和argv正确答案:ABC多选题(2分)为防止头文件重复包含,以下书写错误的是A.错误B.错误C.错误D.错误正确答案:ABCD作业二多选题(2分)下列哪些语句可以完成对数组的初始化A.char name[10] = "THU OOP";B.char course[4] {'O', 'O', 'P'};C.int year[5] {2016, 2017, 2018};D.int score[] = {60, 80, 90};正确答案:ABCD多选题(2分)下列哪些写法不正确A.int* ptr = new int;B.int* ptr = new int(3);C.int * ptr = new int[3];D.int* ptr = new int{3};E.int* ptr = new[] int;F.int ** ptr = new int[4][5];正确答案:EF多选题(2分)下列关于for循环语句的写法,正确的是:A.第1句B.第2句C.第3句D.第4句正确答案:ABCD判断题(1分)函数重载时,函数名必须一样,函数参数必须不同,至于函数返回值类型,则没有限定。
正确答案:√单选题(1分)以下关于函数参数缺省值的说法,正确的是:A.当有多个函数参数时,任意一个都可以设置缺省值B.若只有一个参数,则不能设置缺省值C.只有整数参数才能设置缺省值D.仅允许从函数参数列表的最后一个开始依次设置缺省值(一个或多个)正确答案:D判断题(1分)函数返回类型,既可以放在函数名前面(左边),也可以使用追踪返回类型的语法放到函数名的后面(右边)正确答案:√多选题(2分)关于类成员的访问权限,以下说法正确的是:A.访问权限可以成组设置B.相同权限的成员,可以共用一个权限设置C.同一权限说明不能出现多次D.private必须在public之前出现正确答案:AB单选题(1分)下列关于私有成员的说法,正确的是A.即使是类的成员函数,也不能访问私有成员B.对象通过成员操作符,是可以访问自己隐藏的私有成员的C.私有数据只能被私有成员函数访问,不能被公有成员函数访问D.私有数据成员不能与公有数据成员同名正确答案:D多选题(2分)关于类的成员函数定义,以下说法正确的是:A.既可以放在类中定义,也可以放在类外定义B.在类外定义时,函数名前要加”类名::“进行限定C.只有私有成员函数才能在类中进行定义D.私有成员函数只能在定中进行定义正确答案:AB判断题(1分)所谓this指针,只是一种概念,是为了帮助我们理解类的运作方式而引入的,实际上在成员函数的参数列表中并没有这种变量被传入。
聊城大学计算机学院面向对象的程序设计第三次作业一、单选题(本大题共17小题,每题3分,共51分):1、在下列函数原型中,可以作为类AA构造函数的是()。
A void AA(int);B int AA( );C AA(int) const;D AA(int);2、下列选项中,哪一项功能是对对象进行初始化()。
A 析构函数B 数据成员C 构造函数D 静态成员函数3、假定A为类名,执行A x;语句时将自动调用该类的()。
A 有参构造函数B 无参构造函数C 拷贝构造函数D 赋值构造函数4、下列关于构造函数的说法,错误的是()。
A 系统可以提供默认的构造函数B 构造函数可以有参数,所以可以有返回值C 构造函数可以重载D 构造函数可以设置默认参数5、有如下类定义:class Point{int x, y;public:Point__________:x_(0), y_(0){}Point(int x, int y = 0):x_(x), y_(y){}};若执行语句:Point a(2), b[3], *c[4];则Point类的构造函数被调用的次数是()。
A 2次B 3次C 4次D 5次6、在下面的类定义中class sample{public:sample(int val); //①~sample( ); //②private:int a=2.5; //③public:sample( ); //④};其中错误的语句是()。
A ①B ②C ③D ④7、假定一个类的构造函数为A(int i = 4, int j = 0) { a = i; b = j;}则执行A x(1)语句后,x.a和x.b的值分别为()。
A 1和0B 1和4C 4和0D 4和18、下列关于构造函数的描述中,错误的是()。
A 构造函数可以设置默认参数B 构造函数在定义类对象时自动执行C 构造函数可以是内联函数D 构造函数不可重载9、下列选项中,哪一项不是构造函数的特征()。
第三部分面向对象程序设计1、引用数据类型变量具有基本属性为(ABCD)A、变量名B、数据类型C、存储单元D、变量值。
2、面向对象技术的特性是(ACD)A、继承性B、有效性C、多态性D、封装性。
3、下列哪个命题为真?(C)A、所有类都必须定义一个构造函数。
B、构造函数必须有返回值。
C、构造函数可以访问类的非静态成员。
D、构造函数必须初始化类的所有数据成员。
4、关于子类与父类关系的描述正确的是(ACD)A、子类型的数据可以隐式转换为其父类型的数据;B、父类型的数据可以隐式转换为其子类型的数据;C、父类型的数据必须通过显示类型转换为其子类型的数据;D、子类型实例也是父类型的实例对象。
5、下列哪一项说法最好地描述了Java中的对象?(C)A、对象是通过import命令引入到程序中的所有事情B、对象是方法的集合,这些方法在小程序窗口或应用程序窗口中产生图形元素,或者计算和返回值C、对象是一种数据结构,它具有操作数据的方法D、对象是一组具有共同的结构和行为的类6、下面哪个关键字不是用来控制对类成员的访问的?(C)A、publicB、protectedC、defaultD、private7、Java语言正确的常量修饰符应该是(D)A、finalB、static finalC、staticD、public static final;8、接口的所有成员域都具有public 、static和final 属性。
9、接口的所有成员方法都具有public 和abstract 属性。
10、编译下列源程序会得到哪些文件?(C)class A1{}class A2{}public class B{public static void main(String args[]){}}A) 只有B.classB)只有A1.class和A2.class文件C)有A1.class、A2.class和B.class文件D) 编译不成功11、下列哪种说法是正确的?(A)A、私有方法不能被子类覆盖。
JAVA程序设计习题附答案(三)第三部分面向对象程序设计1、引用数据类型变量具有基本属性为(ABCD)A、变量名B、数据类型C、存储单元D、变量值。
2、面向对象技术的特性是(ACD)A、继承性B、有效性C、多态性D、封装性。
3、下列哪个命题为真?(C)A、所有类都必须定义一个构造函数。
B、构造函数必须有返回值。
C、构造函数可以访问类的非静态成员。
D、构造函数必须初始化类的所有数据成员。
4、关于子类与父类关系的描述正确的是(ACD)A、子类型的数据可以隐式转换为其父类型的数据;B、父类型的数据可以隐式转换为其子类型的数据;C、父类型的数据必须通过显示类型转换为其子类型的数据;D、子类型实例也是父类型的实例对象。
5、下列哪一项说法最好地描述了Java中的对象?(C)A、对象是通过import命令引入到程序中的所有事情B、对象是方法的集合,这些方法在小程序窗口或应用程序窗口中产生图形元素,或者计算和返回值C、对象是一种数据结构,它具有操作数据的方法D、对象是一组具有共同的结构和行为的类6、下面哪个关键字不是用来控制对类成员的访问的?(C)A、publicB、protectedC、defaultD、private7、Java语言正确的常量修饰符应该是(D)A、finalB、static finalC、staticD、public static final;8、接口的所有成员域都具有public、static和final属性。
9、接口的所有成员方法都具有public和abstract属性。
10、编译下列源程序会得到哪些文件?(C)class A1{}class A2{}public class B{public static void main(String args[]){}}A)只有B.classB)只有A1.class和A2.class文件C)有A1.class、A2.class和B.class文件D)编译不成功11、下列哪种说法是正确的?(A)A、私有方法不能被子类覆盖。
江南大学网络教育第三阶段江南大学练习题答案共三个阶段,这是其中一个阶段,答案在最后。
考试科目:《面向对象的程序设计》第章至第章(总分100分)__________学习中心(教学点)批次:层次:专业:学号:身份证号:姓名:得分:一单选题 (共8题,总分值8分,下列选项中有且仅有一个选项符合题目要求,请在答题卡上正确填涂。
)1. 关于函数模板,描述错误的是()。
(1 分)A. 函数模板必须由程序员实例化为可执行的函数模板B. 函数模板的实例化由编辑器实现C. 一个类定义中,只要有一个函数模板,则这个类是类模板D. 类模板的成员函数都是函数模板,类模板实例化后,成员函数也随之实例化2. 关于read()函数的下列描述中,()是正确的。
(1 分)A. 该函数只能从键盘输入中获取字符串B. 该函数只能用于文本文件的操作C. 该函数只能按规定读取指定数目的字符D. 从输入流中读取一行字符3. 在ios类中提供的控制格式标志字中,()是转换为十六进制形式的标志常量。
(1 分)A. hexB. octC. decD. right4. 进行文件输人操作时应包含()文件。
(1 分)A. ifstream.hB. fstream.hC. ofstream.hD. iostream.h5. 关于异常的描述中,错误的是()。
(1 分)A. 异常既可以被硬件引发,又可以被软件引发B. 运行异常可以预料,但不能避免,它是由系统运行环境造成的C. 异常是指从发生问题的代码区域传递到处理问题的代码区域的一个对象D. 在程序运行中,一旦发生异常,程序立即中断运行6. 假设有函数模板定义如下:template<typename T>Max(T a, T b, T &c){c = a + b;}下列选项正确的是()。
(1 分)A. float x, y; float z; Max(x, y, z);B. int x; float y, z; Max(x, y, z);C. int x, y; float z; Max(x, y, z);D. float x; double y, z; Max(x, y, z);7. 关于对getline()函数的下列描述中,()是错误的。
面向对象程序设计一、选择填空1. 关于C + +与C语言的关系描述中,(D)是错误的。
(A)C语言是C + +的一个子集 (B) C语言与C++是兼容的(C) C++对C语言进行了一些改进(D) C++和C语言都是面向对象的2. 下面关于对象概念的描述中,(B)是错误的。
(A )对象就是C语言的结构变量(B)对象代表着正在创建的系统中的一个实体(C)对象是一个状态的操作(或方法)的封装体(D)对象之间的信息传递是通过消息进行的3. 下面关于类概念的描述中,(D)是错误的。
(A )类是抽象数据类型的实现(B )类是具有共同行为的若干对象的统一描述体(C)类是创建对象的样板(D)类就是C语言的结构类型4. 按照标识符的要求,(A )符号不能组成标识符。
(A )连接符 (B)下划线 (C)大小写字母 (D)数字字符5. 下列符号中,(C)不可作为分隔符。
(A), (B) : (C)? ( D);6. 在16位机中,int型字宽为(A)字节。
(A ) 2 ( B) 4 ( C) 6 (D) 87. 类型修饰符unsigned修饰(D)类型是错误的。
(A)char ( B) int (C) long int (D) float& 对于int *pa[5];的描述,(D)是正确的。
(A)pa是一个指向数组的指针,所指向的数组是5个int型元素(B)pa是一个指向某数组中第5个元素的指针,该元素是int变量(C)pa[5]表示某个数组的第5个元素(D)pa是一个具有5个元素的指针数组,每个元素是一个int型指针。
9. 下列关于指针的运算中,(D)是非法的。
(A)两个指针在一定条件下,可以进行相等或不等的运算。
(B)可以有一个空指针赋值给某个指针。
(C)一个指针可以加上一个整数。
(D)两个指针在一定条件下,可以相加。
10. 指针可以用来表示数组元素,下列表示中( A )是错误的。
已知:int a[3][7];(A)*(a+1)[5] ( B) *(*a+3) (C) *(*(a+1)) (D) *(&a[0][0]+2)11. 下列表示引用的方法中,(A )是正确的。
面向对象程序设计模拟练习题(含答案)一、单选题(共50题,每题1分,共50分)1、下列关于JDK和JRE的说法中,错误的是()A、JDK是java开发核心组件,是用来编译解释java程序的核心组件B、JDK包括Java编译器、Java文档生成工具、Java打包工具等C、JRE是个单独的软件,所以安装JDK后,还需要单独安装JRED、JRE是java运行环境,用来支持java程序的运行正确答案:C2、下列File类的构造方法格式,错误的是()A、File(File parent)B、File(String pathname)C、File(String parent,String child)D、File(URI url)正确答案:A答案解析:A选项,正确的应该是File(File parent, String child)3、下列关于静态变量的描述中,错误的是()A、静态变量指的是被static修饰的变量B、静态变量是随着类的加载而加载C、静态变量可以被所有的实例对象共享D、静态变量同成员变量一样,都需要通过实例对象来调用正确答案:D答案解析:静态变量是通过“类名.变量名”“方式调用的。
4、下列对于Runtime的描述中,正确的是()A、每一个Java应用程序运行时都产生一个Runtime类实例B、Runtime实例可以将应用程序和运行环境相结合C、Runtime类有构造函数D、Runtime实例需要被创建后才可以通过getRuntime()方法获取正确答案:A答案解析:Runtime类用于表示虚拟机运行时的状态,它用于封装JVM虚拟机进程。
每次使用java命令启动虚拟机都对应一个Runtime实例,并且只有一个实例,因此该类采用单例模式进行设计,可以通过getRuntime()方法获得一个Runtime实例。
5、下列关于LinkedList类的方法,不是从List接口中继承而来的是()A、toArray()B、pop()C、remove()D、isEmpty()正确答案:B答案解析:pop()方法表示移除并返回此列表的第一个元素,是LinkedList特有的方法。
第三部分面向对象程序设计1、引用数据类型变量具有基本属性为(ABCD)A、变量名B、数据类型C、存储单元D、变量值。
2、面向对象技术的特性是(ACD)A、继承性B、有效性C、多态性D、封装性。
3、下列哪个命题为真?(C)A、所有类都必须定义一个构造函数。
B、构造函数必须有返回值。
C、构造函数可以访问类的非静态成员。
D、构造函数必须初始化类的所有数据成员。
4、关于子类与父类关系的描述正确的是(ACD)A、子类型的数据可以隐式转换为其父类型的数据;B、父类型的数据可以隐式转换为其子类型的数据;C、父类型的数据必须通过显示类型转换为其子类型的数据;D、子类型实例也是父类型的实例对象。
5、下列哪一项说法最好地描述了Java中的对象?(C)A、对象是通过import命令引入到程序中的所有事情B、对象是方法的集合,这些方法在小程序窗口或应用程序窗口中产生图形元素,或者计算和返回值C、对象是一种数据结构,它具有操作数据的方法D、对象是一组具有共同的结构和行为的类6、下面哪个关键字不是用来控制对类成员的访问的?(C)A、publicB、protectedC、defaultD、private7、Java语言正确的常量修饰符应该是(D)A、finalB、static finalC、staticD、public static final;8、接口的所有成员域都具有public 、static和final 属性。
9、接口的所有成员方法都具有public 和abstract 属性。
10、编译下列源程序会得到哪些文件?(C)class A1{}class A2{}public class B{public static void main(String args[]){}}A) 只有B.classB)只有A1.class和A2.class文件C)有A1.class、A2.class和B.class文件D) 编译不成功11、下列哪种说法是正确的?(A)A、私有方法不能被子类覆盖。
江南大学网络教育第三阶段练习题考试科目:《面向对象的程序设计》第章至第章(总分100分)__________学习中心(教学点)批次:层次:专业:学号:身份证号:姓名:得分:一单选题 (共8题,总分值8分,下列选项中有且仅有一个选项符合题目要求,请在答题卡上正确填涂。
)1. 在打开磁盘文件的访问方式常量中,(C )是以追加方式打开文件的。
(1 分)A. inB. outC. appD. ate2. catch(···)一般放在其他catch子句的后面,该子句的作用是(B )。
(1 分)A. 抛掷异常B. 捕获所有类型的异常C. 检测并处理异常D. 有语法错误3. 建立类模板对象的实例化过程为(C )。
(1 分)A. 基类-->派生类B. 构造函数-->对象C. 模板类-->对象D. 模板类-->模板函数4. 下列输出字符'A’的方法中,(B )是错误的。
(1 分)A. cout<<'A';B. cout<<put('A');C. cout. put('A');D. char= 'A' ;cout<<a;5. 使用控制符进行格式输出时,应包含(C )文件。
(1 分)A. iostream.hB. math.hC. iomanip.hD. fstream.h6. 下列选项中,用于清除基数格式位设置以八进制输出的语句是(C )。
(1 分)A. cout<<setf(ios :: dec ,ios :: basefield) ;B. cout<<setf(ios :: hex ,ios :: basefield) ;C. cout<<setf(ios :: oct ,ios :: basefield);D. cin>>setf(ios :: hex ,ios :: basefield);7. 假定已定义整型变量data,以二进制方式把data的值写人输出文件流对象outfile中去,正确的语句是(C )。
第二章2-4#include <iostream>using namespace std;Add(int a,int b);int main(){int x,y,sum;cout<<"please input x and y:";cin>>x>>y;sum = add(x,y);cout <<x<<"+"<<y<<"="<<sum<<endl;}Add(int a,int b){return a+b;}2-5(1)this is a C++ program.(2)x=50.6 y=10 z=Ax=216.34 y=10 z=Ax=216.34 y=2 z=Ax=216.34 y=2 z=E(3)x y z500 10000500 15001500500 200 15002-6#include <iostream>using namespace std;int main(){int *p,*init;int countp=0;int countn=0;p = new int[20];init = p;for(int i=0;i<20;i++){cin>>*p;p++;}p = p-20;for( i=0;i<20;i++){if(*p>0) countp++;if(*p<0) countn++;cout<<*p<<" ";p++;}cout<<"正数有 :"<<countp<<endl; cout<<"负数有 :"<<countn<<endl;p = init;delete[] p;return 0;}2-7 不做要求#include <iostream>//#include <string>using namespace std;void checkagescore(string name,int age) {if (name == "exit") throw name;if(age<0||age>50)throw age;}int main(){string name;int age;for(int i=0 ;i<5 ;i++ ){cin.ignore ();getline(cin,name );cin>>age ;try{checkagescore(name,age);}catch( string){cout<<"exception :name is exit"<<endl;continue;}catch(int){cout<<"exception :age is not proper"<<endl;continue;}cout<<"name:"<<name<<"age :"<<age<<endl;}return 0;}第三章3-1(1)A (2)C (3)B (4)C (5)C(6)B(7)B(8)C(9)C3-7(1)main()函数中p1.age = 30;语句是错误的。
《面向对象程序设计》习题三答案一、单项选择题(本大题共25小题,每小题2分,共50分)1、用“>>”运算符从键盘输入多于一个数据时,各数据之间应使用( D )符号作为分隔符。
A、空格或逗号B、逗号或回车C、逗号或分号D、空格或回车2、C++中声明常量的关键字是( A )。
A、constB、externC、publicD、enum3、以下叙述中正确的是( B )A、使用#define可以为常量定义一个名字,该名字在程序中可以再赋另外的值B、使用const定义的常量名有类型之分,其值在程序运行时是不可改变的C、在程序中使用内置函数使程序的可读性变差D、在定义函数时可以在形参表的任何位置给出缺省形参值4、下列的符号常变量定义中,错误的定义是( C )。
A、const M=10;B、const int M=20;C、const char ch;D、const bool mark=true;5、函数原型语句正确的是( B )。
A、int Function(void a)B、void Function (int);C、int Function(a);D、void int(double a);6、在关键字private后面定义的成员为类的( A )成员。
A、私有B、公用C、保护D、任何7、在一个类的定义中,包含有( C )成员的定义。
A、数据B、函数C、数据和函数D、数据或函数8、在类作用域中能够通过直接使用该类的( D )成员名进行访问。
A、私有B、公用C、保护D、任何9、在关键字public后面定义的成员为类的( B )成员。
A、私有B、公用C、保护D、任何10、类中定义的成员默认为( B )访问属性。
A、publicB、privateC、protectedD、friend11、每个类( C )构造函数。
A、只能有一个B、可以有公用的C、可以有多个D、只可有缺省的12、对类对象成员的初始化是通过构造函数中给出的( B )实现的。
《VFP面向对象程序设计》课程习题集及参考答案2011年6月第一章数据库基本理论一、判断题1.数据处理的目的就是从原始数据中得到有用的信息。
A.对*B.错2.关系模型的结构可以看作是一个数据库的结构。
A.对*B.错3.数据库管理系统是数据库系统的核心。
A.对*B.错4. VFP 系统为用户提供了命令操作方式、菜单操作方式和程序操作方式。
A.对*B.错二、单选题1.将数据集中起来以一定的组织方式存放在计算机的外部存储器中,就构成了。
*A.数据库 B.数据集合 C.数据操作系统 D.数据库管理系统2.数据库系统的构成有数据库、计算机硬件系统、用户和。
A.操作系统B.文件系统C.数据集合*D.数据库管理系统3.数据库、数据库系统、数据库管理系统这三者之间的关系是。
*A. 数据库系统包含数据库和数据库管理系统B. 数据库管理系统包含数据库和数据库系统C. 数据库包含数据库系统和数据库管理系统D. 数据库系统就是数据库,也就是数据库管理系统4.关系数据库管理系统所管理的关系是。
A.一个DBF文件*B.若干个二维表C.一个DBC文件D.若干个DBC文件5.在关系数据库管理系统中,一个关系对应一个。
A.字段B.记录*C.数据表D.索引文件6.关系数据库管理系统存储与管理数据的基本形式是。
A.关系树*B.二维表C.结点路径D.文本文件7.数据库是按一定结构存储在一起的。
A.程序集合*B.数据集合C.运算式集合D.函数集合8.在有关数据库的概念中,若干记录的集合称为。
A.字段B.数据库C.数据项*D.数据表9.VFP6.0 DBMS是基于关系型数据模型的。
A.操作系统的一部分*B.操作系统支持下的系统软件C.一种编译程序D.一种操作系统10.在关系运算中,查找满足一定条件的元组运算称之为。
A.复制*B.选择C.投影D.关联11.如果要改变一个关系中属性的排列顺序,应使用的关系运算是。
A.重建B.选取*C.投影D.连接12.在有关数据库的概念中,若干记录的集合称为________。
面向对象程序设计课后习题答案第一章:面向对象程序设计概述[1_1]什么是面向对象程序设计?面向对象程序设计是一种新型的程序设计范型。
这种范型的主要特征是:程序=对象+消息。
面向对象程序的基本元素是对象,面向对象程序的主要结构特点是:第一:程序一般类的定义和类的使用两部分组成,在主程序中定义各对象并规定它们之间传递消息的规律。
第二:程序中的一切操作都是通过向对象发送消息来实现的,对象接受到消息后,启动有关方法完成相应的操作。
面向对象程序设计方法模拟人类习惯的解题方法,代表了计算机程序设计新颖的思维方式。
这种方法的提出是软件开发方法的一场革命,是目前解决软件开发面临困难的最有希望、最有前途的方法之一。
[1_2]什么是类?什么是对象?对象与类的关系是什么?在面向对象程序设计中,对象是描述其属性的数据以及对这些数据施加的一组操作封装在一起构成的统一体。
对象可以认为是:数据+操作在面向对象程序设计中,类就是具有相同的数据和相同的操作的一组对象的集合,也就是说,类是对具有相同数据结构和相同操作的一类对象的描述。
类和对象之间的关系是抽象和具体的关系。
类是多个对象进行综合抽象的结果,一个对象是类的一个实例。
在面向对象程序设计中,总是先声明类,再类生成对象。
类是建立对象的“摸板”,按照这个摸板所建立的一个个具体的对象,就是类的实际例子,通常称为实例。
[1_3]现实世界中的对象有哪些特征?请举例说明。
对象是现实世界中的一个实体,其具有以下一些特征:每一个对象必须有一个名字以区别于其他对象。
需要用属性来描述它的某些特性。
有一组操作,每一个操作决定了对象的一种行为。
对象的操作可以分为两类:一类是自身所承受的操作,一类是施加于其他对象的操作。
例如:雇员刘名是一个对象对象名:刘名对象的属性:年龄:36 生日:工资:2000 部门:人事部对象的操作:吃饭开车[1_4]什么是消息?消息具有什么性质?在面向对象程序设计中,一个对象向另一个对象发出的请求被称为“消息”。
JAVA语言与面向对象程序设计课后习题答案第1章面向对象软件开发概述1.简述面向过程问题求解和面向对象问题求解的异同。
试列举出面向对象和面向过程的编程语言各两种。
请问:面向过程问题解,以具体内容的解题过程为研究和同时实现的主体,其思维特点更吻合于计算机;面向对象的问题解,则就是以d对象‖为主体,d对象‖就是现实世界的实体或概念在计算机逻辑中的抽象化则表示,更吻合于人的思维特点。
面向过程的编程语言:c,pascal,foratn。
面向对象的编程语言:c++,java,c#。
2.详述对象、类和实体及它们之间的相互关系。
尝试从日常碰触至的人或物中抽象化出来对象的概念。
答:面向对象技术中的对象就是现实世界中某个具体的物理实体在计算机逻辑中的映射和体现。
类是同种对象的集合与抽象。
类是一种抽象的数据类型,它是所有具有一定共性的对象的抽象,而属于类的某一个对象则被称为是类的一个实例,是类的一次实例化的结果。
如果类是抽象的概念,如d电视机‖,那么对象就是某一个具体的电视机,如d我家那台电视机‖。
3.对象存有哪些属性?什么就是状态?什么就是犯罪行为?二者之间有何关系?建有对象d学生‖,精义这个对象设计状态与犯罪行为。
答:对象都具有状态和行为。
对象的状态又称作对象的静态属性,主要指对象内部所涵盖的各种信息,也就是变量。
每个对象个体都具备自己专有的内部变量,这些变量的值标明了对象所处的状态。
行为又称为对象的操作,它主要表述对象的动态属性,操作的作用是设置或改变对象的状态。
学生的状态:姓名、性别、年龄、所在学校、所在系别、通讯地址、电话号码、入学成绩等;学生的行为:自我介绍、入学注册、选课、参加比赛等。
4.对象间存有哪三种关系?对象d班级‖与对象d学生‖就是什么关系?对象d学生‖与对象d大学生‖就是什么关系?答:对象间可能存在的关系有三种:包含、继承和关联。
对象d班级‖与对象d学生‖是包含关系。
对象d学生‖与对象d大学生‖是继承关系。
《JAV A语言程序设计》练习题 1一、单选择题1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( )。
A. .javaB. .classC. .htmlD. .exe2、设x = 1 , y = 2 , z = 3 ,则表达式y+=z--/++x 的值是( )。
A. 3B. 3. 5C. 4D. 53、不允许作为类及类成员的访问控制符的是( )。
A. publicB. privateC. staticD. protected4、为AB 类的一个无形式参数无返回值的方法method 书写方法头,使得使用类名AB 作为前缀就可以调用它,该方法头的形式为( )。
A. static void method( )B. public void method( )C. final void method( )D. abstract void method( )5、给定java 代码如下,编译运行后,输出结果是( )(选择一项)。
public class test {static int i;public int aMethod() {i++;return i;}public static void main (String args[]) {Test test=new Test() ;test.aMethod () ;System.out.println (test.aMethod()) ;} }a) 0 b) 1 c) 2 d) 3二、填空题1、开发与运行Java程序需要经过的三个主要步骤为编辑源程序、编译生成字节码和解释运行字节码。
2、在Java 的基本数据类型中,char 型采用Unicode 编码方案,每个Unicode 码占用 2 字节内存空间,这样,无论是中文字符还是英文字符,都是占用 2 字节内存空间。
3、设x = 2 ,则表达式( x + + ) /3 的值是0 。
面向对象分析与设计(第二版)习题答案第一章:面向对象基础知识1.1 什么是面向对象分析和设计?面向对象分析和设计(Object-Oriented Analysis and Design,OOAD)是软件工程中一种常用的方法论,通过将问题领域进行建模,通过对象、类、继承、封装等概念来描述现实世界中的实体、关系和行为。
面向对象分析和设计的目标是开发出可复用、可维护、可扩展、高质量的软件系统。
1.2 面向对象分析和设计的优势有哪些?面向对象分析和设计有以下优势: - 高度模块化:通过将系统划分为多个独立的对象,便于理解和设计系统的各个部分。
- 可复用性:面向对象设计强调对象的复用,通过定义通用的类和接口,可以提高代码的复用程度。
- 可维护性:面向对象的封装特性使得系统的各个部分具有独立性,便于维护和修改。
- 可扩展性:通过继承和多态等特性,可以方便地扩展和修改系统的功能。
- 高可靠性:面向对象的封装和隐藏特性可以减少系统中的错误和安全漏洞。
- 开发效率高:面向对象的分析和设计提供了一种更自然的思考和描述问题的方法,可以提高开发效率。
第二章:面向对象建模2.1 对象的特征有哪些?对象具有以下特征: - 状态(State):对象的状态是对象的属性值的集合,表示对象的某个时刻的状态。
- 行为(Behavior):对象可以执行的操作,描述了对象能够做什么。
- 身份(Identity):每个对象都有唯一的身份,可以通过身份来区分不同的对象。
2.2 类和对象之间的关系有哪些?类和对象之间有以下关系: - 实例化(Instantiation):类是对象的模板,对象是类的一个具体实例。
- 继承(Inheritance):一个类可以继承另一个类的属性和方法。
- 聚合(Aggregation):一个类可以包含其他类的对象作为成员变量。
- 关联(Association):两个类之间存在某种关系,一个类的对象可以访问另一个类的对象。
C++面向对象程序设计课后答案(1-4章)第一章:面向对象程序设计概述[1_1]什么是面向对象程序设计?面向对象程序设计是一种新型的程序设计范型。
这种范型的主要特征是:程序=对象+消息。
面向对象程序的基本元素是对象,面向对象程序的主要结构特点是:第一:程序一般由类的定义和类的使用两部分组成,在主程序中定义各对象并规定它们之间传递消息的规律。
第二:程序中的一切操作都是通过向对象发送消息来实现的,对象接受到消息后,启动有关方法完成相应的操作。
面向对象程序设计方法模拟人类习惯的解题方法,代表了计算机程序设计新颖的思维方式。
这种方法的提出是软件开发方法的一场革命,是目前解决软件开发面临困难的最有希望、最有前途的方法之一。
[1_2]什么是类?什么是对象?对象与类的关系是什么?在面向对象程序设计中,对象是描述其属性的数据以及对这些数据施加的一组操作封装在一起构成的统一体。
对象可以认为是:数据+操作在面向对象程序设计中,类就是具有相同的数据和相同的操作的一组对象的集合,也就是说,类是对具有相同数据结构和相同操作的一类对象的描述。
类和对象之间的关系是抽象和具体的关系。
类是多个对象进行综合抽象的结果,一个对象是类的一个实例。
在面向对象程序设计中,总是先声明类,再由类生成对象。
类是建立对象的“摸板”,按照这个摸板所建立的一个个具体的对象,就是类的实际例子,通常称为实例。
[1_3]现实世界中的对象有哪些特征?请举例说明。
对象是现实世界中的一个实体,其具有以下一些特征:(1)每一个对象必须有一个名字以区别于其他对象。
(2)需要用属性来描述它的某些特性。
(3)有一组操作,每一个操作决定了对象的一种行为。
(4)对象的操作可以分为两类:一类是自身所承受的操作,一类是施加于其他对象的操作。
例如:雇员刘名是一个对象对象名:刘名对象的属性:年龄:36 生日:1966.10.1 工资:2000 部门:人事部对象的操作:吃饭开车[1_4]什么是消息?消息具有什么性质?在面向对象程序设计中,一个对象向另一个对象发出的请求被称为“消息”。
《面向对象程序设计》习题三答案
一、单项选择题(本大题共25小题,每小题2分,共50分)
1、用“>>”运算符从键盘输入多于一个数据时,各数据之间应使用( D )符号作为分隔符。
A、空格或逗号
B、逗号或回车
C、逗号或分号
D、空格或回车
2、C++中声明常量的关键字是( A )。
A、const
B、extern
C、public
D、enum
3、以下叙述中正确的是( B )
A、使用#define可以为常量定义一个名字,该名字在程序中可以再赋另外的值
B、使用const定义的常量名有类型之分,其值在程序运行时是不可改变的
C、在程序中使用内置函数使程序的可读性变差
D、在定义函数时可以在形参表的任何位置给出缺省形参值
4、下列的符号常变量定义中,错误的定义是( C )。
A、const M=10;
B、const int M=20;
C、const char ch;
D、const bool mark=true;
5、函数原型语句正确的是( B )。
A、int Function(void a)
B、void Function (int);
C、int Function(a);
D、void int(double a);
6、在关键字private后面定义的成员为类的( A )成员。
A、私有
B、公用
C、保护
D、任何
7、在一个类的定义中,包含有( C )成员的定义。
A、数据
B、函数
C、数据和函数
D、数据或函数
8、在类作用域中能够通过直接使用该类的( D )成员名进行访问。
A、私有
B、公用
C、保护
D、任何
9、在关键字public后面定义的成员为类的( B )成员。
A、私有
B、公用
C、保护
D、任何
10、类中定义的成员默认为( B )访问属性。
A、public
B、private
C、protected
D、friend
11、每个类( C )构造函数。
A、只能有一个
B、可以有公用的
C、可以有多个
D、只可有缺省的
12、对类对象成员的初始化是通过构造函数中给出的( B )实现的。
A、函数体
B、参数初始化表
C、参数表
D、参数初始化表或函数体
13、假定AB为一个类,则执行“AB x;”语句时将自动调用该类的 ( B ).。
A、有参构造函数
B、无参构造函数
C、复制构造函数
D、赋值重载函数
14、假定AB为一个类,则执行“AB x(a,5);”语句时将自动调用该类的 ( A )。
A、带参构造函数
B、无参构造函数
C、复制构造函数
D、赋值重载函数
15、假定CTest为一个类,并且有一无默认值的的有参构造函数和一无参构造函数,则执行“CTest objTest;”语句时将自动调用该类的( B )。
A、有参构造函数
B、无参构造函数
C、复制构造函数
D、赋值构造函数
16、在重载一个运算符时,其参数表中没有任何参数,这表明该运算符是( B )。
A、作为友元函数重载的1元运算符
B、作为成员函数重载的1元运算符
C、作为友元函数重载的2元运算符
D、作为成员函数重载的2元运算符
17、在成员函数中进行双目运算符重载时,其参数表中应带有( B )个参数。
A、0
B、1
C、2
D、3
18、双目运算符重载为普通函数时,其参数表中应带有( C )个参数。
A、0
B、1
C、2
D、3
19、如果表达式a+b中的“+”是作为成员函数重载的运算符,若采用运算符函数调用格式,则可表示为( A )。
A、a.operator+(b)
B、b.operator+(a)
C、operator+(a,b)
D、operator(a+b)
20、如果表达式a==b中的“==”是作为普通函数重载的运算符,若采用运算符函数调用格式,则
可表示为( C )。
A、a.operator==(b)
B、b.operator==(a)
C、operator==(a,b)
D、operator==(b,a)
21、派生类的成员函数可以直接访问基类的( B )成员。
A、所有
B、公有和保护
C、保护和私有
D、私有
22、派生类可以访问其基类的( D )。
A、公用成员
B、保护成员
C、私有派生
D、公用和保护成员
23、对于类中定义的成员,其隐含访问权限为( C )。
A、public
B、ptotected
C、private
D、static
24、在定义一个派生类时,若不使用保留字显式地规定采用何种继承方式,则默认为( A )方式。
A、私有继承
B、非私有继承
C、保护继承
D、公用继承
25、在公用继承的情况下,基类成员在派生类中的访问权限( B )
A、受限制
B、保持不变
C、受保护
D、不受保护
二、判断题(本大题共25小题,每小题2分,共50分,正确填“T”,错误填“F”)
1、字符串"sdfgh"的长度是5。
( T )
2、将字符串常量存放到字符串变量时,包含字符串本身和结束符“\0”。
( F )
3、关系运算符可以用来比较两个字符的大小,也可用来比较两个字符串的大小。
( T )
4、使用new运算符创建数组时,可以为该数组指定初始值( F )。
5、在设计类时一般把数据成员设置为私有的,把函数成员设置为公用的,从而实现了公用接口和私有实现的分离。
( T )
6、析构函数必须指定返回类型以及函数参数。
( F )
7、如果定义了一个类的对象数组,该数组有10个元素,则要调用10次构造函数来对每个元素初始化。
( T )。
8、友元函数说明在类体内,它是一种成员函数。
( F )
9、友元类必须被说明为公用成员。
( F )
10、运算符重载以后,其优先级和结合性都不能改变。
( T )
11、重载单目运算符作为类的成员函数,函数没有参数。
( T )
12、将运算符“+”函数重载为类的成员函数,交换律不适用。
( T )
13、不能通过派生类对象引用从私有基类继承过来的任何成员。
( T )
( F )
14、若类B是类A的私有派生类,类C是类B的私有派生类,则类C可访问类A的公用成员。
15、在声明派生类时,派生类把基类的的构造函数也一起继承过来。
( F )
16、派生类能够继承基类的析构函数。
( F )
17、使用虚函数可以避免多重继承产生的二义性。
( T )
18、当一个成员函数被声明为虚函数后,其派生类中的具有相同参数类型和相同参数个数类型的相同类型的同名函数也是虚函数。
( T )
19、纯虚函数是在基类中说明的虚函数,它在该基类中必须定义具体的操作内容。
( F )
20、不可以定义抽象类的对象。
( T )
21、使用字符串流时必须打开文件。
( F )
22、程序运行过程出现异常是由于语法错误引起的。
( F )
23、在C++的异常处理方法中,try块和catch块必须作为一个整体出现。
( T )
24在C++中,在文件中只能用“#include <iostream>包含头文件iostream,而不能用“#include <iostream.h>包含头文件iostream。
( F )
25、C++中的所有运算符都允许重载。
( F )。