C语言选择题(3道题),帮忙解答一下,谢谢!

1.分析下面的C语言代码:inta=1,b=10;do{b-=a;a++;}while(b--<0);则执行循环语句后b的值为()。(单选题)。A.9B.-2C.-1D.... 1.分析下面的C语言代码:
int a=1,b=10;
do{
b-=a; a++;
}while (b- -<0);
则执行循环语句后b的值为()。 (单选题)。
A. 9 B. -2 C. -1 D. 8
答案: D

2.#include<stdio.h>
void main()
{
int a=3,b=2,c=1;
int x=10,y=20;
if(a<b)
if(b!=0)
if(!x)
y=1;
else if(x)
y=0;
y=-1;
printf("%d",y);
}
上面的C程序的输出结果是( )。 (单选题)。
A. 20 B. 1 C. 0 D. -1
答案: B

3、表达式18/4*sqrt(4.0)/8值的数据类型为()。 (单选题)
A. int B. float C. double D. 不确定
答案: C
分别解释一下,答案是怎么得来的。
展开
 我来答
madoc520
2011-08-28
知道答主
回答量:24
采纳率:0%
帮助的人:22.4万
展开全部
1、int a=1,b=10;
do{
b-=a; a++;
}while (b- -<0);
do循环执行了一次,b执行了两次,第一次b=b-a,b变成了9,b=9>0,循环结束,执行b--,b=8;
2、结果应为-1,答案是错的,或者你拉掉了{ },因为无论上面执行了什么,都会执行倒数第二行: y=-1; 最后输入必为-1;
3、C语言中,sqrt()函数原型为double sqrt(double),所以上题为C,当然vc2008后函数有重载,需要指定类型。
jogyo1
2011-08-28 · TA获得超过114个赞
知道答主
回答量:118
采纳率:0%
帮助的人:130万
展开全部
第一题:循环执行一次,b-=a; a++; 此时b=9,a=1,a++之后,a=2,b=8了
第2题 :因为a<b不成立,所以y=-1
3. 18/4*sqrt(4.0)/8开方后进行运算要进行数据转换
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wskjuf
2011-08-28 · TA获得超过1289个赞
知道大有可为答主
回答量:1731
采纳率:0%
帮助的人:1783万
展开全部
1、第一次循环后就退出了循环。
b = 10 - 1 = 9 --> b-- --> b = 8

2、答案是D,除非你抄漏了标点。
就 y=-1;
printf("%d",y);
这两句有用,其他的都是障眼法。

3、这个无所谓吧,想是什么类型都可以。有xx特色的题目了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hlchu0427
2011-08-28
知道答主
回答量:13
采纳率:0%
帮助的人:7.6万
展开全部
1、do while循环先执行一次do,执行后b=9,再执行while语句中的b--,得到b=8.
2、这种题目只要遵循else和最近的if匹配是很简单的,你可以把程序省略的else或if给添上。、
3、这个可以完全遵循数学运算,因为sqrt运行完后是double型的,所以结果是double型的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式