c语言期末考试题库及详解答案编程题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
c语言期末考试题库及详解答案编程题
在C语言的期末考试中,编程题是检验学生对C语言编程能力的重要部分。
以下是一套精心准备的C语言期末考试题库及详解答案,帮助学生复习和准备考试。
1. 编写一个程序,计算并输出100以内所有素数的和。
素数是指只能被1和它本身整除的大于1的自然数。
我们可以通过遍历2到99的每个数,检查它是否为素数,如果是,则累加到总和中。
最后输出总和。
```c
#include <stdio.h>
#include <stdbool.h>
bool isPrime(int num) {
if (num <= 1) return false;
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) return false;
}
return true;
}
int main() {
int sum = 0;
for (int i = 2; i <= 100; i++) {
if (isPrime(i)) {
sum += i;
}
}
printf("The sum of all prime numbers less than 100
is: %d\n", sum);
return 0;
}
```
2. 编写一个程序,实现字符串的反转。
字符串反转是一个常见的编程问题,可以通过遍历字符串,将字符从后向前存入新的字符串中,然后输出。
```c
#include <stdio.h>
#include <string.h>
void reverseString(char str[]) {
int len = strlen(str);
for (int i = len - 1; i >= 0; i--) {
printf("%c", str[i]);
}
}
int main() {
char str[] = "Hello, World!";
printf("Original string: %s\n", str);
printf("Reversed string: ");
reverseString(str);
printf("\n");
return 0;
}
```
3. 编写一个程序,计算数组中所有元素的平均值。
平均值是所有元素的和除以元素的数量。
我们可以通过遍历数组,累
加所有元素的值,然后除以数组的长度来计算平均值。
```c
#include <stdio.h>
int main() {
int arr[] = {1, 2, 3, 4, 5};
int sum = 0;
int count = sizeof(arr) / sizeof(arr[0]);
for (int i = 0; i < count; i++) {
sum += arr[i];
}
float average = (float)sum / count;
printf("The average of the array elements is: %.2f\n", average);
return 0;
}
```
4. 编写一个程序,实现冒泡排序。
冒泡排序是一种简单的排序算法,通过重复遍历待排序的数列,比较
每对相邻元素,如果他们的顺序错误就把他们交换过来。
遍历数列的
工作是重复进行直到没有再需要交换,也就是说该数列已经排序完成。
```c
#include <stdio.h>
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]) {
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]);
}
printf("\n");
return 0;
}
```
5. 编写一个程序,实现二分查找。
二分查找是一种在有序数组中查找特定元素的算法。
通过比较数组中
间元素与目标值,可以决定是继续在左半部分还是右半部分进行搜索。
```c
#include <stdio.h>
int binarySearch(int arr[], int l, int r, int x) { while (l <= r) {
int m = l + (r - l) / 2;
if (arr[m] == x) return m;
if (arr[m] < x) l = m + 1;
else r = m - 1;
}
return -1;
}
int main() {
int arr[] = {2, 3, 4, 10, 40};。