引言
C语言作为一种基础且强大的编程语言,被广泛应用于系统开发、嵌入式编程、操作系统等多个领域。然而,C语言的编程技巧和问题解决能力并非一蹴而就,需要通过大量的实战练习来逐步提升。本文将为您呈现500个实战习题,旨在帮助您解锁C语言编程难题,提升编程技巧。
习题分类
1. 基础语法
习题1: 输入一个整数,输出其平方。
#include <stdio.h>
int main() {
int num;
printf("Enter an integer: ");
scanf("%d", &num);
printf("Square of %d is %d\n", num, num * num);
return 0;
}
习题2: 输入两个整数,输出它们的和。
#include <stdio.h>
int main() {
int num1, num2;
printf("Enter two integers: ");
scanf("%d %d", &num1, &num2);
printf("Sum of %d and %d is %d\n", num1, num2, num1 + num2);
return 0;
}
2. 控制结构
习题3: 输入一个整数,判断它是奇数还是偶数。
#include <stdio.h>
int main() {
int num;
printf("Enter an integer: ");
scanf("%d", &num);
if (num % 2 == 0) {
printf("%d is even.\n", num);
} else {
printf("%d is odd.\n", num);
}
return 0;
}
习题4: 使用循环结构计算1到100的和。
#include <stdio.h>
int main() {
int sum = 0;
for (int i = 1; i <= 100; i++) {
sum += i;
}
printf("Sum of 1 to 100 is %d\n", sum);
return 0;
}
3. 函数与指针
习题5: 编写一个函数,计算两个整数的最大公约数。
#include <stdio.h>
int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
int main() {
int num1, num2;
printf("Enter two integers: ");
scanf("%d %d", &num1, &num2);
printf("GCD of %d and %d is %d\n", num1, num2, gcd(num1, num2));
return 0;
}
习题6: 使用指针交换两个整数的值。
#include <stdio.h>
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int num1 = 10, num2 = 20;
printf("Before swap: num1 = %d, num2 = %d\n", num1, num2);
swap(&num1, &num2);
printf("After swap: num1 = %d, num2 = %d\n", num1, num2);
return 0;
}
4. 数组与字符串
习题7: 编写一个函数,计算一个整型数组的平均值。
#include <stdio.h>
double average(int arr[], int size) {
int sum = 0;
for (int i = 0; i < size; i++) {
sum += arr[i];
}
return (double)sum / size;
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr) / sizeof(arr[0]);
printf("Average of array elements: %f\n", average(arr, size));
return 0;
}
习题8: 编写一个函数,实现字符串的复制。
#include <stdio.h>
#include <string.h>
void copyString(char *dest, const char *src) {
while (*src) {
*dest++ = *src++;
}
*dest = '\0';
}
int main() {
char src[] = "Hello, World!";
char dest[50];
copyString(dest, src);
printf("Copied string: %s\n", dest);
return 0;
}
5. 预处理器与结构体
习题9: 使用预处理器定义一个宏,计算两个数的最大值。
#include <stdio.h>
#define MAX(a, b) ((a) > (b) ? (a) : (b))
int main() {
int num1 = 10, num2 = 20;
printf("The maximum of %d and %d is %d\n", num1, num2, MAX(num1, num2));
return 0;
}
习题10: 定义一个结构体表示点,并编写函数计算两点之间的距离。
#include <stdio.h>
#include <math.h>
typedef struct {
double x;
double y;
} Point;
double distance(Point p1, Point p2) {
return sqrt(pow(p2.x - p1.x, 2) + pow(p2.y - p1.y, 2));
}
int main() {
Point p1 = {3, 4};
Point p2 = {6, 8};
printf("Distance between points: %f\n", distance(p1, p2));
return 0;
}
总结
以上仅为500个实战习题中的一部分。通过不断练习这些习题,您将能够解锁C语言编程中的难题,并精通编程技巧。祝您学习愉快!
