目录: 标题| 题干| 答案| 搜索| 相关
问题

有如下程序#include "stdio.h"main(){ int 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

  • A30
  • B15
  • C20
  • D10
参考答案
参考解析:

在本题中,程序首先定义了三个整型变量,然后执行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。

分类:其他
相关推荐

1、有如下程序段#include "stdio.h"void fun(int *

有如下程序段#include "stdio.h"void fun(int *a,int *b,int *c,int *d,int *e){ int i,j,k,m; for(i=0;i< *a;i++) for(j=0;j< *b;j++)  for(k=0;k<*c;k++) ...

2、设有如下程序 #include<stdio.h> main() { int*

设有如下程序 #include<stdio.h> main() { int**k,*j,i=100; j=&i;k=&j; printf("%d ",**k); } 上述程序的输出结果是______。A运行错误B100Ci的地址Dj的地址

3、有以下程序#include "stdio.h"void fun(int *a

有以下程序#include "stdio.h"void fun(int *a,int *b){ int c=20,d=20; *a=c/3; b=d/5;}main(){ int a=3,b=5; fun(&a,&b); printf("%d,%d\n",a,b);}程序的运行结果是A.6,5 B.5,6C.20,25 D.3,5A6,5 B5,6C20,25 D3,5

4、若有下面的程序段#include "stdio.h"main(){ int

若有下面的程序段#include "stdio.h"main(){ int i=6; while(i--) printf("%d",--i); printf("\n");}那么程序的输出结果为A.531 B.420C.654321 D.死循环A531 B420C654321 D死循环

5、有如下程序#include "stdio.h"main(){ int j,i

有如下程序#include "stdio.h"main(){ int j,i,k=0; for(j=20;j<=30;j++) { if(!(k%10))printf("\n"); for(i=2;i<j;i++)if(!(j%i))break; if(i>=j-1)...

6、有如下程序#include <stdio.h>main(){ F

有如下程序#include <stdio.h>main(){ FILE *fp1; fp1=fopen("f1.txt","w"); fprintf(fp1,"abc"); fclose(fp1);}若文本文件f1.txt中原有内容为good,则运行以上程序后,文...