执行以下程序段的输出结果是什么?

char a[5]="123",b[7]="ABCDEF";
strcpy(b,a);
printf("%s",b);

执行以下程序段的输出结果是( ) 数组b中的内容为( )

因为strcpy拷贝包含'\0'的 ,'\0'是串结束符的标志
所以a[3]='\0'赋值给了b[3],而b[4]就没改变,仍是E,b[5]也就没变
因遇到'\0'结束输出
故输出结果为"123"

数组b中内容为"123'\0'EF'\0' "
其中b[6]与b[7]是空格
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-04-25
printf不在循环里,所以只会输出一个数
s在外层循环每次都会被赋值成1
所以只看外层的最后一次循环即可
外层当k值是2,4会有循环,而只有4的循环会影响输出
k的值是4,s的值是1,进入内层循环
s+=4;s+=5;,s变成10
输出就是10
第2个回答  2009-04-21
执行以下程序段的输出结果是( 123 ) 数组b中的内容为( 123 )
第3个回答  2009-04-21
result: 123
content in b: 123('\0')EF

因为strcpy拷贝包含'\0'的
char * __cdecl strcpy(char * dst, const char * src)
{
char * cp = dst;

while( *cp++ = *src++ )
; /* Copy src over dst */

return( dst );
}
第4个回答  2009-04-21
error
b