A-A+

有以下程序 #include<stdio.h> void fun(int*a int*B)

2022-08-06 00:29:18 问答库 阅读 173 次

问题详情

有以下程序 #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,%dn",*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是正确的。

考点:程序