问题 单项选择题

有以下程序:
#include <iostream>
using namespace std;
int main ( )

char s1[10],s2[10];
char *p=s1,*q=s2;
cin>>s1>>s2;
while (*p ! =’ \0 ’ )
p++;
while (*q!=’\0’)
*p++=*q++;
*p=’\0’;
cout<<s1<<end1;
return 0;

A.abcd0ghij

B.abcd0ghij0

C.abcd

D.abcdghij

答案

参考答案:D

解析: 程序定义两个字符串指针p和q,并使指针分别指向字符串数组s1和s2。数组s1和s2通过输入的字符串赋初值。程序中第1个while语句,用来计算s1的长度,并把指针p移到数组s1的最后一个元素。第2个while语句,是将数组s2中的字符串合并到数组s1的后面。语句“*p’\0’;”,是合并后的字符串s1的结束标志。所以最后s1中的字符串为abcdghij。

单项选择题
单项选择题