在C语言的学习过程中,习题是检验我们学习成果的重要手段。今天,我们就来深入解析《C程序设计》课本5.8节中的经典习题,并给出详细的答案解析。
习题一:编写一个C程序,计算两个整数的和、差、积、商。
代码示例:
#include <stdio.h>
int main() {
int a, b;
printf("请输入两个整数:");
scanf("%d %d", &a, &b);
printf("和为:%d\n", a + b);
printf("差为:%d\n", a - b);
printf("积为:%d\n", a * b);
if (b != 0) {
printf("商为:%d\n", a / b);
} else {
printf("除数不能为0\n");
}
return 0;
}
解析:
- 首先,我们定义了两个整型变量
a和b。 - 使用
printf函数提示用户输入两个整数,并通过scanf函数读取用户输入的值。 - 接着,我们计算两个整数的和、差、积,并使用
printf函数输出结果。 - 在计算商时,我们首先判断除数是否为0,以避免除以0的错误。
习题二:编写一个C程序,判断一个整数是否为素数。
代码示例:
#include <stdio.h>
#include <stdbool.h>
bool is_prime(int num) {
if (num <= 1) {
return false;
}
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
int main() {
int num;
printf("请输入一个整数:");
scanf("%d", &num);
if (is_prime(num)) {
printf("%d是素数\n", num);
} else {
printf("%d不是素数\n", num);
}
return 0;
}
解析:
- 我们定义了一个名为
is_prime的函数,用于判断一个整数是否为素数。 - 在
is_prime函数中,我们首先判断传入的整数是否小于等于1,如果是,则返回false。 - 接着,我们使用一个for循环,从2开始遍历到
num的平方根,判断是否存在一个数能够整除num。 - 如果存在,则返回
false;如果不存在,则返回true。 - 在
main函数中,我们读取用户输入的整数,并调用is_prime函数判断是否为素数,最后输出结果。
习题三:编写一个C程序,实现一个简单的计算器,能够计算加减乘除运算。
代码示例:
#include <stdio.h>
int main() {
char operator;
double num1, num2, result;
printf("请输入运算符(+、-、*、/):");
scanf(" %c", &operator);
printf("请输入两个操作数:");
scanf("%lf %lf", &num1, &num2);
switch (operator) {
case '+':
result = num1 + num2;
break;
case '-':
result = num1 - num2;
break;
case '*':
result = num1 * num2;
break;
case '/':
if (num2 != 0) {
result = num1 / num2;
} else {
printf("除数不能为0\n");
return 0;
}
break;
default:
printf("无效的运算符\n");
return 0;
}
printf("结果是:%lf\n", result);
return 0;
}
解析:
- 我们定义了三个变量
operator、num1和num2,分别用于存储运算符和两个操作数。 - 使用
printf函数提示用户输入运算符和操作数,并通过scanf函数读取用户输入的值。 - 使用
switch语句根据用户输入的运算符进行相应的计算。 - 在计算除法时,我们首先判断除数是否为0,以避免除以0的错误。
- 最后,输出计算结果。
通过以上三个经典习题的解析,相信大家对C语言的基本语法和运算有了更深入的了解。在今后的学习中,要多动手实践,不断提高自己的编程能力。
