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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

2、及用途C語言:編寫系統(tǒng)軟件,如編寫UNIX, Windows,Linux等操作系統(tǒng).FORTRAN:用于數(shù)值計算,如微分方程數(shù)值解, 比如氣候模式,海洋模式,模擬核爆炸試驗 VB:開發(fā)應用軟件JAVA:網絡環(huán)境語言,編手機上的程序或游戲.C+、 VC+、Dephi、FoxPro四、源程序和目標程序源程序:使用高級計算機語言編寫的程序代碼 目標程序:源程序必須經過編譯后生成計算機 可以理解的二進制形式 ,這樣的二進制形式的程序稱為目標程序。源程序目標程序編譯可執(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五、指令、程序、源程序和目標程序指令語句:用來指揮計算機執(zhí)行某個操作的 命令語句。程 序:為了實現(xiàn)一

9、定的目的而用計算機語 言編寫的一系列指令語句的集合。如: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、如何將計算好的結果數(shù)據(jù)輸出來?由加法器可執(zhí)行程序引起的幾個問題?六、走近C語言、認識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ù)進行加法運算,是否可以編寫這樣的程序,可以對任意兩個整數(shù)進行加和減運算呢?分析:該計算器實現(xiàn)兩個功能:加法功能和減法功能,因此,分別編寫兩個函數(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); 上一頁七、總結關于C語言程序結構的介紹 C語言程序是由函數(shù)構成的,有且只有一個主函數(shù)main。 一個函數(shù)由兩部分組成:函數(shù)的首部和函數(shù)體。 函數(shù)體有聲明部分和執(zhí)行部分組成。 函數(shù)的執(zhí)行總是先從主函數(shù)main開始執(zhí)行。 main函數(shù)的位置可以任意。 每條語句后都有一個分號“;”作為間隔,分號不可少。一行內可以寫多個語句,一個語句也可以寫在多行上。上一頁八、C語言的上機步驟輸入編輯源程序編 譯連接和生成可執(zhí)行文件.c文件.obj文件.exe文件小結計算機語言是人和計算機之間交流的語言C語言是常見的高級語言,它具有低級語言和高級

13、語言的特點,不但可以用來編寫應用軟件,也可以用來編寫系統(tǒng)軟件.用高級語言編寫出來的程序稱為源程序,經過編譯以后生成目標程序,鏈接后形成可執(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ù)結構+算法在程序中定義所要處理數(shù)據(jù)的類型和組織形式 對解題方法和解題步驟的描述 C中最常見的三種基本類型:整 型實 型字符型2.1 常量和變量int a;a=3;a3定義了一個整型變量,名為a將常數(shù)3賦給變量a 變量:在程序運行過程中,其值可以改變的量。每個變量在計算機中對應相應長度的存儲空間。常量:在程序運行過

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

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

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

18、 D、“a” E、t4、下列選項哪個選項不符合C語言中變量名的命名規(guī)則( )A、age_1 B、1_age C、_1age D、age*1 思考題:現(xiàn)在需要編寫一個教師的工資管理系統(tǒng),其中涉及到一個變量,用來存放教師的工齡。該如何定義。2.2 整型變量int T_age;類型標志符變量名T_ageint型變量占2個字節(jié)的存儲空間一、整型數(shù)據(jù)在內存中的存儲形式 補碼表示,最高位表示符號位,正數(shù)用0表示,負 數(shù)用1表示。假設使T_age=15, 則15在計算機中的存儲形式為:0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1假設使T_age=-15, 則15在計算機中的存儲形式為: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 第三章 運算符和表達式 當變量被定義為某一種類型后,即被分配相應的存儲空間,此后并不能放置一旁而不用,還需要對其進行加工。 何謂加工?加工就是指運算, C中最常見的運算有加、減、

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

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

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

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

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

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

26、達式的結果及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 位運算符和表達式位運算:就是對二進制位進行的運算. C中常用的位運算符: &(按位與) (按位或) (按位異或) (取反) (右移) (左移)“按位與”運算符& “按位與”又稱“按位乘”,即二進位相乘。“按位與”的規(guī)則為: 0&0=0, 0&1=0, 1&0=0, 1&1=1 例: 求-1和5按位與的

