实例1:Hello World程序
当你第一次接触C语言时,编写一个简单的“Hello World”程序是一个很好的开始。这个程序会输出“Hello, World!”到控制台。
#include <stdio.h>
int main() {
printf("Hello, World!\n");
return 0;
}
实例2:变量和赋值
在C语言中,变量用于存储数据。这里我们创建一个整数变量并给它赋值。
#include <stdio.h>
int main() {
int number = 5;
printf("The value of number is: %d\n", number);
return 0;
}
实例3:数据类型
C语言支持多种数据类型,如整型、浮点型和字符型。
#include <stdio.h>
int main() {
int num = 10;
float fnum = 3.14f;
char ch = 'A';
printf("Integer: %d\n", num);
printf("Float: %f\n", fnum);
printf("Character: %c\n", ch);
return 0;
}
实例4:运算符
C语言中的运算符包括算术运算符、关系运算符和逻辑运算符。
#include <stdio.h>
int main() {
int a = 10, b = 5;
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;
}
实例5:条件语句
条件语句用于根据条件执行不同的代码块。
#include <stdio.h>
int main() {
int x = 10;
if (x > 5) {
printf("x is greater than 5\n");
} else {
printf("x is not greater than 5\n");
}
return 0;
}
实例6:循环语句
循环语句用于重复执行一段代码。
#include <stdio.h>
int main() {
int i;
for (i = 1; i <= 5; i++) {
printf("Number: %d\n", i);
}
return 0;
}
实例7:数组
数组是一种用于存储多个相同类型数据的容器。
#include <stdio.h>
int main() {
int numbers[5] = {1, 2, 3, 4, 5};
for (int i = 0; i < 5; i++) {
printf("Number at index %d: %d\n", i, numbers[i]);
}
return 0;
}
实例8:函数
函数是C语言中组织代码的一种方式,可以重复使用。
#include <stdio.h>
void printMessage() {
printf("Hello from function!\n");
}
int main() {
printMessage();
return 0;
}
实例9:指针
指针是存储变量地址的变量。
#include <stdio.h>
int main() {
int num = 10;
int *ptr = #
printf("Value of num: %d\n", num);
printf("Address of num: %p\n", (void *)&num);
printf("Value of ptr: %p\n", (void *)ptr);
printf("Value pointed by ptr: %d\n", *ptr);
return 0;
}
实例10:结构体
结构体允许将不同类型的数据组合在一起。
#include <stdio.h>
typedef struct {
int id;
float salary;
char name[50];
} Employee;
int main() {
Employee emp;
emp.id = 1;
emp.salary = 5000.0f;
strcpy(emp.name, "John Doe");
printf("Employee ID: %d\n", emp.id);
printf("Employee Salary: %.2f\n", emp.salary);
printf("Employee Name: %s\n", emp.name);
return 0;
}
实例11:枚举
枚举用于定义一组命名的整型常量。
#include <stdio.h>
typedef enum {
MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY,
SUNDAY
} Days;
int main() {
Days day = TUESDAY;
printf("Day: %d\n", day);
return 0;
}
实例12:位操作
位操作用于直接操作整数的二进制位。
#include <stdio.h>
int main() {
int a = 5; // 0101
int b = 3; // 0011
printf("Bitwise AND: %d\n", a & b); // 0001
printf("Bitwise OR: %d\n", a | b); // 0111
printf("Bitwise XOR: %d\n", a ^ b); // 0110
printf("Bitwise NOT: %d\n", ~a); // 1110
return 0;
}
实例13:文件操作
C语言中的文件操作用于读取和写入文件。
#include <stdio.h>
int main() {
FILE *file = fopen("example.txt", "w");
if (file == NULL) {
printf("Error opening file\n");
return 1;
}
fprintf(file, "Hello, World!\n");
fclose(file);
return 0;
}
实例14:动态内存分配
动态内存分配用于在运行时分配内存。
#include <stdio.h>
#include <stdlib.h>
int main() {
int *ptr = (int *)malloc(sizeof(int) * 5);
if (ptr == NULL) {
printf("Memory allocation failed\n");
return 1;
}
for (int i = 0; i < 5; i++) {
ptr[i] = i * 2;
}
for (int i = 0; i < 5; i++) {
printf("Value at index %d: %d\n", i, ptr[i]);
}
free(ptr);
return 0;
}
实例15:字符串操作
C语言中的字符串操作可以使用标准库函数进行。
#include <stdio.h>
#include <string.h>
int main() {
char str1[] = "Hello";
char str2[] = "World";
char str3[50];
strcpy(str3, str1);
strcat(str3, str2);
printf("Concatenated string: %s\n", str3);
printf("Length of str1: %lu\n", strlen(str1));
return 0;
}
实例16:结构体数组
结构体数组可以存储多个结构体实例。
#include <stdio.h>
typedef struct {
int id;
float salary;
} Employee;
int main() {
Employee employees[3] = {
{1, 5000.0f},
{2, 6000.0f},
{3, 7000.0f}
};
for (int i = 0; i < 3; i++) {
printf("Employee ID: %d, Salary: %.2f\n", employees[i].id, employees[i].salary);
}
return 0;
}
实例17:链表
链表是一种动态数据结构,用于存储一系列元素。
#include <stdio.h>
#include <stdlib.h>
typedef struct Node {
int data;
struct Node *next;
} Node;
int main() {
Node *head = (Node *)malloc(sizeof(Node));
head->data = 10;
head->next = (Node *)malloc(sizeof(Node));
head->next->data = 20;
head->next->next = NULL;
printf("Value: %d\n", head->data);
printf("Next Value: %d\n", head->next->data);
free(head);
free(head->next);
return 0;
}
实例18:递归函数
递归函数是一种函数,它调用自身以解决更小的问题。
#include <stdio.h>
int factorial(int n) {
if (n <= 1)
return 1;
return n * factorial(n - 1);
}
int main() {
int number = 5;
printf("Factorial of %d: %d\n", number, factorial(number));
return 0;
}
实例19:结构体指针
结构体指针允许你通过指针访问结构体成员。
#include <stdio.h>
typedef struct {
int id;
float salary;
} Employee;
int main() {
Employee emp = {1, 5000.0f};
Employee *ptr = &emp;
printf("Employee ID: %d, Salary: %.2f\n", ptr->id, ptr->salary);
printf("Employee ID: %d, Salary: %.2f\n", (*ptr).id, (*ptr).salary);
return 0;
}
实例20:函数指针
函数指针是一种指向函数的指针,可以用于存储函数地址。
#include <stdio.h>
void printMessage() {
printf("Hello from function!\n");
}
int main() {
void (*funcPtr)() = printMessage;
funcPtr();
return 0;
}
实例21:动态内存分配和释放
动态内存分配和释放用于在程序运行时管理内存。
#include <stdio.h>
#include <stdlib.h>
int main() {
int *ptr = (int *)malloc(sizeof(int) * 5);
if (ptr == NULL) {
printf("Memory allocation failed\n");
return 1;
}
for (int i = 0; i < 5; i++) {
ptr[i] = i * 2;
}
for (int i = 0; i < 5; i++) {
printf("Value at index %d: %d\n", i, ptr[i]);
}
free(ptr);
return 0;
}
实例22:字符串比较
字符串比较可以使用标准库函数进行。
#include <stdio.h>
#include <string.h>
int main() {
char str1[] = "Hello";
char str2[] = "World";
if (strcmp(str1, str2) == 0) {
printf("Strings are equal\n");
} else {
printf("Strings are not equal\n");
}
return 0;
}
实例23:数组的长度
数组的长度可以使用标准库函数计算。
#include <stdio.h>
#include <string.h>
int main() {
int numbers[] = {1, 2, 3, 4, 5};
printf("Length of numbers array: %lu\n", sizeof(numbers) / sizeof(numbers[0]));
return 0;
}
实例24:字符串拷贝
字符串拷贝可以使用标准库函数进行。
#include <stdio.h>
#include <string.h>
int main() {
char src[] = "Hello";
char dest[50];
strcpy(dest, src);
printf("Copied string: %s\n", dest);
return 0;
}
实例25:字符串连接
字符串连接可以使用标准库函数进行。
#include <stdio.h>
#include <string.h>
int main() {
char str1[] = "Hello";
char str2[] = "World";
char str3[50];
strcpy(str3, str1);
strcat(str3, str2);
printf("Concatenated string: %s\n", str3);
return 0;
}
实例26:字符串查找
字符串查找可以使用标准库函数进行。
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "Hello World";
char search[] = "World";
int index = strstr(str, search) - str;
printf("Found at index: %d\n", index);
return 0;
}
实例27:字符串替换
字符串替换可以使用标准库函数进行。
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "Hello World";
char search[] = "World";
char replace[] = "C Programming";
char *pos = strstr(str, search);
if (pos) {
strcpy(pos, replace);
}
printf("Replaced string: %s\n", str);
return 0;
}
实例28:字符串转换
字符串转换可以将字符串转换为其他数据类型。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char str[] = "12345";
int num = atoi(str);
printf("Converted number: %d\n", num);
return 0;
}
实例29:日期和时间
C语言中的日期和时间处理可以使用标准库函数进行。
#include <stdio.h>
#include <time.h>
int main() {
time_t t = time(NULL);
struct tm tm = *localtime(&t);
printf("Date and time: %d-%d-%d %d:%d:%d\n", tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec);
return 0;
}
实例30:随机数生成
随机数生成可以使用标准库函数进行。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
srand(time(NULL));
for (int i = 0; i < 10; i++) {
printf("Random number: %d\n", rand() % 100);
}
return 0;
}
实例31:字符串格式化输出
字符串格式化输出可以使用标准库函数进行。
#include <stdio.h>
int main() {
int num = 10;
float fnum = 3.14f;
char ch = 'A';
printf("Integer: %d\n", num);
printf("Float: %.2f\n", fnum);
printf("Character: %c\n", ch);
return 0;
}
实例32:字符串分割
字符串分割可以将字符串分割成多个部分。
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "Hello, World!";
char *token = strtok(str, ",");
while (token != NULL) {
printf("Token: %s\n", token);
token = strtok(NULL, ",");
}
return 0;
}
实例33:字符串查找和替换
字符串查找和替换可以使用标准库函数进行。
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "Hello World";
char search[] = "World";
char replace[] = "C Programming";
char *pos = strstr(str, search);
if (pos) {
int length = strlen(search);
memmove(pos + strlen(replace), pos + length, strlen(pos) - length + 1);
memcpy(pos, replace, strlen(replace));
}
printf("Replaced string: %s\n", str);
return 0;
}
实例34:文件读写
文件读写可以使用标准库函数进行。
#include <stdio.h>
int main() {
FILE *file = fopen("example.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;
}
实例35:文件复制
文件复制可以使用标准库函数进行。
#include <stdio.h>
int main() {
FILE *src = fopen("example.txt", "r");
FILE *dest = fopen("copy.txt", "w");
if (src == NULL || dest == NULL) {
printf("Error opening file\n");
return 1;
}
char buffer[100];
while (fgets(buffer, sizeof(buffer), src)) {
fputs(buffer, dest);
}
fclose(src);
fclose(dest);
return 0;
}
实例36:文件删除
文件删除可以使用标准库函数进行。
#include <stdio.h>
#include <stdlib.h>
int main() {
if (remove("example.txt") != 0) {
printf("Error deleting file\n");
return 1;
}
printf("File deleted successfully\n");
return 0;
}
实例37:目录创建和删除
目录创建和删除可以使用标准库函数进行。
#include <stdio.h>
#include <stdlib.h>
int main() {
if (mkdir("new_dir", 0777) != 0) {
printf("Error creating directory\n");
return 1;
}
if (rmdir("new_dir") != 0) {
printf("Error deleting directory\n");
return 1;
}
printf("Directory created and deleted successfully\n");
return 0;
}
实例38:进程创建和终止
进程创建和终止可以使用标准库函数进行。
#include <stdio.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>
int main() {
pid_t pid = fork();
if (pid == -1) {
printf("Error creating process\n");
return 1;
} else if (pid == 0) {
// 子进程
printf("This is the child process\n");
_exit(0);
} else {
// 父进程
wait(NULL);
printf("This is the parent process\n");
}
return 0;
}
实例39:进程信号处理
进程信号处理可以使用标准库函数进行。
”`c
#include
void signalHandler(int signal) {
printf("Received signal: %d\n", signal);
_exit(0);
}
int main
