柠檬试题库
search
首页 计算机 公务员 驾照 关于

有以下程序 #include int a=4; int f(int n) { int t = 0; static int a=5; if (n%2) {int a=6; t += a++; } else {int a=7; t += a++; } return t + a++; } main() { int s=a, i=0; for (; i<2;i++) s += f(i); printf("%d\n", s); } 程序运行后的输出结果是


  • A.36
  • B.24
  • C.32
  • D.28
热度🔥1,231
参考答案:D
解析:

【解析】在主函数main()中定义了两个变量s和i,同时给s赋初值。a=4,i赋初值0。当i=0时。执行"s+=f(i);"语句,调用f()并将i的初值 0传递给形参n。首先执行if语句中内条件:n%2,若条件为假。则执行else下的语句,a=7,t=7+0=7,使用return返回t,t=7+(a++)=7+5=12,此时a运算完后自增1,变为6;返回主函数中,s=4+12=16。当i=1时,执行"s+=f(i);"语句,调用f()并将i的初值1传递给形参n。首先执行if语句中的条件:n%2,条件为真,执行if下面的语句,t=0,a=6 t=0+6=6,使用return返回t,t=6+6=12,返回主函数中,s=16+12=28。最后输出的结果为28。因此D选项正确。
复制题目向AI提问