当前位置:嗨网首页>书籍在线阅读

04-第3章复习题答案

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

A.3 第3章复习题答案

1.a. int 类型,也可以是 short 类型或 unsigned short 类型。人口数是一个整数。

b. float 类型,价格通常不是一个整数(也可以使用 double 类型,但实际上不需要那么高的精度)。

c. char 类型。

d. int 类型,也可以是 unsigned 类型。

2.原因之一:在系统中要表示的数超过了 int 可表示的范围,这时要使用 long 类型。原因之二:如果要处理更大的值,那么使用一种在所有系统上都保证至少是32位的类型,可提高程序的可移植性。

3.如果要正好获得32位的整数,可以使用 int32_t 类型。要获得可存储至少32位整数的最小类型,可以使用 int_least32_t 类型。如果要为 32 位整数提供最快的计算速度,可以选择 int_fast32_t 类型(假设你的系统已定义了上述类型)。

4.a. char 类型常量(但是存储为 int 类型)

b. int 类型常量

c. double 类型常量

d. unsigned int 类型常量,十六进制格式

e. double 类型常量

5.第1行:应该是 #include <stdio.h>

第2行:应该是 int main(void)

第3行:把 ( 改为{

第4行: gh 之间的;改成,

第5行:没问题

第6行:没问题

第7行:虽然这数字比较大,但在 e 前面应至少有一个数字,如 1e211.0e21 都可以。

第8行:没问题,至少没有语法问题。

第9行:把 ) 改成 }

除此之外,还缺少一些内容。首先,没有给 rate 变量赋值;其次未使用 h 变量;而且程序不会报告计算结果。虽然这些错误不会影响程序的运行(编译器可能给出变量未被使用的警告),但是它们确实与程序设计的初衷不符合。另外,在该程序的末尾应该有一个 return 语句。

下面是一个正确的版本,仅供参考:

#include <stdio.h>
int main(void)
{
     float g, h;
     float tax, rate;
     rate = 0.08;
     g = 1.0e5;
     tax = rate*g;
     h = g + tax;
     printf("You owe $%f plus $%f in taxes for a total of $%f.\n", g, tax, h);
     return 0;
}

6.

| 常量 | 类型 | 转换说明( % 转换字符) | | :----- | :----- | :----- | :----- | :----- | | 12 | int | %d | | 0X3 | unsigned int | %#X | | 'C' | char (实际上是 int ) | %c | | 2.34E07 | double | %e | | '\040' | char (实际上是 int ) | %c | | 7.0 | double | %f | | 6L | long | %ld | | 6.0f | float | %f | | 0x5.b6p12 | float | %a |

7.

| 常量 | 类型 | 转换说明( % 转换字符) | | :----- | :----- | :----- | :----- | :----- | | 012 | unsigned int | %#o | | 2.9e05L | long double | %Le | | 's' | char (实际上是 int ) | %c | | 100000 | long | %ld | | '\n' | char (实际上是 int ) | %c | | 20.0f | float | %f | | 0x44 | unsigned int | %x | | -40 | int | %d |

8. printf("The odds against the %d were %ld to 1.\n", imate, shot);

    printf("A score of %f is not an %c grade.\n", log, grade);

9. ch = '\r';

       ch = 13;
       ch = '\015'
       ch = '\xd'

10.最前面缺少一行(第0行): #include <stdio.h>

第1行:使用//把注释括起来,或者在注释前面使用//。

第3行: int cows, legs;

第4行: count\n");

第5行:把 %c 改为 %d ,把 legs 改为 &legs

第7行:把 %f 改为 %d

另外,在程序末尾还要加上 return 语句。

下面是修改后的版本:

#include <stdio.h>
int main(void) /* this program is perfect */
{
     int cows, legs;
     printf("How many cow legs did you count?\n");
     scanf("%d", &legs);
     cows = legs / 4;
     printf("That implies there are %d cows.\n", cows);
     return 0;
}

11.a.换行字符

b.反斜杠字符

c.双引号字符

d.制表字符