精品偷拍一区二区三区,亚洲精品永久 码,亚洲综合日韩精品欧美国产,亚洲国产日韩a在线亚洲

  • <center id="usuqs"></center>
  • 
    
  • thank you~

    thank you~
    前兩個(gè)題是一樣的,
    第一個(gè):以下程序運(yùn)行后的輸出結(jié)果是?
    {int=1,j=2,k=3;
    if(i++==1&&(++j==3||k++==3))
    printf("%d%d%d\n,i,j,k);
    }
    結(jié)果是2 3 3,為什么?
    第二個(gè):
    #include
    main()
    {int a=1,b=2,c=3,d=0;
    if(a==1&&b++==2)
    if(b!=2||c--!=2)
    printf("%d,%d,%d\n",a,b,c);
    else printf("%d,%d,%d\n",a,b,c);
    else printf("%d,%d,%d\n",a,b,c);
    }
    第三個(gè):
    以下程序執(zhí)行后輸出結(jié)果是3,為什么?
    main()
    { int a=5,b=4,c=3,d=2;
    if(a>b>c)
    printf("%d\n",d);
    else if((c-1>=d)==1)
    printf("%d\n",d+1);
    else
    printf("%d\n",d+2);
    }
    其他人氣:896 ℃時(shí)間:2020-04-06 11:02:39
    優(yōu)質(zhì)解答
    (1)講下 && 運(yùn)算,比如表達(dá)式:(條件1)&&(條件2);先執(zhí)行判斷條件 1是否成立,再執(zhí)行判斷條件2是否成立 ,若1 和2 都為“真”,則整個(gè)表達(dá)式的值為1; 若執(zhí)行判斷條件1的時(shí)候,得到條件1為 “假" 的結(jié)果,則跳過條件2的判斷 ,直接返回0 .
    (2)對(duì)于 || 運(yùn)算,(條件1)&&(條件2);執(zhí)行判斷條件 1是否成立,再執(zhí)行判斷條件2是否成立 ,若1 和2 都為“假”,則整個(gè)表達(dá)式的值為0; 若執(zhí)行判斷條件1的時(shí)候,得到條件1為 “真" 的結(jié)果,則跳過條件2的判斷 ,直接返回1 .
    (3)順便說下運(yùn)算符的優(yōu)先級(jí)由大到小的順序?yàn)椋汉笾?+,前置++,!=,&&,||
    第一題:
    {
    int i=1,j=2,k=3; (你這寫的時(shí)候是不是掉了一個(gè) i )
    if(i++==1&&(++j==3||k++==3))
    printf("%d%d%d\n,i,j,k);
    }
    你if 語句里面的 條件1 是 i++==1 ,先執(zhí)行 i ++,i++的值為1,i自加1 變?yōu)? ,正確,再判斷(++j==3||k++==3) ,同理先判斷 ++j==3 是否成立,j自加1變?yōu)?,顯然++j 值為3是正確的,所以跳過 k++==3的判斷,得到(++j==3||k++==3) 的值為1,因此沒有執(zhí)行k++,k的值不變.
    第二題
    {int a=1,b=2,c=3,d=0;
    if(a==1&&b++==2)
    if(b!=2||c--!=2)
    printf("%d,%d,%d\n",a,b,c);
    else printf("%d,%d,%d\n",a,b,c);
    else printf("%d,%d,%d\n",a,b,c);
    }
    你 if,else語句的縮進(jìn)不合理,導(dǎo)致你程序難以讀懂,可將其改為:
    if(a==1&&b++==2)
    if(b!=2||c--!=2) printf("%d,%d,%d\n",a,b,c);
    else printf("%d,%d,%d\n",a,b,c);
    else printf("%d,%d,%d\n",a,b,c);
    理解清楚你的else和if的匹配,哪個(gè)if 和哪個(gè)else 匹配要搞清楚,然后按照上面講解的 && ,++,- -,!= 運(yùn)算法則自己慢慢理解
    第三題,
    說一下 if(a>b>c)
    執(zhí)行 a>b>c時(shí),先 判斷 a>b是否成立,顯然成立,返回值1,再判斷a>b返回的值是否大于c ,顯然1 是小于c 的,最終 表達(dá)式 a>b>c 的值 為0 ; 其它部分參考 第一題和第二題 的講解
    !謝謝你的回答啊,別的都挺明白的。但是我第二題的c的值還是不明白。b!=2只為0,c--!=2值為1,它倆或?yàn)?,然后輸出c的時(shí)候就不是跳過了,c--是3,那c不應(yīng)該是2了嗎?最終結(jié)果不應(yīng)該是2嗎?#include main(){int a=1,b=2,c=3,d=0;if(a==1&&b++==2)if(b!=2||c--!=2)printf("%d,%d,%d\n",a,b,c);else printf("%d,%d,%d\n",a,b,c);else printf("%d,%d,%d\n",a,b,c);}先來看 第一個(gè) if 里面的判斷語句 :(a==1&&b++==2),先判斷 a==1 嗎? 顯然是等于的,此不能確定這個(gè)表達(dá)式的值,再判斷 b++==2 嗎? b++ 的值是為2 的,也正確,故表達(dá)式(a==1&&b++==2)的值為1,由于上面 b++了,以后 b 的值變?yōu)?。再來看 第二個(gè) if 里面的判斷:(b!=2||c--!=2), 先判斷 b!=2 嗎? 顯然 b 是不等于2的,返回1,因?yàn)樯厦嬗幸粋€(gè) b++,|| 運(yùn)算符后面的 c--!=2 就不用執(zhí)行了,直接跳過!
    我來回答
    類似推薦
    請使用1024x768 IE6.0或更高版本瀏覽器瀏覽本站點(diǎn),以保證最佳閱讀效果。本頁提供作業(yè)小助手,一起搜作業(yè)以及作業(yè)好幫手最新版!
    版權(quán)所有 CopyRight © 2012-2024 作業(yè)小助手 All Rights Reserved. 手機(jī)版