27、結果.-1的補碼: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5的補碼: 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 逗號運算符和表達式,逗號運算符作用在于將若干個表達式連接起來。逗號表達式的一般形式為:表達式1,表達式2,表達式3,表達式n整個逗號表達式的值就是最后的表達式n的值 實訓已知a=3,求下面逗號表達式的值。(1)+a,a+5,a+6 (2)a=2*3,b=a-2,b-a,a+=23.7 sizeof運算符和強制類型轉換運算符一、求字節(jié)數(shù)

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

29、實訓1、求下列算術表達式的值(1)a+b/2%3*(int)c/d*3 設a=3.5, b=11, c=5.7, d=2(2)(int)x/y+(float)y%x 設x=8.3,y=3(3)?。▁+y)+z&x*z-1 x的值為2,y的值為3,z的值為1 思考:求任一4位八進制所對應的十進制數(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、符變量字符常量整型常量整型變量轉義字符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);輸出結果: 24, 95.000000, m printf(“ number=%d, score=%f, sex=%c ”, number, score, sex);輸出結果:

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

33、1 1 1 1 1 11 1 1 1 1 1 1 177777輸出結果:-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ù)據(jù)%f:輸出帶6位小數(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); 實訓輸出結果:12345.111328 12345.11 12345.1 12345.117、%s格式符用來輸出一個字符串printf(“%s”,”china”);8、%e格式符以指數(shù)形式輸出實數(shù)printf(“%e”,123.456);輸出為:1.23456e+02。4.2 輸入函數(shù)getchar( )和scanf( )一、字符輸入函數(shù)getchar( )1、功能:從鍵盤輸入一個字符2、一般形式: 字符變量=getchar( );思考題:從鍵盤輸入任一字符, 如果該字符是小

35、寫字符,將其轉換為大寫字符輸出,否則不變輸出。main( )char ch; ch= ;if (ch=a) ch=ch-32; ; getchar( )putchar( )#include ”stdio.h”實訓1二、 格式輸入函數(shù)scanf( ) 思考1:如何實現(xiàn)向整型變量a中輸入數(shù)據(jù)?scanf(“ %d ”,&a);思考2:如何實現(xiàn)向實型變量b中輸入數(shù)據(jù)?scanf(“ %f ”,&b);思考3:如何實現(xiàn)向整型變量a和實型變量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ù)結構+算法數(shù)據(jù)的類型和組織形式 解決問題的方法和步驟 第五章 算法描述算法的方法:自然語言、流程圖例1:輸入兩個數(shù)a和b,要求實現(xiàn)將a和b中的數(shù)據(jù)進行交換。算法描述125abt1、定義三個變量a、b、t2、輸入a和b的值3、t=a;a=b;b=t;4、輸出a和b5.1 算法的概念和使用舉例一、三個典型實例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,則輸出結果為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、設用S表示乘積結果,用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的值常用的流程圖符號開始/結束框處理框輸入/輸出框條件判斷框流程線結 束定義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ù) 否則,轉到55、輸出s傳統(tǒng)流程圖的三種基本結構順序結構操作A操

39、作B操作C選擇結構操作D操作A條件P操作B操作C操作D循環(huán)結構操作A條件P操作B操作CYNYN實訓(請用傳統(tǒng)流程圖表示下列兩個題目的算法)1、當從鍵盤輸入一個字符時,實現(xiàn)判斷該字符是大寫字符還是小寫字符。如果是大寫字符,輸出“UPWORD”,并將其轉換為小寫字符輸出;如果是小寫字符,則輸出“DOWNWORD”,并將其轉換為大寫字符輸出。 2、整數(shù)累乘:如果求12345100的結果。二、算法的N-S流程圖表示定義a、b、t輸入a、bt=a; a=b; b=t;輸出a、b開 始結 束傳統(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ù)按照從大到小的順序輸出來。結 束定義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流程圖總結:傳統(tǒng)流程圖的三種基本結構順序結構操作A操作B操作C操作D操作 A操作 B操作 C操作 D選擇結構操作A條件P操作B操作C操作DYN操作A條件PYN操作B操作C操作D循環(huán)結構操作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的結果。實訓 (請用N-S流程圖表示下列兩個題目的算法)編寫一個程序,要求從鍵盤輸入一個數(shù),能夠輸出該數(shù)的所有公約數(shù)。 綜合實訓一、順序結構程序設計實例導入: 編寫一個程序,實現(xiàn)這樣的功能:要求從鍵盤輸入任一八進制數(shù)字,可以實現(xiàn)將該數(shù)字轉換為十進制數(shù)字,比如當輸入八進制4520時,輸出4520所對應的十進制數(shù)2384。 第六章 結構化程序設計(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求一個四位八進制數(shù)o_number所對應的十進制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ù)。 體重指數(shù)=體重(kg)/(身高)2;算法描述:1、定義3個變量:float index, weight, height;2、輸入體重:scanf( “%f”, &weight);3、輸入

