有以下程序 #include fun(int a,int b) { int static m=0,i=2; i=i+m+1; m=i+a+b; return m;} main(){ int k=4,m=1,p; P=fun(k,m)

admin2015-12-25  39

问题 有以下程序
#include
fun(int a,int b) {
  int static m=0,i=2;
  i=i+m+1;
  m=i+a+b;
  return m;}
main(){
  int k=4,m=1,p;
  P=fun(k,m);
  printf("%d,",p);
  p=fun(k,m);
  printfl("%d\n",p);}
程序运行后的输出结果是

选项 A、8,17
B、7,16
C、8,8
D、7,17

答案A

解析 本题考查了静态变量以及局部变量的同名问题。主函数中调用fun函数两次,第一次调用fun(4,1),形参a和b接收以后,i值为3,m的值为8,调用结束返回8存放到P中并且输出P的值为8,除了静态变量m和i,变量a,b撤销。第二次调用fun(4,1),接收实参值以后,i为3+8+1,而m为12+4+1,即输出函数值17。
转载请注明原文地址:https://kaotiyun.com/show/WDDp777K
0

最新回复(0)