1个回答
展开全部
[i=0]
s[i]!='\0'成立,开始循环,[s[i]=s[0]='a'],s[i]是字母条件成立,i++;[i=1]
s[i]!='\0'成立,继续循环,[s[i]=s[1]='b'],s[i]是字母条件成立,i++;[i=2]
s[i]!='\0'成立,继续循环,[s[i]=s[2]='c'],s[i]是字母条件成立,i++;[i=3]
s[i]!='\0'成立,继续循环,[s[i]=s[3]='1']
s[i]是字母条件不成立else
j=i;[j=3]
s[j]=s[j+1];[s[j]=s[3]=s[3+1]=s[4]='2',s="abc22.3-A B"]
s[j]!='\0'成立,开始循环,j++;[j=4]
s[j]=s[j+1];[s[j]=s[4]=s[5]='.',s="abc2..3-A B"],s[j]!='\0'成立,继续循环,j++;[j=5]
s[j]=s[j+1];[s[j]=s[5]=s[6]='3',s="abc2.33-A B"],s[j]!='\0'成立,继续循环,j++;[j=6]
s[j]=s[j+1];[s[j]=s[6]=s[7]='-',s="abc2.3--A B"],s[j]!='\0'成立,继续循环,j++;[j=7]
s[j]=s[j+1];[s[j]=s[7]=s[8]='A',s="abc2.3-AA B"],s[j]!='\0'成立,继续循环,j++;[j=8]
s[j]=s[j+1];[s[j]=s[8]=s[9]=' ',s="abc2.3-A B"],s[j]!='\0'成立,继续循环,j++;[j=9]
s[j]=s[j+1];[s[j]=s[9]=s[10]='B',s="abc2.3-A BB"],s[j]!='\0'成立,继续循环,j++;[j=10]
s[j]=s[j+1];[s[j]=s[10]=s[11]='\0',s="abc2.3-A B"],s[j]!='\0'不成立,结束循环
总结:执行else时,所有字符串后面的字符向前移动一个字符,当前字符被冲掉
s[i]!='\0'成立,继续循环,[s[i]=s[3]='2'],s[i]是字母条件不成立else,s="abc.3-A B"
s[i]!='\0'成立,继续循环,[s[i]=s[3]='.'],s[i]是字母条件不成立else,s="abc3-A B"
s[i]!='\0'成立,继续循环,[s[i]=s[3]='3'],s[i]是字母条件不成立else,s="abc-A B"
s[i]!='\0'成立,继续循环,[s[i]=s[3]='-'],s[i]是字母条件不成立else,s="abcA B"
s[i]!='\0'成立,继续循环,[s[i]=s[3]='A'],s[i]是字母条件成立,i++;[i=4]
s[i]!='\0'成立,继续循环,[s[i]=s[4]=' '],s[i]是字母条件不成立else,s="abcAB"
s[i]!='\0'成立,继续循环,[s[i]=s[4]='B'],s[i]是字母条件成立,i++;[i=5]
s[i]!='\0'不成立,结束循环,[s[i]=s[5]='\0'=0]
输出字符串s为:abcAB
s[i]!='\0'成立,开始循环,[s[i]=s[0]='a'],s[i]是字母条件成立,i++;[i=1]
s[i]!='\0'成立,继续循环,[s[i]=s[1]='b'],s[i]是字母条件成立,i++;[i=2]
s[i]!='\0'成立,继续循环,[s[i]=s[2]='c'],s[i]是字母条件成立,i++;[i=3]
s[i]!='\0'成立,继续循环,[s[i]=s[3]='1']
s[i]是字母条件不成立else
j=i;[j=3]
s[j]=s[j+1];[s[j]=s[3]=s[3+1]=s[4]='2',s="abc22.3-A B"]
s[j]!='\0'成立,开始循环,j++;[j=4]
s[j]=s[j+1];[s[j]=s[4]=s[5]='.',s="abc2..3-A B"],s[j]!='\0'成立,继续循环,j++;[j=5]
s[j]=s[j+1];[s[j]=s[5]=s[6]='3',s="abc2.33-A B"],s[j]!='\0'成立,继续循环,j++;[j=6]
s[j]=s[j+1];[s[j]=s[6]=s[7]='-',s="abc2.3--A B"],s[j]!='\0'成立,继续循环,j++;[j=7]
s[j]=s[j+1];[s[j]=s[7]=s[8]='A',s="abc2.3-AA B"],s[j]!='\0'成立,继续循环,j++;[j=8]
s[j]=s[j+1];[s[j]=s[8]=s[9]=' ',s="abc2.3-A B"],s[j]!='\0'成立,继续循环,j++;[j=9]
s[j]=s[j+1];[s[j]=s[9]=s[10]='B',s="abc2.3-A BB"],s[j]!='\0'成立,继续循环,j++;[j=10]
s[j]=s[j+1];[s[j]=s[10]=s[11]='\0',s="abc2.3-A B"],s[j]!='\0'不成立,结束循环
总结:执行else时,所有字符串后面的字符向前移动一个字符,当前字符被冲掉
s[i]!='\0'成立,继续循环,[s[i]=s[3]='2'],s[i]是字母条件不成立else,s="abc.3-A B"
s[i]!='\0'成立,继续循环,[s[i]=s[3]='.'],s[i]是字母条件不成立else,s="abc3-A B"
s[i]!='\0'成立,继续循环,[s[i]=s[3]='3'],s[i]是字母条件不成立else,s="abc-A B"
s[i]!='\0'成立,继续循环,[s[i]=s[3]='-'],s[i]是字母条件不成立else,s="abcA B"
s[i]!='\0'成立,继续循环,[s[i]=s[3]='A'],s[i]是字母条件成立,i++;[i=4]
s[i]!='\0'成立,继续循环,[s[i]=s[4]=' '],s[i]是字母条件不成立else,s="abcAB"
s[i]!='\0'成立,继续循环,[s[i]=s[4]='B'],s[i]是字母条件成立,i++;[i=5]
s[i]!='\0'不成立,结束循环,[s[i]=s[5]='\0'=0]
输出字符串s为:abcAB
追问
我明白了!非常感谢!原来我在豆瓣下载的答案错了,看来要上机测试才能知道真相。请问你是有什么软件可以分析步骤,自动每行加注释么?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询