有以下程序:main(){int k=5,n=0;while(k>0){switch(k){default:break;case 1:n+=k;case
有以下程序: main() {int k=5,n=0; while(k>0) {switch(k) {default:break; case 1:n+=k; case 2: case 3:n+=k; } k--; } printf("%d\n",n); } 程序運(yùn)行后的輸出結(jié)果是( )。
A.0
B.4
C.6
D.7
正確答案:D解析:在switch語(yǔ)句中,若case語(yǔ)句后沒(méi)有break語(yǔ)句,則執(zhí)行完本層case后會(huì)繼續(xù)執(zhí)行后面case中的操作。k的初值為5,while條件成立,進(jìn)入switch(5),執(zhí)行default語(yǔ)句,退出switch,執(zhí)行k--后得4,再進(jìn)入while循環(huán),執(zhí)行switch(4),退出switch,再執(zhí)行k--后得3,繼續(xù)while循環(huán),執(zhí)行switch(3),n=n+k=3,再執(zhí)行k--后得2,進(jìn)入while循環(huán),執(zhí)行case 2,再執(zhí)行n=n+k=5,然后執(zhí)行k--后得1,最后一次進(jìn)入while循環(huán)
詞條內(nèi)容僅供參考,如果您需要解決具體問(wèn)題
(尤其在法律、醫(yī)學(xué)等領(lǐng)域),建議您咨詢相關(guān)領(lǐng)域?qū)I(yè)人士。