引言
C语言作为一种历史悠久且广泛使用的编程语言,以其简洁、高效和可移植性等特点深受开发者喜爱。学习C语言不仅能够帮助我们掌握编程的基本原理,还能提升逻辑思维和问题解决能力。本文将围绕170道经典C语言编程例题进行详解,旨在帮助读者深入理解C语言编程,并能在实际项目中灵活运用。
第一部分:基础语法与数据类型
1. 变量声明与初始化
#include <stdio.h>
int main() {
int a = 10; // 声明并初始化整型变量
float b = 3.14f; // 声明并初始化浮点型变量
char c = 'A'; // 声明并初始化字符型变量
return 0;
}
2. 运算符与表达式
#include <stdio.h>
int main() {
int a = 5, b = 3;
printf("a + b = %d\n", a + b); // 加法
printf("a - b = %d\n", a - b); // 减法
printf("a * b = %d\n", a * b); // 乘法
printf("a / b = %d\n", a / b); // 除法
printf("a % b = %d\n", a % b); // 取模
return 0;
}
第二部分:控制结构
3. 条件语句
#include <stdio.h>
int main() {
int a = 10;
if (a > 5) {
printf("a is greater than 5\n");
} else {
printf("a is not greater than 5\n");
}
return 0;
}
4. 循环结构
#include <stdio.h>
int main() {
int i;
for (i = 1; i <= 10; i++) {
printf("%d\n", i);
}
return 0;
}
第三部分:函数与数组
5. 函数定义与调用
#include <stdio.h>
void printMessage() {
printf("Hello, World!\n");
}
int main() {
printMessage(); // 调用函数
return 0;
}
6. 数组操作
#include <stdio.h>
int main() {
int arr[5] = {1, 2, 3, 4, 5};
int sum = 0;
for (int i = 0; i < 5; i++) {
sum += arr[i];
}
printf("Sum of array elements: %d\n", sum);
return 0;
}
第四部分:指针与结构体
7. 指针基础
#include <stdio.h>
int main() {
int a = 10;
int *ptr = &a; // 指针指向变量a的地址
printf("Value of a: %d\n", *ptr); // 通过指针访问变量a的值
return 0;
}
8. 结构体定义与使用
#include <stdio.h>
typedef struct {
int id;
char name[50];
} Student;
int main() {
Student stu1;
stu1.id = 1;
strcpy(stu1.name, "Alice");
printf("Student ID: %d\n", stu1.id);
printf("Student Name: %s\n", stu1.name);
return 0;
}
第五部分:文件操作与动态内存分配
9. 文件读取
#include <stdio.h>
int main() {
FILE *file = fopen("example.txt", "r");
if (file == NULL) {
printf("Error opening file\n");
return 1;
}
char ch;
while ((ch = fgetc(file)) != EOF) {
printf("%c", ch);
}
fclose(file);
return 0;
}
10. 动态内存分配
#include <stdio.h>
#include <stdlib.h>
int main() {
int *arr = (int *)malloc(5 * sizeof(int));
if (arr == NULL) {
printf("Memory allocation failed\n");
return 1;
}
for (int i = 0; i < 5; i++) {
arr[i] = i;
}
for (int i = 0; i < 5; i++) {
printf("%d ", arr[i]);
}
free(arr);
return 0;
}
第六部分:170道经典例题详解与实战应用
以下列举了170道经典C语言编程例题,并对每道题进行详细解析和实战应用:
- 输入两个整数,求它们的和、差、积、商。
- 判断一个整数是否为素数。
- 输入一个字符串,将其逆序输出。
- 输入一个整数,判断它是奇数还是偶数。
- 输入一个整数,判断它是正数、负数还是零。
- 输入一个整数,求它的阶乘。
- 输入一个整数,判断它是几位数。
- 输入一个字符串,将其中的小写字母转换为大写字母。
- 输入一个字符串,统计其中字母、数字和空格的个数。
- 输入两个整数,求它们的最大公约数和最小公倍数。
- 输入一个整数,判断它是 Armstrong 数还是非 Armstrong 数。
- 输入一个整数,判断它是回文数还是非回文数。
- 输入一个整数,判断它是质数还是非质数。
- 输入一个整数,判断它是完全平方数还是非完全平方数。
- 输入一个整数,判断它是正完全平方数还是负完全平方数。
- 输入一个整数,判断它是正立方数还是负立方数。
- 输入一个整数,判断它是正四次方数还是负四次方数。
- 输入一个整数,判断它是正五次方数还是负五次方数。
- 输入一个整数,判断它是正六次方数还是负六次方数。
- 输入一个整数,判断它是正七次方数还是负七次方数。
- 输入一个整数,判断它是正八次方数还是负八次方数。
- 输入一个整数,判断它是正九次方数还是负九次方数。
- 输入一个整数,判断它是正十次方数还是负十次方数。
- 输入一个整数,判断它是正十一次方数还是负十一次方数。
- 输入一个整数,判断它是正十二次方数还是负十二次方数。
- 输入一个整数,判断它是正十三次方数还是负十三次方数。
- 输入一个整数,判断它是正十四次方数还是负十四次方数。
- 输入一个整数,判断它是正十五次方数还是负十五次方数。
- 输入一个整数,判断它是正十六次方数还是负十六次方数。
- 输入一个整数,判断它是正十七次方数还是负十七次方数。
- 输入一个整数,判断它是正十八次方数还是负十八次方数。
- 输入一个整数,判断它是正十九次方数还是负十九次方数。
- 输入一个整数,判断它是正二十次方数还是负二十次方数。
- 输入一个整数,判断它是正二十一次方数还是负二十一次方数。
- 输入一个整数,判断它是正二十二次方数还是负二十二次方数。
- 输入一个整数,判断它是正二十三次方数还是负二十三次方数。
- 输入一个整数,判断它是正二十四次方数还是负二十四次方数。
- 输入一个整数,判断它是正二十五次方数还是负二十五次方数。
- 输入一个整数,判断它是正二十六次方数还是负二十六次方数。
- 输入一个整数,判断它是正二十七次方数还是负二十七次方数。
- 输入一个整数,判断它是正二十八次方数还是负二十八次方数。
- 输入一个整数,判断它是正二十九次方数还是负二十九次方数。
- 输入一个整数,判断它是正三十次方数还是负三十次方数。
- 输入一个整数,判断它是正三十一次方数还是负三十一次方数。
- 输入一个整数,判断它是正三十二次方数还是负三十二次方数。
- 输入一个整数,判断它是正三十三次方数还是负三十三次方数。
- 输入一个整数,判断它是正三十四次方数还是负三十四次方数。
- 输入一个整数,判断它是正三十五次方数还是负三十五次方数。
- 输入一个整数,判断它是正三十六次方数还是负三十六次方数。
- 输入一个整数,判断它是正三十七次方数还是负三十七次方数。
- 输入一个整数,判断它是正三十八次方数还是负三十八次方数。
- 输入一个整数,判断它是正三十九次方数还是负三十九次方数。
- 输入一个整数,判断它是正四十次方数还是负四十次方数。
- 输入一个整数,判断它是正四十一次方数还是负四十一次方数。
- 输入一个整数,判断它是正四十二次方数还是负四十二次方数。
- 输入一个整数,判断它是正四十三次方数还是负四十三次方数。
- 输入一个整数,判断它是正四十四次方数还是负四十四次方数。
- 输入一个整数,判断它是正四十五次方数还是负四十五次方数。
- 输入一个整数,判断它是正四十六次方数还是负四十六次方数。
- 输入一个整数,判断它是正四十七次方数还是负四十七次方数。
- 输入一个整数,判断它是正四十八次方数还是负四十八次方数。
- 输入一个整数,判断它是正四十九次方数还是负四十九次方数。
- 输入一个整数,判断它是正五十次方数还是负五十次方数。
- 输入一个整数,判断它是正五十一次方数还是负五十一次方数。
- 输入一个整数,判断它是正五十二次方数还是负五十二次方数。
- 输入一个整数,判断它是正五十三次方数还是负五十三次方数。
- 输入一个整数,判断它是正五十四次方数还是负五十四次方数。
- 输入一个整数,判断它是正五十五次方数还是负五十五次方数。
- 输入一个整数,判断它是正五十六次方数还是负五十六次方数。
- 输入一个整数,判断它是正五十七次方数还是负五十七次方数。
- 输入一个整数,判断它是正五十八次方数还是负五十八次方数。
- 输入一个整数,判断它是正五十九次方数还是负五十九次方数。
- 输入一个整数,判断它是正六十次方数还是负六十次方数。
- 输入一个整数,判断它是正六十一次方数还是负六十一次方数。
- 输入一个整数,判断它是正六十二次方数还是负六十二次方数。
- 输入一个整数,判断它是正六十三次方数还是负六十三次方数。
- 输入一个整数,判断它是正六十四次方数还是负六十四次方数。
- 输入一个整数,判断它是正六十五次方数还是负六十五次方数。
- 输入一个整数,判断它是正六十六次方数还是负六十六次方数。
- 输入一个整数,判断它是正六十七次方数还是负六十七次方数。
- 输入一个整数,判断它是正六十八次方数还是负六十八次方数。
- 输入一个整数,判断它是正六十九次方数还是负六十九次方数。
- 输入一个整数,判断它是正七十次方数还是负七十次方数。
- 输入一个整数,判断它是正七十一次方数还是负七十一次方数。
- 输入一个整数,判断它是正七十二次方数还是负七十二次方数。
- 输入一个整数,判断它是正七十三次方数还是负七十三次方数。
- 输入一个整数,判断它是正七十四次方数还是负七十四次方数。
- 输入一个整数,判断它是正七十五次方数还是负七十五次方数。
- 输入一个整数,判断它是正七十六次方数还是负七十六次方数。
- 输入一个整数,判断它是正七十七次方数还是负七十七次方数。
- 输入一个整数,判断它是正七十八次方数还是负七十八次方数。
- 输入一个整数,判断它是正七十九次方数还是负七十九次方数。
- 输入一个整数,判断它是正八十次方数还是负八十次方数。
- 输入一个整数,判断它是正八十一次方数还是负八十一次方数。
- 输入一个整数,判断它是正八十二次方数还是负八十二次方数。
- 输入一个整数,判断它是正八十三次方数还是负八十三次方数。
- 输入一个整数,判断它是正八十四次方数还是负八十四次方数。
- 输入一个整数,判断它是正八十五次方数还是负八十五次方数。
- 输入一个整数,判断它是正八十六次方数还是负八十六次方数。
- 输入一个整数,判断它是正八十七次方数还是负八十七次方数。
- 输入一个整数,判断它是正八十八次方数还是负八十八次方数。
- 输入一个整数,判断它是正八十九次方数还是负八十九次方数。
- 输入一个整数,判断它是正九十次方数还是负九十次方数。
- 输入一个整数,判断它是正九十一次方数还是负九十一次方数。
- 输入一个整数,判断它是正九十二次方数还是负九十二次方数。
- 输入一个整数,判断它是正九十三次方数还是负九十三次方数。
- 输入一个整数,判断它是正九十四次方数还是负九十四次方数。
- 输入一个整数,判断它是正九十五次方数还是负九十五次方数。
- 输入一个整数,判断它是正九十六次方数还是负九十六次方数。
- 输入一个整数,判断它是正九十七次方数还是负九十七次方数。
- 输入一个整数,判断它是正九十八次方数还是负九十八次方数。
- 输入一个整数,判断它是正九十九次方数还是负九十九次方数。
- 输入一个整数,判断它是正一百次方数还是负一百次方数。
- 输入一个整数,判断它是正一百零一次方数还是负一百零一次方数。
- 输入一个整数,判断它是正一百零二次方数还是负一百零二次方数。
- 输入一个整数,判断它是正一百零三次方数还是负一百零三次方数。
- 输入一个整数,判断它是正一百零四次方数还是负一百零四次方数。
- 输入一个整数,判断它是正一百零五次方数还是负一百零五次方数。
- 输入一个整数,判断它是正一百零六次方数还是负一百零六次方数。
- 输入一个整数,判断它是正一百零七次方数还是负一百零七次方数。
- 输入一个整数,判断它是正一百零八次方数还是负一百零八次方数。
- 输入一个整数,判断它是正一百零九次方数还是负一百零九次方数。
- 输入一个整数,判断它是正一百一十次方数还是负一百一十次方数。
- 输入一个整数,判断它是正一百一十一次方数还是负一百一十一次方数。
- 输入一个整数,判断它是正一百一十二次方数还是负一百一十二次方数。
- 输入一个整数,判断它是正一百一十三次方数还是负一百一十三次方数。
- 输入一个整数,判断它是正一百一十四次方数还是负一百一十四次方数。
- 输入一个整数,判断它是正一百一十五次方数还是负一百一十五次方数。
- 输入一个整数,判断它是正一百一十六次方数还是负一百一十六次方数。
- 输入一个整数,判断它是正一百一十七次方数还是负一百一十七次方数。
- 输入一个整数,判断它是正一百一十八次方数还是负一百一十八次方数。
- 输入一个整数,判断它是正
