问题 单项选择题

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

单项选择题
单项选择题