为什么选D啊 这是C语言程序选择题

[复制链接]
查看11 | 回复3 | 2011-8-21 04:53:10 | 显示全部楼层 |阅读模式
#include“stdio.h”#include“string.h”main(){chara[80]=“AB”,b[80]=“LMNP”;inti=0;strcat(a,b);while(a!=’\\0’)b=a;puts(b);}A)LBB)ABLMNPC)ABD)LBLMNP
回复

使用道具 举报

千问 | 2011-8-21 04:53:10 | 显示全部楼层
首先b[0]不会发生变化的。因为在while(a!=’\\0’)后i变为1,所以b的元素从1开始变化。a经过strcat(a,b);变为ABLMNP,所以除第一个外,其他的都赋值给b的相应的位置了。
回复

使用道具 举报

千问 | 2011-8-21 04:53:10 | 显示全部楼层
strcat(a,b);while(a!=’\\0’)b=a;这块是关键点strcat功能链接字符串执行后a是ABLMNP关键来了:while(a!=’\\0’)b=a;a先做a然后i再自加,b=a这个时候i等于1根据ABLMNP就是B:b数组LBNP下一次i=2b数组LBLP下一次i=3b数组LBLM下一次i=4b数组LBLPM.....
回复

使用道具 举报

千问 | 2011-8-21 04:53:10 | 显示全部楼层
问题出在while(a!=’\\0’)b=a;ai=1了b[1]=a[1]b[1]=B原来b中为LMNPLBNP下一次为LBLP依次结果为LBLMNP结果为D做程序得认真些!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行