有以下程序:    #include<string.h>    void f(char *s,char  *t)    {char k;    k=*s;  +s=*t;  *t=k;    S++;    t--;    if(*s)  f(s,t); 

admin2013-06-11  23

问题 有以下程序:    #include<string.h>    void f(char *s,char  *t)    {char k;    k=*s;  +s=*t;  *t=k;    S++;    t--;    if(*s)  f(s,t);    }    main()    {char.str[10]="abcdefg",*p;    p=str+strlen(str) /2+1;    f(p,p-2);    printf("%s\n",str);    }    程序运行后的输出结果是 ______。

选项 A、abcdefg
B、gfedcba
C、gbcdefa
D、abedcfg

答案B

解析 本程序的作是将字符串str倒序。语句“p=str+strlen(str)/2+1;”用于将指针变量p指向e字符所在的存储单元,p-2指向了c字符所在的存储单元,在函数f中将这两个存储单元的内容交换,并使得f函数中指向c字符的指针变量s加1。指向c字符的指针变量t减1,然后继续将s和t指向的存储单元的内容进行交换,直到s指向的存储单元的内容为空为止。所以本题程序输出的结果是字符串“abcdefg”的倒序形式“gfedcba”。
转载请注明原文地址:https://kaotiyun.com/show/yjJp777K
0

最新回复(0)