C語言ppt課件(完整版)_第1頁
C語言ppt課件(完整版)_第2頁
C語言ppt課件(完整版)_第3頁
C語言ppt課件(完整版)_第4頁
C語言ppt課件(完整版)_第5頁
已閱讀5頁,還剩323頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、語言程序設(shè)計(jì)C語言C帶你認(rèn)識入門篇 了解計(jì)算機(jī)語言的概念及其發(fā)展史 了解常見的高級語言 掌握指令、程序、源程序、目標(biāo)程序的概念 理解C語言的基本特點(diǎn)和上機(jī)步驟學(xué)習(xí)目標(biāo)一、計(jì)算機(jī)語言的概念自然語言: 人與人之間進(jìn)行交流的語言計(jì)算機(jī)語言:是人和計(jì)算機(jī)進(jìn)行信息交流 的工具,人們可以使用計(jì)算機(jī)語言來命 令計(jì)算機(jī)進(jìn)行各種操作處理。 二、計(jì)算機(jī)語言的發(fā)展機(jī)器語言:由0和1二進(jìn)制代碼構(gòu)成。匯編語言:用一組易記的符號代表機(jī)器指令。高級語言:接近于人們習(xí)慣使用的自然語言 和數(shù)學(xué)語言。又稱為類自然語言。例:“加”命令用二進(jìn)制10110111表示。例:“加”命令用add表示。例:“加”命令+表示。三、常見的高級語言

2、及用途C語言:編寫系統(tǒng)軟件,如編寫UNIX, Windows,Linux等操作系統(tǒng).FORTRAN:用于數(shù)值計(jì)算,如微分方程數(shù)值解, 比如氣候模式,海洋模式,模擬核爆炸試驗(yàn) VB:開發(fā)應(yīng)用軟件JAVA:網(wǎng)絡(luò)環(huán)境語言,編手機(jī)上的程序或游戲.C+、 VC+、Dephi、FoxPro四、源程序和目標(biāo)程序源程序:使用高級計(jì)算機(jī)語言編寫的程序代碼 目標(biāo)程序:源程序必須經(jīng)過編譯后生成計(jì)算機(jī) 可以理解的二進(jìn)制形式 ,這樣的二進(jìn)制形式的程序稱為目標(biāo)程序。源程序目標(biāo)程序編譯可執(zhí)行程序鏈接typedef struct student_info StuInfo;extern int numStus;extern S

3、tuInfo* records;extern char savedTag;extern int arraySize;extern char* subject;void handle_menu(void);int menu_select(void);void addRecord(void);void modifyRecord(void);void display(void);void queryInfo(void);void removeRecord(void);void sortInfo(void);int saveRecords(void);int loadRecords(void);voi

4、d newRecords(void);void quit(void);void showTable(void);int findRecord(char* target,int targetType,int from);int getIndex(float sum);void copyRecord(StuInfo* scr,StuInfo* dest);#endif /H_STUDENT_HH01110001 11010011 01110001 11010011 01110001 11010011 01110001 11010011 01110001 11010011 01110001 1101

5、0011 01110001 11010011 01110001 11010011 01110001 11010011 01110001 11010011 01110001 01110001 11010011 01110001 11010011 01110001 11010011 01110001 01110001 11010011 01110001 11010011 01110001 11010011 1011011101010011 01110001 11010011 01110001 11010011 01110001 11010011 11110000 01110001 11010011

6、 01110001 11010011 01110001 11010011 00110110 01110001 11010011 01110001 11010011 01110001 11010011 01110001 11010011 01110001 11010011 01110001 11010011 1111000001101010 01110001 11010011 01110001 11010011 01110001 11010011 10101010 01110001 11010011 01110001 11010011 01110001 11010011 01110001 110

7、10011 01110001 11010011 01110001 11010011 1010101101110001 11010011 01110001 11010011 01110001 11010011 1010101010110111 01110001 11010011 01110001 11010011 01110001 11010011 11011101 01110001 11010011 01110001 11010011 01110001 11010011 01010011 01110001 11010011 01110001 11010011 01110001 11010011

8、 01110001 11010011 01110001 11010011 01110001 11010011 1010101001110001 11010011 01110001 11010011 01110001 11010011 1011110101110001 11010011 01110001 11010011 01110001 11010011 01110001 01110001 11010011 01110001 11010011 01110001 11010011 11011111五、指令、程序、源程序和目標(biāo)程序指令語句:用來指揮計(jì)算機(jī)執(zhí)行某個操作的 命令語句。程 序:為了實(shí)現(xiàn)一

