C語言順序結(jié)構(gòu)詳解_第1頁
C語言順序結(jié)構(gòu)詳解_第2頁
C語言順序結(jié)構(gòu)詳解_第3頁
C語言順序結(jié)構(gòu)詳解_第4頁
C語言順序結(jié)構(gòu)詳解_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2024/4/291順序程序設(shè)計(jì)2024/4/292結(jié)構(gòu)化程序設(shè)計(jì)目標(biāo):將學(xué)習(xí)三種結(jié)構(gòu)的程序設(shè)計(jì)方法順序結(jié)構(gòu)程序設(shè)計(jì)選擇結(jié)構(gòu)程序設(shè)計(jì)循環(huán)結(jié)構(gòu)程序設(shè)計(jì)。2024/4/293三種控制結(jié)構(gòu)順序結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)AB⑴BAPyesno⑵noPAyes⑶2024/4/29

4C語句概述實(shí)現(xiàn)順序結(jié)構(gòu)的語句實(shí)現(xiàn)選擇結(jié)構(gòu)的語句實(shí)現(xiàn)循環(huán)結(jié)構(gòu)的語句賦值語句函數(shù)調(diào)用語句復(fù)合語句if語句switch語句while語句do-while語句for語句2024/4/295實(shí)現(xiàn)順序結(jié)構(gòu)的語句順序結(jié)構(gòu)的程序中的語句是按照從上到下的順序逐行排列的;程序的執(zhí)行順序是按語句的排列順序進(jìn)行的。完成順序程序設(shè)計(jì)的語句包括:賦值語句函數(shù)調(diào)用語句復(fù)合語句2024/4/296賦值語句賦值語句由賦值表達(dá)式加上一個分號構(gòu)成,作用是將一個確定的值賦給一個變量。

語句格式:例:;=ysin(x)+cos(x)變量名=表達(dá)式;2024/4/297賦值語句的作用:將“=”右側(cè)表達(dá)式的值送到“=”左側(cè)的變量所對應(yīng)的單元中。賦值語句中的“=”是賦值號而不是數(shù)學(xué)意義上的等號;它代表的是一種操作→賦值操作;賦值號兩側(cè)的內(nèi)容不能調(diào)換;A=B;和B=A;具有不同的含義;A=B;B=A;意味著將B的值送給A;意味著將A的值送給B;2024/4/29

8賦值的意義:在計(jì)算機(jī)內(nèi)部,一個變量對應(yīng)一塊內(nèi)存存儲空間;具有一個名字。賦值的過程:就是將指定的值送入指定的存儲空間的過程。賦值的結(jié)果:指定的變量所對應(yīng)的存儲空間具有了指定的值。xX=10102024/4/299例:順序執(zhí)行以下三個賦值語句,結(jié)果如何?a=0;b=10;a=b;ab1.a=0;2.b=10;3.a=b;010102024/4/2910復(fù)合語句由一組語句組成,并放在一對花括號“{}”中間。語句格式:

{說明部分; 執(zhí)行部分;}復(fù)合語句復(fù)合語句是一個整體,在語法結(jié)構(gòu)上與一個單一語句相同。2024/4/2911函數(shù)調(diào)用語句C程序中,需要使用很多復(fù)雜的功能,例如,輸入數(shù)據(jù)、輸出數(shù)據(jù)、數(shù)學(xué)公式的使用(sinx、cosx、ex等)。這些功能的使用是通過函數(shù)調(diào)用來實(shí)現(xiàn)的。系統(tǒng)把一些獨(dú)立的功能編制成標(biāo)準(zhǔn)函數(shù),提供給使用者調(diào)用的格式。下面我們先介紹兩個最常用的標(biāo)準(zhǔn)函數(shù):格式輸出函數(shù)和格式輸入函數(shù)2024/4/2912格式輸出函數(shù)2024/4/2913格式輸出函數(shù)語句格式:printf(格式控制,輸出變量列表);函數(shù)名參數(shù)表#include<stdio.h>輸出的變量名列表功能:printf函數(shù)可以將任意類型的多個數(shù)據(jù),按指定格式輸出到標(biāo)準(zhǔn)輸出設(shè)備上(一般為顯示器)。2024/4/2914由雙引號括起來的字符串;形式:"控制字符"由“%”和格式字符組成,它的作用是將對應(yīng)的變量按照指定的類型輸出。需要原樣輸出的字符用于控制輸出普通字符格式說明轉(zhuǎn)義字符格式控制printf(

