请用c语言帮我出10道关于数组的题目附带答案
时间: 2023-10-07 18:09:48 浏览: 76
好的,这里给您提供 10 道关于数组的题目和答案,希望对您有帮助:
1. 题目:请写出将一个数组倒序排列的程序。
答案:
```
void reverseArray(int arr[], int size) {
int temp;
for (int i = 0; i < size / 2; i++) {
temp = arr[i];
arr[i] = arr[size - i - 1];
arr[size - i - 1] = temp;
}
}
```
2. 题目:请写出查找数组中最大值的程序。
答案:
```
int findMax(int arr[], int size) {
int max = arr[0];
for (int i = 1; i < size; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
return max;
}
```
3. 题目:请写出查找数组中最小值的程序。
答案:
```
int findMin(int arr[], int size) {
int min = arr[0];
for (int i = 1; i < size; i++) {
if (arr[i] < min) {
min = arr[i];
}
}
return min;
}
```
4. 题目:请写出将两个数组合并为一个数组的程序。
答案:
```
void mergeArrays(int arr1[], int size1, int arr2[], int size2, int result[]) {
int i = 0, j = 0, k = 0;
while (i < size1 && j < size2) {
if (arr1[i] < arr2[j]) {
result[k++] = arr1[i++];
} else {
result[k++] = arr2[j++];
}
}
while (i < size1) {
result[k++] = arr1[i++];
}
while (j < size2) {
result[k++] = arr2[j++];
}
}
```
5. 题目:请写出查找数组中某个元素的位置的程序。
答案:
```
int findIndex(int arr[], int size, int target) {
for (int i = 0; i < size; i++) {
if (arr[i] == target) {
return i;
}
}
return -1;
}
```
6. 题目:请写出计算数组元素之和的程序。
答案:
```
int sumArray(int arr[], int size) {
int sum = 0;
for (int i = 0; i < size; i++) {
sum += arr[i];
}
return sum;
}
```
7. 题目:请写出判断数组是否有序的程序。
答案:
```
bool isSorted(int arr[], int size) {
for (int i = 1; i < size; i++) {
if (arr[i] < arr[i - 1]) {
return false;
}
}
return true;
}
```
8. 题目:请写出将数组中重复元素去除的程序。
答案:
```
int removeDuplicates(int arr[], int size) {
int i = 0, j = 1;
while (j < size) {
if (arr[j] == arr[i]) {
j++;
} else {
arr[++i] = arr[j++];
}
}
return i + 1;
}
```
9. 题目:请写出查找数组中出现次数最多的元素的程序。
答案:
```
int findMostFrequent(int arr[], int size) {
int maxCount = 0, maxElement = arr[0], count;
for (int i = 0; i < size; i++) {
count = 1;
for (int j = i + 1; j < size; j++) {
if (arr[j] == arr[i]) {
count++;
}
}
if (count > maxCount) {
maxCount = count;
maxElement = arr[i];
}
}
return maxElement;
}
```
10. 题目:请写出将数组循环左移 k 位的程序。
答案:
```
void rotateLeft(int arr[], int size, int k) {
k %= size;
reverseArray(arr, k);
reverseArray(arr + k, size - k);
reverseArray(arr, size);
}
void reverseArray(int arr[], int size) {
int temp;
for (int i = 0; i < size / 2; i++) {
temp = arr[i];
arr[i] = arr[size - i - 1];
arr[size - i - 1] = temp;
}
}
```
阅读全文