




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、C程序設(shè)計(jì),楊蕓 Email: ,第4章 最簡(jiǎn)單的C程序設(shè)計(jì)順序程序設(shè)計(jì),在第1章中介紹了幾段簡(jiǎn)單的C程序,在第3章中介紹了程序中用到的一些基本要素(常量、變量、運(yùn)算符、表達(dá)式等),它們是構(gòu)成程序的基本成分。本章將介紹幾種簡(jiǎn)單的C語句以及怎樣利用它們編寫簡(jiǎn)單的程序。,4.1 C語句概述,C語言的語句用來向計(jì)算機(jī)系統(tǒng)發(fā)出操作指令。一個(gè)語句經(jīng)編譯后產(chǎn)生若干條機(jī)器指令。一個(gè)實(shí)際的程序應(yīng)當(dāng)包含若干語句。C語句都是用來完成一定操作任務(wù)。聲明部分的內(nèi)容不應(yīng)稱為語句。如 “int a;”不是一條C語句,它不產(chǎn)生機(jī)器操作,而只是對(duì)變量的定義。,C程序結(jié)構(gòu):,C語句分為以下5類:,(1)控制語句??刂普Z句用于完
2、成一定的控制功能。C只有9種控制語句: if() else for() while() do while() continue break switch goto return,(2)函數(shù)調(diào)用語句。函數(shù)調(diào)用語句由一個(gè)函數(shù)調(diào)用加一個(gè)分號(hào)構(gòu)成。 (3)表達(dá)式語句。表達(dá)式語句由一個(gè)表達(dá)式加一個(gè)分號(hào)構(gòu)成。 (4)空語句:;。 (5)復(fù)合語句。可以用把一些語句括起來成為復(fù)合語句。,for() (4)空語句:;,#includestdio.h void main() for(int i=0;i=100;i+) printf(%dn,i); ,#includestdio.h void main() for(
3、int i=0;i=100;i+) ; printf(%dn,i); ,可以用把一些語句括起來成為復(fù)合語句。,#includestdio.h void main() for(int i=0;i=5;i+) printf(1n); printf(2n); printf(3n); ,#includestdio.h void main() for(int i=0;i=5;i+) printf(1n); printf(2n); printf(3n); ,4.2 賦值語句,賦值語句是由賦值表達(dá)式加上一個(gè)分號(hào)構(gòu)成。,# includestdio.h void main() int i; if(i=10)
4、/錯(cuò):if(i=1;0) printf(i0n); else printf(i0n); ,4.3 數(shù)據(jù)輸入輸出的概念及在C語言中的實(shí)現(xiàn),(1)所謂輸入輸出是以計(jì)算機(jī)主機(jī)而言的。從計(jì)算機(jī)向外部輸出設(shè)備(如顯示器、打印機(jī)等)輸出數(shù)據(jù)成為輸出,從輸入設(shè)備(如鍵盤、鼠標(biāo)、掃描儀等)向計(jì)算機(jī)輸入數(shù)據(jù)稱為輸入。 (2)C語言本身不提供輸入輸出語句,輸入和輸出操作是由C函數(shù)庫中的函數(shù)來實(shí)現(xiàn)的。C語言函數(shù)庫中有一批“標(biāo)準(zhǔn)輸入輸出函數(shù)”,它是以標(biāo)準(zhǔn)的輸入輸出設(shè)備為輸入輸出對(duì)象的。其中有putchar、getchar、printf、scanf、puts、gets。 (3)在使用系統(tǒng)庫函數(shù)時(shí),要用預(yù)編譯命令“#in
5、clude”將有關(guān)的“頭文件”包括到用戶源文件中。在頭文件中包含了調(diào)用函數(shù)時(shí)所需的有關(guān)信息。,4.4 字符數(shù)據(jù)的輸入輸出4.4.1 putchar函數(shù),putchar函數(shù)(字符輸出函數(shù)) 的作用是向標(biāo)準(zhǔn)輸出設(shè)備輸出一個(gè)字符。 函數(shù)原型:int putchar(char ch);,例4.1輸出單個(gè)字符,#include void main() char a, b, c; a=B; b=O; c=Y; /*a=getchar(); b=getchar(); c=getchar();*/ putchar(a);putchar(b); putchar(c); putchar(n); ,#include
6、 void main() char a, b, c; a=B; b=O; c=Y; int ia,ib,ic; ia=putchar(a); ib=putchar(b); ic=putchar(c); printf(%d,%d,%dn,ia,ib,ic); ,4.4.2 getchar函數(shù),getchar函數(shù)(字符輸入函數(shù))的作用是從標(biāo)準(zhǔn)輸入設(shè)備輸入一個(gè)字符。 函數(shù)原型:int getchar(); 函數(shù)的值就是從輸入設(shè)備得到的字符。,#include void main() char c1=getchar(); char c2=getchar(); char c3=getchar(); pr
7、intf(%cn,c1); printf(%cn,c2); printf(%cn,c3); ,例4.2輸入單個(gè)字符,#include void main() char c; c=getchar(); putchar(c); putchar(n); ,4.5 格式輸入與輸出,C語言的格式輸入輸出的規(guī)定比較繁瑣,用的不對(duì)就得不到預(yù)期的結(jié)果,而輸入輸出又是最基本的操作,幾乎每一個(gè)程序都包含輸入輸出。,4.5.1 printf函數(shù),printf函數(shù)(格式輸出函數(shù))的作用是向終端(或系統(tǒng)隱含指定的輸出設(shè)備)輸出若干個(gè)任意類型的數(shù)據(jù)。 1、printf函數(shù) printf(格式控制, 輸出表列) 格式控制是
8、用雙撇號(hào)括起來的字符串,包括兩種信息。 格式說明。格式說明由“%”和格式字符組成,作用是將輸出的數(shù)據(jù)轉(zhuǎn)換為指定的格式輸出。 普通字符。普通字符即需要原樣輸出的字符。 輸出表列是需要輸出的一些數(shù)據(jù)??梢允潜磉_(dá)式。,2、格式字符,輸出時(shí)對(duì)不同類型的數(shù)據(jù)要使用不同的格式字符。 (1)d格式符:用來輸出十進(jìn)制整數(shù)。 %d:按十進(jìn)制整型數(shù)據(jù)的實(shí)際長(zhǎng)度輸出。 %md:m為指定的輸出字段的寬度。如果數(shù)據(jù)的位數(shù)小于m,則左端補(bǔ)以空格。若大于m,則按實(shí)際位數(shù)輸出。 C %ld:輸出長(zhǎng)整型數(shù)據(jù)。long int c=123456; printf(c=%ldn,c); printf(c=%4ldn,c);,#inc
9、lude void main() printf(12345678901234567890n); int a=123; int d=1234; printf(a=%4dn,a); printf(d=%4dn,d); ,#include void main() printf(12345678901234567890n); long int a=123456; printf(%8ldn,a); ,(2)o格式符:以八進(jìn)制整數(shù)形式輸出整數(shù)。由于是將內(nèi)存單元中的各位的值按八進(jìn)制形式輸出,因此輸出的數(shù)值不帶符號(hào),即將符號(hào)位也一起作為八進(jìn)制數(shù)的一部分輸出。 #include void main() int
10、a=12; printf(%on,a); printf(%xn,a); ,(3)x格式符:以十六進(jìn)制數(shù)形式輸出整數(shù)。同樣不會(huì)出現(xiàn)負(fù)的十六進(jìn)制數(shù)。 int a=-1; Printf(“%d %o%nxn”,a,a,a);,(4)u格式符:用來輸出unsigned型數(shù)據(jù),即無符號(hào)數(shù),以十進(jìn)制整數(shù)形式輸出。一個(gè)有符號(hào)整數(shù)(int型)也可以用%u格式輸出;反之,一個(gè)unsigned型數(shù)據(jù)也可以用%d格式輸出。按相互賦值的規(guī)則處理。unsigned型數(shù)據(jù)也可用%o或%x格式輸出。Unsigned int a=232=4294967295; singned int b=-2 Printf(“%d,%o,%
11、x,%un”,a,a,a,a); Printf(“%d,%o,%x,%un”,b,b,b,b);,例4.3無符號(hào)數(shù)據(jù)的輸出,#include void 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); ,(5)c格式符:用來輸出一個(gè)字符。一個(gè)整數(shù),只要它的值在0255范圍內(nèi),也可以用字符形式輸出,在輸出前,系統(tǒng)會(huì)將該整數(shù)作為ASCII碼轉(zhuǎn)換成相應(yīng)的字符;反之,一個(gè)字符數(shù)據(jù)也可以用整數(shù)形式輸出。 例4.4字
12、符數(shù)據(jù)的輸出 #include void main() char c=a; int i=97; printf(“%c, %dn”, c, c); printf(“%c, %dn”, i, i); ,#include void main() char c=a; int i=256+97; printf(%c,%dn,c,c); printf(%3c,%dn,i,i); ,(6)s格式符:用來輸出一個(gè)字符串。 %s:將字符串的內(nèi)容全部輸出。 %ms:輸出的字符串占m列,如果字符串本身長(zhǎng)度大于m,則突破m的限制,將字符串全部輸出。若串長(zhǎng)小于m則左補(bǔ)空格。 %-ms:如果串長(zhǎng)小于m,則在m列范圍內(nèi),字
13、符串向左靠,右補(bǔ)空格。 %m.ns:輸出占m列,但只取字符串中左端n個(gè)字符。這n個(gè)字符輸出在m列的右側(cè),左補(bǔ)空格。 %-m.ns:m、n含義同上,n個(gè)字符輸出在m列范圍的左側(cè),右補(bǔ)空格。如果nm,則m自動(dòng)取n值,即保證n個(gè)字符正常輸出。,例4.5字符串的輸出,#include void main() printf(12345678901234567890n); printf(%3sn,CHINA); printf(%7.2sn,CHINA); printf(%.4sn,CHINA); printf(%-5.3sn,CHINA); ,(7)f格式符:用來輸出實(shí)數(shù)(包括單、雙精度),以小數(shù)形式輸出
14、。 %f:不指定字段寬度,由系統(tǒng)自動(dòng)指定,使整數(shù)部分全部輸出,并輸出6位小數(shù)。在輸出的數(shù)字中并非全部數(shù)字都是有效數(shù)字。單精度實(shí)數(shù)的有效位數(shù)一般為7位。,例4.6輸出實(shí)數(shù)時(shí)的有效位數(shù),#include void main() float x, y; printf(12345678901234567890n); x=111111.111; y=222222.222; printf(%fn, x+y); ,例4.7輸出雙精度數(shù)時(shí)的有效位數(shù),#include void main() double x, y; printf(12345678901234567890n); x=1111111111111.
15、111111111; y=2222222222222.222222222; printf(%lfn, x+y); ,%m.nf:指定輸出的數(shù)據(jù)共占m列,其中有n位小數(shù)。如果數(shù)值長(zhǎng)度小于m,則左端補(bǔ)空格。 %-m.nf:與%m.nf基本相同,只是使輸出的數(shù)值向左端靠,右端補(bǔ)空格。,例4.8輸出實(shí)數(shù)時(shí)指定小數(shù)位數(shù),#include void main() float f=123.456; printf(12345678901234567890n); printf(%fn,f); printf(%10.2fn,f); printf(%.2fn,f); printf(%-10.2fn,f); ,(8)
16、e格式符:以指數(shù)形式輸出實(shí)數(shù)。 %e:不指定輸出數(shù)據(jù)所占的寬度和數(shù)字部分的小數(shù)位數(shù),有的C編譯系統(tǒng)自動(dòng)指定給出數(shù)字部分的小數(shù)位數(shù)為6位,指數(shù)部分占5位(如e+002),指數(shù)符占1位,指數(shù)占3位。數(shù)值按規(guī)范化指數(shù)形式輸出(即小數(shù)點(diǎn)前必須有而且只有1位非零數(shù)字)。 %m.ne和%-m.ne:m、n和-字符的含義與前相同。n指輸出的數(shù)據(jù)的小數(shù)部分的小數(shù)位數(shù)。 printf(“%en”,123.456); printf(“%10.2en”,123.456) Printf(“%.2en”,123.456) Printf(“%-10.2en”,123.456);,(9)g格式符:用來輸出實(shí)數(shù),根據(jù)數(shù)值的大
17、小,自動(dòng)選f格式或e格式(選擇輸出時(shí)占寬度較小的一種),且不輸出無意義的零。,printf格式字符:,在格式說明中在%和上述格式字符間可以插入以下幾種附加符號(hào)(又稱修飾符):,在使用printf函數(shù)時(shí)還有幾點(diǎn)要說明:,(1)除了X、E、G外,其他格式字符必須用小寫字母,如%d不能寫成%D。 (2)可以在printf函數(shù)中的“格式控制”字符串內(nèi)包含“轉(zhuǎn)義字符”。 (3)格式說明的一般格式: % (4)如果想輸出字符“%”,則應(yīng)該在“格式控制”字符串中用連續(xù)兩個(gè)%表示。,4.5.2 scanf函數(shù),1、一般形式 scanf(格式控制,地址表列) “格式控制”的含義同printf函數(shù);“地址表列”是
18、由若干個(gè)地址組成的表列,可以是變量的地址,或字符串的首地址。,例4.9用scanf函數(shù)輸入數(shù)據(jù),#include void main() int a, b, c; scanf(“%d%d%d”, ,2、格式說明,scanf的附加格式說明字符:,說明:,(1)對(duì)unsigned型變量所需的數(shù)據(jù),可以用%u,%d或%o,%x格式輸入。 (2)可以指定輸入數(shù)據(jù)所占列數(shù),系統(tǒng)自動(dòng)按它截取所需數(shù)據(jù)。 (3)如果在%后有一個(gè)“*”附加說明符,表示跳過它指定的列數(shù)。 (4)輸入數(shù)據(jù)時(shí)不能規(guī)定精度。,# includestdio.h void main() int a,b; scanf(%2d %*3d %2d, ,3、使用scanf函數(shù)時(shí)應(yīng)注意的問題,(1)scanf函數(shù)中的”格式控制“后面應(yīng)當(dāng)是變量地址,而不應(yīng)是變量名。 (2)如果在”格式控制“字符串中除了格式說明以外還有其他字符,則在輸入數(shù)據(jù)時(shí)在對(duì)應(yīng)位置應(yīng)輸入與這些字符相同的字符。 (3)在用”%c
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 老年照護(hù)測(cè)試題庫與答案
- 2025年上海金山區(qū)屬國(guó)有企業(yè)招聘考試筆試試題1(含答案)
- 老年摔傷護(hù)理課件
- 老年急救護(hù)理課件
- 老年康復(fù)護(hù)理課件模板
- 老年人文護(hù)理課件
- 老干部工作政策課件
- 老師德育課件
- 出租車企業(yè)車輛運(yùn)營(yíng)維護(hù)勞動(dòng)合同
- 銀行財(cái)務(wù)風(fēng)險(xiǎn)評(píng)估合同書63657
- 基于育人導(dǎo)向下的小學(xué)英語單元作業(yè)設(shè)計(jì)策略 論文
- 哪些地方必須設(shè)置噴淋洗眼器
- 國(guó)開期末考試《管理英語4》機(jī)考試題及答案第4套
- 產(chǎn)后出血的護(hù)理-課件
- 2023年春季國(guó)開《學(xué)前教育科研方法》期末大作業(yè)(參考答案)
- 上??茖W(xué)院事業(yè)單位工作人員招考聘用筆試參考題庫+答案解析
- EXCELVBA函數(shù)參考手冊(cè)
- 成都石室中學(xué)初中學(xué)校新初一分班(摸底)語文模擬試題(5套帶答案)
- SB/T 10279-2017熏煮香腸
- GB/T 3452.1-2005液壓氣動(dòng)用O形橡膠密封圈第1部分:尺寸系列及公差
- GB/T 27065-2015合格評(píng)定產(chǎn)品、過程和服務(wù)認(rèn)證機(jī)構(gòu)要求
評(píng)論
0/150
提交評(píng)論