实例1:打印“Hello, World!”
C语言编程的第一步通常是打印“Hello, World!”。这个简单的程序可以帮助你熟悉C语言的基本语法。
#include <stdio.h>
int main() {
printf("Hello, World!\n");
return 0;
}
实例2:变量与数据类型
理解变量和数据类型是C语言编程的基础。
#include <stdio.h>
int main() {
int age = 25;
float pi = 3.14159;
char grade = 'A';
printf("Age: %d\n", age);
printf("Pi: %.5f\n", pi);
printf("Grade: %c\n", grade);
return 0;
}
实例3:运算符
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);
printf("Modulus: %d\n", a % b);
return 0;
}
实例4:控制流 - if语句
if语句用于根据条件执行代码块。
#include <stdio.h>
int main() {
int number = 10;
if (number > 0) {
printf("The number is positive.\n");
}
return 0;
}
实例5:控制流 - switch语句
switch语句用于根据不同的值执行不同的代码块。
#include <stdio.h>
int main() {
int day = 3;
switch (day) {
case 1:
printf("Monday\n");
break;
case 2:
printf("Tuesday\n");
break;
case 3:
printf("Wednesday\n");
break;
default:
printf("Not a valid day.\n");
}
return 0;
}
实例6:循环 - for循环
for循环用于重复执行代码块直到满足特定条件。
#include <stdio.h>
int main() {
for (int i = 1; i <= 5; i++) {
printf("Number: %d\n", i);
}
return 0;
}
实例7:循环 - while循环
while循环用于重复执行代码块直到满足特定条件。
#include <stdio.h>
int main() {
int i = 1;
while (i <= 5) {
printf("Number: %d\n", i);
i++;
}
return 0;
}
实例8:函数
函数是C语言中的代码块,可以重复使用。
#include <stdio.h>
void sayHello() {
printf("Hello!\n");
}
int main() {
sayHello();
return 0;
}
实例9:指针
指针是C语言中的一个重要概念,用于存储变量的内存地址。
#include <stdio.h>
int main() {
int a = 10;
int *ptr = &a;
printf("Value of a: %d\n", a);
printf("Address of a: %p\n", (void *)ptr);
printf("Value of *ptr: %d\n", *ptr);
return 0;
}
实例10:数组
数组是C语言中存储一系列相同类型数据的一种方式。
#include <stdio.h>
int main() {
int numbers[5] = {1, 2, 3, 4, 5};
for (int i = 0; i < 5; i++) {
printf("Number %d: %d\n", i + 1, numbers[i]);
}
return 0;
}
实例11:字符串
字符串是C语言中用于存储字符序列的一种方式。
#include <stdio.h>
int main() {
char str[] = "Hello, World!";
printf("%s\n", str);
return 0;
}
实例12:结构体
结构体是C语言中用于组合不同类型数据的一种方式。
#include <stdio.h>
struct Person {
char name[50];
int age;
};
int main() {
struct Person person;
strcpy(person.name, "John Doe");
person.age = 30;
printf("Name: %s\n", person.name);
printf("Age: %d\n", person.age);
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:动态内存分配
动态内存分配是C语言中用于在运行时分配内存的一种方式。
#include <stdio.h>
#include <stdlib.h>
int main() {
int *ptr = (int *)malloc(5 * sizeof(int));
if (ptr == NULL) {
printf("Error allocating memory.\n");
return 1;
}
for (int i = 0; i < 5; i++) {
*(ptr + i) = i + 1;
}
for (int i = 0; i < 5; i++) {
printf("Number %d: %d\n", i + 1, *(ptr + i));
}
free(ptr);
return 0;
}
实例15:结构体数组
结构体数组是C语言中用于存储结构体实例的数组。
#include <stdio.h>
struct Person {
char name[50];
int age;
};
int main() {
struct Person people[2] = {
{"John Doe", 30},
{"Jane Smith", 25}
};
for (int i = 0; i < 2; i++) {
printf("Name: %s, Age: %d\n", people[i].name, people[i].age);
}
return 0;
}
实例16:指针数组
指针数组是C语言中用于存储指针的数组。
#include <stdio.h>
int main() {
int numbers[3] = {1, 2, 3};
int *ptrs[3];
for (int i = 0; i < 3; i++) {
ptrs[i] = &numbers[i];
}
for (int i = 0; i < 3; i++) {
printf("Number %d: %d\n", i + 1, *ptrs[i]);
}
return 0;
}
实例17:函数指针
函数指针是C语言中用于指向函数的指针。
#include <stdio.h>
void sayHello() {
printf("Hello!\n");
}
int main() {
void (*funcPtr)() = sayHello;
funcPtr();
return 0;
}
实例18:递归函数
递归函数是C语言中用于在函数内部调用自身的一种方式。
#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:结构体指针
结构体指针是C语言中用于指向结构体的指针。
#include <stdio.h>
struct Person {
char name[50];
int age;
};
int main() {
struct Person person;
strcpy(person.name, "John Doe");
person.age = 30;
struct Person *ptr = &person;
printf("Name: %s, Age: %d\n", ptr->name, ptr->age);
return 0;
}
实例20:位操作
位操作是C语言中用于操作二进制位的一种方式。
#include <stdio.h>
int main() {
int a = 5; // 101
int b = 3; // 011
printf("Bitwise AND: %d\n", a & b); // 001
printf("Bitwise OR: %d\n", a | b); // 111
printf("Bitwise XOR: %d\n", a ^ b); // 110
printf("Bitwise NOT: %d\n", ~a); // 110
return 0;
}
实例21:宏定义
宏定义是C语言中用于定义文本替换的一种方式。
#include <stdio.h>
#define PI 3.14159
int main() {
printf("Value of PI: %.5f\n", PI);
return 0;
}
实例22:预处理指令
预处理指令是C语言中用于在编译前处理源代码的一种方式。
#include <stdio.h>
#define MAX 5
int main() {
int numbers[MAX];
for (int i = 0; i < MAX; i++) {
numbers[i] = i + 1;
}
for (int i = 0; i < MAX; i++) {
printf("Number %d: %d\n", i + 1, numbers[i]);
}
return 0;
}
实例23:条件编译
条件编译是C语言中用于根据条件编译或跳过代码的一种方式。
#include <stdio.h>
#ifdef DEBUG
#define DEBUG_MODE
#endif
int main() {
#ifdef DEBUG_MODE
printf("Debug mode is enabled.\n");
#endif
return 0;
}
实例24:文件包含
文件包含是C语言中用于将其他文件包含到当前文件中的一种方式。
#include <stdio.h>
#include "header.h"
int main() {
printf("Value of MAX: %d\n", MAX);
return 0;
}
实例25:字符串函数
字符串函数是C语言中用于操作字符串的一种方式。
#include <stdio.h>
#include <string.h>
int main() {
char str1[] = "Hello";
char str2[] = "World";
printf("Concatenation: %s\n", strcat(str1, str2));
printf("Length: %lu\n", strlen(str1));
return 0;
}
实例26:标准输入输出函数
标准输入输出函数是C语言中用于处理输入输出的一种方式。
#include <stdio.h>
int main() {
int number;
printf("Enter a number: ");
scanf("%d", &number);
printf("You entered: %d\n", number);
return 0;
}
实例27:动态字符串分配
动态字符串分配是C语言中用于动态分配字符串内存的一种方式。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char *str = (char *)malloc(50 * sizeof(char));
if (str == NULL) {
printf("Error allocating memory.\n");
return 1;
}
strcpy(str, "Hello, World!");
printf("%s\n", str);
free(str);
return 0;
}
实例28:结构体与函数
结构体与函数是C语言中用于将结构体作为函数参数或返回值的一种方式。
#include <stdio.h>
struct Person {
char name[50];
int age;
};
void printPerson(struct Person person) {
printf("Name: %s, Age: %d\n", person.name, person.age);
}
int main() {
struct Person person;
strcpy(person.name, "John Doe");
person.age = 30;
printPerson(person);
return 0;
}
实例29:指针与函数
指针与函数是C语言中用于将指针作为函数参数或返回值的一种方式。
#include <stdio.h>
void increment(int *ptr) {
(*ptr)++;
}
int main() {
int number = 10;
increment(&number);
printf("Number: %d\n", number);
return 0;
}
实例30:函数指针与结构体
函数指针与结构体是C语言中用于将函数指针存储在结构体中的一种方式。
#include <stdio.h>
struct Person {
char name[50];
int age;
void (*print)(struct Person);
};
void printPerson(struct Person person) {
printf("Name: %s, Age: %d\n", person.name, person.age);
}
int main() {
struct Person person;
strcpy(person.name, "John Doe");
person.age = 30;
person.print = printPerson;
person.print(person);
return 0;
}
实例31:结构体指针与函数
结构体指针与函数是C语言中用于将结构体指针作为函数参数或返回值的一种方式。
#include <stdio.h>
struct Person {
char name[50];
int age;
};
void printPerson(struct Person *ptr) {
printf("Name: %s, Age: %d\n", ptr->name, ptr->age);
}
int main() {
struct Person person;
strcpy(person.name, "John Doe");
person.age = 30;
printPerson(&person);
return 0;
}
实例32:递归函数与结构体
递归函数与结构体是C语言中用于将递归函数应用于结构体数据的一种方式。
#include <stdio.h>
struct Node {
int data;
struct Node *next;
};
void printList(struct Node *head) {
if (head == NULL) {
return;
}
printf("%d ", head->data);
printList(head->next);
}
int main() {
struct Node *head = (struct Node *)malloc(sizeof(struct Node));
head->data = 1;
head->next = (struct Node *)malloc(sizeof(struct Node));
head->next->data = 2;
head->next->next = NULL;
printList(head);
return 0;
}
实例33:指针数组与函数
指针数组与函数是C语言中用于将指针数组作为函数参数或返回值的一种方式。
#include <stdio.h>
void printNumbers(int *numbers, int size) {
for (int i = 0; i < size; i++) {
printf("%d ", numbers[i]);
}
printf("\n");
}
int main() {
int numbers[5] = {1, 2, 3, 4, 5};
printNumbers(numbers, 5);
return 0;
}
实例34:函数指针数组
函数指针数组是C语言中用于将函数指针存储在数组中的一种方式。
#include <stdio.h>
void printHello() {
printf("Hello!\n");
}
void printWorld() {
printf("World!\n");
}
int main() {
void (*funcPtrs[2])(void) = {printHello, printWorld};
funcPtrs[0]();
funcPtrs[1]();
return 0;
}
实例35:结构体指针数组与函数
结构体指针数组与函数是C语言中用于将结构体指针数组作为函数参数或返回值的一种方式。
#include <stdio.h>
struct Person {
char name[50];
int age;
};
void printPerson(struct Person *ptr) {
printf("Name: %s, Age: %d\n", ptr->name, ptr->age);
}
int main() {
struct Person persons[2] = {
{"John Doe", 30},
{"Jane Smith", 25}
};
printPerson(&persons[0]);
printPerson(&persons[1]);
return 0;
}
实例36:递归函数与指针
递归函数与指针是C语言中用于将递归函数应用于指针数据的一种方式。
#include <stdio.h>
void printNumbers(int *numbers, int size) {
if (size <= 0) {
return;
}
printf("%d ", *numbers);
printNumbers(numbers + 1, size - 1);
}
int main() {
int numbers[5] = {1, 2, 3, 4, 5};
printNumbers(numbers, 5);
return 0;
}
实例37:指针数组与递归
指针数组与递归是C语言中用于将指针数组与递归函数结合使用的一种方式。
#include <stdio.h>
void printNumbers(int *numbers, int size) {
if (size <= 0) {
return;
}
printf("%d ", numbers[0]);
printNumbers(numbers + 1, size - 1);
}
int main() {
int numbers[5] = {1, 2, 3, 4, 5};
printNumbers(numbers, 5);
return 0;
}
实例38:结构体指针数组与递归
结构体指针数组与递归是C语言中用于将结构体指针数组与递归函数结合使用的一种方式。
#include <stdio.h>
struct Person {
char name[50];
int age;
};
void printPersons(struct Person *persons, int size) {
if (size <= 0) {
return;
}
printf("Name: %s, Age: %d\n", persons[0].name, persons[0].age);
printPersons(persons + 1, size - 1);
}
int main() {
struct Person persons[2] = {
{"John Doe", 30},
{"Jane Smith", 25}
};
printPersons(persons, 2);
return 0;
}
实例39:指针数组与结构体指针
指针数组与结构体指针是C语言中用于将
