若有以下程序 #include void sp(int *a) { int b=2; *a = *a * 2; printf("%d,", *a); a=&b;*a = *a * 2; printf("%d,", *a); } main(

admin2015-07-31  10

问题 若有以下程序
#include
void  sp(int  *a)
{  int  b=2;
*a = *a * 2;   printf("%d,", *a);
a=&b;*a = *a * 2;   printf("%d,", *a);
}
main()
{  int  k=3;
sp(&k);   printf("%d\n", k);
}
则程序的输出结果是

选项 A、6,12,12
B、6,4,3
C、6,4,6
D、9,4,9

答案C

解析 首先在主函数中给整型变量k赋值为3,调用sp函数,将变量k的地址作为实参传递给形参指针变量a;在sp函数中,*a = *a * 2;即结果为6,通过printf()函数输出。整型变量b的地址赋给指针变量a,再执行*a = *a * 2;,即结果为4,通过printf()函数输出。返回主函数,输出k的值6。因此C选项正确。
转载请注明原文地址:https://kaotiyun.com/show/pIDp777K
0

最新回复(0)