题目
已知C语言程序片段如下:```#include void swap(int x, int y) ( int temp = x; x = y; y = temp; )int main() ( int a = 3, b = 5; swap(a, b); printf("a=%d, b=%dn", a, b); return 0; )```以下说法正确的有哪些?A 程序输出为"a=3, b=5"B 若将swap函数的参数改为int *x, int *y,则函数内需用*x和*y操作C 程序输出为"a=5, b=3"D swap函数采用的是值传递方式E 若要实现交换,需将swap函数的参数改为指针类型
已知C语言程序片段如下:
```
#include void swap(int x, int y) { int temp = x; x = y; y = temp; }
int main() { int a = 3, b = 5; swap(a, b); printf("a=%d, b=%d\n", a, b); return 0; }
```
以下说法正确的有哪些?
A 程序输出为"a=3, b=5"
B 若将swap函数的参数改为int *x, int *y,则函数内需用*x和*y操作
C 程序输出为"a=5, b=3"
D swap函数采用的是值传递方式
E 若要实现交换,需将swap函数的参数改为指针类型
题目解答
答案
本题考察C语言中函数参数的传递方式及指针应用。
- 选项A正确:`swap`函数为值传递,`a`和`b`未被修改,输出为`a=3, b=5`。
- 选项B正确:若参数为指针,需用`*x`和`*y`操作。
- 选项C错误:`a`和`b`未交换,输出非`a=5, b=3`。
- 选项D正确:C语言默认值传递。
- 选项E正确:需将参数改为指针类型才能实现交换。
答案:ABDE