永发信息网

下程序的运行结果是( ).

答案:4  悬赏:10  手机版
解决时间 2021-03-15 18:06
  • 提问者网友:世勋超人
  • 2021-03-15 13:41
main( ) { int a=1, k; for (k=0; k<3; k++) printf("%4d", f1(a)); } f1(int x) { static int z=3, y=0; y++; z++; return(x+y+z); }
A. 6 8 10

B. 6 6 6

C. 7 8 9

D. 7 9 11
最佳答案
  • 五星知识达人网友:妄饮晩冬酒
  • 2021-03-15 15:17
A
此题中y,z为静态变量,程序结束时才会释放内存。
第一次调用f1()时,x = a = 1,z = 3, y = 0,执行y++; z++;后y = 1,z = 4;所以返回x+y+z = 1 + 1 + 4 = 6.

第二次调用f1()时,x = a = 1,z = 4, y = 0,执行y++; z++;后y = 2,z = 5;所以返回x+y+z = 1 + 2 + 5 = 8.
第三次调用f1()时,x = a = 1,z = 5, y = 0,执行y++; z++;后y = 3,z = 6;所以返回x+y+z = 1 + 3 + 6 = 10.
全部回答
  • 1楼网友:慢性怪人
  • 2021-03-15 16:10
A. 6 8 10
  • 2楼网友:愁杀梦里人
  • 2021-03-15 15:43
假设你的程序命名为 abc.exe 你在命令提示符下这么调用 abc abcabc abababc 则下面的结果为: numeber of string args 2 length of i'th string:6 args.length 表示命令后面的参数个数 args[0].length 表示第一个参数的字符个数
  • 3楼网友:拜訪者
  • 2021-03-15 15:35
这题目的目的应该是该你学习static的使用 变量前加static, 那这变量可以被当成全局变量, 就算是退出了该涵数也全保留, 而第二次调用这涵数时就会自动跳过初始赋值static int z=3, y=0;这一句, 在上一次退出这涵数的基础上继续运算 所以答案是:A
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