最新計算機(jī)上機(jī)第五課課件_第1頁
最新計算機(jī)上機(jī)第五課課件_第2頁
最新計算機(jī)上機(jī)第五課課件_第3頁
最新計算機(jī)上機(jī)第五課課件_第4頁
最新計算機(jī)上機(jī)第五課課件_第5頁
已閱讀5頁,還剩89頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

計算機(jī)上機(jī)第五課計算機(jī)上機(jī)第五課15、長度運(yùn)算sizeof()返回變量或數(shù)據(jù)類型的字節(jié)長度例如: intx; printf(“%d\n”,sizeof(x)); printf(“%d\n”,sizeof(int));使用長度運(yùn)算符可以增強(qiáng)程序的移植性,不受具體計算機(jī)數(shù)據(jù)類型長度的限制。5、長度運(yùn)算sizeof()返回變量或數(shù)據(jù)類型的字節(jié)長度2最新計算機(jī)上機(jī)第五課課件3最新計算機(jī)上機(jī)第五課課件4最新計算機(jī)上機(jī)第五課課件5最新計算機(jī)上機(jī)第五課課件6最新計算機(jī)上機(jī)第五課課件7最新計算機(jī)上機(jī)第五課課件8練習(xí)2下列程序運(yùn)行后變量z的二進(jìn)制值是() charx=3,y=6,z; z=x^y<<2;00010100000110110000000000011000B練習(xí)2下列程序運(yùn)行后變量z的二進(jìn)制值是()B9練習(xí)3設(shè)二進(jìn)制x數(shù)的值是10100011,若要通過x^y使x高四位取反,低四位不變,則y的二進(jìn)制數(shù)是()設(shè)二進(jìn)制x數(shù)的值是11001101,若要通過x&y運(yùn)算使x中低四位不變,高四位清零,則y的二進(jìn)制數(shù)是()1111000000001111練習(xí)3設(shè)二進(jìn)制x數(shù)的值是10100011,若要通過x^y使x10C語言運(yùn)算符及優(yōu)先次序優(yōu)先級運(yùn)算符特征1(),[],.,->雙目2!,~,(t),+(正號),-(負(fù)號),*,&(取地址),++,--,sizeof單目34*,/,%,+,-雙目5<<,>>67<,<=,>,>=,==,!=8910&,^,|1112&&,||13?:三目14=,+=,-=,*=,/=,%=,&=,^=,|=;>>=;<<=雙目15,雙目C語言運(yùn)算符及優(yōu)先次序優(yōu)先級運(yùn)算符特征1(),[],.,117、關(guān)系運(yùn)算關(guān)系運(yùn)算:比較數(shù)值之間的關(guān)系,返回邏輯量(用零或非零代替)。關(guān)系運(yùn)算符:大于(>),小于(<),等于(==),不等于(!=),大于等于(>=),小于等于(<=),共六種當(dāng)關(guān)系運(yùn)算符兩邊的值滿足關(guān)系時為真,返回1;不滿足關(guān)系時為假,返回0。例如: intx=10; printf(“%d\n”,x>=9);又如: ‘A’>‘B’輸出為1輸出為07、關(guān)系運(yùn)算關(guān)系運(yùn)算:比較數(shù)值之間的關(guān)系,返回邏輯量(用零或12關(guān)系運(yùn)算的優(yōu)先級和結(jié)合次序關(guān)系運(yùn)算符>,<,>=,<=的優(yōu)先級相同,如在表達(dá)式中同時出現(xiàn),則自左向右順序運(yùn)算。關(guān)系運(yùn)算的優(yōu)先級和結(jié)合次序關(guān)系運(yùn)算符>,<,>=,<=的優(yōu)13C語言運(yùn)算符及優(yōu)先次序優(yōu)先級運(yùn)算符特征1(),[],.,->雙目2!,~,(t),+(正號),-(負(fù)號),*,&(取地址),++,--,sizeof單目34*,/,%,+,-雙目5<<,>>67<,<=,>,>=,==,!=8910&,^,|1112&&,||13?:三目14=,+=,-=,*=,/=,%=,&=,^=,|=;>>=;<<=雙目15,雙目C語言運(yùn)算符及優(yōu)先次序優(yōu)先級運(yùn)算符特征1(),[],.,14關(guān)系運(yùn)算的優(yōu)先級和結(jié)合次序關(guān)系運(yùn)算符>,<,>=,<=的優(yōu)先級相同,如在表達(dá)式中同時出現(xiàn),則自左向右順序運(yùn)算。例如: printf(“%d\n”,5>3>1);而==,!=優(yōu)先級低于前四種例如: printf(“%d\n”,11==11<35)關(guān)系運(yùn)算優(yōu)先級低于算術(shù)運(yùn)算例如: 10>1+12等價于10>(1+12)輸出為0輸出為0關(guān)系運(yùn)算的優(yōu)先級和結(jié)合次序關(guān)系運(yùn)算符>,<,>=,<=的優(yōu)15練習(xí)定義ch=‘a(chǎn)’;inta=2,b=3,c=1,d,x=10;寫出下列表達(dá)式的值:a>b==c;d=a>b;ch>’b’+1;d=a+b>c;b-1==a!=c;3<=x<=5;000101練習(xí)定義ch=‘a(chǎn)’;inta=2,b=3,c=1,16C語言運(yùn)算符及優(yōu)先次序優(yōu)先級運(yùn)算符特征1(),[],.,->雙目2!,~,(t),+(正號),-(負(fù)號),*,&(取地址),++,--,sizeof單目34*,/,%,+,-雙目5<<,>>67<,<=,>,>=,==,!=8910&,^,|1112&&,||13?:三目14=,+=,-=,*=,/=,%=,&=,^=,|=;>>=;<<=雙目15,雙目C語言運(yùn)算符及優(yōu)先次序優(yōu)先級運(yùn)算符特征1(),[],.,178、邏輯運(yùn)算邏輯運(yùn)算:用形式邏輯原則來建立數(shù)值間關(guān)系,運(yùn)算對象和運(yùn)算結(jié)果均為邏輯量。任何非零的數(shù)均表示邏輯真,零表示邏輯假。邏輯運(yùn)算符:與(&&),或(||),非(!),共三種。真值表PQP&&QP||Q!P000010101110010111108、邏輯運(yùn)算邏輯運(yùn)算:用形式邏輯原則來建立數(shù)值間關(guān)系,運(yùn)算對18邏輯運(yùn)算的優(yōu)先級&&優(yōu)先級高于||例如:a||b&&c等價于a||(b&&c)!的優(yōu)先級高于&&例如:!a&&b等價與(!a)&&b邏輯運(yùn)算優(yōu)先級低于關(guān)系運(yùn)算例如:ch>=‘a(chǎn)’&&ch<=‘z’等價于(ch>=‘a(chǎn)’)&&(ch<=‘z’)邏輯運(yùn)算的優(yōu)先級&&優(yōu)先級高于||19邏輯運(yùn)算的例子寫出滿足下列條件的c語言表達(dá)式1)ch是空格或回車2)number是偶數(shù)3)year是潤年,即year能被4整除但不能被100整除,或year能被400整除。4)判斷ch是否為英文字符ch==‘’||ch==‘\n’number%2==0(year%4==0&&year%100!=0)||(year%400==0)(ch>=‘a(chǎn)’)&&(ch<=‘z’)邏輯運(yùn)算的例子寫出滿足下列條件的c語言表達(dá)式ch==‘’|20邏輯運(yùn)算邏輯表達(dá)式求解中,并非所有邏輯運(yùn)算符的操作數(shù)都被執(zhí)行,只是在執(zhí)行下一個操作數(shù)才能求出表達(dá)式的值時才執(zhí)行下一個操作數(shù)。例如:a||b,當(dāng)a為真不再求b,直接取值為真。 a&&b,當(dāng)a為假不再求b,直接取值為假。邏輯運(yùn)算間可以轉(zhuǎn)換例如:!(a||b)可寫成!a&&!b !(a&&b)可寫成!a||!b邏輯運(yùn)算邏輯表達(dá)式求解中,并非所有邏輯運(yùn)算符的操作數(shù)都被執(zhí)行21練習(xí)1要求當(dāng)A的值為奇數(shù)時,表達(dá)式的值為真,A的值為偶數(shù)時,表達(dá)式的值為假,以下不滿足要求的表達(dá)式是:A%2==1!(A%2==0)!(A%2)A%2C練習(xí)1要求當(dāng)A的值為奇數(shù)時,表達(dá)式的值為真,A的值為偶數(shù)時,22練習(xí)2能正確表示a和b同時為正或同時為負(fù)的邏輯表達(dá)式是()A)(a>=0‖b>=0)&&(a<0‖b<0) B)(a>=0&&b>=0)&&(a<0&&b<0)C)(a+b>0)&&(a+b<=0) D)a*b>0

