C程序設計入門資料解析_第1頁
C程序設計入門資料解析_第2頁
免費預覽已結束,剩余38頁可下載查看

下載本文檔

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

文檔簡介

1、第一講 C 語言概述 第一節(jié) 認識 C 語言1. 產(chǎn)生程序設計語言名稱產(chǎn)生年份產(chǎn)生實驗室ALGOL601960面向問題的高級語言CPL1963英國劍橋BCPL1967英國劍橋B1970美國貝爾實驗室C19721973美國貝爾實驗室2. 特點:1 )簡介、緊湊、使用方便、靈活2 )運算符豐富3 )數(shù)據(jù)類型豐富4 )模塊化結構5 )具有結構化的控制語句6 )比較接近硬件系統(tǒng)7 )生成目標代碼質量高,程序執(zhí)行效率高8 )可移植性好第二節(jié) C 程序結構及書寫格式1. 程序結構特征例 1: 了解 C 程序的組成main()printf(“This is an example.n” );1.main 表示

2、主函數(shù)”,每一個C 程序都必須有一個main().2. 函數(shù)體3. 本例主函數(shù)僅包含一個語句: printf(“This is an example.n ” );4. printf( ) 語句的功能是輸出字符,括號內雙引號中的字符串原樣輸出; 符,記載輸出字符后換行5. 語句后的“;”表示該語句結束,不能缺少。n ”表示換行例 2: 計算兩數(shù)之和main()int a,b,sum;a=135;b=246;sum=a+b;printf(“ sum is %dn ” ,sum);小結: C 程序結構特點1. C 程序由函數(shù)構成,一個程序至少有一個2.一個函數(shù)由兩部本組成:( - 3.一個程序總是從

3、main( )1)函數(shù)說明部分 -main() 函數(shù)開始執(zhí)行,由主函數(shù)結束。個分號。例 3: 比較兩個數(shù)的大小 main() int a,b,c;scanf(%d,%d” ,&a,&b);c=max(a,b);printf(“ max=%”d ,c); int max(int x,int y) int z;if(xy) z=x; else z=y; reutrn(z);函數(shù)int max(int x,int y);( 2)函數(shù)體4.每個語句和變量的定義的最后必須要有5. C 語言本身沒有提供輸入輸出語句,scanf( ) 和 printf( ) 來實現(xiàn)由庫函數(shù)6. /* */表

4、示注釋用鼠標單擊 New 菜單,出現(xiàn)新建對話框,如圖2-3 所示。第二講 C 程序運行環(huán)境及調試C 語言源程序代碼編寫好以后,要通過一定環(huán)境編譯、解釋、運行才能得到我們想要的結果。常用的 C 語言運行環(huán)境有:TC 和 VC+環(huán)境。這一講,我們主要以VC+為例講解 C 語言的運行過程。VC+即 Visual C+,是微軟公司推出的一款 C 語言和 C+語言開發(fā)工具,是目前世界上用 得最廣泛的 C 語言和 C+語言編譯工具。目前最新的版本是6.0.第一節(jié)VC 的安裝和打開讀者通過網(wǎng)上下載或光盤安裝VC 簡化版,然后打開如下圖:圖 2-1 VC6.0 開發(fā)環(huán)境第二節(jié)編寫程序打開 VC 編譯器后,用鼠

5、標單擊“ File(文件)”菜單,選擇“ New 新建)”菜單如圖2-2 所示。圖 2-2 打開的 New 菜單HeirFiles :| Projects |WorkspacesOther Documents:|Active Server Page Bihary FilrD C/C+ + Header Hie國C+ Source File *HTML Page H Macro Alen SQL Script Hie 3 Text FiletiiDn:CPTograrn FilEyisuinl C*+1|Bin圖 2-3 新建對話框用鼠標單擊新建對話框中的“ file(文件)”面板,在列表中選擇

6、“ C+Source file ”選項,在“ File ”輸入框中輸入一個文件名。文件名可以使用任何字母和數(shù)字的組合,也可以使用中文,但是文件名中不能有空格。在文件名的后面必須加上“.c ”,表示這是一個 C 語言程序。如圖 2-4 :恵色?岡Files | Prgijerfs | Otihicr Dnciimenits |Srrvrir Paigr廠Add tn prnjcclh3Binary FlicIT1QHnricr Filn1JJ0 C+* Source Filit*HTML Pa yeMacro FileFile園SOL Script FileHl Text Filecyuyan.

