请计算机C语言高手帮我解答以下三个题目,谢谢!

1.若变量i和j已经定义为int类型,则以下程序段中内循环体的总的执行次数是(A)。for(i=5;i;i--)for(j=0;j<4;j++){...}A)20B)25... 1.若变量i和j已经定义为int类型,则以下程序段中内循环体的总的执行次数是( A )。
for (i=5;i;i--)
for(j=0;j<4;j++)
{...}
A)20 B)25
C)24 D)30
2.以下程序的输出结果是( D )。
程序1-7:P1-7.c
main()
{
int a,b;
for(a=1,b=10;a<=100;a++)
{
if(b>=10)
break;
if(b%3==1)
{
b+=3;
continue;
}
}
printf("%d\n",a);
}
A)101 B)6
C)5 D)4
3.假定a和b为int型变量,则执行以下语句后b的值为( D )。
a=1;
b=10;
do
{
b-=a;
a++;
}
while (b--<0);
A)9 B)-2
C)-1 D)8
第一题为什么不是24?
后两题是如何循环的?
展开
 我来答
tutengkwwl
2010-09-04 · 超过10用户采纳过TA的回答
知道答主
回答量:31
采纳率:0%
帮助的人:28.5万
展开全部

1、

第一个for要执行5次循环,当i=0;时停止

第二个for要执行4次循环

所以共5乘4,20次;

2、

第二题没有正确答案,答案应该是“1”但是没有这个选项!在VS2008中运行结果也为1!

原因在于  for(a=1,b=10;a<=100;a++)/*在此a的值已被赋为1*/

    {

    if(b>=10)

    break;/*在此已跳出循环体!后面的所有都没必要看了!!*/

   …………

}

最后就是输出a所以值为1;没有正确答案!

3、

do

{

   b-=a;/*此处b=b-a;此时b=9*/

   a++;

    }

while (b--<0);/*b--是先使用再自减,显然9>0,所以跳出do循环体,b自减1,最后b的值为8*/

猪头或火宝宝
2010-09-04 · TA获得超过2758个赞
知道小有建树答主
回答量:1001
采纳率:0%
帮助的人:1516万
展开全部
你好!!!
1.当i=5;循环4次:for(j=0;j<4;j++),j从0到3
、、、、、、、、、
当i=1的时候循环4次、、、、、、
当i=0就退出循环的了,所以循环立刻5*4=20

2.这个题目没有答案!!!实际答案是1;解释:
开始的时候a=1.b=10;然后判断if()语句,显然是成立的,那就执行break,跳出循环,此时的a的值是1
3.怎么没有输出表达式呢???
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
luofl1992
2010-09-04 · TA获得超过710个赞
知道小有建树答主
回答量:561
采纳率:0%
帮助的人:574万
展开全部
1.若变量i和j已经定义为int类型,则以下程序段中内循环体的总的执行次数是( A )。
for (i=5;i;i--) /*i非零时执行,也就是1—5,共计5个数*/
for(j=0;j<4;j++)/*j在0到3执行,也就是四次,所以总计为5*4得20次。。*/
{...}
A)20 B)25
C)24 D)30
2.以下程序的输出结果是( D )。
程序1-7:P1-7.c
main()
{
int a,b;
for(a=1,b=10;a<=100;a++) /*初始化a、b*/
{
if(b>=10) /*满足条件b,break执行,整个for循环退出,a不进行自增了,怎么没有答案了啊~~~~~囧*/
break;
if(b%3==1)
{
b+=3;
continue; /*如果执行,则本次循环结束,for循环里面的后面的内容不执行*/
}
}
printf("%d\n",a);
}
A)101 B)6
C)5 D)4
3.假定a和b为int型变量,则执行以下语句后b的值为( D )。
a=1;
b=10;
do
{
b-=a; /*赋值为9先*/
a++; /*a变为2*/
}
while (b--<0); /*执行吧,知道b的值小于0,这个是简化写法!即循环条件为b<0(懂吧?可以把这个改写成普通的while循环,那么b--在循环内的最开始部分,但是第一次它不执行),在此同时b--自减以后进入下次循环。。稍微走一下整个过程结果就出来了*/
A)9 B)-2
C)-1 D)8
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
avatian1
2010-09-04 · TA获得超过1万个赞
知道大有可为答主
回答量:6315
采纳率:0%
帮助的人:2625万
展开全部
1题:
外循环执行5次,到i为0时结束;每次外循环执行时内循环执行4次(j为4时循环结束)。所以为5*4=20次。
2题:
输出结果应该是1。因为for循环只执行一次,第一次循环时,b=10,即 if(b>=10) break; 执行完后退出了循环。
3题:
输出结果应为8。 循环只执行一次,进入循环前b为10,执行b-=a;后b的值为9,a变成2,到while(b--<0);时先判断b<0即9<0为假,所以循环不再执行,但判断完后b减了一个,所以b的值变成8了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wolinxuebin
2010-09-04 · TA获得超过719个赞
知道小有建树答主
回答量:194
采纳率:0%
帮助的人:258万
展开全部
1.中要了解for的用法 中间的是判断语句 第一层的时候 判断语句是 i,如果i=0就会跳出循环 也就相当于 i>0 所以第一层 循环5次 第二层好理解是 4次
所以就是20次
2.第二题 应该是 1 ,因为一进来 b就>=10了 就break了 跳出循环了
3.先进来 立马 b=9 a=2,然后 b--变成了 8 注意b--再语句结束后b才会变成8 此时是b=9 >0 条件不成立 最后退出循环 最后b=8
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yiwaihaha
2010-09-04 · 超过39用户采纳过TA的回答
知道小有建树答主
回答量:80
采纳率:0%
帮助的人:88.6万
展开全部
第一题:
for (i=5;i;i--)
//i从5开始,判断i是否为0,是0就不循环了。所以这里循环了54321,也就是5次
for(j=0;j<4;j++)
这里从0开始,到3,0123,循环了4次,结合上面,循环了20次:)
{...}
第二题:结果是1,首先for初始化,a=1,b=10,完后判断a<=100?是,执行判断语句if(b>=10)?是,执行break,跳出for循环,执行printf("%d\n",a);结果为a加回车。
第三题:a=1,b=10,执行do{b-=a;,这时b=9,继续执行a++,a变为2,判断while(b--<0)?这里为b--,先进行判断,b=9>0,所以不执行循环,再执行b--,b等于8,所以结果为8

我觉得第二题答案不正确- -,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式