今天做C语言的试卷,有几题不会,望会的人帮忙解答一下!谢啦

题1:main(){inta[10],i=0;while(i<10)scanf("%d",______)问横线部分应填什么?A:&A[i++]B:a+iC:&a[++i]... 题1: main()
{int a[10],i=0;
while(i<10)
scanf("%d",______)
问横线部分应填什么?A:&A[i++] B:a+i C:&a[++i] D:a+(i++)
题2:
main ()
{intx=2;
while(x--);
printf("%d\n",x)
}
以上语句的输出结果是什么?(填空题)
题3
下调用语句:func((e1,e2),(e3,e4,e5)); 的实参个数是:A:语法错误 B:5 C:3 D:2
希望会做的能帮忙解释一下!在此先谢了
展开
 我来答
青檬护肤_
2012-06-11 · TA获得超过1844个赞
知道小有建树答主
回答量:455
采纳率:50%
帮助的人:88.9万
展开全部
第一题,选D,题目意思是用循环的方式输入10个到数组a[10]中,A,B明显不对C中会越界,应该是&a[i++],D暂时还有点不太好理解,
第二题,结果为-1;因为while(x--);(请注意括号后面后有分号,这一句的目的就是x一直减减,直到x等于0,因为"--"是右结合运算符,所以执行完while(x--);是x还要减一次)这句执行完后x就变成-1了,所以为-1;如果把while(x--);写成while(--x);结果就为0,而不是-1了.
第三题,选D,两个,因为(e1,e2)和(e3,e4,e5)有括号括着,而括号里面是逗号表达式(逗号表达式的值为最后一个表达式的值,当然这里与这个题没关系了),所以(e1,e2)和(e3,e4,e5)都只能看作是一个参数,如果没有括号就是5个参数了。
更多追问追答
追问
第三题是的诶!!怎么没看出来啊!!哎····
追答
嗯  慢慢的就知道了,考试就喜欢考这样的,加油啊   第一题刚才可能有点错 ,不过现在没问题了  不太好理解,不知怎么跟你你说

第一个 这样吧 a+(i++)中的a+表示i的地址(例如a+2表示a[2]的地址,因为数组名表示数组的首地址),i++表示要输入的数组值的下标,不知你能不能理解我说的
rssg888
2012-06-11 · TA获得超过1032个赞
知道小有建树答主
回答量:330
采纳率:0%
帮助的人:397万
展开全部
1:D // A: 大小写错误 B i不变,死循环 C 会越界 D ok
2输出-1 当x==0时 while(x--)为假,循环停止,然后x=x-1得 x==-1,然后输出
3:D 参数就是两个逗号表达式
追问
x=0时,while(x--)为假,嗯!多谢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Bull_林
2012-06-11
知道答主
回答量:30
采纳率:0%
帮助的人:23万
展开全部
1.D
C语言中严格区分大小写,A错,BD是指针写法C语言中数组即指针,而B中很明显i值不变
C选项中++i等于先i+=1;再scanf("%d",&a[i]),会下标溢出
只有选D

2.
-1 while后有“;”说明一直运行到i==0时再运行printf
3.不知道了
追问
嗯,多谢了!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
秋悦子露d1
2012-06-11
知道答主
回答量:20
采纳率:0%
帮助的人:10.6万
展开全部
1.d
a+i代表数组指针的a[i]元素
2.-1
3.d
追问
嗯,多谢!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式