格式控制

,輸出變量列表);2024/4/2915格式說明符:由%和格式字符組成,作用是將輸出的數(shù)據(jù)按照指定的格式輸出。2024/4/2916指數(shù)形式輸出單、雙精度實(shí)數(shù)%e輸出十六進(jìn)制無符號整數(shù)%x小數(shù)形式輸出單、雙精度實(shí)數(shù)%f輸出一個字符%c輸出十進(jìn)制無符號整數(shù)%u輸出一個字符串%s當(dāng)指數(shù)小于-4或大于指定精度使用%e格式,否則用%f格式%g

輸出八進(jìn)制無符號整數(shù)%o輸出十進(jìn)制帶符號整數(shù)%d含義格式字符2024/4/2917附加格式說明字符含義L輸出長整型,可用在格式符d、o、x、u,f的前面

整數(shù)

輸出數(shù)據(jù)的最小寬度.整數(shù)對實(shí)數(shù)表示輸出的小數(shù)位數(shù);對字符串表示截取的字符個數(shù)-輸出數(shù)字或字符在域內(nèi)向左靠齊例:%ld%lf對應(yīng)長整型數(shù)據(jù)的輸入輸出格式描述對應(yīng)double型數(shù)據(jù)的輸入輸出格式描述2024/4/2918附加格式說明字符含義L輸出長整型,可用在格式符d、o、x、u,f的前面

整數(shù)

