求三题C语言题目答案的原因!~

A(?)10.在C语言中,下列C语言代码的循环体执行的次数是___A____。intn=2;while(n=0){printf("%d",n);n--;}A)0次B)1次... A (?)10.在C语言中,下列C语言代码的循环体执行的次数是___A____。
int n=2;
while(n=0)

{
printf("%d",n);
n--;
}

A)0次 B)1次 C)2次 D)3次

B (?)13.下列C语言代码的输出结果是__B_____。
#include<stdio.h>
struct abc
{
int a,b,c;
};
void main()
{
struct abc ss[2]={{1,2,3},{4,5,6}};
printf("%d\n",ss[0].a+ss[1].b);
}

A)5 B)6 C)7 D)8

(?)15. 在C语言中,下列代码的输出结果是__D_____。

#include<stdio.h>
void main()
{

Int i=0;
int bookNum=4;
int totalPrice=0;
int bookPrice[4]={10,20,30,40}
for(i=0;i<4;i+=2)
{
totalPrice+=bookPrice[i];
i--;
}
printf("%d",totalPrice);
}

A)30

B)40

C)60

D)100
展开
 我来答
慕名晓白
2010-01-10
知道答主
回答量:5
采纳率:0%
帮助的人:0
展开全部
1.while根据对它后面的条件表达式的真假值来判断是否执行一次循环,这里的条件表达式是n=0,即给n赋值为0,整个条件表达式值为0.
在C语言中,条件表达式的非零值表示真,零值表示假,所以该循环执行0次。

2.ss[2]表示由2个abc 结构体组成的数组,结构体abc由三个int整型数a,b,c组 成
struct abc ss[2]={{1,2,3},{4,5,6}};
是对ss[2]中的2个abc结构体的初始化:
ss[0]={1,2,3}
ss[1]={4,5,6}
所以ss[0].a=1,ss[1].b=5,ss[0].a+ss[1].b=6。

3.这里我们需要对for 语句有很好的理解,
首先i=0将i初始化为0
i<4是条件表达式,判断是否执行一次循环,如果条件满足
接着进入循环体
{
totalPrice+=bookPrice[i];
i--;
}
循环体执行完毕后,再执行i+=2,即i=i+2
然后重新回到条件表达式i<4,如此重复直到条件不满足
为了简单明了,我们可以将这个for语句改写为等价的while语句:
i=0;
while(i<4)
{
totalPrice+=bookPrice[i];
i--;
i+=2;
}
也即
i=0;
while(i<4)
{
totalPrice+=bookPrice[i];
i++;
}
容易看出循环执行4次,
i=0:totalPrice=totalPrice+bookPrice[0]=0+10=10;
i=1:totalPrice=totalPrice+bookPrice[1]=10+20=30;
i=2:totalPrice=totalPrice+bookPrice[2]=30+30=60;
i=3:totalPrice=totalPrice+bookPrice[3]=60+40=100
明为之狂
2010-01-10 · TA获得超过270个赞
知道小有建树答主
回答量:495
采纳率:0%
帮助的人:305万
展开全部
CBD
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
零度_冰火
2010-01-10 · 超过17用户采纳过TA的回答
知道答主
回答量:27
采纳率:0%
帮助的人:0
展开全部
(1)n=2,不满足n=0;while循环不执行所以选A;
(2) 由struct abc ss[2]={{1,2,3},{4,5,6}};
得ss[0]={1,2,3},ss[1]={4,5,6};
三个元素分别对应a,b,c;
所以ss[0].a+ss[1].b=1+5=6;
(3)bookPrice[4]={10,20,30,40}
得bookPrice中的四个元素;
for(i=0;i<4;i+=2)
{
totalPrice+=bookPrice[i];
i--;
}
totalPrice=0+bookPrice[0]+bookPrice[1]+bookPrice[2]+bookPrice[3]=100;
就这样了。你看下吧。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bennysu
2010-01-10 · TA获得超过749个赞
知道小有建树答主
回答量:205
采纳率:0%
帮助的人:215万
展开全部
第一题:
while(n=0)可以写为n=0;while(n)即while(0),循环条件不满足,所以循环0次
第二题:
这题简单。
struct abc ss[2]={{1,2,3},{4,5,6}};
printf("%d\n",ss[0].a+ss[1].b);
就是{1,2,3}的第一项+{4,5,6}的第二项
第三题:
for(i=0;i<4;i+=2)
{
totalPrice+=bookPrice[i];
i--;
}
循环四次:for循环的执行顺序是:1.赋值(i=0)。这步第一次执行完后就不再回头,即和后面的步骤再无关联,故我们可以把这一步提前到for语句之前实现。如i=0; for(;i<4;i+=2)。 2.判断(i<4),如果判断条件成立,则立刻转去执行{}里面的内容;但如果条件不成立,则马上从这里结束循环。3.修正(i+=2)。每次执行完函数体的内容后马上执行该赋值语句。...根据以上说明再仔细推敲吧,相信你会明白为啥选D的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式