45、身高:scanf( “%f”, &height);4、計算指數(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( );總結:1、順序結構是最簡單的一種結構, 它按照操 作執(zhí)行的先后順序來編寫程序。2、編程應該遵循:先根據(jù)功能要求設計出算法(用自然語言描述或用流程圖描述),然后再根據(jù)算法編寫程序。3、程序應該結構清晰、界面美觀、容易操作 編寫一個體重測量儀: 要求從鍵盤輸入身高和體重后,能夠計算出體重指數(shù)。 體重指數(shù)=體重(kg)/(身高)2;要求實現(xiàn)這樣的判斷: 如果體重指數(shù)25, 屬于正常; 否則屬于肥胖.實訓:體重測量儀改進版1二、選擇結構程序設計如果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ù)絕對值所對應的開方開 始定義變量a,b,c輸入aa=0b=ab=-ac=sqrt(b)輸出c結束YN算法1實訓#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結束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); 思考:當輸入45和32時,下面這個程序的輸出結果是什么?體重測量儀改進版2編寫一個體重測量儀: 要求從鍵盤輸入身高和體重后,能夠計算出體重指數(shù)。 體重指數(shù)=體重(kg)/(身高)2;要求實現(xiàn)這樣的判斷: 偏瘦:體重指數(shù)18 正常: 18=體重指數(shù)25; 微胖: 25=體重指數(shù)30; 較胖: 30=體重指數(shù)35; 肥胖:35=體重指數(shù)=40; 如果體重指數(shù)小于

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

51、ood!”如果分數(shù)介于70到80之間,輸出”Middle”如果分數(shù)介于60到70之間, 輸出”Pass”如果分數(shù)小于60,輸出”No Pass!”實訓算法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!”);總結if語句的三種基本形式if(表達式) 語句1 else 語句21、最基本的形式2、最簡單的形式if(表達式) 語句3、層次形式if(表達式1) 語句1 else if(表達式2) 語句2 else if(表達式3)語句3 else if(表達式4)語句4 else 表達式5 實訓假如從鍵盤輸入67,下面這個程序的結果是什么,如果輸入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(表達式1) if(表達式2) 語句1 else 語句2else if(表達式3)語句3 else 語句4一般使用形式假如從鍵盤輸入5,下面程序的輸出結果是什么?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);思考題某單位的工資是這樣計算的: 工資=基本工資+工齡工資;工齡為1年: 工齡工資=基本工資*0.1;工齡為23年: 工齡工資=基本工資*0.25;工齡為45年: 工齡工資=基本工資*0.5;工齡為68年: 工齡工資=基本工資*0.8;工齡大于8年的:工齡工資=基本工資*工齡*0.1;基本工資為1500元。要求從鍵盤輸入教師的工齡,可以根據(jù)工齡計算該教師的基本工資。使用if語句來編寫如下的程序:實訓算法描述:1、定義兩個實型變量:工資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);復習判斷一個學生成績的“優(yōu)、良、中、差”:假如從鍵盤輸入的字母是A,輸出評語“You are Excellent!”;如果輸入B,輸出評語“You are well!”;如果輸入C,輸出評語“You are passing!”;如果輸入D,輸出評語“You are not passing!”。如果輸入的不是這四個字母,則出現(xiàn)提示“Input error!”請編寫一個程序,實現(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語句實現(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語句實現(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(表達式) case 常量表達式: 語句1 case 常量表達式: 語句2 case 常量表達式: 語句n default: 語句 n+1 四、條件運算

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論