C++第一章习题答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1-1 1-1 写出下列程序运行后的输出结果。

(1)局部变量与全局变量同名。

#include <iostream.h>

int x=1, y=2;

max (int x , int y)

{

return x>y ? x : y;

}

void main()

{

int x=3;

cout<<"max="<<max(x, y)<<'\n'; }

(2)外部变量的使用。

#include <iostream.h>

extern int a;

void decrement(void)

{

a+=10;

}

int a=100;

int main()

{

for ( ; a<=150 ; )

{

decrement();

cout<<a<<endl;

}

return 0;

}

(3)在局部变量作用域内访问同名的全局变量。

#include <iostream.h>

int a=100;

void main()

{

int a=200;

cout<<a<<','<<::a<<'\n';

}

1-2 1-2 如下的宏用于求圆的面积,请举例说明在什么情况下将得不到正确结果:#define PI 3.1415926

#define AREA(R) PI*R*R

1-3 1-3 下面定义了一个宏,并在程序中使用它。请写出编译预处理后所得到的源代码,并分析程序有什么副作用?

#define CUBE(X) ((X)*(X)*(X))

. . . . . .

int height=100;

int volume=CUBE(height++);

1-4 1-4 下面的程序使用了条件编译指令,请写出编译预处理后所得到的源代码,并给出程序的运行结果。

#include <iostream.h>

#define MAX 100

main()

{

#if MAX>99

cout<<" This part is compiled . ";

#endif

}

1-5 1-5 采用指针方法将一个数组中的所有元素颠倒顺序,结果仍然存放在原来的数组中,要求使用最少的辅助存储单元。

1-6 1-6 使用结构变量表示每个学生的信息:姓名、学号和三门课的成绩。从键盘上输入10个学生的数据,然后输出每个学生的姓名和三门课的平均成绩。

1-7 1-7 用枚举值MON、TUE、WED、THU、FRI、SAT和SUN表示一个星期中的7天。键盘输入一个0~6之间的整数,根据输入的整数输出对应的英文缩写。

1-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(),该函数有两个实型参数,执行函数后,第一个参数为两个参数中值较大者,第二个参数为较小者。要求使用引用作为函数参数,并编写主函数验证你的函数功能。

1-12 1-12 编写一个函数s(),实现交换两个结构变量的功能。编写主函数验证函数s()的功能,要求使用引用传递参数。

1-13 1-13 定义一个带参数的宏,求出三个数中最大的一个数,并进行验证。

1-14 1-14 输入一个字符串,根据需要设置条件编译,使之能将输入的字符串以大写字母的形式或小写字母的形式输出。

1-15 1-15 假设有三个文件:test1.h、test2.h和test.cpp,在test1.h中定义了一个宏PI,test2.h文件包含了test1.h文件,而test.cpp又文件包含了test1.h文件和test2.h 文件。请问编译时会出现什么错误?如何解决?提示:宏的重复定义。

2-1 2-1 以下程序有什么错误?如有请改正它。

#include <iostream.h>

class Point

{

int x, y;

public:

void Display() { cout<<"x="<<x<<", y="<<y<<endl; }; };

main()

{

Point point1;

point1.x=100;

point1.y=200;

point1.Display();

}

2-2 2-2 写出下列程序运行后的输出结果。

#include <iostream.h>

class Time{

private:

int hour, minute, second;

public:

void setTime(int h, int m, int s)

{

hour=(h>=0 && h<24) ? h:0;

minute=(m>=0 && m<60) ? m:0;

second=(s>=0 && s<60) ? s:0;

};

相关文档
最新文档