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 ,谁能解释一下 谢谢 展开
char c[]="abc";
int i=0;
do while(c[i++]!='\0');printf("%d",i-1);
A:abc B:ab C:2 D:3
答案是D ,谁能解释一下 谢谢 展开
3个回答
展开全部
核心解释是: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的值,++在前则先进行自加。
展开全部
循环过程为:
i c[i]
0 a
1 b
2 c
3 \0
此时结束循环 ,因为是i++ ,故是先使用 i 再递加 i ,3再加1为4
输出i-1为 3,
i c[i]
0 a
1 b
2 c
3 \0
此时结束循环 ,因为是i++ ,故是先使用 i 再递加 i ,3再加1为4
输出i-1为 3,
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C语言一道选择 char c[]="abc";int i=0;
以下程序段的输出结果为().charc[]="abc";inti=0;dowhile
以下程序段的输出结果为().charc[]="abc";inti=0;dowhile
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询