D練習(xí)2能正確表示a和b同時為正或同時為負(fù)的邏輯表達(dá)式是(23練習(xí)3若intx=3,y=-4,z=0;則表達(dá)式(x&&y)==(x||z)的值是() z||x-3&&y的值是()10練習(xí)3若intx=3,y=-4,z=0;1024練習(xí)4設(shè)inta=3;結(jié)果為0的表達(dá)式為()A)2%aa/=a!a~aC練習(xí)4設(shè)inta=3;結(jié)果為0的表達(dá)式為()C25C語言運(yùn)算符及優(yōu)先次序優(yōu)先級運(yùn)算符特征1(),[],.,->雙目2!,~,(t),+(正號),-(負(fù)號),*,&(取地址),++,--,sizeof單目34*,/,%,+,-雙目5<<,>>67<,<=,>,>=,==,!=8910&,^,|1112&&,||13?:三目14=,+=,-=,*=,/=,%=,&=,^=,|=;>>=;<<=雙目15,雙目C語言運(yùn)算符及優(yōu)先次序優(yōu)先級運(yùn)算符特征1(),[],.,269、條件運(yùn)算條件運(yùn)算符?:條件表達(dá)式的一般形式:表達(dá)式1?表達(dá)式2:表達(dá)式3;運(yùn)算過程:先計算表達(dá)式1的值,如果為真(非0),將表達(dá)式2的值作為條件表達(dá)式的值,否則,將表達(dá)式3的值作為條件表達(dá)式的值用法:例如:求出a、b中最大值,再賦給z z=(a>b)?a:b優(yōu)先級位于邏輯運(yùn)算和賦值運(yùn)算之間,結(jié)合順序由右至左例如:a>b?a:c>d?c:d等價于a>b?a:(c>d?c:d)9、條件運(yùn)算條件運(yùn)算符?:27C語言運(yùn)算符及優(yōu)先次序優(yōu)先級運(yùn)算符特征1(),[],.,->雙目2!,~,(t),+(正號),-(負(fù)號),*,&(取地址),++,--,sizeof單目34*,/,%,+,-雙目5<<,>>67<,<=,>,>=,==,!=8910&,^,|1112&&,||13?:三目14=,+=,-=,*=,/=,%=,&=,^=,|=;>>=;<<=雙目15,雙目C語言運(yùn)算符及優(yōu)先次序優(yōu)先級運(yùn)算符特征1(),[],.,2810、順序求值運(yùn)算“,”逗號既可做分隔符,也可作運(yùn)算符。逗號做分隔符用于分隔說明語句中的變量或函數(shù)中參數(shù)。例如:inta,b,c; printf(“%d%d”,a,b);逗號作運(yùn)算符使用,將若干獨立表達(dá)式連接在一起,組成逗號表達(dá)式,一般形式為:

