在学习C语言的过程中,实践是检验真理的唯一标准。为了帮助大家更好地掌握C语言编程技能,本文将提供一份精选的C语言上机练习题库及其参考答案。这些题目涵盖了基本语法、数组、指针、函数等核心知识点,适合初学者和进阶者练习使用。
一、基础语法练习
1. 打印Hello World
```c
include
int main() {
printf("Hello World\n");
return 0;
}
```
2. 输入两个数并输出它们的和
```c
include
int main() {
int a, b, sum;
printf("Enter two numbers: ");
scanf("%d %d", &a, &b);
sum = a + b;
printf("Sum = %d\n", sum);
return 0;
}
```
二、数组操作
3. 计算数组元素的平均值
```c
include
int main() {
int arr[5] = {10, 20, 30, 40, 50};
int sum = 0;
float avg;
for (int i = 0; i < 5; i++) {
sum += arr[i];
}
avg = (float)sum / 5;
printf("Average = %.2f\n", avg);
return 0;
}
```
4. 查找数组中的最大值
```c
include
int main() {
int arr[5] = {10, 20, 30, 40, 50};
int max = arr[0];
for (int i = 1; i < 5; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
printf("Max = %d\n", max);
return 0;
}
```
三、指针与内存管理
5. 通过指针修改变量的值
```c
include
int main() {
int num = 10;
int ptr = #
ptr = 20;
printf("Number = %d\n", num);
return 0;
}
```
6. 动态分配内存
```c
include
include
int main() {
int arr;
int n;
printf("Enter size of array: ");
scanf("%d", &n);
arr = (int )malloc(n sizeof(int));
for (int i = 0; i < n; i++) {
arr[i] = i + 1;
}
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
free(arr);
return 0;
}
```
四、函数与递归
7. 计算阶乘
```c
include
int factorial(int n) {
if (n == 0 || n == 1) {
return 1;
} else {
return n factorial(n - 1);
}
}
int main() {
int num;
printf("Enter a number: ");
scanf("%d", &num);
printf("Factorial = %d\n", factorial(num));
return 0;
}
```
8. 斐波那契数列
```c
include
int fibonacci(int n) {
if (n <= 1) {
return n;
} else {
return fibonacci(n - 1) + fibonacci(n - 2);
}
}
int main() {
int num;
printf("Enter the position: ");
scanf("%d", &num);
printf("Fibonacci number = %d\n", fibonacci(num));
return 0;
}
```
五、综合练习
9. 实现简单的计算器
```c
include
int main() {
char op;
double num1, num2, result;
printf("Enter operator (+, -, , /): ");
scanf("%c", &op);
printf("Enter two numbers: ");
scanf("%lf %lf", &num1, &num2);
switch(op) {
case '+':
result = num1 + num2;
break;
case '-':
result = num1 - num2;
break;
case '':
result = num1 num2;
break;
case '/':
result = num1 / num2;
break;
default:
printf("Invalid operator\n");
return 1;
}
printf("Result = %.2lf\n", result);
return 0;
}
```
10. 判断素数
```c
include
int isPrime(int n) {
if (n <= 1) {
return 0;
}
for (int i = 2; i i <= 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.\n", num);
} else {
printf("%d is not a prime number.\n", num);
}
return 0;
}
```
以上就是C语言上机练习题库及答案的部分内容。通过这些练习,您可以逐步提高自己的编程能力,并加深对C语言的理解。希望这些题目能帮助您在学习C语言的过程中取得更好的成绩!