C语言一道选择 char c[]="abc";int i=0;

以下程序段的输出结果为().charc[]="abc";inti=0;dowhile(c[i++]!='\0');printf("%d",i-1);A:abcB:abC:... 以下程序段的输出结果为().
char c[]="abc";
int i=0;
do while(c[i++]!='\0');printf("%d",i-1);
A:abc B:ab C:2 D:3
答案是D ,谁能解释一下 谢谢
展开
 我来答
小孩教育与生活小能手
2020-07-20 · 热爱社会生活和少儿教育
小孩教育与生活小能手
采纳数:16 获赞数:1328

向TA提问 私信TA
展开全部

核心解释是:i++的使用规则是 ,先使用 i的值再对i进行++运算

运行的过程为:

第一次循环,i=0,运行do里面的空语句,c[0]='a',i++,while的判断成立

第二次循环,i=1,运行do里面的空语句,c[1]='b',i++,while的判断成立

第三次循环,i=2,运行do里面的空语句,c[2]='c',i++,while的判断成立

第四次循环,i=3,运行do里面的空语句,c[3]=='\0',i++,while的判断不成立,跳出循环,此时i=4,故输出i-1的结果是3。

本题程序的关键在于i++的使用规则,先使用i的值,进行c[i]的运算,再进行i++的运算。下面是用VC6.0跑一遍该程序的结果,结果证明答案是D且论证过程没错。

扩展资料:

c语言中,自加运算是一个重点,除了题目的i++还有++i的自加法。

区别:++i的用法和i++有一定的不同,i++为先用i的值再进行i变量的自加1,而++i是先进行i的自加,再对i变量值的调用。

记忆方法:算法的优先原则,i在前则先运用i的值,++在前则先进行自加。

百度网友65dba73a
推荐于2018-03-01 · 超过21用户采纳过TA的回答
知道答主
回答量:75
采纳率:0%
帮助的人:50.6万
展开全部
循环过程为:
i c[i]
0 a
1 b
2 c
3 \0
此时结束循环 ,因为是i++ ,故是先使用 i 再递加 i ,3再加1为4
输出i-1为 3,
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我是达浪啊
2019-12-23 · TA获得超过227个赞
知道答主
回答量:1844
采纳率:21%
帮助的人:120万
展开全部
C语言一道选择 char c[]="abc";int i=0;
以下程序段的输出结果为().charc[]="abc";inti=0;dowhile
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式