有以下程序: #include void main() {int i,j,m=1; for(i=1;i<3;i++) {for(j=3;j>0;j一一) {if(i*j>3)break; m*=i*j; } } printf(’’m=%d\n’’,m);

admin2020-07-28  19

问题 有以下程序:
#include
void main()
{int i,j,m=1;
for(i=1;i<3;i++)
{for(j=3;j>0;j一一)
{if(i*j>3)break;
m*=i*j;
}
}
printf(’’m=%d\n’’,m);
}
程序运行后的输出结果是(  )。

选项 A、m=4
B、m=2
C、m=6
D、m=5

答案C

解析 外层for循环次数为2,内层for循环次数为3;当i=1时,执行3次内循环,结果是m=6;当i=2时,内循环中j=3,将执行break语句,跳出内层循环,此时,外层循环也正好结束,所以结果为m=6。还需要注意赋值运算符的级别仅比逗号运算符高,比其他运算符低,所以在本题中m*=i*j可以展开成m=m*(i*j)。
转载请注明原文地址:https://kaotiyun.com/show/iG3p777K
0

随机试题
最新回复(0)