程序设计的学习过程中,理解和实践短小精悍的代码是提高编程能力的有效途径。本文精选了一些C语言的100行代码实例,覆盖了基础语法、算法实现以及常见问题解决方案,适合初学者和有一定基础的程序员参考和学习。
1. 基础语法与控制结构
Hello World程序:
c#include <stdio.h>int main() {
printf("Hello, World!\n");
return 0;}
这是每个程序员学习任何编程语言的第一个程序,它简单输出“Hello, World!”到控制台。
计算并输出1到100的和:
c#include <stdio.h>int main() {
int sum = 0, i;
for(i = 1; i <= 100; i++) {
sum += i;
}
printf("Sum = %d\n", sum);
return 0;}
这个程序演示了如何使用for循环计算1到100的和。
2. 数组与循环
打印杨辉三角形:
c#include <stdio.h>int main() {
int i, j, arr[10][10] = {0};
for(i = 0; i < 10; i++) {
arr[i][0] = arr[i][i] = 1;
for(j = 1; j < i; j++) {
arr[i][j] = arr[i-1][j-1] + arr[i-1][j];
}
}
for(i = 0; i < 10; i++) {
for(j = 0; j <= i; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;}
这个程序输出一个10行的杨辉三角形。
3. 函数与递归
递归计算阶乘:
c#include <stdio.h>int fact(int n) {
if(n == 0)
return 1;
else
return n * fact(n - 1);}int main() {
int i;
for(i = 0; i < 10; i++)
printf("%d! = %d\n", i, fact(i));
return 0;}
这个程序使用递归函数计算并输出0到9的阶乘。
4. 指针与动态内存分配
动态分配数组并填充:
c#include <stdio.h>#include <stdlib.h>int main() {
int *arr, i, n = 10;
arr = (int*)malloc(n * sizeof(int));
for(i = 0; i < n; i++) {
arr[i] = i * i;
}
for(i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
free(arr);
return 0;}
这个程序演示了如何动态分配一个整数数组,并用其平方填充。
5. 结构体与文件操作
结构体数组的创建和文件写入:
c#include <stdio.h>struct Student {
int id;
char name[50];};int main() {
struct Student students[3] = {{1, "Alice"}, {2, "Bob"}, {3, "Charlie"}};
FILE *fp = fopen("students.txt", "w");
for(int i = 0; i < 3; i++) {
fprintf(fp, "ID: %d, Name: %s\n", students[i].id, students[i].name);
}
fclose(fp);
return 0;}
这个程序创建了一个学生结构体数组,并将其写入到文件中。
以上只是程序设计中100行代码的一部分示例,它们涵盖了C语言的多个基础和高级特性。通过学习和实践这些代码,可以加深对C语言的理解,并提高解决实际问题的能力。希望这些示例能够帮助你在程序设计的道路上更进一步。