若有以下程序 #include intk=7,m=5; voidf(int**s) {int*t=&k; s=&t;*s=&m;printf("%d,%d,%d,",k,*t,**s); } main() {inti=3,*p=&i,**r=&p; f(r

admin2019-06-09  18

问题 若有以下程序
#include
intk=7,m=5;
voidf(int**s)
{int*t=&k;
s=&t;*s=&m;printf("%d,%d,%d,",k,*t,**s);
}
main()
{inti=3,*p=&i,**r=&p;
f(r);
printf("%d,%d,%d\n",i,*p,**r);
}
则程序的输出结果是

选项 A、7,5,7,3,5,7,
B、7,5,7,3,3,3,
C、7,5,5,3,3,3,
D、7,7,5,3,3,3,

答案C

解析 在主函数中首先初始化整型变量i,将i的地址赋给指针变量p,再将指针变量p的地址赋给指向指针的指针变量r;调用f函数,将变量r的值传递给变量s;由于k和m分别赋值7和5,printf("%d,%d,%d,", k, *t, **s);,即结果为7,5,5;返回主函数,printf("%d,%d,%d\n",  i, *p, **r);,即结果为3,3,3。因此C选项正确。
转载请注明原文地址:https://jikaoti.com/ti/mDf0FFFM
0

相关试题推荐
最新回复(0)