实例1:计算两个数的和
知识点
代码示例
#include <stdio.h>
int main() {
int a, b, sum;
printf("Enter two numbers: ");
scanf("%d %d", &a, &b);
sum = a + b;
printf("The sum of %d and %d is %d\n", a, b, sum);
return 0;
}
实例2:判断一个数是正数、负数还是零
知识点
代码示例
#include <stdio.h>
int main() {
int num;
printf("Enter an integer: ");
scanf("%d", &num);
if (num > 0) {
printf("%d is a positive number.\n", num);
} else if (num < 0) {
printf("%d is a negative number.\n", num);
} else {
printf("%d is zero.\n", num);
}
return 0;
}
实例3:打印乘法表
知识点
代码示例
#include <stdio.h>
int main() {
int i, j;
for (i = 1; i <= 10; i++) {
for (j = 1; j <= 10; j++) {
printf("%d*%d=%d\t", j, i, i * j);
}
printf("\n");
}
return 0;
}
实例4:计算阶乘
知识点
代码示例
#include <stdio.h>
int factorial(int n) {
if (n == 0)
return 1;
return n * factorial(n - 1);
}
int main() {
int num;
printf("Enter a number: ");
scanf("%d", &num);
printf("Factorial of %d is %d\n", num, factorial(num));
return 0;
}
实例5:判断素数
知识点
代码示例
#include <stdio.h>
int is_prime(int n) {
if (n <= 1) return 0;
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) return 0;
}
return 1;
}
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>
int main() {
int arr[] = {10, 20, 30, 40, 50};
int n = sizeof(arr) / sizeof(arr[0]);
int sum = 0;
for (int i = 0; i < n; i++) {
sum += arr[i];
}
float avg = (float)sum / n;
printf("The average of array elements is %.2f\n", avg);
return 0;
}
实例7:冒泡排序
知识点
代码示例
#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;
}
实例8:字符串比较
知识点
代码示例
#include <stdio.h>
#include <string.h>
int main() {
char str1[100], str2[100];
printf("Enter first string: ");
fgets(str1, 100, stdin);
printf("Enter second string: ");
fgets(str2, 100, stdin);
if (strcmp(str1, str2) == 0) {
printf("Both strings are equal.\n");
} else {
printf("Both strings are not equal.\n");
}
return 0;
}
实例9:字符串长度
知识点
代码示例
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
printf("Enter a string: ");
fgets(str, 100, stdin);
printf("The length of the string is %lu\n", strlen(str) - 1);
return 0;
}
实例10:复制字符串
知识点
代码示例
#include <stdio.h>
#include <string.h>
int main() {
char str1[100], str2[100];
printf("Enter a string: ");
fgets(str1, 100, stdin);
strcpy(str2, str1);
printf("Copied string: %s", str2);
return 0;
}
实例11:字符串连接
知识点
代码示例
#include <stdio.h>
#include <string.h>
int main() {
char str1[100], str2[100];
printf("Enter first string: ");
fgets(str1, 100, stdin);
printf("Enter second string: ");
fgets(str2, 100, stdin);
strcat(str1, str2);
printf("Concatenated string: %s", str1);
return 0;
}
实例12:格式化输出
知识点
代码示例
#include <stdio.h>
int main() {
int num = 10;
float fnum = 10.5;
char ch = 'A';
printf("Integer: %d\n", num);
printf("Float: %.2f\n", fnum);
printf("Character: %c\n", ch);
return 0;
}
实例13:函数参数传递
知识点
代码示例
#include <stdio.h>
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int x = 5, y = 10;
swap(&x, &y);
printf("x = %d, y = %d\n", x, y);
return 0;
}
实例14:结构体
知识点
代码示例
#include <stdio.h>
struct Student {
char name[50];
int age;
float marks;
};
int main() {
struct Student s;
printf("Enter name: ");
fgets(s.name, 50, stdin);
printf("Enter age: ");
scanf("%d", &s.age);
printf("Enter marks: ");
scanf("%f", &s.marks);
printf("Name: %s\n", s.name);
printf("Age: %d\n", s.age);
printf("Marks: %.2f\n", s.marks);
return 0;
}
实例15:指针数组
知识点
代码示例
#include <stdio.h>
#include <string.h>
int main() {
char *arr[] = {"Hello", "World", "C Programming"};
int n = sizeof(arr) / sizeof(arr[0]);
for (int i = 0; i < n; i++) {
printf("%s\n", arr[i]);
}
return 0;
}
实例16:指针与函数
知识点
代码示例
#include <stdio.h>
void add(int *a, int *b) {
*a += *b;
}
int main() {
int x = 5, y = 10;
add(&x, &y);
printf("x = %d, y = %d\n", x, y);
return 0;
}
实例17:动态内存分配
知识点
代码示例
#include <stdio.h>
#include <stdlib.h>
int main() {
int *arr;
int n;
printf("Enter number of elements: ");
scanf("%d", &n);
arr = (int *)malloc(n * sizeof(int));
if (arr == NULL) {
printf("Memory allocation failed.\n");
return 1;
}
printf("Enter %d elements: ", n);
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
printf("Elements are: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
free(arr);
return 0;
}
实例18:文件操作
知识点
代码示例
#include <stdio.h>
int main() {
FILE *fp;
char filename[50];
char buffer[100];
printf("Enter the name of the file: ");
scanf("%s", filename);
fp = fopen(filename, "r");
if (fp == NULL) {
printf("Failed to open the file.\n");
return 1;
}
printf("Contents of the file:\n");
while (fgets(buffer, 100, fp)) {
printf("%s", buffer);
}
fclose(fp);
return 0;
}
实例19:结构体数组
知识点
代码示例
#include <stdio.h>
struct Student {
char name[50];
int age;
float marks;
};
int main() {
struct Student students[] = {
{"John", 20, 85.5},
{"Alice", 22, 92.0},
{"Bob", 19, 78.5}
};
int n = sizeof(students) / sizeof(students[0]);
for (int i = 0; i < n; i++) {
printf("Name: %s, Age: %d, Marks: %.2f\n", students[i].name, students[i].age, students[i].marks);
}
return 0;
}
实例20:指针与二维数组
知识点
代码示例
#include <stdio.h>
int main() {
int arr[3][4] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
int (*ptr)[4] = arr;
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
printf("%d ", (*ptr)[i][j]);
}
printf("\n");
}
return 0;
}