9、定的目的而用計(jì)算機(jī)語 言編寫的一系列指令語句的集合。如:sum=a+b;加法器源程序 main( ) int a,b,sum; scanf(“%d%d”,&a,&b); sum=a+b; printf(“sum=%d”,sum); number1number2sum5625811、編寫程序需要遵循一定的格式嗎?是什么樣的格式呢?2、輸入的數(shù)據(jù)放在什么地方?3、如何使從鍵盤輸入的數(shù)據(jù)到指定的地址中呢?4、如何將計(jì)算好的結(jié)果數(shù)據(jù)輸出來?由加法器可執(zhí)行程序引起的幾個問題?六、走近C語言、認(rèn)識C語言 int number1,number2,sum; printf(請輸入加數(shù):); scanf(“%d”

10、,&number1); printf(請輸入被加數(shù):);scanf(%d,&number2); sum=number1+number2; printf(n%d+%d=%d,number1,number2,sum); main( ) 加法器源程序代碼/*定義3個變量*/*向number1中輸入數(shù)據(jù)*/*主函數(shù)main( )*/上一頁思考:加法器的局限性在于,它只能對整數(shù)進(jìn)行加法運(yùn)算,是否可以編寫這樣的程序,可以對任意兩個整數(shù)進(jìn)行加和減運(yùn)算呢?分析:該計(jì)算器實(shí)現(xiàn)兩個功能:加法功能和減法功能,因此,分別編寫兩個函數(shù)實(shí)現(xiàn)這兩個功能:加法函數(shù)sum( ),減法函數(shù)sub( )。sum (int x,in

11、t y)int sum; scanf(“%d”,&x); scanf(“%d”,&y); sum=x+y; printf(%d+%d=%dn,x,y,sum); 加法函數(shù)sum( )減法函數(shù)sub( )sub(int x,int y)int sub; scanf(“%d”,&x); scanf(“%d”,&y); sub=x-y; printf(%d-%d=%dn,x,y,sub); 上一頁主函數(shù)main( )int number1,number2; int i; printf(“請輸入您的選擇 1:+ 2:-”); scanf(%d,&i); if(i=1) sum(number1,numb

12、er2); if(i=2) sub(number1,number2); 上一頁七、總結(jié)關(guān)于C語言程序結(jié)構(gòu)的介紹 C語言程序是由函數(shù)構(gòu)成的,有且只有一個主函數(shù)main。 一個函數(shù)由兩部分組成:函數(shù)的首部和函數(shù)體。 函數(shù)體有聲明部分和執(zhí)行部分組成。 函數(shù)的執(zhí)行總是先從主函數(shù)main開始執(zhí)行。 main函數(shù)的位置可以任意。 每條語句后都有一個分號“;”作為間隔,分號不可少。一行內(nèi)可以寫多個語句,一個語句也可以寫在多行上。上一頁八、C語言的上機(jī)步驟輸入編輯源程序編 譯連接和生成可執(zhí)行文件.c文件.obj文件.exe文件小結(jié)計(jì)算機(jī)語言是人和計(jì)算機(jī)之間交流的語言C語言是常見的高級語言,它具有低級語言和高級

13、語言的特點(diǎn),不但可以用來編寫應(yīng)用軟件,也可以用來編寫系統(tǒng)軟件.用高級語言編寫出來的程序稱為源程序,經(jīng)過編譯以后生成目標(biāo)程序,鏈接后形成可執(zhí)行程序.就象自然語言要遵循一定的語法規(guī)則一樣,使用C語言編程時也要遵循一定的語法規(guī)則.編寫一個程序,輸入一個整數(shù),求該整數(shù)的立方。main( ) int number1,sum; scanf(“%d”,&number1); scanf(“%d”,&number1); scanf(“%d”,&number1); sum=number1*number1*number1; printf(“%d*%d*%d=%d”,number1,number1,number1,s

14、um);main( ) int number1,sum; scanf(“%d”,&number1); sum=number1*number1*number1; printf(“%d*%d*%d=%d”,number1,number1,number1,sum);第二章 數(shù)據(jù)類型程序=數(shù)據(jù)結(jié)構(gòu)+算法在程序中定義所要處理數(shù)據(jù)的類型和組織形式 對解題方法和解題步驟的描述 C中最常見的三種基本類型:整 型實(shí) 型字符型2.1 常量和變量int a;a=3;a3定義了一個整型變量,名為a將常數(shù)3賦給變量a 變量:在程序運(yùn)行過程中,其值可以改變的量。每個變量在計(jì)算機(jī)中對應(yīng)相應(yīng)長度的存儲空間。常量:在程序運(yùn)行過

15、程中,其值不變的量。一、變量 每個變量在使用之前必須確定其類型,并為之取一個合適的名字。int age;float score;agescorechar sex;sexsex=a;例:定義變量類型的一般形式為: 類型標(biāo)志符 變量名;a(1)標(biāo)識符只能由字母、數(shù)字、下劃線組成,且 第一個字符不能為數(shù)字。(2)C語言區(qū)分大小寫。(3)標(biāo)識符的名字不能和C語言中的關(guān)鍵字和特 定字相同。 (4)標(biāo)識符的長度最好不要超過8個字符。(5)標(biāo)識符的命名最好做到見名知意。如age用 來表示年齡,number表示學(xué)號。標(biāo)志符的命名規(guī)則:二、 常量常見的常量如18, 65.5, 3.14159, m, ding1

16、、整型常量(整常數(shù))1)、十進(jìn)制形式表示:如25,65,23。2)、八進(jìn)制形式表示:以數(shù)字0開頭,如0253)、十六進(jìn)制形式表示:以數(shù)字0 x開頭,如 0 x25,0 x65,0 x1A。2、實(shí)型常量(實(shí)數(shù)、浮點(diǎn)數(shù))十進(jìn)制小數(shù)形式:10.25,-1.2314指數(shù)形式表示: 如23500可以用指數(shù)形式表示為:2.35e4 0.00014 可以用指數(shù)形式表示為:1.4e-43、字符型常量常見的字符常量有:a, A, F, *, , 1)、普通字符常量2)、轉(zhuǎn)義字符常量如 n表示換行的意思 r表示使光標(biāo)回到本行的開頭 b表示使光標(biāo)回到前一列t表示使光標(biāo)移到下一個Tab的位置a表示響起報警聲表示一個表

