请问各位学霸这道c语言题该怎么做?多谢
5个回答
展开全部
scanf语句,str数组存放'a','b','c','d',0
i=strlen(str);//i=4
i>0成立,开始循环:
str[2*i]=str[i];//str[2*4]=str[4]=0, str:[abcd0xxx0x...]
str[2*i-1]='*'; // str[2*4-1]=str[7]='*', str:[abcd0xx*0x...]
i--; //i=3
i>0成立,继续循环:
str[2*i]=str[i];//str[2*3]=str[6]=str[3]='d', str:[abcd0xd*0x...]
str[2*i-1]='*'; // str[2*3-1]=str[5]='*', str:[abcd0*d*0x...]
i--; //i=2
i>0成立,继续循环:
str[2*i]=str[i];//str[2*2]=str[4]=str[2]='c', str:[abcdc*d*0x...]
str[2*i-1]='*'; //str[2*2-1]=str[3]='*', str:[abc*c*d*0x...]
i--; //i=1
i>0成立,继续循环:
str[2*i]=str[i];//str[2*1]=str[2]=str[1]='b', str:[abb*c*d*0x...]
str[2*i-1]='*'; //str[2*1-1]=str[1]='*', str:[a*b*c*d*0x...]
i--; //i=0
i>0不成立,结束循环
printf输出: a*b*c*d*
return 0; 结束运行返回0
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
输出的结果是:
a*b*c*d*
因为它的循环执行4轮:
str[8]=str[4]='\0'; str[7]='*';
str[6]=str[4]='d'; str[5]='*';
str[4]=str[4]='c'; str[3]='*';
str[2]=str[4]='b'; str[1]='*';
a*b*c*d*
因为它的循环执行4轮:
str[8]=str[4]='\0'; str[7]='*';
str[6]=str[4]='d'; str[5]='*';
str[4]=str[4]='c'; str[3]='*';
str[2]=str[4]='b'; str[1]='*';
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
照着程序逐行分析不就行了,a*b*c*d*
追问
你好,能具体帮忙分析一下吗?谢谢
追答
输入abcd进了数组的str0str1str2str3,检测数组长度为4,i=4,str4的值给str8,*给str7,str3给str6,*给str5,str2给str4,*给str3,str1给str2,*给str1,str0没变为a
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
输出结果是:a*b*c*d*
追问
你好,请问为什么呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询