有以下程序main(){ char str[]="xyz",*ps=str; while(*ps) ps++; for(ps--; ps-str>=0;
有以下程序main(){ char str[]="xyz",*ps=str; while(*ps) ps++; for(ps--; ps-str>=0; ps--) puts(ps);} 程序的運(yùn)行結(jié)果是A.yz B.z C.z D.x xyz yz yz xy xyz xyz
正確答案:B本題主要考查循環(huán)結(jié)構(gòu)和字符串的存儲(chǔ)結(jié)構(gòu)。在C語(yǔ)言中,為了方便確定字符串的長(zhǎng)度,編譯系統(tǒng)在字符串后增加了一個(gè)結(jié)束標(biāo)識(shí)‘\0’,即ASCII碼的0。在程序中,首先定義了一個(gè)字符型數(shù)組str,并賦初值,然后定義一個(gè)同類型的指針變量ps,并使ps指向字符數(shù)組str。在while循環(huán)中,循環(huán)結(jié)束的條件是*ps的值為0,由于循環(huán)開始前,指針變量ps是指向數(shù)組的第一個(gè)元素,即*ps等價(jià)于str[0],值為x,其ASCII碼值不為0,循環(huán)繼續(xù),使ps指向數(shù)組的第二個(gè)元素,很明顯,結(jié)果不為0,第三個(gè)元素也不為0,而第四
詞條內(nèi)容僅供參考,如果您需要解決具體問(wèn)題
(尤其在法律、醫(yī)學(xué)等領(lǐng)域),建議您咨詢相關(guān)領(lǐng)域?qū)I(yè)人士。