面向对象程序设计教程答案
C++面向对象程序设计课后题答案

面向对象程序设计课后题答案第二章C++概述【2.6】D【2.7】D【2.8】A【2.9】A【2.10】B【2.11】A【2.12】C【2.13】B【2.14】D【2.15】C【2.16】D【2.17】C【2.18】程序的运行结果:101【2.19】程序的运行结果:10 10【2.20】程序的运行结果:1020【2.22】编写一个C++风格的程序,用动态分配空间的方法计算Fibonacci数列的前20项并存储到动态分配的空间中。
#include <iostream.h>int main(){int *p,i;p[0]=1;p[1]=1;for(i=2;i<20;i++){p[i]=p[i-1]+p[i-2];}for(i=0;i<20;i++){cout<<p[i]<<endl;}return 0;}【2.23】编写一个C++风格的程序,建立一个被称为sroot()的函数,返回其参数的二次方根。
重载sroot()3次,让它返回整数、长整数与双精度数的二次方根。
#include <iostream.h>#include<math.h>double sroot(int m){return sqrt(m);}double sroot(long m){return sqrt(m);}double sroot(double m){return sqrt(m);}int main()cout<<"sroot(145)="<<sroot(145)<<endl;cout<<"sroot(123456)="<<sroot(123456)<<endl;cout<<"sroot(1.44)="<<sroot(1.44)<<endl;return 0;}【2.24】编写一个C++风格的程序,解决百钱问题:将一元人民币兑换成1、2、5分的硬币,有多少种换法?#include <iostream.h>int main(){int k=0;for(int i=0;i<=20;i++){for(int j=0;j<=50;j++){if(100-5*i-2*j>=0){k++;}}}cout<<"将一元人民币兑换成1、2、5分的硬币,共有"<<k<<"种换法"<<endl;return 0;}【2.25】编写一个C++风格的程序,输入两个整数,将它们按由小到大的顺序输出。
面向对象程序设计教程 答案

面向对象程序设计教程答案面向对象程序设计教程
第一章:介绍面向对象程序设计
⑴面向对象程序设计的概念
⑵面向对象程序设计的优势
⑶面向对象程序设计的基本原则
第二章:面向对象的基本概念
⑴类和对象的概念
⑵属性和方法的定义
⑶封装、继承和多态的概念
第三章:类的设计与实现
⑴类的设计原则
⑵类的成员变量和成员函数的设计
⑶类的构造函数和析构函数的设计
⑷类的访问控制和封装性的实现
第四章:继承与多态
⑴继承的概念和用法
⑵单继承和多继承的区别
⑶虚函数的定义和使用
⑷纯虚函数和抽象类的概念
第五章:面向对象的设计模式
⑴设计模式的概念和分类
⑵单例模式的实现
⑶工厂模式的实现
⑷观察者模式的实现
第六章:面向对象程序设计的实例
⑴车辆管理系统的设计与实现
⑵学生信息管理系统的设计与实现
⑶游戏角色的设计与实现
附件:
⒈示例代码
⒉ UML图
法律名词及注释:
⒈版权:根据国际公约,对作者创作的作品(包括文学、艺术、音乐、软件等)的独有权益进行法律保护。
⒉商标:商标是指为了区别商品或服务而在商品上、包装上、容器上或者商品的商业文件上使用的特定标识的任何符号。
⒊专利:专利是为了推动技术创新,提供创新者在一定时期内对其发明进行独占权利的一种法律制度。
⒋许可证:许可证是指一方在法律许可范围内允许他人使用自己的某种权利的文件。
面向对象程序设计教程 答案

