在学习《C语言程序设计教程》的过程中,课后习题是巩固知识、提升技能的重要环节。为了帮助大家更好地理解和掌握书中所学的内容,下面将针对部分典型习题给出详细的解答过程。
习题一:输出九九乘法表
题目描述:
编写一个C程序,输出如下格式的九九乘法表:
```
11=1
12=222=4
13=323=633=9
...
19=929=18 ... 99=81
```
解答思路:
可以使用两个嵌套循环来实现这一功能。外层循环控制行数,内层循环控制每行中的列数。通过合理安排输出格式,确保每个等式之间有适当的空格分隔。
```c
include
int main() {
int i, j;
for (i = 1; i <= 9; i++) { // 控制行数
for (j = 1; j <= i; j++) { // 控制每行内的列数
printf("%d%d=%d", j, i, i j);
if (j < i) { // 判断是否需要添加空格
printf(" ");
}
}
printf("\n"); // 每完成一行后换行
}
return 0;
}
```
习题二:判断素数
题目描述:
编写一个函数 `isPrime` 来判断一个整数是否为素数,并在主函数中调用该函数进行测试。
解答思路:
素数是指大于1且仅能被1和自身整除的自然数。可以通过从2到sqrt(n)逐一检查是否存在因子来判断一个数是否为素数。
```c
include
include
// 判断是否为素数的函数
int isPrime(int n) {
if (n <= 1) return 0; // 小于等于1的数不是素数
int limit = sqrt(n);
for (int i = 2; i <= limit; i++) {
if (n % i == 0) return 0; // 发现因子则非素数
}
return 1; // 无因子则为素数
}
int main() {
int num;
printf("请输入一个整数: ");
scanf("%d", &num);
if (isPrime(num)) {
printf("%d 是素数。\n", num);
} else {
printf("%d 不是素数。\n", num);
}
return 0;
}
```
以上两道习题展示了如何利用基本的控制结构(如循环和条件语句)以及简单的数学运算来解决实际问题。希望这些示例能够帮助读者加深对C语言的理解,并提高编程能力。继续探索更多有趣的练习吧!