习题解答
习题1
1.Dennis Ritchie
2.源代码文件:所谓源代码文件就是按着C语言的语法规则,使用文本编辑器编写的扩展名为.c的文本文件。目标文件:编译器对源文件进行编译后,编译器将源文件转化为一个二进制文件,该二进制文件被称作源文件的目标文件。目标文件的名字与源文件的名字相同,但扩展名为.obj。可执行文件:供链接器将目标文件需要链接的函数链接在一起、形成一个完整的可执行的代码并向可执行文件加入操作系统的启 动代码。可执行文件
可以脱离开发环境独立运行。 3.不是。
4.目标文件中。
5.在工程Sun中添加earth.c源文件,见左图1,earth.c代码如下:
#include
result=multiply(20,10); printf(\ getchar(); }
int multiply(int x,int y){ return x*y; }
左图1 工程Sun 源文件:earth.c 工程: Sun
6. 在工程City中添加student.c、school.c等源文件,见左图2,代码如下: 源文件: sudent.c
int add(int x,int y){ return x+y; }
工程: City 源文件: teacher.c
int sub(int x,int y){ return x-y; }
左图2 工程City
sudent.c teacher.c school.c
源文件: school.c
#include \int add(int,int); int sub(int,int); int main(){
int result1=0,result2=0; result1=add(5,3); result2=sub(5,3);
printf(\ return 0; }
习题2
1.以下(A)~(B)中哪个叙述是正确的。
(D) 一个C 程序可以由多个函数构成,这些函数可以分别写在多个源文件中。
2.需要。
3.
(1)函数封装代码便于程序的模块化管理
让C程序由若干个函数所构成,每个函数负责完成一定的任务,而且一个C程序可以将它使用的各个函数存放在一个源文件中,也可以将它使用的各个函数分别存放在不同的源文件中,当程序需要修改某个函数时,只需要重新编译该函数所在的源文件即可,不必重新编译其他函数所在的源文件,因此,用函数封装解决某一问题的过程便于程序的模块化管理、有利于系统的维护。
(2)函数封装代码便于在程序设计过程中代码复用,提高效率
由于一个源文件中的函数可以被多个C程序链接使用,这非常有利于代码的复用,比如,如果某个程序员想计算圆和梯形的面积,那么这个程序员无需知道计算圆面积的算法和计算梯形面积的算法,只要在他编写的main函数中调用(链接)circle.c 和lader.c中的函数即可,也就是说circle.c 和lader.c中的函数就是可复用的代码。 4.
可以编译、链接、运行成功 Allmans风格:
#include
Kernighan风格:
#include
printf(\}
习题3
1.B D
2.不能通过编译
3.下列程序的输出结果不是10,而是一个随机数。y没有初值。 4.B C 5.B
6.(A) &x
7.(D) 56Tiger198 8.(C) Ta
e 9.
#include
#define PI 3.1415926 //定义符号常量 int main() {
double radius; //圆半径 double circleArea; //圆面积 double circleLength; //圆周长
radius = 100.12;
circleArea = PI*radius*radius; //使用const常量
circleLength = 2*PI*radius; //使用const常量
printf(\半径是%0.8f圆的面积:%0.8f\\n\ printf(\半径是%0.8f圆的周长:%0.8f\\n\ getchar(); return 0; }
10.
#include
int main(){ int highTemperature; //最高气温
int lowTemperature; //最低气温
int highSubLow; //最高气温与最低气温的差
printf(\现在输出的最高气温是不可预测的垃圾值:%d\\n\scanf(\printf(\最高气温:%d\\n\printf(\最低气温:%d\\n\highSubLow = highTemperature - lowTemperature;
printf(\请输入最高气温和最低气温(用空格或回车分隔两个整数): \
printf(\最高气温与最低气温的差:%d\\n\system(\return 0;
} 11.
#include
int main() { double elephantWeight; //存储大象重量
double antOne,antTwo; //存储两只蚂蚁的重量 double weightSum; //存放重量和 printf(\请输入大象和两只蚂蚁的重量:\
scanf(\printf(\两只蚂蚁的重量分别是:\\n\
printf(\和%0.20f\\n\
weightSum = antOne+antTwo; printf(\两只蚂蚁的重量和:\
printf(\printf(\printf(\大象的重量是:\\n\printf(\
weightSum =elephantWeight+antOne+antTwo; printf(\大象与两只蚂蚁的重量和:\
printf(\printf(\return 0;
}
12.
#include
int main() { char letter1,letter2,letter3,letter4,letter5,end; printf(\请连续输入5个大写字母(然后按Enter):\
letter1 = getchar(); letter2 = getchar();
letter3 = getchar(); letter4 = getchar();
letter5 = getchar();
end = getchar(); //得到用户输入5个字母之后按的回车字符
putchar(letter1+32); putchar(letter2+32);