单选题
下面程序的输出结果是()。
下面程序的输出结果是()。
#include
#include
main()
{ char *p1="abc",*p2="ABC",str[50]= "xyz";
strcpy(str+2,strcat(p1,p2));
printf("%s\n",str);}
A
xyzabcABC
B
zabcABC
C
xyabcABC
D
yzabcABC
答案解析
正确答案:C
解析:
strcpy()是复制字符串.
strcat()是把两个字符串连接起来.
str+2,这个是把数组当成指针用.str指向的是数组里的第一个元素,str+2指向数组里第三个元素,也就是字母z.C/C++里的数组跟指针很相似的
strcpy(str+2,strcat(p1,p2));
这整句的意思就是:先把p1和p2连起来,得到abcABC,然后把这个字符串复制到str+2所指向的位置.所以结果是xyabcABC.
strcat()是把两个字符串连接起来.
str+2,这个是把数组当成指针用.str指向的是数组里的第一个元素,str+2指向数组里第三个元素,也就是字母z.C/C++里的数组跟指针很相似的
strcpy(str+2,strcat(p1,p2));
这整句的意思就是:先把p1和p2连起来,得到abcABC,然后把这个字符串复制到str+2所指向的位置.所以结果是xyabcABC.
