首页 > 精选范文 >

c语言十大经典实例编程

C语言作为一门经典的编程语言,以其高效和灵活的特点深受程序员的喜爱。无论是初学者还是资深开发者,都可以通过一些经典的实例来深入理解C语言的核心概念和技术细节。以下是C语言中的十个经典实例编程,每个实例都涵盖了不同的知识点,帮助你逐步提升编程能力。

1. 简单计算器

实现一个简单的四则运算计算器,用户可以输入两个数字以及操作符(+、-、、/),程序将返回计算结果。这个实例可以帮助理解基本的输入输出以及条件语句的使用。

```c

include

int main() {

double num1, num2;

char op;

printf("Enter two numbers: ");

scanf("%lf %lf", &num1, &num2);

printf("Enter an operator (+, -, , /): ");

scanf(" %c", &op);

switch(op) {

case '+':

printf("%.2lf + %.2lf = %.2lf", num1, num2, num1 + num2);

break;

case '-':

printf("%.2lf - %.2lf = %.2lf", num1, num2, num1 - num2);

break;

case '':

printf("%.2lf %.2lf = %.2lf", num1, num2, num1 num2);

break;

case '/':

if(num2 != 0)

printf("%.2lf / %.2lf = %.2lf", num1, num2, num1 / num2);

else

printf("Error! Division by zero is not allowed.");

break;

default:

printf("Invalid operator!");

}

return 0;

}

```

2. 阶乘计算

编写一个函数来计算一个数的阶乘。这个实例有助于学习递归函数的使用。

```c

include

long long factorial(int n) {

if(n == 0 || n == 1)

return 1;

return n factorial(n - 1);

}

int main() {

int num;

printf("Enter a number: ");

scanf("%d", &num);

printf("Factorial of %d = %lld", num, factorial(num));

return 0;

}

```

3. 斐波那契数列

实现一个程序来生成斐波那契数列的前N项。这个实例可以加深对循环结构的理解。

```c

include

void fibonacci(int n) {

int first = 0, second = 1, next;

for(int i = 0; i < n; i++) {

if(i <= 1)

next = i;

else {

next = first + second;

first = second;

second = next;

}

printf("%d ", next);

}

}

int main() {

int n;

printf("Enter the number of terms: ");

scanf("%d", &n);

printf("Fibonacci Series: ");

fibonacci(n);

return 0;

}

```

4. 判断素数

编写一个程序来判断一个数是否为素数。这个实例可以帮助理解如何使用循环和条件语句。

```c

include

include

int isPrime(int n) {

if(n <= 1)

return 0;

for(int i = 2; i <= sqrt(n); i++) {

if(n % i == 0)

return 0;

}

return 1;

}

int main() {

int num;

printf("Enter a number: ");

scanf("%d", &num);

if(isPrime(num))

printf("%d is a prime number.", num);

else

printf("%d is not a prime number.", num);

return 0;

}

```

5. 最大公约数与最小公倍数

编写一个程序来计算两个数的最大公约数和最小公倍数。这个实例有助于学习辗转相除法的应用。

```c

include

int gcd(int a, int b) {

while(b != 0) {

int temp = b;

b = a % b;

a = temp;

}

return a;

}

int lcm(int a, int b) {

return (a b) / gcd(a, b);

}

int main() {

int num1, num2;

printf("Enter two numbers: ");

scanf("%d %d", &num1, &num2);

printf("GCD of %d and %d = %d\n", num1, num2, gcd(num1, num2));

printf("LCM of %d and %d = %d", num1, num2, lcm(num1, num2));

return 0;

}

```

6. 排序算法(冒泡排序)

实现一个冒泡排序算法来对数组进行排序。这个实例可以让你了解基本的排序算法及其在C语言中的实现。

```c

include

void bubbleSort(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]) {

// Swap elements

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]);

bubbleSort(arr, n);

printf("Sorted array: ");

for(int i = 0; i < n; i++)

printf("%d ", arr[i]);

return 0;

}

```

7. 字符串反转

编写一个程序来反转一个字符串。这个实例有助于理解指针和字符串处理。

```c

include

include

void reverseString(char str[]) {

int len = strlen(str);

for(int i = 0; i < len / 2; i++) {

char temp = str[i];

str[i] = str[len - i - 1];

str[len - i - 1] = temp;

}

}

int main() {

char str[100];

printf("Enter a string: ");

fgets(str, sizeof(str), stdin);

str[strcspn(str, "\n")] = '\0'; // Remove newline character

reverseString(str);

printf("Reversed string: %s", str);

return 0;

}

```

8. 文件读写

实现一个简单的文件读写程序。这个实例可以帮助你掌握文件操作的基本技能。

```c

include

int main() {

FILE file = fopen("example.txt", "w");

if(file == NULL) {

printf("Error opening file!");

return 1;

}

fprintf(file, "Hello, World!");

fclose(file);

file = fopen("example.txt", "r");

if(file == NULL) {

printf("Error opening file!");

return 1;

}

char ch;

while((ch = fgetc(file)) != EOF)

printf("%c", ch);

fclose(file);

return 0;

}

```

9. 链表操作

实现一个简单的链表操作,包括插入、删除和遍历。这个实例有助于理解动态数据结构。

```c

include

include

struct Node {

int data;

struct Node next;

};

void insert(struct Node head_ref, int new_data) {

struct Node new_node = (struct Node)malloc(sizeof(struct Node));

new_node->data = new_data;

new_node->next = (head_ref);

(head_ref) = new_node;

}

void deleteNode(struct Node head_ref, int key) {

struct Node temp = head_ref, prev;

if(temp != NULL && temp->data == key) {

head_ref = temp->next;

free(temp);

return;

}

while(temp != NULL && temp->data != key) {

prev = temp;

temp = temp->next;

}

if(temp == NULL) return;

prev->next = temp->next;

free(temp);

}

void printList(struct Node node) {

while(node != NULL) {

printf("%d ", node->data);

node = node->next;

}

}

int main() {

struct Node head = NULL;

insert(&head, 1);

insert(&head, 2);

insert(&head, 3);

printf("Created Linked List: ");

printList(head);

deleteNode(&head, 2);

printf("\nLinked List after Deletion of 2: ");

printList(head);

return 0;

}

```

10. 堆栈实现

使用数组实现一个堆栈,并提供基本的堆栈操作(压栈、弹栈、查看栈顶元素)。这个实例有助于理解栈的数据结构及其应用。

```c

include

define MAX 100

int stack[MAX];

int top = -1;

void push(int value) {

if(top >= MAX - 1) {

printf("Stack Overflow");

return;

}

stack[++top] = value;

printf("%d pushed to stack\n", value);

}

int pop() {

if(top < 0) {

printf("Stack Underflow");

return -1;

}

return stack[top--];

}

int peek() {

if(top < 0) {

printf("Stack is empty");

return -1;

}

return stack[top];

}

int main() {

push(10);

push(20);

push(30);

printf("%d popped from stack\n", pop());

printf("Top element is %d\n", peek());

return 0;

}

```

通过以上十个经典实例的练习,你可以更好地掌握C语言的基础知识和高级技巧。这些实例不仅能够帮助你巩固理论知识,还能提高你的实际编程能力。希望这些实例对你有所帮助!

免责声明:本答案或内容为用户上传,不代表本网观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。 如遇侵权请及时联系本站删除。