问题 单项选择题

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

单项选择题
问答题