C - primer - plus(第五版)习题答案
第一章:复习题:
1.在一个系统上编写的C程序经过很少的改动或者是不经过修改就可以在其他系统上运行。如果修改是必要的,则通常只需改变伴随主函数的一个头文件中的几项内容即可。
2.源代码文件:包含程序设计的C实现形式,用编程语言。目标代码文件包含源代码的转换结果(机器语言代码),但他还不是一个完整的程序。目标文件和可执行文件都是由机器语言指令组成的。但目标文件只包含所编写代码转换成的机器语言,而可执行文件还包含所使用的库例程以及启动代码的机器代码。
3.7个步骤:定程序的目标;2.设计程序;3.编写代码;
4.编译;
5.运行程序;
6.测试和调试程序;
7.维护和修改程序
4.编译器的任务是:将源代码转换为目标代码(计算机语言所表示的代码)。
5.链接器的任务是:将目标代码,系统的标准启动代码和库代码结合在一起,并将他们存放在单个文件,即可执行文件中。编程练习:
程序目标:提示用户输入英寸之后,完成英寸与厘米的转换,然后将输入值和转换值同时输出。
程序设计:输入英寸值,判断输入数值是否合理,转换,输出
第二章:
1.C程序的基本模块称为函数
2.不遵循C语言的规则就会犯语法错误,类似于英语中的语法错误。
3.语义错误就是意思上面的错误,遵循了C语言的规则,但是结果不正确的时候就烦了语义错误。
4.# include
int main(void) {
int s; s = 56;
printf(\ return 0; }
5. Baa Baa Black Sheep.Have you any wool? begone!
0 creature of lard! what?
No/nbonzo? 2 + 2 =4
6.关键字:int char
7.int n1 = 3020; int n2 = 350;
printf(“There were %d word s and %d lines\\n”,n1,n2); 8.第7行:a=5,b=2;第8行:a=5,b=5;第9行:a=5,b=5;
编程练习:
1.# include
int main(void) {
printf(\ printf(\ printf(\ printf(\ return 0; }
2.#include
int main(void) {
printf(\ return 0; }
3.见代码
4.#include
void sentence1(void); void sentence2(void);
int main(void) {
printf(\ sentence1(); sentence2(); return 0; }
void sentence1(void) {
printf(\}
void sentence2(void) {
printf(\}
5.#include
int main(void) {
int toes; toes = 10;
printf(\= %d \\ntoes = %d\\n\ return 0; }
6.#include
void smile(void);
int main(void) {
for(int i=3;i>=1;i--) { for(int j=1;j<=i;j++) { smile(); } printf(\ }
return 0; }
void smile(void) {
printf(\}
7.#include
voidone_three(void); void two(void); void three(void);
int main(void) {
printf(\ one_three();
printf(\ return 0; }
voidone_three(void) {
printf(\
+ toes = %d \\ntoes * toes
two(); }
void two(void) {
printf(\ three(); }
void three(void) {
printf(\}
第三章: 复习题:
1.unsignedint ; float ; char; unsigned int;
2.long可以容纳比int更大的数;保证可移植性,确实需要处理更大的值,那么使用一种在所有系统上都保证至少是32位的类型会使程序的可移植性更好。
3.要获得正好是32位的数,可以使用int32_t。要获得客村住至少32为的最小类型,可使用
int_least32_t。如果要在32为类型中获得提供最快计算素的的类型,可以选择
int_fast32_t。 4.char 常量;int常量;double 常量;unsigned int常量 16进制格式;double 常量
5.#include int main(void) {
floatg,h; floattax,rate;
rate = 0.08; g = 1.0e5; tax = rate * g; h = g + tax;
printf(\ return 0; }
9. ch = ?\\r?; ch = 13; ch = ?\\015?; ch = ?\\0xd? 10.#include int
main(void) {
intcows,legs;
printf(\ scanf(\ cows= legs / 4;
printf(\
return 0; }
11.换行字符;反斜杠字符;双引号字符,制表字符编程练习
1.#include int main(void) {
int i = 2147483647;
unsignedint j = 4294967295;
printf(\ printf(\
//整数的溢出,当达到最大值时,将会溢出到起始点
floattoobig = 3.4e38 * 100.0f; printf(\
//浮点值的上溢,被赋予一个无穷大的值,printf()函数显示此值为inf
floattoosmall = 0.1234E-10; toosmall = toosmall / 10; printf(\
//下溢,指数部分已达到最小值,计算机只好将尾数部分进行右移,空出首位的二进制位,丢弃最后一位的二进制位 return 0; }
2.#include int main(void) {
charch = 66;
printf(\ return 0; }
3.#include int main(void) {
printf(\by the sudden sound,Sally shouted. \\\the Great Pumpkin,what was that\\\ return 0; }
4.#include
int main(void) {
float a;
感谢您的阅读,祝您生活愉快。