7、clLofallon:C:Prugraiiii FileslVisual CF+Bin圖 2-4然后單擊“0K 按鈕,在程序編輯窗口中輸入程序即可。第三節(jié)編譯運行程序編寫完成后就可以編譯運行了。C 語言源程序的后綴(擴展名)是.C,計算機不能直接執(zhí)行。C 程序經(jīng) C 編譯器編譯后,生成后綴為.obj 的文件,這個文件是一個二進制文件,叫做目標文件。目標文件仍然無法直接執(zhí)行,必須通過鏈接程序鏈接生成.exe 的可執(zhí)行文件后,才能直接執(zhí)行。廠Add lo project:I2File第三講 C 語言的數(shù)據(jù)類型、運算符和表達式第一節(jié)標識符定義:用來標識常量名、變量名、函數(shù)名、數(shù)組名、文件名等對象的有

8、效字符序列。命名規(guī)則:1 )由字母(大小寫)、數(shù)字、下劃線2 )第一個字符必須為字母或下劃線如:正確的命名為:ab name filel _sum錯誤的命名為:5x Doc. Bao ei int注意事項:(1) 區(qū)分大小寫,即大寫字母和小寫字母被認為是不同的字符。如:name Name NAME(2) C 語言的關鍵字是一類特殊標識符,它們具有特定的含義,已被C 語言做其他用途,即 關鍵字不能做變量名、常量名、函數(shù)名、文件名等。第二節(jié)數(shù)據(jù)類型1. 概述1)對“數(shù)據(jù)”的描述在程序中需要指定數(shù)據(jù)的類型即數(shù)據(jù)的組織形式,即數(shù)據(jù)結構。2)對“動作”的描述值對數(shù)據(jù)的加工處理步驟與過程,即算法。2. 數(shù)

9、據(jù)類型C 語言中,數(shù)據(jù)結構是以數(shù)據(jù)類型的形式來體現(xiàn)的。數(shù)據(jù)類型是指數(shù)據(jù)的內在存儲方式。C 語言提供了豐富的數(shù)據(jù)類型p38。從另一個角度來看:C 語言中的數(shù)據(jù)又可以分成:常量 和變量第三節(jié)常量整型常量(整數(shù))如:123 -5 8;實型常量(實數(shù))如:5.4 0.486;字符常量(字符)如: a H;轉義字符如: n 012 ;字符串常量如:“ China ”廠正整數(shù)1.整型常量(整數(shù))一,負整數(shù)表示形式:十進制整型常量09八進制整型常量07十六進制整型常量 0 9,A F如:整數(shù) 1234 在 C 語言中十:1234 八:023222.實型常量(實數(shù)、浮點數(shù)) 表示形式為 : 小數(shù)形式和指數(shù)形式

10、1 )小數(shù)形式 整數(shù)部分 、小數(shù)點和小數(shù)部分 格式:整數(shù)部分 . 小數(shù)部分1 )當整數(shù)部分或小數(shù)部分為 0 時,可省略不寫,但不能同時缺?。ā?0.0 ”不能寫成. ”)2)小數(shù)點是小數(shù)部分的標志,不能省略2)指數(shù)形式:尾數(shù)部分、E 或 e 和指數(shù)部分格式:尾數(shù)部分 e 指數(shù)部分如:12.34e+9表示12.34X1095.6789E-10表示5.6789X10-10-58.99e-6表示-58.99X10-6注意:如:12.34e 5E e 5e3.6等 都是錯的(2)一個實數(shù)可以有多種表示形式如:789.989 表示 789.989e078.9989e17.89989e20.789989e

11、3等3. 字符常量用一對單引號括起來的一個字符 如:a B 注意:六:0 x4D21 )指數(shù)部分只能是整數(shù),并且指數(shù)形式的3 個組成部分不能省略(1)其中單引號只作為定界符使用,并不是字符常量的組成部分,即在輸出字符常量時, 對單引號并不輸出;(2) , 是不允許的;(3)在 C 語言中,字符常量具有數(shù)值,在ASCH代碼表中, a的值為 97,65;(4)字符常量在計算機內部以整數(shù)常量的形式存放,因此,字符常量與整型常量等價a= D +8;等價于 a=68+6;b= ? + x; 等價于 b=63+88;4. 轉義字符常量在 C 語言中,允許另一種特殊形式的字符常量,即以一個“”開頭的字符序列

12、。“ ”后面的字符轉換成為另外的意思。轉義字符都是以“”開頭 p48如: n t b r f ”x0A 例 1:轉義字符 1mai n()printf( “ boyn”);printf( “n” );結果: boy girlI _28列645例 2:轉義字符 2mai n()printf( “” n ”);A的值為如:意思是將101 5. 字符串常量由一對雙引號括起來的字符序列女口:“ Hello ”“ C Program ”“ How are you! ”1)字符串常量與字符常量的區(qū)別如: “a” a2)容量不同3)占用內存空間大小不同 0 第四節(jié) 變量1. 變量和變量的地址 變量在程序運行