面向对象程序设计教程答案面向对象程序设计教程第1章引言1.1 背景1.1.1 传统的结构化程序设计方法1.1.2 面向对象的程序设计方法1.2 目标1.3 本教程的组织结构第2章面向对象的基本概念2.1 类和对象2.1.1 类的定义2.1.2 对象的创建与使用2.2 封装和信息隐藏2.2.1 封装的概念2.2.2 信息隐藏的重要性2.3 继承和多态2.3.1 继承的概念与用法 2.3.2 多态的概念与用法 2.4 抽象和接口2.4.1 抽象的概念与用法 2.4.2 接口的概念与用法第3章面向对象的设计原则3.1 单一职责原则3.2 开放-封闭原则3.3 里氏替换原则3.4 依赖倒置原则3.5 接口隔离原则3.6 迪米特法则第4章面向对象的分析与设计 4.1 需求分析4.1.1 确定需求4.1.2 分析需求4.2 类的设计4.2.1 识别类的责任4.2.2 定义类的属性和行为 4.3 协作关系的设计4.3.1 关联关系4.3.2 依赖关系4.3.3 聚合关系4.3.4 组合关系4.3.5 继承关系第5章面向对象的编程语言5.1 Java5.2 C++5.3 Python5.4 Ruby第6章实例分析:学绩管理系统 6.1 需求分析6.2 类的设计6.3 协作关系的设计6.4 实现与测试第7章总结本文档涉及附件:无本文所涉及的法律名词及注释:1:封装:将数据和对数据的操作封装在一个类中,外部无法直接访问和修改内部数据,只能通过类提供的接口访问和修改。
2:信息隐藏:对于类的用户来说,只需要知道如何使用类的接口,而不需要知道类的实现细节。
3:继承:一个类可以从另一个类继承属性和方法,继承可以提高代码的复用性和可维护性。
4:多态:同一个方法可以根据不同的对象调用不同的实现,提高代码的灵活性和可扩展性。
5:抽象:将一组具有相似属性和行为的对象抽象成一个类,可以减少代码重复。
6:接口:描述类的行为,定义类应该实现的方法。
C++面向对象程序设计教程课后习题答案

tem = a[i]; a[i] = a[j]; a[j] = tem;
}
}
……
整理课件
9
*5.编一个程序,用同一个函数名对n个数据进行从小到大排序,数据类型可
以是整型、单精度实型、双精度实型,用重载函数实现。
参考程序:
……
void Sort(float a[], int n)
// 对a[0]...a[n-1]进行排序
// 定义变量
for (i = 0; i < n- 1; i++)
for (j = i + 1; j < n; j++)
if (a[i] > a[j])
{
// a[i]比a[j]更大
tem = a[i]; a[i] = a[j]; a[j] = tem;
}
}
……
整理课件
11
*5.编一个程序,用同一个函数名对n个数据进行从小到大排序,数据类型可
double c[] = {1.2, 3.1, 2.6, 5.8, 6.8, 9.8, 0.8, 6.2};// 定义c
int i, n = 8;
// 定义变量
Sort(a, n); cout << "a:"; for (i = 0; i < n; i++)
cout << a[i] << " "; cout << endl;
Fun(a);
// 调用Fun()
return 0;
// 返回值0, 返回操作系统
}
该程序执行后输出的结果是 。
A)1
面向对象程序设计习题及答案

面向对象程序设计一、选择填空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 )是正确的。
李爱华、程磊_面向对象程序设计课后答案(完整版)

