C語(yǔ)言程序設(shè)計(jì)_第1頁(yè)
C語(yǔ)言程序設(shè)計(jì)_第2頁(yè)
C語(yǔ)言程序設(shè)計(jì)_第3頁(yè)
C語(yǔ)言程序設(shè)計(jì)_第4頁(yè)
C語(yǔ)言程序設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩42頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)       C語(yǔ)言程序設(shè)計(jì)                                    第1章 基本概念41.1 C語(yǔ)言的產(chǎn)生及發(fā)展史41.2

2、C語(yǔ)言特點(diǎn)6C語(yǔ)言及其程序的基本形式6第2章 數(shù)據(jù)類型、運(yùn)算符與表達(dá)式72.1 基本數(shù)據(jù)類型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)

3、285.2 do 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 函

4、數(shù)的調(diào)用417.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.

5、6 二維數(shù)組與指針599.6.1、二維數(shù)組實(shí)際上是由一維數(shù)組構(gòu)成:599.6.2 二維數(shù)組名也是二維數(shù)組的首地址599.7 二維數(shù)組與函數(shù)60第十章 字符串6410.1 用一維數(shù)組存放字符串6410.1.1 通過(guò)賦初值給一個(gè)字符數(shù)組賦成字符串6510.1.2在程序執(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ì)

6、字符串進(jìn)行輸入與輸出6610.4 字符串?dāng)?shù)組6710.5 用于字符串處理的函數(shù)67第十一章 遞歸函數(shù)70第十二章 C語(yǔ)言中變量的作用域與變量的存儲(chǔ)類型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è)類型7414.2 結(jié)構(gòu)體類型7414.2.1 結(jié)構(gòu)體類型聲明的格式:7514.2.2 結(jié)構(gòu)體型的數(shù)組、變量、指針的定義7514.2.3 結(jié)構(gòu)體變量、數(shù)組的賦值7614.2.4 引用

7、結(jié)構(gòu)體變量中的數(shù)據(jù)7714.2.5 對(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ā)展成為一種

8、獨(dú)立的程序設(shè)計(jì)語(yǔ)言, 并廣泛地應(yīng)用在大型, 小型,微型計(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)。1972年至1973年間,貝爾實(shí)驗(yàn)室的D.M.Ritchie在B語(yǔ)言的基礎(chǔ)上設(shè)計(jì)出了C語(yǔ)言。 C語(yǔ)言的設(shè)計(jì)者Dennis M. Ritchie 1973年,K.Thompson和D.M.Ritchie兩人合作把UNIX的90以上用C改

9、寫(xiě),即UNIX第5版,由此確立了C語(yǔ)言的地位。   Ritchie和Thompson在開(kāi)發(fā)UNIX C語(yǔ)言的設(shè)計(jì)者D.M.Ritchie和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

10、語(yǔ)言為150多個(gè). 利用符號(hào)代替語(yǔ)句,表達(dá)簡(jiǎn)潔. 許多工作由大量的庫(kù)函數(shù)完成, 并且?guī)旌瘮?shù)可以自定義, 所以C語(yǔ)言的關(guān)鍵字及其功能是無(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)? 不同

11、計(jì)算機(jī)上的C語(yǔ)言編譯代碼的80%左右相同. C語(yǔ)言及其程序的基本形式 這里介紹幾個(gè)簡(jiǎn)單的C語(yǔ)言程序,從中明確C語(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

12、 %dn”, sum);/* 輸出相加后的結(jié)果*/ 本程序的作用是說(shuō)明一個(gè)較為全面的C語(yǔ)言程序,以及注釋的使用。 第2章 數(shù)據(jù)類型、運(yùn)算符與表達(dá)式 本章主要內(nèi)容 理解數(shù)據(jù)類型引入的目的、意義和具體類型 明確常量與變量 掌握C語(yǔ)言的運(yùn)算符和表達(dá)式表 2.1 基本數(shù)據(jù)類型 大千世界存在著各種各樣、各種類型的數(shù),人們利用不同類型的數(shù)去描述不同的事物。然而,哪些“類型”的數(shù)據(jù)可以在C語(yǔ)言中使用?C語(yǔ)言中允許使用的“類型”又是什么呢?  3.1.1 數(shù)據(jù)類型:某一類數(shù)據(jù)(值)的特征形式(表示意義、取值范圍、符號(hào)取向). 基本形:整數(shù)(int)、

