首页 > 试题广场 >

以下程序的输出结果为( )。

[单选题]
以下程序的输出结果为( )。
main()
    char s1[40]="country",s2[20]="side";
    int i=0,j=0
    while(s1[i]!='/0')
         i++;
    while(s2[j]!='/0') 
        s1[i++]=s2[j++];
    s1[i]=0;
    printf("%s/n",s1);
}
  • side
  • country
  • sidetry
  • countryside
推荐
选D
第一个循环执行完后,s1[i]为'\0'
第二个循环的目的就是把s2的内容复制到s1的后面,把's1的\0'覆盖了
s1[i]=0就是在后面加个'\0',ASCII表中0对应的是空字符,也就是'\0',
printf("%d\n",(0=='\0')?1:0);  //输出1
编辑于 2019-11-22 14:09:03 回复(0)
选D。C语言中通过字符数组存放字符串,最后一个'\0'作为终止符放在末尾。
  • 第一个循环的目的是i自加到7
  • 第二个循环的目的是将s2字符的每个元素赋值给s1(从s1的'\0'位置开始)

 
发表于 2019-11-21 21:26:11 回复(0)
答案为D,题目中的程序就是将字符串s1和字符串s2拼接在一起,并输出
发表于 2019-11-21 19:12:59 回复(0)
d
发表于 2019-11-22 10:32:43 回复(0)