第二章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= y=10 z=Ax= y=10 z=Ax= y=2 z=Ax= y=2 z=E (3)x y z500 1000 0500 1500 1500500 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«"正数有:"vvcountp«endl;cout«"负数有:"<<countn«endl; p =init;delete[] p;return 0;}2-7 不做要求#include <iostream>rint ();cout«"最小成绩:"<<endl;st[min].Print ();return 0;}4-11#include <iostream>#include <string>using namespace std;class Book{char *name;char*author;int sale;public:Book(){ name = '\0';author = '\0';sale = -1;}Book(char* a ,char* b,int c){name = new char[strlen(a)+1];strcpy(name,a);author = newchar[strlen(b)+1];strcpy(author,b);sale = c;}void print(){cout<<"autor "<<author<<endl;cout<<"name "<<name<<endl;cout<<"price "<<sale<<endl;}~Book(){if(!name ) delete[] name;if(!author)delete[] author;}};int main(){Book b1("c++","li ai hua",12);Book b2;return 0; }第五章5-8 改错题答案不唯一(1) class DC { int x; public: DC(){x =100;}};(2)编译无错,但逻辑错误,可改为:class BC{protected: int x;public:BC(int i=0){x = i}};class DC:private BC{public:DC(int i):BC(i){} };⑶将DC构造函数改为:DC(int i):BC(i){y = 0;} 5-9 (1) base class(2) (10,5) (3,9-18,33) (13,19) (13,19-18,33) (13,19)5-10#include <iostream> using namespace std;class Shape{int x,y; public:Shape(int ix,int iy){x = ix; y = iy;}virtual void show(){cout<<"pos: "<<x<<' '<<y<<endl;} };class Circle :public Shape{int radius;public:Circle(int ix,int iy,int r):Shape(ix,iy),radius(r){}void show() {Shape::show (); cout<<"circle: "<<radius<<endl;} };class Rect :public Shape{int width,higth;public:Rect(int ix,int iy,int iw,intih):Shape(ix,iy),width(iw),higth(ih){} void show() {Shape::show ();cout<<"width and higth: "<<width<<' '<<higth<<endl;}};int main()Shape s1(1,1);Rect r1(2,2,8,8);Circle c1(3,3,9);();();return 0;}5-11#include<> class vehicle show (); tru1. show ();}第六章6-4d=3D::fun();6-5C::print(),cinfo=2C::print(),cinfo=2D::print(),dinfo=4B类不能定义对象,否则编译通不过,因为B未定义基类A中的虚函数prin t(),它也是个虚基类。
C 面向对象程序设计课后答案(谭浩强)

C++面向对象程序设计课后答案(1-4章)第一章:面向对象程序设计概述[1_1]什么是面向对象程序设计?面向对象程序设计是一种新型的程序设计范型。
这种范型的主要特征是:程序=对象+消息。
面向对象程序的基本元素是对象,面向对象程序的主要结构特点是:第一:程序一般由类的定义和类的使用两部分组成,在主程序中定义各对象并规定它们之间传递消息的规律。
第二:程序中的一切操作都是通过向对象发送消息来实现的,对象接受到消息后,启动有关方法完成相应的操作。
面向对象程序设计方法模拟人类习惯的解题方法,代表了计算机程序设计新颖的思维方式。
这种方法的提出是软件开发方法的一场革命,是目前解决软件开发面临困难的最有希望、最有前途的方法之一。
[1_2]什么是类?什么是对象?对象与类的关系是什么?在面向对象程序设计中,对象是描述其属性的数据以及对这些数据施加的一组操作封装在一起构成的统一体。
对象可以认为是:数据+操作在面向对象程序设计中,类就是具有相同的数据和相同的操作的一组对象的集合,也就是说,类是对具有相同数据结构和相同操作的一类对象的描述。
类和对象之间的关系是抽象和具体的关系。
类是多个对象进行综合抽象的结果,一个对象是类的一个实例。
在面向对象程序设计中,总是先声明类,再由类生成对象。
类是建立对象的“摸板”,按照这个摸板所建立的一个个具体的对象,就是类的实际例子,通常称为实例。
[1_3]现实世界中的对象有哪些特征?请举例说明。
对象是现实世界中的一个实体,其具有以下一些特征:(1)每一个对象必须有一个名字以区别于其他对象。
(2)需要用属性来描述它的某些特性。
(3)有一组操作,每一个操作决定了对象的一种行为。
(4)对象的操作可以分为两类:一类是自身所承受的操作,一类是施加于其他对象的操作。
例如:雇员刘名是一个对象对象名:刘名对象的属性:年龄:36 生日:1966.10.1 工资:2000 部门:人事部对象的操作:吃饭开车[1_4]什么是消息?消息具有什么性质?在面向对象程序设计中,一个对象向另一个对象发出的请求被称为“消息”。
C++面向对象程序设计教程(第3版)—-陈维兴,林小茶课后习题答案