13、浮點(diǎn)(float)、字符(char)、無(wú)值(void)。構(gòu)造(組合、集合)型:數(shù)組、結(jié)構(gòu)(struct)聯(lián)合(union)、枚舉(enum)。指針類型空類型 1. 1.整數(shù)和整數(shù)類型整數(shù)在C語(yǔ)言中稱為“整型常量”,因?yàn)樗幢硎玖酥?,又表示了一定的意義。 類型字節(jié)數(shù)取值范圍signed int2-32768 - 32767Unsigned int20 - 65535signed shot int2-32768 - 32767Unsigned shot int20 - 65535long int4-2147483648 - 2147483647Unsigned long int

14、40 - 4294967295注:方括弧內(nèi)的部分是可以省略的。例如:signed shot int 與shot等價(jià),尤其是 signed 是完全多余的,一般都不寫(xiě)signed。 2. 浮點(diǎn)類型(float)類型字節(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. 字符類型(char)類型字節(jié)數(shù)意義char1表示一個(gè)字符   2.

15、2 常量與變量 在3.1節(jié)學(xué)習(xí)了幾種數(shù)據(jù)的類型,可以用它們表示客觀世界中的數(shù)值。那么,如果要表示客觀世界中的“事物”(事和物)怎么辦?C語(yǔ)言中使用“量”來(lái)表達(dá)客觀事物,其中,自身數(shù)值不變的量用“常量”表示,自身數(shù)值變化的量用“變量”表示。因此,為了全面地表達(dá)客觀事物,在C語(yǔ)言中則必須使用(定義)常量和變量(表示事和物)。同時(shí),給出它們的類型(表示數(shù)值)。 3.2.1 常量:程序執(zhí)行中其值不變的量。 類型:一般(短整)常量、長(zhǎng)整常量、浮點(diǎn)常量、字符常量、字符串常量。符號(hào)常量定義式: #define 符號(hào)常量名;例: #define PI 3.14 意義: 3.2.2 變量:程

16、序在執(zhí)行過(guò)程中其值變化的量。 類型:一般(短整)變量、長(zhǎng)整變量、浮點(diǎn)變量、字符變量、字符串變量。定義式: 數(shù)據(jù)類型 變量名; 例: int k; 意義:定義整型變量k。  3.2.3 變量賦初值在C語(yǔ)言中常需要對(duì)變量預(yù)先設(shè)置初值,可以使用數(shù)的三種表示形式:十進(jìn)制數(shù)、八進(jìn)制數(shù)、十六進(jìn)制數(shù)和數(shù)據(jù)類型為變量賦初值。 例3.1#define PRICE 30main ()int num,total;num=10;total=num*PRICE;printf (“total=%dn”,total); 本程序的作用是說(shuō)明常量的定義、賦值和使用。  

17、;例3.2main ( ) int a,b,c,d; unsigned u; a=12;b=-24;u=10; c=a+u;d=b+u; printf (“a+u=%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

18、=3.1415926;char c=a; printf (“nnn%d %f %cn”,a,f,c); 本程序的作用是說(shuō)明整型、字符、浮點(diǎn)變量的定義、賦初值和輸出。  注:標(biāo)識(shí)符:由字母、數(shù)字和下線符構(gòu)成,標(biāo)志和識(shí)別一定意義的字符串。 類型:關(guān)鍵字、特定字、一般標(biāo)識(shí)符(由用戶設(shè)定)。 作用:代表常量、變量、數(shù)據(jù)類型、函數(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)系,又要

19、用到C語(yǔ)言中的表達(dá)式。那么C語(yǔ)言中提供了哪些運(yùn)算符和表達(dá)式讓我們使用呢? 3.3.1 運(yùn)算符C語(yǔ)言中的運(yùn)算符分為以下幾類:1. 1.算術(shù)運(yùn)算符 + - * / %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)制類型轉(zhuǎn)換 (類型)11. 11.分量運(yùn)算符變 . -&

20、gt; 12. 12.下標(biāo)運(yùn)算符 13. 13. 其它 函數(shù)調(diào)用運(yùn)算符 ( )見(jiàn)教材 P365 附錄C  3.3.2 算術(shù)運(yùn)算符 自增、自減算術(shù)運(yùn)算符+i; -i; 意義:在使用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-;  3.3.3 復(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á)式

21、0;表達(dá)式:使用運(yùn)算符將運(yùn)算(操作)對(duì)象連接起來(lái)的、符合C語(yǔ)法規(guī)則的式子。算術(shù)表達(dá)式、邏輯表達(dá)式、字位表達(dá)式、強(qiáng)制類型轉(zhuǎn)換表達(dá)式、逗號(hào)(順序)表達(dá)式、賦值表達(dá)式、條件表達(dá)式、指針表達(dá)式。 例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;

22、 printf (“nnn%d %d n”,s,t); 本程序的作用是說(shuō)明除法運(yùn)算符和取余運(yùn)算符的區(qū)別。  例3.7main ( )int i,j,k,l;i=2,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)算符的使用。  例