表達(dá)式1,表達(dá)式2

運(yùn)算時,先計算表達(dá)式1的值,再計算表達(dá)式2的值,將表達(dá)式2的值作為整個表達(dá)式的值,因此也稱為順序求值運(yùn)算符。10、順序求值運(yùn)算“,”逗號既可做分隔符,也可作運(yùn)算符。逗號29練習(xí)1寫出下列代碼段的結(jié)果: inta1,a2,b=2,c=7,d=5;

a1=(++b,c--,d+3);

a2=++b,c--,d+3; printf(“%d,%d\n”,a1,a2);8,4練習(xí)1寫出下列代碼段的結(jié)果:8,430本章內(nèi)容提要常量、變量和數(shù)據(jù)類型輸入與輸出格式C語言中的運(yùn)算結(jié)構(gòu)化的程序設(shè)計思想本章內(nèi)容提要常量、變量和數(shù)據(jù)類型31結(jié)構(gòu)化程序設(shè)計思想(§2.5.2)程序的質(zhì)量標(biāo)準(zhǔn)初期:程序占用內(nèi)存容量的大小和運(yùn)行時間長短現(xiàn)今:具有良好的結(jié)構(gòu),容易理解和閱讀結(jié)構(gòu)化程序設(shè)計方法

強(qiáng)調(diào)程序設(shè)計的風(fēng)格和程序結(jié)構(gòu)的規(guī)范化,提倡清晰的結(jié)構(gòu),其基本思路是將一個復(fù)雜問題的求解過程劃分為若干階段,每個階段要處理的問題都容易被理解和處理。結(jié)構(gòu)化程序設(shè)計方法的核心“自頂向下,逐步細(xì)化,模塊化”結(jié)構(gòu)化編碼結(jié)構(gòu)化程序設(shè)計思想(§2.5.2)程序的質(zhì)量標(biāo)準(zhǔn)321.自頂向下的分析方法把大的復(fù)雜問題分解成小問題后再解決。面對復(fù)雜問題,首先進(jìn)行上層(整體)分析,按組織或功能,將問題分解為子問題,如果子問題仍然復(fù)雜,再做進(jìn)一步分解,直到處理對象相對簡單,容易處理為止。當(dāng)所有子問題都解決了,整個問題就解決了。每一次分解都是對上一層問題進(jìn)行細(xì)化和逐步求精,最終形成類似樹形的層次結(jié)構(gòu),來描述分析的結(jié)果。1.自頂向下的分析方法把大的復(fù)雜問題分解成小問題后再解決。33學(xué)生成績統(tǒng)計程序的層次結(jié)構(gòu)圖開發(fā)一個學(xué)生成績統(tǒng)計程序,輸入一批學(xué)生的5門課程的成績,要求輸出每個學(xué)生的平均分和每門課程的平均分,找出平均分最高的學(xué)生。學(xué)生成績統(tǒng)計程序成績輸入數(shù)據(jù)計算數(shù)據(jù)查找輸出成績計算學(xué)生平均分計算課程平均分學(xué)生成績統(tǒng)計程序的層次結(jié)構(gòu)圖開發(fā)一個學(xué)生成績統(tǒng)計程序,輸入342.模塊化設(shè)計將模塊組織成良好的層次系統(tǒng),頂層模塊調(diào)用其下層模塊以實現(xiàn)程序的完整功能,每個下層模塊再調(diào)用更下層的模塊,從而完成程序的一個子功能,最下層的模塊完成最具體的功能。模塊可以是一條語句,一個程序段,或一個函數(shù)。遵循模塊獨立性的原則,即模塊之間的聯(lián)系應(yīng)盡量簡單。一個模塊只完成一個指定的功能。模塊之間只通過參數(shù)進(jìn)行調(diào)用。一個模塊只有一個入口和一個出口。模塊內(nèi)慎用全局變量。2.模塊化設(shè)計將模塊組織成良好的層次系統(tǒng),頂層模塊調(diào)用其下層35學(xué)生成績統(tǒng)計程序的層次結(jié)構(gòu)圖開發(fā)一個學(xué)生成績統(tǒng)計程序,輸入一批學(xué)生的5門課程的成績,要求輸出每個學(xué)生的平均分和每門課程的平均分,找出平均分最高的學(xué)生。學(xué)生成績統(tǒng)計程序成績輸入數(shù)據(jù)計算數(shù)據(jù)查找輸出成績計算學(xué)生平均分計算課程平均分學(xué)生成績統(tǒng)計程序的層次結(jié)構(gòu)圖開發(fā)一個學(xué)生成績統(tǒng)計程序,輸入363.結(jié)構(gòu)化編碼按照結(jié)構(gòu)化程序設(shè)計的觀點,任何功能的程序都可以通過三種基本結(jié)構(gòu)的組合來實現(xiàn),即順序、分支和循環(huán)。順序控制結(jié)構(gòu):一個程序模塊執(zhí)行完后,按自然順序執(zhí)行下一個模塊。分支(選擇)控制結(jié)構(gòu):根據(jù)不同的條件選擇要執(zhí)行的模塊。循環(huán)控制結(jié)構(gòu):反復(fù)執(zhí)行某些相同的處理過程。

