2024年1月13日发(作者:)
数组和指针 笔试题
当然!以下是一个关于数组和指针的笔试题:
题目:编写一个函数,接收一个整型数组和数组的长度作为参数,并将数组中的元素逆序存放。
要求:只能使用指针来操作数组,不能使用任何其他的辅助数组或临时变量。
示例输入:arr = [1, 2, 3, 4, 5], length = 5
示例输出:arr = [5, 4, 3, 2, 1]
请编写代码实现该功能,并给出示例输入的输出结果。以下是示例代码:
```c
#include
void reverseArray(int *arr, int length) {
int *start = arr;
int *end = arr + length - 1;
while (start < end) {
int temp = *start;
*start = *end;
*end = temp;
start++;
end--;
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int length = sizeof(arr) / sizeof(arr[0]);
printf("原数组:");
for (int i = 0; i < length; i++) {
printf("%d ", arr[i]);
}
reverseArray(arr, length);
printf("n逆序后的数组:");
for (int i = 0; i < length; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
以上代码定义了一个reverseArray函数,该函数通过使用指针实现了将数组元素逆序存放的功能。在主函数中,我们定义了一个示例数组arr,并计算出数组的长度。然后调用reverseArray函数对数组进行逆序操作,并打印出逆序后的数组。根据示例输入,输出结果应为[5, 4, 3, 2, 1]。
发布者:admin,转转请注明出处:http://www.yc00.com/news/1705118912a1394306.html
评论列表(0条)