根据提供的文件内容,我们可以总结出以下相关知识点:
### 一、C Primer Plus 第五版练习解答
#### 1. 编程练习2-1:输出字符串
- **目标**:学习如何在C语言中使用`printf`函数来输出字符串。
- **代码分析**:
```c
printf("AntonBruckner\n");
printf("Anton\nBruckner\n");
printf("Anton");
printf("Bruckner\n");
```
- 第一行输出了一个字符串"AntonBruckner"后跟一个换行符`\n`。
- 第二行通过两个`printf`函数分别输出了"Anton"和"Bruckner",每个字符串后都有一个换行符。
- 第三和第四行先输出"Anton",然后在新的一行输出"Bruckner"。
#### 2. 编程练习2-3:计算年龄(年和天)
- **目标**:学习如何使用变量存储数值,并进行简单的数学运算。
- **代码分析**:
```c
int ageyears = 44; // 年龄为44岁
int agedays = 365 * ageyears; // 计算总天数
printf("An age of %d years is %d days.\n", ageyears, agedays);
```
- 这段代码定义了两个整型变量`ageyears`和`agedays`,并使用了乘法运算符`*`来计算一个人44岁时的总天数。
- 使用`printf`函数将结果打印出来,其中`%d`是占位符,用来表示将替换为一个整数。
#### 3. 编程练习2-4:函数调用与执行流程
- **目标**:了解函数的基本概念,包括如何定义和调用函数。
- **代码分析**:
```c
void jolly(void) {
printf("For he's a jolly good fellow!\n");
}
void deny(void) {
printf("Which nobody can deny!\n");
}
int main(void) {
jolly();
jolly();
jolly();
deny();
return 0;
}
```
- `jolly`和`deny`都是无参数无返回值的函数,分别用于输出不同的字符串。
- `main`函数中连续三次调用了`jolly`函数,然后再调用一次`deny`函数。
#### 4. 编程练习2-5:使用变量进行数学运算
- **目标**:理解如何使用变量进行基本的数学运算。
- **代码分析**:
```c
int toes = 10;
printf("toes=%d\n", toes);
printf("Twice toes=%d\n", 2 * toes);
printf("toes squared=%d\n", toes * toes);
```
- 定义了一个整型变量`toes`,并将其赋值为10。
- 使用`printf`函数输出`toes`的值,以及它的两倍和平方。
#### 5. 编程练习2-7:函数嵌套调用
- **目标**:学习如何在一个函数中调用另一个函数。
- **代码分析**:
```c
void one_three(void) {
printf("one\n");
two();
printf("three\n");
}
void two(void) {
printf("two\n");
}
int main(void) {
printf("starting now:\n");
one_three();
printf("done!\n");
return 0;
}
```
- `one_three`函数中包含了对`two`函数的调用。
- `main`函数中调用了`one_three`函数。
### 二、数据输入输出及类型转换
#### 1. 编程练习3-2:输入ASCII码并输出字符
- **目标**:学习如何读取用户输入的数据,并使用`scanf`函数进行格式化读取。
- **代码分析**:
```c
int ascii;
printf("Enter an ASCII code:");
scanf("%d", &ascii);
printf("%d is the ASCII code for %c.\n", ascii, ascii);
```
- `scanf`函数用于从标准输入读取一个整数,并将其存储在变量`ascii`中。
- 使用`printf`函数输出用户输入的ASCII码及其对应的字符。
#### 2. 编程练习3-4:浮点数的输入输出
- **目标**:理解如何使用`scanf`和`printf`函数处理浮点数。
- **代码分析**:
```c
float num;
printf("Enter a floating-point value:");
scanf("%f", &num);
printf("fixed-point notation: %f\n", num);
printf("exponential notation: %e\n", num);
```
- 用户输入一个浮点数,并通过`scanf`读取到`num`变量中。
- 使用`printf`函数以两种不同的格式输出浮点数:固定点格式和指数格式。
#### 3. 编程练习3-6:使用浮点数表示质量
- **目标**:了解如何使用浮点数表示小数值。
- **代码分析**:
```c
float mass_mol = 3.0e-23; // 质量为3.0×10^-23克
```
- 定义了一个浮点型变量`mass_mol`,并为其赋值为`3.0e-23`,即3.0×10^-23克。
- 使用科学记数法表示非常小或非常大的数值,是一种常见的做法。