17、示單撇號”表示雙撇號”ddd表示一到三位八進(jìn)制數(shù)所代表的字符xdd表示一到二位十六進(jìn)制所代表的字符 4、字符串常量字符串常量就是由多個字符組成的字符序列,用雙撇號括起來 。例:“Dai Chunmei”“$89 ”D a i C h u n m e I 0 $ 8 9 0回顧1、C語言中三種最基本的數(shù)據(jù)類型包括:( )A、整型、實(shí)型、邏輯型 B、整型、實(shí)型、字符型C、整型、字符型、邏輯型 D、整型、實(shí)型、邏輯型、字符型2、在C語言中,下面哪一個不是整型常量( )A、123 B、123L C、0 x123 D、U1233、在C語言中,下面哪一個不是字符型常量( )A、a B、81 C、0 x41

18、 D、“a” E、t4、下列選項(xiàng)哪個選項(xiàng)不符合C語言中變量名的命名規(guī)則( )A、age_1 B、1_age C、_1age D、age*1 思考題:現(xiàn)在需要編寫一個教師的工資管理系統(tǒng),其中涉及到一個變量,用來存放教師的工齡。該如何定義。2.2 整型變量int T_age;類型標(biāo)志符變量名T_ageint型變量占2個字節(jié)的存儲空間一、整型數(shù)據(jù)在內(nèi)存中的存儲形式 補(bǔ)碼表示,最高位表示符號位,正數(shù)用0表示,負(fù) 數(shù)用1表示。假設(shè)使T_age=15, 則15在計(jì)算機(jī)中的存儲形式為:0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1假設(shè)使T_age=-15, 則15在計(jì)算機(jī)中的存儲形式為:1

19、1 1 1 1 1 1 1 1 1 1 1 0 0 0 1所以,int型數(shù)據(jù)存儲范圍為:-215 215-1 -32768 32767二、 整型變量的分類short int (短整型)long int (長整型)int (基本整型)整型signed int unsigned intsigned short int unsigned short int signed long int unsigned long int 第三章 運(yùn)算符和表達(dá)式 當(dāng)變量被定義為某一種類型后,即被分配相應(yīng)的存儲空間,此后并不能放置一旁而不用,還需要對其進(jìn)行加工。 何謂加工?加工就是指運(yùn)算, C中最常見的運(yùn)算有加、減、

20、乘、除等。 運(yùn)算符就是用來表示運(yùn)算的符號,如“+” 、“-”、“*”、“/” 。 參加運(yùn)算的數(shù)據(jù)稱為運(yùn)算量,也就是運(yùn)算對象。由運(yùn)算符把運(yùn)算對象連接起來的式子稱為表達(dá)式,如“ suma+b;”就是一個表達(dá)式。C語言中常見的運(yùn)算符3.1 算術(shù)運(yùn)算符3.2 賦值運(yùn)算符3.3 關(guān)系運(yùn)算符3.4 邏輯運(yùn)算符3.5 位運(yùn)算符3.6 逗號運(yùn)算符3.7 求字節(jié)數(shù)運(yùn)算符sizeof和強(qiáng)制類型轉(zhuǎn)換運(yùn)算符3.8 復(fù)習(xí) 3.1 算術(shù)運(yùn)算符和表達(dá)式一、常見的算術(shù)運(yùn)算符 + - * / % 當(dāng)兩個整數(shù)相除時,商的結(jié)果取整。如5/3的結(jié)果為1,-5/3的結(jié)果為-1。 當(dāng)兩個除數(shù)中有一個為實(shí)數(shù)時,結(jié)果為實(shí)數(shù),如5/2.0=2

21、.5。 實(shí)現(xiàn)兩個整數(shù)的相除取余 ,結(jié)果的符號和被除數(shù)的符號相同。參加取余運(yùn)算的兩個數(shù)必須是整數(shù)。 二、自增、自減運(yùn)算符+ - - 1)自增運(yùn)算符+: 使變量的值增1例: i+; 表示使用完i之后,使i的值增1 +i; 表示先使i的值增1,然后再使用i2)自減運(yùn)算符- -: 使變量的值減1例: i-; 表示使用完i之后,使i的值減1 -i; 表示先使i的值減1,然后再使用i例1:int a,b,c;a=5;b=+a;c=a+;結(jié)果: a=7; b=6; c=6;例2:int a,b,c;a=5;b=- -a;c=b- -;結(jié)果: a=4; b=3; c=4;三、算術(shù)運(yùn)算符的優(yōu)先級和結(jié)合性 思考題

22、:表達(dá)式- -x-a*b/c+的結(jié)果值是多少?(假設(shè)x的值為3,a的值為5,b的值為2,c的值為3) 運(yùn)算符的優(yōu)先級:運(yùn)算符的優(yōu)先次序運(yùn)算符的結(jié)合性:當(dāng)優(yōu)先級相同時,是自左至右或是自右至左計(jì)算(- -x)-a*b/c+-1- -x-a*b/c+、-、+(取正)、-(取負(fù)) *、/、% +、- 自右至左自左至右自左至右number=24;3.2 賦值運(yùn)算符和表達(dá)式賦值運(yùn)算符x+5;x*y; 注意: 當(dāng)賦值運(yùn)算符右邊的常量或表達(dá)式的類型和左邊變量的類型不一致時,先將右邊表達(dá)式的類型轉(zhuǎn)換為和左邊相同的類型,然后再賦值。 例: float x; X=3;1、普通的賦值運(yùn)算符2、復(fù)合的賦值運(yùn)算符x=x+

