12、
13、b
14、
15、c當a為1時,表達式為1,不運算b與c。10設x=4,y=5i=++x==5
16、
17、++y==6x=5y=5i=1i=x++==5&&y++==6x=5y=5i=0判斷某年是否為閏年1)能被400整除2)能被4整除,不能被100整除year%400==0year%4==0&&year%100!=0(year%400==0)
18、
19、(
20、year%4==0&&year%100!=0)運算后,各變量的值:11條件運算符和條件表達式條件運算符:?:表達式的一般形式:表達式1?表達式2:表達式3如:max=(a>b)?a:b條件表達式流程圖說明:條件運算符僅優(yōu)先于賦值運算符。條件運算符的結(jié)合方向為“自右到左”。12【程序5.1】輸入一個字符,判別它是否大寫字母。如果是,將它轉(zhuǎn)換成小寫字母;如果不是,不轉(zhuǎn)換。main(){charch;scanf("%c",&ch);ch=(ch>='A'&&ch<='Z')?(ch+32):ch;printf("%c",ch);}131.邏輯“異或”運算可描
21、述為"axorb",其中a和b為參加運算的兩個操作數(shù),運算結(jié)果為當且僅當a、b兩個操作數(shù)中只有一個為真時才為真,其他情況下均為假。以下表達式中_____表達式可以正確表示邏輯“異或”運算。A.a
22、
23、bB.a&&bC.(a&&b)&&!(a
24、
25、b)D.(a
26、
27、b)&&!(a&&b)練習題:D142.若有聲明"inta=30,b=7;",則表達式"!a+a%b"的值是__________。3.已知有聲明“intx=1,y=2,z=3;”,則執(zhí)行語句“x>y?(z-=--x):(z+=++x);”后,變量x、y、z的值分別是__________。4.以下表示數(shù)學
28、式"a=b)&&!(b>=c)D.!(a>=b
29、
30、b>=c)15if語句if語句的三種形式:實現(xiàn)單分支選擇結(jié)構(gòu)的形式實現(xiàn)雙分支選擇結(jié)構(gòu)的形式實現(xiàn)多分支選擇的形式16if語句之單分支選擇結(jié)構(gòu)一般形式:if(表達式)語句說明:當表達式的結(jié)果為非0時,執(zhí)行后面的語句,否則不執(zhí)行。單分支選擇結(jié)構(gòu)流程圖17【5.2】將輸入的三個數(shù)按照從小到大的順序輸出main(){floata,b,c,t;scanf("%f%f%f",&a,&b,&c);if(a>b){t=a;a=b;b
31、=t;}/*a、b間的較小值存入a*/if(a>c){t=a;a=c;c=t;}/*a、c間的較小值存入a*/if(b>c){t=b;b=c;c=t;}printf("%5.2f,%5.2f,%5.2f",a,b,c);}18if語句之雙分支選擇結(jié)構(gòu)一般形式:if(表達式)語句1else語句2說明:當表達式的值為非0時,執(zhí)行語句1,否則執(zhí)行語句2。表達式語句1語句2?0=0雙分支選擇結(jié)構(gòu)流程圖19【5.3】顯示輸出從終端輸入的兩個整數(shù)中絕對值較大的main(){intx1,y1,x2,y2;scanf("%d,%d",&x1,&y1);if(x1<0)
32、x2=-x1;elsex2=x1;if(y1<0)y2=-y1;e