




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 C語(yǔ)言程序設(shè)計(jì) 第1章 基本概念41.1 C語(yǔ)言的產(chǎn)生及發(fā)展史41.2 C語(yǔ)言特點(diǎn)6C
2、語(yǔ)言及其程序的基本形式6第2章 數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式72.1 基本數(shù)據(jù)類(lèi)型72.2 常量與變量82.3 運(yùn)算符102.4 表達(dá)式112.5 逗號(hào)運(yùn)算符與逗號(hào)表達(dá)式12第三章 順序結(jié)構(gòu)143.2 數(shù)據(jù)輸出143.2.1 printf函數(shù)的使用143.3 數(shù)據(jù)輸入173.4 復(fù)合語(yǔ)句193.4.1 復(fù)合語(yǔ)句193.4.2 空語(yǔ)句203.5 程序舉例20第4章 選擇結(jié)構(gòu)214.1 關(guān)系運(yùn)算與邏輯運(yùn)算214.1.1 關(guān)系運(yùn)算214.1.2 邏輯運(yùn)算214.2 if語(yǔ)句224.3 條件表達(dá)式254.4 switch選擇結(jié)構(gòu)與break語(yǔ)句26第五章 循環(huán)結(jié)構(gòu)285.1 while 循環(huán)285.2 d
3、o while 循環(huán)295.3 for語(yǔ)句和for語(yǔ)句構(gòu)成的循環(huán)305.4 循環(huán)的嵌套325.5 break 與 continue 在循環(huán)中的應(yīng)用33第六章 字符型數(shù)據(jù)356.1 字符型常量356.1.1 字符型常量356.1.2 轉(zhuǎn)義字符數(shù)據(jù)的寫(xiě)法356.1.4 可對(duì)字符量進(jìn)行運(yùn)算366.2 字符型變量366.3 字符的輸入與輸出366.3.1 用printf與scanf作輸出與讀取366.3.2 用putchar 與 getchar作字符的輸出與讀取37第七章 函數(shù)397.1 庫(kù)函數(shù)397.2 自定義函數(shù)397.2.1 函數(shù)的書(shū)寫(xiě)方法407.2.2 函數(shù)的返回值407.3 函數(shù)的調(diào)用417
4、.4 函數(shù)的說(shuō)明427.5 調(diào)用函數(shù)與被調(diào)用函數(shù)之間的數(shù)據(jù)傳遞45第八章 地址與指針488.1 變量的地址與指針488.2 指針變量的定義498.3 指針變量賦值498.4 對(duì)指針變量操作498.5 移動(dòng)指針508.6 函數(shù)之間的地址傳遞518.7 返回地址的函數(shù)叫做指針函數(shù)51第九章 數(shù)組529.1 一維數(shù)的定義與引用529.2 一維數(shù)組的訪問(wèn)529.3 數(shù)組的賦值529.5 一維數(shù)組與地址539.5 二維數(shù)組的定義和二維數(shù)組元素的引用579.5.1 二維數(shù)組的定義579.5.2 二維數(shù)組的訪問(wèn)589.5.3 二維數(shù)組在定義可以賦值589.5.4 可以通過(guò)賦值,確定行數(shù)589.6 二維數(shù)組與
5、指針59、二維數(shù)組實(shí)際上是由一維數(shù)組構(gòu)成:599.6.2 二維數(shù)組名也是二維數(shù)組的首地址599.7 二維數(shù)組與函數(shù)60第十章 字符串6410.1 用一維數(shù)組存放字符串6410.1.1 通過(guò)賦初值給一個(gè)字符數(shù)組賦成字符串65在程序執(zhí)行過(guò)程中給一維字符數(shù)組賦值6610.2 使指針指向一個(gè)字符串6610.2.1 可通過(guò)賦初值,指一個(gè)指針指向字符串6610.2.2 通過(guò)賦值運(yùn)算使指針指向一個(gè)字符串6610.3 字符串的輸入與輸出6610.3.1 輸入輸出字符串的必要條件6610.3.2 用格式說(shuō)明符%s進(jìn)行整串的輸入與輸出6610.3.3 用gets和puts函數(shù)對(duì)字符串進(jìn)行輸入與輸出6610.4 字
6、符串?dāng)?shù)組6710.5 用于字符串處理的函數(shù)67第十一章 遞歸函數(shù)70第十二章 C語(yǔ)言中變量的作用域與變量的存儲(chǔ)類(lèi)型7012.1 局部變量7012.2全局變量7112.3 局部靜態(tài)變量71第十三章 編譯預(yù)處理和動(dòng)態(tài)存儲(chǔ)分配7213.1宏替換7213.2 動(dòng)態(tài)存儲(chǔ)分配7313.2.1 malloc 函數(shù)與 free 函數(shù)73第十四章 結(jié)構(gòu)體與共用體7414.1 用typedef說(shuō)明一個(gè)類(lèi)型7414.2 結(jié)構(gòu)體類(lèi)型7414.2.1 結(jié)構(gòu)體類(lèi)型聲明的格式:7514.2.2 結(jié)構(gòu)體型的數(shù)組、變量、指針的定義7514.2.3 結(jié)構(gòu)體變量、數(shù)組的賦值7614.2.4 引用結(jié)構(gòu)體變量中的數(shù)據(jù)7714.2.5
7、對(duì)結(jié)構(gòu)體成員賦值7714.2.6 結(jié)構(gòu)體函數(shù)之間數(shù)據(jù)傳遞7814.3 鏈表81 第1章 基本概念本章主要內(nèi)容 明確C語(yǔ)言的產(chǎn)生及發(fā)展史 了解C語(yǔ)言特點(diǎn) 掌握C語(yǔ)言的表述環(huán)境 明確C語(yǔ)言及其程序的基本形式 1.1 C語(yǔ)言的產(chǎn)生及發(fā)展史 C語(yǔ)言屬于ALGOL語(yǔ)言族系, 產(chǎn)生于1972年. 是編程者設(shè)計(jì)的一種結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言. 它首先是為了編寫(xiě)PDP-11型計(jì)算機(jī)上的UNIX操作系統(tǒng)而產(chǎn)生出來(lái), 但后來(lái)發(fā)展成為一種獨(dú)立的程序設(shè)計(jì)語(yǔ)言, 并廣泛地應(yīng)用在
8、大型, 小型,微型計(jì)算機(jī)上.1967年英國(guó)劍橋大學(xué)的Matin Richards對(duì)CPL語(yǔ)言做了簡(jiǎn)化,推出了BCPL語(yǔ)言。1970年美國(guó)貝爾實(shí)驗(yàn)室的Ken Thompson以BCPL語(yǔ)言為基礎(chǔ),又做了進(jìn)一步簡(jiǎn)化,設(shè)計(jì)出了很簡(jiǎn)單的而且很接近硬件的B語(yǔ)言,并用B語(yǔ)言寫(xiě)了第一個(gè)UNIX操作系統(tǒng),在PDP-7上實(shí)現(xiàn)。itchie在B語(yǔ)言的基礎(chǔ)上設(shè)計(jì)出了C語(yǔ)言。 C語(yǔ)言的設(shè)計(jì)者Dennis M. Ritchie 1973年,K.Thompson和D.M.Ritchie兩人合作把UNIX的90以上用C改寫(xiě),即UNIX第5版,由此確立了C語(yǔ)言的地位。 R
9、itchie和Thompson在開(kāi)發(fā)UNIX 和Unix的設(shè)計(jì)者Ken Thompson接受美國(guó)國(guó)家技術(shù)勛章 C語(yǔ)言是一種"中級(jí)語(yǔ)言", 它介于高級(jí)語(yǔ)言(BASIC,FORTRAN .)和低級(jí)語(yǔ)言(匯編語(yǔ)言)之間. 它即具有高級(jí)語(yǔ)言功能(直接的人-機(jī)對(duì)話和數(shù)學(xué)計(jì)算),又具有低級(jí)語(yǔ)言功能(移位,位處理), 從而使其功能大大地增強(qiáng), 成為一種先進(jìn)的程序設(shè)計(jì)語(yǔ)言.1.2 C語(yǔ)言特點(diǎn) 語(yǔ)言簡(jiǎn)煉 使用的關(guān)鍵字僅為27個(gè), 而B(niǎo)ASIC語(yǔ)言為150多個(gè). 利用符號(hào)代替語(yǔ)句,表達(dá)簡(jiǎn)潔. 許多工作由大量的庫(kù)函數(shù)完成, 并且?guī)旌瘮?shù)可以自定義, 所以C語(yǔ)言的關(guān)鍵
10、字及其功能是無(wú)限的. 功能強(qiáng) 它集高級(jí)語(yǔ)言的特點(diǎn)和低級(jí)語(yǔ)言的特點(diǎn)于一身, 即能完成高語(yǔ)言的功能 又能完成低級(jí)語(yǔ)言的功能, 是一種強(qiáng)功能的語(yǔ)言. 由它編寫(xiě)的軟件有: UNIX, dBASE III, C編譯. 模塊化結(jié)構(gòu) C語(yǔ)言支持各種庫(kù)函數(shù)和用戶定義的函數(shù)(模塊)相互調(diào)用構(gòu)成程序, 完 成功能. 并且, 不允許嵌套定義, 因此, 具有很強(qiáng)的模塊化結(jié)構(gòu). 移植性好 利用C語(yǔ)言編的程序不加改動(dòng)或稍加改動(dòng), 就可以由一個(gè)環(huán)境移植到另一個(gè)環(huán)境上. 因?yàn)? 不同計(jì)算機(jī)上的C語(yǔ)言編譯代碼的80%左右相同. C語(yǔ)言及其程序的基本形式 這里介紹幾個(gè)簡(jiǎn)單的C語(yǔ)言程序,從中明確C
11、語(yǔ)言及其程序的基本形式。例 1.1main ( ) printf (“This is a C program.n); 本程序的作用是輸出以下一行信息,主要說(shuō)明C語(yǔ)言程序的基本組成部分,C語(yǔ)言程序的具體形式。 例.main ( ) /* 求兩數(shù)之和*/ int a,b,sum; /* 這是定義變量*/ a=123; b=456;/* 為變量賦初值*/ sum=a+b; /* 將兩個(gè)變量的值相加后賦給另一個(gè)變量*/ printf (“sum is %dn”, sum);/* 輸出相加后的結(jié)果*/ 本程序的作用是說(shuō)明一個(gè)較為全面的C語(yǔ)言程序,以及注釋的使用
12、。 第2章 數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式 本章主要內(nèi)容 理解數(shù)據(jù)類(lèi)型引入的目的、意義和具體類(lèi)型 明確常量與變量 掌握C語(yǔ)言的運(yùn)算符和表達(dá)式表 2.1 基本數(shù)據(jù)類(lèi)型 大千世界存在著各種各樣、各種類(lèi)型的數(shù),人們利用不同類(lèi)型的數(shù)去描述不同的事物。然而,哪些“類(lèi)型”的數(shù)據(jù)可以在C語(yǔ)言中使用?C語(yǔ)言中允許使用的“類(lèi)型”又是什么呢? 數(shù)據(jù)類(lèi)型:某一類(lèi)數(shù)據(jù)(值)的特征形式(表示意義、取值范圍、符號(hào)取向). 基本形:整數(shù)(int)、浮點(diǎn)(float)、字符(char)、無(wú)值(void)。構(gòu)造(組合、集合)型:數(shù)組、結(jié)構(gòu)(struct)聯(lián)合(union)、枚舉(e
13、num)。指針類(lèi)型空類(lèi)型 1. 1.整數(shù)和整數(shù)類(lèi)型整數(shù)在C語(yǔ)言中稱(chēng)為“整型常量”,因?yàn)樗幢硎玖酥?,又表示了一定的意義。 類(lèi)型字節(jié)數(shù)取值范圍signed int2-32768 - 32767Unsigned int20 - 65535signed shot int2-32768 - 32767Unsigned shot int20 - 65535long int4-2147483648 - 2147483647Unsigned long int40 - 4294967295注:方括弧內(nèi)的部分是可以省略的。例如:signed shot int 與shot等價(jià),尤其是 sign
14、ed 是完全多余的,一般都不寫(xiě)signed。 2. 浮點(diǎn)類(lèi)型(float)類(lèi)型字節(jié)數(shù)有效數(shù)字取值范圍float46 7-3.4X10(-38) - 3.4X10(38)double815 16-1.7X10(-308) - 1.7X10(308)long double1618 - 19-1.2X10(-4932) - 1.2X10(4932) 3. 字符類(lèi)型(char)類(lèi)型字節(jié)數(shù)意義char1表示一個(gè)字符 2.2 常量與變量 在3.1節(jié)學(xué)習(xí)了幾種數(shù)據(jù)的類(lèi)型,可以用它們表示客觀世界中的數(shù)值。那么,如果要表示客觀世界中的“事物”(事和物)怎么辦
15、?C語(yǔ)言中使用“量”來(lái)表達(dá)客觀事物,其中,自身數(shù)值不變的量用“常量”表示,自身數(shù)值變化的量用“變量”表示。因此,為了全面地表達(dá)客觀事物,在C語(yǔ)言中則必須使用(定義)常量和變量(表示事和物)。同時(shí),給出它們的類(lèi)型(表示數(shù)值)。 常量:程序執(zhí)行中其值不變的量。 類(lèi)型:一般(短整)常量、長(zhǎng)整常量、浮點(diǎn)常量、字符常量、字符串常量。符號(hào)常量定義式: #define 符號(hào)常量名;例: #define PI 3.14 意義: 變量:程序在執(zhí)行過(guò)程中其值變化的量。 類(lèi)型:一般(短整)變量、長(zhǎng)整變量、浮點(diǎn)變量、字符變量、字符串變量。定義式: 數(shù)據(jù)類(lèi)型 變量名; 例: int k; 意義:
16、定義整型變量k。 變量賦初值在C語(yǔ)言中常需要對(duì)變量預(yù)先設(shè)置初值,可以使用數(shù)的三種表示形式:十進(jìn)制數(shù)、八進(jìn)制數(shù)、十六進(jìn)制數(shù)和數(shù)據(jù)類(lèi)型為變量賦初值。 例3.1#define PRICE 30main ()int num,total;num=10;total=num*PRICE;printf (“total=%dn”,total); 本程序的作用是說(shuō)明常量的定義、賦值和使用。 例3.2main ( ) int a,b,c,d; unsigned u; a=12;b=-24;u=10; c=a+u;d=b+u; printf (“a+u
17、=%d,b+u=%dn”,c,d); 本程序的作用是說(shuō)明整型變量的定義、賦初值、運(yùn)算和其值的輸出。 例3.3main ( ) char c1,c2; c1=97; c2=98; printf (“%c %cn”,c1,c2);printf (“%d %dn”,c1,c2); 本程序的作用是說(shuō)明字符型變量的定義、賦初值和輸出。 例3.4main ( ) int a=3; float f=3.1415926;char c=a; printf (“nnn%d %f %cn”,a,f,c); 本程序的作用是說(shuō)明整型、字符、浮點(diǎn)變量的定義、賦
18、初值和輸出。 注:標(biāo)識(shí)符:由字母、數(shù)字和下線符構(gòu)成,標(biāo)志和識(shí)別一定意義的字符串。 類(lèi)型:關(guān)鍵字、特定字、一般標(biāo)識(shí)符(由用戶設(shè)定)。 作用:代表常量、變量、數(shù)據(jù)類(lèi)型、函數(shù)名字。關(guān)鍵字:在C語(yǔ)言中,具有嚴(yán)格特定含義的標(biāo)識(shí)符。 見(jiàn)教材 P365 附錄B 2.3 運(yùn)算符 在客觀事物使用數(shù)和量表示完以后,還要對(duì)它們進(jìn)行處理,進(jìn)行運(yùn)算,這就要涉及C語(yǔ)言中的運(yùn)算符。還要表達(dá)它們之間的關(guān)系,又要用到C語(yǔ)言中的表達(dá)式。那么C語(yǔ)言中提供了哪些運(yùn)算符和表達(dá)式讓我們使用呢? 運(yùn)算符C語(yǔ)言中的運(yùn)算符分為以下幾類(lèi):1. 1.算術(shù)運(yùn)算符 + - * / %
19、2. 2.關(guān)系運(yùn)算符 > < = >= <= !=3. 3.邏輯運(yùn)算符 && | !4. 4. 位運(yùn)算符 << >> | &5. 5.賦值運(yùn)算符 =6. 6.條件運(yùn)算符 ? :7. 7.逗號(hào)運(yùn)算符 ,8. 8.指針運(yùn)算符 * &9. 9.求字節(jié)數(shù)運(yùn)算符 sizeof10. 10.強(qiáng)制類(lèi)型轉(zhuǎn)換 (類(lèi)型)11. 11.分量運(yùn)算符變 . -> 12. 12.下標(biāo)運(yùn)算符 13. 13. 其它 函數(shù)調(diào)用運(yùn)算符 ( )見(jiàn)教材 P365 附錄C 算術(shù)運(yùn)算符 自增、自減算術(shù)運(yùn)算符+i; -i
20、; 意義:在使用i之前,先使i的值加1(減1)。i+; i-; 意義:在使用i之后,使i的值加1(減1)。 例: int m,n,s,t,k=10; m=+k; n=k+; s=-k; t=k-; 復(fù)合運(yùn)算符 a+=3; 等價(jià)于 a=a+3; x*=y+8; 等價(jià)于 x=x*(y+8); x%=3; 等價(jià)于 x=x%3; 2.4 表達(dá)式 表達(dá)式:使用運(yùn)算符將運(yùn)算(操作)對(duì)象連接起來(lái)的、符合C語(yǔ)法規(guī)則的式子。算術(shù)表達(dá)式、邏輯表達(dá)式、字位表達(dá)式、強(qiáng)制類(lèi)型轉(zhuǎn)換表達(dá)式、逗號(hào)(順序)表達(dá)式、賦值表達(dá)式、條件表達(dá)式、指針表達(dá)式。
21、60;例3.5main ( ) int a,b,c; float d,f=3.1415926; a=b=c=9; d=a/f; printf (“nnn%d %d %d %f n”,a,b,c,f);printf (“n%f n”,d); 本程序的作用是說(shuō)明賦值表達(dá)式、算術(shù)表達(dá)式的使用。 例3.6main ( ) int m=10;n=3; int s,t; s=m/2; t=n%2; printf (“nnn%d %d n”,s,t); 本程序的作用是說(shuō)明除法運(yùn)算符和取余運(yùn)算符的區(qū)別。 例3.7main ( )int i,j,k,l;i=2
22、,j=3;k=i+;l=-j;printf (“%d %d %d %d”,i,j,k,l); 本程序的作用是說(shuō)明自加、自減運(yùn)算符的使用。 例3.8main ()int num=1,total=11;num+=5;total%=num;printf ("n %d %dn",num,total);本程序的作用是說(shuō)明復(fù)合運(yùn)算符的使用。 例3.9main ( ) float x; int i; x=3.6; i=(int)x; printf (“n x=%f i=%dn”,x,i); 本程序的作用是說(shuō)明強(qiáng)制類(lèi)型轉(zhuǎn)換的問(wèn)
23、題。 2.5 逗號(hào)運(yùn)算符與逗號(hào)表達(dá)式 以前我們學(xué)過(guò) + - * /(特別) %(特別) = % 要求兩邊的操作數(shù)必須是整數(shù)如: 5%3 結(jié)果為 2 這個(gè)運(yùn)算符通常用作判斷一個(gè)數(shù)是否能被另一個(gè)數(shù)整除。這節(jié)課我們學(xué)習(xí)逗號(hào)運(yùn)算符,我們通過(guò)逗號(hào)表達(dá)式來(lái)看一下逗號(hào)運(yùn)算符是怎么回事。逗號(hào)表達(dá)的定義:用逗號(hào)連接的表達(dá)式,叫逗號(hào)表達(dá)式格式: 表達(dá)式1, 表達(dá)式2, 表達(dá)式3, 表達(dá)式4,表達(dá)式n逗號(hào)表達(dá)式的運(yùn)算順序:表達(dá)式1à 表達(dá)式2à 表達(dá)式3à表達(dá)式4à表達(dá)式n逗號(hào)表達(dá)式結(jié)果:最后一個(gè)表達(dá)式的結(jié)果將作為整個(gè)表達(dá)式的結(jié)果。例1、 例1
24、、看如下程序,寫(xiě)出結(jié)果#include "stdio.h"main()int k;k=(2+3,7,0,88);printf("k=%dn",k); /結(jié)果是 88例2、 例2、看如下程序,寫(xiě)出結(jié)果#include "stdio.h"main()int k;k=2+3,7,88;printf("k=%dn",k); /結(jié)果是 5說(shuō)明:賦值符號(hào)的優(yōu)先級(jí)要高于逗號(hào)運(yùn)算符,逗號(hào)運(yùn)算符的優(yōu)先級(jí)在所有的運(yùn)算符當(dāng)中是最低的。 例3、看如下程序,寫(xiě)出結(jié)果#include "stdio.h"main()int
25、k,i=5;k=(i+,i+,i+5); / k=(i=i+1),(i=i+1),(i+5);printf("k=%dn",k); /結(jié)果為 12例4、看如下程序,寫(xiě)出結(jié)果#include "stdio.h"main()int k,i=5;k=i+,i+,i+5; / k=(i=i+1),(i=i+1),(i+5);printf("k=%dn",k); 復(fù)習(xí)以前的知識(shí)運(yùn)算符+ 和 - - 運(yùn)算的規(guī)則是一樣的,我們以+為例進(jìn)行講解。+運(yùn)算符只能用于單變量身上,如i+, (a+b)+ 這樣寫(xiě)就不對(duì)了。用于單變量身上表示單變量本身
26、自增1。自增運(yùn)算符有兩種情況,一種作為前綴,別一種作為后綴。一、當(dāng)+作為前綴或是后綴時(shí),變量執(zhí)行的結(jié)果都是一樣的 #include "stdio.h"main()int i=5;i+;printf(" %d n",i); / 6 #include "stdio.h"main()int i=5;+i;printf(" %d n",i); / 6 說(shuō)明:無(wú)論是前綴還是后綴,i+(或+i) 都是使i自增1(i=i+1)
27、;二、+作為前綴與+作為后綴,表達(dá)式的值是不一樣的 #include "stdio.h"main()int k,i=5;k=i+;printf("%d %d n",k,i); /5 6#include "stdio.h"main()int k,i=5;k=+i;printf("%d %d n",k,i); / 6 6說(shuō)明:在上面的兩個(gè)程序中,K存放的都是自增表達(dá)式的值,兩個(gè)自增表達(dá)式的值是不同的。 (1) +i K得到的是i自增后的結(jié)果,我們用一句話表示:先運(yùn)算,后取值。(2) (2)i+K得到的是i自增
28、后前的結(jié)果,我們用一句話表示:先取值,后運(yùn)算。總結(jié)一下:i+ 和 +i 主要區(qū)別只是表達(dá)式的值不同,但是他們功能是一樣的,都是使i自增1.第三章 順序結(jié)構(gòu)在這一章中,我們主要講printf和scanf的使用,若在程序中使用printf和scanf,則應(yīng)在程序的第一行用#include 將”stdio.h”文件包含進(jìn)來(lái)。3.2 數(shù)據(jù)輸出3.2.1 printf函數(shù)的使用以前我們上講過(guò)一個(gè)例子:#include "stdio.h"main()double a,b;a=1.2;b=1.2;printf("a=%f,b=%f n",a,b);說(shuō)明:在上面的pri
29、ntf中,存在一個(gè)格式符 %f ,%f是專(zhuān)門(mén)用來(lái)輸出double變量?jī)?nèi)容,那么上面程序的執(zhí)行結(jié)果:printf的使用方法:printf(“字符串”,輸出的變量);說(shuō)明:1、雙引號(hào)中的字符除了格式符(是用來(lái)輸出變量的)之外,其它字符是原樣輸出。2、我們主要學(xué)習(xí)哪些格式符呢?double %f(%lf) float %fint %d long %ld 例1、寫(xiě)出程序結(jié)果#include "stdio.h"main()float x,y;x=33.0; y=66.0;printf("x=%f,y=%f",x,y);例2 寫(xiě)出程序結(jié)果#include
30、"stdio.h"main()int k;int a=11,b=3;k=a%b;printf("k=%d n",k);例3寫(xiě)出程序結(jié)果#include "stdio.h"main()long k;long a=9,b=3;k=a%b;printf("k=%ld n",k);3、printf(“字符串”,輸出的變量); 該格式中第二部分是可以省略,那么就輸出字符串。#include "stdio.h"main()printf("*Hello World*n");4、可以在%d之
31、間加上一個(gè)數(shù)字,用來(lái)指定輸出數(shù)所占的寬度,如%5d,則數(shù)占5個(gè)字符的寬度,字符默認(rèn)向右對(duì)齊。例1、#include "stdio.h"main()int a=3;int b=50;int c=500; printf("%5dn",a);printf("%5dn",b);printf("%5dn",c);例2、#include "stdio.h"main()int a=3; int b=50;int c=500; int d=5000; printf("%5dn&qu
32、ot;,a);printf("%-5dn",b);printf("%dn",c);printf("%3dn",d); 若實(shí)際寬度 < 指定的寬度,則%nd數(shù)字默認(rèn)向右對(duì)齊若實(shí)際寬度 < 指定的寬度,則%-nd 默認(rèn)向左對(duì)齊%d是我們以前的老模式,正常輸出若實(shí)際寬度 > 指定的寬度,則正常輸出5、對(duì)于輸出(float 或 double ) 的%f,可以在%和f之間,加上m.n ,%m.nfm:是指定整個(gè)數(shù)所占寬度 n:指定小數(shù)位數(shù)如:a=3.145678 若想保留兩位小數(shù)輸出,則 %4.2f#include
33、"stdio.h"main()double a=3.145678;printf("a=%4.2f n",a); / 3.15有時(shí)出題人比較懶,他容易將%4.2f寫(xiě)成 %.2f,%.2f的意思:小數(shù)按兩位輸出,整數(shù)部分要原樣輸出的。#include "stdio.h"main()double a=300.145678;printf("a=%.2f n",a); / 300.15 /%1.2f 是先保證小數(shù)位輸出,然后整數(shù)位原樣輸出3.3 數(shù)據(jù)輸入如何能過(guò)鍵盤(pán)給程序中的變量賦值呢?#include "stdi
34、o.h"main()double a,b,area;a=1.2;b=1.2;area = a*b;printf("a=%.2f,b=%.2f,area =%.2f n",a,b,area);通過(guò) scanf函數(shù)給變量賦值,看一下scanf函數(shù)的使用形式:scanf(“字符串”,變量的地址);說(shuō)明1、給變量賦值也要能過(guò)格式符 double %lf float %fint %d long %ld 現(xiàn)在我們舉一個(gè)最常見(jiàn)的例子:#include "stdio.h"main()double a,b,area;scanf("%lf%lf
35、",&a,&b);area = a*b;printf("a=%.2f,b=%.2f,area =%.2f n",a,b,area);注意:scanf("%lf%lf",&a,&b); 雙引號(hào)內(nèi)的格式符要挨著,不要加一些其它字符,要賦值的變量前加&2、如何給變量賦值#include "stdio.h"main()double a,b,c,area;scanf("%lf%lf%lf",&a,&b,&c);area = a*b+c;printf(&
36、quot;a=%.2f,b=%.2f,c=%.2f,area =%.2f n",a,b,area);1) 1 2 3 回車(chē)2) 1 回車(chē) 2 回車(chē) 3 回車(chē)3) 1 tab 2 3總之:數(shù)據(jù)之間可以任意加空格,回車(chē),Tab,最后用回車(chē)表示數(shù)據(jù)輸入結(jié)束。3、在scanf中,我們可以指定所要讀取數(shù)的寬度#include "stdio.h"main()int a,b,c,area;scanf("%3d%2d%4d",&a,&b,&c);area = a*b+c;printf("a=%3d,b=%3d,c=%
37、3d,area =%3d n",a,b,c,area);說(shuō)明:若在鍵盤(pán)中輸入1234567890時(shí),此時(shí)%3d讀取了123賦給了a,%2d讀取了45賦給了b,%4d讀取了6789賦給了c,4、用%*d可以是跳過(guò)一個(gè)數(shù)#include "stdio.h"main()int a,b,area;scanf("%d%*d%d",&a,&b);area = a+b;printf("a=%3d,b=%3d,area =%3d n",a,b,area); /若輸入123 456 789<回車(chē)>說(shuō)明:此時(shí)第一個(gè)%
38、d讀取了123,遇空格結(jié)束,第二%*d會(huì)跳過(guò)456,第三個(gè)%d讀取了789。例1、#include "stdio.h"main()int a,b,area;scanf("%3d%*3d%3d",&a,&b);area = a+b;printf("a=%3d,b=%3d,area =%3d n",a,b,area); /若輸入123 456 789<回車(chē)>例2、#include "stdio.h"main()int a,b,area;scanf("%2d%*3d%2d"
39、,&a,&b);area = a+b;printf("a=%3d,b=%3d,area =%3d n",a,b,area);輸入1234567890說(shuō)明:讀取了12送給了a,跳過(guò)345,讀取了67賦給了b.最后注意,同學(xué)們?cè)谏蠙C(jī)的時(shí)候總愛(ài)出現(xiàn)這樣的毛?。?include "stdio.h"main()int a,b,area;scanf("%d,%d,%d",&a,&b,&c);area = a+b+c;printf("a=%3d,b=%3d,c=%3d,area =%3d n&quo
40、t;,a,b,c,area);同學(xué)們千萬(wàn)要注意:在scanf的雙引號(hào),一定要按著雙引號(hào)的字符原樣輸入,這樣才是正確的,如上題:123,456,789#include "stdio.h"main()int a,b,c,area;scanf("please input a,b,c: %d%d%d",&a,&b,&c);area = a+b+c;printf("a=%3d,b=%3d,c=%3d,area =%3d n",a,b,c,area);此時(shí)正確的輸入方法是:please input a,b,c:123 12
41、 13.4 復(fù)合語(yǔ)句 復(fù)合語(yǔ)句復(fù)合語(yǔ)句的概念:就是用 括起來(lái)的0個(gè)或多個(gè)語(yǔ)句叫復(fù)合語(yǔ)句。復(fù)合語(yǔ)句在C語(yǔ)言語(yǔ)法上來(lái)說(shuō),是作為一個(gè)整體(也可以說(shuō)作為一條大的語(yǔ)句)如:#include "stdio.h"main()int a,b,c,area;scanf("%d%d%d",&a,&b,&c);area = a+b+c;printf("a=%3d,b=%3d,c=%3d,area =%3d n",a,b,c,area);這個(gè)C語(yǔ)言程序從上到下一共3條語(yǔ)句。 空語(yǔ)句空語(yǔ)句:就是一個(gè)單分號(hào),空語(yǔ)句也是一條合法的語(yǔ)句。#i
42、nclude "stdio.h"main()int a,b,c,area;scanf("%d%d%d",&a,&b,&c);area = a+b+c;printf("a=%3d,b=%3d,c=%3d,area =%3d n",a,b,c,area);該程序一共是5條語(yǔ)句,當(dāng)計(jì)算機(jī)執(zhí)行到第四條語(yǔ)句(空語(yǔ)句)時(shí),計(jì)算機(jī)什么也不干。3.5 程序舉例例3.1 從鍵盤(pán)輸入兩個(gè)整數(shù),給x和y賦值,在程序中使x和y的值交換,然后再輸出交換后的x和y的值。#include "stdio.h"main()i
43、nt x,y,t;scanf("%d%d",&x,&y);t=x; x=y; y=t;printf("x=%d,y=%d n",x,y);例3.2 輸入一個(gè)double 數(shù)給n,輸出該數(shù)時(shí),要對(duì)小數(shù)點(diǎn)的第三位進(jìn)行四舍五入,后輸出n。#include "stdio.h"main()double n;scanf("%lf",&n);n=n*100;n=n+0.5;n=(int)n;n=n/100;printf("n=%.2f",n);第4章 選擇結(jié)構(gòu)4.1 關(guān)系運(yùn)算與邏輯運(yùn)算
44、 關(guān)系運(yùn)算關(guān)系運(yùn)算主要是由 > >= < <= != =,由關(guān)系運(yùn)算符構(gòu)成的表達(dá)式是關(guān)系表達(dá)式。這里面講的主要是:是表達(dá)式都得有值,關(guān)系表達(dá)式也有值(當(dāng)關(guān)系成立時(shí),表達(dá)式的值為1,不成立關(guān)系表達(dá)式的值為 0)#include "stdio.h"main()int k;k=1>2;printf(" 1>2 de zhi %dn", k); / 0k=1=2;printf(" 1=2 de zhi %dn", k); / 0k=1!=2;printf(" 1!=2 de zhi %dn&quo
45、t;, k); /1 邏輯運(yùn)算邏輯運(yùn)算符主要是由 &&(并且)、|(或者)、!(非)等運(yùn)算符組成?,F(xiàn)在說(shuō)一下運(yùn)算規(guī)則: !T 結(jié)果為 F!F 結(jié)果為 T |T | T T T | F TF | T TF | F F &&T && T T T && F FF && T FF && F F 例1、(T && T T)#include "stdio.h"main()int k;k=3>
46、;2 && 3>1;printf("%d",k);例2、(F && T F)#include "stdio.h"main()int k;k=3>12 && 3>1;printf("%d",k);例3、(T | F T)#include "stdio.h"main()int k;k=13>12 | 3>11;printf("%d",k);例4、(!T 結(jié)果為 F)#include "stdio.h"m
47、ain()int k;k=!(13>12);printf("%d",k);說(shuō)明:在邏輯表達(dá)式中,若其中一個(gè)表達(dá)式是非0的,那么在邏輯判斷中,計(jì)算機(jī)認(rèn)為是真#include "stdio.h"main()int k;k=(13>12) && -3;printf("%d",k);4.2 if語(yǔ)句if語(yǔ)句一共和2種基本的使用形式,還有2種嵌套的使用形式,當(dāng)然考試主要考兩種基本的使用形式,關(guān)于嵌套同學(xué)們認(rèn)識(shí)一下就可以了。 基本形式1、1、使用形式:if(條件)語(yǔ)句2、執(zhí)行過(guò)程:若條件成立,則執(zhí)行if中的語(yǔ)
48、句,否則執(zhí)行if語(yǔ)句后面的語(yǔ)句。3、例1:從鍵盤(pán)輸入兩數(shù),輸出最大數(shù):#include "stdio.h"main()int m,n; int max;scanf("%d%d",&m,&n);max=m;if(max<n)max=n;printf("max=%d n",max);例3、 例3、從鍵盤(pán)輸入三數(shù)給a,b,c變量,再輸出a,b,c變量時(shí),三數(shù)是由大到小的順序輸出#include "stdio.h"main()int a,b,c;int t;scanf("%d%d%d&quo
49、t;,&a,&b,&c);if(a < b)t=a; a=b; b=t;if(a < c)t=a; a=c; c=t;if(b < c)t=b; b=c; c=t;printf("%d %d %d n",a,b,c);#include "stdio.h"main()int a,b,c;int t;scanf("%d%d%d",&a,&b,&c);if(a < b)t=a; a=b; b=t;if(a < c)t=a; a=c; c=t;if(b < c
50、)t=b; b=c; c=t;printf("%d %d %d n",a,b,c); 運(yùn)行:沒(méi)有達(dá)到預(yù)期,因?yàn)閕f語(yǔ)句中,若條件成立時(shí),同時(shí)執(zhí)行多條語(yǔ)句,多條語(yǔ)句必須用括起來(lái),構(gòu)成復(fù)合語(yǔ)句,才可以。上面程序中,if后面的多條語(yǔ)句沒(méi)有被括起來(lái),if只與最近的語(yǔ)句搭配。正確的寫(xiě)法如下:#include "stdio.h"main()int a,b,c;int t;scanf("%d%d%d",&a,&b,&c);if(a < b)t=a; a=b; b=t;if(a < c)t=a; a=c;
51、 c=t; if(b < c)t=b; b=c; c=t; printf("%d %d %d n",a,b,c);第二種基本形式:含else的if語(yǔ)句1、使用形式if(條件)語(yǔ)句1else語(yǔ)句22、執(zhí)行過(guò)程:若條件成立了,則執(zhí)行語(yǔ)句1,否則執(zhí)行語(yǔ)句23、例:從鍵盤(pán)輸入兩數(shù),輸出最大數(shù):#include "stdio.h"main()int m,n; int max;scanf("%d%d",&m,&n);if(m>n)max=m;elsemax=n;printf("max=%d n",m
52、ax);從鍵盤(pán)輸入一個(gè)整數(shù),若能被3整除,打印Yes ,否則打印No#include "stdio.h"main()int n;scanf("%d",&n);if(n%3=0)printf("Yes");elseprintf("No");if 語(yǔ)句是一條特殊的語(yǔ)句,所以他可以替換if語(yǔ)句中的語(yǔ)句。嵌套形式一: #include "stdio.h"main()int s; scanf("%d",&s);if(s>=60)i
53、f(s>=90)printf("youxiu n");elseprintf("jige n");elseprintf("Faild! n"); if(條件)if(條件)語(yǔ)句1else語(yǔ)句2else語(yǔ)句2 #include "stdio.h"main()int s; scanf("%d",&s);if(s<60)printf("Faild! n");elseif(s&
54、gt;=90)printf("youxiu n");elseprintf("jige n"); 嵌套形式二:if(條件)語(yǔ)句2else if(條件)語(yǔ)句1else語(yǔ)句2 例如:輸入一成績(jī)到變量S中,根據(jù)學(xué)生成績(jī)的等級(jí)分別輸出ABCDE等。#include "stdio.h"main()int s; scanf("%d",&s);if(s>=90)printf("A n");else if(s>=8
55、0)printf("B");else if(s>=70)printf("C");else if(s>=60)printf("D");else printf("E");4.3 條件表達(dá)式先擇結(jié)構(gòu)呢我們學(xué)習(xí)了if結(jié)構(gòu),現(xiàn)在我們還要學(xué)習(xí)另外一種選擇結(jié)構(gòu),叫條件表達(dá)式。我們首先看一下條件表達(dá)式的構(gòu)成:條件 ? 表達(dá)式1 : 表達(dá)式2 條件表達(dá)式的執(zhí)行過(guò)程:若條件成立,則計(jì)算機(jī)執(zhí)行e1,否則執(zhí)行e2。例1:#include "stdio.h"main()int m,n; scanf
56、("%d%d",&m,&n);int max;m>n?max=m:max=n;printf("max=%dn",max);條件表達(dá)式的值:我們通過(guò)一個(gè)例子來(lái)看:例2#include "stdio.h"main()int m,n; scanf("%d%d",&m,&n);int max;max=m>n?m:n; (? : 條件運(yùn)算符優(yōu)先級(jí)高于=)printf("max=%dn",max);若條件成立,則表達(dá)式的結(jié)果為表達(dá)式1,否則表達(dá)式的結(jié)果為表達(dá)式2例3#include "stdio.h"main()int s; scanf("%d",&s);s>60 ? s>=90 ? printf("youxiu n") : printf("jige n"): printf("Faild! n") ;4.4 switch選擇結(jié)構(gòu)與break語(yǔ)句Switch也是一個(gè)分支選擇結(jié)構(gòu):switch(表達(dá)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 庭院景觀設(shè)計(jì)分析
- 《力量與壓力的測(cè)定》課件
- 招投標(biāo)與合同管理模擬題(附答案解析)
- 茶藝師(中級(jí))理論知識(shí)模擬習(xí)題+答案(附解析)
- 谷物加工工藝的數(shù)據(jù)分析與決策考核試卷
- 橡膠制品行業(yè)的市場(chǎng)定位和品牌建設(shè)考核試卷
- 《MATLAB基礎(chǔ)教程》課件
- 現(xiàn)代質(zhì)量工程課件王穎
- 皮革護(hù)理行業(yè)互聯(lián)網(wǎng)+發(fā)展趨勢(shì)探討考核試卷
- 淀粉行業(yè)創(chuàng)新與技術(shù)進(jìn)步考核試卷
- 水務(wù)公司筆試題目及答案
- 2025年北京市西城區(qū)高三二模生物試卷(含答案)
- 2025屆浙江省學(xué)軍、鎮(zhèn)海等名校高考英語(yǔ)二模試卷含解析
- 2025-2030功能性飲料項(xiàng)目商業(yè)計(jì)劃書(shū)
- 致敬英雄張富清
- 2025江蘇無(wú)錫宜興市國(guó)資本投資控股集團(tuán)限公司招聘工作人員10人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- (二模)濟(jì)寧市2025年4月高三高考模擬考試政治試卷(含答案)
- 銀行市場(chǎng)營(yíng)銷(xiāo)戰(zhàn)略試題及答案2025年總結(jié)
- 韋氏測(cè)試題及答案
- 2025怎樣正確理解全過(guò)程人民民主的歷史邏輯、實(shí)踐邏輯與理論邏輯?(答案3份)
- 國(guó)家開(kāi)放大學(xué)《工具書(shū)與文獻(xiàn)檢索》形考任務(wù)1-4參考答案及作業(yè)1
評(píng)論
0/150
提交評(píng)論