23、y;x+=y;復(fù)合的賦值加運(yùn)算符(1) +=(2) -=(3) *=(4) /= (5)%= 常見的復(fù)合的賦值運(yùn)算運(yùn)算符例如: x的值為6, 則 x+=4 的結(jié)果是什么? 3、賦值運(yùn)算符的優(yōu)先級和結(jié)合性算術(shù)運(yùn)算符賦值運(yùn)算符結(jié)合性為自右而左例:已知a=5,b=8,n未知。求下列各表達(dá)式的值。1、n=b+8;2、n+=a*=2;3、n=a=b;3.3 關(guān)系運(yùn)算符和表達(dá)式 關(guān)系運(yùn)算又稱比較運(yùn)算,就是對兩個運(yùn)算量進(jìn)行比較,判斷其比較的結(jié)果是否符合給定的條件。如果符合,則結(jié)果為“真”,用1表示;如果不符合,則結(jié)果為“假”,用0表示。1、常見的關(guān)系運(yùn)算符(大于)、=(大于或等于)、=(等于)、!=(不等于

24、) 2、關(guān)系運(yùn)算符的優(yōu)先級和結(jié)合性 算術(shù)運(yùn)算符關(guān)系運(yùn)算符 賦值運(yùn)算符 自左至右 自左至右 自右至左例:number1=25;判斷下列表達(dá)式的值。 (1)number1=25; (2) number1=25; (3)number1%5=0 (4)number1!=24; (5) number1/34; (7) number1242; (8) number1+1=26;實(shí)訓(xùn)已知i=3,j=4,a=5,b=6,m為未知。求下列各式的值。(1)+i+j-a(2)a+b-j*a/i(3)m=-j+ 3.4 邏輯運(yùn)算符和表達(dá)式思考題:如何表示整數(shù)x既可以被5整除又可以被7 整除.x%5=0 x%7=0&(

25、 ) ( )邏輯運(yùn)算符”邏輯與”邏輯或(): 一般形式 ab, a和b中任一為真,結(jié)果為真.邏輯與(&):一般形式: a & b;只有當(dāng)a和b都為真時,結(jié)果才為真.邏輯非(!): 一般形式 !a, a為真,!a就為假; a為假,!a為真.例:判斷下列各邏輯表達(dá)式的值假設(shè)a=5, b=6, c=3, d=10;(ab) & (cd);(ad)!a!a & b3101001邏輯運(yùn)算符的優(yōu)先級和結(jié)合性 高 ?。ㄟ壿嫹牵?算術(shù)運(yùn)算符 關(guān)系運(yùn)算符 &和 低 賦值運(yùn)算符 自左至右自右至左X=!a+2 xy+2&a=3,已知a=3,x=5,y=4,求x的值。 實(shí)訓(xùn)1、若a=5,b=4,x=0,判斷下面兩個表

26、達(dá)式的結(jié)果及x的值: (1) 0&x=ab (2) ab +x 2、要判別某一年是否閏年。閏年的條件是符合下面兩個條件的其中一個就可以了: (1)能被4整除, 但不能被100整除; (2)能被4整除, 又能被400整除;(year%4=0&year%100!=0) (year%400=0)3.5 位運(yùn)算符和表達(dá)式位運(yùn)算:就是對二進(jìn)制位進(jìn)行的運(yùn)算. C中常用的位運(yùn)算符: &(按位與) (按位或) (按位異或) (取反) (右移) (左移)“按位與”運(yùn)算符& “按位與”又稱“按位乘”,即二進(jìn)位相乘。“按位與”的規(guī)則為: 0&0=0, 0&1=0, 1&0=0, 1&1=1 例: 求-1和5按位與的

27、結(jié)果.-1的補(bǔ)碼: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5的補(bǔ)碼: 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1按位與的作用: 使一個存儲單元清零3.6 逗號運(yùn)算符和表達(dá)式,逗號運(yùn)算符作用在于將若干個表達(dá)式連接起來。逗號表達(dá)式的一般形式為:表達(dá)式1,表達(dá)式2,表達(dá)式3,表達(dá)式n整個逗號表達(dá)式的值就是最后的表達(dá)式n的值 實(shí)訓(xùn)已知a=3,求下面逗號表達(dá)式的值。(1)+a,a+5,a+6 (2)a=2*3,b=a-2,b-a,a+=23.7 sizeof運(yùn)算符和強(qiáng)制類型轉(zhuǎn)換運(yùn)算符一、求字節(jié)數(shù)

28、運(yùn)算符sizeof( )功能: 求數(shù)據(jù)在存儲器中所占的字節(jié)數(shù) 例: sizeof( long double );sizeof( x+y );sizeof( 123456 );二、強(qiáng)制類型轉(zhuǎn)換運(yùn)算符思考:假設(shè)現(xiàn)在需要編寫一個程序,判斷一個實(shí)數(shù)x的整數(shù)部分是否為偶數(shù), 要求x從鍵盤輸入。main( ) float x; scanf(“%f”,&x); if( ) printf(“Yes!”); else printf(“No!”);強(qiáng)制類型轉(zhuǎn)換運(yùn)算符的一般使用形式: (類型名)(表達(dá)式);希望被轉(zhuǎn)換的對象希望轉(zhuǎn)換的類型已知x=2.5, y=3.7,求(int)x+y 和 (int)(x+y)的值

