有以下程序#inc1udemain(){char*s={"ABC"}; do {printf("%d",*s%10);s++; }while(*s);
有以下程序 #inc1ude<stdio.h> main() { char*s={"ABC"}; do { printf("%d",*s%10); s++; } while(*s); } 注意字母A的ASCII碼值為65。程序運(yùn)行后的輸出結(jié)果是______。
A.5670
B.656667
C.567
D.ABC
正確答案:C解析:本題考查的是do-while語(yǔ)句的使用,do-while執(zhí)行的過(guò)程是當(dāng)while后面—對(duì)括號(hào)中表達(dá)式的值為非0時(shí),轉(zhuǎn)去執(zhí)行循環(huán)體,當(dāng)值為0時(shí),退出循環(huán)。本題定義了—個(gè)指針變量s,并使得s指向字符串"ABC",的首地址,即把字符A的地址賦給s,因?yàn)閐o-while語(yǔ)句是先執(zhí)行循環(huán)體再進(jìn)行循環(huán)條件的判斷,因此先執(zhí)行printf語(yǔ)句,“s%10”是s對(duì)10的取模運(yùn)算,第—字符A的ASCII碼為65,故“65%10”取模運(yùn)算結(jié)果為5,因此輸出5,接著執(zhí)行s++,s指向字符串的下—個(gè)字符,當(dāng)字符串中字符
詞條內(nèi)容僅供參考,如果您需要解決具體問題
(尤其在法律、醫(yī)學(xué)等領(lǐng)域),建議您咨詢相關(guān)領(lǐng)域?qū)I(yè)人士。