23、3.9main ( ) float x; int i; x=3.6; i=(int)x; printf (“n x=%f i=%dn”,x,i); 本程序的作用是說(shuō)明強(qiáng)制類型轉(zhuǎn)換的問(wèn)題。  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,表

24、達(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、看如下程序,寫(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é)果是

25、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 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",

26、k); 復(fù)習(xí)以前的知識(shí)運(yùn)算符+ 和 - - 運(yùn)算的規(guī)則是一樣的,我們以+為例進(jìn)行講解。+運(yùn)算符只能用于單變量身上,如i+, (a+b)+ 這樣寫(xiě)就不對(duì)了。用于單變量身上表示單變量本身自增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&

27、quot;,i); / 6        說(shuō)明:無(wú)論是前綴還是后綴,i+(或+i) 都是使i自增1(i=i+1) 二、+作為前綴與+作為后綴,表達(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

28、說(shuō)明:在上面的兩個(gè)程序中,K存放的都是自增表達(dá)式的值,兩個(gè)自增表達(dá)式的值是不同的。 (1) +i K得到的是i自增后的結(jié)果,我們用一句話表示:先運(yùn)算,后取值。(2) (2)i+K得到的是i自增后前的結(jié)果,我們用一句話表示:先取值,后運(yùn)算??偨Y(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è)例子:#includ

29、e "stdio.h"main()double a,b;a=1.2;b=1.2;printf("a=%f,b=%f n",a,b);說(shuō)明:在上面的printf中,存在一個(gè)格式符 %f ,%f是專門用來(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 "

30、stdio.h"main()float x,y;x=33.0; y=66.0;printf("x=%f,y=%f",x,y);例2 寫(xiě)出程序結(jié)果#include "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(“字符串”,輸出的變量); 該格式中

31、第二部分是可以省略,那么就輸出字符串。#include "stdio.h"main()printf("*Hello World*n");4、可以在%d之間加上一個(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、#inc

32、lude "stdio.h"main()int a=3; int b=50;int c=500; int d=5000; printf("%5dn",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 或

33、 double ) 的%f,可以在%和f之間,加上m.n ,%m.nfm:是指定整個(gè)數(shù)所占寬度 n:指定小數(shù)位數(shù)如:a=3.145678 若想保留兩位小數(shù)輸出,則 %4.2f#include "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=

34、%.2f n",a); / 300.15 /%1.2f 是先保證小數(shù)位輸出,然后整數(shù)位原樣輸出3.3 數(shù)據(jù)輸入如何能過(guò)鍵盤(pán)給程序中的變量賦值呢?#include "stdio.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

35、long %ld 現(xiàn)在我們舉一個(gè)最常見(jiàn)的例子:#include "stdio.h"main()double a,b,area;scanf("%lf%lf",&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"

36、;main()double a,b,c,area;scanf("%lf%lf%lf",&a,&b,&c);area = a*b+c;printf("a=%.2f,b=%.2f,c=%.2f,area =%.2f n",a,b,area);1) 1 2 3 回車2) 1 回車 2 回車 3 回車3) 1 tab 2 3總之:數(shù)據(jù)之間可以任意加空格,回車,Tab,最后用回車表示數(shù)據(jù)輸入結(jié)束。3、在scanf中,我們可以指定所要讀取數(shù)的寬度#include "stdio.h"main()int a,b,c,