29、實(shí)訓(xùn)1、求下列算術(shù)表達(dá)式的值(1)a+b/2%3*(int)c/d*3 設(shè)a=3.5, b=11, c=5.7, d=2(2)(int)x/y+(float)y%x 設(shè)x=8.3,y=3(3)!(x+y)+z&x*z-1 x的值為2,y的值為3,z的值為1 思考:求任一4位八進(jìn)制所對應(yīng)的十進(jìn)制數(shù)main( )int x1,x2,x3,x4,o_number,d_number; scanf( %d, &o_number );x1=o_number/1000;x2=o_number%1000/100;x3=o_number%100/10;x4=o_number%10;d_number =x1*8*

30、8*8+x2*8*8+x3*8+x4;printf (The decimal of %d is %dn“ ,o_number,d_number); 第四章 輸入/輸出函數(shù) char a;輸入scanf (“ %c ”,&a );a=getch( );0 1 0 0 0 0 0 1輸出printf (“ %c ”, a );putchar (a);gets( );puts( );#include “stdio.h ”或 #include 4.1 輸出函數(shù)putchar( )和printf( )一、 字符輸出函數(shù)putchar( )1、功能輸出一個字符2、一般形式putchar( c );可以是字

31、符變量字符常量整型常量整型變量轉(zhuǎn)義字符putchar (c);putchar (c);putchar (99);putchar (c);putchar (n);1、功能一、 格式輸出函數(shù)printf( )它可以將任意多個數(shù)據(jù)按各自指定的格式輸出來。例:int number=24;float score=95.5;char sex=m; printf(“ %d, %f, %c ”,number, score, sex);輸出結(jié)果: 24, 95.000000, m printf(“ number=%d, score=%f, sex=%c ”, number, score, sex);輸出結(jié)果:

32、number=24, score=95.000000, sex=m二、一般形式printf(“格式控制”,輸出表列);上一頁三、格式說明符1、%d:用來輸出十進(jìn)制int型數(shù)據(jù) %md:m是一個常數(shù),用來限定輸出數(shù)據(jù)所占的寬度。 %ld:以長整型形式輸出數(shù)據(jù)。 下一頁2、%u格式符輸出十進(jìn)制unsigned型數(shù)據(jù)。 3、%o格式符以八進(jìn)制無符號形式輸出整數(shù),輸出時將符號位一起轉(zhuǎn)化為八進(jìn)制數(shù)值。 4、%x格式符以十六進(jìn)制無符號形式輸出整數(shù),輸出時將符號位一起轉(zhuǎn)化為十六進(jìn)制數(shù)值。 實(shí)訓(xùn)main( )int a=-1; printf(“%d,%o,%8o”,a,a,a);a在計(jì)算機(jī)中的存儲形式1 1

33、1 1 1 1 1 11 1 1 1 1 1 1 177777輸出結(jié)果:-1,177777, 1777775、%c格式符以字符形式輸出數(shù)據(jù)char ch;ch=a;printf(“ %c ”, ch);%dint a;a=65;printf(“ %c ”, a);字符型數(shù)據(jù)可以以字符形式輸出,也可以以整型形式輸出。整型數(shù)據(jù)(0255)也可以以字符形式輸出。例1例26、%f格式符以實(shí)數(shù)形式輸出數(shù)據(jù)%f:輸出帶6位小數(shù)的實(shí)數(shù)。對于單精度實(shí)數(shù),有效位數(shù)為7位 %m.nf:指定輸出數(shù)據(jù)占m列,其中有n位小數(shù) %.nf: 表示帶n位小數(shù),對列寬無限制。 main( ) float x=12345.111

34、1001; printf(“%fn”,x); printf(“%10.2f,%-10.1f,%.2f”,x,x,x); 實(shí)訓(xùn)輸出結(jié)果:12345.111328 12345.11 12345.1 12345.117、%s格式符用來輸出一個字符串printf(“%s”,”china”);8、%e格式符以指數(shù)形式輸出實(shí)數(shù)printf(“%e”,123.456);輸出為:1.23456e+02。4.2 輸入函數(shù)getchar( )和scanf( )一、字符輸入函數(shù)getchar( )1、功能:從鍵盤輸入一個字符2、一般形式: 字符變量=getchar( );思考題:從鍵盤輸入任一字符, 如果該字符是小

35、寫字符,將其轉(zhuǎn)換為大寫字符輸出,否則不變輸出。main( )char ch; ch= ;if (ch=a) ch=ch-32; ; getchar( )putchar( )#include ”stdio.h”實(shí)訓(xùn)1二、 格式輸入函數(shù)scanf( ) 思考1:如何實(shí)現(xiàn)向整型變量a中輸入數(shù)據(jù)?scanf(“ %d ”,&a);思考2:如何實(shí)現(xiàn)向?qū)嵭妥兞縝中輸入數(shù)據(jù)?scanf(“ %f ”,&b);思考3:如何實(shí)現(xiàn)向整型變量a和實(shí)型變量b中輸入數(shù)據(jù)?scanf(“ %d %f ”,&a, &b);1、scanf( )函數(shù)的一般形式scanf(“格式控制”,地址表列);2、scanf( )函數(shù)使用示

