永发信息网

c语言i++类型的问题

答案:5  悬赏:40  手机版
解决时间 2021-07-25 13:45

#include<stdio.h>
main()
{
char c1,c2;
for(c1='0',c2='9';c1<c2;c1++,c2--)
printf("%\c%c",c1,c2);
printf("\n");
}这里为什么是输出0918273645

#include<stdio.h>
void main()
{
int j=-1,i=1;
switch(i++)这里第一次i=多少?
case 1:for(j=0;j<9;j++) if(i==1)break;这里的i又是等于多少?
'
'
'
'
'
}

最佳答案

c1++就是c1=c1+1,c2=c2+1;代码中你的c1='0',c2='9',是字符,当执行c1++的时候,c1字符对应的ASCII码会加一,字符'0'对应的ASCII码为48,加一后为49,对应的字符为'1'.而字符'9’对应的ASCII码为57,减1后为56,对应的字符为'8',第一次输出09,再输出18,再输出27,再输出36,最后输出45。由于之间没有换行符'\n',所以最后输出0918273645。



switch(i++),表达式i++的值为1,switch(i++)等价与switch(1),随后i再加1.


case 1:for(j=0;j<9;j++) if(i==1)break;这里的i 等于 2.



i=1,switch(i++)相当于 i=1,switch(i),i=1+1;后加加先取i的值,i再加加


而i=1,switch(++i)相当于 i=1,i=i+1,switch(i);前加加先让i值加加,再去i的值

全部回答

i++是先赋值在自增,++i是先自增在赋值

前面第一次循环c1=0,c2=9,然后,c1++,c2++,此时c1=1,c2=8,c1<c2,故继续执行循环;

在第二次循环里c1=1,c2=8,c1++,c2++,c1还是小于c2,直到最后当c1=5,c2=6时退出循环。此时最后输出的值为4,5.

switch(i++) switch的结果是1,执行完这句,结果就是2了

所以.case 1:for(j=0;j<9;j++) if(i==1)break;这里i是2,不会break

这里为什么是输出0918273645?

答:由FOR循环可知C1是从0开始到9的循环,由C1++依次输出0到9的数;C2是从9到0的循环,它是由语句C2--执行的,所以依次输出9到0的数,但是由于有个执行语言体C1<C2,故C1只能循环到4,C2只能循环到5就停止循环了,又因为你依次输出的是C1,C2所以就出现了0918273645,这是C1,C2交叉输出的数字啦。

switch(i++)这里第一次i=多少?

答;第一次i是1,如果是++i的话就是2了。

case 1:for(j=0;j<9;j++) if(i==1)break;这里的i又是等于多少? 答;这里是选择语句体,这里的i是等于1的。

明白了吗?i++是先赋值再自增,++i是先自增再赋值。

这是两个函数吧

第一个:

结果是对的,因为C1和C2是给的数字,所以输出用的是%C输出的也是数字而不是字母

for(c1='0',c2='9';c1<c2;c1++,c2--) printf("%\c%c",c1,c2); 这是for循环

开始c1='0',c2='9',有符合c1<c2,所以执行printf打印c1,c2,就输出09

再 执行c1++,那c1就等于了1,执行c2--,c2就等于了8,又有符合c1<c2,

执行printf打印c1,c2,就输出18

再就是这样循环直到c1=4,c2=5,就输出45

再 执行c1++,那c1就等于了5,执行c2--,c2就等于了4

这就不符合c1<c2的条件,跳出for循环

就是这样。

第二个:

int j=-1,i=1; switch(i++)这里第一次i=多少?

i是等于1的,i++是先使用,再自加。执行i++后i=1但是i他自加了1

就是说在第一次执行switch语句是i是等于1 的,但到第二次又回到switch是i是等于2的

case 1:for(j=0;j<9;j++) if(i==1)break;这里的i又是等于多少? 这里的i是等于1的

你是关于i++和++i搞不清,一开始时是蛮难的,你要C语言的书好好地看看,问一问别人

#include<stdio.h> main() { char c1,c2; for(c1='0',c2='9';c1<c2;c1++,c2--)//初始化C1、C2,判断C1是否小于C2,若为真,则执行输出,然后C1++,C1就是‘1‘,C2就是’8‘;若为假,则循环结束 printf("%\c%c",c1,c2); printf("\n"); }

#include<stdio.h> void main() { int j=-1,i=1; switch(i++)//这里i取1后i才能进行自加 case 1:for(j=0;j<9;j++) if(i==1)break;//这里i就是2了 ' ' ' ' ' } 给你举个例子:

int i,j,a=9;

i=a++;j=++a;

先看i=a++;计算方法是:i=a;a=a+1;所以此时i=9;a=10;

再看j=++a;计算方法是:a=a+1;j=a;所以此时a=11;j=11;

若是还不明白,可以继续追问。。。

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
初中九年级英语P36课文翻译
DNF火属性光属性暗属性冰属性攻击各是什么意
为什么医生把治不好的病叫癌症啊。
怎么把表格发给别人,手机qq语音消息怎么发给
怎么亮QQ播客图标
求武林外传体验服激活码,追分
DNF华北2区+10朱诺卖多少钱?。17L的
谁知道这个长征烟市场价是多少一包?有图~
下载歌时,上什么网站能获得到最新的歌曲!
好寂寞,想找人陪?
我们班谁的脑子被铁打的最严重
为什么删除的好友还是能把车停在我的车位上?
怎么关闭QQ空间里的欢乐斗地主?
土豆网的Itudou上传问题
我要我空间的花藤开花,有哪个好心的黄钻贵族
推荐资讯
五年级数学题:关于运算律的问题
男生带的项链
生活中最让人心烦的是什么???
七桥定理指什么?
火车是在铁路上面组装的还是组装好再用东西吊
郑洁有多重?
N78山西省太原市哪里卖了?具体,报价多少
凤凰传奇的有一个歌但是我不知道歌名其中的一
CSfps优化
诗情画意 意境何在?
晚上12点之后睡不着怎么半?郁闷的很呀。
谁知道刚刚上映的<2012>电影票是多少?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?