1、计算字符串长度
编写一个函数 strlen_custom
,计算给定字符串的长度,不使用标准库函数 strlen
。
#include <stdio.h>
// 计算字符串长度的函数
int strlen_custom(const char *str) {
int length = 0;
while (str[length] != '\0') {
length++;
}
return length;
}
int main() {
char str[] = "Hello, World!";
printf("Length of '%s' is %d\n", str, strlen_custom(str));
return 0;
}
2、计算数组元素的和
编写一个函数 array_sum
,计算给定整数数组的所有元素的和。
#include <stdio.h>
// 计算数组元素和的函数
int array_sum(int arr[], int size) {
int sum = 0;
for (int i = 0; i < size; i++) {
sum += arr[i];
}
return sum;
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr) / sizeof(arr[0]);
printf("Sum of array elements is %d\n", array_sum(arr, size));
return 0;
}
3、求阶乘(递归实现)
编写一个函数 factorial
,使用递归计算给定整数的阶乘。
#include <stdio.h>
// 计算阶乘的递归函数
int factorial(int n) {
if (n == 0 || n == 1) {
return 1;
}
return n * factorial(n - 1);
}
int main() {
int num = 5;
printf("Factorial of %d is %d\n", num, factorial(num));
return 0;
}
4、检查素数
编写一个函数 is_prime,判断给定的整数是否为素数。
#include <stdio.h>
#include <stdbool.h>
// 检查是否为素数的函数
bool is_prime(int num) {
if (num <= 1) {
return false;
}
for (int i = 2; i <= num / 2; i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
int main() {
int num = 29;
if (is_prime(num)) {
printf("%d is a prime number\n", num);
} else {
printf("%d is not a prime number\n", num);
}
return 0;
}
5、反转字符串
编写一个函数 reverse_string
,反转给定的字符串。
#include <stdio.h>
#include <string.h>
// 反转字符串的函数
void reverse_string(char *str) {
int length = strlen(str);
for (int i = 0; i < length / 2; i++) {
char temp = str[i];
str[i] = str[length - i - 1];
str[length - i - 1] = temp;
}
}
int main() {
char str[] = "Hello, World!";
reverse_string(str);
printf("Reversed string is '%s'\n", str);
return 0;
}