版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、程序設計中有時需要根據(jù)條件來選擇不同的程序程序設計中有時需要根據(jù)條件來選擇不同的程序進行處理,稱之為分支結構。進行處理,稱之為分支結構。本章將介紹分支結構程序設計的基本方法和本章將介紹分支結構程序設計的基本方法和C語語言的運算符,并分析言的運算符,并分析“學生信息管理系統(tǒng)學生信息管理系統(tǒng)”中中 菜單選菜單選擇和系統(tǒng)功能調用的實現(xiàn)。擇和系統(tǒng)功能調用的實現(xiàn)。3.1 關系運算符關系運算符及其表達式及其表達式3.2 邏輯運算符邏輯運算符及其表達式及其表達式3.3 if語句語句3.3.1 單分支條件語句單分支條件語句3.3.2 雙分支條件語句雙分支條件語句3.3.3 多分支條件語句多分支條件語句3.3.
2、4 if語句的嵌套語句的嵌套3.4 switch語句語句3.5 運算符及其表達式運算符及其表達式3.6 案例分析與實現(xiàn)案例分析與實現(xiàn)本章內容本章內容【學習目標學習目標】掌握分支結構的基本概念掌握分支結構的基本概念掌握關系運算和關系表達式掌握關系運算和關系表達式掌握邏輯運算和邏輯表達式掌握邏輯運算和邏輯表達式掌握掌握if語句語句的基本形式和使用方法的基本形式和使用方法掌握掌握switch語句語句的基本形式和使用方法的基本形式和使用方法了解了解C語言的各種運算符及表達式語言的各種運算符及表達式編寫分支結構程序時,首先要進行條件判斷,根編寫分支結構程序時,首先要進行條件判斷,根據(jù)判斷結果來決定執(zhí)行哪
3、些操作。據(jù)判斷結果來決定執(zhí)行哪些操作。那么在那么在C C語言中如何描述一個判斷條件呢?語言中如何描述一個判斷條件呢?這就需要用到關系運算符。這就需要用到關系運算符。1. 關系關系運算符:對兩個表達式進行比較,返回一個真運算符:對兩個表達式進行比較,返回一個真/假假值。值。C語言提供語言提供6個關系運算符:個關系運算符: (大于)(大于) = (大于或等于)(大于或等于) (小于)(小于)=(小于或等于)(小于或等于) = (等于)(等于) !=(不等于)(不等于)例如:例如:a=、=、!=、=都是一個完整的運算符,都是一個完整的運算符,中間不能有空格中間不能有空格,而且,而且前前3個運算符中字
4、符的順序不能顛倒。個運算符中字符的順序不能顛倒。例如:例如:a=b不能寫成不能寫成a=b,也不能寫成,也不能寫成a=1、(a+2)(c+d) 其值只有兩種可能:其值只有兩種可能:“真真”-用數(shù)值用數(shù)值“1”1”表示表示“假假”-用數(shù)值用數(shù)值“0”0”表示表示【例例3-13-1】寫出下面程序的運行結果。寫出下面程序的運行結果。#include void main()int a=3,b=2,c;if(ab);printf(c=%dn,c);程序運行結果如下:程序運行結果如下:a大于大于bc=1有些情況下,只用有些情況下,只用關系表達式并不能完整地描述一個關系表達式并不能完整地描述一個判斷判斷條件條
5、件,對于比較復雜的條件還需要用到邏輯運算符對于比較復雜的條件還需要用到邏輯運算符。1 邏輯運算符邏輯運算符C C語言中,邏輯運算符有三個:語言中,邏輯運算符有三個:邏輯與邏輯與(&)(&)、邏輯或、邏輯或(|)(|)、邏輯非、邏輯非(!)(!)例如例如,判斷變量,判斷變量choice的值是否落在區(qū)間的值是否落在區(qū)間1,12內,表內,表示方法如下:示方法如下:if(choice=1 & choice8 & 48 & 412 結果為假。結果為假。邏輯或邏輯或(|):運算符兩側的操作數(shù)只要有一個為真,結果:運算符兩側的操作數(shù)只要有一個為真,結果就為真。例如:就
6、為真。例如:108 | 412 結果為真。結果為真。1012 結果為假。結果為假。邏輯非邏輯非(!):當運算符右側的操作數(shù)為真時,結果為假。:當運算符右側的操作數(shù)為真時,結果為假。例如:例如:!(412) 結果為真。結果為真。 !(108) 結果為假。結果為假。2. 邏輯表達式邏輯表達式如果如果表達式中的主要運算符是邏輯運算符表達式中的主要運算符是邏輯運算符,則該表,則該表達式稱為邏輯表達式。達式稱為邏輯表達式。例如:例如:choice=1 & choice=12、a | b、!x邏輯表達式的值也只有兩種可能:邏輯表達式的值也只有兩種可能:“真真”(用用“1”表示表示)“假假”(用用“
7、0”表示表示)。邏輯運算符通常用來連接關系表達式,但也可以邏輯運算符通常用來連接關系表達式,但也可以連接整型、字符型等類型的數(shù)據(jù)。連接整型、字符型等類型的數(shù)據(jù)。例如:例如:8 & -2。該表達式中,。該表達式中,“&”兩側的整兩側的整數(shù)到底表示數(shù)到底表示“真真”還是表示還是表示“假假”呢?呢?C語言規(guī)定:語言規(guī)定:數(shù)值表達式的值數(shù)值表達式的值“非非0”即即“真真”,用用“0”表示表示“假假”。這樣這樣8和和-2都表示都表示“真真”,8 & -2的值為的值為1。!0的的值也為值也為1。特殊說明特殊說明1 在在“&”表達式中,表達式中,如果如果“&”左端的計
8、算結果為左端的計算結果為0,則右端便不再計算,則右端便不再計算。例如:例如:int a=0,b=10,c;c=(a & (b=100);printf(c=%d,b=%dn,c,b);2 在在“|”表達式中,表達式中,如果如果“|”左端的計算結果為左端的計算結果為1,則右端便不再計算則右端便不再計算。例如:例如:int a=1,b=10,c;c=(a|(b=100);printf(c=%d,b=%dn,c,b);3.3 if3.3 if語句語句ifif語句有三種形式:語句有三種形式:單分支條件語句、單分支條件語句、雙分支條件語句、雙分支條件語句、多分支條件語句多分支條件語句。3.3.1
9、3.3.1 單分支條件語句單分支條件語句語法格式如下:語法格式如下:if (if (條件條件e)e) 語句語句S S;【說明說明】(1) if后面的條件一般為關系表達式或邏輯表達式,后面的條件一般為關系表達式或邏輯表達式,必須用必須用圓括號圓括號括起來。括起來。(2) 語句語句S是一條簡單語句或復合語句。是一條簡單語句或復合語句。簡單語句是以分號簡單語句是以分號(;)結尾的一條語句。結尾的一條語句。在在C語言中,單獨一個分號語言中,單獨一個分號(;)也是一條簡單語句,表也是一條簡單語句,表示什么都不做,稱為示什么都不做,稱為“空語句空語句”。復合語句是以花括號復合語句是以花括號 括起來的若干條
10、語句,表示括起來的若干條語句,表示滿足條件時需要執(zhí)行花括號滿足條件時需要執(zhí)行花括號 內的所有語句。內的所有語句?!纠?-43-4】從鍵盤輸入兩個整數(shù)從鍵盤輸入兩個整數(shù)x x和和y y,求這兩個數(shù)的最大值。,求這兩個數(shù)的最大值。#include #include void main()void main() int x, y, max ; int x, y, max ; printf(printf(請輸入兩個整數(shù)請輸入兩個整數(shù):);:);scanf(%d%d,&x,&y); scanf(%d%d,&x,&y); max=x; max=x; if(maxy)if(
11、maxy)max=y;max=y;printf(max=%dn,max);printf(max=%dn,max); ifif語句如果寫成:語句如果寫成:if(xy) if(xy) ;【例例3-5】從鍵盤輸入從鍵盤輸入3個整數(shù),求這個整數(shù),求這3個數(shù)的最大值。個數(shù)的最大值。#include void main()int x, y, z, max ; printf(請輸入請輸入3個整數(shù)個整數(shù):);scanf(%d%d%d,&x,&y,&z);max=x; if(maxy)max=y;if(maxz)max=z;printf(max=%dn,max);【例【例3-63-6】根
12、據(jù)以下分段函數(shù)編寫程序,輸入一】根據(jù)以下分段函數(shù)編寫程序,輸入一個個x x值,輸出對應的值,輸出對應的y y值。值。#include #include void main()void main() intint x,yx,y; ;scanfscanf(%(%d,&xd,&x););if(x0)if(x0)if(x0)y=1;y=1;printfprintf(x=%(x=%d,yd,y=%dn,=%dn,x,yx,y); ); )0(1)0(0)0(1xxxy如果將如果將if語句中的語句中的if(x=0)寫成寫成if(x=0)?因為因為“=”是關系運算符,是關系運算符,x=0是一
13、個關系表達是一個關系表達式,當式,當x的值是的值是0時,關系表達式的值為時,關系表達式的值為“真真”,否,否則,關系表達式的值為則,關系表達式的值為“假假”。而而“=”在在C語言中被稱為賦值運算符,語言中被稱為賦值運算符,x=0是一是一個賦值表達式,表示將個賦值表達式,表示將0賦給變量賦給變量x,賦值表達式的,賦值表達式的值為變量值為變量x的值的值(即即0)。這樣在這樣在if(x=0) y=0;語句中,條件永遠為假,語句語句中,條件永遠為假,語句y=0;不可能被執(zhí)行。不可能被執(zhí)行。3.4.2 3.4.2 雙分支條件語句雙分支條件語句語法格式如下:語法格式如下:if (if (條件條件e)e)
14、語句語句S1S1;elseelse 語句語句S2S2;【例例3-73-7】從鍵盤輸入兩個整數(shù)從鍵盤輸入兩個整數(shù)x x 和和y y,求這,求這兩個數(shù)的最大值。兩個數(shù)的最大值。#include #include void main()void main() int x, y, max; int x, y, max; printf(printf(請輸入兩個整數(shù)請輸入兩個整數(shù):);:);scanf(%d%d,&x,&y);scanf(%d%d,&x,&y);if(xy)if(xy)max=y;max=y;elseelsemax=x;max=x;printf(max=%d
15、n,max); printf(max=%dn,max); 【例例3-83-8】從鍵盤輸入一個整數(shù),當該數(shù)大于或等于從鍵盤輸入一個整數(shù),當該數(shù)大于或等于0 0時,時,輸出它的平方根,否則,顯示輸入數(shù)據(jù)不正確。輸出它的平方根,否則,顯示輸入數(shù)據(jù)不正確。 #include #include void main()int x;double y;scanf(%d,&x);if(x=0)y=sqrt(x);printf(%lfn,y);elseprintf(輸入數(shù)據(jù)不正確輸入數(shù)據(jù)不正確!n); ifif下面的花括號中包含下面的花括號中包含兩條語句,他們組成了兩條語句,他們組成了一條復合語句,表示當
16、一條復合語句,表示當條件成立時需要執(zhí)行花條件成立時需要執(zhí)行花括號中的所有語句。括號中的所有語句。 此時,如果省略花括號,此時,如果省略花括號,則會出現(xiàn)語法錯誤。則會出現(xiàn)語法錯誤。【例例3-93-9】從鍵盤輸入一年份,判斷該年是否為閏年。從鍵盤輸入一年份,判斷該年是否為閏年。判斷閏年的條件是符合下面二條之一:判斷閏年的條件是符合下面二條之一:(1)(1)能被能被4 4整除,但不能被整除,但不能被100100整除;整除;(2)(2)能被能被400400整除。整除。#include void main(void) int year;printf (請輸入年份請輸入年份:);scanf(%d,&
17、;year);if (year % 4 =0 & year %100 != 0 )| year % 400 = 0)printf (%d年是閏年年是閏年n, year);elseprintf (%d年不是閏年年不是閏年n, year); 3.4.3 多分支條件語句多分支條件語句語法格式如下:語法格式如下:ifif(條件(條件1 1) 語句語句1;1;else ifelse if(條件(條件2 2) 語句語句2;2;else ifelse if(條件(條件n n) 語句語句n;n;elseelse 語句語句n+1;n+1;【例例3-103-10】某商場實行打折促銷活動,折扣率根據(jù)客戶某商
18、場實行打折促銷活動,折扣率根據(jù)客戶購買商品的金額來定,兩者的對應關系如表購買商品的金額來定,兩者的對應關系如表3-13-1所示。所示。編寫一個程序,從鍵盤輸入客戶購買商品的金額后,自編寫一個程序,從鍵盤輸入客戶購買商品的金額后,自動計算出購買商品的金額和應付金額。動計算出購買商品的金額和應付金額。#include #include void main()void main() double cost,cost1;double cost,cost1;/分別表示購買金額和應付金額分別表示購買金額和應付金額printf(printf(請輸入購買商品的金額請輸入購買商品的金額:);:);scanf(%
19、lf,&cost);scanf(%lf,&cost);if(cost=10000)if(cost=10000)cost1=costcost1=cost* *0.85;0.85;else if(cost=5000)else if(cost=5000)cost1=costcost1=cost* *0.9;0.9;else if(cost=1000)else if(cost=1000)cost1=costcost1=cost* *0.95;0.95;elseelsecost1=cost;cost1=cost;printf(printf(購買金額為:購買金額為:%.2lf%.2lf,應
20、付金額為,應付金額為.2lfn,cost,cost1);.2lfn,cost,cost1); 【例例3-11】學生成績可分學生成績可分為五分制與百分制,從為五分制與百分制,從鍵盤輸入學生的百分制鍵盤輸入學生的百分制成績,將其轉換為五分成績,將其轉換為五分制輸出。百分制與五分制輸出。百分制與五分制之間的對應關系如表制之間的對應關系如表3-2所示。所示。百分制百分制五分制五分制90100A8089B7079C6069D059E#include float score;printf(請輸入分數(shù)請輸入分數(shù):);scanf(%f,&score);if(score=90)printf(An); e
21、lse if(score=80)printf(Bn); else if(score=70)printf(Cn); else if(score=60)printf(Dn); else if(score=0)printf(En); else printf(輸入分數(shù)不正確輸入分數(shù)不正確!); 如果輸入分數(shù)大于如果輸入分數(shù)大于100,則輸出多少?,則輸出多少? 應如何進行修改呢?應如何進行修改呢? 3.3.4 if語句的嵌套語句的嵌套 ifif語句的嵌套是指在語句的嵌套是指在ifif語句中又包含了一個或多語句中又包含了一個或多個個ifif語句。語句。 【例例3-12】已知男性已知男性60歲退休,女性歲
22、退休,女性55歲退休,輸歲退休,輸入一個人的年齡和性別,判斷他入一個人的年齡和性別,判斷他(她她)是已退休還是是已退休還是在工作,并輸出結果。輸入性別時,用在工作,并輸出結果。輸入性別時,用F或或f表示女表示女性,用性,用M或或m表示男性,當輸入的性別不對時,給表示男性,當輸入的性別不對時,給出錯誤提示。出錯誤提示。#include #include void main()void main() int age;int age;char sex;char sex;printf(printf(請輸入性別和年齡(請輸入性別和年齡(F(f)/M(m)F(f)/M(m)):);:);scanf(%c%
23、d,&sex ,&age);scanf(%c%d,&sex ,&age);if(sex=m|sex=M)if(sex=m|sex=M) if(age=60) if(age=60) printf(printf(他已退休他已退休n);n);else else printf(printf(他在工作他在工作n);n); else if(sex=f|sex=F) else if(sex=f|sex=F) if(age=55) if(age=55) printf(printf(她已退休她已退休n);n);else else printf(printf(她在工作她在工作n);
24、n); else else printf(printf(輸入數(shù)據(jù)有誤!輸入數(shù)據(jù)有誤!n);n); 3.5 switch語句語句可以采用可以采用if-else ifif-else if語句處理多分支問題,但是,語句處理多分支問題,但是,當分支很多時,當分支很多時,采用采用switchswitch語句語句會更簡潔會更簡潔。語法格式如下:語法格式如下:switchswitch(表達式)(表達式) case case 常量常量1: 1: 語句序列語句序列1;break;1;break; case case 常量常量2: 2: 語句序列語句序列2;break;2;break; case case 常量常
25、量n: n: 語句序列語句序列n;break;n;break; default: default: 語句序列語句序列n+1;n+1; 【例例3-123-12】已知已知19981998年的年的1 1、3 3、5 5、7 7、8 8、1010、1212月月有有3131天,天,4 4、6 6、9 9、1111月有月有3030天,天,2 2月有月有2828天。編程從天。編程從鍵盤輸入鍵盤輸入19981998年的某個月份,輸出該月有多少天。年的某個月份,輸出該月有多少天。#include #include void main()void main() int x,day; int x,day; prin
26、tf( printf(請輸入月份(請輸入月份(1-121-12):):);); scanf(%d,&x); scanf(%d,&x); switch (x) switch (x) case 1: day=31; break;case 1: day=31; break;case 2: day=28; break;case 2: day=28; break;case 3: day=31; break;case 3: day=31; break;case 4: day=30; break;case 4: day=30; break;case 5: day=31; break;case
27、 5: day=31; break;case 6: day=30; break;case 6: day=30; break;case 7: day=31; break;case 7: day=31; break;case 8: day=31; break;case 8: day=31; break;case 9: day=30; break;case 9: day=30; break;case 10: day=31; break;case 10: day=31; break;case 11: day=30; break;case 11: day=30; break;case 12: day=3
28、1; break;case 12: day=31; break; printf(%d printf(%d月的天數(shù)是月的天數(shù)是%dn,x,day);%dn,x,day); 如果多個如果多個case的執(zhí)行語的執(zhí)行語句相同,則它們可以共句相同,則它們可以共用同一個語句塊。用同一個語句塊。 switch (x) case 4:case 6:case 9:case 11: day=30; break;case 2: day=28; break;default: day=31; break不可省略。不可省略。 3.6 運算符及其表達式運算符及其表達式類型類型運算符運算符關系運算符關系運算符 = 下標運算符
29、下標運算符位運算符位運算符 | &3.6.1 算術運算符及其表達式算術運算符及其表達式 1.1.基本的算術運算符基本的算術運算符+ +(加),(加),- -(減),(減),* *(乘),(乘),/ /(除),(除),% %(求余)(求余)“%”為求余運算符,為求余運算符,“%”運算符兩側均應為整運算符兩側均應為整型數(shù)據(jù),其運算結果為兩個運算對象做除法運算的型數(shù)據(jù),其運算結果為兩個運算對象做除法運算的余數(shù)余數(shù)。例如例如:4%3的結果為的結果為1。2. 2. 自增、自減運算符自增、自減運算符自增運算符為:自增運算符為:+自減運算符為:自減運算符為:-這兩個運算符都有前置和后置之分。這兩個運
30、算符都有前置和后置之分。例如:例如:+i; i+; -i;i-;+i和和i+的作用都是將變量的作用都是將變量i的值加的值加1,兩者的區(qū)別,兩者的區(qū)別在于:算術表達式本身的值不同。在于:算術表達式本身的值不同。算術表達式算術表達式+i的值為變量的值為變量i加加1之后的值,而算術之后的值,而算術表達式表達式i+的值為變量的值為變量i加加1之前的值。之前的值?!纠?-14】分析下面程序的執(zhí)行結果。分析下面程序的執(zhí)行結果。#include void main()int i=5,j=5,m,n;m=+i;n=j+;printf(m=%d,n=%d,i=%d,j=%dn,m,n,i,j); 3. 算術表
31、達式算術表達式如果表達式中的主要運算符是算術運算符,則該表如果表達式中的主要運算符是算術運算符,則該表達式稱為算術表達式。例如:達式稱為算術表達式。例如:a*b+c/2、28+2*pi*r、a*sin(x)+b*cos(x)、32/2%5C語言不允許像數(shù)學運算式那樣,任意省略乘號。語言不允許像數(shù)學運算式那樣,任意省略乘號。例如,數(shù)學運算式例如,數(shù)學運算式(a+b)(a-b)在在C語言中應寫成語言中應寫成(a+b)*(a-b);1/abc應寫成應寫成1/(a*b*c)。3.6.2 賦值運算符及其表達式賦值運算符及其表達式 1 賦值運算符賦值運算符l 賦值運算符的作用是給一個變量賦值,賦值運算符有
32、賦值運算符的作用是給一個變量賦值,賦值運算符有兩類:基本賦值運算符兩類:基本賦值運算符(即即“=”)和復合賦值和復合賦值運算符運算符。l C C語言中包含的賦值運算符如下:語言中包含的賦值運算符如下:(1) (1) 基本賦值運算符基本賦值運算符= = 例如:例如:a=b+1a=b+1。(2) (2) 加賦值運算符加賦值運算符+= += 例如:例如:a+=b+1a+=b+1等價于等價于a=a+(b+1)a=a+(b+1)。(3) (3) 減賦值運算符減賦值運算符-=-=例如例如:a-=b+1a-=b+1等價于等價于a=a-(b+1)a=a-(b+1)。(4) (4) 乘賦值運算符乘賦值運算符*
33、*= =例如例如:a a* *=b+1=b+1等價于等價于a=aa=a* *(b+1)(b+1)。(5) (5) 除賦值運算符除賦值運算符/=/=例如例如:a/=b+1a/=b+1等價于等價于a=a/(b+1)a=a/(b+1)。(6) (6) 求余賦值運算符求余賦值運算符%=%= 例如例如:a%=b+1a%=b+1等價于等價于a=a%(b+1)a=a%(b+1)。2. 賦值表達式賦值表達式賦值表達式是由賦值運算符連接一個變量和一個表賦值表達式是由賦值運算符連接一個變量和一個表達式構成的式子,它的一般格式如下:達式構成的式子,它的一般格式如下:變量變量 賦值運算符賦值運算符 表達式表達式例如:
34、例如:b=a+3賦值表達式運算時,先計算賦值運算符右側表達式賦值表達式運算時,先計算賦值運算符右側表達式的值,然后將其賦給左側的變量。賦值表達式的值為的值,然后將其賦給左側的變量。賦值表達式的值為賦值后運算符左側變量的值。賦值后運算符左側變量的值。例如:例如:a=4+(b=6),賦值表達式賦值表達式b=6的值為的值為6,這樣變量,這樣變量a的值為的值為10。3. 賦值中的自動類型轉換賦值中的自動類型轉換C語言規(guī)定:在一個賦值語句中,當賦值號左側變語言規(guī)定:在一個賦值語句中,當賦值號左側變量的類型與右側表達式值的類型不一致時,以賦值量的類型與右側表達式值的類型不一致時,以賦值號左側變量的類型為準
35、,自動進行類型轉換。號左側變量的類型為準,自動進行類型轉換。例如:例如:int n;n=3.5;賦值后變量賦值后變量n的值為的值為3。3.5.3 條件運算符及其表達式條件運算符及其表達式條件運算符由條件運算符由“?” 和和“:” 兩個符號組成,是兩個符號組成,是C語言語言中唯一要求中唯一要求3個操作數(shù)的運算符,稱為三目運算符。個操作數(shù)的運算符,稱為三目運算符。條件運算符的一般格式如下:條件運算符的一般格式如下:條件條件? ?表達式表達式1:1:表達式表達式2 2先判斷條件是否成立,如果成立,則將表達式先判斷條件是否成立,如果成立,則將表達式1的值的值作為整個條件表達式的值;否則,將表達式作為整
36、個條件表達式的值;否則,將表達式2的值作為的值作為整個條件表達式的值。整個條件表達式的值。例如:例如:int x=5,y;int x=5,y;y=x10?100:200;y=x10?100:200;3.6.4 逗號運算符及其表達式逗號運算符及其表達式用逗號運算符用逗號運算符“,”將多個表達式連接而成的式子,將多個表達式連接而成的式子,稱為逗號稱為逗號表達式表達式。其語法格式如下:其語法格式如下:表達式表達式1 1,表達式,表達式2 2,表達式,表達式n n 其計算過程是:先求表達式其計算過程是:先求表達式1 1的值,再求表達式的值,再求表達式2 2的值,的值,最后求表達式,最后求表達式n n的
37、值,整個逗號表達的值,整個逗號表達式的值為表達式式的值為表達式n n的值。的值。例如:例如:intint a=1,b=2,z; a=1,b=2,z;z=(a+1,b+2,3+5);z=(a+1,b+2,3+5);3.5.5 運算符的優(yōu)先級和結合方向運算符的優(yōu)先級和結合方向1.運算符的優(yōu)先級運算符的優(yōu)先級優(yōu)先級是指當多個運算符出現(xiàn)在同一個表達式中時優(yōu)先級是指當多個運算符出現(xiàn)在同一個表達式中時,哪一個運算符先進行運算,運算順序直接影響表達,哪一個運算符先進行運算,運算順序直接影響表達式的值。式的值。例如,對于表達式例如,對于表達式2+3*5。C語言中各種運算符的優(yōu)先級和結合方向見附錄語言中各種運算
38、符的優(yōu)先級和結合方向見附錄B。2.運算符的結合方向運算符的結合方向結合方向是指:當多個同級運算符出現(xiàn)在同一個結合方向是指:當多個同級運算符出現(xiàn)在同一個表達式中時,哪一個運算符先進行運算。表達式中時,哪一個運算符先進行運算。例如:求例如:求30/5%4。結合方向有兩種:從左到右和從右到左。算術運結合方向有兩種:從左到右和從右到左。算術運算符的結合方向是從左到右。算符的結合方向是從左到右。上述表達式的計算過程是:先計算上述表達式的計算過程是:先計算30/5,得,得6,再,再計算計算6%4,得,得2。 例例 int a=3,b=2,c=1,d;d=a-1bc;執(zhí)行上述語句后變量執(zhí)行上述語句后變量d的
39、值是多少?的值是多少?該表達式包括賦值、關系、算術三種運算符,其該表達式包括賦值、關系、算術三種運算符,其中,算術運算符的優(yōu)先級最高,其次為關系運算符中,算術運算符的優(yōu)先級最高,其次為關系運算符,最后是賦值運算符。,最后是賦值運算符。學生信息管理系統(tǒng)程序啟動后,首先顯示系統(tǒng)菜學生信息管理系統(tǒng)程序啟動后,首先顯示系統(tǒng)菜單,根據(jù)用戶輸入的數(shù)字,系統(tǒng)要進行兩次判斷:單,根據(jù)用戶輸入的數(shù)字,系統(tǒng)要進行兩次判斷:1.1.判斷用戶輸入的有效性。判斷用戶輸入的有效性。2.2.判斷用戶選擇了哪個功能模塊。判斷用戶選擇了哪個功能模塊。 【例例3-153-15】“學生信息管理系統(tǒng)學生信息管理系統(tǒng)”中菜單選擇和系統(tǒng)
40、功能調用的實現(xiàn)。中菜單選擇和系統(tǒng)功能調用的實現(xiàn)。#include #include #include /exit()#include /exit()用到用到void main()void main() int choice;int choice;printf( printf( 歡迎使用學生信息管理系統(tǒng)歡迎使用學生信息管理系統(tǒng)n);n);printf(-n);printf(-n);printf(1.printf(1.添加學生信息添加學生信息 2.2.顯示學生信息顯示學生信息n);n);printf(3.printf(3.修改學生信息修改學生信息 4.4.刪除學生信息刪除學生信息n);n);pri
41、ntf(5.printf(5.查找學生信息查找學生信息 6.6.統(tǒng)計不及格人數(shù)、最高分和平均分統(tǒng)計不及格人數(shù)、最高分和平均分n);n);printf(7.printf(7.按總分排序按總分排序 8.8.保存至文件保存至文件( (文本方式文本方式)n);)n);printf(9.printf(9.從文件讀入從文件讀入( (文本方式文本方式) 10.) 10.保存至文件保存至文件( (二進制方式二進制方式)n);)n);printf(11.printf(11.從文件讀入從文件讀入( (二進制方式二進制方式)12 .)12 .退出程序退出程序n);n);printf(-n);printf(-n);p
42、rintf(printf(請選擇功能模塊,輸入數(shù)字請選擇功能模塊,輸入數(shù)字1-12: );1-12: );scanf(%d,&choice);scanf(%d,&choice);if(choice=1 & choice=1 & choice=12)switch(choice)switch(choice) case 1: add(); case 1: add(); break; /break; /添加學生信息添加學生信息case 2: display();break; /case 2: display();break; /顯示學生信息顯示學生信息case 3: modify(); break; /case 3: m
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 景區(qū)門票退票手續(xù)規(guī)范制度
- 河南省新鄉(xiāng)市2026屆高二上生物期末達標檢測模擬試題含解析
- 食品企業(yè)衛(wèi)生監(jiān)控制度
- 2026安徽蚌埠自貿區(qū)城發(fā)人力資源有限公司第一期招聘6人備考題庫及完整答案詳解1套
- 2026上半年重慶事業(yè)單位聯(lián)考重慶市屬單位招聘高層次和緊缺人才310人備考題庫完整答案詳解
- 2026廣東深圳市福田區(qū)總工會招聘工會社會工作者6人備考題庫及答案詳解參考
- 2026對外經(jīng)濟貿易大學事業(yè)編專職輔導員、其他專技人員招聘備考題庫及完整答案詳解1套
- 2026內蒙古昌都市丁青縣消防救援大隊補招政府專職消防員4人備考題庫及答案詳解參考
- 2026四川巴中市通江產(chǎn)業(yè)投資集團有限公司及下屬企業(yè)招聘11人備考題庫及答案詳解一套
- 銀行票據(jù)管理財務制度
- 獸醫(yī)行業(yè)的卓越之旅-實現(xiàn)高效團隊協(xié)作與創(chuàng)新發(fā)展
- 2025年小學四年級語文上冊期末模擬試卷(含答案)
- 2026年國家電網(wǎng)招聘應屆生(其他工學)復習題及答案
- 沙灘運動基地施工方案
- 水泥安全生產(chǎn)事故案例分析
- 雨課堂在線學堂《創(chuàng)業(yè)管理四季歌:藝術思維與技術行動》單元考核測試答案
- 固定晾衣桿安裝施工方案
- 酒吧安全應急預案
- 急性腦?;颊咦o理課件
- 物聯(lián)網(wǎng)水表采購方案投標文件(技術方案)
- 2025年高職單招職業(yè)技能邏輯推理類專項練習卷及答案
評論
0/150
提交評論