c语言题,在线等待

来源:百度知道 编辑:UC知道 时间:2024/05/08 13:44:05
:以下程序运行后的输出结果是( )
main( )
{ int x[3] ={ 2, 3, 5 }, i, s=0;
for(i=1; i<=3; i++)
{ s+=x[(i+5)%3];
printf("%d ",s);
}
}
A)2 6 15 B)2 5 10
C)6 15 10 D)6 30 60
有如下定义和语句,执行完后,变量p和i的值分别为( )
int i , p;
for(i=7,p=1; i>0; i-=3)
p=p*i;
A)18 , 0 B) 2 , -1
C) 28 , -2 D)15 , 随机
能否帮帮我呀?
第一倒:
当i=1时:s+=x[(i+5)%3]=x[0]=2+0=2; //x[0]=2;
当i=2时:s+=x[(i+5)%3]=x[1]=2+3=5; //x[1]=3;
当i=23时:s+=x[(i+5)%3]=x[2]=2+3+5=10; //x[3]=5;
我不太明白x[0]=2;//x[1]=3; //x[3]=5;
这三个是什么意思?

帮你解答:
第一倒:
当i=1时:s+=x[(i+5)%3]=x[0]=2+0=2; //x[0]=2;
当i=2时:s+=x[(i+5)%3]=x[1]=2+3=5; //x[1]=3;
当i=23时:s+=x[(i+5)%3]=x[2]=2+3+5=10; //x[3]=5;
所以答案是:B

第二道:
当i=7,p=1时:p=p*i=7*1=7;
此时i变了,i-=3=7-3=4,p=7
当i=4,p=7时:p=p*i=4*7=28
i-=3=4-3=1,p=28
当i=1,p=28时:p=p*i=28*1=28
所以答案是C。

明白了吗,希望这个能帮助你理解循环语句!

B
C

B
C

第一题 B;
第二题 C;
我也用VC试过了,正确的。

B,C

答案 B C。我估计问这个问题的原因在于for(s1;s2;s3;){}这个结构的执行顺序有点不明白!其实是 s1跟s2比较,如果条件符合,就进入循环体;循环体执行完了,就把进入s3运算,然后跟条件s2比较,如果符合,就进入循环体,否则就退出该结构。