




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 C語言程序設(shè)計(jì) 第1章 基本概念41.1 C語言的產(chǎn)生及發(fā)展史41.2 C語言特點(diǎn)6C
2、語言及其程序的基本形式6第2章 數(shù)據(jù)類型、運(yùn)算符與表達(dá)式72.1 基本數(shù)據(jù)類型72.2 常量與變量82.3 運(yùn)算符102.4 表達(dá)式112.5 逗號運(yùn)算符與逗號表達(dá)式12第三章 順序結(jié)構(gòu)143.2 數(shù)據(jù)輸出143.2.1 printf函數(shù)的使用143.3 數(shù)據(jù)輸入173.4 復(fù)合語句193.4.1 復(fù)合語句193.4.2 空語句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語句224.3 條件表達(dá)式254.4 switch選擇結(jié)構(gòu)與break語句26第五章 循環(huán)結(jié)構(gòu)285.1 while 循環(huán)285.2 d
3、o while 循環(huán)295.3 for語句和for語句構(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ù)的寫法356.1.4 可對字符量進(jìn)行運(yùn)算366.2 字符型變量366.3 字符的輸入與輸出366.3.1 用printf與scanf作輸出與讀取366.3.2 用putchar 與 getchar作字符的輸出與讀取37第七章 函數(shù)397.1 庫函數(shù)397.2 自定義函數(shù)397.2.1 函數(shù)的書寫方法407.2.2 函數(shù)的返回值407.3 函數(shù)的調(diào)用417
4、.4 函數(shù)的說明427.5 調(diào)用函數(shù)與被調(diào)用函數(shù)之間的數(shù)據(jù)傳遞45第八章 地址與指針488.1 變量的地址與指針488.2 指針變量的定義498.3 指針變量賦值498.4 對指針變量操作498.5 移動指針508.6 函數(shù)之間的地址傳遞518.7 返回地址的函數(shù)叫做指針函數(shù)51第九章 數(shù)組529.1 一維數(shù)的定義與引用529.2 一維數(shù)組的訪問529.3 數(shù)組的賦值529.5 一維數(shù)組與地址539.5 二維數(shù)組的定義和二維數(shù)組元素的引用579.5.1 二維數(shù)組的定義579.5.2 二維數(shù)組的訪問589.5.3 二維數(shù)組在定義可以賦值589.5.4 可以通過賦值,確定行數(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 通過賦初值給一個字符數(shù)組賦成字符串65在程序執(zhí)行過程中給一維字符數(shù)組賦值6610.2 使指針指向一個字符串6610.2.1 可通過賦初值,指一個指針指向字符串6610.2.2 通過賦值運(yùn)算使指針指向一個字符串6610.3 字符串的輸入與輸出6610.3.1 輸入輸出字符串的必要條件6610.3.2 用格式說明符%s進(jìn)行整串的輸入與輸出6610.3.3 用gets和puts函數(shù)對字符串進(jìn)行輸入與輸出6610.4 字
6、符串?dāng)?shù)組6710.5 用于字符串處理的函數(shù)67第十一章 遞歸函數(shù)70第十二章 C語言中變量的作用域與變量的存儲類型7012.1 局部變量7012.2全局變量7112.3 局部靜態(tài)變量71第十三章 編譯預(yù)處理和動態(tài)存儲分配7213.1宏替換7213.2 動態(tài)存儲分配7313.2.1 malloc 函數(shù)與 free 函數(shù)73第十四章 結(jié)構(gòu)體與共用體7414.1 用typedef說明一個類型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 引用結(jié)構(gòu)體變量中的數(shù)據(jù)7714.2.5
7、對結(jié)構(gòu)體成員賦值7714.2.6 結(jié)構(gòu)體函數(shù)之間數(shù)據(jù)傳遞7814.3 鏈表81 第1章 基本概念本章主要內(nèi)容 明確C語言的產(chǎn)生及發(fā)展史 了解C語言特點(diǎn) 掌握C語言的表述環(huán)境 明確C語言及其程序的基本形式 1.1 C語言的產(chǎn)生及發(fā)展史 C語言屬于ALGOL語言族系, 產(chǎn)生于1972年. 是編程者設(shè)計(jì)的一種結(jié)構(gòu)化程序設(shè)計(jì)語言. 它首先是為了編寫PDP-11型計(jì)算機(jī)上的UNIX操作系統(tǒng)而產(chǎn)生出來, 但后來發(fā)展成為一種獨(dú)立的程序設(shè)計(jì)語言, 并廣泛地應(yīng)用在
8、大型, 小型,微型計(jì)算機(jī)上.1967年英國劍橋大學(xué)的Matin Richards對CPL語言做了簡化,推出了BCPL語言。1970年美國貝爾實(shí)驗(yàn)室的Ken Thompson以BCPL語言為基礎(chǔ),又做了進(jìn)一步簡化,設(shè)計(jì)出了很簡單的而且很接近硬件的B語言,并用B語言寫了第一個UNIX操作系統(tǒng),在PDP-7上實(shí)現(xiàn)。itchie在B語言的基礎(chǔ)上設(shè)計(jì)出了C語言。 C語言的設(shè)計(jì)者Dennis M. Ritchie 1973年,K.Thompson和D.M.Ritchie兩人合作把UNIX的90以上用C改寫,即UNIX第5版,由此確立了C語言的地位。 R
9、itchie和Thompson在開發(fā)UNIX 和Unix的設(shè)計(jì)者Ken Thompson接受美國國家技術(shù)勛章 C語言是一種"中級語言", 它介于高級語言(BASIC,FORTRAN .)和低級語言(匯編語言)之間. 它即具有高級語言功能(直接的人-機(jī)對話和數(shù)學(xué)計(jì)算),又具有低級語言功能(移位,位處理), 從而使其功能大大地增強(qiáng), 成為一種先進(jìn)的程序設(shè)計(jì)語言.1.2 C語言特點(diǎn) 語言簡煉 使用的關(guān)鍵字僅為27個, 而BASIC語言為150多個. 利用符號代替語句,表達(dá)簡潔. 許多工作由大量的庫函數(shù)完成, 并且?guī)旌瘮?shù)可以自定義, 所以C語言的關(guān)鍵
10、字及其功能是無限的. 功能強(qiáng) 它集高級語言的特點(diǎn)和低級語言的特點(diǎn)于一身, 即能完成高語言的功能 又能完成低級語言的功能, 是一種強(qiáng)功能的語言. 由它編寫的軟件有: UNIX, dBASE III, C編譯. 模塊化結(jié)構(gòu) C語言支持各種庫函數(shù)和用戶定義的函數(shù)(模塊)相互調(diào)用構(gòu)成程序, 完 成功能. 并且, 不允許嵌套定義, 因此, 具有很強(qiáng)的模塊化結(jié)構(gòu). 移植性好 利用C語言編的程序不加改動或稍加改動, 就可以由一個環(huán)境移植到另一個環(huán)境上. 因?yàn)? 不同計(jì)算機(jī)上的C語言編譯代碼的80%左右相同. C語言及其程序的基本形式 這里介紹幾個簡單的C語言程序,從中明確C
11、語言及其程序的基本形式。例 1.1main ( ) printf (“This is a C program.n); 本程序的作用是輸出以下一行信息,主要說明C語言程序的基本組成部分,C語言程序的具體形式。 例.main ( ) /* 求兩數(shù)之和*/ int a,b,sum; /* 這是定義變量*/ a=123; b=456;/* 為變量賦初值*/ sum=a+b; /* 將兩個變量的值相加后賦給另一個變量*/ printf (“sum is %dn”, sum);/* 輸出相加后的結(jié)果*/ 本程序的作用是說明一個較為全面的C語言程序,以及注釋的使用
12、。 第2章 數(shù)據(jù)類型、運(yùn)算符與表達(dá)式 本章主要內(nèi)容 理解數(shù)據(jù)類型引入的目的、意義和具體類型 明確常量與變量 掌握C語言的運(yùn)算符和表達(dá)式表 2.1 基本數(shù)據(jù)類型 大千世界存在著各種各樣、各種類型的數(shù),人們利用不同類型的數(shù)去描述不同的事物。然而,哪些“類型”的數(shù)據(jù)可以在C語言中使用?C語言中允許使用的“類型”又是什么呢? 數(shù)據(jù)類型:某一類數(shù)據(jù)(值)的特征形式(表示意義、取值范圍、符號取向). 基本形:整數(shù)(int)、浮點(diǎn)(float)、字符(char)、無值(void)。構(gòu)造(組合、集合)型:數(shù)組、結(jié)構(gòu)(struct)聯(lián)合(union)、枚舉(e
13、num)。指針類型空類型 1. 1.整數(shù)和整數(shù)類型整數(shù)在C語言中稱為“整型常量”,因?yàn)樗幢硎玖酥?,又表示了一定的意義。 類型字節(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等價,尤其是 sign
14、ed 是完全多余的,一般都不寫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表示一個字符 2.2 常量與變量 在3.1節(jié)學(xué)習(xí)了幾種數(shù)據(jù)的類型,可以用它們表示客觀世界中的數(shù)值。那么,如果要表示客觀世界中的“事物”(事和物)怎么辦
15、?C語言中使用“量”來表達(dá)客觀事物,其中,自身數(shù)值不變的量用“常量”表示,自身數(shù)值變化的量用“變量”表示。因此,為了全面地表達(dá)客觀事物,在C語言中則必須使用(定義)常量和變量(表示事和物)。同時,給出它們的類型(表示數(shù)值)。 常量:程序執(zhí)行中其值不變的量。 類型:一般(短整)常量、長整常量、浮點(diǎn)常量、字符常量、字符串常量。符號常量定義式: #define 符號常量名;例: #define PI 3.14 意義: 變量:程序在執(zhí)行過程中其值變化的量。 類型:一般(短整)變量、長整變量、浮點(diǎn)變量、字符變量、字符串變量。定義式: 數(shù)據(jù)類型 變量名; 例: int k; 意義:
16、定義整型變量k。 變量賦初值在C語言中常需要對變量預(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); 本程序的作用是說明常量的定義、賦值和使用。 例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); 本程序的作用是說明整型變量的定義、賦初值、運(yùn)算和其值的輸出。 例3.3main ( ) char c1,c2; c1=97; c2=98; printf (“%c %cn”,c1,c2);printf (“%d %dn”,c1,c2); 本程序的作用是說明字符型變量的定義、賦初值和輸出。 例3.4main ( ) int a=3; float f=3.1415926;char c=a; printf (“nnn%d %f %cn”,a,f,c); 本程序的作用是說明整型、字符、浮點(diǎn)變量的定義、賦
18、初值和輸出。 注:標(biāo)識符:由字母、數(shù)字和下線符構(gòu)成,標(biāo)志和識別一定意義的字符串。 類型:關(guān)鍵字、特定字、一般標(biāo)識符(由用戶設(shè)定)。 作用:代表常量、變量、數(shù)據(jù)類型、函數(shù)名字。關(guān)鍵字:在C語言中,具有嚴(yán)格特定含義的標(biāo)識符。 見教材 P365 附錄B 2.3 運(yùn)算符 在客觀事物使用數(shù)和量表示完以后,還要對它們進(jìn)行處理,進(jìn)行運(yùn)算,這就要涉及C語言中的運(yùn)算符。還要表達(dá)它們之間的關(guān)系,又要用到C語言中的表達(dá)式。那么C語言中提供了哪些運(yùn)算符和表達(dá)式讓我們使用呢? 運(yùn)算符C語言中的運(yùn)算符分為以下幾類: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.逗號運(yùn)算符 ,8. 8.指針運(yùn)算符 * &9. 9.求字節(jié)數(shù)運(yùn)算符 sizeof10. 10.強(qiáng)制類型轉(zhuǎn)換 (類型)11. 11.分量運(yùn)算符變 . -> 12. 12.下標(biāo)運(yùn)算符 13. 13. 其它 函數(shù)調(diào)用運(yù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; 等價于 a=a+3; x*=y+8; 等價于 x=x*(y+8); x%=3; 等價于 x=x%3; 2.4 表達(dá)式 表達(dá)式:使用運(yùn)算符將運(yùn)算(操作)對象連接起來的、符合C語法規(guī)則的式子。算術(shù)表達(dá)式、邏輯表達(dá)式、字位表達(dá)式、強(qiáng)制類型轉(zhuǎn)換表達(dá)式、逗號(順序)表達(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); 本程序的作用是說明賦值表達(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); 本程序的作用是說明除法運(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); 本程序的作用是說明自加、自減運(yùn)算符的使用。 例3.8main ()int num=1,total=11;num+=5;total%=num;printf ("n %d %dn",num,total);本程序的作用是說明復(fù)合運(yùn)算符的使用。 例3.9main ( ) float x; int i; x=3.6; i=(int)x; printf (“n x=%f i=%dn”,x,i); 本程序的作用是說明強(qiáng)制類型轉(zhuǎn)換的問
23、題。 2.5 逗號運(yùn)算符與逗號表達(dá)式 以前我們學(xué)過 + - * /(特別) %(特別) = % 要求兩邊的操作數(shù)必須是整數(shù)如: 5%3 結(jié)果為 2 這個運(yùn)算符通常用作判斷一個數(shù)是否能被另一個數(shù)整除。這節(jié)課我們學(xué)習(xí)逗號運(yùn)算符,我們通過逗號表達(dá)式來看一下逗號運(yùn)算符是怎么回事。逗號表達(dá)的定義:用逗號連接的表達(dá)式,叫逗號表達(dá)式格式: 表達(dá)式1, 表達(dá)式2, 表達(dá)式3, 表達(dá)式4,表達(dá)式n逗號表達(dá)式的運(yùn)算順序:表達(dá)式1à 表達(dá)式2à 表達(dá)式3à表達(dá)式4à表達(dá)式n逗號表達(dá)式結(jié)果:最后一個表達(dá)式的結(jié)果將作為整個表達(dá)式的結(jié)果。例1、 例1
24、、看如下程序,寫出結(jié)果#include "stdio.h"main()int k;k=(2+3,7,0,88);printf("k=%dn",k); /結(jié)果是 88例2、 例2、看如下程序,寫出結(jié)果#include "stdio.h"main()int k;k=2+3,7,88;printf("k=%dn",k); /結(jié)果是 5說明:賦值符號的優(yōu)先級要高于逗號運(yùn)算符,逗號運(yùn)算符的優(yōu)先級在所有的運(yùn)算符當(dāng)中是最低的。 例3、看如下程序,寫出結(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、看如下程序,寫出結(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í)以前的知識運(yùn)算符+ 和 - - 運(yùn)算的規(guī)則是一樣的,我們以+為例進(jìn)行講解。+運(yùn)算符只能用于單變量身上,如i+, (a+b)+ 這樣寫就不對了。用于單變量身上表示單變量本身
26、自增1。自增運(yùn)算符有兩種情況,一種作為前綴,別一種作為后綴。一、當(dāng)+作為前綴或是后綴時,變量執(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 說明:無論是前綴還是后綴,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說明:在上面的兩個程序中,K存放的都是自增表達(dá)式的值,兩個自增表達(dá)式的值是不同的。 (1) +i K得到的是i自增后的結(jié)果,我們用一句話表示:先運(yùn)算,后取值。(2) (2)i+K得到的是i自增
28、后前的結(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)來。3.2 數(shù)據(jù)輸出3.2.1 printf函數(shù)的使用以前我們上講過一個例子:#include "stdio.h"main()double a,b;a=1.2;b=1.2;printf("a=%f,b=%f n",a,b);說明:在上面的pri
29、ntf中,存在一個格式符 %f ,%f是專門用來輸出double變量內(nèi)容,那么上面程序的執(zhí)行結(jié)果:printf的使用方法:printf(“字符串”,輸出的變量);說明:1、雙引號中的字符除了格式符(是用來輸出變量的)之外,其它字符是原樣輸出。2、我們主要學(xué)習(xí)哪些格式符呢?double %f(%lf) float %fint %d long %ld 例1、寫出程序結(jié)果#include "stdio.h"main()float x,y;x=33.0; y=66.0;printf("x=%f,y=%f",x,y);例2 寫出程序結(jié)果#include
30、"stdio.h"main()int k;int a=11,b=3;k=a%b;printf("k=%d n",k);例3寫出程序結(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、間加上一個數(shù)字,用來指定輸出數(shù)所占的寬度,如%5d,則數(shù)占5個字符的寬度,字符默認(rèn)向右對齊。例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)向右對齊若實(shí)際寬度 < 指定的寬度,則%-nd 默認(rèn)向左對齊%d是我們以前的老模式,正常輸出若實(shí)際寬度 > 指定的寬度,則正常輸出5、對于輸出(float 或 double ) 的%f,可以在%和f之間,加上m.n ,%m.nfm:是指定整個數(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有時出題人比較懶,他容易將%4.2f寫成 %.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ù)輸入如何能過鍵盤給程序中的變量賦值呢?#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);通過 scanf函數(shù)給變量賦值,看一下scanf函數(shù)的使用形式:scanf(“字符串”,變量的地址);說明1、給變量賦值也要能過格式符 double %lf float %fint %d long %ld 現(xià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); 雙引號內(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 回車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,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);說明:若在鍵盤中輸入1234567890時,此時%3d讀取了123賦給了a,%2d讀取了45賦給了b,%4d讀取了6789賦給了c,4、用%*d可以是跳過一個數(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<回車>說明:此時第一個%
38、d讀取了123,遇空格結(jié)束,第二%*d會跳過456,第三個%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<回車>例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說明:讀取了12送給了a,跳過345,讀取了67賦給了b.最后注意,同學(xué)們在上機(jī)的時候總愛出現(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é)們千萬要注意:在scanf的雙引號,一定要按著雙引號的字符原樣輸入,這樣才是正確的,如上題: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);此時正確的輸入方法是:please input a,b,c:123 12
41、 13.4 復(fù)合語句 復(fù)合語句復(fù)合語句的概念:就是用 括起來的0個或多個語句叫復(fù)合語句。復(fù)合語句在C語言語法上來說,是作為一個整體(也可以說作為一條大的語句)如:#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);這個C語言程序從上到下一共3條語句。 空語句空語句:就是一個單分號,空語句也是一條合法的語句。#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條語句,當(dāng)計(jì)算機(jī)執(zhí)行到第四條語句(空語句)時,計(jì)算機(jī)什么也不干。3.5 程序舉例例3.1 從鍵盤輸入兩個整數(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 輸入一個double 數(shù)給n,輸出該數(shù)時,要對小數(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)系成立時,表達(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)在說一下運(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);說明:在邏輯表達(dá)式中,若其中一個表達(dá)式是非0的,那么在邏輯判斷中,計(jì)算機(jī)認(rèn)為是真#include "stdio.h"main()int k;k=(13>12) && -3;printf("%d",k);4.2 if語句if語句一共和2種基本的使用形式,還有2種嵌套的使用形式,當(dāng)然考試主要考兩種基本的使用形式,關(guān)于嵌套同學(xué)們認(rèn)識一下就可以了。 基本形式1、1、使用形式:if(條件)語句2、執(zhí)行過程:若條件成立,則執(zhí)行if中的語
48、句,否則執(zhí)行if語句后面的語句。3、例1:從鍵盤輸入兩數(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、從鍵盤輸入三數(shù)給a,b,c變量,再輸出a,b,c變量時,三數(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)行:沒有達(dá)到預(yù)期,因?yàn)閕f語句中,若條件成立時,同時執(zhí)行多條語句,多條語句必須用括起來,構(gòu)成復(fù)合語句,才可以。上面程序中,if后面的多條語句沒有被括起來,if只與最近的語句搭配。正確的寫法如下:#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語句1、使用形式if(條件)語句1else語句22、執(zhí)行過程:若條件成立了,則執(zhí)行語句1,否則執(zhí)行語句23、例:從鍵盤輸入兩數(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);從鍵盤輸入一個整數(shù),若能被3整除,打印Yes ,否則打印No#include "stdio.h"main()int n;scanf("%d",&n);if(n%3=0)printf("Yes");elseprintf("No");if 語句是一條特殊的語句,所以他可以替換if語句中的語句。嵌套形式一: #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(條件)語句1else語句2else語句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(條件)語句2else if(條件)語句1else語句2 例如:輸入一成績到變量S中,根據(jù)學(xué)生成績的等級分別輸出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í)行過程:若條件成立,則計(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á)式的值:我們通過一個例子來看:例2#include "stdio.h"main()int m,n; scanf("%d%d",&m,&n);int max;max=m>n?m:n; (? : 條件運(yùn)算符優(yōu)先級高于=)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語句Switch也是一個分支選擇結(jié)構(gòu):switch(表達(dá)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 獸藥合理用藥在獸醫(yī)實(shí)踐中的案例分析考核試卷
- 環(huán)保材料在化妝品配方中的生物降解性分析考核試卷
- 藥品注冊與審批流程風(fēng)險管理考核試卷
- 印刷機(jī)械壓力監(jiān)控技術(shù)考核試卷
- 部編人教版小學(xué)四年級語文下冊《小英雄雨來》教學(xué)課件
- 2025年中國PET彩色鍍鋁膜數(shù)據(jù)監(jiān)測研究報告
- 2025年中國IC卡手持機(jī)數(shù)據(jù)監(jiān)測報告
- 2025年中國DG-鈀觸媒數(shù)據(jù)監(jiān)測報告
- 2025年中國11度啤酒數(shù)據(jù)監(jiān)測報告
- 2025至2030年中國高性能實(shí)時錄像機(jī)市場分析及競爭策略研究報告
- 職業(yè)行為習(xí)慣課件
- 高校智能化教學(xué)評價體系變革的技術(shù)創(chuàng)新路徑研究
- 高中復(fù)讀協(xié)議書
- 2025年四川省自貢市中考物理試卷及答案
- 2025年度衛(wèi)生招聘考試(財(cái)務(wù))新版真題卷(附詳細(xì)解析)
- 2025-2030中國戊烷發(fā)泡劑市場深度解析及前景運(yùn)行動態(tài)研究報告
- 2025年6月14日萍鄉(xiāng)市事業(yè)單位面試真題及答案解析
- 2024年深圳市中考生物試卷真題(含答案解析)
- 新疆維吾爾自治區(qū)2024年普通高校招生單列類(選考外語)本科二批次投檔情況 (理工)
- 綠化養(yǎng)護(hù)服務(wù)投標(biāo)方案(技術(shù)標(biāo))
- 溝通與演講2023學(xué)習(xí)通超星課后章節(jié)答案期末考試題庫2023年
評論
0/150
提交評論