每一個結(jié)構(gòu)可以包含若干條語句和其它基本結(jié)構(gòu)。3.結(jié)構(gòu)化編碼按照結(jié)構(gòu)化程序設(shè)計的觀點,任何功能的374、流程圖:開始或結(jié)束:輸入或輸出:處理框:連接點:流程線程序流程圖的基本符號:判斷框4、流程圖:開始或結(jié)束:輸入或輸出:處理框:連接點:流程線程38ABBYPNABPNY(a)順序結(jié)構(gòu)(b)簡單分支結(jié)構(gòu)(c)選擇分支結(jié)構(gòu)(d)當(dāng)型循環(huán)APYNAPYN(e)直到型循環(huán)基本的程序流程圖ABBYPNABPNY(a)順序結(jié)構(gòu)(b)簡單分支結(jié)394.c語句分類根據(jù)結(jié)構(gòu)化程序設(shè)計的三個模塊分為:用于順序結(jié)構(gòu)的:表達(dá)式語句(表達(dá)式后加一分號)用于分支結(jié)構(gòu)的:if語句、switch語句用于循環(huán)結(jié)構(gòu)的:while語句、for語句、do-while語句根據(jù)c語言的句法分為:單個語句復(fù)合語句:用一對“{}”,將若干語句順序組合在一起就形成了一個程序段??照Z句:僅一分號構(gòu)成的語句4.c語句分類根據(jù)結(jié)構(gòu)化程序設(shè)計的三個模塊分為:405.程序書寫的風(fēng)格對變量、函數(shù)、常量等命名時,要見名知意,有助于對變量含義或函數(shù)功能的理解。在程序中增加必要的注釋,增加程序的可讀性。程序要清晰易懂,語句構(gòu)造要簡單直接,一行寫一條語句,采用縮進(jìn)格式。程序有良好的交互性,輸入有提示,輸出有說明,并盡量采用統(tǒng)一整齊的格式。5.程序書寫的風(fēng)格對變量、函數(shù)、常量等命名時,要見名知意,有41順序結(jié)構(gòu)程序設(shè)計舉例1長方體體積計算器。#include<stdio.h>main(){ intx,y,z,v; printf(“inputx,yandz:”); scanf(“%d%d%d”,&x,&y,&z); v=x*y*z; printf(“v=%d\n”,v); getch();}開始結(jié)束輸入輸出v=x*y*z順序結(jié)構(gòu)程序設(shè)計舉例1長方體體積計算器。開始結(jié)束輸入輸出v=42順序結(jié)構(gòu)程序設(shè)計舉例2用臨時變量交換兩個變量的值

