资源描述
按一下以編輯母片標題樣式,按一下以編輯母片,第二層,第三層,第四層,第五層,*,*,書名:輕鬆,學,學習C語言,TOC,作者:陳澤,雄,雄、蕭宗志,、,、林國任、,黃,黃珮瑩、黃,佑,佑民,出版社:旗,標,標出版股份,有,有限公司,CIT F.4:2-9,12,14,18-152,160,167-201,1,第一章 C,語,語言簡介,1-1 C,語,語言的結構,1-2 識,別,別字/identifier,1-3 關,鍵,鍵字/reservedwords,1-4 註,解,解/comments/* remarks*/,1-5 前,端,端處理程式#include,#define,2,1-1 C,語,語言程式的,結,結構,C,語言程式的,基,基本架構如,下,下:,/ test.c,#include/*,前端處理,*/,intmain()/*,主程式,*/,程式內容,system(,pause,),;,/,暫,暫停,return0,;,/test.cpp,#include,usingnamespacestd,;,intmain(),程式,內,內容,system(,pause,),;,return0,;,3,inti,n,sum=1,;,/,變數,宣,宣告,printf(Theinputnumber=),;,scanf(%i,&n),;,for(i=1,;,i=n,;,i+),sum=sum*i,;,printf(Theresultof%i!is,:,%in,n,sum),;,Ch1_1,C,的基,本,本架,構,構,Ch1_1,計算,n!,的值,1#include/,前端,處,處理,程,程式,2main(),3,4,5,6,7,8,9,10,11,指令,敘,敘述,主程,式,式,輸出:,Theinputnumber=4,Theresultof4!is,:,:24,4,1-2,識,別,別,字,字,(Identifier),C,語,言,言,程,程,式,式,碼,碼,中,中,使,使,用,用,的,的變,數,數,或,或,常,常,數,數名,稱,稱,,,,,其,命,命,名,名,固,固,然,然,可,可,依,依,使,使,用,用,者,者,的,的,喜,喜,好,好,而,而,定,定,,,,,但,仍,仍,然,然,存,存,在,在某,些,些,限,限,制,制,,不,不,得,得,擅,擅,取,取,。,分,述,述,如,下,下,:,:,1.,只,能,能,使,使,用,用,英,英,文,文,字,字,母,母(A-Z)、,阿,阿,拉,拉,伯,伯,數,數,字,字(0-9)以,及,及,底,底,線,線,符,符,號,號,(_),。,2.,第,一,一,個,個字,母,母,必,必,須,須,為,為,英,英,文,文,字,字,母,母,或,或,是,是,底,底,線,線,符,符,號,號,。,。,3.,字,母,母,的,的大,小,小,寫,寫,,分,分,別,別,代,代,表,表,不,不,一,一,樣,樣,的,的,識,識,別,別,字,字,。,。,4.,不,鼓,鼓,勵,勵,以,以,底,底,線,線,符,符,號,號,作,作,為,為,變,變,數,數,(Variable),名稱的,首,首字。,5.,以底線開,頭,頭的識別,字,字,大,都,都為系統所使用,。,。,6.,識別字,最,最長可,達,達,31,個字元,。,。,7.,不可使,用,用關鍵字,(,保留字,),作為識,別,別字。,5,識別字,(Identifier),合法識別字,number,five5,paper_1,name_5,answer,不合法識別字,2,number,five,-,5,paper 1,#,name_5,for,6,Ch1_2,變數variable,Ch1_2,名稱的,使,使用,1 #include,2 main(),3intans;,4ans= 6*9;,5printf(Theansweris%i.n,ans);,6 ,Theanswer is 54.,變數,7,關鍵字,在,在,C,語言中,具,具有特殊意,義,義,不能,將,將這些,字,字當作,識,識別字,來,來使用,,,,不能,拿,拿來當,作,作一般,變,變數或,常,常數名,稱,稱使用,。,。,1-3,關鍵字,(Keyword),、,、保留,字,字,int,float,char,if,else,for,do,while,switch,case,default,break,continue,return,void,sizeof,unix,volatile,asm,auto,double,entry,enum,extern,goto,long,register,short,static,struct,typedef,union,unsigned,8,註解為,符,符號,/*,和符,號,號,*/,中間,所,所包含,的,的字元,所,所組合,而,而成的,,,,可放,置,置於程,式,式的任,意,意部位,。,。,註解的,有,有無或,內,內容為,何,何都不,會,會影響,程,程式的,執,執行,,C,語言編,譯,譯器會,把,把註解,當,當作一,個,個空白,字,字元,,而,而不會去,編,編譯它。,註解的,功,功用在,於,於增加,程,程式的可讀性。,註解格,式,式如下,:,:,1-4,註解,(Comment),9,在,C,語言中,,,,只要,前,前端有,#,符號,者,者,皆,是,是。,其位置,皆,皆放在,函,函數之,外,外、程,式,式的前,面,面。,C,語言的,前,前端處,理,理程式,如,如下:,前端處理程式,意,義,#include,引入標頭檔,#define,定義巨集,#undef,解除定義巨集,#if,條件式編譯,#ifdef,條件式編譯,#ifndef,條件式編譯,#error,設定錯誤訊息,#line,設定行號,1-5,前端處,理,理程式,(Preprocessor),10,1-5-1#define,前端處,理,理程式,大寫,#define PI,3.14,#definef(x),(x)*(x),#define SCHabc,沒=沒,;,;,11,Ch1_3,定義常,數,數,1#include,2#define,A10,3#define,B21,輸出結,果,果,10+21=31,10-21=-11,Ch1_3,#define 之,應,應用,4main(),5,printf(%i+%i=%in,A,B, A+B);,6,printf(%i-%i=%in,A,B, A-B);,7,12,Ch1_4,定義,數,數學,運,運算,式,式,1#include,2#definef(x),(x)*(x)+3*(x)-3),3#defineY2,f(2)=7,Ch1_4,#define之,應,應用,4main(),5printf(f(%i)=%in,Y,f(Y);,6,x,+3,x,3,13,Ch1_5,定義,字,字串,或,或字,元,元,1#include,2#defineSTheabbreviationis,3#defineCn,Theabbreviationis,n.,Ch1_5,#define之,應,應用,大寫,簡寫,4main(),5printf(%s%c.n,S,C);,6,14,使用,來,來終止之前,被,被,#define,所定,義,義的,變,變數,。,。,語法,#undef,名,名,稱,稱,1-5-2#undef,15,Ch1_6,計算,1+2+,+9+10,1#include,2#defineN99,3main(),4inti,sum=0;,5#undefN,6#defineN11,7for(i=1;ib),邏,輯,輯運,算,算,式,式(andornot),由,運,運,算,算,元,元(operands),和,和,運,運,算,算,子,子(operators),組,組,成,成,例,如,如,:,:a=1+2-1,a,、,、,1,、,、,2,就,就,是,是,運,運,算,算,式,式,的,的運,算,算,元,元。,=,、,、,+,、,、,-,就,就,是,是,運,運,算,算,式,式,的,的運,算,算,子,子。,68,各,種,種,運,運,算,算,子,子,1.算,術,術運,算,算,子,子(ArithmeticOperator),2.位,移,移運,算,算,子,子(ShiftOperator),3.位,元,元運,算,算,子,子(BitwiseOperator),4.關,係,係運,算,算,子,子(RelationalOperator),5.邏,輯,輯運,算,算,子,子(LogicalOperator),6.累,計,計運,算,算,子,子(IncrementandDecrementOperator),7.指,定,定運,算,算,子,子(AssignmentOperator),8.條,件,件運,算,算,子,子(ConditionalOperator),9.sizeof運,算,算,子,子,69,算,術,術,運,運,算,算,子,子(ArithmeticOperator),運算子,功能敘述,+,-,*,/,%,a+b(和),a-b(差),a,b(積),a,b(,商),a,b(取,餘數),,又稱為mod,70,位,移,移,運,運,算,算,子,子(ShiftOperator),位,移,移,運,運,算,算,,,,,就,就,是,是,把,把,位,位,元,元(bit)向,左,左,移,移()幾,個,個,位,位,置,置,。,。,向,左,左,移,移n,個,個,位,位,元,元,,,,,就,就,相,相,當,當,於,於乘2,n,;,向,向,右,右,移,移n,個,個,位,位,元,元,,,,,相,相,當,當,於,於除,以,以2,n,。,運算子,使用方式,功能敘述,x n,將x向右移n個位元,x n,將x向左移n個位元,71,Ch4_2,使,用,用,位,位,移,移,運,運,算,算,子,子,51=6,Ch4_2,1#include,2main(),3inta=5,b=13;,4a= a1;,6printf(51 =%in,b);,8 ,72,位元運,算,算子(Bitwise Operator),運算子,使用方式,功能敘述,&,i & j,i AND j,|,i | j,i OR j,i j,i XOR j, i,NOT i,73,Ch4_3,1 #include,2 main(),3intA =3,B= 5;,Ch4_3,基本位,元,元運算,子,子運算,A &B= 1,A |B= 7,A B= 6,A= -4,4printf(A,5printf(A| B=%in,A |B);,6printf(A B=%in,A B);,7printf( A=%in,A);,8 ,74,Ch4_3的,說,說明,0011,(2),3,(10),0101,(2),5,(10),0001,(2),1,(10),&(AND),0011,(2),3,(10),0101,(2),5,(10),0111,(2),7,(10),|(OR),0011,(2),3,(10),0101,(2),5,(10),0110,(2),6,(10),(XOR),75,關係運,算,算子(Relational Operator),運算子,使用方式,功能敘述,ab,ab,ab,a=,a=b,a,b,=,a5=0,3 = 5,=0,3 %i=%in, i,j,ij);,5,printf(%i%i=%in, i,j,i=%i=,%in, i,j,i=j);,7,printf(,%i=%i=,%in, i,j,ib) b=a+b;,8 if(ab) a=b*10;elseb=a*10;,9 printf(a=%ib=%in,a, b);,a=15b=5,79,累計運算子,包,包含,增量運算子(IncrementOperator+),減量運算子(DecrementOperator, ,),累計運算子,增量(+)與減量(,-,)運算子寫,在,在operand的前,後,後,所產生,的,的效果也將,不,不同。,1.前置模式:是將+或,-,置於變數之,前,前,是在,使,使用此運算,元,元之前先進,行,行加1或減1之動作。,2.後置模式:是將+或,-,置於變數之,後,後,是在,使,使用此運算,元,元之後才進,行,行加1或減1之動作。,80,Ch4_6,累計運算子,+a =2,-b =0,c+ =2,d- =2,Ch4_6,寫,寫在運,算,算元之前與寫在之後的不同,1 #include,2 main(),4int,a=1,b=1,c=2,d=2,;,5printf(,+a,=,%in,+a,);,6printf(,-b,=,%in,-b,);,7printf(,c+,=,%in,c+,);,8printf(,d-,=,%in,d-,);,9 ,81,指定運算子,=它會,把,把右邊運算,式,式的值指定,給,給左邊的變,數,數。例如:,x = y= z= 8;,/* z=8; y=z; x=y; */,指定運算子,=左邊必須是一個,單,單一變數,,而,而不能是,數,數值、函式,、,、複合運,算,算式 (如x + y= z,即,是,是錯的敘述)。,指定運算子(Assignment Operator),82,Ch4_7,指定運算子,的,的使用,t = 5,t = 3?,Ch4_7,1 #include,2 main(),4int t=5;,5printf( t=%in,t);,6t =3.1415;,7printf( t=%in,t);,8 ,83,複合式指定,運,運算子 (縮寫),運算子,使用方式,+=,i,+=,j;,-=,i-=j;,*=,i*=j;,/=,i/=j;,%=,i%=j;,=,i=j;,等同,i=i+,j;,i=i-j;,i=i*j;,i=i/j;,i=i%j;,i=ij;,i=10;j=20;,i=30;j=20;,84,條件運算,子,子? :,的功能,與,與流程控,制,制中的if-else敘述,功,功能相同,,,,可以,代,代替簡單,的,的if-else,指,指令。,語法:,(條件的,敘,敘述)?敘述:敘述二;,例如:,(x1)?x=x+1:x=x-1;,條件運算,子,子(Conditional Operator),if(x1),x=x+1;,else,x=x-1;,x =(x1),?x+1:x-1,;,85,Ch4_9,Ch4_9 輸,入,入任意二,數,數,並且,輸,輸出較大,值,值及較小,值,值,1 #include,2 main(),4int a,b,p, q;,5printf(輸入兩,個,個數:);,6,scanf(,%i%i,輸入兩個,數,數:11 32,7,p =(ab)?a:b;,8,printf(,大,大數是:,%i,n,p);,9,q =(a .,一次,L,! + - + - * & sizeof,單向,R,* / %,乘除法,L,+ -,加減法,L,位移,L, =,比較關係,L,= !=,邏輯等值,L,& |,位元,L,& |,邏輯,L,? :,條件,R,= += -= /= %= &= = |= =,複合,R,逗號,L,89,1 #include,2 main(),3int a=5, b=4,c=2;,4int m,n;,m=1,n=0,Ch4_13,運算子的,優,優先順序,5m= a b!= c;,6n= a b,7printf(m=%in,m);,8printf(n=%in,n);,9 ,加括號,最清楚,90,Ch4_13的,說明,1. a b!=c, 5 4!= 2, 1!= 2, 1,2. a b&c a |a 4& 2 5|5 4, 1& 0|0, 0| 0, 0,91,第五章迴路敘述 (重複執行),5-1for( ; ),5-2while,5-3do,while();,92,for敘,述,述,for的,敘,敘述,是最常見,的,的迴路敘,述,述,,其特性在,於,於可以有,彈,彈性的控,制,制迴路的執行次數,for的,語,語法,for(起始運算式;條件運算式;累加運算式),敘述;,93,for的,流,流程圖,i=0,條件i10,print(i),i+,結束,false,true,0123456789,94,Ch5_1 for,Ch5_1,列,列印出0,到,到9之間,的,的數,1 #include,2main(),3inti,;,0 12 34 56 78 9,i=0;printf (%2d,0);,i=1;printf (%2d,1);,i=2;printf (%2d,2);,i=8;printf (%2d,8);,i=9;printf (%2d,9);,i=10;,只要,i10,4,i,=0,;,5for(,i,=0,;,i,10,;,i,+),6printf(%2d,i,),;,7,i,+,;,8,9 ,95,Ch5_1,流,流程圖,Y,a = 0,printa,a +,a=9,結束,N,96,Ch5_2for,Ch5_2,計,計算sum =1 + 2+ 3+ .+ 99+ 100,1 #include,2 main(),3inti, sum=0;,4,5,6,7printf(Sum=%in,sum);,8 ,Sum =5050,i=1;sum =sum+1;,i=2;sum =sum+2;,i=3;sum =sum+3;,i=99;sum =sum+99;,i=100;sum =sum+100;,for (i=1;i=100; i+),sum+=i;,97,Ch5_2,流,流程圖,i=1,sum=0,i=100,sum += i,i+,printsum,N,Y,98,Ch5_3factorial,Ch5_3,計,計算 1* 2* 3 *.* n 的,值,值,1 #include,2 main(),3intn, i, fact=1;,4scanf(%i,5,6,7,8printf(%i! =%in,n,fact);,9 ,4,4!=24,fact= fact*1;,fact= fact*2;,fact= fact*3;,fact= fact*n;,for (,i,=1;,i,=n ;,i,+),fact*=,i,;,99,Ch5_3,流,流程圖,i=1,fact=1,i 8; i+),5printf(%iso goodn,i);,6,7 ,10 sogood,11 sogood,12 sogood,99 sogood,只要i8,起初i=10,輸出?,102,Ch5_5,流,流程圖,Y,i = 10,printso good,i +,i 8,結束,N,103,for的巢狀結構 NestedFor (for中有for),巢狀結構就,是,是在迴路中包含另一個迴路,for(),巢,巢狀結構分,為,為內、外層迴路,程式會先執,行,行外層迴路,的,的起始運算,式,式,接著執行外,層,層迴路的條,件,件運算式,其次才是內,層,層迴路,內,層,層迴路執行,完,完後,最後才是外,層,層迴路的累,加,加運算式,104,for巢狀,結,結構之語法,for(起,始,始運算式1; 條件運,算,算式1;,累,累加運算式1) ,敘述1;/*外層迴,路,路*/,for(起,始,始運算式2; 條件運,算,算式2;,累,累加運算式2) ,敘述2;/*內層迴,路,路*/,105,for巢狀,結,結構的使用,此為允許的for巢,狀,狀結構,此為不允許的for巢,狀,狀結構,106,Ch5_6Nested For,*,*,*,*,*,Ch5_6,列,列,印,印5,5的倒直角三,角,角形,1 #include,2,main(),3 int i,j;,4 for(i=5;i0;i-),5,6,7,8,9 ,0 ,(i=5)j=5,4,3,2,1,(i=4)j=4,3,2,1,(i=3)j=3,2,1,(i=2)j=2,1,(i=1)j=1,for(j=i;j0;j-),printf(*);,printf(n);,107,Ch5_7,九九乘法表,123456789,2468 10121416 18,369 12151821 24 27,48 12162024 28 3236,510 15 2025303
展开阅读全文