问题
单项选择题
有以下程序:
#include<stdio.h>
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) abc, 123
B) 123, abc
C) 1bc, a23
D) 321, cba
答案
参考答案:C
解析: 本题考查的是指针的运用。首先看swap()函数,函数中定义了一个临时字符变量t,然后将形参指针x所指内容存入t,再将形参指针y所指内容存入到x所指内容中,最后将临时变量t的内容存入到y所指内容中。所以该函数实现的是:交换两个字符指针所指向的内容。在主函数中,首先定义了两个字符指针s1和s2,同时用字符串“abc”和“123”来初始化它们,此时它们指向的是两个字符串的第1个字符。所以,在调用完swap()函数后,彼此交换了两个字符串的第1个字符,最后输出结果为1bc,a23。故应该选择C)。