36、例int a, b, c;scanf( “%d %d %d ”, &a, &b, &c);scanf( “%d ,%d ,%d ”, &a, &b, &c);scanf( “a=%d ,b=%d,c=%d ”, &a, &b, &c);程序=數(shù)據(jù)結(jié)構(gòu)+算法數(shù)據(jù)的類型和組織形式 解決問題的方法和步驟 第五章 算法描述算法的方法:自然語言、流程圖例1:輸入兩個數(shù)a和b,要求實(shí)現(xiàn)將a和b中的數(shù)據(jù)進(jìn)行交換。算法描述125abt1、定義三個變量a、b、t2、輸入a和b的值3、t=a;a=b;b=t;4、輸出a和b5.1 算法的概念和使用舉例一、三個典型實(shí)例main( )float a, b ,t; sc

37、anf (“%f %f ”,&a ,&b); t=a; a=b; b=t; printf ( “%f, %f ”.a. b);思考題: 從鍵盤輸入兩個數(shù), 將這兩個數(shù)按照從小到大的順序輸出來。比如輸入5和1,則輸出結(jié)果為1,5。例2:從鍵盤輸入三個整數(shù),將這三個整數(shù)按照從大到小的順序輸出來。比如:如果輸入34、12、89;則輸出為89、34、121、定義四個變量a、b、c、t;2、輸入a、b、c的值3、如果ba,則 t=b;b=a;a=t;4、如果ca,則 t=c;c=a;a=t;5、如果cb,則 t=c;c=b;b=t;6、輸出a、b、c的值例3:編寫一個程序,求13599 1357999假

38、設(shè)用S表示乘積結(jié)果,用i表示被乘數(shù)S=1 i=11、定義2個變量S和i2、S=1;i=1;3、S=S*i;i=i+2;4、如果ia,則t=b;b=a;a=t;4、如果ca,則t=c;c=a;a=t;5、如果cb,則t=c;c=b;b=t;6、輸出a、b、c的值常用的流程圖符號開始/結(jié)束框處理框輸入/輸出框條件判斷框流程線結(jié) 束定義S和iS=1; i=1S=S*I; i=i+2;i=99Y輸出S開 始例3:編寫一個程序,求13599 N1、定義2個變量S和i2、S=1;i=1;3、S=S*i;i=i+2;4、如果i=99;返回3繼續(xù) 否則,轉(zhuǎn)到55、輸出s傳統(tǒng)流程圖的三種基本結(jié)構(gòu)順序結(jié)構(gòu)操作A操

39、作B操作C選擇結(jié)構(gòu)操作D操作A條件P操作B操作C操作D循環(huán)結(jié)構(gòu)操作A條件P操作B操作CYNYN實(shí)訓(xùn)(請用傳統(tǒng)流程圖表示下列兩個題目的算法)1、當(dāng)從鍵盤輸入一個字符時,實(shí)現(xiàn)判斷該字符是大寫字符還是小寫字符。如果是大寫字符,輸出“UPWORD”,并將其轉(zhuǎn)換為小寫字符輸出;如果是小寫字符,則輸出“DOWNWORD”,并將其轉(zhuǎn)換為大寫字符輸出。 2、整數(shù)累乘:如果求12345100的結(jié)果。二、算法的N-S流程圖表示定義a、b、t輸入a、bt=a; a=b; b=t;輸出a、b開 始結(jié) 束傳統(tǒng)流程圖定義a、b、t輸入a、bt=a; a=b; b=t;輸出a、bN-S流程圖輸入a、b、cbaYNt=b;

40、b=a; a=t;caYNt=c; c=a; a=t;cbYNt=c; c=b; b=t;輸出a、b、c從鍵盤輸入三個整數(shù),將這三個整數(shù)按照從大到小的順序輸出來。結(jié) 束定義S和iS=1; i=1;S=S*I; i=i+2;i=99Y輸出S開 始例3:編寫一個程序,求13599 定義s和iS=1; i=1;輸出SS=S*I; i=i+2; i=99傳統(tǒng)流程圖N-S流程圖總結(jié):傳統(tǒng)流程圖的三種基本結(jié)構(gòu)順序結(jié)構(gòu)操作A操作B操作C操作D操作 A操作 B操作 C操作 D選擇結(jié)構(gòu)操作A條件P操作B操作C操作DYN操作A條件PYN操作B操作C操作D循環(huán)結(jié)構(gòu)操作A條件P操作B操作CYN操作A條件P操作B操作C

41、1、奇偶數(shù)識別:要求從鍵盤輸入一個整數(shù),判別其是奇數(shù)或偶數(shù),如果是奇數(shù),輸出“It is an odd number!”;如果是偶數(shù),輸出“It is an even number!”。2、整數(shù)累乘:如果求12345100的結(jié)果。實(shí)訓(xùn) (請用N-S流程圖表示下列兩個題目的算法)編寫一個程序,要求從鍵盤輸入一個數(shù),能夠輸出該數(shù)的所有公約數(shù)。 綜合實(shí)訓(xùn)一、順序結(jié)構(gòu)程序設(shè)計(jì)實(shí)例導(dǎo)入: 編寫一個程序,實(shí)現(xiàn)這樣的功能:要求從鍵盤輸入任一八進(jìn)制數(shù)字,可以實(shí)現(xiàn)將該數(shù)字轉(zhuǎn)換為十進(jìn)制數(shù)字,比如當(dāng)輸入八進(jìn)制4520時,輸出4520所對應(yīng)的十進(jìn)制數(shù)2384。 第六章 結(jié)構(gòu)化程序設(shè)計(jì)(4520)8=4*8*8*8+5

