首页 > 试题广场 >

以下程序的输出结果是( )

[单选题]
以下程序的输出结果是(   )

#include <string.h>
#include <stdio.h>
void main()
{
 char a[80] = "AB", b[80] = "LMNP", i=0;
 strcat(a, b);
 while (a[i] != '\0')
 {
  i++;
  b[i] = a[i];
 }
 puts(b);
}
  • LB
  • ABLMNP
  • AB
  • LBLMNP

首先审题可得:a = “AB”,b = “LMNP”;然后通过 stract(a, b) 函数,将字符串 b 连接到 a 的后面得:a = “ABLMNP”,易错点在于,在 while 循环内,先执行了 i++ 运算,i 的值变为了 1,再对 b 进行赋值;即第一次赋值操作为:b[1] = a[1];所以得出 b 的前两位字符为:”LB”,然后进行接下来的赋值操作;最终结果为:b = “LBLMNP”,所以得出答案为:D。


发表于 2018-12-12 00:42:30 回复(0)
更多回答
while(a[i] != '\0')
 {
  i++;
  b[i] = a[i];
 }
i 先加了再赋值。也就是从 i = 1 开始复制字符数组。
发表于 2017-08-01 17:35:37 回复(0)
strcat(a,b)的作用就是将字符数组b接在字符数组a后面产生的新字符数组赋给字符数组a,新的字符数组a=“ABLMNP”,然后在开始复制时,i++在前面,所以从索引等于1开始复制

编辑于 2018-03-20 22:33:18 回复(0)
strcat(a,b)表示将b字符串添加到a字符串后面,覆盖a字符串的"\n",并在结尾添加"\n"。
发表于 2017-09-09 21:37:58 回复(0)