C语言一道选择题求解释

#include<stdio.h>intmain(){intx[]={10,20,30};int*px=x;printf("%d,",++*px);printf("%d,... #include <stdio.h>int main(){ int x[] = {10, 20, 30};int *px = x;printf("%d,", ++*px); printf("%d,", *px);
/* 20 20*/     px = x;printf("%d,", (*px)++); printf("%d,", *px);
/* 11 11 */
px = x;printf("%d,", *px++); printf("%d,", *px);
/* 10 20 */ px = x;printf("%d,", *++px); printf("%d\n", *px); /* 20 20 */
return 0;}

这道题答案应该是多少?我都被搞晕了。注释里面是我的答案,但是肯定是错的~55
展开
 我来答
时刻准备着hai
2014-01-19 · 超过21用户采纳过TA的回答
知道答主
回答量:114
采纳率:0%
帮助的人:46.1万
展开全部
正确答案是11,11,11,12,12,20,20,20。int *px=x就是px的指针指向数组x的首元素。第一行的两个printf,第一个是先引用指针px,既此时*px为10;相当于++(*px);++是自加运算,与*px++区别就是,它在该表达式运行前就进行了自加。第二个结果为11,是因为数组x中的10已经变为11了。第二行原理同上。第三行第一个为12是px先进行地址加1;既指向数组x中的第二个元素20,但在此表达式不生效,所以值还是数组x的第一个元素。*与++运算同级的,所以要注意运算符前后顺序的。
战誉宇纶
2019-10-17 · TA获得超过3738个赞
知道大有可为答主
回答量:3121
采纳率:33%
帮助的人:440万
展开全部
a<b<c
先执行a<b,即1<2,为真,再执行真<c,真为1,所以1<2所以也为真,执行循环体,ab互换,c减1=1
这时a<b,即2<1为假,假为0,c为1,所以0<1为真,所以还是执行循环体,ab互换,c减1=0
这时a<b,即1<2,为真,c为0,即1<0为假,所以不执行循环体,执行输入语句。这时a=1,b=2,c=0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友2e4e3997
2014-01-18
知道答主
回答量:28
采纳率:0%
帮助的人:11.7万
展开全部
孩子,这题到底是个啥意思?是问输出的结果是什么吗?
更多追问追答
追问
是的!问输出结果是什么

程序运行后的输出结果是( )   A)11,11,11,12,12,20,20,20 B)20,10,11,10,11,10,11,10  C)11,11,11,12,12,13,20,20 D)20,10,11,20,11,12,20,20
追答

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chr1999
2014-01-18 · TA获得超过1056个赞
知道小有建树答主
回答量:2462
采纳率:0%
帮助的人:1227万
展开全部
代码运行下?
追问
运行一下,但是还是不懂啊。。。考试没电脑运行呢~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式