




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、c3第三章順序結(jié)構(gòu)程序設(shè)計順序結(jié)構(gòu)程序設(shè)計順序結(jié)構(gòu)程序設(shè)計 How many classromm.Cc3第三章順序結(jié)構(gòu)程序設(shè)計(1)空語句:即只有一個分號的語句。 ;(2)表達(dá)式語句:表達(dá)式后加一個分號。 如:m=0; x+y-10%2+2*x,10/2;無具體意義(3)函數(shù)調(diào)用語句:函數(shù)調(diào)用加一個分號。 如:printf(“this is a example. n”) ;(4)控制語句: 是C語言中完成一定控制功能的語句, 如表3.1所示。c3第三章順序結(jié)構(gòu)程序設(shè)計表3.1條件控制語句循環(huán)控制語句輔助控制語句if語句switch語句while語句do-while語句for語句break中斷語
2、句continue繼續(xù)語句goto轉(zhuǎn)向語句return返回語句c3第三章順序結(jié)構(gòu)程序設(shè)計(5)復(fù)合語句。將一組語句用花括號)復(fù)合語句。將一組語句用花括號 括起來就括起來就形成了復(fù)合語句,又稱其為分程序。形成了復(fù)合語句,又稱其為分程序。如: m=10; printf(“m=%dn”,m);c3第三章順序結(jié)構(gòu)程序設(shè)計賦值表達(dá)式后加上一個分號 。例:利用賦值語句交換兩變量的值。設(shè)有定義:int a=12, b=5, t;則可以用如下兩種方式交換變量a和b的值: t=a; a=b; b=t; 第三者插足法第三者插足法 a=a+b; b=a-b; a=a-b; c3第三章順序結(jié)構(gòu)程序設(shè)計5C語言無I/O
3、語句,I/O操作由函數(shù)實現(xiàn)5 #include 格式:printf(格式控制串格式控制串,輸出表,輸出表)功能:按指定格式向顯示器輸出數(shù)據(jù)功能:按指定格式向顯示器輸出數(shù)據(jù)返值:正常,返回輸出字符數(shù);出錯,返回返值:正常,返回輸出字符數(shù);出錯,返回EOF(-1)EOF(-1)一、格式輸出函數(shù)一、格式輸出函數(shù)輸出表:要輸出的數(shù)據(jù)(可以沒有,多個時以“,”分隔)格式控制串:包含兩種信息1. 格式說明:%修飾符格式字符 ,用于指定輸出格式2. 普通字符或轉(zhuǎn)義序列:原樣輸出格式字符c3第三章順序結(jié)構(gòu)程序設(shè)計例例 main() short x=65535; printf(x=%dn,x); getch()
4、; 輸出結(jié)果:輸出結(jié)果:x=-1例 int a=3,b=4; printf(“%d %dn”,a,b); printf(“a=%d , b=%dn”,a,b);輸出結(jié)果: 3 4 a=3, b=411 11 11 11 11 11 11 1165535c3第三章順序結(jié)構(gòu)程序設(shè)計d,ix,Xoucse,Efg%格式字符:格式字符:十六進(jìn)制無符號整數(shù)十六進(jìn)制無符號整數(shù)不帶符號十進(jìn)制整數(shù)不帶符號十進(jìn)制整數(shù)十進(jìn)制整數(shù)十進(jìn)制整數(shù)指數(shù)形式浮點小數(shù)指數(shù)形式浮點小數(shù)單一字符單一字符字符串字符串八進(jìn)制無符號整數(shù)八進(jìn)制無符號整數(shù)小數(shù)形式浮點小數(shù)小數(shù)形式浮點小數(shù)e和和f中較短一種中較短一種百分號本身百分號本身int
5、 a=567;printf ( “%d”,a);int a=255;printf(“%x”,a);int a=65;printf(“%o”,a);int a=567;printf(“%u”,a);char a=65;printf(“%c”,a);printf(“%s”,“ABC”);float a=567.789;printf(“%e”,a);float a=567.789;printf(“%f”,a);float a=567.789;printf(“%g”,a);printf(“%”);567ff101567AABC5.677890e+02567.789000567.789%說明說明:格式字
6、符要用小寫格式字符要用小寫 格式字符與輸出項個數(shù)應(yīng)相同,按先后順序一一對應(yīng)格式字符與輸出項個數(shù)應(yīng)相同,按先后順序一一對應(yīng) 輸出轉(zhuǎn)換輸出轉(zhuǎn)換:格式字符與輸出項類型不一致格式字符與輸出項類型不一致,自動按指定格式輸出自動按指定格式輸出%p16進(jìn)制全字長整數(shù)進(jìn)制全字長整數(shù)printf(“%p”,10);0000000Ac3第三章順序結(jié)構(gòu)程序設(shè)計格式符格式符用于輸出用于輸出示示 例例輸輸 出出%c單個字符單個字符printf(%c%c%c,a,t,b);a b%s一個字符串一個字符串printf(%s,Hi, how are you?);Hi, how are you?%d一個整數(shù)一個整數(shù)printf
7、(%d,43);43%o一個一個8進(jìn)制整數(shù)進(jìn)制整數(shù)printf(%o,43);53%x一個一個16進(jìn)制整數(shù)進(jìn)制整數(shù)printf(%x,43);2b%f一個浮點數(shù)一個浮點數(shù)printf(%f,81.97);81.970000%e以科學(xué)計數(shù)法表以科學(xué)計數(shù)法表示的一個浮點數(shù)示的一個浮點數(shù)printf(%e,81.97);8.197000e+01%一個百分號一個百分號printf(%d%,10);10%c3第三章順序結(jié)構(gòu)程序設(shè)計l附加格式說明符(修飾符)附加格式說明符(修飾符).n對實數(shù),指定小數(shù)點后位數(shù)(四舍五入)對字符串,指定實際輸出位數(shù)修飾符功 能m輸出數(shù)據(jù)域?qū)?數(shù)據(jù)長度m,左補(bǔ)空格;否則按實際
8、輸出輸出數(shù)據(jù)在域內(nèi)左對齊(缺省右對齊)指定在有符號數(shù)的正數(shù)前顯示正號(+)輸出數(shù)值時指定左面不使用的空位置自動填00在八進(jìn)制和十六進(jìn)制數(shù)前顯示前導(dǎo)0,0 x#在d,o,x,u前,指定輸出精度為long型在e,f,g前,指定輸出精度為double型lc3第三章順序結(jié)構(gòu)程序設(shè)計 printf(%5d%4d,100,2); printf(%2d with label,5210); 5210 with label printf(%-7s%d,its,28); its 28 printf(%15f,981.48); 981.480000 printf(%7.1f,981.48); 981.5 print
9、f(%12.3e,981.48); 9.815e+02 printf(%.5E,0.098148); 9.8148E-021002 c3第三章順序結(jié)構(gòu)程序設(shè)計 scanf()中的字符寬度可以由一個中的字符寬度可以由一個”*”號而不是整號而不是整數(shù)來指定。數(shù)來指定?!?”號表示這個數(shù)取自輸入列表。號表示這個數(shù)取自輸入列表。 例如下邊這個例子,通過輸入例如下邊這個例子,通過輸入m,n來控制輸出值的顯示精度:來控制輸出值的顯示精度:#include main() float a=123.45678; int m,n; printf(m=); scanf(%d,&m); printf(n=);
10、 scanf(%d,&n); printf(a=%*.*fn,m,n,a); getch();c3第三章順序結(jié)構(gòu)程序設(shè)計例 int a=1234; float f=123.456; static char c=“Hello,world!”; printf(“%8d,%-8dn”,a,a); printf(“%10.2f,%-10.1fn”,f,f); printf(“%10.5s,%-10.3sn”,c,c);運(yùn)行結(jié)果: 1234,1234 123.46,123.5 Hello,Hel l 格式說明符例子c3第三章順序結(jié)構(gòu)程序設(shè)計例 int a=1234; float f=123.45
11、6; printf(“%08dn”,a); printf(“%010.2fn”,f); printf(“%0+8dn”,a); printf(“0+10.2fn”,f); l 附加格式說明符 0 、+ 的例子例 int a=123; printf(“%o,%#o,%X,%#Xn”,a,a,a,a); 例: #例 long a=65536; printf(“%d,%8ldn”,a, a); 例00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 000000123.46000+1234000+123.56173,0173,7B,0X7B0, 65536162c
12、3第三章順序結(jié)構(gòu)程序設(shè)計例 int a=1234; float f=123.456; char ch=a; printf(“%8d,%2dn”,a,a); printf(“%f,%8f,%8.1f,%.2f,%.2en”,f,f,f,f,f); printf(“%3cn”,ch);運(yùn)行 1234,1234結(jié)果: 123.456000,123.456000, 123.5,123.46,1.23e+02 a例 static char a=“Hello,world!” printf(“%sn%15sn%10.5sn%2.5sn%.2sn”,a,a,a,a,a);運(yùn)行結(jié)果:Hello,world! H
13、ello,world! Hello Hello Hel 附加格式說明符 m.n 的例子c3第三章順序結(jié)構(gòu)程序設(shè)計main() int x; x=printf(%dn,123); printf(x=%d,x); getch();輸出輸出:123x=4_實踐中,可以用來檢驗輸出結(jié)果。實踐中,可以用來檢驗輸出結(jié)果。c3第三章順序結(jié)構(gòu)程序設(shè)計二、格式輸入函數(shù)二、格式輸入函數(shù)格式: scanf(“scanf(“格式控制串格式控制串”,地址表,地址表)功能:按指定格式從鍵盤讀入數(shù)據(jù),存入地址表指定的 存儲單元中,并按回車鍵結(jié)束返值:正常,返回輸入數(shù)據(jù)個數(shù)地址表:變量的地址,常用取地址運(yùn)算符地址表:變量的地
14、址,常用取地址運(yùn)算符&格式字符:d,i,o,x,u,c,s,f,e例 scanf(“%d”,&a); 輸入:10 則 a=10例 scanf(“%x”,&a); 輸入:11 則 a=17c3第三章順序結(jié)構(gòu)程序設(shè)計以以 int x; 為例為例 printf(x=); scanf(%d,&x);一個一個scanf()中只輸入一個變量;中只輸入一個變量;一個一個scanf()應(yīng)當(dāng)與一個應(yīng)當(dāng)與一個printf()成對出成對出現(xiàn),其中的現(xiàn),其中的printf()為提示語句為提示語句 prompt statement;sccanf()中不要出現(xiàn)轉(zhuǎn)義字符(例如中不要出現(xiàn)轉(zhuǎn)義字
15、符(例如n)。)。c3第三章順序結(jié)構(gòu)程序設(shè)計main() int x,y; printf(x=); y=scanf(%d,&x); printf(x=%d y=%d,x,y); getch();輸入輸入123時時輸出輸出 x=123 y=1 表示輸入了表示輸入了1個數(shù)字個數(shù)字輸入輸入a時時輸出輸出 x=-858993460 y=0 表示輸表示輸入了入了0個數(shù)字個數(shù)字實際應(yīng)用中,常用對實際應(yīng)用中,常用對scanf()值的判斷來確定用戶輸入的合法性值的判斷來確定用戶輸入的合法性c3第三章順序結(jié)構(gòu)程序設(shè)計main()int x,y,z; printf(x y=);z=scanf(%d%d,&
16、amp;x,&y); printf(x=%d y=%d z=%d,x,y,z); getch();輸入輸入12 23時時輸出輸出 x=12 y=23 z=2 表示正確輸入了表示正確輸入了2個數(shù)字個數(shù)字輸入輸入12 a時時輸出輸出 x=12 y=-858993460 z=1 表示只正確輸入了表示只正確輸入了1個數(shù)字個數(shù)字c3第三章順序結(jié)構(gòu)程序設(shè)計scanf()中的附加格式說明符(修飾符)l修飾符功 能hm*用于d,o,x前,指定輸入為short型整數(shù)用于d,o,x前,指定輸入為long型整數(shù)用于e,f前,指定輸入為double型實數(shù)指定輸入數(shù)據(jù)寬度,遇空格或不可轉(zhuǎn)換字符則結(jié)束抑制符,指定
17、輸入項讀入后不賦給變量c3第三章順序結(jié)構(gòu)程序設(shè)計例 scanf(“%4d%2d%2d”,&yy,&mm,&dd); 輸入 19991015 則1999yy, 10 mm, 15 dd例 scanf(“%3d%*4d%f”,&k,&f); 輸入 12345678765.43 則123k, 8765.43f例 scanf(“%2d%*3d%2d”,&a,&b); 輸入 1234567 則12a, 67b例 scanf(“%3c%2c”,&c1,&c2); 輸入 abcde 則ac1, d c2c3第三章順序結(jié)構(gòu)程序設(shè)計l輸入分
18、隔符的指定 一般以空格、TAB或回車鍵作為分隔符 其它字符做分隔符:格式串中兩個格式符間字符例 scanf(“%d:%d:%d”,&h,&m,&s); 輸入 12:30:45 則12 h, 30 m, 45 s例 scanf(“%d,%d”,&a,&b) 輸入 3,4 則3a, 4 b例 scanf(“a=%d,b=%d,c=%d”,&a,&b,&c); 輸入 a=12,b=24,c=36 例 scanf(“%d%o%x”,&a,&b,&c); printf(“a=%d,b=%d,c=%dn”,a,b,c)
19、; 輸入 123123123 輸出 a=123,b=83,c=291c3第三章順序結(jié)構(gòu)程序設(shè)計l說明:用“%c”格式符時,空格和轉(zhuǎn)義字符作為有效字符輸入如 scanf(“%c%c%c”,&c1,&c2,&c3); 若輸入abc 則ac1, c2, b c3輸入數(shù)據(jù)時,遇以下情況認(rèn)為該數(shù)據(jù)結(jié)束: 遇空格、TAB、或回車 遇寬度結(jié)束 遇非法輸入如 scanf(“%d%c%f”,&a,&b,&c); 若輸入1234a123o.26 則 1234 a, a b, 123 c輸入函數(shù)留下的輸入函數(shù)留下的“垃圾垃圾”:例 int x; char ch; sc
20、anf(“%d”,&x); ch=getchar(); printf(“x=%d,ch=%dn”,x,ch);執(zhí)行:123輸出:x=123,ch=10 (換行符LF)例 int x; char ch; scanf(“%d”,&x); scanf(“%c”,&ch); printf(“x=%d,ch=%dn”,x,ch);執(zhí)行:123輸出:x=123,ch=10 (換行符LF)解決方法:(1)用格式串中的空格或“%*c”來“吃掉”(2)用getchar()清除 (3) 用函數(shù)fflush(stdin)清除全部剩余內(nèi)容例 int x; char ch; scanf(“%d”
21、,&x); scanf(“ %c”,&ch);或 scanf(“%*c%c”,&ch); c3第三章順序結(jié)構(gòu)程序設(shè)計(1)格式:getch() 功能:從鍵盤無回顯讀入一字符 (不需要回車確認(rèn))(2)格式:getchar() 功能:從鍵盤讀入一字符(需要回車確認(rèn))三、字符輸入輸出函數(shù)三、字符輸入輸出函數(shù) 1. 字符輸入函數(shù)字符輸入函數(shù)例例 #include main() int c; printf(Enter a character:); c=getch(); printf(%c-hex%xn,c,c); getch(); 運(yùn)行輸入運(yùn)行輸入A 運(yùn)行結(jié)果:Enter a c
22、haracter:AA-hex41c3第三章順序結(jié)構(gòu)程序設(shè)計格式: putchar(c)參數(shù): c為字符常量、變量或表達(dá)式,或0-255的整數(shù)。功能:把字符c輸出到顯示器上返值:正常,為顯示的代碼值;出錯,為EOF(-1)#include main() int c; char a; c=65; a=B; putchar(c); putchar(n); putchar(a); getch():運(yùn)行結(jié)果:A B例例2. 字符輸出函數(shù)字符輸出函數(shù)c3第三章順序結(jié)構(gòu)程序設(shè)計l除了putchar(),putch()也實現(xiàn)把字符輸出到顯示器上。l根據(jù)TC的解釋,putchar()是輸出到STDOUT(標(biāo)準(zhǔn)
23、輸出設(shè)備),而putch()是輸出到screen。l在一般應(yīng)用中,這兩者沒有區(qū)別。 注注:ANCI規(guī)定:規(guī)定: 使用使用getchar()和和putchar()須編譯預(yù)處理須編譯預(yù)處理 #include c3第三章順序結(jié)構(gòu)程序設(shè)計l添加conio.h頭文件:#include lconio是Console Input/Output(控制臺輸入輸出)的簡寫,其中定義了通過控制臺進(jìn)行數(shù)據(jù)輸入和數(shù)據(jù)輸出的函數(shù),主要是一些用戶通過按鍵盤產(chǎn)生的對應(yīng)操作,比如getch()、putch()函數(shù)等等。 c3第三章順序結(jié)構(gòu)程序設(shè)計)()()()(21csbsassareacbas3.4 程序舉例程序舉例#inc
24、lude main() float a,b,c,s,area; printf(Side a : ); scanf(%f,&a); printf(Side b : ); scanf(%f,&b); printf(Side c : ); scanf(%f,&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.2fn,a,b,c,s); printf(area=%7.2fn,area); getch();例 輸入三角形邊長,求面積編譯預(yù)處理命令變量
25、定義輸入數(shù)據(jù)輸出數(shù)據(jù) 輸入:3,4,6 輸出:a= 3.00, b= 4.00, c= 6.00 s= 6.50 area= 5.33c3第三章順序結(jié)構(gòu)程序設(shè)計例例 從鍵盤輸入大寫字母,輸出對應(yīng)的小寫字母和從鍵盤輸入大寫字母,輸出對應(yīng)的小寫字母和ASCII碼碼#include main() char c1,c2; printf(char=); c1=getchar(); printf(%c,%dn,c1,c1); c2=c1+32; printf(%c,%dn,c2,c2); getch();輸入:A 輸出:A,65 a,97c3第三章順序結(jié)構(gòu)程序設(shè)計04202:acbcbxax方程的根,設(shè)求
26、例#include main() float a,b,c,disc,x1,x2,p,q; printf(a=); scanf(%f,&a); printf(“b=); scanf(%f,&b); printf(c=); scanf(%f,&c); disc=b*b-4*a*c; p=-b/(2*a); q=sqrt(disc)/(2*a); x1=p+q; x2=p-q; printf(nnx1=%5.2fnx2=%5.2fn,x1,x2); getch():提示:a= _輸入:1 提示:b= _輸入:3 提示:c= _輸入:2 輸出:x1=-1.00 x2=-2.00
27、aacbbx242c3第三章順序結(jié)構(gòu)程序設(shè)計lIt is best just now if you simply adopt the styles presented by tutor, when you are a seasoned programmer, you can develop your own style.c3第三章順序結(jié)構(gòu)程序設(shè)計lPrograms can be highly readable and understandable or they can be intelligible(清晰易懂的).lGood style 優(yōu)雅的編程風(fēng)格優(yōu)雅的編程風(fēng)格Meaningful na
28、mes.有意義的變量名有意義的變量名White space to separate parts of statements.語句間留白語句間留白Consistent habits regarding indentation.養(yǎng)成階梯狀編程格式的習(xí)慣養(yǎng)成階梯狀編程格式的習(xí)慣lIndentation conveys controlling statements in control flow.c3第三章順序結(jié)構(gòu)程序設(shè)計lQuoting problems: 引號不配對unmatched quotes, mismatched quotes, incorrect quoteslUnending comm
29、ents 注釋沒收尾lForgetting semicolons (;) 行尾沒分號lUnmatched or mismatched braces or parentheses 括號不配對lControl strings not matching the arguments in printf(), scanf(), and other similar functions I/O函數(shù)中的格式與I/O項不一致lForgetting & in arguments to scanf(). scanf()中忘了&lLoss of fractions due to use of int
30、instead of float. 用int導(dǎo)致缺數(shù)lInconsistent lengths (e.g. double vs. float) between formats and arguments in scanf() and printf(). I/O函數(shù)中格式類型不一致c3第三章順序結(jié)構(gòu)程序設(shè)計l語法錯誤語法錯誤(syntax error) 由于一個語法錯會導(dǎo)致許多錯誤信息,所以出錯處往往在編譯器所指出錯行之前。l運(yùn)行時錯誤運(yùn)行時錯誤(runtime error) 程序執(zhí)行過程中試圖執(zhí)行非法操作l邏輯錯誤邏輯錯誤(logic error) 由不正確算法導(dǎo)致的錯誤。l未檢測到的錯誤未檢測到的錯誤(unchecked error) 導(dǎo)致不正確結(jié)果的程序執(zhí)行錯。以下以一個例子來分別加以說明:以下以一個例子來分別加以說明:c3第三章順序結(jié)構(gòu)程序設(shè)計lDEMO.C(3) : error C2146: syntax error : missing ; before identifier printflDEMO.C(3) : warning C4013: printf undefined; assuming extern returning intlDEMO.C(3) : error C2001: newline in
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公路ppp合同范本
- 分紅比例合同范本
- 公路規(guī)劃合同范本
- 協(xié)議合同范本寫法
- 兼職還款合同范本
- pos機(jī)推廣合同范本
- 入股店鋪協(xié)議合同范本
- 義齒加工合同范本模板
- 京東入職合同范本
- 醫(yī)院整體轉(zhuǎn)讓合同范本
- TPM╲t4Step Manul(三星TPM絕密資料)
- 細(xì)菌群體感應(yīng)系統(tǒng)及其應(yīng)用課件
- 司法鑒定程序通則(試行)
- 內(nèi)襯修復(fù)用HTPO管材企標(biāo)
- 部編教材一年級下冊生字筆順筆畫
- 通達(dá)信指標(biāo)——江恩輪
- 二維火收銀使用手冊
- 神經(jīng)電生理檢查ppt課件
- 管路滑脫風(fēng)險評估表
- 塑鋼板樁專項施工方案
- EN12680.3中文
評論
0/150
提交評論