问题 单项选择题

有以下程序

#include<stdio.h>

void fun(int*a,int*B)

{ int*c;

c=a;a=b;b=c;

}

main()

{ int x=3, y=5,*p=&x, *q=&y;

fun(p,q); printf("%d,%d,",*p,*q);

fun(&x,&y); printf(" %d,%d\n",*p,*q);

}

程序运行后的输出结果是()。

A.3,5,5,3

B.3,5,3,5

C.5,3,3,5

D.5,3,5,3

答案

参考答案:B

解析:

[评析] 本题主要考查的是函数的实参和形参之间的传递关系,C语言中实参变量和形参变量之间的数据传递是单向的“值传递”方式。指针变量作函数参数也要遵循这一规则。调用函数不可能改变实参指针变量的值。所以x和y的地址并没有改变,即p和q也没有改变,因此,选项B是正确的。

判断题
单项选择题