最佳答案
你的注释中写得很清楚了,自己按程序的流程看下就可以了
追问:
这里的210是哪来的
追答:
在程序A中,x是全局的x=10调用B时x=x+100 &&此时x=110再调用Cx=x+100 结果x=210
追答:
你要按程序的结构,自己一步步的看下
追问:
为什么第二行Z为30,W为50,我不会分析还是你讲一下吧
追答:
最终还是要你自己分析的,单单给你分析了,你自己还是不一定明白你分析下值是多少,若不对我可以帮你看下为什么错另外,还是建议先看教材的理论部分,像你目前的水平离二级考试的要求差得太远了
追问:
我看不明白,不知道是什么意思,怎么最后A主程序的结果是210 20 30 40
追答:
这个不是能看明白的(我也不能一下看到正确的结果),要一步步将程序执行步骤写在纸上,一条条语句分析的,你写下执行过程给我看下
追问:
最后主程序是那个结果是在子程序B和C中定义了yw为私有变量是吗
追问:
所有y为一开始的赋值20w为30
追答:
就最后一个输出,y的值,因为B中是私有的,它不能改变A的y,所以y不变,仍为20z,w同理,所以最后一行结果210 20 30 40
追问:
什么叫做第一行是C程序的结果
追问:
可是B中没有定义z是私有变量啊
追答:
第一行的输出,是子程序C输出的(子程序C中的 ? x,y,z,w是第一个输出的)所以要你一步步写程序的执行过程,如果你不写,是无法解理程序的结果的
追问:
还是一个一个地说吧,第一行是C程序的结果z为什么没有变还是30
追答:
你好好看下整个程序z在A赋值后,B,C中都没有改过,它的值当然不会变的
追答:
你程序都没有细细看过,我怎么能帮到你你把执行过程写在下面,否则无论再帮你了
追问:
第二行B程序的结果中w为什么是50
追答:
你先写执行过程...如A:x=10,y=20,z=30,w=40B:x=x+100,y=200,w=40C:....
追问:
然后呢
追答:
然后就可以看到结果的,若你认为结果不对,可以帮你分析(我的结果也是这样出来的)你自己必须做一遍,不然只跟你讲个结果,你还是不会理解(就像上面的z,你认为不是30那么你的结果是多少,从哪里来的)
追问:
这50哪来的,没有给w赋值为50呀
追答:
... 我也没看到w=50的赋值...可能题目题目答案是错的,若有文本程序,在电脑上执行下试试若没有,按上面的在电脑输入一遍(只要程序部分,注释不要)没有环境的话,将文本的程序贴上来
追问:
记得上道题如果一开始AB为局部变量,那第一行M子程序输出来的结果也是3 3 3吗
追问:
这题结果第一行和第二行是子程序C和子程序B输出来的结果吗
追问:
C程序的结果y是50是因为在C程序里赋值它是50吧,这与y是局部变量有关系吗
追问:
这里为什么程序B为200,不是这个是局部变量吗,应该不变是20吗
最佳答案由网友 whoami1978 提供