c语言十大经典实例编程
更新日期:2026-11-12 02:38:03
| 标题 | 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", #); 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", #); 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语言的基础知识和高级技巧。这些实例不仅能够帮助你巩固理论知识,还能提高你的实际编程能力。希望这些实例对你有所帮助! |
| 随便看 |