13、過程中,其值可以發(fā)生變化的量 變量的地址定義變量后,變量在內存中存放的位置 如 : 變量 y 的值為 6 ,而 y 的地址為 1800H 則說明 1800H 存儲單元中存放的值為 62. 變量說明語句一般形式:數(shù)據(jù)類型 變量名如: int age , total;(1)可以在一個數(shù)據(jù)類型后說明多個相同類型的變量,變量名之間用“,”隔開,數(shù)據(jù)類型 與變量名之間至少要用一個“ ”隔開;(2) “;”位于最后一個變量之后;(3)必須放在變量使用之前,通常放在函數(shù)體開頭部分;(4)變量一經(jīng)說明,每個變量就有一個特定的類型,在編譯時就對其分配相應的存儲空間;3. 整型變量用于存放整數(shù)的變量基本類型符短整

14、型int -215/215-12215-1個字節(jié)2個字節(jié)長整型long int-231231-14個字節(jié)無符號型unsigned int 0 216-12個字節(jié)unsigned short 0 216-12個字節(jié)unsigned long 0 232-14個字節(jié)例: 整型變量的定義與引用main( )int a,b,x,y;unsigned int m;a=15; b=-8; m=10;x=2*a-m;y=2*b+m;printf(“ a+m=%d,b+m=%d”n ,x,y);4. 實型變量用于存放實數(shù)的變量 單精度 float 雙精度 double 長雙精度 long double如 :

15、float a,b,c; /*定義 a,b,c 為單精度實型變量 */double x,y; /*定義 x,y 為雙精度實型變量 */long double z; /*定義 z 為長雙精度實型變量 */例: 實型數(shù)據(jù)的舍入誤差main( )float x,y;x=1.23456789e10;y=x+20;printf( “ x=%fny=%fn ” ,x,y); 結果: x=12345678848.000000y=12345678848.0000005. 字符型變量用于存放字符數(shù)據(jù)的變量類型符 char 02551 個字節(jié)如 : char ch1,ch2; /*定義 ch1,ch2 為字符變量

16、 */ch1= a ; /*把字符常量 a賦給字符變量 chi */ch2= b; /*把字符常量b賦給字符變量 ch2 */注意:(1 )在 0255 內,字符型變量與整型變量可以通用2)一個字符既可以以字 5 符形式輸出,也可以以整數(shù)形式輸出 例: 字符以整數(shù)形式輸出main( ) char c1,c2;int c3,c4;letter: ” );第五節(jié) 變量賦初值方法 1 :int a=3;float f=3.5;char c= e;a=3;float f;如 : char c1=97; int c1=a;c1=97; c2=b;c3=a ; c4=98;printf(%c%c%c%cp

17、rintf(%d%d%d%d3)字符數(shù)據(jù)可以參與算術運算例 1: 大小寫字母轉換main( ) char c1,c2;例 2:printf(Pleaseinputmain( )scanf(%c” ,&c1 );char c;c2=c1+A- ac=b+5-3;printf(%ct%cn ” ,c1,c2);printf(%cn” ,c);C 語言規(guī)定,允許在定義變量的同時給變量初始化即賦初指)int a;f=3.5char c;c= e如:(double)a; /*將 a 轉換為 double 型*/方法 2:被定義變量的一部分賦初值。女口:int a,b,c=5;/*定義 a,b,c

18、 為整型變量,其中 c 的值為 5*/方法 3:對幾個變量賦初值女口: int a=5,b=5,c=5;/*定義 a,b,c 為整型變量,初值均為 5*/如:int a=b=c=5;是錯誤的第六節(jié) 各類數(shù)值型數(shù)據(jù)間的混合運算1隱式轉換:double floatun sig nedint char、short例:10+ a +i*f-d/e設:i 為整型 intf為單精度實型 floatd為雙精度實型 doublee為長整型 long2.強制類型轉換:(顯式轉換)強制類型轉換運算符一一()(類型名)表達式如:int n; /* 定義 n 為整型變量*/float d; /*定義 d 為實型變量*

19、/如:(double)a; /*將 a 轉換為 double 型*/d=sin(double)n); /*將 n 轉換為 double 型 */(int)(x+y); /*將 x+y 的值轉換為 int 型 */第七節(jié) 算術運算符和算術表達式一、運算符簡介 p55 二、算術運算符和表達式1.基本運算符: + - * / %注意:(1) *不能省,也不能寫成X或?( 2 ) %參與運算量必須為整數(shù),既它只適用于int 和 char 型第四講 最簡單的 C 程序設計第一節(jié) C 語言的概述本課介紹C語言程序設計的基本方法和基本的程序語句。 從程序流程的角度來看,程序可以分為三種基本結構,即順序結構、

