1. 打印“Hello, World!”
在C语言编程中,第一个经典案例就是打印“Hello, World!”。这个案例展示了C语言的基本语法和编译过程。
#include <stdio.h>
int main() {
printf("Hello, World!\n");
return 0;
}
2. 计算两个数的和
编写一个程序,计算并打印两个整数的和。
#include <stdio.h>
int main() {
int num1, num2, sum;
printf("Enter two numbers: ");
scanf("%d %d", &num1, &num2);
sum = num1 + num2;
printf("Sum = %d\n", sum);
return 0;
}
3. 计算平均值
编写一个程序,计算并打印三个整数的平均值。
#include <stdio.h>
int main() {
int num1, num2, num3, average;
printf("Enter three numbers: ");
scanf("%d %d %d", &num1, &num2, &num3);
average = (num1 + num2 + num3) / 3;
printf("Average = %d\n", average);
return 0;
}
4. 字符串输入输出
编写一个程序,从用户那里接收一个字符串,并打印出来。
#include <stdio.h>
int main() {
char str[100];
printf("Enter a string: ");
fgets(str, sizeof(str), stdin);
printf("You entered: %s", str);
return 0;
}
5. 判断质数
编写一个程序,判断一个整数是否为质数。
#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("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;
}
6. 冒泡排序
编写一个程序,使用冒泡排序算法对一组整数进行排序。
#include <stdio.h>
void bubble_sort(int arr[], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main() {
int arr[] = {64, 34, 25, 12, 22, 11, 90};
int n = sizeof(arr) / sizeof(arr[0]);
bubble_sort(arr, n);
printf("Sorted array: \n");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
7. 查找最大值和最小值
编写一个程序,查找一组整数中的最大值和最小值。
#include <stdio.h>
void find_max_min(int arr[], int n, int *max, int *min) {
*max = arr[0];
*min = arr[0];
for (int i = 1; i < n; i++) {
if (arr[i] > *max) {
*max = arr[i];
}
if (arr[i] < *min) {
*min = arr[i];
}
}
}
int main() {
int arr[] = {64, 34, 25, 12, 22, 11, 90};
int n = sizeof(arr) / sizeof(arr[0]);
int max, min;
find_max_min(arr, n, &max, &min);
printf("Max = %d, Min = %d\n", max, min);
return 0;
}
8. 计算斐波那契数列
编写一个程序,计算并打印斐波那契数列的前10个数。
#include <stdio.h>
void fibonacci(int n) {
int a = 0, b = 1, c;
printf("Fibonacci Series: %d %d ", a, b);
for (int i = 2; i < n; i++) {
c = a + b;
printf("%d ", c);
a = b;
b = c;
}
printf("\n");
}
int main() {
int n = 10;
fibonacci(n);
return 0;
}
9. 检查字符串是否为回文
编写一个程序,检查一个字符串是否为回文。
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
bool is_palindrome(char str[]) {
int len = strlen(str);
for (int i = 0; i < len / 2; i++) {
if (str[i] != str[len - i - 1]) {
return false;
}
}
return true;
}
int main() {
char str[100];
printf("Enter a string: ");
fgets(str, sizeof(str), stdin);
str[strcspn(str, "\n")] = 0; // Remove newline character
if (is_palindrome(str)) {
printf("The string is a palindrome.\n");
} else {
printf("The string is not a palindrome.\n");
}
return 0;
}
10. 计算字符串长度
编写一个程序,计算并打印一个字符串的长度。
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
printf("Enter a string: ");
fgets(str, sizeof(str), stdin);
str[strcspn(str, "\n")] = 0; // Remove newline character
printf("Length of the string: %ld\n", strlen(str));
return 0;
}
11. 检查字符串是否为空
编写一个程序,检查一个字符串是否为空。
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
bool is_empty(char str[]) {
return strlen(str) == 0;
}
int main() {
char str[100];
printf("Enter a string: ");
fgets(str, sizeof(str), stdin);
str[strcspn(str, "\n")] = 0; // Remove newline character
if (is_empty(str)) {
printf("The string is empty.\n");
} else {
printf("The string is not empty.\n");
}
return 0;
}
12. 检查字符串是否为数字
编写一个程序,检查一个字符串是否只包含数字。
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
bool is_number(char str[]) {
for (int i = 0; str[i] != '\0'; i++) {
if (str[i] < '0' || str[i] > '9') {
return false;
}
}
return true;
}
int main() {
char str[100];
printf("Enter a string: ");
fgets(str, sizeof(str), stdin);
str[strcspn(str, "\n")] = 0; // Remove newline character
if (is_number(str)) {
printf("The string is a number.\n");
} else {
printf("The string is not a number.\n");
}
return 0;
}
13. 字符串反转
编写一个程序,反转一个字符串。
#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: ");
fgets(str, sizeof(str), stdin);
str[strcspn(str, "\n")] = 0; // Remove newline character
printf("Original string: %s\n", str);
reverse_string(str);
printf("Reversed string: %s\n", str);
return 0;
}
14. 字符串复制
编写一个程序,复制一个字符串到另一个字符串。
#include <stdio.h>
#include <string.h>
void copy_string(char src[], char dest[]) {
int i = 0;
while (src[i] != '\0') {
dest[i] = src[i];
i++;
}
dest[i] = '\0';
}
int main() {
char src[100], dest[100];
printf("Enter a string: ");
fgets(src, sizeof(src), stdin);
src[strcspn(src, "\n")] = 0; // Remove newline character
copy_string(src, dest);
printf("Copied string: %s\n", dest);
return 0;
}
15. 字符串连接
编写一个程序,连接两个字符串。
#include <stdio.h>
#include <string.h>
void concatenate_strings(char src[], char dest[]) {
int i = 0;
while (src[i] != '\0') {
dest[i] = src[i];
i++;
}
while (dest[i] != '\0') {
i++;
}
while (src[i] != '\0') {
dest[i] = src[i];
i++;
}
dest[i] = '\0';
}
int main() {
char src[100], dest[200];
printf("Enter the first string: ");
fgets(src, sizeof(src), stdin);
src[strcspn(src, "\n")] = 0; // Remove newline character
printf("Enter the second string: ");
fgets(dest, sizeof(dest), stdin);
dest[strcspn(dest, "\n")] = 0; // Remove newline character
concatenate_strings(src, dest);
printf("Concatenated string: %s\n", dest);
return 0;
}
16. 字符串查找
编写一个程序,查找一个字符串中是否存在另一个字符串。
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
bool contains_string(char str[], char substr[]) {
return strstr(str, substr) != NULL;
}
int main() {
char str[100], substr[100];
printf("Enter a string: ");
fgets(str, sizeof(str), stdin);
str[strcspn(str, "\n")] = 0; // Remove newline character
printf("Enter a substring: ");
fgets(substr, sizeof(substr), stdin);
substr[strcspn(substr, "\n")] = 0; // Remove newline character
if (contains_string(str, substr)) {
printf("The substring is found in the string.\n");
} else {
printf("The substring is not found in the string.\n");
}
return 0;
}
17. 字符串替换
编写一个程序,替换一个字符串中所有出现的指定字符。
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
void replace_char(char str[], char old_char, char new_char) {
for (int i = 0; str[i] != '\0'; i++) {
if (str[i] == old_char) {
str[i] = new_char;
}
}
}
int main() {
char str[100];
printf("Enter a string: ");
fgets(str, sizeof(str), stdin);
str[strcspn(str, "\n")] = 0; // Remove newline character
printf("Original string: %s\n", str);
char old_char, new_char;
printf("Enter the character to replace: ");
scanf(" %c", &old_char);
printf("Enter the new character: ");
scanf(" %c", &new_char);
replace_char(str, old_char, new_char);
printf("Modified string: %s\n", str);
return 0;
}
18. 字符串分割
编写一个程序,将一个字符串分割成多个子字符串。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void split_string(char str[], char delimiters[], char **tokens) {
char *token = strtok(str, delimiters);
int i = 0;
while (token != NULL) {
tokens[i] = token;
i++;
token = strtok(NULL, delimiters);
}
tokens[i] = NULL;
}
int main() {
char str[100], delimiters[10];
char *tokens[10];
printf("Enter a string: ");
fgets(str, sizeof(str), stdin);
str[strcspn(str, "\n")] = 0; // Remove newline character
printf("Enter delimiters: ");
fgets(delimiters, sizeof(delimiters), stdin);
delimiters[strcspn(delimiters, "\n")] = 0; // Remove newline character
split_string(str, delimiters, tokens);
printf("Split string: ");
for (int i = 0; tokens[i] != NULL; i++) {
printf("%s ", tokens[i]);
}
printf("\n");
return 0;
}
19. 字符串排序
编写一个程序,使用冒泡排序算法对一组字符串进行排序。
#include <stdio.h>
#include <string.h>
void bubble_sort_strings(char arr[][100], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (strcmp(arr[j], arr[j + 1]) > 0) {
char temp[100];
strcpy(temp, arr[j]);
strcpy(arr[j], arr[j + 1]);
strcpy(arr[j + 1], temp);
}
}
}
}
int main() {
char arr[][100] = {"apple", "banana", "cherry", "date", "elderberry"};
int n = sizeof(arr) / sizeof(arr[0]);
bubble_sort_strings(arr, n);
printf("Sorted strings: \n");
for (int i = 0; i < n; i++) {
printf("%s\n", arr[i]);
}
return 0;
}
20. 字符串查找子字符串
编写一个程序,查找一个字符串中是否存在另一个字符串。
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
bool contains_substring(char str[], char substr[]) {
return strstr(str, substr) != NULL;
}
int main() {
char str[100], substr[100];
printf("Enter a string: ");
fgets(str, sizeof(str), stdin);
str[strcspn(str, "\n")] = 0; // Remove newline character
printf("Enter a substring: ");
fgets(substr, sizeof(substr), stdin);
substr[strcspn(substr, "\n")] = 0; // Remove newline character
if (contains_substring(str, substr)) {
printf("The substring is found in the string.\n");
} else {
printf("The substring is not found in the string.\n");
}
return 0;
}
21. 字符串替换子字符串
编写一个程序,替换一个字符串中所有出现的指定子字符串。
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
void replace_substring(char str[], char old_substring[], char new_substring[]) {
char temp[100];
int pos = 0;
while ((pos = strstr(str, old_substring)) != NULL) {
strncpy(temp, str, pos - 1);
temp[pos - 1] = '\0';
strcat(temp, new_substring);
strcat(temp, str + pos + strlen(old_substring));
strcpy(str, temp);
}
}
int main() {
char str[100], old_substring[100], new_substring[100];
printf("Enter a string: ");
fgets(str, sizeof(str), stdin);
str[strcspn(str, "\n")] = 0; // Remove newline character
printf("Enter the substring to replace: ");
fgets(old_substring, sizeof(old_substring), stdin);
old_substring[strcspn(old_substring, "\n")] = 0; // Remove newline character
printf("Enter the new substring: ");
fgets(new_substring, sizeof(new_substring), stdin);
new_substring[strcspn(new_substring, "\n")] = 0; // Remove newline character
replace_substring(str, old_substring, new_substring);
printf("Modified string: %s\n", str);
return 0;
}
22. 字符串查找字符
编写一个程序,查找一个字符串中是否存在指定字符。
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
bool contains_char(char str[], char ch) {
for (int i = 0; str[i] != '\0'; i++) {
if (str[i] == ch) {
return true;
}
}
return false;
}
int main() {
char str[100], ch;
printf("Enter a string: ");
fgets(str, sizeof(str), stdin);
str[strcspn(str, "\n")] = 0; // Remove newline character
printf("Enter a character: ");
scanf(" %c", &ch);
if (contains_char(str, ch)) {
printf("The character is found in the string.\n");
} else {
printf("The character is not found in the string.\n");
}
return 0;
}
23. 字符串查找所有字符
编写一个程序,查找一个字符串中所有出现的指定字符。
”`c
#include
void find_all_chars
