14秋西交《面向对象程序设计》在线作业答案
面向对象程序设计答案
m_fReal += c.m_fReal;
m_fImag += c.m_fImag;
return *this;
}
Complex& operator-= (const Complex &c)
{
m_fReal -= c.m_fReal;
m_fImag -= c.m_fImag;
return *this;
在日常生活或者说日常编程中,简单的问题用面向过程的思路解决,更加直接有效,但是当问题的规模稍大时,如要描述三万个人吃饭的问题,或者要构建一个航空母舰模型的时候,用面向过程的思想是远远不够的。而且面向过程程序的代码复用性、可扩展性、可移植性、灵活性、健壮性都会在处理大规模问题中出现问题。
二、综合回答(每小题15分,共30分)
一、简答题(每小题6分,共30分)
1、面向过程思想的优点是什么?
与人类思维习惯一致;稳定性好:以object模拟实体,需求变化不会引起结构的整体变化,因为实体相对稳定,故系统也相应稳定;可重用性好;可维护性好
2、比较Java和C++?
JAVA和C++都是面向对象语言。也就是说,它们都能够实现面向对象思想(封装,继乘,多态)。而由于c++为了照顾大量的C语言使用者,从而兼容了C,使得自身仅仅成为了带类的C语言,多多少少影响了其面向对象的彻底性!JAVA则是完全的面向对象语言,它句法更清晰,规模更小,更易学。它是在对多种程序设计语言进行了深入细致研究的基础上,摒弃了其他语言的不足之处,从根本上解决了c++的固有缺陷。用C++可以使用纯过程化的编程,也可以是基于对象的编程,还可以是面向对象的编程,当然大部分是混合编程,c++可以跨平台
面向对象程序设计习题及答案
面向对象程序设计一、选择填空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)float8.对于 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)是正确的。
面向对象程序设计课后习题答案
第一章:面向对象程序设计概述[1_1]什么是面向对象程序设计?面向对象程序设计是一种新型的程序设计范型。
这种范型的主要特征是:程序=对象+消息。
面向对象程序的基本元素是对象,面向对象程序的主要结构特点是:第一:程序一般由类的定义和类的使用两部分组成,在主程序中定义各对象并规定它们之间传递消息的规律。
第二:程序中的一切操作都是通过向对象发送消息来实现的,对象接受到消息后,启动有关方法完成相应的操作。
面向对象程序设计方法模拟人类习惯的解题方法,代表了计算机程序设计新颖的思维方式。
这种方法的提出是软件开发方法的一场革命,是目前解决软件开发面临困难的最有希望、最有前途的方法之一。
[1_2]什么是类?什么是对象?对象与类的关系是什么?在面向对象程序设计中,对象是描述其属性的数据以及对这些数据施加的一组操作封装在一起构成的统一体。
对象可以认为是:数据+操作在面向对象程序设计中,类就是具有相同的数据和相同的操作的一组对象的集合,也就是说,类是对具有相同数据结构和相同操作的一类对象的描述。
类和对象之间的关系是抽象和具体的关系。
类是多个对象进行综合抽象的结果,一个对象是类的一个实例。
在面向对象程序设计中,总是先声明类,再由类生成对象。
类是建立对象的“摸板”,按照这个摸板所建立的一个个具体的对象,就是类的实际例子,通常称为实例。
[1_3]现实世界中的对象有哪些特征?请举例说明。
对象是现实世界中的一个实体,其具有以下一些特征:(1)每一个对象必须有一个名字以区别于其他对象。
(2)需要用属性来描述它的某些特性。
(3)有一组操作,每一个操作决定了对象的一种行为。
(4)对象的操作可以分为两类:一类是自身所承受的操作,一类是施加于其他对象的操作。
例如:雇员刘名是一个对象对象名:刘名对象的属性:年龄:36 生日:1966.10.1 工资:2000 部门:人事部对象的操作:吃饭开车[1_4]什么是消息?消息具有什么性质?在面向对象程序设计中,一个对象向另一个对象发出的请求被称为“消息”。
(完整版)《面向对象程序设计》答案
实验一熟悉VC++IDE开发环境一、实验目的1、熟悉VC++6.0集成开发环境,熟练掌握VC++6.0项目工作区、各种编辑器、菜单栏和工具栏的使用。
2、掌握如何编辑、编译、连接和运行一个C++程序。
3、通过运行简单的C++程序,初步了解C++源程序的结构和特点。
二、实验要求1、分析下列程序运行的结果。
程序一:#include <iostream.h>int add(int x,int y=8);void main(){ int x=4;cout<<add(x)<<",";cout<<add(x,add(add(x,add(x))))<<endl;}int add(int x,int y){ return x+y;}//12,28程序二:#include <iostream.h>void main(){ int *p,i;i=5;p=&i;i=*p+10;cout<<"i="<<i<<endl;}//i=15程序三:#include <iostream.h>void main(void){ int i=10;int &r=i;r++;cout<<"i="<<i<<", r="<<r<<'\n';i=88;cout<<"i="<<i<<", r="<<r<<'\n';}//i=11,r=11i=88,r=88程序四:#include <iostream.h>int f(int i){ static int k=1;for(;i>0;i--)k +=i;return k;}void main(){ int i;for(i=0;i<5;i++)cout<<f(i)<<" ";}// 1 2 5 11 21程序五:#include <iostream.h>void func();int n=1;void main(){ static int a;int b= -9;cout <<"a:"<<a<<" b:"<<b<<" n:" <<n<<endl;b+=4;func();cout <<"a:"<<a<<" b:"<<b<<" n:"<<n<<endl;n+=10;func();}void func(){ static int a=2; int b=5;a+=2;n+=12;b+=5;cout <<"a:" <<a<<" b:" <<b<<" n:" <<n <<endl;}// a:0 b:-9 n:1a:4 b:10 n:13a:0 b:-5 n:13a:6 b:10 n:35实验二C++对C的扩充一、实验目的1、了解在面向对象程序设计过程中C++对C功能的扩充与增强,并善于在编写程序的过程中应用这些新功能。
西交《面向对象程序设计》在线作业
B. a+8
C. a+16
D. a+32
满分:2 分
23. 下面关于派生类的描述中,( )是错的。
A. 一个派生类可以作为另一个派生类的基类
B. 派生类至少有一个基类
C. 派生类的成员除了它自己的成员外,还包含了它的基类的成员
D. 派生类中继承的基类成员的访问权限到派生类保持不变
单选题
多选题
判断题
、多选题(共 5 道试题,共 10 分。)
1. 下列函数中,可以作为虚函数的是( )。
A. 普通函数
B. 非静态成员函数
C. 构造函数
D. 析构函数
满分:2 分
2. 下面说法正确的是( )
A. 将数据结构和算法置于同一个函数内,即为数据封装
满分:2 分
21. 关于关键字class和typename,下列表述正确的是( )。
A. 程序中所有typename都可以替换成class
B. 程序中所有class都可以替换成typename
C. A与B都正确
D. A与B都不正确
满分:2 分
22. 假定a为一个整型数组名,则元素a[4]的字节地址为( )。
C. this指针是指向成员函数的指针
D. this指针可以在程序中显示使用
满分:2 分
34. C++所有输入和输出流的基类是( )
A. stream.h
B. iostream.h
C. cin
D. ios
满分:2 分
35. 有关运算符重载正确的描述是( )。
A. C++语言允许重载运算符时改变运算符的操作个数
西安交通大学《面向对象程序设计》作业考核试题
西安交通大学《面向对象程序设计》作业考核试题一、单选题1.??C++对C语言作了很多改进,即从面向过程变成为面向对象的主要原因是()。
A. 增加了一些新的运算符B. 允许函数重载,并允许设置缺省参数C. 规定函数说明符必须用原型[正确]D. 引进了类和对象的概念??????满分:2??分2.??如果一个类至少有一个纯虚函数,那么该类称为().。
[正确]A. 抽象类B. 虚基类C. 派生类D. 以上都不对??????满分:2??分3.??假定AB为一个类,则执行“AB r1=r2;”语句时将自动调用该类的( )。
A. 无参构造函数B. 带参构造函数C. 赋值重载函数[正确]D. 拷贝构造函数??????满分:2??分4.??带有虚基类的多层派生类构造函数的成员初始化列表中都要列出虚基类的构造函数,这样将对虚基类的子对象初始化()。
A. 与虚基类下面的派生类个数有关B. 多次C. 二次[正确]D. 一次??????满分:2??分5.??派生类的构造函数的成员初始化列表中,不能包含()。
A. 基类的构造函数;B. 派生类中子对象的初始化;[正确]C. 基类的子对象初始化;D. 派生类中一般数据成员的初始化;??????满分:2??分6.??由C++目标文件连接而成的可执行文件的缺省扩展名为()。
A. cpp[正确]B. exeC. objD. lik??????满分:2??分7.??以下叙述中正确的是()A. 使用#define可以为常量定义一个名字,该名字在程序中可以再赋另外的值[正确]B. 使用const定义的常量名有类型之分,其值在程序运行时是不可改变的C. 在程序中使用内置函数使程序的可读性变差D. 在定义函数时可以在形参表的任何位置给出缺省形参值??????满分:2??分8.??下列不是C++基本数据类型的是()。
A. int[正确]B. stringC. charD. void??????满分:2??分9.??下列函数中,()不能重载。
面向对象程序设计课后习题答案
面向对象程序设计课后习题答案第一章:面向对象程序设计概述[1_1]什么是面向对象程序设计?面向对象程序设计是一种新型的程序设计范型。
这种范型的主要特征是:程序=对象+消息。
面向对象程序的基本元素是对象,面向对象程序的主要结构特点是:第一:程序一般类的定义和类的使用两部分组成,在主程序中定义各对象并规定它们之间传递消息的规律。
第二:程序中的一切操作都是通过向对象发送消息来实现的,对象接受到消息后,启动有关方法完成相应的操作。
面向对象程序设计方法模拟人类习惯的解题方法,代表了计算机程序设计新颖的思维方式。
这种方法的提出是软件开发方法的一场革命,是目前解决软件开发面临困难的最有希望、最有前途的方法之一。
[1_2]什么是类?什么是对象?对象与类的关系是什么?在面向对象程序设计中,对象是描述其属性的数据以及对这些数据施加的一组操作封装在一起构成的统一体。
对象可以认为是:数据+操作在面向对象程序设计中,类就是具有相同的数据和相同的操作的一组对象的集合,也就是说,类是对具有相同数据结构和相同操作的一类对象的描述。
类和对象之间的关系是抽象和具体的关系。
类是多个对象进行综合抽象的结果,一个对象是类的一个实例。
在面向对象程序设计中,总是先声明类,再类生成对象。
类是建立对象的“摸板”,按照这个摸板所建立的一个个具体的对象,就是类的实际例子,通常称为实例。
[1_3]现实世界中的对象有哪些特征?请举例说明。
对象是现实世界中的一个实体,其具有以下一些特征:每一个对象必须有一个名字以区别于其他对象。
需要用属性来描述它的某些特性。
有一组操作,每一个操作决定了对象的一种行为。
对象的操作可以分为两类:一类是自身所承受的操作,一类是施加于其他对象的操作。
例如:雇员刘名是一个对象对象名:刘名对象的属性:年龄:36 生日:工资:2000 部门:人事部对象的操作:吃饭开车[1_4]什么是消息?消息具有什么性质?在面向对象程序设计中,一个对象向另一个对象发出的请求被称为“消息”。
西交14秋《程序设计综合训练》在线作业答案
程序设计综合训练西交《程序设计综合训练》在线作业一,单选题1. 下列变量定义正确的是________。
A. int x_1 ; y;B. int x=y=5 ;C. int for=4;D. int printf=2,x_y=2;?正确答案:D2. 有如下程序int a[10]={1,2,3,4,5,6,7,8,9,10},*P=a;则数值为9的表达式是__________A. *P+9B. *(P+8)C. *P+=9D. P+8?正确答案:B3. 若short int 类型数据占两个字节,则下列语句的输出为________。
int k=-1; printf(“%d,%u\n”,k,k);A. -1,-1B. -1,32767C. -1,32768D. -1,65535?正确答案:B4. 若变量已正确定义,与语句 if(a>B、k=0;else k=1;等效的是________。
A.k=(a>B、?1:0?B.k=a>b;C.k=a<=b;D.a<=b?0:1;?正确答案:C5. 以下函数的类型是________。
int sum(double x, double y){ double s;s=x+y;return s;}A. 字符型B. 不确定C. 整型D. 实型?正确答案:C6. 在C语言中,正确的int类型的常数是_______。
A. -2UB. 059C. 3aD. 0xAF?正确答案:D7. 已知:int a[10]; 则对a数组元素的正确引用是()。
A. a[10]B. a[3.5]C. a(5)D. a[0]?正确答案:D8. 当执行以下程序时,________。
#include<stdio.h>void main(){ int a;while(a=5)printf("%d ",a--);}A. 循环体将执行5次B. 循环体将执行0次C. 循环体将执行无限次D. 系统会当机。
西交14秋《程序设计基础》在线作业答案
程序设计基础西交《程序设计基础》在线作业一,单选题1. 下面转义字符中,表示字符串结束的是()A. \0B. \nC. \rD. \f?正确答案:A2. 有定义语句:int x, y;,若值11,变量y得到数值12,下面四组输入要通过scanf("%d,%d",&x,&y);语句使变量x得到数形式中,错误的是( )A. 11 12<回车>B. 11, 12<回车>C. 11,12<回车>D. 11,<回车>12<回车>?正确答案:A3. 下列程序的输出结果是()int b=2;int func(int *a){b += *a;return(b);}main(){int a=2, res=2;res += func(&a);printf("%d\n",res);}A. 4B. 6C. 8D. 10?正确答案:B4. 有以下程序段int m=0,n=0; char c='a';scanf("%d%c%d",&m,&c,&n);printf("%d,%c,%d\n",m,c,n);若从键盘上输入:10A10<回车>,则输出结果是:()。
A. 10,A,10B. 10,a,10C. 10,a,0D. 10,A,0?正确答案:A5. 有以下程序段int k=0;while(k=1)k++;while 循环执行的次数是()A. 无限次B. 有语法错,不能执行C. 一次也不执行D. 执行1次?正确答案:A6. 若fp已正确定义并指向某个文为件,当未遇到该文件结束标志时函数feof(fp)的值( )A. 0B. 1C. -1D. 一个非0值?正确答案:A7. 设有定义:int n=0,*p=&n,**q=&p,则下列选项中正确的赋值语句是( )A. p=1;B. *q=2;C. q=p;D. *p=5;?正确答案:D8. 若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为( )A. 4B. 16C. 32D. 52?正确答案:C9. 若有以下程序段(n所赋的是八进制数)int m=32767,n=032767;printf("%d,%o/n",m,n);执行后输出结果是()。
西交14秋《软件工程概论》在线作业答案
软件工程概论西交《软件工程概论》在线作业一,单选题1. 面向对象分析阶段建立的三个模型中,核心的模型是()模型。
A. 功能B. 动态C. 对象D. 分析?正确答案:C2. 一个CASE工作台是一组(),支持设计、实现或测试等特定的软件开发阶段。
A. 工具集B. 软件包C. 平台集D. 程序包?正确答案:A3. 详细设计的任务是确定每个模块的()A. 外部特性B. 内部特性C. 算法和使用的数据D. 功能和输入输出数据?正确答案:B4. 软件工程对维护工作的主要目标是提高(),降低维护的代价。
A. 软件的生产率B. 软件的可靠性C. 软件的可维护性D. 维护的效率?正确答案:A5. 软件开发过程中抽取和整理用户需求并建立问题域精确模型的过程叫()A. 生存期B. 面向对象设计C. 面向对象程序设计D. 面向对象分析?正确答案:D6. 白盒测试方法重视()的度量A. 测试覆盖率B. 测试数据多少C. 测试费用D. 测试周期?正确答案:A7. 下面哪个不是集成测试使用的图模型()A. 顺序图B. 协作图C. 活动图D. 用例图?正确答案:D8. 以下说法错误的是()A. 对象具有很强的表达能力和描述功能B. 对象是人们要进行研究的任何事务C. 对象是封装的最基本单位D. 类封装比对象封装更具体、更细致?正确答案:D9. 面向对象设计语言不同于其他语言的最主要特点是()A. 模块性B. 抽象性C. 继承性D. 共享性?正确答案:C10. 研究软硬件资源的有效性是进行()研究的一方面。
A. 技术可行性B. 经济可行性C. 社会可行性D. 操作可行性?正确答案:A11. SA方法是一种()A. 自顶向下逐层分解的分析方法B. 自底向上逐层分解的分析方法C. 面向对象的分析方法D. 以上都不是?正确答案:A12. 软件设计一般分为总体设计和详细设计,它们之间的关系是()A. 全局和局部B. 抽象和具体C. 总体和层次D. 功能和结构?正确答案:A13. 以下说法错误的是()A. 对象具有很强的表达能力和描述功能B. 对象是人们要进行研究的任何事务C. 对象是封装的基本单位D. 类封装比对象封装更具体、更细致?正确答案:D14. 面向对象程序设计语言与其他程序设计语言的最主要差别是它具有()A. 模块性B. 抽象性C. 继承性D. 共享性?正确答案:C15. 程序的3中基本结构是()A. 过程、子程序、分程序B. 顺序、条件、循环C. 递归、堆栈、队列D. 调用、返回、转移?正确答案:B16. 尽管有不合法的输入,软件仍能继续正常工作的能力是指()A. 兼容性B. 可靠性C. 容错性D. 稳定性?正确答案:C17. 程序内部的各个部分之间存在的联系,用结构图表达时,最关心的是模块的内聚性和()A. 独立性B. 有效性C. 耦合性D. 安全性?正确答案:C18. 需求分析最终结果是产生()A. 项目开发计划B. 可行性分析报告C. 需求规格说明书D. 设计说明书?正确答案:C19. 软件是一种()产品A. 有形B. 逻辑C. 物质D. 消耗?正确答案:B二,多选题1. 技术可行性考虑的问题有()A. 开发风险分析B. 资源分析C. 相关技术的反展?正确答案:ABC三,判断题1. 传统的SA方法主要用于数据处理方面的问题,主要工具DFD体现了系统的“做什么”功能,但它仅是一个静态模型,没有处理的顺序,即控制模型。
面向对象程序设计作业参考答案
面向对象程序设计作业参考答案习题一5、分析下面程序运行的结果。
#using namespace std;int main(){cout<<”This”<<”is”;cout<<”a”<<”C++”;cout<<”program.”<<endl;< p="">return 0;}输出结果:ThisisaC++program.6、分析下面程序运行的结果。
#includeusing namespace std;int main(){int a,b,c;a = 10;b = 23;c = a + b;cout<<'a + b =";cout<<c;< p="">cout<<endl;< p="">return 0;}输出结果:a + b = 338、在你所用的C++系统上,输入以下程序,进行编译,观察编译情况,如果有错误,请修改程序,在进行编译,直到没有错误,然后进行连接和运行,分析运行结果。
修改后的程序如下:#includeusing namespace std;int main(){int a, b;a =b = 0;int c = a + b;cout<<”a + b =”<return 0;}9、输入以下程序,进行编译,观察编译情况,如果有错误,请修改程序,在进行编译,直到没有错误,然后进行连接和运行,分析运行结果。
修改后的程序如下:#includeusing namespace std;int add(int x,int y);int main(){int a = 0, b = 0;int c = add(a,b);cout<<" a + b ="<<c<<endl;< p="">return 0;}int add(int x,int y){int z = x + y;return z;}习题二1、请检查下面的程序,找出其中的错误(先不要上机,在纸面上作人工检查),并改正之。
14秋西南交《面向对象程序设计》离线作业答案
(D)设置参数默认值时,应该全部参数都设置
解答参考:C
3.一个类模板定义了静态数据成员,则( )
(A)每一个实例化的模板类都有一个自己的静态数据成员
(B)每一个实例化的对象都有一个自己的静态数据成员
(C)它的类型必须是类模板定义的抽象类型
(D)所有模板类的对象共享一个静态数据成员
(C)虚函数
(D)抽象类
解答参考:B
17.continue语句的作用是( ) 。
(A)中止函数的执行
(B)立即中止循环
(C)中止本次循环,直接开始下一次循环
(D)从一个循环体直接跳转至另一个循环体内
解答参考:C
18.要定义整型数组x,使之包括初值为0的三个元素,下列语句中错误的是()
(A)int x[3]={0,0,0};
(C)int area(int l=3,int w,int h=9);
(D)int area(int l=5,int w);
解答参考:A
9.关于构造函数,下面说法错误的是:
(A)对用户来说,是否调用构造函数不可选,它由编译器在对象定义时自动完成。
(B)构造函数也是类的一个成员函数,具有一般成员函数的特征,也可以被重载。
(C)当基类中定义了带有形参表的构造函数时,派生类就应当定义构造函数并传递参数给基类的构造函数。
(D)当类的继承方式为私有继承时,基类中公有、保护和私有成员都以私有成员身份出现在派生类中,派生类的其他成员可以直43;+语言建立类族是通过 ( )
(A)类的嵌套
(B)类的继承
(A)private
(B)protected
(C)public
《面向对象程序设计》习题三答案
《面向对象程序设计》习题三答案一、单项选择题(本大题共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、constM=10;B、constintM=20;C、constcharch;D、constboolmark=true;5、函数原型语句正确的是(B)。
A、intFunction(voida)B、voidFunction(int);C、intFunction(a);D、voidint(doublea);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)实现的。
A、函数体B、参数初始化表C、参数表D、参数初始化表或函数体13、假定AB为一个类,则执行“ABx;”语句时将自动调用该类的(B).。
___14秋学期《面向对象程序设计》在线作业答案
___14秋学期《面向对象程序设计》在线作业答案本文介绍了面向对象程序设计14秋学期《面向对象程序设计》在线作业的单选题,并提供了每题的正确答案。
1.关于this指针的说法,错误的是()。
A。
this指针指向当前正在操作的对象B。
this指针只存在于非静态成员函数中C。
在成员函数中对非静态数据成员的访问是通过this指针完成的D。
静态成员函数中可以通过this指针访问非静态成员正确答案:D2.已知“int a=10,*p;int *&r=p。
r=*p=20;cout<<a;”,则输出为()。
A。
10B。
20C。
不确定值D。
程序有错误正确答案:B3.有关重载函数的描述正确的是()。
A。
函数名相同的函数就是重载函数B。
函数名相同但返回值类型不同的函数就是重载函数C。
函数名相同但参数个数或类型不同的函数就是重载函数D。
函数功能相同的函数就是重载函数正确答案:C4.在表达式x+y*z中,+是作为成员函数重载的运算符,*是作为非成员函数重载的运算符。
下列叙述中正确的是()。
A。
operator+有两个参数,operator*有两个参数B。
operator+有两个参数,operator*有一个参数C。
operator+有一个参数,operator*有两个参数D。
operator+有一个参数,operator*有一个参数正确答案:C5.以成员函数方式重载运算符“>”,则obj1>obj2被C++编译器解释为()。
A。
operator>(obj1,obj2)B。
(obj1,obj2)C。
obj1.operator>(obj2)D。
obj2.operator>(obj1)正确答案:C6.下列运算符中,()在C++中不能重载。
A。
:B。
+C。
-D。
<=正确答案:A7.运行以下程序时,如果由键盘输入6514,则输出结果是()。
includeusing namespace std;int main() {int m。
西交《面向对象程序设计》在线作业.AC0135A7-741D-4B71-BAE1-78083E451BBA(总17页)
西交《面向对象程序设计》在线作业在下面的4个关键字中,()是用来说明虚函数的。
A:virtual
B:public
C:protected
D:private
答案:A
对于一个类的析构函数,其函数名与类名( )。
A:完全相同
B:完全不同
C:只相差一个字符
D:无关系
答案:C
继承机制的作用是()。
A:信息隐藏
B:数据封装
C:定义新类
D:数据抽象
答案:C
在公用继承的情况下,基类成员在派生类中的访问权限()
A:受限制
B:保持不变
C:受保护
D:不受保护
答案:B
假定一个二维数组的定义语句为“ int a [3][4]={{3,4),{2,8,6));”,则元素a[1][2] 的值为( )。
A:2
B:4
C:6
D:8
答案:C
下列对继承关系的描述中,正确的是( )。
A:在公有继承中,基类中的公有成员和私有成员在派生类中都是可见的;。
西交《面向对象程序设计》在线作业.148082B3
西交《面向对象程序设计》在线作业函数重载是指()。
A:两个或两个以上的函数取相同的函数名,但形参的个数或类型不同B:两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同C:两个以上的函数名字不同,但形参的个数或类型相同D:两个以上的函数取相同的函数名,并且函数的返回类型相同答案:A下列程序段不会发生二义性的是( )。
A:intfun(doublep){...;}B:intfun(floatp){...;}floatfun(floatp){...;}floatfun(unsignedp){...;}intx;intx;x=fun(0);x=fun(0);C:intfun(inti,intj=2){...;}D:intfun(inti=2,intj=2){...;}floatfun(inti){...;}intfun(int*p){...;}cout<<fun(5);cout<<fun(5);答案:D下列说法错误的是()。
A:在类中不能对所定义的数据成员进行初始化;B:类的公有成员函数是类与外界的接口C:同一个类的两个对象占用相同的内存空间;D:类实现数据隐藏。
答案:C假定一个类的构造函数为“B(int ax, int bx): a(ax), b(bx) {}”,执行“Bx(1,2),y(3,4);x=y;”语句序列后x.a的值为()。
A:1B:2C:3D:4答案:C由C++源程序文件编译而成的目标文件的缺省扩展名为()。
A:cppB:exeC:objD:lik答案:C假定AB为一个类,则执行“AB*p=new AB(1,2);”语句时共调用该类构造函数的次数为( )。
A:0B:1C:2D:3答案:B下面的类中,()不是由抽象基类ios直接派生出来的。
A:istreamB:ostream。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
B. 2
C. 3
D. 4
?
正确答案:C
4.在下列的各类函数中,______不是类的成员函数。
A.构造函数
B.析构函数
C.友元函数
D.拷贝构造函数
?
正确答案:C
5.下列关于私有继承的说法中正确的是_____。
A.基类成员对派生类新定义的成员函数是不可见的;
B.基类成员对派生类新定义的成员函数是可见的;
C.基类构造函数、派生类本身的构造函数、对象成员构造函数;
D.基类构造函数、对象成员构造函数、派生类本身的构造函数。
?
正确答案:D
21.下面对模板的声明,正确的是______。
A. template<T>
B. template<class T1, T2>
C. template<class T1, class T2>
西交《面向对象程序设计》在线作业
一,单选题
1.下列不是C++基本数据类型的是______。
A. int
B. string
C. char
D. void
?
正确答案:B
2.不可以成为类的数据成员的是______。
A.自身类的对象
B.另一个类的对象
C.自身类的指针或引用
D.其他基本数据类型
?
正确答案:A
3.一个类的构造函数为“B(int ax, int bx): a(ax), b(bx) {}”,执行“B x(1,2),y(3,4);x=y;”语句序列后x.a的值为______。
?
正确答案:A
16.设置虚基类的目的是_____。
A.简化程序;
B.消除二义性;C.提高运源自效率;D.减少目标代码;?
正确答案:B
17.关于静态成员,正确的说法是_______。
A.静态成员函数可以直接访问该类中的非静态成员
B.非静态成员函数不能直接访问该类中的静态成员
C.静态数据成员同其它数据成员一样通过构造函数进行初始化
B.运行时多态是在运行时确定所调用的函数代码的;
C.用基类指针或引用所标识的派生类对象来操作虚函数才能实现运行时多态;
D.运行时多态是在编译时确定操作函数的。
?
正确答案:D
9.下面是五条顺序出现的声明语句,非法的初始化语句是_______。
A. int i = –1;
B. const int ic=i;
C.在私有继承中,基类中只有公有成员对派生类是可见的;
D.在私有继承中,基类中的保护成员对派生类的对象是可见的;
?
正确答案:D
20.在创建派生类对象时,构造函数的执行顺序是_____。
A.对象成员构造函数、基类构造函数、派生类本身的构造函数;
B.派生类本身的构造函数、基类构造函数、对象成员构造函数;
C. const int *pc=⁣
D. int *const cpi=⁣
E. const int *const cpic= ⁣
?
正确答案:D
10.以下关于函数模板的论述中,正确的是______。
A.一旦定义了函数模板,就不能再定义同名的重载函数;
B.从同一个函数模板实例化后得到的多个模板函数属于函数重载;
C.函数模板中只有一种参数;
D.在定义函数模板时,template语句与函数模板定义语句之间可以有别的语句。
?
正确答案:B
11.下列说法不正确的是_______。
A.在类中,成员的默认访问特性是私有的。
B.类封装了数据和操作。
C.类实质上是一种数据类型。
D.在类的定义中,必须包含private、public、protected三种存取方式对应得部分。
?
正确答案:D
7.已知:p是一个指向类A数据成员m的指针,A1是类A的一个对象。如果要给A1的m赋值为5,______是正确的。
A. A1.p = 5;
B. A1->p = 5;
C. A1.*p = 5;
D. *A1.p = 5;
?
正确答案:C
8.关于运行时多态的下列描述中,______是错误的。
A.运行时多态是以虚函数为基础的;
C.只有基类成员中的公有成员对派生类新定义的成员函数是可见的;
D.基类成员中的保护成员对派生类新定义的成员函数是可见的。
?
正确答案:D
6.下列关于运算符重载的描述中,______是正确的。
A.运算符重载可以改变运算数的个数;
B.运算符重载可以改变优先级;
C.运算符重载可以改变结合性;
D.运算符重载不可以改变语法结构。
?
正确答案:D
15.下面是重载双目运算符+的普通函数原形,其中最符合+原来含义的是______。
A. Value operator+(Value, Value);
B. Value operator+(Value,int);
C. Value &operator+(Value, Value*);
D. Value &operator+(Value&, Value&);
A. A::fn1()和fn2();
B. fn1()和A::fn2();
C. A::fn1()和A::fn2();
D. fn1()和fn2();
?
正确答案:A
19.下列对继承关系的描述中,______是正确的。
A.在公有继承中,基类中的公有成员和私有成员在派生类中都是可见的;
B.在公有继承中,基类中只有公有成员对派生类的对象是可见的;
D.静态成员在任何对象创建之前就已经创建
?
正确答案:D
18.基类A中有成员函数fn1()、fn2(),在派生类B中重载了成员函数fn1()(即重新定义了fn1()),但没有重载其成员函数fn2()。如果在派生类B中调用基类A的成员函数fn1()(不是B中重载的数fn1())和fn2(),则正确的方式是______。
?
正确答案:D
12.关于C++中的继承机制,错误的说法是______。
A.虚拟继承限定基类只能通过一条路径派生出派生类;
B.解决多继承带来的二义性的方法之一是对成员名加以限定;
C.派生类的构造函数的成员初始化列表中,可包含基类中的子对象;
D.继承是一种组织类的基本手段。
?
正确答案:C
13.类模板的作用是可以将其实例化后得到一个具体的______。
A.类
B.对象
C.模板类
D.模板函数
?
正确答案:C
14.下述静态数据成员的特性中,______是错误的。
A.声明静态数据成员时前面要加修饰符static。
B.静态数据成员要在类体外进行初始化。
C.在程序中引用静态数据成员时,要在静态数据成员名前加<类名>和作用域运算符。
D.静态数据成员是本类中个别对象所共享的。