有以下程序 #include int fun(char s[]) { int n=O; whil
有以下程序 #include <stdio.h> int fun(char s[]) { int n=O; while(*s<='9'&&*s>='0') { n=10*n+*s-'0'; s++; } return (n); } main() { char s[10]={ '6', '1', '*', '4', '*', '9', '*', '0', '*'}; printf("%d\n",fun(s)); }
A.9
B.61490
C.61
D.5
正確答案:C解析:題目fun()函數(shù)中while循環(huán)的意思是:判斷s所指內(nèi)容是否為數(shù)字字符,如果是數(shù)字字符,則計(jì)算表達(dá)式11=10*n+*s-'0';。其中。s-'0'的作用是將相應(yīng)的數(shù)字字符轉(zhuǎn)換為數(shù)值,例如字符'8'減去字符'0'后,得到的結(jié)果就是數(shù)值8了。n=10*n+的作用是將累計(jì)變量n中原來內(nèi)容乘以10,然后再加上剛轉(zhuǎn)換的數(shù)字字符的數(shù)值,例如原來n的值為1,*s現(xiàn)在的內(nèi)容為'2',那么執(zhí)行了n=10*n+*s-'0,;語句后,n的值變?yōu)?2,如果接下來再來一個(gè)'8'字符,執(zhí)行n=1
詞條內(nèi)容僅供參考,如果您需要解決具體問題
(尤其在法律、醫(yī)學(xué)等領(lǐng)域),建議您咨詢相關(guān)領(lǐng)域?qū)I(yè)人士。