20、分支結構、循環(huán)結 構。這三種基本結構可以組成所有的各種復雜程序。C語言提供了多種語句來實現(xiàn)這些程序結構。 本章介紹這些基本語句及其應用,使得對C程序有一個初步的認識, 章的學習打下基礎。C 程序是由語句構成的, 可分為以下 4 類:1. 流程控制1)選擇語句 if-else (switch-case (2)循環(huán)語句for ( while ( do-while (3)輔助控制語句 break( continue ( goto ( return (2. 表達式語句1)賦值語句例 : x=8 /* x=8; /* 一個語句必須在最后出現(xiàn)“任何賦值表達式都可以加上分號成為賦值語句例 : a*=12x=

21、y=z=8i+2) 函數(shù)調用語句例 : printf( “ This is a example. ” ) /* 函數(shù)調用語句 */ scanf(“%d” ,&c)3) 空語句例 : ;4) 復合語句例 : c=a+b; z=3*x+y/10; printf( “ %d,%dn” ,c,z);為后面各條件語句 )多分支選擇語句 )循環(huán)語句 )循環(huán)語句 )循環(huán)語句 )終止執(zhí)行 switch 或循環(huán)語句 ) 結束本次循環(huán) )轉向語句 )從函數(shù)返回語句 )賦值表達式 */賦值語句 */第二節(jié)數(shù)據(jù)的輸入輸出C 語言本身不提供輸入輸出語句,輸入輸出操作 是由函數(shù)來實現(xiàn)的如:printf()函數(shù)和

22、scanf()函數(shù)第三節(jié)格式輸入和輸出l.pri ntf()函數(shù)1) 一般形式Printf( “格式控制”,輸出表列)例:printf(“ x=%d,y=%fn ”,x,y);格式控制輸出表列2)格式控制部分說明-格式說明符包含 3 種信息:-轉義字符: b -普通字符:printf(格式說明符%d十進制有符號整數(shù)%u十進制無符號 整數(shù)%f浮占八、數(shù)%s字符串%c單個字符%p指針的值%e指數(shù)形式的浮 點數(shù)%x,%X無符號以十 六進制:表示的整數(shù)%0無符 號 以八:進制表示的整數(shù)%g自動選擇合適的表示法3)輸出表列部分說明a. printf()函數(shù)中格式控制部分的“格式說明符”和“輸出表列”數(shù)值

23、類型上必須一一對應例;printf( “x=%f,c=%dn ” ,x,c);b. 輸出表列可以是常量 變量表達式.如果是表達式,則printf()函數(shù)將先對其進行計算,再輸出結果例;mai n()printf(“x=%f”,3*4.8+9/4-sqrt(2.0);t n 344 a=%d ,a);c. printf() 函允許沒有輸出表列部分 , 它表示輸出一個字符串 格式為 : printf( “輸出字符串” );例 ; printf( “please input a number:”);2.scanf() 函數(shù)1) 一般形式scanf( “格式控制” , 地址表列 )其中:格式控制與 p

24、rintf( ) 函數(shù)類似 , 地址表列:由若干個變量地址組成 ( 變量前加 “&”)例 : main() /*scanf() 函數(shù)輸入數(shù)據(jù) */int a,b;scanf(“ %d,%d” ,&a,&b);printf(“ %d,%dn” ,a,b); 2)格式控制部分說明a. 標準 C 語言在 scanf()函數(shù)中不使用u 說明符,對 unsigned 型數(shù)據(jù)以d,%o,%x 格式輸入b. 可以指定數(shù)據(jù)所占列數(shù) , 系統(tǒng)自動按它截取所需數(shù)據(jù)例: scanf(“%3d%2”d ,&a,&b);運行時輸入 :12345( 回車 )a 得到 123 b 得

