引言C语言是一种广泛使用的高级编程语言,以其效率高、可移植性强而闻名。掌握C语言的关键在于不断的实践和挑战。本文将为您介绍一百道经典编程挑战,帮助您从基础到高级逐步提升C语言编程技能。第一部分:基础语...
C语言是一种广泛使用的高级编程语言,以其效率高、可移植性强而闻名。掌握C语言的关键在于不断的实践和挑战。本文将为您介绍一百道经典编程挑战,帮助您从基础到高级逐步提升C语言编程技能。
int main() {
int a = 10; float b = 3.14f; char c = 'A'; return 0;}
### 2. 运算符
- **题目描述**:编写程序,实现基本的算术运算。
- **代码示例**: ```c #include int main() { int a = 5, b = 3; printf("Addition: %d\n", a + b); printf("Subtraction: %d\n", a - b); printf("Multiplication: %d\n", a * b); printf("Division: %d\n", a / b); return 0; } int main() {
int num; printf("Enter a number: "); scanf("%d", &num); if (num % 2 == 0) { printf("%d is even.\n", num); } else { printf("%d is odd.\n", num); } return 0;}
### 4. 循环结构
- **题目描述**:编写程序,计算1到100的整数之和。
- **代码示例**: ```c #include int main() { int sum = 0; for (int i = 1; i <= 100; i++) { sum += i; } printf("Sum of numbers from 1 to 100 is %d\n", sum); return 0; } int gcd(int a, int b) {
if (b == 0) return a; return gcd(b, a % b);}
int main() {
int x = 60, y = 48; printf("GCD of %d and %d is %d\n", x, y, gcd(x, y)); return 0;}
### 6. 二维数组
- **题目描述**:编写程序,计算一个3x3矩阵的主对角线元素之和。
- **代码示例**: ```c #include int main() { int matrix[3][3] = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} }; int sum = 0; for (int i = 0; i < 3; i++) { sum += matrix[i][i]; } printf("Sum of diagonal elements is %d\n", sum); return 0; } void swap(int *a, int *b) {
int temp = *a; *a = *b; *b = temp;}
int main() {
int x = 10, y = 20; swap(&x, &y); printf("x = %d, y = %d\n", x, y); return 0;}
### 8. 动态内存分配
- **题目描述**:编写程序,动态分配内存以存储用户输入的字符串。
- **代码示例**: ```c #include #include #include int main() { char *str; int length; printf("Enter the length of the string: "); scanf("%d", &length); str = (char *)malloc(length + 1); // +1 for the null terminator if (str == NULL) { printf("Memory allocation failed\n"); return 1; } printf("Enter the string: "); scanf("%s", str); printf("You entered: %s\n", str); free(str); // Don't forget to free the memory return 0; } int main() {
FILE *file = fopen("output.txt", "w"); if (file == NULL) { printf("Error opening file\n"); return 1; } fprintf(file, "Hello, World!\n"); fclose(file); return 0;}
### 10. 文件读取
- **题目描述**:编写程序,从文件中读取内容并打印到屏幕。
- **代码示例**: ```c #include int main() { FILE *file = fopen("output.txt", "r"); if (file == NULL) { printf("Error opening file\n"); return 1; } char buffer[100]; while (fgets(buffer, sizeof(buffer), file)) { printf("%s", buffer); } fclose(file); return 0; } 通过以上一百道经典编程挑战,您可以全面地掌握C语言的基础知识。这些挑战将帮助您提高解决问题的能力,并加深对C语言特性和用法的理解。不断实践和挑战自己,您将成为一名出色的C语言程序员。