42、*8*8+2*80+解析:4520/10004520%1000/1004520%100/10千位數(shù)4:百位數(shù)5:十位數(shù)2:個位數(shù)0:4520%10求一個四位八進(jìn)制數(shù)o_number所對應(yīng)的十進(jìn)制d_number, 則需先求出o_number的千位、百位、十位、個位數(shù),假如分別用a、b、c、d表示。a= o_number/1000;b= o_number%1000/100;c= o_number%100/10;d= o_number%10;d_number=a*8*8*8+b*8*8+c*8+d;算法描述1、定義變量int o_number1, d_number2, a, b, c, d;2、輸

43、入o_number1Lscanf (“%d”, &number);3、求出a、b、c、d:a= o_number/1000;b= o_number%1000/100;c= o_number%100/10;d= o_number%10;4、求出d_number2 :d_number=a*8*8*8+b*8*8+c*8+d;5、輸出d_number2 :printf (“ %d”, d_number);完整的程序main( )int o_number ,d_number ,a ,b ,c , d; scanf( %d, &o_number); a=o_number/1000; b=o_number

44、%1000/100; c=o_number%100/10; d=o_number%10; d_number=a*8*8*8+b*8*8+c*8+d; printf( “O: %d, D: %d, o_number, d_number); printf(“ please input a octal number:n”);getch( );實(shí)訓(xùn)編寫一個體重測量儀: 要求從鍵盤輸入身高和體重后,能夠計(jì)算出體重指數(shù)。 體重指數(shù)=體重(kg)/(身高)2;算法描述:1、定義3個變量:float index, weight, height;2、輸入體重:scanf( “%f”, &weight);3、輸入

45、身高:scanf( “%f”, &height);4、計(jì)算指數(shù):index=weight/(height*height);5、輸出指數(shù):printf( “%f”, index);完整程序main( )float weight, height, index; scanf (%f, &weight); scanf (%f, &height); index=weight/(height*height); printf (The index of your weight is: %f, index); printf(“ n please input your weight:);printf(“ n p

46、lease input your height:);getch( );總結(jié):1、順序結(jié)構(gòu)是最簡單的一種結(jié)構(gòu), 它按照操 作執(zhí)行的先后順序來編寫程序。2、編程應(yīng)該遵循:先根據(jù)功能要求設(shè)計(jì)出算法(用自然語言描述或用流程圖描述),然后再根據(jù)算法編寫程序。3、程序應(yīng)該結(jié)構(gòu)清晰、界面美觀、容易操作 編寫一個體重測量儀: 要求從鍵盤輸入身高和體重后,能夠計(jì)算出體重指數(shù)。 體重指數(shù)=體重(kg)/(身高)2;要求實(shí)現(xiàn)這樣的判斷: 如果體重指數(shù)25, 屬于正常; 否則屬于肥胖.實(shí)訓(xùn):體重測量儀改進(jìn)版1二、選擇結(jié)構(gòu)程序設(shè)計(jì)如果index25, 輸出“You are right!”否則 輸出“You are fa

47、t!”main( )float weight, height, index; scanf (%f, &weight); scanf (%f, &height); index=weight/(height*height); printf (The index of your weight is: %f, index); printf(“ n please input your weight:);printf(“ n please input your height:);if( index1600) revenue=(salary-1600)*0.15;else revenue=(salary-1

48、600)*0.05;YN 從鍵盤輸入一個數(shù),求出該數(shù)絕對值所對應(yīng)的開方開 始定義變量a,b,c輸入aa=0b=ab=-ac=sqrt(b)輸出c結(jié)束YN算法1實(shí)訓(xùn)#includemath.hmain( )float a,b,c; printf (n please input a number:n); scanf(%f,&a); if(a=0) b=a; else b=-a; c=sqrt(b); printf(The sqrt of %f is %fn,a,c); getch( );程序1開 始定義變量a,b,c輸入aa=0b=ab=-ac=sqrt(b)輸出c結(jié)束N算法2Y程序2#inclu

49、demath.hmain()float a,b,c; printf(n please input a number:n); scanf (%f, &a); b=a; if(amax) max=b;printf(“max=%d”,max); 思考:當(dāng)輸入45和32時,下面這個程序的輸出結(jié)果是什么?體重測量儀改進(jìn)版2編寫一個體重測量儀: 要求從鍵盤輸入身高和體重后,能夠計(jì)算出體重指數(shù)。 體重指數(shù)=體重(kg)/(身高)2;要求實(shí)現(xiàn)這樣的判斷: 偏瘦:體重指數(shù)18 正常: 18=體重指數(shù)25; 微胖: 25=體重指數(shù)30; 較胖: 30=體重指數(shù)35; 肥胖:35=體重指數(shù)=40; 如果體重指數(shù)小于

50、18,偏瘦 否則如果體重指數(shù)小于25,標(biāo)準(zhǔn) 否則如果體重指數(shù)小于30,微胖 否則如果體重指數(shù)小于35,較胖 否則如果體重指數(shù)小于40,肥胖 否則很胖 3、if語句的第三種形式if(表達(dá)式1) 語句1 else if(表達(dá)式2) 語句2 else if(表達(dá)式3)語句3 else if(表達(dá)式4)語句4 else 表達(dá)式5 表達(dá)式1語句1YN表達(dá)式2語句2YN表達(dá)式3Y語句3N表達(dá)式4Y語句4N語句5從鍵盤輸入一個學(xué)生的分?jǐn)?shù), 要求實(shí)現(xiàn)這樣的判斷功能:如果分?jǐn)?shù)大于100,輸出”Input error!”如果分?jǐn)?shù)介于100到90之間, 輸出”Very Good!”如果分?jǐn)?shù)介于80到90只,輸出”G

