C语言函数练习
时间: 2025-05-22 17:48:01 浏览: 15
### C语言函数练习题及相关学习资源
以下是关于C语言函数的一些经典练习题以及推荐的学习资源:
#### 一、经典的C语言函数练习题
1. **求阶乘**
使用递归和非递归来实现计算n的阶乘功能。以下是一个完整的例子[^1]:
```c
// 非递归方式
#include <stdio.h>
int factorial_non_recursive(int n) {
int result = 1;
for (int i = 1; i <= n; ++i) {
result *= i;
}
return result;
}
// 递归方式
int factorial_recursive(int n) {
if (n == 0 || n == 1) {
return 1;
} else {
return n * factorial_recursive(n - 1);
}
}
int main() {
int number;
printf("Enter a positive integer: ");
scanf("%d", &number);
printf("Factorial using non-recursive method: %d\n", factorial_non_recursive(number));
printf("Factorial using recursive method: %d\n", factorial_recursive(number));
return 0;
}
```
2. **判断字符串是否为回文串**
编写一个函数`is_palindrome()`,用于检测给定的字符串是否为回文串。如果正序与反序相同,则返回true;否则返回false[^2]。
```c
#include <stdio.h>
#include <string.h>
int is_palindrome(const char str[]) {
int length = strlen(str);
for (int i = 0, j = length - 1; i < j; ++i, --j) {
if (str[i] != str[j]) {
return 0; // Not palindrome
}
}
return 1; // Palindrome
}
int main() {
const char* test_str = "abcdcba";
if (is_palindrome(test_str)) {
printf("The string \"%s\" is a palindrome.\n", test_str);
} else {
printf("The string \"%s\" is not a palindrome.\n", test_str);
}
return 0;
}
```
3. **素数判定**
实现一个函数`sushu()`,用来判断某个整数是否为素数。如果是素数则返回1,否则返回0[^3]。
```c
#include <stdio.h>
int sushu(int num) {
if (num <= 1) return 0;
for (int i = 2; i * i <= num; ++i) {
if (num % i == 0) return 0;
}
return 1;
}
int main() {
int start = 100, end = 200;
printf("Prime numbers between %d and %d are:\n", start, end);
for (int i = start; i <= end; ++i) {
if (sushu(i)) {
printf("%d ", i);
}
}
return 0;
}
```
---
#### 二、C语言函数学习资源推荐
1. **书籍推荐**
- 《C程序设计语言》第二版(作者:Brian W. Kernighan 和 Dennis M. Ritchie)
这本书被广泛认为是学习C语言的经典教材之一,涵盖了基础到高级的各种主题,包括函数定义、调用及其应用[^4]。
2. **在线教程网站**
- [菜鸟教程](https://www.runoob.com/cprogramming/index.html): 提供丰富的C语言入门至进阶课程,包含大量实例代码和解释说明。
- [GeeksforGeeks](https://www.geeksforgeeks.org/c-programming-language/): 聚焦于算法和技术面试准备,提供许多实用的编程技巧和挑战性问题。
3. **视频教学平台**
- B站上的“C语言从零基础到精通”系列视频,适合初学者逐步掌握基础知识并深入理解复杂概念。
- YouTube频道如ProgrammingKnowledge也提供了详尽的教学内容,帮助学生更好地理解和实践C语言中的各种特性。
---
#### 三、总结
通过以上列举的实际操作案例可以发现,在实际开发过程中灵活运用好各类内置库函数或者自定义创建特定用途的新函数是非常重要的技能点。持续不断地做项目实战演练加上理论知识巩固才能达到融会贯通的效果。
阅读全文
相关推荐















