| 查看: 2333 | 回復(fù): 11 | ||
時飛銀蟲 (小有名氣)
|
[求助]
c語言
|
|
|
1、main() {int i=1,j=2,k=3; if(i++==1&&(++j==3||k++==3)) printf("%d%d\n",i,j,k,); } 2、mian() {int y=10; while(y--);printf("y=%d\n",y); } 3、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); } 哪位大俠把這三個程序如何運行詳細(xì)說明一下?????謝謝。。 |
銀蟲 (小有名氣)
|
1.#inculd main() {int x=8; for(;x>0;x--) {if(x%3) {printf("%d,',x--);continue;} printf("%d,",--x); } } 該程序如何運行?每一個怎么出來的? 答案8,5,4,2 2.n=10;while(n);{n--;} 這個能構(gòu)成無限循環(huán)嗎?該在N=0時結(jié)束啊。。答案卻不是 。。為什么 3.for(i=0;i<4;i++) for(k=1;k<3;k++); printf("*"; 我認(rèn)為該輸出8個* 答案只有一個* 為什么??? 4.#inculd main() {char s[]={"012xy"};int i, n=0; for(i=0;s!=0;i++) \*我認(rèn)為i=0時就該結(jié)束了*\ if(s>'a'&&s<='z')n++; printf("%d\n",n); } 答案:2 為啥???? 請幫忙解決一下,當(dāng)然越詳細(xì)越好。。! 謝謝。! |
|
1.#inculd main() {int x=8; for(;x>0;x--) {if(x%3) {printf("%d,',x--);continue;} printf("%d,",--x); } } 該程序如何運行?每一個怎么出來的? 答案8,5,4,2 先x=8,判斷x%3=2,為真,輸出8,然后x值減1為7,然后做for循環(huán)的判斷再減1,x=6; 判斷x%3=0,為假,然后做for循環(huán)的判斷再減1,x=5; 判斷x%3=2,為真,輸出5,然后x值減1為4,然后做for循環(huán)的判斷再減1,x=3; 判斷x%3=0,為假,然后做for循環(huán)的判斷再減1,x=2; 判斷x%3=2,為真,輸出2,然后x值減1為1,然后做for循環(huán)的判斷再減0,x=3; for判斷x>0不成立,退出for循環(huán),執(zhí)行完畢。 2.mian() {int y=10; while(y--);printf("y=%d\n",y); } 循環(huán)結(jié)構(gòu)但是循環(huán)什么都不做,循環(huán)結(jié)束后輸出y的值,但因為是后--所以可不可以這樣理解y==1,y--.當(dāng)y==1時,依舊成立,y=0,0==1不成立,但是y--還要進(jìn)行,y=-1 3.for(i=0;i<4;i++) for(k=1;k<3;k++); printf("*"; 我認(rèn)為該輸出8個* 答案只有一個* 為什么??? 這個的原因是你在第二個for玄幻的后面加了“;”,循環(huán)結(jié)構(gòu)但是循環(huán)什么都不做,所以只輸出一個 *。 4.#inculd main() {char s[]={"012xy"};int i, n=0; for(i=0;s!=0;i++) \*我認(rèn)為i=0時就該結(jié)束了*\ if(s>'a'&&s<='z')n++; printf("%d\n",n); } 答案:2 為啥???? 字符串的結(jié)束符是“\0”,計算機存儲是按ASCII碼存的,0的ASCII碼是30h,不是0的,要想按你說的,你可將其改為 #include void main() { char s[]="012xy"; int i,n=0; for(i=0;s!='\0';i++) //我認(rèn)為i=0時就該結(jié)束了 if((s>'a')&&(s<='z')) n++; printf("%d\n",n); } |
榮譽版主 (文壇精英)
珊瑚小美-----小元家的九妹
|
1、main() {int i=1,j=2,k=3; if(i++==1&&(++j==3||k++==3)) printf("%d%d\n",i,j,k,); } 解釋:i++后加所以先運算在相加即i==1成立返回1,i+1=2 ++j前加,先加為3,3==3返回1,因為或有1則為1所以后面不用運算即K=3 所以結(jié)果2,3,3 2.2、mian() {int y=10; while(y--);printf("y=%d\n",y); } 循環(huán)結(jié)構(gòu)但是循環(huán)什么都不做,循環(huán)結(jié)束后輸出y的值,但因為是后--所以可不可以這樣理解y==1,y--.當(dāng)y==1時,依舊成立,y=0,0==1不成立,但是y--還要進(jìn)行,y=-1 3.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); } 這個是多條case通用相同的語句相當(dāng)于下面的: main() {int k=5,n=0; while(k>0) {switch(k) {default:break; case 1: n+=k; case 2:n+=k; case 3:n+=k; }k--; }printf("%d\n",n); } 所以最后3+2+1=7n=7 |

