有如下程序#include "stdio.h"main(){ int a b m; for(a=5;agt;=1;a--) { m=0; for(b=a;b

计算机 程序,上述 已帮助 人

有如下程序#include "stdio.h"main(){ int a,b,m; for(a=5;a>=1;a--) { m=0; for(b=a;b<=5;b++) m=m+a*b; } printf("%d\n",m);}上述程序的运行结果是A.30 B.15 C.20 D.10

热搜:一个c程序的执行是从本程序的main函数开始

答案解析

难度★★☆ 搜索
  • 参考答案:B在本题中,程序首先定义了三个整型变量,然后执行for循环,从循环的结构条件我们可以知道,循环执行了5次,循环变量a的值分别为5,4,3,2,1。当a=5时,m=0,执行第二层循环,循环开始时,是变量a的值赋给循环变量b,而且只要循环变量b的值小于等5,循环继续,循环变量b的值每经过一次循环后自加1,这时由于b=a=5,循环只执行一次,m=m+a*b可描述为m=0+5*5=25。如果我们一直这样分析下去,由于循环的次数太多,那么费时肯定也很多,而且还容易出错,因此,我们需要找到新的解决问题的办法。从我们对上一次循环执行过程的分析可以看出,第一层循环,每次在最前面执行语句m=0操作,即将我们前面执行的m结果值进行清0操作,使其不影响后面m的值,程序最终要输出的m是当a=1时那次循环计算到的m的值。当a=1时,b的初值为1,第二层循环执行5次,第一次计算到的m=0+1*1=1;第二次计算到的m=1+1*2=3;第三次计算到的m=3+1*3=6;第四次计算到的m=6+1*4=10;第五次计算到的m=10+1*5=15。整个过程其实相当于求1~5的和。因此,程序最终的输出结果为15,答案选B。