问题 单项选择题

有以下程序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

答案

参考答案:C

解析:此题考核的知识点是指针变量值的交换。C 语言中,字符串常量在内存中是以字符数组的形式进行 存放的,因此字符指针 x 和 y 指向的是各字符串的首地址,也就是字符串第一个字符的地址,则*x 与*y 交 换的是字符串的第一个字符,即字符“a”与“1”的交换,而字符串中其它字符保持不变,所以答案选 C。

解答题
单项选择题