版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第三章 最簡單程序設(shè)計(順序) 程序 1 程序 2 函數(shù) 1 函數(shù) 2 數(shù)據(jù)定義 程序 n 函數(shù) n 執(zhí)行語句 C程序 C語言程序是由若干語句組成的。4.1 C語句概述C語句共有5類第4章 最簡單程序設(shè)計(順序) 控制(條件、循環(huán)、轉(zhuǎn)向等) 函數(shù)調(diào)用 表達式 空語句 復(fù)合語句 C語句共有5類 if ( ) else 條件語句 for( ) 循環(huán)語句 while( ) 循環(huán)語句 do while 循環(huán)語句 break 終止switch或循環(huán)語句 continue 結(jié)束本次循環(huán) switch 多分支選擇語句 goto 轉(zhuǎn)向語句 return 從函數(shù)返回語句1、控制語句 2、函數(shù)調(diào)用語句 如:pri
2、ntf(“this porgram!”); 3、表達式語句 如:a=12; a+=8;(而a=3 稱賦值表達式) 4、空語句(無任何語句, 只有;號) 如: ; (int a=6,b=8; if (ab);a+=b;) 5、復(fù)合語句(或稱分程序) 如: z=x+y; t=z/100; printf(“%f”,t); 復(fù)合語句作為整體執(zhí)行4.2 賦值語句: 賦值語句格式: 變量=表達式; 功能:計算表達式的值,將結(jié)果送給變量。 注意:不要把“=”讀做“等于”,C中的等于是“=”; 應(yīng)讀做“賦值” 。在定義變量時可以賦值。 main()int a=6, b=8 ,t;printf(%d,%dn,a
3、, b);if(a0 main()int a=-10, b=10,t; if(a=b)=0) t=a; printf(%d,t);結(jié)果 ?賦值表達式4.3 數(shù)據(jù)輸入輸出語句: C語言不提供輸入輸出語句,是由函數(shù)庫提供 “標準輸入輸出函數(shù)”實現(xiàn)輸入輸出功能的。 如:scanf (輸入) printf (輸出) getchar(輸入字符) putchar(輸出字符) gets(輸入字符串) puts(輸出字符串) 一般使用庫函數(shù)要用預(yù)編譯命令“#include”將有關(guān)的“文件頭”調(diào)到源文件中。如: #inclulde或 #inclulde “stdio.h” 處 理輸入數(shù)據(jù)輸出數(shù)據(jù)程 序 4.4
4、字符數(shù)據(jù)輸入輸出4.4.1輸出字符函數(shù)putchar( ):功能:向輸出設(shè)備輸出一個字符,使用 stdio.h進行預(yù)編譯處理。例如:調(diào)用預(yù)編譯賦值字符輸出字符控制換行#include main()char a=O,b=K,c=!;putchar(a);putchar(b);putchar(c);printf(n);/*ch3_1.c*/#include main() int c; char a; c=65; a=B; putchar(c); putchar(n); putchar(a);運行結(jié)果:A B例#include stdio.h/*編譯預(yù)處理命令:文件包含*/main() char c
5、h1=N, ch2=E, ch3=W; putchar(ch1); putchar(ch2); putchar(ch3);/*輸出*/ putchar(n); putchar(ch1); putchar(n); /*輸出ch1的值,并換行*/ putchar(E); putchar(n); /*輸出字符E,并換行*/ putchar(ch3); putchar(n); 程序運行結(jié)果如下: NEW N E W說明1putchar()函數(shù)的格式: putchar(ch); 其中ch可以是一個字符變量或常量,也可以是一個轉(zhuǎn)義字符。 2putchar()函數(shù)的作用:向終端輸出一個字符。 (1)putc
6、har()函數(shù)只能用于單個字符的輸出,且一次只能輸出一個字符。另外,從功能角度來看,printf()函數(shù)可以完全代替putchar()函數(shù)。 (2)在程序中使用putchar()函數(shù),務(wù)必牢記:在程序(或文件)的開頭加上編譯預(yù)處理命令(也稱包含命令),即: #include stdio.h 表示要使用的函數(shù),包含在標準輸入輸出(stdio)頭文件(.h)中。4.4.2 輸入字符函數(shù)getchar():功能:從輸入設(shè)備輸入一個字符。使 用stdio.h進行預(yù)編譯處理。#include main()char c;c=getchar();putchar(c); 輸入字符輸出字符用Printf(“%c
7、”,c)也可以格式:getchar( )功能:從鍵盤讀一字符返值:正常,返回讀取的代碼值;出錯,返回EOF(-1)例 /*ch3_4.c*/#include main() int c; printf(Enter a character:); c=getchar(); printf(%c-hex%xn,c,c);運行結(jié)果:Enter a character:AA-hex414.5 格式輸入輸出4.5.1 printf() 函數(shù)Printf()可以輸出任意類型、多個數(shù)據(jù)、通用。1. Printf()一般格式:printf(格式控制,輸出表列)(1)格式控制:由“ ”括起來,包括格式說明:% 加格式
8、字符 和普通字符,即按原樣輸出的字符。(2)輸出列表:需要輸出的數(shù)據(jù)或表達式。 如: printf(“x=%d,y=%d”, x, y)格式控制輸出表列 2、格式字符 說明:不同類型數(shù)據(jù)用不同的格式,m 為輸 出數(shù)據(jù)寬度。(1)d 格式:輸出十進制整數(shù) %d :按整數(shù)實際長度輸出 %md :按m指定的寬度輸出如果實際寬度m,前邊補空格。(右對齊)%-md : 如果實際寬度m,后邊補空格。(左對齊) %ld 、%mld、%-mld: 輸出長整型數(shù)(同上)例 int a=3,b=4; printf(“%d %dn”,a,b); printf(“a=%d , b=%dn”,a,b);輸出結(jié)果: 3
9、4 a=3, b=4例 main()int a=123,b=12345;printf(“%4d,%4d”,a,b); 輸出結(jié)果: 123,12345(空格)例 long a=135790; printf(“%8ldn”,a); 輸出結(jié)果: 1357908列 例如: main( )int a=123;long b=23456778;printf(a=%dn,a);printf(a=%10dn,a);printf(a=%-10dn,a);printf(b=%ldn,b);printf(b=%10ldn,b);printf(b=%-10ldn,b);結(jié)果 ?(2)o 格式符功能:按八進制形式輸出內(nèi)存
10、單元中的值 (不會出現(xiàn)負數(shù))格式: %o , %lo , %mo, %mlo ,%-mo.例如: -1的二進制存放形式:int a= - 1; ( 1 7 7 7 7 7 )printf(%d,%on,a,a);printf(%d,%8on,a,a);輸出結(jié)果: -1,177777 -1, 1777771111111111111111按8位輸出(3) x 格式符 功能:以16進制形式輸出內(nèi)存單元中的值 (同樣也不會出現(xiàn)負的16進制數(shù)) 格式:%x,%mx,%-mx,%lx,例如:main( )int a= -1;printf(“%x,%o,%d,a,a,a);結(jié)果 ?結(jié)果:ffff,17777
11、7,-1(4) u 格式 功能:用來輸出無符號型十進制數(shù) 格式:%u,%mu,%lu,main( )unsigned int a=65535;int b=-2;printf(a=%d,%o,%x,%un,a,a,a,a);printf(b=%d,%o,%x,%un,b,b,b,b);按十、八、十六、無符號四種方式輸出2個字節(jié)結(jié)果:a1,177777,ffff,65535 b2,177776,fffe,655345、c 格式符 功能:輸出一個字符,也可以是特殊字符。 格式:%c, %mc, %-mc例1 main( ) char c=a; printf(%c,c);例2 main() char
12、c=a;int i=97; printf(%c,%dn,c ,c); printf(%c,%dn,i ,i);0255內(nèi)整數(shù)=ASCII結(jié)果:a,97 a,97(6)s 格式符 功能:輸出一個字符串 格式: %s :按字符串長度輸出字符串 printf(“%s”,”CHINA”); %ms :按m列右對齊輸出字符串 printf(“%3s”,” CHINA”); %-ms :按m列左對齊輸出字符串 printf(“%-6s”,” CHINA”); %m.ns:按m列右對齊輸出前n個字符 printf(“%7.2s”,” CHINA“); %-m.ns:按m列左對齊輸出前n個字符 printf(
13、“%-5.3s”,” CHINA”);(7) f 格式符 %f 輸出實數(shù)(單精度,雙精度) 單精度數(shù):有效位數(shù) 7,小數(shù)位數(shù)6 雙精度數(shù):有效位數(shù) 16,小數(shù)位數(shù)6 特點:不指出小數(shù)位數(shù),由系統(tǒng)自動指定例如: 結(jié)果:333333.328125 有效數(shù)字7位:333333.3main( )float x,y;x=111111.111;y=222222.222;printf(%f,x+y); %m.nf 輸出m列, n位小數(shù), m列, 右空格main( )float f=123.456;printf(n%f,f); printf(n%10f,f); printf(n%10.2f,f); print
14、f(n%.2f,f); printf(n%-10.2f,f); 123.456001123.456001 123.46 123.46 123.46(8) e 格式,以指數(shù)形式輸出實數(shù)%e由系統(tǒng)指定寬度, 5位小數(shù), 4位指數(shù)(系統(tǒng)有別) main( )float f=123.456;printf(“%e”,f); 輸出: 1.23456e+02 %m.ne,%-m.ne, n指尾數(shù)的小數(shù)部分main( )float f=123.456;printf(n%e,f);printf(n%10e,f);printf(n%10.2e,f);printf(n%.2e,f);printf(n%-10.2e
15、,f);規(guī)范化小數(shù)1.23456e+021.23456e+02 1.2e+021.2e+021.2e+02TC的結(jié)果尾數(shù)2位 (9) g 格式:根據(jù)數(shù)值大小,自動選f 或 e格式。不輸出無意義的0。例:main( )float f=123.468;printf(n%f,f);printf(n%e,f);printf(n%g,f); 123.4680021.23468e+02123.468d,ix,Xoucse,Efg%格式字符:十六進制無符號整數(shù)不帶符號十進制整數(shù)十進制整數(shù)指數(shù)形式浮點小數(shù)單一字符字符串八進制無符號整數(shù)小數(shù)形式浮點小數(shù)e和f中較短一種百分號本身int a=567;printf
16、( “%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%附加格式說明符(修飾符).n對實數(shù),指定小數(shù)
17、點后位數(shù)(四舍五入)對字符串,指定實際輸出位數(shù)修飾符功 能m輸出數(shù)據(jù)域?qū)?數(shù)據(jù)長度m,左補空格;否則按實際輸出輸出數(shù)據(jù)在域內(nèi)左對齊(缺省右對齊)-指定在有符號數(shù)的正數(shù)前顯示正號(+)+輸出數(shù)值時指定左面不使用的空位置自動填00在八進制和十六進制數(shù)前顯示前導(dǎo)0,0 x#在d,o,x,u前,指定輸出精度為long型在e,f,g前,指定輸出精度為double型l例 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(“%3
18、cn”,ch);運行 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%.3sn”,a,a,a,a,a);運行結(jié)果:Hello,world! Hello,world! Hello Hello Hel 例 m.n例 int a=1234; float f=123.456; static char c=“Hello,world!”; printf(“%8d,%-8dn”,a,a); printf(“%10.2f
19、,%-10.1fn”,f,f); printf(“%10.5s,%-10.3sn”,c,c);運行結(jié)果:1234,1234 123.46,123.5 Hello,Hel例 -例 int a=1234; float f=123.456; printf(“%08dn”,a); printf(“%010.2fn”,f); printf(“%0+8dn”,a); printf(“0+10.2fn”,f); 例 0 、+例 int a=123; printf(“%o,%#o,%X,%#Xn”,a,a,a,a); 例 #例 long a=65536; printf(“%d,%8ldn”,a, a); 例
20、l00 00 00 00 00 00 00 0100 00 00 00 00 00 00 00/00001234/0000123.46/000+1234/000+123.56/173,0173,7B,0X7B/0, 65536 3.5.2 scanf 函數(shù)(格式化輸入函數(shù)) 一般形式:scanf(格式控制,地址列表)例如: main() int a,b,c; scanf(%d%d%d,&a,&b,&c); printf(%d,%d,%d,a,b,c);輸入:3 4 5 輸出:3,4,5&是取地址運算符數(shù)據(jù)間用空格間隔格式輸入函數(shù)格式: scanf(“格式控制串”,地址表)功能:按指定格式從鍵盤
21、讀入數(shù)據(jù),存入地址表指定的 存儲單元中,并按回車鍵結(jié)束返值:正常,返回輸入數(shù)據(jù)個數(shù)地址表:變量的地址,常用取地址運算符&格式字符:d,i,o,x,u,c,s,f,e例 scanf(“%d”,&a); 輸入:10 則 a=10例 scanf(“%x”,&a); 輸入:11 則 a=17 scanf格式字符d 用來輸入十進制整數(shù)。o 用來輸入八進制整數(shù)。x 用來輸入十六進制整數(shù)。c 用來輸入單個字符。s 用來向字符數(shù)組輸入字符串,以空格結(jié)束, 0為最后一個字符,是結(jié)束標志。f 用來(以小數(shù)或指數(shù)形式)輸入實數(shù)。e, g 與f作用相同。l 用于輸入long int /double型數(shù)據(jù)%ld,%lf
22、。h 用于輸入短整型數(shù)據(jù):%hd,%ho,%hx。* 輸入項讀入后不賦給變量%*, 跳過該數(shù)據(jù)。說 明(1)unsigned型數(shù)據(jù)可用%d,%o,%x格式輸入。(2)可指定輸入數(shù)據(jù)位數(shù), 系統(tǒng)自動截取所需數(shù)據(jù):如scanf(“%3d%3d”,&a,&b);輸入123456,系統(tǒng)將 123賦給a,456賦給b。 如scanf(“%3c”,&ch);輸入abc,系統(tǒng)只將a賦給ch。因為char類型只接收1個字符。(3)%*用來跳過相應(yīng)的數(shù)據(jù): scanf(%2d %*3d %2d,&a,&b); 輸入: 12 345 67 輸出12 67。(4)輸入時不能規(guī)定精度, 如scanf(“%7.2f”,
23、&a)。scanf函數(shù)執(zhí)行中注意的問題(1) 格式后面應(yīng)該是地址變量, &取地址符號。 如:scanf(“%d%d”,&a,&b)(2)如果格式控制中包括其它字符,輸入時應(yīng)該輸入相同的字符。 如:scanf(“%d,%d”,&a,&b)(3)使用%c時格式字符和“轉(zhuǎn)義字符”都作為有效字符輸入: 如:scanf(“%c%c%c”,&a,&b,&c);輸入a b c,輸出為a b,即a賦給a,空格賦給b。(4)在輸入數(shù)據(jù)時,以下情況認為輸入結(jié)束(1)遇空格、回車、Tab(2)遇寬度結(jié)束“%3d” (3) 遇非法字符,如 scanf(“%d%c%f” ,&a,&b,&c); 輸入: 1234a123
24、.056abc0誤輸入o4.6 順序程序舉例輸入三邊長,求三角形面積#includemain()float a,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,a,b,c,s);printf(area=%7.2fn,area);用到庫函數(shù)從鍵盤輸入一大寫字母,要求用小寫字母輸出: 字符ASC對照048 149,: ; ? A65 Z90 , - a97 z122 printf(“%c”,A+32); 輸出 : a例:輸入大寫字母,用小寫字母輸出。#includemain()char c1,c2;c1=getchar();printf(%c,%d,c1,c1);c2=c1+32;pri
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 正規(guī)足浴加盟合同協(xié)議
- 工業(yè)自動化材料采購合同
- 地毯物流配送合同
- 全面升級旅游服務(wù)合同模板
- 石灰石購銷合同格式
- 學(xué)生個人衛(wèi)生保證書
- 電力設(shè)備招標文件示范文本
- 補充協(xié)議勞工合同細節(jié)
- 專業(yè)電腦維護保養(yǎng)
- 抹灰分包工程勞務(wù)合同
- 《紅樓夢》十二講智慧樹知到期末考試答案章節(jié)答案2024年安徽師范大學(xué)
- 項目介紹書范文
- 2024年巴西玩具市場機會及渠道調(diào)研報告
- 2024年《建筑節(jié)能》理論考試題庫(濃縮500題)
- 2024廚具采購合同
- 酶工程智慧樹知到期末考試答案章節(jié)答案2024年華南理工大學(xué)、暨南大學(xué)、華南農(nóng)業(yè)大學(xué)
- 會計師事務(wù)所的年度工作總結(jié)
- 2024年中考作文十二大高頻熱點主題9-家國情懷(素材)
- 中國裝備智慧樹知到期末考試答案章節(jié)答案2024年上海電機學(xué)院
- 2022-2023學(xué)年山東省菏澤市單縣人教PEP版四年級上冊期末考試英語試卷
- 停車場管理系統(tǒng)之車位引導(dǎo)系統(tǒng)設(shè)計-畢業(yè)設(shè)計論文
評論
0/150
提交評論