51、ood!”如果分?jǐn)?shù)介于70到80之間,輸出”Middle”如果分?jǐn)?shù)介于60到70之間, 輸出”Pass”如果分?jǐn)?shù)小于60,輸出”No Pass!”實(shí)訓(xùn)算法1描述1、定義一個變量score;2、輸入score的值;3、如果score100, 輸出“Input error!”4、否則如果score=90, 輸出“Very Good!”5、否則如果score=80, 輸出“Good!”6、否則如果score=70, 輸出“Middle!”7、否則如果score=60, 輸出“Pass!”8、否則輸出“No Pass!”9、否則輸出“Input error!main( )float score; pr

52、intf( please input a number:n); scanf (%f, &score); if (score100) printf (Input error!); else if (score=90) printf (very good!); else if (score=80) printf (good!); else if (score=70) printf (middle!);else if (score=60) printf (pass!); else printf (no pass!); getch( );else if (score=0) printf (“No pa

53、ss!”); else printf (“Input error!”);總結(jié)if語句的三種基本形式if(表達(dá)式) 語句1 else 語句21、最基本的形式2、最簡單的形式if(表達(dá)式) 語句3、層次形式if(表達(dá)式1) 語句1 else if(表達(dá)式2) 語句2 else if(表達(dá)式3)語句3 else if(表達(dá)式4)語句4 else 表達(dá)式5 實(shí)訓(xùn)假如從鍵盤輸入67,下面這個程序的結(jié)果是什么,如果輸入89,90,101呢?main( )float score; scanf (%f,&score); if(score=60) if(score=90) printf (A); else pr

54、intf (B); else if(score=0) printf (C); else printf (Input error!);二、if語句的嵌套if(表達(dá)式1) if(表達(dá)式2) 語句1 else 語句2else if(表達(dá)式3)語句3 else 語句4一般使用形式假如從鍵盤輸入5,下面程序的輸出結(jié)果是什么?main( )int x ,y; scanf (%d, &x); if (x=0) if (x10) y=x*x-5; else if (x5) y=x*x*x+2;else y=x; else if (x-10) y=x*x+5; else y=x*x+11; printf (%d

55、, y);思考題某單位的工資是這樣計(jì)算的: 工資=基本工資+工齡工資;工齡為1年: 工齡工資=基本工資*0.1;工齡為23年: 工齡工資=基本工資*0.25;工齡為45年: 工齡工資=基本工資*0.5;工齡為68年: 工齡工資=基本工資*0.8;工齡大于8年的:工齡工資=基本工資*工齡*0.1;基本工資為1500元。要求從鍵盤輸入教師的工齡,可以根據(jù)工齡計(jì)算該教師的基本工資。使用if語句來編寫如下的程序:實(shí)訓(xùn)算法描述:1、定義兩個實(shí)型變量:工資salary、工齡工資 a_salary; 定義一個整型變量:工齡age;2、輸入工齡age;3、如果age=1; a_salary=1500*0.1;

56、4、如果2=age=3; a_salary=1500*0.25;5、如果4=age=5; a_salary=1500*0. 5;6、如果6=age=8; a_salary=1500*0.8;7、如果8=2&age=4&age=6&age8) a_salary=1500*age*0.1; salary=1500+a_salary; printf(%.1f,salary); main() float salary ,a_salary; int age; scanf (%d“ ,&age); switch (age) case 1: a_salary=1500*0.1; break; case 2:

57、 a_salary=1500*0.25; break; case 3: a_salary=1500*0.25; break; case 4: a_salary=1500*0.5; break; case 5: a_salary=1500*0.5; break; case 6: a_salary=1500*0.8; break; case 7: a_salary=1500*0.8; break; case 8: a_salary=1500*0.8; break; default:a_salary=1500*age*0.1; salary=1500+a_salary; printf(salary:

58、%.1f,salary);復(fù)習(xí)判斷一個學(xué)生成績的“優(yōu)、良、中、差”:假如從鍵盤輸入的字母是A,輸出評語“You are Excellent!”;如果輸入B,輸出評語“You are well!”;如果輸入C,輸出評語“You are passing!”;如果輸入D,輸出評語“You are not passing!”。如果輸入的不是這四個字母,則出現(xiàn)提示“Input error!”請編寫一個程序,實(shí)現(xiàn)該判斷功能。1、定義一個字符型變量score;2、輸入字符score;3、如果score=A,輸出“Excellent!”4、如果score=B,輸出“well!”5、如果score=C,輸出“p

59、ass!”6、如果score=D,輸出“Not pass!”7、如果以上都不是,則輸出“Input error!”算法描述If語句實(shí)現(xiàn)main( ) char score; scanf( “%c”, &score); if(score=A) printf(“excellent!”); else if(score=B) printf(“well!”); else if(score=C) printf(“pass!”); else if(score=D) printf(“No pass”); else printf(“Input error!”);switch語句實(shí)現(xiàn)main( ) char sc

60、ore; scanf( “%c”, &score); switch(score) case A: printf(“Excellent!”); case B: printf(“Well!”); case C: printf(“Pass!”); case D: printf(“No pass!”); default: printf(“Input error!”);break;break;break;break;三、switch語句的使用switch(表達(dá)式) case 常量表達(dá)式: 語句1 case 常量表達(dá)式: 語句2 case 常量表達(dá)式: 語句n default: 語句 n+1 四、條件運(yùn)算

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論