版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、4.1 C語(yǔ)句概述 4.2 程序的三種基本結(jié)構(gòu) 4.3 賦值語(yǔ)句 4.4 數(shù)據(jù)輸入輸出的概念及在語(yǔ)言中的實(shí)現(xiàn) 4.5 字符數(shù)據(jù)的輸入輸出 4.6 格式輸入與輸出 4.7 順序結(jié)構(gòu)程序設(shè)計(jì)舉例 習(xí)題,第4章 最簡(jiǎn)單的c程序設(shè)計(jì) 順序程序設(shè)計(jì),上章介紹程序中用到的基本要素,它們是構(gòu)成程序的基本成分。 本章介紹編寫(xiě)程序必需的內(nèi)容。 4.1 C語(yǔ)句概述 C語(yǔ)句是向計(jì)算機(jī)系統(tǒng)發(fā)出的操作指令。 一個(gè)語(yǔ)句經(jīng)編譯后產(chǎn)生若干條機(jī)器指令。 一個(gè)C程序包含若干語(yǔ)句。 每一個(gè)C的函數(shù)都是由聲明和 語(yǔ)句兩部分組成。 程序包含:數(shù)據(jù)描述(數(shù)據(jù)初值,數(shù)據(jù)結(jié)構(gòu)) 數(shù)據(jù)操作(數(shù)據(jù)加工),典型的C程序結(jié)構(gòu)。,C程序,源文件1,源
2、文件2,源文件n,預(yù)處理命令,全局變量聲明,函數(shù)1,函數(shù)n,函數(shù)首部,函數(shù)體,局部變量 聲明,執(zhí)行語(yǔ)句,指令1.n,C語(yǔ)句可分為以下5類(lèi): 1)控制語(yǔ)句(完成一定控制功能,9種控制語(yǔ)句) if else(條件語(yǔ)句)switch (多分支選擇) for()goto (轉(zhuǎn)向) while() (循環(huán)語(yǔ)句) return (從函數(shù)返回) do while() continue (結(jié)束本次循環(huán)) break (終止switch/循環(huán)) ()表其中一個(gè)條件:如:if(xy) z=x ; else z=y ;,2) 函數(shù)調(diào)用語(yǔ)句 由一個(gè)函數(shù)調(diào)用+“;”語(yǔ)句 如:printf(“This is a func
3、tion call.”); 3)表達(dá)式語(yǔ)句 由一個(gè)表達(dá)式+“;”語(yǔ)句 例如:a=3是表達(dá)式 a=3; 就是語(yǔ)句 i+; x+y; 4) 空語(yǔ)句 ; 可做轉(zhuǎn)向點(diǎn)或循環(huán)語(yǔ)句中的循環(huán)體。,5)復(fù)合語(yǔ)句 用 把一些語(yǔ)句括起來(lái)成復(fù)合語(yǔ)句=分程序。 如: z = x + y; t = z / 100; printf(“%f”, t); * C語(yǔ)言允許一行寫(xiě)n個(gè)語(yǔ)句,也允許一個(gè)語(yǔ)句拆開(kāi)寫(xiě)n行,無(wú)固定要求。,最后一語(yǔ)句最后分號(hào)不能省,4.2 賦值語(yǔ)句,賦值表達(dá)式+“;” C的賦值語(yǔ)句的特點(diǎn): 1)=在C中是運(yùn)算符; 2)賦值表達(dá)式 如:if( a = b) 0) t = a; if( a = b;) 0) t
4、 = a;,4.3 數(shù)據(jù)輸入輸出的概念及在C語(yǔ)言中 的實(shí)現(xiàn),1)輸入、輸出: 輸入輸出以主機(jī)為主體。由主機(jī)向外設(shè)輸出數(shù)據(jù)稱(chēng)為輸出。 由外部向輸入設(shè)備輸入數(shù)據(jù)為輸入。 輸入:鍵盤(pán),磁盤(pán),掃描儀 輸出:顯示器,打印機(jī) 輸入輸出:磁盤(pán),串行口 2)C語(yǔ)言中沒(méi)有輸入、輸出語(yǔ)句。輸入、 輸出是靠函數(shù)來(lái)完成的。 在標(biāo)準(zhǔn)函數(shù)庫(kù)中提供I/O函數(shù):printf() scanf(),無(wú)I/O語(yǔ)句目的:避免在編譯階段處理與硬件有關(guān)問(wèn)題, 使編譯系統(tǒng)簡(jiǎn)化。 通用性強(qiáng)、可移植性好。 用I/O函數(shù) 在編譯時(shí),不把它翻譯成目標(biāo)指令。 在執(zhí)行中才調(diào)用已被連接的函數(shù)庫(kù)中函數(shù)。 C編譯系統(tǒng) C函數(shù)庫(kù) 分別設(shè)計(jì) C庫(kù)中有一批“標(biāo)準(zhǔn)
5、I/O函數(shù)”:printf() putchar() (字符輸出) puts scanf() getchar(字符輸入) gets 3)使用庫(kù)函數(shù)時(shí),要用預(yù)編譯命令 #include 目的是將有關(guān)的“頭文件”包括到用戶(hù)源文件中。在用到“標(biāo)準(zhǔn)I/O庫(kù)函數(shù)” 時(shí),要用 “stdio.h”文件 #include 特殊的: printf 和scanf這兩個(gè)函數(shù),使用頻繁,可不用頭文件,以標(biāo)準(zhǔn)I/O設(shè)備為I/O對(duì)象的,與函數(shù)有關(guān)信息,Standard input ch 字符型 整型,例4.1 輸出單個(gè)字符 #include main() char a, b, c; a = B; b = O; c = Y;
6、 putchar(a); putchar(b); putchar(c); 運(yùn)行結(jié)果:BOY * 也可輸出控制字符: putchar(n); putchar(a); putchar(n); putchar(b); putchar(n);putchar(c); putchar(n); 運(yùn)行結(jié)果:B O Y * 可輸出其它轉(zhuǎn)義字符 如:putchar(101); 輸出字符A putchar(015); 輸出回車(chē),但不換行 putchar(); 輸出單引號(hào),4.4.2 getchar()-字符輸入函數(shù),功能:從終端讀入一個(gè)字符,無(wú)參數(shù)。 用法:c = getchar(); 例4.2 輸入單個(gè)字符 #i
7、nclude main() char ch; ch = getchar(); putchar(ch); 可改為putchar(getchar(); 或printf(“%c”, getchar();,4.5 格式輸入與輸出,4.5.1 printf()函數(shù) 1. printf()函數(shù)的一般格式 printf(格式控制字符串,輸出列表); 如:printf(“%d, %dn”, i, j); 輸出3,4 格式控制: 用” ”括起來(lái)的字符串,即“轉(zhuǎn)換控制字符串”。 格式說(shuō)明:由“%+格式字符”組成。作用:將輸出的數(shù)據(jù)轉(zhuǎn) 換為指定的格式輸出。 普通字符: 原樣輸出的字符,如:逗號(hào)、空格、換行符等。 輸
8、出列表:需輸出的數(shù)據(jù),可為表達(dá)式。 printf(“a=%d,b= %dn”, i, j); 輸出a=3,b=4,printf()函數(shù)一般形式 printf(參數(shù)1,參數(shù)2,.) 功能:將參數(shù)按給定格式輸出。 2、格式字符: 不同類(lèi)型數(shù)據(jù)用不同的格式字符,常用以下幾種。 (1) d格式符:用來(lái)輸出十進(jìn)制 整數(shù)。(有以下幾種用法) %d, %md, %ld l %d,按整型數(shù)據(jù)的實(shí)際長(zhǎng)度輸出 l %md,m指定的輸出字段的寬度 a) 若數(shù)據(jù)位數(shù)小于m,則左補(bǔ)空格 b) 若數(shù)據(jù)位數(shù)大于m,則按實(shí)際位數(shù)輸出 例如:printf(“%4d,%4d”,a,b); /*若a=123,d=12345*/ 輸
9、出結(jié)果: 123,12345 4列 5列,%ld,輸出長(zhǎng)整型數(shù)據(jù) 例如:long a=135790; printf(“%ld”,a); 輸出結(jié)果:135790 a)若用%d輸出,就會(huì)出錯(cuò),輸出4718,因整型數(shù)據(jù)的范圍位-3276832767 b)對(duì)長(zhǎng)整型數(shù)據(jù)可指定字段寬度,如printf(“%8ld”,a); 輸出結(jié)果: 135790 8列 c)一個(gè)整型數(shù)據(jù)(int)可以用%d或%ld格式輸出。 2) %o 以八進(jìn)制整數(shù)形式輸出整數(shù) (由于是將內(nèi)存單元中的各位的值(0或1)按8進(jìn)制形式輸出,因此,輸出的數(shù)值“不帶符號(hào)”,即將符號(hào)位也一起作為8進(jìn)制數(shù)的一部分輸出。 1 1 1 1 1 1 1
10、1 1 1 1 1 1 1 1 1 例如:int a=-1; printf(“%d,%o”,a,a);-1的內(nèi)存: 運(yùn)行結(jié)果:-1,177777 16位,a) 不會(huì)輸出帶負(fù)號(hào)的8進(jìn)制整數(shù),對(duì)long型數(shù)可以用“%lo”格式 b) 同樣可指定字段寬度,如printf(“%8o”,a); 結(jié)果: 177777 8列 3)%x, %X 以十六進(jìn)制整數(shù)形式輸出 l 不會(huì)出現(xiàn)負(fù)的16進(jìn)制數(shù) 例如:int a=-1; printf(“%x,%o,%d”,a,a,a); 運(yùn)行結(jié)果:ffff,177777,-1 可指定輸出字段的寬度 4)%u 輸出無(wú)符號(hào)十進(jìn)制整數(shù) (1) u格式符:用來(lái)輸出unsigned型
11、數(shù)據(jù),無(wú)符號(hào)數(shù),以10進(jìn)制形式輸出。 l 一個(gè)有符號(hào)整數(shù)(int型),也可用%u格式輸出 l 一個(gè)unsigned型數(shù)據(jù),也可用%d格式輸出 l 一個(gè)unsigned型數(shù)據(jù),也可用%x,%o格式輸出,例4.3:無(wú)符號(hào)數(shù)據(jù)的輸出 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); 運(yùn)行結(jié)果: a=-1, 177777, ffff, 65535 b=-2, 177776, fffe, 65534 5)C格式符:輸出一個(gè)字符 例如
12、:char c=a; 0255 printf(“%c”,c); 一個(gè)整數(shù),只要它的值在0255范圍內(nèi),也可用字符格式輸出,在輸出前,系統(tǒng)會(huì)將該整數(shù)作為ASCII碼轉(zhuǎn)換成相應(yīng)的字符 l 反之,一個(gè)字符數(shù)據(jù)也可用整數(shù)形式輸出。,1 1 1 1 1 1 1 1,例:4.4 字符數(shù)據(jù)的輸出 main() char c = a; int i = 97; printf(“%c, %dn”, c, c); printf(“%c, %dn”, i, i); 運(yùn)行結(jié)果:a, 97 a, 97 此外,也可指出字符寬度。 例如:printf(“%3c”,c); 運(yùn)行結(jié)果: a 占3列 6)s格式符:輸出一個(gè)字符串
13、有以下幾種方法: %s %ns %-ns %m.ns %-m.ns,l %s: 例如:printf(“%s”,”CHINA”) 輸出結(jié)果:CHINA l%ms:輸出字符串占m列,若突破m限制,則全部輸出 若小于m,則左補(bǔ)空格 l%-ms:若串長(zhǎng)小于m,則在m列范圍內(nèi),字符串向左靠,右補(bǔ)空格 l %m.ns:輸出占m列,但只取串左端n個(gè)字符,n個(gè)字符輸出在m列的右 側(cè),左補(bǔ)空格。 l%-m.ns:m、n與上面的含義相同,但n個(gè)字符輸出在m列的左側(cè),右補(bǔ) 空格。 如果nm,取n值,保證n個(gè)字符正常輸出。 例4.5 字符串的輸出 printf(“%3s,%7.2s,%.4s,%5.3s.n”,”CH
14、INA”,”CHINA”, ”CHINA”,”CHINA”); 運(yùn)行結(jié)果:CHINA, CH,CHIN, CHI . 5列 7列 4列 5列 其中,%.4s 表示未指定m,則m=n=4,7)f格式符:輸出實(shí)數(shù)(包括單、雙精度),以小數(shù)形式輸出。 有以下幾種用法: l %f:不指定字段寬度,由系統(tǒng)自動(dòng)指定,使整數(shù)部分全部如數(shù)輸出, 并輸出6位小數(shù)。 a) 單精度實(shí)數(shù)的有效位數(shù)一般位7位。 b) 雙精度實(shí)數(shù)的有效位數(shù)一般位16位,其中小數(shù)占6位。 例4.6(P76):輸出實(shí)數(shù)時(shí)的有效位數(shù)。 void main() float x,y; x=111111.111;y=222222.111; prin
15、tf(“%f”,(x+y); 運(yùn)行結(jié)果:333333.218750 前7位數(shù)有效,即333333.2有意義,后面的無(wú)意義。,不包括小數(shù)點(diǎn),例4.7(P76):輸出雙精度時(shí)的有效位數(shù)。 void main() double x,y; x=1111111111111.111111111; /* 13個(gè)1 . 9個(gè)1 */ y=2222222222222.222222222; /* 13個(gè)2 . 9個(gè)2 */ printf(“%f”,(x+y); 運(yùn)行結(jié)果:3333333333333.222660 前16位數(shù)有效,即3333333333333.222有意義,后3位無(wú)意義。 l %m.nf:指定輸出的
16、數(shù)據(jù)共占m列,其中有n位小數(shù), 若數(shù)值長(zhǎng)度小于m,則左補(bǔ)空格。 l %-m.nf:與上同,輸出數(shù)值向左端靠,右補(bǔ)空格,例4.8(P76):輸出實(shí)數(shù)時(shí)指定小數(shù)位數(shù)。 void main() float f=123.456; printf(“%f,%10f,%10.2f,%.2f,%-10.2f.n”,f,f,f,f,f); 運(yùn)行結(jié)果:123.456001,123.456001, 123.46,123.46,123.46 . 注意:%10f 小數(shù)點(diǎn)算一位。 %.2f 四舍五入,保留2位小數(shù)。,8)e格式:指數(shù)形式輸出實(shí)數(shù) E 以下形式: a) %e: 不指定輸出數(shù)據(jù)所占的寬度和小數(shù)位數(shù),由系統(tǒng)自動(dòng)
17、給出6位小數(shù),指數(shù)部分占5位(如:e+002),數(shù)值按規(guī)范化指數(shù)形式輸出(只1位非0數(shù)字,在小數(shù)點(diǎn)前) 例如(P77):printf(“%e”,123.456); 輸出結(jié)果:1.234560e+002 共占13列(算小數(shù)點(diǎn)) b) %m.ne和%-m.ne:(n:指小數(shù)位數(shù)) 例如(P77):printf(“%e %10e%10.2%.2e %-10.2e”,f,f,f,f,f); 1.234560e+0021.234560e+002_1.23e+002)1.23e+0021.23e+002 13列13列 10列 9列 10列,因?yàn)槲粗赋鲂?shù)位數(shù)n,則自動(dòng)n=6,則為13列,因此超過(guò)10,按實(shí)
18、際的長(zhǎng)度輸出13列。,9)g格式符:輸出實(shí)數(shù)。 根據(jù)數(shù)值大小自動(dòng)選f格式或e格 式(選擇輸出時(shí)占寬度較小的一種),但不 輸出無(wú)意義的0。 例如: f=123.468 printf(“%f%e%g”,f,f,f); 123.4680001.234680e+002123.468 10列 13列 10列(選擇%f和%e中位數(shù)少的作為輸出) 小結(jié)9種格式符,見(jiàn)書(shū)P77P78表4.1和4.2 說(shuō)明: a) 務(wù)必?cái)?shù)據(jù)類(lèi)型應(yīng)與格式說(shuō)明匹配,否則出錯(cuò) b) 除X,E,G外,格式字符用小謝字母,如%d(正確),%D(錯(cuò)誤) c) 可在printf中包含轉(zhuǎn)移字符,如:”n”,”t”,”b”,”r”,”f”等 d) 若想輸出字符“%”,則應(yīng)在“格式控制”字符串中用連續(xù)兩個(gè)%表示。 例如:printf(“%f%”,1.0/3); 輸出:0.333333%,表4.1 printf格式字符,4.5.2 scanf函數(shù)(格式輸入函數(shù)),1. 一般形式: scanf(格
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026貴州安順市消防救援支隊(duì)面向社會(huì)招聘政府專(zhuān)職消防員20人(第一批)考試備考題庫(kù)及答案解析
- 2026江西九江市修水縣投資集團(tuán)有限公司招聘21人考試參考題庫(kù)及答案解析
- 2025安徽亳州市利辛縣產(chǎn)業(yè)發(fā)展集團(tuán)有限公司招聘擬聘公示考試參考題庫(kù)及答案解析
- 2026年河北唐山中心醫(yī)院眼科急聘2人考試備考題庫(kù)及答案解析
- 2026年1月重慶市永川區(qū)衛(wèi)星湖街道辦事處招聘公益性崗位人員2人考試備考試題及答案解析
- 2026湖南長(zhǎng)沙市實(shí)驗(yàn)小學(xué)北園學(xué)校春季教師(含實(shí)習(xí)教師)招聘筆試備考試題及答案解析
- 2026中國(guó)一汽校園招聘考試備考題庫(kù)及答案解析
- AI全棧存儲(chǔ)的價(jià)值重估-
- 2026重慶人民醫(yī)院招聘考試備考試題及答案解析
- 2026年撫順職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能筆試參考題庫(kù)帶答案解析
- 現(xiàn)代漢語(yǔ)語(yǔ)法研究-陸儉明
- 趙玉平管理領(lǐng)導(dǎo)學(xué)
- JJF 1129-2005尿液分析儀校準(zhǔn)規(guī)范
- GB/T 17941-2008數(shù)字測(cè)繪成果質(zhì)量要求
- 八年級(jí)數(shù)學(xué):菱形-菱形的性質(zhì)課件
- 煙道專(zhuān)項(xiàng)施工方案
- 人力資源統(tǒng)計(jì)學(xué)(第二版)新課件頁(yè)
- 中國(guó)醫(yī)院質(zhì)量安全管理 第4-2部分:醫(yī)療管理 護(hù)理質(zhì)量管理 T∕CHAS 10-4-2-2019
- 水肥一體化施工組織設(shè)計(jì)
- 某辦公樓室內(nèi)裝飾工程施工設(shè)計(jì)方案
- 高考復(fù)習(xí)反應(yīng)熱
評(píng)論
0/150
提交評(píng)論