版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、順序結(jié)構(gòu)程序是最簡單,最基本的程序設(shè)計(jì),它由順序結(jié)構(gòu)程序是最簡單,最基本的程序設(shè)計(jì),它由簡單的語句組成,程序的執(zhí)行是按照程序員書寫的簡單的語句組成,程序的執(zhí)行是按照程序員書寫的順序進(jìn)行的,沒有分支、轉(zhuǎn)移、循環(huán),且每條語句順序進(jìn)行的,沒有分支、轉(zhuǎn)移、循環(huán),且每條語句都將被執(zhí)行。順序結(jié)構(gòu)的程序是從上到下依次執(zhí)行都將被執(zhí)行。順序結(jié)構(gòu)的程序是從上到下依次執(zhí)行的,其執(zhí)行流程如圖所示。的,其執(zhí)行流程如圖所示。圖圖 順序結(jié)構(gòu)執(zhí)行流程順序結(jié)構(gòu)執(zhí)行流程【實(shí)例實(shí)例2.1】求三角形的周長和面積。求三角形的周長和面積。程序分析:程序分析: 輸入三條邊輸入三條邊a、b、C; 計(jì)算周長:計(jì)算周長:l=a+b+c; 計(jì)算面
2、積:根據(jù)海倫公式,半周長計(jì)算面積:根據(jù)海倫公式,半周長hl=(a+b+c)2; 三角形面積:三角形面積:s=sqrt(hl*(hla)*(hl -b)*(h1一一c); 輸出三角形的面積和周長。輸出三角形的面積和周長。#include #include /添加數(shù)學(xué)函數(shù)所需頭文件添加數(shù)學(xué)函數(shù)所需頭文件void main() float a,b,c,l,h1,s; printf(請輸入能組成三角形的三條邊:請輸入能組成三角形的三條邊:n); /輸出提示文字輸出提示文字 scanf(%f,%f,%f,&a,&b,&c); /輸入輸入a、b、c的值的值 printf(a=%f,
3、b=%f,c=%fn,a,b,c); /輸入輸入a、b、c的值的值 l=a+b+c; /計(jì)算三條邊的和計(jì)算三條邊的和 h1=l/2; /為為h1賦值賦值 s=sqrt(h1*(h1-a)*(h1-b)*(h1-c); /計(jì)算三角形的面積計(jì)算三角形的面積 printf(三角形的周長和面積分別為:三角形的周長和面積分別為:n); /輸出面積的值輸出面積的值 printf(l=%4.2f,s=%4.2f,l,s); /輸出輸出l和和s的值的值一、賦值語句一、賦值語句 1語句書寫形式語句書寫形式 變量名變量名=表達(dá)式;表達(dá)式; 2功能功能 賦值語句的功能是把表達(dá)式值算出后賦給變量。賦值語句的功能是把表
4、達(dá)式值算出后賦給變量。 注意,賦值語句就是賦值表達(dá)式后加上一個(gè)分號(hào),分號(hào)作為注意,賦值語句就是賦值表達(dá)式后加上一個(gè)分號(hào),分號(hào)作為語句的結(jié)束標(biāo)志。語句的結(jié)束標(biāo)志。 例例2-1寫出寫出a、b兩變量交換值的語句。兩變量交換值的語句。 方法一:方法一: m=a;a=b;b=m; 二、字符輸入與輸出函數(shù)二、字符輸入與輸出函數(shù)1getchar( )函數(shù)函數(shù)getchar( )函數(shù)是字符輸入函數(shù),它的功能是從鍵盤上函數(shù)是字符輸入函數(shù),它的功能是從鍵盤上輸入一個(gè)字符。一般形式為:輸入一個(gè)字符。一般形式為:getchar( )Char ch; “ch= getchar( );”2putchar( )函數(shù)函數(shù)pu
5、tchar( )函數(shù)為字符輸出函數(shù),它的作用是在顯示器函數(shù)為字符輸出函數(shù),它的作用是在顯示器上輸出一個(gè)字符。其一般形式為:上輸出一個(gè)字符。其一般形式為:putchar(c);二、字符輸入與輸出函數(shù)二、字符輸入與輸出函數(shù)例例2-2#include stdio.hvoid main()int x=97;char y=a; putchar(a); putchar(y); putchar(97); putchar(x); putchar(c-2);格式輸出函數(shù)格式輸出函數(shù)printf一般形式一般形式函數(shù)功能函數(shù)功能示例示例 printf printf (“(“格式控格式控制字符制字符串串” , ” ,
6、 輸輸出對象表出對象表列)列)按指定格按指定格式輸出若式輸出若干個(gè)任意干個(gè)任意類型的數(shù)類型的數(shù)據(jù)據(jù)(1 1)int a=61,b=-34;int a=61,b=-34;printf(“%d%dn”,a,b);printf(“%d%dn”,a,b);輸出結(jié)果為輸出結(jié)果為6161,-34.-34.nn輸出完后換一行。輸出完后換一行。printf(“a=%d,b=%dn”,a,b);printf(“a=%d,b=%dn”,a,b);輸出結(jié)果輸出結(jié)果為為:a=61:a=61,b=-34b=-34。printf(“%3dprintf(“%3d,%2dn”,a,b);%2dn”,a,b);輸出結(jié)果為輸出結(jié)
7、果為: :a= 61a= 61,b=-34b=-34。這里的。這里的%md%md中的中的m m為指定輸出寬度,為指定輸出寬度,如果如果m m大于輸出的位數(shù),則在輸出數(shù)前面補(bǔ)空至大于輸出的位數(shù),則在輸出數(shù)前面補(bǔ)空至m m位;如果位;如果m m小于輸出的位數(shù),則按實(shí)際位數(shù)輸出。小于輸出的位數(shù),則按實(shí)際位數(shù)輸出。三、格式輸入與輸出函數(shù)三、格式輸入與輸出函數(shù)1. 格式控制字符串包含兩部分內(nèi)容:格式控制字符串包含兩部分內(nèi)容:(1)格式說明符,如)格式說明符,如%d,%f,%c等;等;(2)照原樣輸出的字符。)照原樣輸出的字符。2. 輸出數(shù)據(jù)表列是需要輸出的數(shù)據(jù)(也可以是表達(dá)輸出數(shù)據(jù)表列是需要輸出的數(shù)據(jù)(
8、也可以是表達(dá)式),多于一個(gè)時(shí)用逗號(hào)分開。式),多于一個(gè)時(shí)用逗號(hào)分開。printf (“格式控制字符串格式控制字符串” , 輸出對象列表)輸出對象列表)格式輸出函數(shù)格式輸出函數(shù)printf(續(xù))(續(xù))一般形一般形式式函數(shù)功能函數(shù)功能示例示例 printf printf (“(“格式格式控制字控制字符串符串” , ” , 輸出對輸出對象象 列表)列表)按指定格按指定格式輸出若式輸出若干個(gè)任意干個(gè)任意類型的數(shù)類型的數(shù)據(jù)據(jù)(2 2)float x=2.1,y=-31.42;float x=2.1,y=-31.42;printf(“%f,%fn”,x,y);printf(“%f,%fn”,x,y);輸出
9、結(jié)果為輸出結(jié)果為:2.100000:2.100000,-34.420000;-34.420000;默認(rèn)狀態(tài)下,單精度保留默認(rèn)狀態(tài)下,單精度保留6 6位小數(shù)。位小數(shù)。printf(“ x=%5.1f,y=%3.1fn”,x,y);printf(“ x=%5.1f,y=%3.1fn”,x,y);輸出結(jié)果輸出結(jié)果為為:x= 2.1:x= 2.1,m=-31.4;%m.nfm=-31.4;%m.nf,整個(gè)輸出,整個(gè)輸出m m位,小數(shù)位位,小數(shù)位占占n n位,小數(shù)點(diǎn)也位,小數(shù)點(diǎn)也1 1位(位(m m小于輸出位數(shù)時(shí),整數(shù)部分按小于輸出位數(shù)時(shí),整數(shù)部分按實(shí)際位數(shù)輸出)。實(shí)際位數(shù)輸出)。(3 3)char c
10、h1=a,ch2=b;char ch1=a,ch2=b;printf(“%c,%3cn”,ch1,ch2);printf(“%c,%3cn”,ch1,ch2);輸出結(jié)果為輸出結(jié)果為:a b:a b。格式輸入函數(shù)格式輸入函數(shù)scanf一般形式一般形式函數(shù)功函數(shù)功能能示例示例Scanf (“Scanf (“格式控制格式控制字符串字符串” , ” , 輸入對輸入對象象地址地址列表)列表)輸入若輸入若干個(gè)任干個(gè)任意類型意類型的數(shù)據(jù)的數(shù)據(jù)(1 1)scanf (“%d%d” , &a , &b);scanf (“%d%d” , &a , &b);運(yùn)行時(shí),輸入運(yùn)行時(shí),輸入3
11、 53 5(回車),則(回車),則a=3,b=5a=3,b=5。(2 2)scanf (“%d , %d” , &a , &b);scanf (“%d , %d” , &a , &b);運(yùn)行時(shí),輸入運(yùn)行時(shí),輸入3 , 53 , 5(回車),則(回車),則a=3,b=5a=3,b=5。(3 3)scanf (“%2d%3d” , &a , &b);scanf (“%2d%3d” , &a , &b);運(yùn)行時(shí),輸入運(yùn)行時(shí),輸入1234512345(回車),則系統(tǒng)自動(dòng)(回車),則系統(tǒng)自動(dòng)將將1212賦賦a,345a,345賦給賦給b b
12、。(1)輸入實(shí)型數(shù)據(jù)時(shí)不能規(guī)定精度。)輸入實(shí)型數(shù)據(jù)時(shí)不能規(guī)定精度。如:如:scanf (“ %3.2f “ ,&a) ; 是錯(cuò)誤的。是錯(cuò)誤的。(2)格式控制字符串后面對應(yīng)的是)格式控制字符串后面對應(yīng)的是“變量地址變量地址”,而,而 不是不是“變量名變量名”。如:如:scanf (“ %f%f “ ,&a , &b) ; 是是正確正確的;的; scanf (“ %f%f “ , a , b) ; 是是錯(cuò)誤錯(cuò)誤的;的;(3)”%c”格式輸入時(shí)只能接受一個(gè)字符。格式輸入時(shí)只能接受一個(gè)字符。如:如:scanf (“ %c“ ,&a) ; 若輸入若輸入a,則,則ch=a;
13、若輸入;若輸入abc,則輸出仍然為,則輸出仍然為a。例例2-3輸入一個(gè)字符,輸出它的輸入一個(gè)字符,輸出它的ASCII代碼值,反過來輸入一個(gè)代碼值,反過來輸入一個(gè)字符的字符的ASCII代碼值,輸出這個(gè)字符。代碼值,輸出這個(gè)字符。 #include *程序中使用了字符輸入,輸出系統(tǒng)函數(shù)程序中使用了字符輸入,輸出系統(tǒng)函數(shù)* main( ) int x;char ch; ch=getchar(); *從鍵盤上鍵入一個(gè)字符到變量從鍵盤上鍵入一個(gè)字符到變量ch* printf(%dn,ch);*將將ch的十進(jìn)制的十進(jìn)制ASCII碼輸出碼輸出* scanf(%d,&x); *從鍵盤鍵入一個(gè)十進(jìn)制整數(shù)
14、從鍵盤鍵入一個(gè)十進(jìn)制整數(shù)* putchar(x); *輸出輸出X這個(gè)整數(shù)所代表的字符這個(gè)整數(shù)所代表的字符* 例例2-4輸入一個(gè)十進(jìn)制整數(shù),輸出它的八進(jìn)制、十六進(jìn)制數(shù)。輸入一個(gè)十進(jìn)制整數(shù),輸出它的八進(jìn)制、十六進(jìn)制數(shù)。程序如下:程序如下:#include stdio.hvoid main()int a; scanf(%d,&a); /*鍵入十進(jìn)制數(shù)到鍵入十進(jìn)制數(shù)到a中中*/ printf(%on,a); /*輸出輸出a的八進(jìn)制數(shù)的八進(jìn)制數(shù)*/ printf(%xn,a); /*輸出輸出a的十六進(jìn)制數(shù)的十六進(jìn)制數(shù)*/例例25輸入一個(gè)小寫字母,輸出相應(yīng)的大寫字母。輸入一個(gè)小寫字母,輸出相應(yīng)的大
15、寫字母。#include stdio.hvoid main()char ch1; scanf(%c,&ch1); /*輸入小寫字母輸入小寫字母*/ printf(%c,ch1-32); /*輸出表達(dá)式輸出表達(dá)式chl一一32相應(yīng)的字符相應(yīng)的字符*/ 例例2-6編寫求任意半徑圓的周長和面積的程序,要求周長四舍編寫求任意半徑圓的周長和面積的程序,要求周長四舍五入精確到小數(shù)點(diǎn)后第五入精確到小數(shù)點(diǎn)后第2,面積到第,面積到第3位。位。#include stdio.hvoid main()float r, c,s,pi=3.14159;scanf(%f,&r); /*鍵入半徑值鍵入半徑值r
16、*/c=2.0*pi*r; /*計(jì)算周長計(jì)算周長C*/s=pi*r*r; /*計(jì)算面積計(jì)算面積s*/printf(r=%f,c=%6.2f,s=%7.3fn,r,c,s);/*按要求輸出結(jié)果按要求輸出結(jié)果*/ 由于順序結(jié)構(gòu)程序是順序執(zhí)行的,無分支、無轉(zhuǎn)由于順序結(jié)構(gòu)程序是順序執(zhí)行的,無分支、無轉(zhuǎn)移、無循環(huán),因此它不可能處理復(fù)雜的問題,而在數(shù)移、無循環(huán),因此它不可能處理復(fù)雜的問題,而在數(shù)據(jù)處理過程中,通常需要根據(jù)不同的條件進(jìn)行判斷,據(jù)處理過程中,通常需要根據(jù)不同的條件進(jìn)行判斷,然后選擇程序進(jìn)行處理,由此可見,順序結(jié)構(gòu)無法滿然后選擇程序進(jìn)行處理,由此可見,順序結(jié)構(gòu)無法滿足要求,而選擇結(jié)構(gòu)就是為了解決
17、這類問題而設(shè)定的。足要求,而選擇結(jié)構(gòu)就是為了解決這類問題而設(shè)定的。一般而言,一般而言,C語言中選擇語句包括兩種:語言中選擇語句包括兩種:if語句和語句和switch語句。所謂選擇語句就是通過判斷條件來選擇語句。所謂選擇語句就是通過判斷條件來選擇執(zhí)行哪一條語句,進(jìn)而達(dá)到編程目的。執(zhí)行哪一條語句,進(jìn)而達(dá)到編程目的。關(guān)系運(yùn)算符和關(guān)系表達(dá)式關(guān)系運(yùn)算符和關(guān)系表達(dá)式運(yùn)算符運(yùn)算符含義含義關(guān)系表達(dá)式運(yùn)關(guān)系表達(dá)式運(yùn)算規(guī)則算規(guī)則結(jié)果類型結(jié)果類型優(yōu)先級優(yōu)先級 大于大于關(guān)系表達(dá)式關(guān)系表達(dá)式成成立立,則關(guān)系表,則關(guān)系表達(dá)式的值達(dá)式的值為真為真,即即為為1 1;關(guān)系表達(dá)式關(guān)系表達(dá)式不不成立成立,則關(guān)系,則關(guān)系表達(dá)式的值表
18、達(dá)式的值為為假假,即,即為為0 0;“真真”或或假;假;“1”1”或或“0”0”。優(yōu)先級相同,優(yōu)先級相同,高于高于=,!,!= =大于等于大于等于 小于小于=4) != 5的值為的值為真真。邏輯運(yùn)算符和邏輯表達(dá)式邏輯運(yùn)算符和邏輯表達(dá)式運(yùn)算符運(yùn)算符含義含義對象類型對象類型結(jié)果類型結(jié)果類型優(yōu)先級優(yōu)先級! !邏輯非邏輯非數(shù)值型、數(shù)值型、字符型等字符型等邏輯真邏輯真1 1邏輯假邏輯假0 0高高&邏輯與邏輯與中中|邏輯或邏輯或低低邏輯運(yùn)算符邏輯運(yùn)算符(1)邏輯運(yùn)算、算術(shù)運(yùn)算和關(guān)系運(yùn)算的優(yōu)先級)邏輯運(yùn)算、算術(shù)運(yùn)算和關(guān)系運(yùn)算的優(yōu)先級由高到由高到低低排列的順序?yàn)椋号帕械捻樞驗(yàn)椋海?)對于)對于邏輯與邏
19、輯與,只有當(dāng)運(yùn)算符左邊的值為真時(shí),才,只有當(dāng)運(yùn)算符左邊的值為真時(shí),才計(jì)算運(yùn)算符右邊的表達(dá)式。如:計(jì)算運(yùn)算符右邊的表達(dá)式。如:!*,/,%+,-,=, ,b) & (c=b)后,后,c的值仍為的值仍為3。邏輯運(yùn)算符邏輯運(yùn)算符(3)對于)對于邏輯或邏輯或,只有當(dāng)運(yùn)算符左邊的值為假時(shí),才,只有當(dāng)運(yùn)算符左邊的值為假時(shí),才計(jì)算運(yùn)算符右邊的表達(dá)式。如:計(jì)算運(yùn)算符右邊的表達(dá)式。如:int a=1,b=2,c=3;執(zhí)行執(zhí)行(ab) | (c=b)后,后,c的值仍為的值仍為3。(4)設(shè))設(shè)x是一個(gè)整數(shù),如果是一個(gè)整數(shù),如果!x的值為的值為0,則,則x的值為非的值為非0,不能簡單的說不能簡單的說x的值為的
20、值為1,因?yàn)榉?,因?yàn)榉?的數(shù)不僅僅是的數(shù)不僅僅是1.單分支單分支if語句語句語句格式語句格式單分支單分支ifif語句流程語句流程if ( if ( 表達(dá)式表達(dá)式 ) ) 語句語句 s ;s ;單單if語句語句(1)語句)語句s可以是一個(gè)語句,也可以是若干語句,如果可以是一個(gè)語句,也可以是若干語句,如果是若干語句,必須用是若干語句,必須用“”將這些語句括起來。如:將這些語句括起來。如:if ( ab ) m=a; a=b; b=m;(2)注意)注意“=”(賦值)和(賦值)和“=”(相等)的區(qū)別。(相等)的區(qū)別。下面哪個(gè)代碼段不能正確輸出一個(gè)下面哪個(gè)代碼段不能正確輸出一個(gè)“*”號(hào)()。號(hào)()。A.
21、 int a ; if ( a=1) printf ( “*”); B. int a ; if ( a=1) printf ( “*”);C. int a=1 ; if ( a=1) printf ( “*”);D. int a=1 ; if ( a=1) printf ( “*”);單單if語句語句(3)常量、變量和函數(shù)也是表達(dá)式,它們是表達(dá)式)常量、變量和函數(shù)也是表達(dá)式,它們是表達(dá)式的特列。的特列。(4)實(shí)型運(yùn)算中,常量盡可能寫成小數(shù),如)實(shí)型運(yùn)算中,常量盡可能寫成小數(shù),如10寫成寫成10.0。例例2-7 鐵路上托運(yùn)行李規(guī)定,行李重量小于等于鐵路上托運(yùn)行李規(guī)定,行李重量小于等于20kg時(shí)免
22、費(fèi),超時(shí)免費(fèi),超20kg時(shí)超時(shí)超過部分每過部分每kg 0.5元,試編寫根據(jù)行李重量計(jì)算運(yùn)費(fèi)的元,試編寫根據(jù)行李重量計(jì)算運(yùn)費(fèi)的C程序。程序。 設(shè)行李重量用設(shè)行李重量用P,運(yùn)費(fèi)用,運(yùn)費(fèi)用W表示,它們都按實(shí)型對待,其數(shù)學(xué)式為:表示,它們都按實(shí)型對待,其數(shù)學(xué)式為:0 .205 . 0*)0 .20(0 .200 . 0PpPW程序一:程序一: void main() float P,W; scanf(%f,&P); /*輸入行李重量輸入行李重量P*/ if (P20.0) W=(P-20.0)*0.5; printf(P=%f,W=%fn,P,W); /*輸出重量輸出重量P和運(yùn)費(fèi)和運(yùn)費(fèi)W*/
23、程序二程序二(只寫運(yùn)算部分只寫運(yùn)算部分):W=(P-20.0)*0.5;If (P=20.0) W=0.0;雙分支雙分支if語句語句語句格式語句格式單分支單分支ifif語句流程語句流程if ( if ( 表達(dá)式表達(dá)式 ) ) 語句語句 s1 ;s1 ;elseelse 語句語句 s2 ; s2 ; (語句(語句1 1和語句和語句2 2,都可以,都可以是復(fù)合語句)是復(fù)合語句)嵌套的嵌套的if語句語句語句格式語句格式單分支單分支if語句流程語句流程if ( 表達(dá)式表達(dá)式1 ) if(表達(dá)式表達(dá)式2) 語句語句1; else 語句語句2; else if(表達(dá)式表達(dá)式3) 語句語句3; else 語
24、句語句4; 條件運(yùn)算符(?)和條件表達(dá)式條件運(yùn)算符(?)和條件表達(dá)式語句格式語句格式條件表達(dá)式流程條件表達(dá)式流程變量名變量名= =表達(dá)式表達(dá)式1 1?表達(dá)式?表達(dá)式2 2:表達(dá)式表達(dá)式3 3;(1)”?:”是是C中唯一的一中唯一的一個(gè)三目運(yùn)算符;個(gè)三目運(yùn)算符;(2)求值過程:如果表達(dá))求值過程:如果表達(dá)式式1的值為的值為“真真”,那么整,那么整個(gè)個(gè)表達(dá)式取表達(dá)式表達(dá)式取表達(dá)式2的值,否的值,否則,取表達(dá)式則,取表達(dá)式3的值,并賦的值,并賦值給最左邊的變量。值給最左邊的變量。例題例題2-8 有如下分段函數(shù):有如下分段函數(shù):y=-101(x0)試編寫通過輸入試編寫通過輸入x值,求值,求y值的程序。
25、值的程序。單分支單分支if語句編程:語句編程:嵌套嵌套if語句編程(語句編程(1):):嵌套嵌套if語句編程(語句編程(2):):條件表達(dá)式編程:條件表達(dá)式編程:多分支結(jié)構(gòu)的多分支結(jié)構(gòu)的switch語句語句語句格式語句格式 switch(switch(表達(dá)式表達(dá)式) ) case case 常量表達(dá)式常量表達(dá)式1 1:語句組:語句組1 1;break;break; case case 常量表達(dá)式常量表達(dá)式2 2:語句組:語句組2 2;break;break; case case 常量表達(dá)式常量表達(dá)式n n:語句組:語句組n n;break;break; default: default:語句組
26、語句組n+1;n+1;例例2-9輸入一個(gè)學(xué)生某門課百分制成績,輸出其成績等級。等級規(guī)定如下:輸入一個(gè)學(xué)生某門課百分制成績,輸出其成績等級。等級規(guī)定如下:100分分A級,級, 9099分分8級,級, 8089分分C級,級,7079分分D級,級, 6069分分E級,級, 60分以下為分以下為F級。級。#include stdio.hvoid main()int x,i;char ch; scanf(%d,&x); /*輸入成績輸入成績x*/ i=x/10; /*確定分?jǐn)?shù)段確定分?jǐn)?shù)段*/ switch(i) case 10: ch=A; break; /*成績成績100分為分為A級級*/ c
27、ase 9: ch=B; break; /*成績成績9099分為分為B級級*/ case 8: ch=C; break; /*成績成績8089分為分為C級級*/ case 7: ch=D; break; /*成績成績7079分為分為D級級*/ case 6: ch=E; break; /*成績成績6069分為分為E級級*/ default:ch=F; /*成績小于成績小于60分為分為F級級*/ printf(%d一一%cn,x,ch); /*輸出成績及等級輸出成績及等級*/例例2-10:分析下列程序:分析下列程序,寫出運(yùn)行結(jié)果。寫出運(yùn)行結(jié)果。例例2-11輸入輸入a、b、C三個(gè)數(shù),按由小到大的順
28、序輸出。三個(gè)數(shù),按由小到大的順序輸出。分析:排序的結(jié)果可讓分析:排序的結(jié)果可讓a中存放最小數(shù),中存放最小數(shù),b中存人中間數(shù),中存人中間數(shù),c中存放最大數(shù)。中存放最大數(shù)。#include stdio.hvoid main()float a,b,c,m; scanf(%f%f%f,&a,&b,&c); if(ab)m=a;a=b;b=m; if(bc)m=b,b=c,c=m; /*此為逗號(hào)表達(dá)式語句此為逗號(hào)表達(dá)式語句*/ if(ab)m=a,a=b,b=m;printf(a=%6.2f,b=%6.2f,c=%6.2fn,a,b,c);例例2-12編寫求編寫求a、b、c、d四
29、個(gè)數(shù)中最大數(shù)的程序。四個(gè)數(shù)中最大數(shù)的程序。#include stdio.hvoid main()float a,b,c,d,max; scanf(%f %f %f %f,&a,&b,&c,&d); /*輸入輸入4個(gè)數(shù)個(gè)數(shù)*/ max=a; /*先假設(shè)第先假設(shè)第1個(gè)數(shù)個(gè)數(shù)a最大最大,將其保存在將其保存在max中中*/ if (bmax) max=b; /*下面各數(shù)依次和當(dāng)前最大數(shù)比較下面各數(shù)依次和當(dāng)前最大數(shù)比較*/ if (cmax) max=c; if (dmax) max=d; printf(max=%fn,max); /*輸出最大數(shù)輸出最大數(shù)*/例例2-13
30、 輸入一個(gè)字符,判斷它是否為大寫字母,若是則變成小寫字母,輸入一個(gè)字符,判斷它是否為大寫字母,若是則變成小寫字母,若不是則不處理。最后輸出這個(gè)字符。若不是則不處理。最后輸出這個(gè)字符。#include stdio.hvoid main()char ch; scanf(%c,&ch); /*輸入字符輸入字符*/ if (ch=A&ch=A&ch=Z)?ch+32:ch;例例2-14判斷某一年是否為閏年的條件是符合下面二者之一:判斷某一年是否為閏年的條件是符合下面二者之一:能被能被4整除,但不能被整除,但不能被100整除。能被整除。能被400整除。試編寫整除。試編寫C程序。程
31、序。判斷閏年的條件,可用一個(gè)邏輯表達(dá)式來表示:判斷閏年的條件,可用一個(gè)邏輯表達(dá)式來表示:(year%4=0&year100 !=0)|year400=0程序一:程序一:#include stdio.hvoid main()int year;scanf(%d,&year);if(year%4=0&year%100 !=0)|year%400=0) printf(%d is a leap yearn,year);else printf(%d is not a leap yearn,year);程序二程序二(流程如圖流程如圖2-5所示所示):#include stdio.hv
32、oid main( )int year,a; /*用用a=1標(biāo)志閏年標(biāo)志閏年*/scanf(%d,&year);if(year%4! =0) a=0;else if ( year%100! =0) a=1; else if (year%400 !=0)a=0; else a=1; if(a=1) printf(%d is a leap yearn,year); else printf(%d is a not a leap yearn,year); 許多問題都會(huì)遇到規(guī)律性的重復(fù)操作。例如,許多問題都會(huì)遇到規(guī)律性的重復(fù)操作。例如,求和問題、求有一定規(guī)律的問題和一些迭代等問題求和問題、求有一
33、定規(guī)律的問題和一些迭代等問題都會(huì)用到循環(huán)結(jié)構(gòu)。循環(huán)結(jié)構(gòu)是結(jié)構(gòu)化程序設(shè)計(jì)的都會(huì)用到循環(huán)結(jié)構(gòu)。循環(huán)結(jié)構(gòu)是結(jié)構(gòu)化程序設(shè)計(jì)的基本結(jié)構(gòu)之一,它與順序結(jié)構(gòu)、選擇結(jié)構(gòu)共同構(gòu)成基本結(jié)構(gòu)之一,它與順序結(jié)構(gòu)、選擇結(jié)構(gòu)共同構(gòu)成了作為各種復(fù)雜程序的基本構(gòu)造單元。本節(jié)重點(diǎn)講了作為各種復(fù)雜程序的基本構(gòu)造單元。本節(jié)重點(diǎn)講解解3種循環(huán)語句:種循環(huán)語句:while語句、語句、dowhile語句和語句和for語語句。句。3.3.1條件(當(dāng)型)循環(huán)(條件(當(dāng)型)循環(huán)(while)語句書寫形式語句書寫形式流程圖流程圖while(while(表達(dá)式表達(dá)式) ) 循環(huán)體;循環(huán)體; 例例2-15編寫求編寫求S=1+2+100的程序。的程序
34、。#include stdio.hvoid main()int i=1,s=0; while(i=100) s=s+i; i+; printf(s=%dn,s);3.3.2直到型循環(huán)(直到型循環(huán)(do-while)語句書寫形式語句書寫形式流程圖流程圖DoDo 循環(huán)體;循環(huán)體; while(while(表達(dá)式表達(dá)式) );例例2-16編寫求編寫求S=1+2+100的程序。的程序。#include stdio.hvoid main()int i=1,s=0; do s=s+i; i+; while(i=100); printf(s=%dn, s);3.3.3次數(shù)型循環(huán)(次數(shù)型循環(huán)(for)語句書寫
35、形式語句書寫形式流程圖流程圖for(for(表達(dá)式表達(dá)式1 1;表達(dá)式;表達(dá)式2 2;表達(dá)式;表達(dá)式3 3) 循環(huán)體;循環(huán)體; 例例2-17編寫求編寫求s=1+2+100的程序。的程序。#include stdio.hvoid main()int i,s=0; for(i=1;i=100;i+) /*i從從1至至100,每次加,每次加1*/ s=s+i; /*不斷把各次不斷把各次i值加到值加到s中中*/ printf( s = %dn,s);3.3.4循環(huán)輔助語句(循環(huán)輔助語句(break)(1)語句功能:)語句功能:Break語句只能用于語句只能用于switch或循環(huán)語或循環(huán)語句當(dāng)中,其句當(dāng)
36、中,其功能功能是跳出是跳出switch語句或跳出本層循環(huán),語句或跳出本層循環(huán),轉(zhuǎn)去執(zhí)行其他后繼語句。轉(zhuǎn)去執(zhí)行其他后繼語句。(2)使用技巧:當(dāng)循環(huán)次數(shù)不確定,需要在循環(huán)語)使用技巧:當(dāng)循環(huán)次數(shù)不確定,需要在循環(huán)語句執(zhí)行過程中提前結(jié)束循環(huán),或需要循環(huán)語句中提供句執(zhí)行過程中提前結(jié)束循環(huán),或需要循環(huán)語句中提供多個(gè)出口時(shí),可用多個(gè)出口時(shí),可用break語句。語句。(3)使用方法:在循環(huán)語句中,)使用方法:在循環(huán)語句中,break語句一般與語句一般與if語句配合使用,用語句配合使用,用if語句設(shè)置退出條件,語句設(shè)置退出條件,break語句則語句則執(zhí)行退出操作。執(zhí)行退出操作。3.3.4循環(huán)輔助語句(循環(huán)輔助
37、語句(break)#include stdio.hvoid main()int i,s=0; for(i=1;i10) break; printf(i=%d,s=%dn,i,s); 3.3.4循環(huán)輔助語句(循環(huán)輔助語句( continue)(1)語句功能:執(zhí)行)語句功能:執(zhí)行continue時(shí),循環(huán)體中時(shí),循環(huán)體中continue下面的語句都不執(zhí)行,而重新進(jìn)行循環(huán)判斷,以決定下面的語句都不執(zhí)行,而重新進(jìn)行循環(huán)判斷,以決定是否繼續(xù)進(jìn)行下次循環(huán)。是否繼續(xù)進(jìn)行下次循環(huán)。(2)使用方法:在循環(huán)語句中,)使用方法:在循環(huán)語句中, continue語句一般語句一般與與if語句配合使用。語句配合使用。break與與continue的區(qū)別:的區(qū)別:continue只結(jié)束本次循環(huán)重只結(jié)束本次循環(huán)重新進(jìn)行下次判斷,而新進(jìn)行下次判斷,而break結(jié)束整個(gè)循環(huán)。結(jié)束整個(gè)循環(huán)。3.3.4循環(huán)輔助語句(循環(huán)輔助語句( continue)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度美容院健康體檢與會(huì)員服務(wù)合同2篇
- 2025年度新能源車輛運(yùn)輸合同
- 二零二五年寧波租賃房屋租賃合同租賃物維修責(zé)任
- 2025年度影視作品版權(quán)授權(quán)合同樣本二4篇
- 2025年度足浴店品牌連鎖經(jīng)營合同
- 二零二五年度2025版智慧城市建設(shè)項(xiàng)目采購合同4篇
- 2025年度酒廠電子商務(wù)平臺(tái)建設(shè)合同
- 2025年度高端品牌形象設(shè)計(jì)顧問聘請合同書2篇
- 二零二五年度環(huán)保工程公司股東股權(quán)變更與項(xiàng)目執(zhí)行合同
- 二零二五年度出口產(chǎn)品購銷合同樣本知識(shí)產(chǎn)權(quán)保護(hù)策略4篇
- 2024年人教版小學(xué)三年級信息技術(shù)(下冊)期末試卷附答案
- TB 10012-2019 鐵路工程地質(zhì)勘察規(guī)范
- 新蘇教版三年級下冊科學(xué)全冊知識(shí)點(diǎn)(背誦用)
- 鄉(xiāng)鎮(zhèn)風(fēng)控維穩(wěn)應(yīng)急預(yù)案演練
- 腦梗死合并癲癇病人的護(hù)理查房
- 蘇教版四年級上冊脫式計(jì)算300題及答案
- 犯罪現(xiàn)場保護(hù)培訓(xùn)課件
- 扣款通知單 采購部
- 電除顫操作流程圖
- 湖北教育出版社三年級下冊信息技術(shù)教案
- 設(shè)計(jì)基礎(chǔ)全套教學(xué)課件
評論
0/150
提交評論