25、到 45c. 輸入數(shù)據(jù)時不能規(guī)定精度例: scanf(“%5.2f”,&x);3) 地址表列部分說明a. ”&”不能少格)TabEnter(回車)作為間隔符例: scanf(“%d%d%d%”d,&a,&b,&c,&d);d. 輸入數(shù)據(jù)為字符型(c),間隔符用空格 回車的話,將不被認為是間隔符會被認為是有效數(shù) 據(jù)例 : main()scanf(printf(“ %c%”c ,&c1,&c2);“%c%”c ,c1,c2);char c1,c2;運行時輸入 a b例 : scanf(b.輸入數(shù)據(jù)時 , 如果時應輸入對應字符例 1:

26、scanf(例 2: scanf(例 3: scanf(c. 輸入數(shù)據(jù)時 ,%d,%d”,a,b); /*在格式控制”字符串中非法 */, 除了格式說明還有其他字符 , 則在輸入數(shù)據(jù)“ %d,%d”,&a,&b);“ %d:%d”,&a,&b);“x=%d y=%d”,&x,&y);如果“在格式控制”字符串中沒有字符運行時應輸入運行時應輸入運行時應輸入1,31:3 x=1 y=3, 則各數(shù)據(jù)之前可以用 ( 空上機 */*結果 : A65 101 41第四節(jié) 字符數(shù)據(jù)輸入輸出1.putchar() 函數(shù)一般形式 : putchar( 參數(shù) ) 例

27、1: #includemain() int a; char c;c=putchar(c);putchar( putchar(a);putchar( putchar( 結果: ABCA ; a=66;n );n ); 103 );2.getchar() 函數(shù)1)一般形式 : getchar()2) 使用方法 :a. 把 getchar() 函數(shù)得到的字符代碼賦給一個字符型變 量 整型變量 例 : int a;a=getchar();b. 把 getchar() 函數(shù)得到的字符代碼直接作為表達式的 一部分 , 而不賦給任何變量例 : printf(“ %c” ,getchar();例 : #inc

28、lude main() int a;printf(“ Please enter a character:” );a=getchar();printf(“ %ct%dt%ot%xn ” ,a,a,a,a);putchar(a);運行時輸入 A( 回車 )例 2: #include main() char c1,c2;c1= H; c2= I putchar(c1);putchar(c2);結果: HI5. 編程:使用 getchar() 函數(shù),從鍵盤輸 入一個小寫字母,要求輸出大寫字母。#include main()char c1;c2 c1=getchar();c2=c1-32; putcha

29、r(c2);第五講 邏輯運算和選擇結構習題1. 讀程序main() int a;a=1234;printf( “ -%-6d-n ” ,a);2. main()int a=-1;printf( “ %dt%ut%on ” ,a,a,a); 3. 使用 scanf() 函數(shù)來輸入數(shù)據(jù),要使a=123,b=4,c1=A,c2=b,x=-567.123,y=99.880. 請問在鍵盤上如何輸入?scanf( “ %d,%d,%c,%c,%f,%”f ,&a,&b,& c,&d,%x,&y);4. 利用 getchar() 函數(shù)和 putchar() 函數(shù) 顯示

30、由鍵盤輸入的一個字符。#include main()char c;c=getchar();putchar(c);6. 從外部輸入 a,b,c 三個整數(shù),然后把 c 中的值給 a,a 中的值給 b, b 中的值給 c,最后輸出 a,b,c 的值 , 寫出程序代碼。第一節(jié)關系運算符和關系表達式關系運算實際上就是一種“比較運算”,即用關系運算符對兩個運算量進行比較,比較他 們之間的“大小關系”。例: 關系表達式:y3用于判斷 y 是否大于 31.關系運算符及其優(yōu)先次序C 語言中的關系運算符C 語言中的關系運算符=11第二節(jié)邏輯運算符和邏輯表達式c+da+b(c+d)a+bab!=c(ab)!=c *

31、a=bxa=(b=ca=(3=c),.x!=a*bcx!=(a*b)c)運算符名稱示例示例說明優(yōu)先次序小于aba小于b優(yōu)先級相同=小于或等于a大于aba大于b=大于或等于a=ba大于或等于b=等于a=ba等于b優(yōu)先級相同!=不等于a!=ba 不等于b關于優(yōu)先次序的說明如下:(1) 關系、 算術、 賦值運算符的優(yōu)先級關系如下: 算術運算符 f)關系運算符(中)2)關系運算符的結合方向是“自左向右”例:xy,2*a+bc-d,(x=2)=(y=4).a b表達式的值為0當關系表達式成立時,其結果為1;a+bc表達式的值為1否則值為 0。f=abc表達式的值為1例 2: 3bc表達式的值為0為 1;

32、例 3:試求 x=531的值分析:x=531x=(53)1=o賦值運算符(低)2.關系表達式例 1:關系表達式只適用于描述單一的條件,如:x0 用于描述“ x 大于 0”,對于較復雜的復合條件就需要若干個表等式連接起來才能描述,如:描述“ x 大于 0 且不等于 2”,就需要將兩個表達式 x0 和 x!=2 連接起來,即 x0&x!=2,其中“ &是 C 語言中的邏輯 運算符。1.邏輯運算符及其優(yōu)先次序C 語言中的邏輯運算符運算符名稱示例示例說明優(yōu)先次序!邏輯非!aa非高&邏輯與a&ba與b|邏輯或a|ba或b低低關于優(yōu)先次序的說明如下:(1 )邏輯運算符的結合

33、方向是“自左向右(2)運算符的優(yōu)先級運算符優(yōu)先次序!(非)高Ln算術運算符P關系運算符& &和|賦值運算符低:例:(ab)&(xy)ab&xy(a=b)|(x=y)a=b|x=y(!a)|(ab)!a|ab2.邏輯表達式一個邏輯表達式中可以包含多個邏輯運算符。女口: xy&ay&x!0 的值為:1(3)在邏輯表達式求解中,并不是所有邏輯運算符都執(zhí) 行,有時只需執(zhí)行一部分運算就可以得出結果。例 1: x&ya|b|c例 2:設 a=1, b=2, c=5, d=4, m=n=1,則(m=ab)&(n=cd),值為 0,m=0, n=

34、1 ;(m=ab)|( n=cd),值為 1 , m= 0, n=1 ;第三節(jié) if 語句1. if語句的三種形式if 語句、if-else 語句、if-else-if 語句if 和 else 配對規(guī)則:else 總是與它前一個最近的if 配對若要求 else 與前面的 if 配對,則要用到復合語句。如:if( 表達式 1)if (表達式 2)語句 1;else語句 2;如:針對上述情況,分析下面兩段程序的功能2. if( n0)1. if(n0)if (ab) z=a;if(ab) z=a;else z=b;else z=b;第四節(jié)條件運算符例:if(xy)max=x;else| max=(

35、xy)?xy;max=y;般形式:表達式 1?表達式 2:表達式 3條件運算符說明:(1) 條件運算符優(yōu)先級高于賦值運算符,但低于算術運算符、關系運算符、邏輯運算符。(2) 條件運算符的結合方向:“自右向左”。例:ab?a:cd?c:d ab?a:(cd?c:d)(3) 表達式 1、表達式 2、表達式 3 類型可以不同,條件表達式的值取兩者較高的類型。例:xy?1:1.5 /*x=2,y=1*/第五節(jié) switch-case 語句Switch-case 語句用于處理多分支結構的條件選擇語句,又稱“開關語句”。一般形式:switch(表達式)casecase常量表達式常量表達式1 :語句 1 ;

36、 break;2:語句 2 ; break;case常量表達式 n:語句 n ; break;default:語句 n+1; break;( 1 ) 各 個 c a s e 常 量 表 達 式 不 一 定 按 其 值 的 大 小 順 序 排 列 , 但 各 個必 須 是 不 同 的 值 。例:switch(ch)caseA:語句 1 ;break;caseC :語句 2;break;caseB:語句 3;break;caseA:語句 4;break;default:語句 5;(2 )在 switch-case 語句中,多個 case 可以共用一 條執(zhí)行語句。例:caseABcase 后的常量表

37、達式caseC: printf(“60” );break;( 3)若 case 后面的語句執(zhí)行完后沒有 break 語句, 程序將順序執(zhí)行下面的 case 分支, 直 到遇到 break語句,跳出 switch-case 語句或 switch-case 語句結束。例:switch(ab?1:2) /* a=3,b=6 */ case 1:a=100;case 2:b=a+b;case 3:a=b+a;default:b-;printf(“ %d,&dn ” ,a,b);結果: 12 ,8( 4) switch-case語句的嵌套例:#include“ stdio.h ”main() i

38、nt x=1,y=0,a=0,b=0;switch(x) case 1:switch(y) case 0:a+;break;case 1:b+;break;case 2:a+;b+; break;printf( “ a=&d,b=%dn ” ,a,b);結果: a=2,b=1程序舉例1. 求一個整數(shù)的絕對值。main()int a;scanf( “ %d” ,&a);if(ab)t=a;a=b;b=t;printf( “%d,%d ,a,b);廠 x2 - 2 x=03. 計算分段函數(shù) y= vx x=0)y=x*x-2;elsey=x;printf( “%.2f” ,y);

