给定Java代码片段,其中包含一个带有标签的外部循环和一个嵌套的内部循环。外部循环变量k从0迭代到4。内部循环变量m从0迭代到4。在内部循环中,如果内部循环变量j(此处应为m,代码有误)除以10的余数等于0,则打印i和j(此处应为m)的值,然后使用 `break outer;` 语句退出外部循环。假设初始时i的值不确定,外部循环开始前执行`i=k+2; i=5*i;`,则当程序输出 `i=2,j=10` 时,k的值应为以下哪一项?

答案解析

代码中j%10==0的判断应该为m%10==0。第一次满足m%10==0的是m=0。输出i=2,j=10说明在k=0时,经过i=k+2;i=5*i;运算后i=10,然后内部循环m=0时,满足m%10==0, 但输出的是i=2,j=10而不是i=10,j=0,所以程序存在逻辑错误,推测应该是在k=0时输出i=2,j=10,内部循环应该为m=10,同时第一次满足m%10==0的时,m的值应该为10,因为m是从0到4的递增,所以此处输出的j应该不是m,而是代码编写错误。代码错误在于外层循环重新赋值了i, 而内部循环的j根本没有赋值, 从而导致了输出的i和j的值有问题。 结合题目条件输出i=2,j=10,当k=0时,i=2,内部循环j的值不应参与判断,应为m, 当m=0时,m%10==0。所以k=0时, i=2,j=10。 题目代码存在问题,但假设条件输出i=2,j=10,且能跳出外层循环,则k=0。
正确答案:A
随机推荐
开始刷题