下面程序的输出结果是 #include #include main() { char *p1="abc",*p2="ABC",str[50]= "xyz"; strcpy(str+2,strcat(p1,p2)); printf("%s\n"

admin2010-12-10  30

问题 下面程序的输出结果是
#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()函数,该函数的调用方式是:strcpy(字符数组, 字符串),其中"字符串"可以是字符串常量,也可以是字符数组。函数的功能是:将"字符串"完整地复制到"字符数组"中,字符数组中原有的内容被覆盖。
使用该函数时注意:①字符数组必须定义得足够大,以便容纳复制过来的字符串。复制时,连同结束标志’\0’一起复制;②不能用赋值运算符"="将一个字符串直接赋值给一个字符数组,只能用strcpy( )函数处理。
另外,本题还考查连接字符串的strcat()函数,其调用方式是:strcat(字符数组, 字符串)。
功能是把"字符串"连接到"字符数组"中的字符串尾端,并存储于"字符数组"中。"字符数组"中原来的结束标志,被"字符串"的第一个字符覆盖,而"字符串"在操作中未被修改。
使用该函数时注意:①由于没有边界检查,编程者要注意保证"字符数组"定义得足够大,以便容纳连接后的目标字符串;否则,会因长度不够而产生问题;②连接前两个字符串都有结束标志’\0’,连接后"字符数组"中存储的字符串的结束标志’\0’被舍弃,只在目标串的最后保留一个’\0’。
转载请注明原文地址:https://jikaoti.com/ti/ggB0FFFM
0

最新回复(0)