39、if-else-if 語句格式:if(表達式 1)語句 1 ;else if (表達式 2)語句 2 ;else if (表達式 n-1)語句 n-1 ;else的值第六講 循環(huán)結構程序設計第一節(jié) 概述C 語言中下列語句實現(xiàn)循環(huán): 1. 用 goto 語句和 if 語句構成循環(huán); 2.while 語句;3.do-while 語句; 4.for 語句第二節(jié) goto 語句構成循環(huán)goto 語句的一般形式:goto 語句標號;語句標號 : 語句;例 1: goto labe_1 ;是正確的 goto 123 ;是錯誤的例 2: goto 語句使用示例:計算 1+2+3+4+100算法:s1.設一個

40、變量 sum 用于存放最后的結果,初值為0s2. 設一個循環(huán)變量 i ,初值為 1s3. 判斷 i 是否小于等于 100,若是執(zhí)行 s4 ; 否則程序結束s4. sum=sum+is5. i+s6. 返回 s3例 3: goto 語句使用示例:計算 1+2+3+4+100程序: main()int sum=0,i=1;loop:if(n=100) sum=sum+i;i+;goto loop;printf(“ %d” ,sum);第三節(jié) while 語句構成循環(huán)while 語句的一般形式: while (表達式)循環(huán)語句;例 4:用 while 語句編程實現(xiàn):計算 1+2+3+4+100mai

