计算机C++第一章习题答案

上传人:ali****an 文档编号:110005646 上传时间:2019-10-28 格式:DOC 页数:27 大小:100.50KB
返回 下载 相关 举报
计算机C++第一章习题答案_第1页
第1页 / 共27页
计算机C++第一章习题答案_第2页
第2页 / 共27页
计算机C++第一章习题答案_第3页
第3页 / 共27页
计算机C++第一章习题答案_第4页
第4页 / 共27页
计算机C++第一章习题答案_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《计算机C++第一章习题答案》由会员分享,可在线阅读,更多相关《计算机C++第一章习题答案(27页珍藏版)》请在金锄头文库上搜索。

1、1-1 1-1 写出下列程序运行后的输出结果。(1)局部变量与全局变量同名。#include int x=1, y=2;max (int x , int y) return xy ? x : y;void main() int x=3; coutmax=max(x, y)n;(2)外部变量的使用。#include extern int a;void decrement(void) a+=10;int a=100;int main() for ( ; a=150 ; ) decrement(); coutaendl; return 0;(3)在局部变量作用域内访问同名的全局变量。#include

2、 int a=100;void main() int a=200; couta,:an;1-2 1-2 如下的宏用于求圆的面积,请举例说明在什么情况下将得不到正确结果:#define PI 3.1415926#define AREA(R) PI*R*R1-3 1-3 下面定义了一个宏,并在程序中使用它。请写出编译预处理后所得到的源代码,并分析程序有什么副作用?#define CUBE(X) (X)*(X)*(X). . . . . . int height=100;int volume=CUBE(height+);1-4 1-4 下面的程序使用了条件编译指令,请写出编译预处理后所得到的源代码,

3、并给出程序的运行结果。#include #define MAX 100main()#if MAX99cout This part is compiled . ;#endif1-5 1-5 采用指针方法将一个数组中的所有元素颠倒顺序,结果仍然存放在原来的数组中,要求使用最少的辅助存储单元。1-6 1-6 使用结构变量表示每个学生的信息:姓名、学号和三门课的成绩。从键盘上输入10个学生的数据,然后输出每个学生的姓名和三门课的平均成绩。1-7 1-7 用枚举值MON、TUE、WED、THU、FRI、SAT和SUN表示一个星期中的7天。键盘输入一个06之间的整数,根据输入的整数输出对应的英文缩写。1-

4、8 1-8 编写一个程序,在主函数main()的外部和内部分别声明两个同名的整型变量并赋值,然后在主函数main()中分别访问两个变量。1-9 1-9 采用动态内存分配方法设计一个学生成绩处理程序,要求输入任意数量学生的学号、姓名和四门课的成绩,并按平均成绩高低输出每个学生的姓名和成绩。1-10 1-10 一个程序由两个C+源文件组成,在一个源文件中定义主函数main()并声明一个外部整型变量n,在另一个源文件中定义一个不带参数的函数factorial(void),该函数用于计算变量n的阶乘。编程在主函数main()中输入一个整数并求它的阶乘。1-11 1-11 编写一个函数maxmin(),

5、该函数有两个实型参数,执行函数后,第一个参数为两个参数中值较大者,第二个参数为较小者。要求使用引用作为函数参数,并编写主函数验证你的函数功能。1-12 1-12 编写一个函数swapstruct(),实现交换两个结构变量的功能。编写主函数验证函数swapstruct()的功能,要求使用引用传递参数。1-13 1-13 定义一个带参数的宏,求出三个数中最大的一个数,并进行验证。1-14 1-14 输入一个字符串,根据需要设置条件编译,使之能将输入的字符串以大写字母的形式或小写字母的形式输出。1-15 1-15 假设有三个文件:test1.h、test2.h和test.cpp,在test1.h中定

6、义了一个宏PI,test2.h文件包含了test1.h文件,而test.cpp又文件包含了test1.h文件和test2.h文件。请问编译时会出现什么错误?如何解决?提示:宏的重复定义。 2-1 2-1 以下程序有什么错误?如有请改正它。#include class Point int x, y;public: void Display() coutx=x, y=yendl; ;main() Point point1; point1.x=100; point1.y=200; point1.Display(); 2-2 2-2 写出下列程序运行后的输出结果。#include class Time

7、private: int hour, minute, second;public: void setTime(int h, int m, int s) hour=(h=0 & h=0 & m=0 & s60) ? s:0; ; void showTime() couthour:minute:secondendl; ;void main() Time t1; t1.setTime(14, 52, 66); coutThe time is:; t1.showTime();2-3 2-3 以下程序段有什么错误?并请予以修改。(1)使用静态成员函数。#include #include class Pe

8、rsonpublic: char m_strName20; long m_ID;public: Person(char* strName, long ID) strcpy(m_strName, strName); m_ID=ID; static long GetID() return m_ID; ;void main() Person person1(LiuJun,1101640524); coutID=Person:GetID(person1)n;(2)派生类构造函数自动调用基类的构造函数。#include class Pointprotected: int x, y;public: Poi

9、nt(int a , int b) x=a; y=b; ; int getX() return x; ; int getY() return y; ;class Circle : public Pointprotected: int radius;public: Circle(int a=0, int b=0, int r=0) radius=r; ; int getRadius() return radius; ;main() Circle c(100, 150, 200); coutx=c.getX(), y=c.getY(), radius=c.getRadius()endl;(3)使用

10、多继承。#include class Aprotected: int a;public: void SetData(int x) a=x; ; int GetData() return a; ;class Bprotected: int b;public: void SetData(int y) b=y; ; int GetData() return b; ;class C : public A, public Bpublic: void SetData(int x, int y) a=x; b=y; ;main() C c; c.SetData(30, 70); couta=c.GetData(), b=c.GetData()endl;2-4 2-4 写出下列程序运行后的输出结果。(1)不使用虚函数。#include class Apublic: void Show() coutA:shown; ;class B : public Apublic: void Show() coutShow(); pa=&b; pa-Show();(2)不使用虚析构函数。#include class Apublic:

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 教育学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号