有以下程序:void swap (char *x,char *y){char t; t=*x,*x=*y;*y=t;}main(){char* s1="abc",*s2="123"; swap(s1,s2); printf("%s,%s\n",

admin2009-01-15  40

问题 有以下程序:void swap (char *x,char *y){char t;    t=*x,*x=*y;*y=t;}main(){char* s1="abc",*s2="123";    swap(s1,s2); printf("%s,%s\n",s1,s2);}程序执行后的输出结果是(  )。

选项 A、123,abc
B、abc,123
C、1bc,a23
D、321,cba

答案4

解析 首先看swap()函数,函数中定义了一个临时字符变量t,然后将形参指针x所指内容存入t,再将形参指针y所指内容存入到x所指内容中,最后将临时变量t的内容存入到y所指内容中。所以该函数实现的是:交换两个字符指针所指向的内容。在主函数中,首先定义了两个字符指针s1和s2,同时用字符串"abc"和"123”来初始化它们,此时它们指向的是两个字符串的第1个字符。所以,在调用完swap()函数后,彼此交换了两个字符串的第1个字符,最后输出结果为1bc,a23。故应该选择C。
转载请注明原文地址:https://jikaoti.com/ti/ZOK0FFFM
0

最新回复(0)