41、n()int sum=0,i=1;while(i=100)sum=sum+i;i+;printf(“ %d”,sum);第四節(jié) do-while 語句構成循環(huán)do-while 語句的一般形式:do循環(huán)語句;while(表達式);例:用 do-while 語句編程實現(xiàn):計算1+2+3+4+100main ()int sum=0,i=1;dosum=sum+i;i+;while(i=100);printf( “d ,sum);讀者自行比較 while 和 do-while 用法的區(qū)別?第五節(jié) for 語句構成循環(huán)1.for 語句的一般形式:for( 表達式 1;表達式 2;表達式 3)循環(huán)語句;例

42、:用 for 語句編程實現(xiàn):計算1+2+3+4+100main ()int sum=0,i ;for(i=1 ; i=100 ; i+)sum=sum+i ;printf( “d ,sum);for 語句與 while 比較fo第亠語旬產(chǎn)句的使用while 語句第八節(jié)bieak 語口句的使用for(表達式杵表達式句的一般形式;)break;循環(huán)語設計一個程序,求能同時滿足以下條件: 以 9余 7 的最小數(shù)。for(i=9; ;i+)表達式 i除 whil%余(表達式以勿余 3,除以 7 余 5,除 循環(huán)語句;表達式 3;if(i%3=1 &i%5=3&i%7=5&i%9

43、=7)例: printf(“%d ,i);for輕1;10甘 eak; a=a*i;printf(%d,%d,a,i);第七節(jié) contin ue 語句的使用continue 語句的一般形式:continue;i=1;while (i=100) a=a*i;printf(%d,%d,a,i);i+;例: 打印出數(shù)字 010,但跳過(即不輸出)數(shù)字 for(i=0;i0);問最后 b 的值為多少?循環(huán)了多少次?3. i=1;a=0;s=1;do a=a+s*i;s=-s;i+; while(i=10); printf(“ a=%d” ,a);第七講 數(shù)組4. 運行以下程序,輸入 right? 則

44、下面程序 結果為?第一節(jié) 一維數(shù)組的定義與引用1. 一維數(shù)組的定義定義方式: 類型說明符 數(shù)組名 常量表達式 ;如 : int number10;/* 表示定義一個名為 number 的數(shù)組,此數(shù)組有 10 個元素,數(shù)據(jù)類型為整型 */ 說明:1. 數(shù)組名的命名與變量命名規(guī)則相同2.數(shù)組名后面只能用方括號括起常量表達式如: int a(0);是錯的#include main() char c;while(c=getchar()!=? )putchar(+c);X3. 常量表達式表示元素的個數(shù),即數(shù)組的長度。整個數(shù)組所占字節(jié)數(shù)=類型長度x數(shù)組長度4. 常量表達式中不能包括變量,即C 語言不允許定

45、義動態(tài)數(shù)組如 1: int a ;char stra如 2: int a=8;char stra一維數(shù)組初始化的一般形式:類型說明符 數(shù)組名常量表達式=值 0,值 1,; 如:int number4=1,2,3,4 ;int number4;number0=1;number1=2;number2=3;number3=4;3. 一維數(shù)組元素的引用數(shù)組元素的表示形式:數(shù)組名 下標其中,下標可以是整型常量或整型表達式如:a0=a5+a7-a2*3;例:數(shù)組元素引用main( )/*主函數(shù) main( ) */int i,a10;/*定義了一個整型變量 i,和一個整型數(shù)組,數(shù)組名為a */for(i=

46、0;i10;i+) /*通過 for 循環(huán)語句給數(shù)組a 中每一個元素賦值*/ai=i;for(i=0;i10;i+) /*通過 for 循環(huán)語句輸出數(shù)組 a 中所有元素*/printf( “d ,ai;例 2、mai n()int i,a10;for(i=0;i 10 ;i+) ai=i;for(i=0;i 10 ;i+)printf( “d ,ai;int number =1,2,3,4;例 2: main()inti,b10,a10=1,2,3,4,5,6,7,8,9,10;for(i=0;i10;i+)bi= ai* ai+1;printf(“ %4d” ,bi);第八講 函數(shù) 第一節(jié)

47、函數(shù)的定義方法1. 函數(shù)的概念 函數(shù)從本質上來說就是能完成一定功能的程序段, 其標識叫函數(shù)名。若有其他程序要完成該函數(shù)的功能,可以通過調用。 函數(shù)可以反復多次調用。2. 引入函數(shù)解決的問題1)解決代碼的重復2)結構化、模塊化編程的需要習題例 1: main()int i,a10;for(i=0;iy?x:y;return(z);第九講 指針第一節(jié) 指針的基本概念1. 指針變量的地址當 C 源程序在編譯時,編譯程序對遇到的變量分配連續(xù)的內存單元例 : 有變量定義語句如下 :short a=3;long b=5;float c;編譯系統(tǒng)給變量分配的存儲空間如下 :C 語言規(guī)定:如果一個變量占用一個

48、字節(jié)時,該字節(jié)的地址就是該變量的地址;如果變量用連續(xù)的多個字節(jié),那么第一個字節(jié)的地址就是該變量的地址變量、數(shù)據(jù)類型和地址對照表變量名數(shù)據(jù)類型地址ashort500bIon500cFloa5002.指針變量一一用于存放地址的變量 直接訪問:通過變量名直接使用變量間接訪問:將變量的地址存放到另一個“特殊”的變量中,通過該變量來存取變量的值地址一一指針“特殊”的變量一一指針變量C 程序中,變量的值是通過運算符“&”來得到,它的運算對象是變量或數(shù)組元素,得到的結果是數(shù)組元素的地址如:i nt a,b10;&a; /*得到變量 a 的地址*/50015002500350045005500

49、6500750050095010501150125013short 型變量 aI ong 型變量 b float 型變量 c&b5; /*得到數(shù)組元素 b5 的地址 */第二節(jié) 指針變量的定義、引用及運算1. 指針變量的定義與初始化 數(shù)據(jù)類型 * 指針變量名 說明: (1)與其他變量定義一樣,可以一次定義多個指針變量并賦初值(2)“數(shù)據(jù)類型”指該指針變量用于存放何種數(shù)據(jù)類型的地址 說明:1)給指針變量賦值 指針變量名 =地址表達式如 : int a,*p;p=&a; /* 定義一個指針變量 p, 指向變量 a*/2)直接使用指針變量 如 : int a,b,c,*p1=&

