首页 > 试题广场 >

有以下程序 #include "stdio.h" main

[单选题]

有以下程序

#include "stdio.h"
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);
}  

程序运行后的输出结果是()?

  • m=6
  • m=2
  • m=4
  • m=5
推荐
A
#include "stdio.h"
int main(){
	int i,j,m=1;
	for(i=1;i<3;i++){
		for(j=3;j>0;j--){
			if((i*j)>3)break;//在i=2,j=3时满足条件,不再向下运行
				m*=i*j;//在i=1时的内部循环中m=3*2*1=6
		}
	}
	printf("m=%d\n",m);//输出m=6
	return 0;
}

编辑于 2019-12-09 14:11:40 回复(0)
A
外循环:
  1. i=1  : 内循环  j=3时,i*j=3,m=3*1=3;  j=2时,i*j=2,m=2*3=6;  j=1时,i*j=1,m=1*6=6
  2. i=2  : 内循环  j=3时,break; j=2时,m=;j=1

所以最终结果是6


发表于 2019-12-06 21:45:55 回复(0)
break只会终止最近一层循环
发表于 2020-07-30 22:46:19 回复(0)
A i的值为1,2在外循环;j的值为3,2,1在内循环;因为i=1时不会跳出循环,所以最后m为6,当i=2时已经跳出循环,m*=i*j不执行,所以m的值就不再变化。
发表于 2019-12-06 14:49:43 回复(0)