數(shù)據(jù)結(jié)構(gòu)x,y,temp開始結(jié)束tempxytempxy輸出main(){intx,y,temp;temp=x;x=y;y=temp;printf(“x=%d\ny=%d\n”,x,y);}順序結(jié)構(gòu)程序設(shè)計舉例2用臨時變量交換兩個變量的值開始結(jié)束te43順序結(jié)構(gòu)程序設(shè)計舉例3任意三角形面積計算器關(guān)鍵問題:area=其中:s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c));順序結(jié)構(gòu)程序設(shè)計舉例3任意三角形面積計算器s=1.0/2*(44#include<math.h>main(){floata,b,c,s,area; scanf(“%f%f%f”,&a,&b,&c); s=1.0/2*(a+b+c); area=sqrt(s*(s-a)*(s-b)*(s-c)); printf(“a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2f\n”,a,b,c,s); printf(“area=7.2f\n”,area); getch();}#include<math.h>45思考:三角形的三邊長可以任意輸入嗎?思考:三角形的三邊長可以任意輸入嗎?46

結(jié)束語謝謝大家聆聽?。?!47

結(jié)束語謝謝大家聆聽?。。?7計算機(jī)上機(jī)第五課計算機(jī)上機(jī)第五課485、長度運(yùn)算sizeof()返回變量或數(shù)據(jù)類型的字節(jié)長度例如: intx; printf(“%d\n”,sizeof(x)); printf(“%d\n”,sizeof(int));使用長度運(yùn)算符可以增強(qiáng)程序的移植性,不受具體計算機(jī)數(shù)據(jù)類型長度的限制。5、長度運(yùn)算sizeof()返回變量或數(shù)據(jù)類型的字節(jié)長度49最新計算機(jī)上機(jī)第五課課件50最新計算機(jī)上機(jī)第五課課件51最新計算機(jī)上機(jī)第五課課件52最新計算機(jī)上機(jī)第五課課件53最新計算機(jī)上機(jī)第五課課件54最新計算機(jī)上機(jī)第五課課件55練習(xí)2下列程序運(yùn)行后變量z的二進(jìn)制值是() charx=3,y=6,z; z=x^y<<2;00010100000110110000000000011000B練習(xí)2下列程序運(yùn)行后變量z的二進(jìn)制值是()B56練習(xí)3設(shè)二進(jìn)制x數(shù)的值是10100011,若要通過x^y使x高四位取反,低四位不變,則y的二進(jìn)制數(shù)是()設(shè)二進(jìn)制x數(shù)的值是11001101,若要通過x&y運(yùn)算使x中低四位不變,高四位清零,則y的二進(jìn)制數(shù)是()1111000000001111練習(xí)3設(shè)二進(jìn)制x數(shù)的值是10100011,若要通過x^y使x57C語言運(yùn)算符及優(yōu)先次序優(yōu)先級運(yùn)算符特征1(),[],.,->雙目2!,~,(t),+(正號),-(負(fù)號),*,&(取地址),++,--,sizeof單目34*,/,%,+,-雙目5<<,>>67<,<=,>,>=,==,!=8910&,^,|1112&&,||13?:三目14=,+=,-=,*=,/=,%=,&=,^=,|=;>>=;<<=雙目15,雙目C語言運(yùn)算符及優(yōu)先次序優(yōu)先級運(yùn)算符特征1(),[],.,587、關(guān)系運(yùn)算關(guān)系運(yùn)算:比較數(shù)值之間的關(guān)系,返回邏輯量(用零或非零代替)。關(guān)系運(yùn)算符:大于(>),小于(<),等于(==),不等于(!=),大于等于(>=),小于等于(<=),共六種當(dāng)關(guān)系運(yùn)算符兩邊的值滿足關(guān)系時為真,返回1;不滿足關(guān)系時為假,返回0。例如: intx=10; printf(“%d\n”,x>=9);又如: ‘A’>‘B’輸出為1輸出為07、關(guān)系運(yùn)算關(guān)系運(yùn)算:比較數(shù)值之間的關(guān)系,返回邏輯量(用零或59關(guān)系運(yùn)算的優(yōu)先級和結(jié)合次序關(guān)系運(yùn)算符>,<,>=,<=的優(yōu)先級相同,如在表達(dá)式中同時出現(xiàn),則自左向右順序運(yùn)算。關(guān)系運(yùn)算的優(yōu)先級和結(jié)合次序關(guān)系運(yùn)算符>,<,>=,<=的優(yōu)60C語言運(yùn)算符及優(yōu)先次序優(yōu)先級運(yùn)算符特征1(),[],.,->雙目2!,~,(t),+(正號),-(負(fù)號),*,&(取地址),++,--,sizeof單目34*,/,%,+,-雙目5<<,>>67<,<=,>,>=,==,!=8910&,^,|1112&&,||13?:三目14=,+=,-=,*=,/=,%=,&=,^=,|=;>>=;<<=雙目15,雙目C語言運(yùn)算符及優(yōu)先次序優(yōu)先級運(yùn)算符特征1(),[],.,61關(guān)系運(yùn)算的優(yōu)先級和結(jié)合次序關(guān)系運(yùn)算符>,<,>=,<=的優(yōu)先級相同,如在表達(dá)式中同時出現(xiàn),則自左向右順序運(yùn)算。例如: printf(“%d\n”,5>3>1);而==,!=優(yōu)先級低于前四種例如: printf(“%d\n”,11==11<35)關(guān)系運(yùn)算優(yōu)先級低于算術(shù)運(yùn)算例如: 10>1+12等價于10>(1+12)輸出為0輸出為0關(guān)系運(yùn)算的優(yōu)先級和結(jié)合次序關(guān)系運(yùn)算符>,<,>=,<=的優(yōu)62練習(xí)定義ch=‘a(chǎn)’;inta=2,b=3,c=1,d,x=10;寫出下列表達(dá)式的值:a>b==c;d=a>b;ch>’b’+1;d=a+b>c;b-1==a!=c;3<=x<=5;000101練習(xí)定義ch=‘a(chǎn)’;inta=2,b=3,c=1,63C語言運(yùn)算符及優(yōu)先次序優(yōu)先級運(yùn)算符特征1(),[],.,->雙目2!,~,(t),+(正號),-(負(fù)號),*,&(取地址),++,--,sizeof單目34*,/,%,+,-雙目5<<,>>67<,<=,>,>=,==,!=8910&,^,|1112&&,||13?:三目14=,+=,-=,*=,/=,%=,&=,^=,|=;>>=;<<=雙目15,雙目C語言運(yùn)算符及優(yōu)先次序優(yōu)先級運(yùn)算符特征1(),[],.,648、邏輯運(yùn)算邏輯運(yùn)算:用形式邏輯原則來建立數(shù)值間關(guān)系,運(yùn)算對象和運(yùn)算結(jié)果均為邏輯量。任何非零的數(shù)均表示邏輯真,零表示邏輯假。邏輯運(yùn)算符:與(&&),或(||),非(!),共三種。真值表PQP&&QP||Q!P000010101110010111108、邏輯運(yùn)算邏輯運(yùn)算:用形式邏輯原則來建立數(shù)值間關(guān)系,運(yùn)算對65邏輯運(yùn)算的優(yōu)先級&&優(yōu)先級高于||例如:a||b&&c等價于a||(b&&c)!的優(yōu)先級高于&&例如:!a&&b等價與(!a)&&b邏輯運(yùn)算優(yōu)先級低于關(guān)系運(yùn)算例如:ch>=‘a(chǎn)’&&ch<=‘z’等價于(ch>=‘a(chǎn)’)&&(ch<=‘z’)邏輯運(yùn)算的優(yōu)先級&&優(yōu)先級高于||66邏輯運(yùn)算的例子寫出滿足下列條件的c語言表達(dá)式1)ch是空格或回車2)number是偶數(shù)3)year是潤年,即year能被4整除但不能被100整除,或year能被400整除。4)判斷ch是否為英文字符ch==‘’||ch==‘\n’number%2==0(year%4==0&&year%100!=0)||(year%400==0)(ch>=‘a(chǎn)’)&&(ch<=‘z’)邏輯運(yùn)算的例子寫出滿足下列條件的c語言表達(dá)式ch==‘’|67邏輯運(yùn)算邏輯表達(dá)式求解中,并非所有邏輯運(yùn)算符的操作數(shù)都被執(zhí)行,只是在執(zhí)行下一個操作數(shù)才能求出表達(dá)式的值時才執(zhí)行下一個操作數(shù)。例如:a||b,當(dāng)a為真不再求b,直接取值為真。 a&&b,當(dāng)a為假不再求b,直接取值為假。邏輯運(yùn)算間可以轉(zhuǎn)換例如:!(a||b)可寫成!a&&!b !(a&&b)可寫成!a||!b邏輯運(yùn)算邏輯表達(dá)式求解中,并非所有邏輯運(yùn)算符的操作數(shù)都被執(zhí)行68練習(xí)1要求當(dāng)A的值為奇數(shù)時,表達(dá)式的值為真,A的值為偶數(shù)時,表達(dá)式的值為假,以下不滿足要求的表達(dá)式是:A%2==1!(A%2==0)!(A%2)A%2C練習(xí)1要求當(dāng)A的值為奇數(shù)時,表達(dá)式的值為真,A的值為偶數(shù)時,69練習(xí)2能正確表示a和b同時為正或同時為負(fù)的邏輯表達(dá)式是()A)(a>=0‖b>=0)&&(a<0‖b<0) B)(a>=0&&b>=0)&&(a<0&&b<0)C)(a+b>0)&&(a+b<=0) D)a*b>0