50、;a,*p2=&b;scanf( “ %d,%d,%d” ,p1,p2,&c);3)通過指針變量來引用變量*指針變量如 : int a=4,b=6,c,*p1=&b,*p2=&c;*p2=a+*p1*b;printf(“ %d” ,c);3. 有關運算符1)&運算符如 : &x; &a5;2)* 運算符如 : int a,*p=&a;則&a代表*p代表&*a代表*&p代表*&a代表&*p代表例: 指針變量算術運算main() short a=1,b=2,c=3,*p1=&b;floa

51、t d=4.0,e=5.0,f=6.0,*p2=&e;printf(p1+;printf(“ %x,%dn” ,p1,b);“ %x,%dn” ,p1,c)p1=p1-2;(3)定義指針變量時,(4)初值形式: 如 : floata,f110;float *p1=&a; /* float*p2=&f18; /* float*p3=f1; /*2. 指針變量的引用方式指針變量名前必須有一個*”,作為定義一指針變量的標志定義一個指針變量 p1, p1 指向 a*/ 定義一個指針變量 p2, p2指向 f18*/定義一個指針變量 p3, p3 指數(shù)組向 f1 第一個元素 */printf(“ %x,%dn”,p1,a);printf(“ %x,%fn ”,p2,d);p2+;printf(“ %x,%fn ”,p2,e);p2=p2-2;printf(“ %x,e%fn ”,p2,f);例: 指針變量邏輯運算main() short a=1,b=2,*p1=&a,*p2=&b;printf(“ p1p2=%dn” ,p1p2);printf(“ p1=p2

溫馨提示

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

最新文檔

評論

0/150

提交評論