37、area;scanf("%3d%2d%4d",&a,&b,&c);area = a*b+c;printf("a=%3d,b=%3d,c=%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);are

38、a = a+b;printf("a=%3d,b=%3d,area =%3d n",a,b,area); /若輸入123 456 789<回車>說(shuō)明:此時(shí)第一個(gè)%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

39、 456 789<回車>例2、#include "stdio.h"main()int a,b,area;scanf("%2d%*3d%2d",&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("

40、%d,%d,%d",&a,&b,&c);area = a+b+c;printf("a=%3d,b=%3d,c=%3d,area =%3d n",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;p

41、rintf("a=%3d,b=%3d,c=%3d,area =%3d n",a,b,c,area);此時(shí)正確的輸入方法是:please input a,b,c:123 12 13.4 復(fù)合語(yǔ)句3.4.1 復(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(&q

42、uot;a=%3d,b=%3d,c=%3d,area =%3d n",a,b,c,area);這個(gè)C語(yǔ)言程序從上到下一共3條語(yǔ)句。3.4.2 空語(yǔ)句空語(yǔ)句:就是一個(gè)單分號(hào),空語(yǔ)句也是一條合法的語(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);該程序一共是5條語(yǔ)句,當(dāng)計(jì)算機(jī)執(zhí)行到第四條語(yǔ)句(空語(yǔ)

43、句)時(shí),計(jì)算機(jī)什么也不干。3.5 程序舉例例3.1 從鍵盤(pán)輸入兩個(gè)整數(shù),給x和y賦值,在程序中使x和y的值交換,然后再輸出交換后的x和y的值。#include "stdio.h"main()int 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(&

44、quot;%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)算4.1.1 關(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

45、zhi %dn", k); / 0k=1=2;printf(" 1=2 de zhi %dn", k); / 0k=1!=2;printf(" 1!=2 de zhi %dn", k); /14.1.2 邏輯運(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 &

46、amp;& F F      例1、(T && T T)#include "stdio.h"main()int k;k=3>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 &qu

47、ot;stdio.h"main()int k;k=13>12 | 3>11;printf("%d",k);例4、(!T 結(jié)果為 F)#include "stdio.h"main()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.

48、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ǔ)句,否則執(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、

49、 例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",&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;

50、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)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"

51、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)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"

52、main()int m,n; int max;scanf("%d%d",&m,&n);if(m>n)max=m;elsemax=n;printf("max=%d n",max);從鍵盤(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ǔ)句,所以他可以替換

53、if語(yǔ)句中的語(yǔ)句。嵌套形式一:   #include "stdio.h"main()int s; scanf("%d",&s);if(s>=60)if(s>=90)printf("youxiu n");elseprintf("jige n");elseprintf("Faild! n");   if(條件)if(條件)語(yǔ)句1else語(yǔ)句2else語(yǔ)句2     #in

54、clude "stdio.h"main()int s; scanf("%d",&s);if(s<60)printf("Faild! n");elseif(s>=90)printf("youxiu n");elseprintf("jige n"); 嵌套形式二:if(條件)語(yǔ)句2else if(條件)語(yǔ)句1else語(yǔ)句2      例如:輸入一成績(jī)到變量S中,根據(jù)學(xué)生成績(jī)的等級(jí)分別輸出ABCDE等。#incl

55、ude "stdio.h"main()int s; scanf("%d",&s);if(s>=90)printf("A n");else if(s>=80)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á)式。我們首先看一下

56、條件表達(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("%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") :

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論