版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第四章 最簡(jiǎn)單的 C 程序設(shè)計(jì)順序程序設(shè)計(jì)§4.1 C 語(yǔ)句概述一個(gè) C 程序應(yīng)由兩部分組成,即數(shù)據(jù)描述和數(shù)據(jù)操作。數(shù)據(jù)描述:用來(lái)定義數(shù)據(jù)結(jié)構(gòu)和預(yù)置數(shù)據(jù)初值,由聲明部分實(shí)現(xiàn)。如: int a=3 ; 數(shù)據(jù)操作:對(duì)已提供的數(shù)據(jù)進(jìn)行加工,由語(yǔ)句來(lái)實(shí)現(xiàn)。所以,語(yǔ)句是C 程序的主體。C語(yǔ)句可以分為 5 大類。4 1 1 程序控制語(yǔ)句if() else while() continueswitch 其中:()表示一個(gè)條件。 表示內(nèi)嵌的語(yǔ)句。如:4 1 2 函數(shù)調(diào)用語(yǔ)句for() do while() breakgoto returnif(x>y) z=x ; else z=y ;由函數(shù)加
2、上一個(gè)分號(hào)構(gòu)成。如: printf( “hellow ”) ;4 1 3 表達(dá)式語(yǔ)句 表達(dá)式加上一個(gè)分號(hào)即可組成一個(gè)表達(dá)式語(yǔ)句。如: i=1 ; x=sin(y) ;等。4 1 4 空語(yǔ)句一個(gè)分號(hào)就是一個(gè)空語(yǔ)句,表示什么都不做。4 1 5 復(fù)合語(yǔ)句用 括起的一個(gè)語(yǔ)句序列。 如: z=x+y ; t=z/100 ; printf( “%f”,t) ; 4 1 6 賦值語(yǔ)句a=b;。1、構(gòu)成:賦值語(yǔ)句由賦值表達(dá)式加上一個(gè)分號(hào)構(gòu)成。如2、說(shuō)明1) C 語(yǔ)言中的賦值號(hào)是一個(gè)運(yùn)算符,這是與其它高級(jí)語(yǔ)言相區(qū)別的。2)賦值表達(dá)式作為表達(dá)式可以出現(xiàn)在其它任何表達(dá)式中,而作為語(yǔ)句則不能。如: if ( a=b)
3、 >0) t=a ;,表示先將 b 賦給 a,且如果 a>0 則將 a 賦給 t。但: if(a=b;) >0) t=a;,則是錯(cuò)誤的。§4.2 數(shù)據(jù)輸入輸出的概念及在 C中的應(yīng)用4 2 1 數(shù)據(jù)輸入輸出的概念1、輸入:相對(duì)于計(jì)算機(jī)主機(jī)而言,從外設(shè)讀入數(shù)據(jù)。如:鍵盤、磁盤、光盤等。2、輸出:相對(duì)于計(jì)算機(jī)主機(jī)而言,向外設(shè)輸出數(shù)據(jù)。如:顯示器、磁盤、打印機(jī)。4 2 2 數(shù)據(jù)輸入輸出的實(shí)現(xiàn)1、C 本身并不提供輸入輸出語(yǔ)句,輸入輸出操作是由函數(shù)來(lái)實(shí)現(xiàn)的。函數(shù)已編譯成 OBJ文件以庫(kù)的形式存放在系統(tǒng)中,在源程序編譯后由連接程序?qū)⑺蛶?kù)進(jìn)行連 接生成可執(zhí)行文件。2、在使用輸入輸
4、出函數(shù)之前, 在程序的開頭應(yīng)加上包含了與標(biāo)準(zhǔn) I/O 庫(kù)有關(guān)的變量 定義和宏定義的頭文件。格式為:#include“stdio.h ”或 #include <stdio.h>但標(biāo)準(zhǔn)的輸入輸出操作 scanf 和 printf 由于使用頻繁, 可以不加 #include 命令。§ 4.3 字符數(shù)據(jù)的輸入輸出4 3 1 單個(gè)字符的輸出1、格式 putchar(字符型數(shù)據(jù)) ;2、功能 向標(biāo)準(zhǔn)輸出設(shè)備輸出一個(gè)字符。3、說(shuō)明1)也可以輸出整型數(shù)據(jù),此時(shí),該數(shù)據(jù)作為字符的ASCII 碼值。2)該函數(shù)使用前需用#include“stdio.h ”或 #include <stdi
5、o.h>例 1:#include<stdio.h>main()char c ;/*定義字符變量 */c='B' ;/*給字符變量賦值 */putchar(c) ; /* putchar('x42') ; /* putchar(0x42) ; /* 4 3 2 單個(gè)字符的輸入輸出該字符 */輸出字母 B*/ 直接用 ASCII 碼值輸出字母 B*/1、格式 getchar();2、功能 等待從鍵盤上讀入字符 , 直到按回車結(jié)束 , 回車前的所有輸入字符都會(huì)逐個(gè)顯示 在屏幕上,但只有第一個(gè)字符作為函數(shù)的返回值。3、說(shuō)明1)該函數(shù)的返回值可以賦給整型
6、或字符型變量,也可作為表達(dá)式的一部分。 如: putchar( getchar();2)該函數(shù)使用前需用 #include例 2:stdio.h ”或 #include <stdio.h>#include<stdio.h>main()從鍵盤讀入字符直到回車結(jié)束 */ 顯示輸入的第一個(gè)字符 */char c ; c=getchar() ; /* putchar(c) ; /* § 4.4 格式輸入與輸出Turbo C2.0 標(biāo)準(zhǔn)庫(kù)提供了兩個(gè)控制臺(tái)格式化輸入、 輸出函數(shù) printf() 和 scanf(), 這 兩個(gè)函數(shù)可以在標(biāo)準(zhǔn)輸入輸出設(shè)備上以各種不同的格式讀
7、寫數(shù)據(jù)。 printf() 函數(shù)用來(lái)向 標(biāo)準(zhǔn)輸出設(shè)備 (屏幕)寫數(shù)據(jù); scanf() 函數(shù)用來(lái)從標(biāo)準(zhǔn)輸入設(shè)備 (鍵盤)上讀數(shù)據(jù)。下面詳 細(xì)介紹這兩個(gè)函數(shù)的用法。4 4 1 格式輸出函數(shù)1、格式printf("< 格式控制 >", < 輸出表列 >) ;其中:格式控制包括兩部分內(nèi)容 : 一部分是正常字符 , 這些字符將按原樣輸出;另 一部分是格式化控制字符 , 以 "%"開始 , 后跟一個(gè)或幾個(gè)規(guī)定字符,用來(lái)確 定輸出內(nèi)容格式。輸出表列是需要輸出的一系列參數(shù) , 其參數(shù)必須與格式化字符串所說(shuō)明的輸 出參數(shù)個(gè)數(shù)一樣多 , 各參數(shù)之間
8、用 "," 分開 , 且順序一一對(duì)應(yīng) , 否則將會(huì)出 現(xiàn)錯(cuò)誤。2、功能以指定的格式向顯示器輸出“輸出表列”的內(nèi)容, “輸出表列”可以是任意類型的 數(shù)據(jù)。3、討論1)格式化控制符Turbo C2.0 提供的格式化規(guī)定符如下 :作用%d , %i帶符號(hào)十進(jìn)制形式輸出整數(shù)(正號(hào)不輸出)%u無(wú)符號(hào)十進(jìn)制形式輸出整數(shù)%f小數(shù)形式輸出單、雙精度數(shù),隱含 6 位小數(shù)%s輸出字符串%c輸出單個(gè)字符%e , %E指數(shù)形式輸出單、雙精度數(shù),隱含 6 位小數(shù)%x, %X無(wú)符號(hào)十六進(jìn)制形式輸出整數(shù)(不輸出前導(dǎo)符“0”)%x :小寫輸出 a f ;%X:大寫輸出 A F%o無(wú)符號(hào)八進(jìn)制形式輸出整數(shù)(
9、不輸出前導(dǎo)符“0”)%g,%G選擇 %f、%e中輸出寬度較短的格式,不輸出無(wú)意義的“0”用%G時(shí),若以指數(shù)形式輸出,則指數(shù)大寫表示2)特殊規(guī)定字符字符作用n換行f清屏并換頁(yè)r回車tTab符ddd八進(jìn)制表示的 ASCII 碼xhh十六進(jìn)制表示的 ASCII 碼3)說(shuō)明在"%"和字母之間可以插進(jìn)數(shù)字表示最大場(chǎng)寬。例如: %3d 表示輸出 3 位整型數(shù) , 不夠 3 位右對(duì)齊。%9.2f 表示輸出 9 位實(shí)數(shù) , 其中小數(shù) 2 位,整數(shù) 6 位,小數(shù)點(diǎn) 1 位, 不夠 9 位右對(duì)齊。%8s 表示輸出 8 個(gè)字符的字符串 , 不夠 8 個(gè)字符右對(duì)齊。 如果字符串的長(zhǎng)度、或整型數(shù)位數(shù)
10、超過(guò)說(shuō)明的場(chǎng)寬 , 將按其實(shí)際長(zhǎng)度輸出。但對(duì)實(shí) 數(shù) , 若整數(shù)部分位數(shù)超過(guò)了說(shuō)明的整數(shù)位寬度, 將按實(shí)際整數(shù)位輸出;若小數(shù)部分位數(shù)超過(guò)了說(shuō)明的小數(shù)位寬度 , 則按說(shuō)明的寬度以四舍五入輸出。另外 , 若想在輸出值前加一些 0, 就應(yīng)在場(chǎng)寬項(xiàng)前加一個(gè) 0。例如 : %04d 表示在輸出一個(gè)小于 4 位的數(shù)值時(shí) , 將在前面補(bǔ) 0 使其總寬度為 4 位。 如果用實(shí)數(shù)表示字符或整型量的輸出格式 , 小數(shù)點(diǎn)后的數(shù)字代表最大寬度 , 小數(shù)點(diǎn) 前的數(shù)字代表最小寬度。例如: %6.9s 表示顯示一個(gè)長(zhǎng)度不小于 6 且不大于 9 的字符串。若大于 9, 則第 9 個(gè)字符以后的內(nèi)容將被刪除。可以在 "%
11、" 和字母之間加小寫字母 l, 表示輸出的是長(zhǎng)型數(shù)。例如 : %ld 表示輸出 long 整數(shù)%lf 表示輸出 double 實(shí)數(shù) 輸出默認(rèn)為右對(duì)齊,但如果在 "%" 和字母之間加入一個(gè) "-" 號(hào)則輸出為左對(duì)齊。 例如 : %-7d 表示輸出 7 位整數(shù)左對(duì)齊%-10s 表示輸出 10 個(gè)字符左對(duì)齊4、例子#include<stdio.h>#include<string.h> "Hello, Comrade"int main()char c, s int a=1234 ; float f=3.141
12、592653589double x=0.12345678987654321c='x41'printf("a=%dn", a) printf("a=%6dn", a) printf("a=%06dn", a) printf("a=%2dn", a) printf("*i=%4dn", *i) printf("f=%fn", f) printf("f=6.4fn", printf("x=%lfn", x) printf(&q
13、uot;x=%18.16lfn", x)f) ;/*/*/*/*a/*/*/*/*結(jié)果輸出十進(jìn)制整數(shù) a=1234*/ 結(jié)果輸出 6 位十進(jìn)制數(shù) a= 1234*/ 結(jié)果輸出 6 位十進(jìn)制數(shù) a=001234*/超過(guò) 2 位 , 按實(shí)際值輸出 a=1234*/ 輸出 4 位十進(jìn)制整數(shù) *i=12*/ 輸出浮點(diǎn)數(shù) f=3.141593*/輸出 6 位其中小數(shù)點(diǎn)后 4 位的浮點(diǎn)數(shù) f=3.1416*/ 輸出長(zhǎng)浮點(diǎn)數(shù) x=0.123457*/* 輸出 18 位其中小數(shù)點(diǎn)后 16 位的長(zhǎng)數(shù)x=0.1234567898765432*/printf("c=%cn", c) ;
14、 /* 輸出字符 c=A*/輸出字符的 ASCII 碼值 c=41*/ 輸出數(shù)組字符串 s=Hello, Comrade*/ 輸出最多 9 個(gè)字符的字符串 s=Hello , Co*/printf("c=%xn", c); /*printf("s=%sn", s) ; /* printf("s=%6.9sn", s) ; /* 4 4 2 格式輸入函數(shù)1、格式scanf("<其中:格式控制 >", < 地址表 >) ; 格式控制包括三部分內(nèi)容 : 一部分是格式化控制字符 , 以 "
15、%"開始 , 與 printf() 的用法基本相同;第二部分是“空格” ,其作用是在讀操作時(shí)略去 輸入數(shù)據(jù)中的一個(gè)或多個(gè)空格字符;第三部分是非空格字符,其作用是在讀 操作時(shí)剔除與該字符相同的字符。輸出表列是需要輸出的一系列參數(shù) , 其參數(shù)必須與格式化字符串所說(shuō)明的輸 出參數(shù)個(gè)數(shù)一樣多 , 各參數(shù)之間用 "," 分開 , 且順序一一對(duì)應(yīng) , 否則將會(huì)出 現(xiàn)錯(cuò)誤。地址表是需要讀入的所有變量的地址 , 而不是變量本身。 這與 printf() 函數(shù) 完全不同 , 要特別注意。各個(gè)變量的地址之間同 "," 分開。2、功能以指定的格式從鍵盤讀入數(shù)據(jù),并順
16、序存放到“地址表”指定的存儲(chǔ)單元中,并剔 除掉“格式控制”中指定的字符。例: main()int i, j ;printf("i, j=?n") ;scanf("%d, %d", &i, &j);上例中的 scanf() 函數(shù)先讀一個(gè)整型數(shù) , 然后把接著輸入的逗號(hào)剔除掉 , 最后讀入另 一個(gè)整型數(shù)。如果 "," 這一特定字符沒(méi)有找到 , scanf() 函數(shù)就終止。若參數(shù)之間的分隔 符為空格 , 則參數(shù)之間必須輸入一個(gè)或多個(gè)空格。3、討論1)對(duì) 于字符串?dāng)?shù)組或字符串指針變量 , 由于數(shù)組名和指針變量名本身就是地址 ,
17、 因此使用 scanf()函數(shù)時(shí) , 不需要在它們前面加上"&" 操作符。/*從健盤輸入字符串 */向屏幕輸出字符串 */mian()char *p, str20;scanf("%s", p) ; /* scanf("%s", str);printf("%sn", p);printf("%sn", str) ;2)可 以在格式化控制字符中的 "%"和規(guī)定字符之間加一個(gè)整數(shù) , 表示讀操作中數(shù)的最 大位數(shù)。如: scanf("%10s", p) ;,
18、程序運(yùn)行時(shí)一旦輸入字符個(gè)數(shù)大于 10, p 就不 再繼續(xù)讀入 , 而后面的一個(gè)輸入函數(shù)即 scanf("%s", str) 就會(huì)從第 11 個(gè)字符開始 讀入。3) 在用“ %c”輸入字符時(shí),空格字符和轉(zhuǎn)義字符都作為有效字符。4) 數(shù)據(jù)輸入的結(jié)束標(biāo)志是回車鍵,但遇到下列符號(hào)也視為輸入結(jié)束,即該符號(hào)后的 數(shù)據(jù)無(wú)效,但整個(gè)輸入過(guò)程仍是按下回車鍵結(jié)束??崭矜ITab 鍵 非法輸入 超過(guò)指定的數(shù)據(jù)寬度§ 4.5 順序結(jié)構(gòu)程序設(shè)計(jì)舉例例 1:輸入三角形的條邊長(zhǎng),求三角形的面積。#include“math.h ”main()float a,b,c,s,aera ; scanf( “%f,%f,%f ”,&a,&b,&c) ; s=1.0/2*(a+b+c) ; aera=sprt(s*(s-a)*(s-b)*(s-c) ; printf( “a=%7.2f,b=%7.2f,c=%7.2f
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025遼寧康復(fù)醫(yī)學(xué)中心科研助理招聘筆試考試參考試題及答案解析
- 2025內(nèi)蒙古蘇尼特左旗原種畜牧業(yè)發(fā)展有限公司招聘4人參考考試題庫(kù)及答案解析
- 南昌市勞動(dòng)保障事務(wù)代理中心招聘6名項(xiàng)目外包服務(wù)人員考試備考題庫(kù)及答案解析
- 2026河北吳橋雜技藝術(shù)學(xué)校高層次人才選聘3人備考考試題庫(kù)及答案解析
- 網(wǎng)簽三方合同協(xié)議
- 職工安置合同范本
- 聯(lián)合出品協(xié)議合同
- 聯(lián)想服務(wù)協(xié)議合同
- 聯(lián)通傭金合同范本
- 聘用內(nèi)勤合同范本
- 中醫(yī)寒熱辨證
- 環(huán)衛(wèi)安全隱患排查報(bào)告
- 海洋氣象數(shù)據(jù)同化技術(shù)創(chuàng)新
- 《光伏發(fā)電工程安全驗(yàn)收評(píng)價(jià)規(guī)程》(NB-T 32038-2017)
- 帶你聽(tīng)懂中國(guó)傳統(tǒng)音樂(lè)智慧樹知到期末考試答案2024年
- 醫(yī)院檢驗(yàn)科個(gè)人述職報(bào)告
- 教改課題的選題與申報(bào)課件
- 2023年11月貴陽(yáng)人文科技學(xué)院下半年公開招聘53名專職教師筆試歷年高頻考點(diǎn)難、易錯(cuò)點(diǎn)薈萃附答案帶詳解
- 水質(zhì)分析儀安裝調(diào)試報(bào)告
- 在好的情緒里遇見(jiàn)更好的自己初中情緒管理主題班會(huì)-初中主題班會(huì)優(yōu)質(zhì)課件
- 教科版四年級(jí)上冊(cè)科學(xué)期末測(cè)試卷(含答案)
評(píng)論
0/150
提交評(píng)論