在编程的世界里,C语言以其简洁、高效和强大的功能而著称。对于初学者来说,通过解决编程练习题是提升算法思维和编程技巧的有效途径。本文将为你带来100道精选的偶数编程练习题,旨在帮助你巩固C语言基础,提升编程能力。
1. 基础语法与数据类型
题目1: 输入三个整数,按从小到大的顺序输出。
#include <stdio.h>
int main() {
int a, b, c, temp;
scanf("%d %d %d", &a, &b, &c);
if (a > b) { temp = a; a = b; b = temp; }
if (a > c) { temp = a; a = c; c = temp; }
if (b > c) { temp = b; b = c; c = temp; }
printf("%d %d %d", a, b, c);
return 0;
}
2. 控制结构
题目2: 输入一个整数,判断它是奇数还是偶数。
#include <stdio.h>
int main() {
int num;
scanf("%d", &num);
if (num % 2 == 0) {
printf("Even\n");
} else {
printf("Odd\n");
}
return 0;
}
3. 循环结构
题目3: 输入一个整数,计算从1到该整数之间所有整数的和。
#include <stdio.h>
int main() {
int num, sum = 0;
scanf("%d", &num);
for (int i = 1; i <= num; i++) {
sum += i;
}
printf("Sum = %d\n", sum);
return 0;
}
4. 函数
题目4: 编写一个函数,计算两个整数的最大公约数。
#include <stdio.h>
int gcd(int a, int b) {
if (b == 0) {
return a;
} else {
return gcd(b, a % b);
}
}
int main() {
int x, y;
scanf("%d %d", &x, &y);
printf("GCD = %d\n", gcd(x, y));
return 0;
}
5. 数组
题目5: 输入10个整数,找出并输出最大的数。
#include <stdio.h>
int main() {
int nums[10];
int max = 0;
for (int i = 0; i < 10; i++) {
scanf("%d", &nums[i]);
if (nums[i] > max) {
max = nums[i];
}
}
printf("Max = %d\n", max);
return 0;
}
6. 字符串
题目6: 输入一个字符串,将其逆序输出。
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
scanf("%s", str);
int len = strlen(str);
for (int i = len - 1; i >= 0; i--) {
putchar(str[i]);
}
putchar('\n');
return 0;
}
7. 文件操作
题目7: 将一个文本文件的内容复制到另一个文件中。
#include <stdio.h>
int main() {
FILE *fp1, *fp2;
char ch;
fp1 = fopen("input.txt", "r");
fp2 = fopen("output.txt", "w");
while ((ch = fgetc(fp1)) != EOF) {
fputc(ch, fp2);
}
fclose(fp1);
fclose(fp2);
return 0;
}
8. 链表
题目8: 创建一个单向链表,并实现插入、删除和查找功能。
#include <stdio.h>
#include <stdlib.h>
typedef struct Node {
int data;
struct Node *next;
} Node;
Node* createNode(int data) {
Node *newNode = (Node *)malloc(sizeof(Node));
newNode->data = data;
newNode->next = NULL;
return newNode;
}
void insertNode(Node **head, int data) {
Node *newNode = createNode(data);
newNode->next = *head;
*head = newNode;
}
void deleteNode(Node **head, int data) {
Node *temp = *head, *prev = NULL;
while (temp != NULL && temp->data != data) {
prev = temp;
temp = temp->next;
}
if (temp == NULL) {
return;
}
if (prev == NULL) {
*head = temp->next;
} else {
prev->next = temp->next;
}
free(temp);
}
int searchNode(Node *head, int data) {
while (head != NULL) {
if (head->data == data) {
return 1;
}
head = head->next;
}
return 0;
}
int main() {
Node *head = NULL;
insertNode(&head, 10);
insertNode(&head, 20);
insertNode(&head, 30);
deleteNode(&head, 20);
if (searchNode(head, 30)) {
printf("30 is found in the list\n");
} else {
printf("30 is not found in the list\n");
}
return 0;
}
通过以上8个部分的练习题,你可以逐步提升你的C语言编程技巧和算法思维。记住,编程是一个不断学习和实践的过程,希望你能通过这些练习题,不断进步,成为一名优秀的程序员。