新蟲 (初入文壇)
|
1.&&和||運算符都是短路判斷:&&左邊的表達(dá)式為假的情況下不會判斷右邊的表達(dá)式,||左邊的表達(dá)式為真的情況下不會判斷右邊的表達(dá)式。i++==1:后綴運算符使得i先進(jìn)行判斷再加1,此時為真;然后進(jìn)行判斷(++j==3||k++==3):前綴表達(dá)式使j先加1再使用它的值進(jìn)行判斷,此時++j==3為真,那么表達(dá)式(++j==3||k++==3)一定為真,無需判斷k++==3,所以結(jié)果為2 3 3。 2.while語句后面的是空語句,什么也不做;循環(huán)停止的點是(y--)等于0的時候,在后面打印的時候,此時y的值已經(jīng)減1了,所以最終打印的值為-1。 3.樓主應(yīng)該能明白循環(huán)過程中只有當(dāng)k等于3、2和1的時候會改變n的值:當(dāng)k=3的時候,n=0+3=3;k=2時,n=3+2=5;注意當(dāng)k=1時,此時n改變兩次,在case 1:處,n=5+1=6,但是由于語句沒有break語句,后面的語句還會繼續(xù)執(zhí)行,所以,在case 3:下的語句執(zhí)行為n=6+1=7。所以最終的結(jié)果為7. |
銅蟲 (初入文壇)
|
第一個程序:首先定義了三個有符號的整型變量分別為-i-j-k并進(jìn)行了初始化如i=1等,下一句是判斷語句,其中++j==3表示j先是加上1在與3進(jìn)行比較,若相等則此語句為真,k++==3則表示先將k與3進(jìn)行比較,若k等于3則此語句為真,而||是邏輯或運算符號,只要符號兩邊的語句有一句是真則整條語句(++j==3||k++==3)為真,&&是邏輯與運算符號,只要符號兩邊有一個是假則整個語句為假,很顯然i++==1為真,而++j==3為真。即(++j==3||k++==3)為真,所以i++==1&&(++j==3||k++==3)為真,if語句是括號里面的語句為真的話,就執(zhí)行最近的下面語句(包括復(fù)合語句) 執(zhí)行printf();語句,此語句是用于輸出的功能,printf("%d%d\n",i,j,k,);表示輸出當(dāng)前i,j的值因為只有兩個%d,因而無法輸出此時i==1;j==3; |
木蟲 (著名寫手)

銀蟲 (小有名氣)
木蟲 (著名寫手)

木蟲 (著名寫手)

| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 304求調(diào)劑 +5 | 曼殊2266 2026-03-27 | 5/250 |
|
|---|---|---|---|---|
|
[考研] 340求調(diào)劑 +5 | jhx777 2026-03-27 | 5/250 |
|
|
[考研] 295材料工程專碩求調(diào)劑 +6 | 1428151015 2026-03-27 | 6/300 |
|
|
[考研] 求調(diào)劑 +8 | 張zz111 2026-03-27 | 9/450 |
|
|
[考研] 285求調(diào)劑 +4 | AZMK 2026-03-27 | 7/350 |
|
|
[考研] 一志愿南師大0703化學(xué) 275求調(diào)劑 +4 | Ripcord上岸 2026-03-27 | 4/200 |
|
|
[考研] 283求調(diào)劑(080500) +4 | A child 2026-03-27 | 4/200 |
|
|
[考研] 269專碩求調(diào)劑 +10 | 金恩貝 2026-03-21 | 10/500 |
|
|
[考研] 0703一志愿9,初試成績:338,四六級已過,有科研經(jīng)歷,求調(diào)劑! +3 | Zuhui0306 2026-03-25 | 3/150 |
|
|
[考研] 調(diào)劑 +3 | 李嘉圖·S·路 2026-03-27 | 3/150 |
|
|
[碩博家園] 招收生物學(xué)/細(xì)胞生物學(xué)調(diào)劑 +3 | IceGuo 2026-03-26 | 4/200 |
|
|
[考研] 求調(diào)劑 +5 | 蘆lty 2026-03-25 | 6/300 |
|
|
[考研] 329求調(diào)劑 +5 | 1() 2026-03-22 | 5/250 |
|
|
[考研] 生物學(xué)學(xué)碩,一志愿湖南大學(xué),初試成績338 +4 | YYYYYNNNNN 2026-03-26 | 4/200 |
|
|
[考研] 340求調(diào)劑 +3 | Amber00 2026-03-26 | 3/150 |
|
|
[考研] 材料考研求調(diào)劑 +3 | Dendel 2026-03-23 | 6/300 |
|
|
[考研] 網(wǎng)絡(luò)空間安全0839招調(diào)劑 +4 | w320357296 2026-03-25 | 6/300 |
|
|
[考研] 284求調(diào)劑 +15 | Zhao anqi 2026-03-22 | 15/750 |
|
|
[考研] B區(qū)考研調(diào)劑 +4 | yqdszhdap- 2026-03-22 | 5/250 |
|
|
[考研]
|
13659058978 2026-03-24 | 4/200 |
|