武侠q传菜刀:[c]下面程序的运行结果是??

来源:百度文库 编辑:神马品牌网 时间:2024/05/09 03:47:46
#include<stdio.h>
#include<string.h>
main()
{ char a[80]="AB",b[80]="LMNP";
int i=0;
strcat(a,b);
while(a[i++]!='\0')b[i]=a[i];
puts(b);
}

答案是LBLMNP帮我解释一下 循环结构那点不太明白 谢谢

在strcat(a,b)执行完成时,a里面是“ABLMNP”,b里面不变。在执行while循环时,根据优先关系应该首先执行i++,这样i就成了1,然后才比较a[i]!='\0',因此a里面的从第二个开始比较,然后赋给b,直到最后一个。因此b里面第一个仍然是原来的'L',从第二个开始替换成a里面的第二个,因此最后应该是LBLMNP。