vb题,求具体过程
- 你的回答被采纳后将获得:
- 系统奖励15(财富值+成长值)+难题奖励20(财富值+成长值)
2个回答
展开全部
过程:
定义 全局 K 值为0
定义 A=11 , B=2
K = Fun((A), B) + Fun(A, A)
第一次调用(A)为传值引用,在程序中不改变A原来的值,不加的B为传址 程序中会改变B的值
Fun((A), B) || N11 M2 K0
N = N \ 2 5 2 0
K = K + N 5 2 5
N = N + 1 6 2 5
M = M + K 6 7 5
Fun = M + N = 13
print M , N => 7 6
这时 A = 11, B = 7 (fun中 M的值调用的B值的存储地址,直接修改就把B的值改了)
K = 13 + Fun(A, A)
第二次调用是全部为A的传址调用,就是 N和M的值是同一个,同步修改A的值
Fun(A, A) || N11 M11 K5
N = N \ 2 5 5 5
K = K + N 5 5 10
N = N + 1 6 6 10
M = M + K 16 16 10
Fun = M + N = 32
print M, N =>16 16
这时 A = 16, B = 7 (你可以输出一下)
K = 13 + 32 = 45
定义 全局 K 值为0
定义 A=11 , B=2
K = Fun((A), B) + Fun(A, A)
第一次调用(A)为传值引用,在程序中不改变A原来的值,不加的B为传址 程序中会改变B的值
Fun((A), B) || N11 M2 K0
N = N \ 2 5 2 0
K = K + N 5 2 5
N = N + 1 6 2 5
M = M + K 6 7 5
Fun = M + N = 13
print M , N => 7 6
这时 A = 11, B = 7 (fun中 M的值调用的B值的存储地址,直接修改就把B的值改了)
K = 13 + Fun(A, A)
第二次调用是全部为A的传址调用,就是 N和M的值是同一个,同步修改A的值
Fun(A, A) || N11 M11 K5
N = N \ 2 5 5 5
K = K + N 5 5 10
N = N + 1 6 6 10
M = M + K 16 16 10
Fun = M + N = 32
print M, N =>16 16
这时 A = 16, B = 7 (你可以输出一下)
K = 13 + 32 = 45
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
程序执行到K=FUN()+FUN()时,首先运行第一个FUN((A),B),调用FUN函数,这时N=A=11,M=B=2,N=N/2=6(四舍五入,奇数加1),k=k+N=26,N mod 2=0,不执行IF,m=M+K=2+6=8,FUN=M+K=8+6=14,输出M,N,所以第一行是8,6
这时候运行第二个FUN(A,A),同理这样去做,注意K为全局变量,这时K为6
最后结果是
8,6
18,18
50
这时候运行第二个FUN(A,A),同理这样去做,注意K为全局变量,这时K为6
最后结果是
8,6
18,18
50
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询