c语言题目 求过程分析

以下程序执行后的输出结果是: s<3,4> = 39
int n,a,s=0,p=1,i;
n=3;a=3;
for(i=1;i<=n;++i)
{p=p*a;s+=p;}
printf("\ns(%d,%d)=%d",a,i,s);
求解释过程

前两行运行完了以后,情况是,a=3,p=1,n=3
第3行,“令i等于1”“当i的值小于等于n时”“继续运行,每一次比较i与n之前,令i+1”
第四行,令p等于原来的p乘以a的积,然后,令s等于原来的s加上p的和
第五行是输出s<a,i>=s;
首先n的值是4,而每进行一次循环,i的值都会加1,也就是说当i等于4时停止运算,有因为i时先加一,再和n比较的,也就是说实际上进行了3次循环(第四行运行三次),可以得出新的s等于39,
所以会输出s<3,4>=39
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-07-08
直接进入for循环语句块来看,第i轮循环中首先计算出exp(p,i),也即p的i次方,然后将该值累加入变量s中,从你的程序中可以看出,for循环一共走了三轮,因而,s、p这两个值在每一轮中的值分别如下:
轮数 s p
1 3 3
2 9 3+9=12
3 27 12+27=39
此外,当程序退出for循环的时候是因为i在第三轮操作之后执行了一次自加,是的i的值变成了4,从而由于i>n,退出循环,因而最终的输出应该是:s<3,4> = 39
希望能帮到你!
第2个回答  2013-07-08
i=1 p=3 s=3
i=2 p=3*3=9 s=3+9=12
i=3 p=9*3=27 s=12+27=39
i=4 退出循环
第3个回答  2013-07-08
这个很简单啊!
int n,a,s=0,p=1,i; 声明变量;
n=3;a=3; 给变量赋值
for(i=1;i<=n;++i) 循环!只要i小于等于N就循环下面大括号内容,这里N=3
{p=p*a;s+=p;} 这里不用说了 小学数学!
printf("\ns(%d,%d)=%d",a,i,s);输出

C语言求过程
分析:根据语句【if(y%3==0)】,说明当 y 是 3 的倍数时,就会执行【printf("%d",--y);】语句。--y 是先让 y - 1,最后再输出 y 的值。在循环中,y 的值从 9 开始,条件是 y > 0,那么这些数中,是 3 的倍数的整数有 9、6、3。因为最后是输出 y - 1 的值,所以输出的是...

C语言,求过程。
答案选B,你给的代码在输出语句中并没有输出空格,而答案每个选项的相邻两个数之间都用一个空格隔开,所以应该在输出的地方补上一个空格。分析:这题考查对二维数组的理解。声明一个二维数组时,如果给出了初始化列表,那么第一维的 [] 括号中的数字可以忽略不写,由编译器来计算初始化列表值的个数...

C语言,求过程?
分析:对于这类问题,循环的次数太多,不用每步运算的写出来,找出其中的规律即可 这里先把 i 赋给 x,最后是输出 i,并且第一个判断有 ++x,即最后 x 是不等于 i 的。当判断条件【if(++x%2==0)】为真时,才再执行【if(x%3==0)】。当判断条件【if(x%3==0)】为真时,才再执行【if...

C语言,求过程。
分析:这题要注意的是,for循环的最右边有一个分号“;”,说明循环体是空语句,即循环体什么都不执行。主要是考查对循环三个表达式和逗号运算符的理解。一般来说,i++是先使用 i 的值,最后再 +1。但在这题的第三个循环表达式(最右边)中,有 i++, s += i,因为它们之间有一个逗号运算符...

C语言,求过程?
运算过程:i = 0,k = 0,判断(i < 7 && p[i] % 2),0 < 7 为真,11 % 2 也为真,执行 k += p[i],i++,此时 k = 11,i = 1。i = 1,k = 11,判断(i < 7 && p[i] % 2),1 < 7 为真,13 % 2 也为真,执行 k += p[i],i++,此时 k = 24,...

C语言,求过程,选什么?
分析:这题重点在【if(b>=10)】和【if (b%3==1)】。当 b >= 10 时,执行 break,此时就会中断循环。b % 3 == 1,表示如果 b 除以 3 的余数等于 1,那么该条件为真,执行语句 b += 3 和 continue,不过 continue 的后面没有语句,再中断当次循环就没有意义了。当 b = 1、4、7...

C语言,求过程
分析:这题有两个自减运算符,一个是前缀,一个是后缀。后缀,y--,是先使用 y 的值,再 -1。前缀,--y,是先 -1,再使用 y 的值。运算过程(y 初始为 10):do{y--;}:执行 y--,此时 y = 9。while(--y):y 先 -1,此时 y = 8,再判断 y 是否为真,此时为真。do{y-...

C语言,求过程
分析:这题有两个自减运算符,一个是前缀,一个是后缀。后缀,n--,是先使用 n 的值,再 -1。即先判断 n 的值,再 - 1。前缀,--n,是先 -1,再使用 n 的值。即 n 先 -1,再输出 n 的值。运算过程(n 初始为 4):while(n--),n = 4,结果为真,n 再 -1,此时 n = ...

C语言,求过程
分析:n[]={0,0,0,0,0}表示数组n有5个元素,分别是n[0]=0,到n[4]=0,进入for循环后:当i=1时,n[1]=n[0]*2+1=1,i=1+1=2 当i=2时,n[2]=n[1]*2+1=3,i=1+1=3 当i=3时,n[3]=n[2]*2+1=7,i=1+1=4 当i=4时,n[4]=n[3]*2+1=15,i=1+1...

C语言,选什么,求过程
答案选B,即输出3,2,-1。分析:这题考查后缀自减和前缀自加运算符,以及逻辑与运算符 &&。后缀 z--,是先使用 z 的值,再 -1。前缀 ++x,是先 +1,再使用 x 的值。逻辑与运算符 &&,只有其两边的条件都为真时,总的结果才为真。当 && 左边的条件为假时,就不会计算其右边的表达式(...

相似回答