1. 引言
C语言作为一种历史悠久且功能强大的编程语言,在全球范围内被广泛使用。它以其简洁、高效和可移植性著称。本篇文章将提供一系列实用的C语言编程习题,并附上详细的参考解析,帮助读者加深对C语言的理解和应用。
2. 实用习题
习题1:计算阶乘
题目描述:编写一个C程序,计算一个非负整数的阶乘。
代码示例:
#include <stdio.h>
long long factorial(int n) {
if (n == 0)
return 1;
return n * factorial(n - 1);
}
int main() {
int num;
printf("Enter a non-negative integer: ");
scanf("%d", &num);
printf("Factorial of %d is %lld\n", num, factorial(num));
return 0;
}
习题2:判断素数
题目描述:编写一个C程序,判断一个给定的整数是否为素数。
代码示例:
#include <stdio.h>
#include <stdbool.h>
bool is_prime(int n) {
if (n <= 1) return false;
for (int i = 2; i * i <= n; i++) {
if (n % i == 0)
return false;
}
return true;
}
int main() {
int num;
printf("Enter a number: ");
scanf("%d", &num);
if (is_prime(num))
printf("%d is a prime number.\n", num);
else
printf("%d is not a prime number.\n", num);
return 0;
}
习题3:字符串反转
题目描述:编写一个C程序,实现字符串的反转功能。
代码示例:
#include <stdio.h>
#include <string.h>
void reverse_string(char *str) {
int len = strlen(str);
for (int i = 0; i < len / 2; i++) {
char temp = str[i];
str[i] = str[len - i - 1];
str[len - i - 1] = temp;
}
}
int main() {
char str[100];
printf("Enter a string: ");
scanf("%99s", str);
reverse_string(str);
printf("Reversed string: %s\n", str);
return 0;
}
3. 参考解析
解析1:计算阶乘
在上面的代码中,factorial 函数通过递归的方式计算阶乘。当输入为0时,返回1,因为0的阶乘定义为1。对于其他正整数,函数会递归地调用自身,每次将n减1,直到n为0。
解析2:判断素数
is_prime 函数通过遍历从2到sqrt(n)的所有整数,检查是否有任何数能够整除n。如果没有,则n是素数。
解析3:字符串反转
reverse_string 函数通过交换字符串首尾的字符来实现反转。它首先计算字符串的长度,然后遍历到字符串的一半,交换对应的字符。
4. 总结
通过以上习题和解析,读者可以加深对C语言编程的理解和应用。这些习题涵盖了基本的编程概念,如递归、循环和字符串操作。通过实际编写和运行这些代码,读者可以更好地掌握C语言编程技巧。
