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