C++面向对象程序设计教程课后题答案1.1?? 什么是面向对象程序设计面向对象程序设计是一种新的程序设计范型.这种范型的主要特征是:程序=对象+消息面向对象程序的基本元素是对象。
主要结构特点是:第一,?? 程序一般由类的定义和类的使用两部分组成;第二,?? 程序中的一切操作都是通过向对象发送消息来实现的。
1.2?? 什么是对象什么是类对象与类之间的关系是什么对象是描述其属性的数据以及对这些数据施加的一组操作封装在一起构成的统一体。
类就是具有相同的数据和相同的操作的一组对象的集合,也就是说,类是对具有相同数据结构和相同操作的一类对象的描述。
类和对象之间的关系是抽象和具体的关系。
类是多个对象进行综合抽象的结果,一个对象是类的一个实例。
1.3?? 现实世界中的对象有哪些特征?请举例说明。
现实世界中的对象具有以下特征:1)???????? 每一个对象必须有一个名字以区别于其他对象;2)???????? 用属性来描述对象的某些特征;3)???????? 有一组操作,每组操作决定对象的一种行为;4)???????? 对象的行为可以分为两类:一类是作用于自身的行为,另一类是作用于其他对象的行为。
例如一个教师是一个对象。
每个教师对象有自己的名字来和别的教师区别。
教师具有编号,姓名,年龄,职称,专业等属性。
教师拥有走路,吃饭,授课等行为操作。
走路,吃饭是作用于自身的行为,授课是作用于其他对象的行为。
1.4?? 什么是消息?消息具有什么性质?一个对象向另一个对象发出的请求成为“消息”。
消息具有以下3个性质:1)???????? 同一个对象可以接收不同形式的多个消息,做出不同的相应;2)???????? 相同形式的消息可以传递给不同的对象,所做出的响应可以是不同的;3)???????? 对消息的响应并不是必须的,对象可以响应消息,也可以不响应。
1.5?? 什么是抽象和封装?请举例说明。
抽象是将有关事物的共性归纳、集中的过程。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
面向对象程序设计教程(C++语言描述)题解与课程设计指导第1章面向对象程序设计概论一、名词解释抽象封装消息【问题解答】面向对象方法中的抽象是指对具体问题(对象)进行概括,抽出一类对象的公共性质并加以描述的过程。
面向对象方法中的封装就是把抽象出来的对象的属性和行为结合成一个独立的单位,并尽可能隐蔽对象的内部细节。
消息是面向对象程序设计用来描述对象之间通信的机制。
一个消息就是一个对象要求另一个对象实施某种操作的一个请求。
二、填空题(1)目前有面向过程的结构化程序设计方法和面向对象的程序设计方法两种重要的程序设计方法。
(2)结构化程序设计方法中的模块由顺序、选择和循环3种基本结构组成。
(3)在结构化程序设计方法中,程序可表示为程序=数据结构+算法;而面向对象的程序设计方法,程序可表示为程序=对象+消息。
(4)结构化程序设计方法中的基本模块是过程;而面向对象程序设计方法中的基本模块是类。
(5)面向对象程序设计方法具有抽象性、封装性、继承性和多态性等特点。
三、选择题(至少选一个,可以多选)(1)面向对象程序设计着重于( B )的设计。
A. 对象B. 类C. 算法D. 数据(2)面向对象程序设计中,把对象的属性和行为组织在同一个模块内的机制叫做(C )。
A. 抽象B. 继承C. 封装D. 多态(3)在面向对象程序设计中,类通过( D )与外界发生关系。
A. 对象B. 类C. 消息D. 接口(4)面向对象程序设计中,对象与对象之间的通信机制是(C )。
A. 对象B. 类C. 消息D. 接口(5)关于C++与C语言的关系的描述中,(D )是错误的。
A. C语言是C++的一个子集B. C语言与C++是兼容的C. C++对C语言进行了一些改进D. C++和C语言都是面向对象的【结果分析】C语言是面向过程的。
C++语言是一种经过改进的更为优化的C语言,是一种混合型语言,既面向过程也面向对象。
(6)面向对象的程序设计将数据结构与( A )放在一起,作为一个相互依存、不可分割的整体来处理。
A. 算法B. 信息C. 数据隐藏D. 数据抽象(7)下面( A )不是面向对象系统所包含的要素。
A. 重载B. 对象C. 类D. 继承【结果分析】面向对象=对象+类+继承+消息+多态(8)下面说法正确的是(BC )。
A. 将数据结构和算法置于同一个函数内,即为数据封装B. 一个类通过继承可以获得另一个类的特性C. 面向对象要求程序员集中于事物的本质特征,用抽象的观点看待程序D. 同一消息为不同的对象接受时,产生的行为是一样的,这称为一致性【结果分析】面向对象程序设计方法具有抽象性、封装性、继承性和多态性等特点。
将数据结构和算法置于同一个类内,即为数据封装。
同一消息为不同的对象接受时,产生的行为可能是不一样的,这称为多态性。
(9)下面说法正确的是(AD )。
A. 对象是计算机内存中的一块区域,它可以存放代码和数据B. 对象实际是功能相对独立的一段程序C. 各个对象间的数据可以共享是对象的一大优点D. 在面向对象的程序中,对象之间只能通过消息相互通信【结果分析】对象是计算机内存中的一块区域。
在对象中,不但存有数据,而且存有代码,使得每个对象在功能上相互之间保持相对独立。
对象之间存在各种联系,但它们之间只能通过消息进行通信。
四、判断题(1)在高级程序设计语言中,一般用类来实现对象,类是具有相同属性和行为的一组对象的集合,它是创建对象的模板。
(√)(2)C++语言只支持面向对象技术的抽象性、封装性、继承性等特性,而不支持多态性。
(×)【结果分析】C++语言不仅支持面向对象技术的抽象性、封装性、继承性等特性,而且支持多态性。
(3)面向对象程序设计中的消息应该包含“如何做”的信息。
(×)【结果分析】消息是面向对象程序设计用来描述对象之间通信的机制。
向对象“发送消息”只需告诉对象做什么,对象根据这个消息决定如何做。
(4)一个消息只能产生特定的响应效果。
(×)【结果分析】当一个对象发出消息时,由于接收对象的类型可能不同,所以,它们可能做出不同的反应。
这样,一个消息可以产生不同的响应效果,这种现象叫做多态。
(5)类的设计和类的继承机制实现了软件模块的可重用性。
(√)(6)C++语言和Java语言均不是一个纯正的面向对象的程序设计的语言。
(×)【结果分析】Java语言是一个纯正的面向对象的程序设计语言。
(7)学习C++语言是学习面向对象的程序设计方法的唯一途径。
(×)【结果分析】程序设计方法是独立于具体程序设计语言的一种技术,学习C++语言是学习面向对象程序设计方法的重要途径之一。
(8)在C++语言中,类是支持数据封装的工具。
(√)五、简答题(1)什么是结构化程序设计方法?它有哪些优点和缺点?【问题解答】结构化程序设计方法着眼于系统要实现的功能,从系统的输入输出出发,分析系统要做哪些事情,进而考虑如何做这些事情,自顶向下地对系统的功能进行分解,来建立系统的功能结构和相应的程序模块结构,有效地将一个较复杂的程序系统设计任务分解成许多易于控制和处理的子任务,便于开发和维护。
随着程序规模与复杂性的增长,这种面向过程的结构化程序设计方法存在明显的不足之处。
首先是数据安全性问题。
由于数据被每个模块所共用,因此是不安全的,一旦出错,很难查明原因。
其次是可维护性及可重用性差。
它把数据结构和算法分离为相互独立的实体,一旦数据结构需要改变时,常常要涉及整个程序,修改工作量极大并容易产生新的错误。
每一种相对于老问题的新方法都要带来额外的开销。
另外,图形用户界面的应用程序,很难用过程来描述和实现,开发和维护也都很困难。
(2)什么是面向对象程序设计方法?它有哪些优点?【问题解答】面向对象的程序设计方法中,将程序设计为一组相互协作的对象而不是一组相互协作的函数。
在程序中,属性用数据表示,用来描述对象静态特征;行为用程序代码实现,用来描述对象动态特征。
可见,在面向对象的程序设计方法中,对象是数据结构和算法的封装体。
对象之间存在各种联系,它们之间通过消息进行通信。
程序可表示为:程序=对象+消息在面向对象程序设计中应着重于类的设计。
类正是面向对象语言的基本程序模块,通过类的设计来完成实体的建模任务。
类通过一个简单的外部接口与外界发生关系。
一个类中的操作不会处理到另一个类中的数据,这样程序模块的独立性、数据的安全性就有了良好的保障。
程序的执行取决于事件发生的顺序,由顺序产生的消息来驱动程序的执行。
不必预先确定消息产生的顺序,更符合客观世界的实际。
并且面向对象程序设计方法提供了软件重用、解决大问题和复杂问题的有效途径,具有抽象性、封装性、继承性和多态性等特点。
(3)结构化程序设计方法与面向对象程序设计方法在对待数据结构和算法关系上有什么不同?【问题解答】结构化程序设计方法中,把数据结构和算法分离为相互独立的实体;而在面向对象程序设计中,数据结构和算法封装在一起,结合成一个独立的单位,即对象,并尽可能隐蔽对象的内部细节。
对象的私有属性只能由这个对象的行为来读取和修改,与外部的联系通过公有行为充当外部接口。
第2章从C到C++面向对象程序设计教程(C++语言描述)题解与课程设计指导第2章从C到C++一、名词解释引用内联函数重载函数【问题解答】所谓引用就是给对象取一个别名,使用该别名可以存取该对象。
换句话说是使新对象和原对象共用一个地址。
内联函数是使用inline关键字声明的函数。
重载函数指在同一个作用域内名字相同而参数不同的函数。
重载函数通常用来对具有相似行为而数据类型或数据个数不同的操作提供—个通用的名称。
二、填空题(1)一般情况下,用C++语言编写的程序是由函数加上类组成的。
(2)C++有两种注释符号,一种是//,另一种是/*……*/。
(3)使用C++风格的输入输出,在程序中必须包含头文件“iostream”。
(4)cin是预定义的标准输入流对象,>>是输入操作符,也称提取运算符。
(5)cout是预定义的标准输出流对象,<<是输出操作符,也称插入运算符。
(6)指针的值是它所指向那个对象的地址值。
指针的类型是它所指向对象的类型。
指针的内容便是它所指向对象的值。
(7)C++使用运算符&来定义一个引用,对引用的存取都是对它所引用的对象的存取。
(8)当一个函数调用出现在函数定义之前时,必须先用函数原型对函数进行声明。
(9)C++有值传递和引用传递两种参数传递机制。
(10)使用关键字inline声明的函数称为内联函数。
(11)运算符new用于进行动态内存分配,运算符delete用于释放动态分配的内存。
(12)下面程序的输出结果为x=10,y=10;x=100,y=100。
#include<iostream>using namespace std;int main(){int x=10,&y=x;cout<<"x="<<x<<",y="<<y<<endl;int *p=&y;*p=100;cout<<"x="<<x<<",y="<<y<<endl;return 0;}三、选择题(至少选一个,可以多选)(1)在整型指针变量p2、p3的定义中,错误的是( A )。
A. int p1,*p2,p3;B. int*p2,p1,*p3;C. int p1,*p2=&p1,*p3;D. int*p2,p1,*p3=&p1;【结果分析】指针定义的具体格式如下所示:<类型> *<指针名1>,*<指针名2>,…;(2)若有定义“double xx=3.14,*pp=&xx;”,则*pp等价于( C )。
A. &xxB. *xxC. 3.14D. xx【结果分析】pp指向xx所在的内存单元,这样*pp和xx等价。
(3)下面对引用的描述中( C )是错误的。
A. 引用是某个变量或对象的别名B. 建立引用时,要对它初始化C. 对引用初始化可以使用任意类型的变量D. 引用与其代表的对象具有相同的地址【结果分析】所谓引用就是给对象取一个别名,使用该别名可以存取该对象,所以对引用初始化必须使用同类型的变量。
(4)函数没有返回值的时候,应该选择( A )的函数类型。
A. voidB. intC. 不确定D. float(5)在函数的定义格式中,下面各组成部分中,( D )是可以省略的。
A. 函数名B. 函数体C. 返回值类型D. 函数参数【结果分析】函数的定义可以缺省形式参数,此时称为无参函数。