有以下程序: #include void f(char *s,char *t) {char k; k=*s; +s=*t;
有以下程序: #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); } 程序運行后的輸出結(jié)果是 ______。
A.a(chǎn)bcdefg
B.gfedcba
C.gbcdefa
D.a(chǎn)bedcfg
正確答案:B解析:本程序的作是將字符串str倒序。語句“p=str+strlen(str)/2+1;”用于將指針變量p指向e字符所在的存儲單元,p-2指向了c字符所在的存儲單元,在函數(shù)f中將這兩個存儲單元的內(nèi)容交換,并使得f函數(shù)中指向c字符的指針變量s加1。指向c字符的指針變量t減1,然后繼續(xù)將s和t指向的存儲單元的內(nèi)容進行交換,直到s指向的存儲單元的內(nèi)容為空為止。所以本題程序輸出的結(jié)果是字符串“abcdefg”的倒序形式“gfedcba”。
詞條內(nèi)容僅供參考,如果您需要解決具體問題
(尤其在法律、醫(yī)學(xué)等領(lǐng)域),建議您咨詢相關(guān)領(lǐng)域?qū)I(yè)人士。