輸出數(shù)據(jù)的最小寬度.整數(shù)對實(shí)數(shù)表示輸出的小數(shù)位數(shù);對字符串表示截取的字符個數(shù)-輸出數(shù)字或字符在域內(nèi)向左靠齊例:%5d%8.3f對應(yīng)的整型數(shù)據(jù)的輸入輸出寬度為5對應(yīng)float型數(shù)據(jù)的輸出;輸出的數(shù)據(jù)寬度為8個字符,小數(shù)點(diǎn)后保留3位。2024/4/2919main(

{inta,b;floatx;charc;a=123;b=-1;x=3.14;c='A';printf("%d,%6d\n",a,a);printf("%d,%x,%o,%u\n“,b,b,b,b);printf("%c,%d\n",c,c);printf("%f,%6.1f\n",x,x);}寫出程序運(yùn)行結(jié)果2024/4/2920printf("%d,%6d\n",a,a);1111111111111111-1在內(nèi)存中的存放運(yùn)行結(jié)果a=123;b=-1;x=3.14;c='A';printf("%d,%x,%o,%u\n",b,b,b,b);

printf("%c,%d\n",c,c);123,□□□123-1,ffff,177777,65535A,65printf("%f,%6.1f\n",x,x);}3.140000,□□□3.12024/4/2921轉(zhuǎn)義字符轉(zhuǎn)義字符是一組以“\”開頭的特殊字符序列,用單引號括起來。用來表示任何可以輸出的字母字符、專用字符、控制字符、圖形字符。在printf的格式控制串中,控制輸出格式。常用的有:\b、\f、\n、\r、\t、\ooo、\xhh、\0;2024/4/2922課上練習(xí):寫出以下程序段的運(yùn)行結(jié)果#include<stdio.h>voidmain(){charc1=‘a(chǎn)’,c2=‘b’,c3=‘c’,c4=‘\101’,c5=‘\116’;printf(“a%cb%c\tc%c\tabc\n”,c1,c2,c3);printf(“\t\bc%c%c\n”,c4,c5);}2024/4/29

23用實(shí)驗(yàn)來學(xué)習(xí)和驗(yàn)證2024/4/29

24#include<stdio.h>voidmain(){/*沒有\(zhòng)n時*/ printf("thisisoneprograminc"); printf("thisisoneprograminc");/*在格式控制串尾有\(zhòng)n時*/ printf("thisisoneprograminc\n"); printf("thisisoneprograminc");/*在格式控制串首有\(zhòng)n時*/ printf("thisisoneprograminc"); printf("\nthisisoneprograminc");}思考題:轉(zhuǎn)義字符’\n’在格式控制中的作用是什么?2024/4/29

25/*轉(zhuǎn)義字符/b在控制串中的作用*/#include<stdio.h>voidmain(){ /*在控制串中不使用轉(zhuǎn)義字符’/b’*/ printf("thisisoneprograminc"); printf("thisisoneprograminc\n"); /*在控制串中使用轉(zhuǎn)義字符’/b’*/ printf("thisisoneprograminc"); printf("\b\bthisisoneprograminc\n");}思考題:轉(zhuǎn)義字符’\b’在格式控制中的作用是什么?2024/4/29

26/*轉(zhuǎn)義字符/r在控制串中的作用*/#include<stdio.h>voidmain(){ /*在控制串中不使用轉(zhuǎn)義字符’/r’*/ printf("thisisoneprograminc"); printf("thisisoneprograminc\n"); /*在控制串中使用轉(zhuǎn)義字符’/r’*/ printf("thisisoneprograminc"); printf("\rthisisoneprograminc\n"); }思考題:轉(zhuǎn)義字符’\r’在格式控制中的作用是什么?2024/4/29

27/*轉(zhuǎn)義字符/t在控制串中的作用*/#include<stdio.h>voidmain(){ /*在控制串中不使用轉(zhuǎn)義字符’/t’*/ printf("thisisoneprograminc"); printf("thisisoneprograminc\n"); /*在控制串中使用轉(zhuǎn)義字符’/t’*/ printf("thisisoneprograminc");printf("\tsecondprogram\n");}思考題:轉(zhuǎn)義字符’\t’在格式控制中的作用是什么?2024/4/29

28/*轉(zhuǎn)義字符/ooo和/xhh在控制串中的作用*/#include<stdio.h>voidmain(){ printf("thisisoneprograminc"); printf("\101thisisthesecondprogram\n"); printf("\x1athisissecondprogram\n");}思考題:轉(zhuǎn)義字符’\ooo’和‘/xhh’在格式控制中的作用各是什么?2024/4/29

29普通字符在printf的格式控制串中,除了以上的特殊字符(%+格式符、轉(zhuǎn)義字符)以外的字符,都是需要原樣輸出的字符,稱為普通字符。例:

printf("\x1athisissecondprogram\n");在一個printf語句的格式控制串中,首先將處理特殊字符(轉(zhuǎn)義字符控制輸出的狀態(tài)、格式控制符(%+d等)控制對應(yīng)位置的變量的值的顯示格式),控制串中的其它字符都將按原樣輸出。2024/4/29

30同理,學(xué)習(xí)和驗(yàn)證每一個格式控制符的作用2024/4/29

31標(biāo)準(zhǔn)格式輸入函數(shù)2024/4/29

32格式輸入函數(shù)格式:scanf(格式控制,地址表列);與

printf中的含義相同函數(shù)名將輸入的數(shù)據(jù)放入此變量中2024/4/29

33標(biāo)準(zhǔn)格式輸入函數(shù)的功能:scanf函數(shù)可以從標(biāo)準(zhǔn)輸入設(shè)備輸入任意類型的多個數(shù)據(jù)(一般為鍵盤),存入指定的變量單元中。例:scanf(“%d,%f”,&a,&b);意味著從鍵盤讀入兩個數(shù)據(jù),分別存入變量a和b中。%d:按十進(jìn)制整數(shù)格式讀入;%f:按實(shí)數(shù)格式讀入;2024/4/29

34格式輸入函數(shù)scanf中格式控制串的格式應(yīng)與地址表列中變量的順序相一致;scanf中格式控制串的格式應(yīng)與輸入數(shù)據(jù)的格式相一致;當(dāng)語句格式如下時:scanf(“%d,%f”,&a,&b);輸入數(shù)據(jù)的格式應(yīng)為:12,3.14如果語句寫成:scanf(“%d%f”,&a,&b);輸入數(shù)據(jù)的格式應(yīng)為:123.142024/4/29

35怎樣保證輸入數(shù)據(jù)的正確性?在對數(shù)據(jù)進(jìn)行輸入時,需要解決兩方面的問題:輸入語句格式的正確;輸入數(shù)據(jù)格式的正確;雖然說,在輸入語句中的格式控制串與在輸出中的意義一樣,但在使用時,還是有很多不同點(diǎn)的。2024/4/29

36格式控制串的意義:%d等:控制對應(yīng)于該控制符的變量的數(shù)據(jù)的類型轉(zhuǎn)義字符:用于控制輸入時的狀態(tài)控制意義和輸出時一致;普通字符:在輸入語句中的普通字符在輸入數(shù)據(jù)是必須原樣寫的;思考:當(dāng)輸入數(shù)據(jù)的類型與格式說明符不一致時會出現(xiàn)什么現(xiàn)象?如果在輸入數(shù)據(jù)時,不寫輸入語句中的普通字符會如何?2024/4/29

37用隱含的分隔符。語句格式為:scanf(“%d%d”,&a,&b);輸入數(shù)據(jù)時,在輸入數(shù)據(jù)中用空格或換行符分隔數(shù)據(jù)。輸入數(shù)據(jù)的格式應(yīng)為:34

或:

34使用顯示分隔符。語句格式為:scanf("%d,%d",&a,&b);如果在格式控制串中有其它字符,在輸入數(shù)據(jù)時在相應(yīng)位置應(yīng)輸入與這些字符相同的字符。例:輸入語句的幾種格式:輸入結(jié)果:a=3,b=43,42024/4/29

38#include<stdio.h>voidmain(){ inta,b; scanf(“%d%d“,&a,&b); printf(“a=%d,b=%d\n”,a,b);}變量順序與輸入數(shù)據(jù)順序?qū)斎虢Y(jié)果的影響;輸入數(shù)據(jù):讀入的數(shù)據(jù):輸出結(jié)果:輸入數(shù)據(jù):讀入的數(shù)據(jù):輸出結(jié)果:3553a=3b=5a=5b=3a=3,b=5a=5,b=32024/4/29

39#include<stdio.h>voidmain(){inta; floatx;scanf(“%d%f”,&a,&x); printf(“a=%d,x=%f\n”,a,x);}格式控制字符對輸入結(jié)果的影響輸入數(shù)據(jù):讀入的數(shù)據(jù):輸出結(jié)果:輸入數(shù)據(jù):讀入的數(shù)據(jù):輸出結(jié)果:35.65.63a=3x=5.6a=5x=0.6a=3,x=5.6a=5,x=0.62024/4/29

40#include<stdio.h>voidmain(){inta,b; /*沒有顯示分格符時*/scanf(“%d%d“,&a,&b);printf(“a=%d,b=%d\n”,a,b);/*有顯示分格符時*/scanf(“%d,%d“,&a,&b);printf(“a=%db=%d\n”,a,b);}格式控制字符之間有無顯示分隔符對輸入的影響輸入數(shù)據(jù):讀入的數(shù)據(jù):輸出結(jié)果:輸入數(shù)據(jù):讀入的數(shù)據(jù):輸出結(jié)果:353,5a=3b=5a=3b=5a=3,b=5a=3b=53,5a=3b=?a=3,b=?35a=3b=?a=3b=?2024/4/29

41#include<stdio.h>voidmain(){inta,b; scanf(“%d%d“,&a,&b);printf(“a=%d,b=%d\n”,a,b);scanf(“%2d%3d“,&a,&b);printf(“a=%d,b=%d\n”,a,b);}格式控制字符%后面添加域?qū)捙c否對輸入的影響輸入數(shù)據(jù):讀入的數(shù)據(jù):輸出結(jié)果:輸入數(shù)據(jù):讀入的數(shù)據(jù):輸出結(jié)果:123512456a=123b=5a=12b=456a=123,b=5a=12,b=45612456a=12b=4a=12,b=42024/4/29

42提示:格式控制符對輸入的結(jié)果的影響,還有很多,開動腦筋,可以試驗(yàn)出很多結(jié)論2024/4/29

43順序結(jié)構(gòu)

程序設(shè)計(jì)舉例2024/4/29

44voidmain(){charc1,c2;charc;

printf("Pleaseenteracharacter:\n");

c=getchar();c1=c-1;c2=c+1;

printf("%c%c%c\n",c1,c,c2);

}例:給出一個大寫字母,要求按字母順序打印出3個字母,指定的字母是三個字母中間的一個字母。輸入的字母不能為A或Z。求解過程#include"stdio.h"輸入一個字母。求出它的前趨和后繼。輸出三個字母。2024/4/29

45輸入三角形的三邊長,求三角形的面積。分析:三角形面積計(jì)算公式:area=√s(s-a)(s-b)(s-c)s=(a+b+c)/2安排計(jì)算步驟:寫出完整的程序2024/4/29

46解決問題的步驟:定義變量area=√s(s-a)(s-b)(s-c)輸入:a,b,c;計(jì)算s;計(jì)算area;輸出area;floata,b,c,s,area;scanf(“%f,%f,%f”,&a,&b,&c);s=(a+b+c)/2.0;area=sqrt(s*(s-a)*(s-b)*(s-c));printf(“theareais%f\n”,area);2024/4/29

47寫出完整程序:#include<stdio.h>#include<math.h>voidmain(){floata,b,c,s,area;scanf(“%f,%f,%f”,&a,&b,&c);s=(a+b+c)/2.0;area=sqrt(s*(s-a)*(s-b)*(s-c));printf(“theareais%f\n”,area);}2024/4/29

48設(shè)1990年我國工業(yè)產(chǎn)值是100,如果每年以7.4%的速度增長,求20年后我國的工業(yè)產(chǎn)值是多少?分析:計(jì)算產(chǎn)值的公式是:安排計(jì)算步驟:寫出完整的程序 p1=p0(1+r)n

其中:p1為n年后的產(chǎn)值,p0為初始值,r為增長率,n為年數(shù)。

2024/4/29

49解決問題的步驟:定義變量:輸入:p0,n,r;計(jì)算p1;輸出p0,n,r,p1;floatp1,p0,r;p1=p0(1+r)n其中:p1為n年后的產(chǎn)值,p0為初始值,r為增長率,n為年數(shù)。

intn;2024/4/29

50寫出完整程序:/*功能:計(jì)算工業(yè)產(chǎn)值*/#include<stdio.h>#include<math.h>voidmain(){intn;floatp0,p1,r;scanf("%d,%f,%f",&n,&p0,&r);p1=p0*pow(1+r/100,n);printf("p1=%10.4f\n",p1);}2024/4/29

51例.求華氏溫度100°F對應(yīng)的攝氏溫度。攝氏溫度C=(5/9)(F-32)#include<stdio.h>intmain(void){intcelsius,fahr;fahr=100;celsius=5*(fahr-32)/9.0;printf("fahr=%d,celsius=%d\n",fahr,celsius);return0;}編寫程序,輸入一個F值,輸出對應(yīng)的C值。scanf(“%f”,&fahr);2024/4/29

52擴(kuò)展閱讀2024/4/29

53常用數(shù)學(xué)庫函數(shù)庫函數(shù)C語言處理系統(tǒng)提供事先編好的函數(shù),供用戶在編程時調(diào)用。scanf(),printf(),exp()在相應(yīng)的系統(tǒng)文件(頭文件)中定義一些必需的信息。#include命令用戶調(diào)用庫函數(shù)時,將相應(yīng)的頭文件包含到源程序中。

溫馨提示

  • 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

提交評論