C语言高手,求指点!

B

以下程序段的输出结果为: 。
for ( i=4; i>1;i-- )
for ( j=1; j<i; j++ )
putchar(‘#’);
A. #
B. ######
C. ##
D. ###
为什么?怎么看?

1.先执行第一个循环,i=4,然后执行第二个循环,因为j=1,小于i(4),当第二个循环连续执行3次(因为j分别3次都小于4),当j=4时,第二个循环结束。
2.因为第一步执行第一个循环时,循环为真,所以并没有结束,以此类推,i=3,第二个循环执行两次,i=2,第二个循环执行一次,当i=1时,第一个循环为假,结束,第二个循环显然不执行。
加起来共六次,选B。
简单分析:
i=4时,输出3个#,i=3时,输出2个#,i=2时,输出1个#,i=1时,所有循环结束,不输出#,共输出6个#。
这是循环里面有循环,也就是循环的嵌套。当第一个循环为真时,执行第二个循环,当第二个循环为假时,返回再执行第一个循环,以此类推,直到第一个循环为假时,总循环结束。
其实你可以把第二个循环当作是一个语句。
有不懂的可以追问。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-06-07
这个类似个冒泡算法,,for(j=1;j<i;j++);执行了三次循环,,分别i=4,i=3,i=2,,,所以putchar("#")
分别输出###,##,#,,,,双层循环,每次执行一次第一层成立后,再执行第二层循环,执行到结束跳出,继续执行第一层本回答被提问者和网友采纳
第2个回答  2012-06-07
循环总共执行了6次 选B
相似回答