有如下程序#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
有如下程序#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
在本题中,程序首先定义了三个整型变量,然后执行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,则运行以上程序后,文...