D練習(xí)2能正確表示a和b同時為正或同時為負(fù)的邏輯表達(dá)式是(70練習(xí)3若intx=3,y=-4,z=0;則表達(dá)式(x&&y)==(x||z)的值是() z||x-3&&y的值是()10練習(xí)3若intx=3,y=-4,z=0;1071練習(xí)4設(shè)inta=3;結(jié)果為0的表達(dá)式為()A)2%aa/=a!a~aC練習(xí)4設(shè)inta=3;結(jié)果為0的表達(dá)式為()C72C語言運(yùn)算符及優(yōu)先次序優(yōu)先級運(yùn)算符特征1(),[],.,->雙目2!,~,(t),+(正號),-(負(fù)號),*,&(取地址),++,--,sizeof單目34*,/,%,+,-雙目5<<,>>67<,<=,>,>=,==,!=8910&,^,|1112&&,||13?:三目14=,+=,-=,*=,/=,%=,&=,^=,|=;>>=;<<=雙目15,雙目C語言運(yùn)算符及優(yōu)先次序優(yōu)先級運(yùn)算符特征1(),[],.,739、條件運(yùn)算條件運(yùn)算符?:條件表達(dá)式的一般形式:表達(dá)式1?表達(dá)式2:表達(dá)式3;運(yùn)算過程:先計算表達(dá)式1的值,如果為真(非0),將表達(dá)式2的值作為條件表達(dá)式的值,否則,將表達(dá)式3的值作為條件表達(dá)式的值用法:例如:求出a、b中最大值,再賦給z z=(a>b)?a:b優(yōu)先級位于邏輯運(yùn)算和賦值運(yùn)算之間,結(jié)合順序由右至左例如:a>b?a:c>d?c:d等價于a>b?a:(c>d?c:d)9、條件運(yùn)算條件運(yùn)算符?:74C語言運(yùn)算符及優(yōu)先次序優(yōu)先級運(yùn)算符特征1(),[],.,->雙目2!,~,(t),+(正號),-(負(fù)號),*,&(取地址),++,--,sizeof單目34*,/,%,+,-雙目5<<,>>67<,<=,>,>=,==,!=8910&,^,|1112&&,||13?:三目14=,+=,-=,*=,/=,%=,&=,^=,|=;>>=;<<=雙目15,雙目C語言運(yùn)算符及優(yōu)先次序優(yōu)先級運(yùn)算符特征1(),[],.,7510、順序求值運(yùn)算“,”逗號既可做分隔符,也可作運(yùn)算符。逗號做分隔符用于分隔說明語句中的變量或函數(shù)中參數(shù)。例如:inta,b,c; printf(“%d%d”,a,b);逗號作運(yùn)算符使用,將若干獨立表達(dá)式連接在一起,組成逗號表達(dá)式,一般形式為:

表達(dá)式1,表達(dá)式2

運(yùn)算時,先計算表達(dá)式1的值,再計算表達(dá)式2的值,將表達(dá)式2的值作為整個表達(dá)式的值,因此也稱為順序求值運(yùn)算符。10、順序求值運(yùn)算“,”逗號既可做分隔符,也可作運(yùn)算符。逗號76練習(xí)1寫出下列代碼段的結(jié)果: inta1,a2,b=2,c=7,d=5;

a1=(++b,c--,d+3);

a2=++b,c--,d+3; printf(“%d,%d\n”,a1,a2);8,4練習(xí)1寫出下列代碼段的結(jié)果:8,477本章內(nèi)容提要常量、變量和數(shù)據(jù)類型輸入與輸出格式C語言中的運(yùn)算結(jié)構(gòu)化的程序設(shè)計思想本章內(nèi)容提要常量、變量和數(shù)據(jù)類型78結(jié)構(gòu)化程序設(shè)計思想(§2.5.2)程序的質(zhì)量標(biāo)準(zhǔn)初期:程序占用內(nèi)存容量的大小和運(yùn)行時間長短現(xiàn)今:具有良好的結(jié)構(gòu),容易理解和閱讀結(jié)構(gòu)化程序設(shè)計方法

強(qiáng)調(diào)程序設(shè)計的風(fēng)格和程序結(jié)構(gòu)的規(guī)范化,提倡清晰的結(jié)構(gòu),其基本思路是將一個復(fù)雜問題的求解過程劃分為若干階段,每個階段要處理的問題都容易被理解和處理。結(jié)構(gòu)化程序設(shè)計方法的核心“自頂向下,逐步細(xì)化,模塊化”結(jié)構(gòu)化編碼結(jié)構(gòu)化程序設(shè)計思想(§2.5.2)程序的質(zhì)量標(biāo)準(zhǔn)791.自頂向下的分析方法把大的復(fù)雜問題分解成小問題后再解決。面對復(fù)雜問題,首先進(jìn)行上層(整體)分析,按組織或功能,將問題分解為子問題,如果子問題仍然復(fù)雜,再做進(jìn)一步分解,直到處理對象相對簡單,容易處理為止。當(dāng)所有子問題都解決了,整個問題就解決了。每一次分解都是對上一層問題進(jìn)行細(xì)化和逐步求精,最終形成類似樹形的層次結(jié)構(gòu),來描述分析的結(jié)果。1.自頂向下的分析方法把大的復(fù)雜問題分解成小問題后再解決。80學(xué)生成績統(tǒng)計程序的層次結(jié)構(gòu)圖開發(fā)一個學(xué)生成績統(tǒng)計程序,輸入一批學(xué)生的5門課程的成績,要求輸出每個學(xué)生的平均分和每門課程的平均分,找出平均分最高的學(xué)生。學(xué)生成績統(tǒng)計程序成績輸入數(shù)據(jù)計算數(shù)據(jù)查找輸出成績計算學(xué)生平均分計算課程平均分學(xué)生成績統(tǒng)計程序的層次結(jié)構(gòu)圖開發(fā)一個學(xué)生成績統(tǒng)計程序,輸入812.模塊化設(shè)計將模塊組織成良好的層次系統(tǒng),頂層模塊調(diào)用其下層模塊以實現(xiàn)程序的完整功能,每個下層模塊再調(diào)用更下層的模塊,從而完成程序的一個子功能,最下層的模塊完成最具體的功能。模塊可以是一條語句,一個程序段,或一個函數(shù)。遵循模塊獨立性的原則,即模塊之間的聯(lián)系應(yīng)盡量簡單。一個模塊只完成一個指定的功能。模塊之間只通過參數(shù)進(jìn)行調(diào)用。一個模塊只有一個入口和一個出口。模塊內(nèi)慎用全局變量。2.模塊化設(shè)計將模塊組織成良好的層次系統(tǒng),頂層模塊調(diào)用其下層82學(xué)生成績統(tǒng)計程序的層次結(jié)構(gòu)圖開發(fā)一個學(xué)生成績統(tǒng)計程序,輸入一批學(xué)生的5門課程的成績,要求輸出每個學(xué)生的平均分和每門課程的平均分,找出平均分最高的學(xué)生。學(xué)生成績統(tǒng)計程序成績輸入數(shù)據(jù)計算數(shù)據(jù)查找輸出成績計算學(xué)生平均分計算課程平均分學(xué)生成績統(tǒng)計程序的層次結(jié)構(gòu)圖開發(fā)一個學(xué)生成績統(tǒng)計程序,輸入833.結(jié)構(gòu)化編碼按照結(jié)構(gòu)化程序設(shè)計的觀點,任何功能的程序都可以通過三種基本結(jié)構(gòu)的組合來實現(xiàn),即順序、分支和循環(huán)。順序控制結(jié)構(gòu):一個程序模塊執(zhí)行完后,按自然順序執(zhí)行下一個模塊。分支(選擇)控制結(jié)構(gòu):根據(jù)不同的條件選擇要執(zhí)行的模塊。循環(huán)控制結(jié)構(gòu):反復(fù)執(zhí)行某些相同的處理過程。

每一個結(jié)構(gòu)可以包含若干條語句和其它基本結(jié)構(gòu)。3.結(jié)構(gòu)化編碼按照

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論