书名轻松学习C语言TOC

上传人:zhan****gclb 文档编号:135518525 上传时间:2022-08-15 格式:PPTX 页数:290 大小:872.14KB
返回 下载 相关 举报
书名轻松学习C语言TOC_第1页
第1页 / 共290页
书名轻松学习C语言TOC_第2页
第2页 / 共290页
书名轻松学习C语言TOC_第3页
第3页 / 共290页
点击查看更多>>
资源描述
書名:輕鬆學習C語言TOC作者:陳澤雄、蕭宗志、林國任、黃珮瑩、黃佑民出版社:旗標出版股份有限公司CIT F.4:2-9,12,14,18-152,160,167-2011第一章 C語言簡介 1-1 C語言的結構 1-2 識別字/identifier 1-3 關鍵字/reserved words 1-4 註解/comments/*remarks*/1-5 前端處理程式#include,#define21-1 C語言程式的結構 C 語言程式的基本架構如下:語言程式的基本架構如下:/test.c#include/*前端處理*/int main()/*主程式*/程式內容 system(pause);/暫停return 0;/test.cpp#includeusing namespace std;int main()程式內容system(pause);return 0;3int i,n,sum=1;/變數宣告printf(The input number=);scanf(%i,&n);for(i=1;i=n;i+)sum=sum*i;printf(The result of%i!is:%in,n,sum);Ch1_1 C的基本架構的基本架構Ch1_1 計算計算n!的值的值 1#include/前端處理程式2 main()34567891011 指令敘述主程式輸出:The input number=4The result of 4!is:24 41-2 識別字(Identifier)C 語言程式碼中使用的變數或常數名稱,其命名固然可依使用者的喜好而定,但仍然存在某些限制,不得擅取。分述如下:1.只能使用英文字母(A-Z)、阿拉伯數字(0-9)以及底線符號(_)。2.第一個字母必須為英文字母或是底線符號。3.字母的大小寫,分別代表不一樣的識別字。4.不鼓勵以底線符號作為變數(Variable)名稱的首字。5.以底線開頭的識別字,大都為系統所使用。6.識別字最長可達31個字元。7.不可使用關鍵字(保留字)作為識別字。5識別字(Identifier)合法識別字numberfive5paper_1name_5answer不合法識別字2numberfive-5paper 1#name_5for6Ch1_2 變數變數variablevariableCh1_2 名稱的使用名稱的使用 1#include2 main()3 int ans;4 ans=6*9;5 printf(The answer is%i.n,ans);6 The answer is 54.變數7關鍵字在C 語言中具有特殊意義,不能將這些字當作識別字來使用,不能拿來當作一般變數或常數名稱使用。1-3 關鍵字(Keyword)、保留字intfloatcharifelsefordowhileswitchcasedefaultbreakcontinuereturnvoidsizeofunixvolatileasmautodoubleentryenumexterngotolongregistershortstaticstructtypedefunionunsigned8註解為符號/*和符號*/中間所包含的字元所組合而成的,可放置於程式的任意部位。註解的有無或內容為何都不會影響程式的執行,C 語言編譯器會把註解當作一個空白字元,而不會去編譯它。註解的功用在於增加程式的可讀性。註解格式如下:/*/空 格 就 是 對 程 式 碼 的 說 明 1-4 註解(Comment)9在C 語言中,只要前端有#符號者,皆是。其位置皆放在函數之外、程式的前面。C 語言的前端處理程式如下:前端處理程式前端處理程式意意 義義#include引入標頭檔#define定義巨集#undef解除定義巨集#if條件式編譯#ifdef條件式編譯#ifndef條件式編譯#error設定錯誤訊息#line設定行號1-5 前端處理程式(Preprocessor)101-5-1#define 前端處理程式前端處理程式大寫#define PI 3.14#define f(x)(x)*(x)#define SCH abc沒=沒;11Ch1_3 定義常數定義常數 1#include2#define A 103#define B 21輸出結果10+21=3110-21=-11Ch1_3#define 之應用之應用4 main()5 printf(%i+%i=%in,A,B,A+B);6 printf(%i-%i=%in,A,B,A-B);7 12Ch1_4 定義數學運算式定義數學運算式1#include2#define f(x)(x)*(x)+3*(x)-3)3#define Y 2f(2)=7Ch1_4#define之應用之應用4 main()5 printf(f(%i)=%in,Y,f(Y);6 x+3x313Ch1_5 定義字串或字元定義字串或字元1#include2#define S The abbreviation is 3#define C n The abbreviation is n.Ch1_5#define之應用之應用大寫簡寫4 main()5 printf(%s%c.n,S,C);6 14使用來使用來終止終止之前被之前被#define所定義的變數。所定義的變數。語法語法#undef 名稱1-5-2#undef15Ch1_6 計算計算1+2+9+101#include2#define N 993 main()4 int i,sum=0;5#undef N6#define N 117 for(i=1;iN;i+)sum+=i;8 printf(sum=%in,sum);9 sum=55Ch1_6#undef之應用之應用終止終止定義定義N重新重新定義定義N定義定義N=9916 表示對於程式外的標頭檔的引含指令,表示對於程式外的標頭檔的引含指令,通常所引含的檔案都是以通常所引含的檔案都是以.h來作為擴充檔名。來作為擴充檔名。C語言編譯器都提供其系統定義的語言編譯器都提供其系統定義的標頭檔標頭檔 header 標頭檔的內容大多為巨集定義及函數型式標頭檔的內容大多為巨集定義及函數型式。1-5-3#include 語法一語法一#include 語法二語法二#include user-filename17第二章 C語言的基本資料型態 2-1 常數const float PI=3.14;2-2 變數float radius=10;2-3 資料型態18資料在程式執行過程中,其資料在程式執行過程中,其內容始終維持不變內容始終維持不變 數值常數數值常數(Numeric Constant)整數常數(Integer Constant)浮點常數(Floating-point Constant 字元常數字元常數(Character Constant)字串常數字串常數(String Constant)2-1 常數(Constant)19 在程式執行過程中,資料內容在程式執行過程中,資料內容始終維持不變始終維持不變。2-1-1 整數常數十進位(Decimal)例如:21 逢10進1,使用09。八進位(Octal)例如:025 逢 8進1,使用07。十六進位(Hexadecimal)例如:0 x15 逢16進1,使用09,AF。20Ch2_1 整數常數表示法整數常數表示法The decimal of 11 is 11.The decimal of 011 is 9.The decimal of 0 x11 is 17.Ch2_11#include2 main()3 printf(The decimal of 11 is%i.n,11 );4 printf(The decimal of 011 is%i.n,011 );5 printf(The decimal of 0 x11 is%i.n,0 x11 );6 1110 0118 0 x1116decimal=十進制十進制%i10進%o 8進%x16進21 帶有帶有小數點小數點的數,包括的數,包括正正、負負數。數。浮點常數的表示法如下:浮點常數的表示法如下:小數點小數點表示法(decimal notation)。科學科學符號表示法(scientific notation),又稱為指數指數 表示法(exponential notation)。2-1-2 浮點float常數m 10n22Ch2_2 浮點常數表示法浮點常數表示法The decimal notation is 6.910212.The scientific notation is 6.910212e+00.Ch2_21#include2 main()3 printf(The decimal notation is%f.n,6.9102119);4 printf(The scientific notation is%e.n,6.9102119);5 6.91021210023 英文字母A,a 數字0,9 控制字元(特殊)t,n,a 其他符號+,-,!2-1-3 字元常數用一對用一對單引號單引號將字元將字元框起來框起來參閱ASCII字符表24Ch2_3 字元與字元與ASCII CodeThe ASCII Code of A is 65.The ASCII Code of a is 97.48!=0 Ch2_3 字元與字元與ASCII Code值的轉換值的轉換1#include2 main()3 printf(The ASCII Code of%c is%i.n,A,A);4 printf(The ASCII Code of%c is%i.n,97,97);5 printf(%i!=%in,0,0);6 25字元abfnrtvC語言控制字元表:8進位16進位功能敘述007x07發出一聲嗶的聲音beep010 x08退位backspace014x0c跳頁form-feed012x0A換行new-line015x0D無換行的歸位return011x09Tab定位(水平)013x0BTab定位(垂直)134x5c印出反斜線 字元047x27印出單引號 字元042x22印出雙引號 字元26Ch2_4 控制字元控制字元的使用的使用Hong KongUniversityCh2_41#include2 main()3 printf(Hong Kong%c University,n);4 27 為一串字元組合而成,為一串字元組合而成,其個數並沒有嚴格的限制。其個數並沒有嚴格的限制。必須使用一對必須使用一對雙引號雙引號將字元框起來。將字元框起來。字串是字串是字元陣列字元陣列(array of char)。2-1-4 字串常數 String用一對用一對雙引號雙引號將文字將文字框起來框起來28Ch2_5 字串常數表示法字串常數表示法The memory space of the string is 18 bytes.Ch2_51#include2 main()3 char s18=Taiwan University;4 printf(The memory space of the string is%i bytes.n,sizeof(s);5 雙引號雙引號字串長度字串長度 bytes29 資料的資料的內容內容會隨著程式的執行而有所會隨著程式的執行而有所改變改變。是一個是一個記憶體空間記憶體空間,可分成,可分成2-2 變數(Variable)數值變數(Numeric variable)整數變數(Integer variable)浮點變數(Floating-point variable)字元變數(Character variable)字串變數(String variable)30整數整數宣告宣告包含包含 整數(int)正整數(unsigned int)負整數(signed int)短整數(short int)長整數(long int)2-2-1 整數變數(int)語法一語法一int a=6,b=9;語法二語法二int answer;31 語法一語法一float a=-3.9;語法二語法二float b=1.5e2;語法三語法三float answer;2-2-2 浮點變數(float)指數記數法=1.51032Ch2_6 浮點變數表示法浮點變數表示法The answer is 828.000000.Ch2_6#includemain()float ans;float a=6.9;float b=1.2e2;ans=a*b;printf(The answer is%f.n,ans);33Ch2_7 字元變數表示法字元變數表示法1#include2 main()3 char a=C;4 char x=a-1;5 printf(x=%cn,x);6 2-2-3 字元變數(char)單引號x=BC-1=B34 字串變數會隨著程式變化而改變。字串變數會隨著程式變化而改變。Ch2_8 字串變數表示法字串變數表示法 1#include2 main()4char s130=Taiwan;5char s211=University;6strcat(s1,s2);/結合字串 7printf(%sn,s1);8 Taiwan University2-2-4 字串變數(char string)雙引號35 整數型態整數型態(int type)浮點數型態浮點數型態(floating-point type)單精確度浮點數型態(float type)倍精確度浮點數型態(double type)字元型態字元型態(char type)2-3 資料型態(Data Types)36整數型態整數型態佔記憶體佔記憶體容量容量數值範圍數值範圍整數整數int2 bytes-32,76832,767含正負號整數含正負號整數signed int2 bytes-32,76832,767無正負號整數無正負號整數unsigned int2 bytes065,535短整數短整數short int2 bytes-32,76832,767含正負號短整數含正負號短整數signed short int2 bytes-32,76832,767無正負號短整數無正負號短整數unsigned short int2 bytes065,535長整數長整數long int4 bytes-2,147,483,6482,147,483,647含正負號長整數含正負號長整數signed long int4 bytes-2,147,483,6482,147,483,647無正負號長整數無正負號長整數unsigned long int4 bytes04,294,967,2952-3-1 整數型態(int type)37Ch2_9 sizeof()The size of int is 2 bytes.The size of short int is 2 bytes.The size of long int is 4 bytes.Ch2_9 整數型態整數型態計算所佔的記憶體空間計算所佔的記憶體空間#includemain()printf(The size of int is%i bytes.n,sizeof(int);printf(The size of short int is%i bytes.n,sizeof(short int);printf(The size of long int is%i bytes.n,sizeof(long int);佔多少位元38整數型態佔記憶體容量數值範圍有效位數(小數點後)實數float4 bytes3.4E-383.4E+387長倍實數long float8 bytes1.7E-3081.7E+30815雙倍實數double8 bytes1.7E-3081.7E+30815長雙倍實數long double10 bytes3.4E-49321.1E+4932182-3-2 浮點數型態(floating-point type)39Ch2_10The size of float is 4 bytes.The size of double is 8 bytes.The size of long double is 10 bytes.Ch2_10 浮點數型態浮點數型態計算所佔的記憶體空間計算所佔的記憶體空間1#include2 main()3 printf(The size of float is%i bytes.n,sizeof(float);4 printf(The size of double is%i bytes.n,sizeof(double);5 printf(The size of long double is%i bytes.n,sizeof(long double);6 佔多少位元40浮點數型態浮點數型態f=1.666666626930236820d=1.666666666666666740 比較有效位數的比較有效位數的不同不同1#include2 main()3float f=5/3.0;4double d=5/3.0;5printf(f=%20.18fn,f);6printf(d=%20.18fn,d);7 41整數型態佔記憶體容量數值範圍字元(char)1 byte-128127含正負號字元(signed char)1 byte-128127無正負號字元(unsigned char)1 byte02552-3-3 字元型態(char type)42Ch2_11 字元型態字元型態The ASCII code of A is 65.The ASCII code of a is 97.The ASCII code of 0 is 48.Ch2_11 字元與字元與ASCII Code值的轉換值的轉換#includemain()char x=A,y=a,z=0;printf(The ASCII code of%c is%i.n,x,x);printf(The ASCII code of%c is%i.n,y,y);printf(The ASCII code of%c is%i.n,z,z);%c字元%i數字43第三章 基本輸入輸出函數3-1 輸出函數printf,puts,putchar,putch,putc3-2 輸入函數scanf,gets,getc,getch,getche,getchar44函數功能敘述:輸出printf()數值、字元和字串putc()字元putch()字元putchar()字元puts()字串3-1 輸出函數45 語法一printf(普通字元);Ch3_1 printf()輸出輸出1#include2 main()3 printf(Taiwan University.n);4 Taiwan University.3-1-1 輸出 printf46 語法二printf(普通字元%?n,變數);Ch3_21#include2 main()3int a=9,b=6,answer;The answer:9-6=3.3-1-1 printf()格式化輸出格式化輸出4answer=a-b;5printf(The answer:%i-%i=%i.n,a,b,answer);6 47 資料資料轉換型態轉換型態 資料的資料的欄寬欄寬和和精確度精確度 帶有帶有的字元常數的字元常數 ASCII字元輸出字元輸出 3-1-2 影響數值輸出的因子48%字元功能敘述%i,%d輸出十進位的整數%c輸出字元%s輸出字串%f輸出以小數點表示的浮點數printf()函數函數資料轉換型態資料轉換型態%e輸出以指數表示的浮點數%g自動選擇以小數點表示或指數表示的浮點數%o輸出八進位的整數%x輸出十六進位的整數49Ch3_3 八進八進位、位、十六進十六進位位The ASCII Code of 69 is E.The Octal value of 69 is 105.The Hexadecimal value of 69 is 45.將將十進十進位的數值轉換成字元位的數值轉換成字元(%c)、八進八進位位(%o)、十六進十六進位位(%x)1#include2 main()3 int a=69;4 printf(The ASCII Code of%i is%c.n,a,a);5 printf(The Octal value of%i is%o.n,a,a);6 printf(The Hexadecimal value of%i is%x.n,a,a);7 50 語法一%nie.g.%6i,%02i 語法二%-nde.g.%-6d+靠右-靠左前面補0顯示顯示資料的資料的欄寬欄寬和和精確度精確度51Ch3_4%i%d 修飾語修飾語(printf)|1021|1021|1021|+1021|1021|#includemain()int a=1021;printf(|%i|n,a);printf(|%2d|n,a);printf(|%6d|n,a);printf(|%+6d|n,a);printf(|%-6d|n,a);-靠左52語法一%m.nfe.g.%10.1f,%.2f語法二%-m.nfe.g.%-10.1f共10位小數後1位+靠右-靠左小數後2位%f小數點浮點輸出小數點浮點輸出53Ch3_7%f 修飾語變化修飾語變化|691.020996|691.02|691.02|691.02|Ch3_7#includemain()float f;f=691.021;%f 小數後6位小數後2位,四捨五入printf(|%f|n,f);printf(|%2.2f|n,f);printf(|%9.2f|n,f);printf(|%-9.2f|n,f);54Ch3_10 反斜線字元反斜線字元1#include2 main()3 printf(Taiwan nUniversityn);4 printf(Taiwan Universityn);5 Taiwan University Taiwan University 帶有帶有的字元常數的字元常數55 0oo:八進位表示法。041(!)xdd:十六進位表示法。x41(A)ASCII字元輸出字元輸出56函數功能敘述標頭檔(#include)putch()輸出一個字元不需要putchar()輸出一個字元需要putc()輸出一個字元3-1-3 字元的輸出57Ch3_11 putch()和和putchar()輸出輸出bbbCh3_11#includemain()char a=b;標準輸出Standard outputputch (a);putchar(a);putc (a,stdout);58Ch3_12 puts()函數函數1#include2 main()3 char s =Taiwan University.;Taiwan University.Computer Science.3-1-4 字串的輸出4 puts(s);5 puts(Computer Science.);6 59函數功能敘述scanf()輸入數值、字元和字串getch()輸入字元getchar()輸入字元getche()輸入字元gets()輸入字串3-2 輸入函數60 語法一語法一scanf(%i,&num);/整數 語法二語法二scanf(%c,&ch);/字元 語法三語法三scanf(%s,str);/文字(不用&)3-2-1 數據的輸入&地址61%字元功能敘述%i十進位整數%c單一字元%s字串%f浮點數十進位帶小數表示法%e浮點數指數表示法%o八進位整數%x十六進位整數scanf()函數的資料轉換型態函數的資料轉換型態62Ch3_13 scanf()輸入函數輸入函數Ch3_131#include2 main()3int a,b,ans;Enter two integers:6 9Ans:6*9=54輸入:需要加&輸出:不要加&4printf(Enter two integers:);5scanf(%i%i,&a,&b);6ans=a*b;7printf(Ans:%i*%i=%in,a,b,ans);8 63函數輸入字元後需要按Enter該字元會顯現出來#include getch()不需要不會顯現不需要getche()不需要會顯現不需要getchar()需要會顯現需要3-2-2 字元的輸入64Ch3_14 getchar,getche函數比較函數比較 輸入單字2:bbCh3_14#include#include main()char ch1,ch2;輸入單字1:aa不用按Enter必須按Enterprintf(輸入單字1:);ch1=getchar();putch(ch1);printf(輸入單字2:);ch2=getche();printf(n);putch(ch2);65Ch3_15 gets()輸入函數輸入函數1#include2 main()3char str60;Enter a string:University 3-2-3 字串的輸入4printf(Enter a string:);5gets(str);6printf(HK%sn,str);7puts(str);8 HK University University66第四章 運算式與運算符號 運算式組成元素(Expression 3+4)運算子(Operators+-*/)67運算式組成元素 運算式一般分為三類:算術運算式(a+b)關係運算式(ab)邏輯運算式(and or not)由運算元(operands)和運算子(operators)組成 例如:a=1+2-1 a、1、2就是運算式的運算元。=、+、-就是運算式的運算子。68各種運算子1.算術運算子(Arithmetic Operator)2.位移運算子(Shift Operator)3.位元運算子(Bitwise Operator)4.關係運算子(Relational Operator)5.邏輯運算子(Logical Operator)6.累計運算子(Increment and Decrement Operator)7.指定運算子(Assignment Operator)8.條件運算子(Conditional Operator)9.sizeof 運算子69算術運算子(Arithmetic Operator)運算子 功能敘述+-*/%a+b(和)a-b(差)ab(積)ab(商)ab(取餘數),又稱為mod70位移運算子(Shift Operator)位移運算,就是把位元(bit)向左移()幾個位置。向左移n個位元,就相當於乘2n;向右移n個位元,相當於除以2n。運算子使用方式功能敘述x n將x向右移n個位元x n將x向左移n個位元71Ch4_2 使用位移運算子使用位移運算子5 1=6Ch4_21#include2 main()3 int a=5,b=13;4 a=a 1;6 printf(5 1=%i n,b);8 72位元運算子(Bitwise Operator)運算子使用方式功能敘述&i&ji AND j|i|ji OR ji ji XOR j iNOT i73 Ch4_3 1#include 2 main()3int A=3,B=5;Ch4_3 基本位元運算子運算基本位元運算子運算A&B=1A|B=7A B=6A=-4 4printf(A&B=%i n,A&B);5printf(A|B=%i n,A|B);6printf(A B=%i n,A B);7printf(A =%i n,A);8 74Ch4_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)運算子使用方式功能敘述abababa=a=bab=a=bab=a=ba=b!=a!=bab76Ch4_4 判斷真假判斷真假 True(1)/False(0)1#include2 main()3int i=3,j=5;Ch4_4 關係運算子關係運算子3 5=03=5=03%i=%in,i,j,ij);5 printf(%i%i=%in,i,j,i=%i=%in,i,j,i=j);7printf(%i=%i=%in,i,j,i=j);8printf(%i=%i=%in,i,j,i=j);9printf(%i!=%i=%in,i,j,i!=j);0 77邏輯運算子(Logical Operator)邏輯運算子包括&(邏輯AND)|(邏輯OR)!(NOT)邏輯的AND、OR、NOT 的真值表如下:運算子使用方式功能敘述&i&ji AND j|i|ji OR j!iNOT iAND10110000OR10111010NOT1001Black Friday:某月13日 及 星期五Leap Year:if(yy%400=0)|(yy%4=0&yy%100!=0)char ans=N:if(!(ans=N)781 int a=5,b=10;2 if(b%a=0&a=b)a=a+b;3 if(ab)b=a-b;4 printf(a=%i b=%in,a,b);Ch4_5 邏輯運算子的應用邏輯運算子的應用a=4 b=406 a=4;b=5;7 if(!(ab)b=a+b;8 if(ab)a=b*10;else b=a*10;9 printf(a=%i b=%in,a,b);a=15 b=579 累計運算子包含增量運算子(Increment Operator+)減量運算子(Decrement Operator )累計運算子 增量(+)與減量(-)運算子寫在operand的前後,所產生的效果也將不同。1.前置模式:是將+或-置於變數之前,是在使用此運算元之前先進行加1或減1之動作。2.後置模式:是將+或-置於變數之後,是在使用此運算元之後才進行加1或減1之動作。80Ch4_6 累計運算子累計運算子+a=2-b=0c+=2d-=2Ch4_6 寫在運算元寫在運算元之前之前與寫在與寫在之後之後的不同的不同1#include2 main()4 int a=1,b=1,c=2,d=2;5 printf(+a=%in,+a);6 printf(-b=%in,-b);7 printf(c+=%in,c+);8 printf(d-=%in,d-);9 81 指定運算子=它會把右邊運算式的值指定給左邊的變數。例如:x=y=z=8;/*z=8;y=z;x=y;*/指定運算子=左邊必須是一個單一變數,而不能是數值、函式、複合運算式(如 x+y=z,即是錯的敘述)。指定運算子(Assignment Operator)82Ch4_7 指定運算子的使用指定運算子的使用t=5t=3?Ch4_71#include2 main()4 int t=5;5 printf(t=%in,t);6 t=3.1415;7 printf(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;85Ch4_9Ch4_9 輸入任意二數,並且輸出較大值及較小值輸入任意二數,並且輸出較大值及較小值1#include2 main()4 int a,b,p,q;5 printf(輸入兩個數:);6 scanf(%i%i,&a,&b);輸入兩個數:11 327 p=(ab)?a:b;8 printf(大數是:%i n,p);9 q=(ab)?a:b;10 printf(小數是:%i n,q);11 大數是:32小數是:1186 sizeof 運算子是用來算出各種資料型態所佔用的空間(單位為bytes)。語法 sizeof(資料型態)例如:記憶體配置大小sizeof(a)sizeof(A)sizeof(float)sizeof運算子87Ch4_11 sizeofCh4_11 計算一字串所佔記憶體的位元組數計算一字串所佔記憶體的位元組數1#include2 main()3 char str=THANK YOU;THANK YOU 的長度為:10 bytes4 printf(%s 的長度為:%i bytesn,str,sizeof(str);5 88運算子的優先順序與結合性運算子運算子運算子運算子結合性結合性()-.一次一次L!+-+-*&sizeof單向單向R*/%乘除法乘除法L+-加減法加減法L位移位移L =比較關係比較關係L=!=邏輯等值邏輯等值L&|位元位元L&|邏輯邏輯L?:條件條件R=+=-=/=%=&=|=複合複合R,逗號逗號L891#include2 main()3int a=5,b=4,c=2;4int m,n;m=1 n=0Ch4_13 運算子的優先順序運算子的優先順序5m=a b!=c;6n=a b&ca|a b!=c 5 4!=2 1!=2 12.a b&c a|a 4&2 5|5 4 1&0|0 0|0 091第五章 迴路敘述(重複執行)5-1for(;)5-2while 5-3do while();92for敘述 for的敘述是最常見的迴路敘述,其特性在於可以有彈性的控制迴路的執行次數 for的語法 for(起始運算式;條件運算式;累加運算式)敘述;93for的流程圖i=0條件條件i10print(i)i+結束結束falsetrue012345678994Ch5_1 forCh5_1 列印出列印出0到到9之間的數之間的數1#include2 main()3 int i;0 1 2 3 4 5 6 7 8 9i=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;只要i104i=0;5 for(i=0;i10;i+)6 printf(%2d,i);7i+;8 9 95Ch5_1 流程圖Ya=0print aa+a=9結束N96Ch5_2 forCh5_2 計算計算sum=1+2+3+.+99+1001#include2 main()3int i,sum=0;4567printf(Sum=%in,sum);8 Sum=5050i=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;97Ch5_2 流程圖i=1,sum=0i=100sum+=ii+print sumNY98Ch5_3 factorialCh5_3 計算計算 1*2*3*.*n 的值的值 1#include2 main()3int n,i,fact=1;4scanf(%i,&n);5678printf(%i!=%in,n,fact);9 44!=24fact=fact*1;fact=fact*2;fact=fact*3;fact=fact*n;for(i=1;i=n;i+)fact*=i;99Ch5_3 流程圖i=1,fact=1i=nfact*=ii+print factNYinput n100for的無窮迴路 infinite loop for的的無窮迴路無窮迴路敘述敘述 當程式一直執行相同的迴路,而無法跳出時,稱為無窮迴路。for的無窮迴路語法的無窮迴路語法 for(;)敘述;有心的無意的101Ch5_5 無窮迴路無窮迴路 Ch5_51#include2 main()3 int i;4 for(i=10;i8;i+)5 printf(%i so goodn,i);6 7 10 so good11 so good12 so good99 so good只要i8起初i=10輸出?102Ch5_5 流程圖Yi=10print so goodi+i 8結束N103for的巢狀結構 Nested For(for中有for)巢狀結構就是在迴路中包含另一個迴路 for()巢狀結構分為內、外層迴路 程式會先執行外層迴路的起始運算式 接著執行外層迴路的條件運算式 其次才是內層迴路,內層迴路執行完後 最後才是外層迴路的累加運算式 104for巢狀結構之語法for(起始運算式1;條件運算式1;累加運算式1)敘述1;/*外層迴路*/for(起始運算式2;條件運算式2;累加運算式2)敘述2;/*內層迴路*/105for巢狀結構的使用 此為允許的for巢狀結構 此為不允許的for巢狀結構106Ch5_6 Nested For *Ch5_6 列印列印5 5的倒直角三角形的倒直角三角形1#include2 main()3 int i,j;4 for(i=5;i0;i-)56789 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=1for(j=i;j0;j-)printf(*);printf(n);107Ch5_7 九九乘法表九九乘法表 1 2 3 4 5 6 7 8 92 4 6 8 10 12 14 16 183 6 9 12 15 18 21 24 274 8 12 16 20 24 28 32 365 10 15 20 25 30 35 40 456 12 18 24 30 36 42 48 547 14 21 28 35 42 49 56 638 16 24 32 40 48 56 64 729 18 27 36 45 54 63 72 81 Ch5_71#include2 main()4 int i,j;5 for(i=1;i=9;i+)79101112 13 (i=1)j=1,2,3,.,9(i=2)j=1,2,3,.,9(i=3)j=1,2,3,.,9.(i=9)j=1,2,3,.,9(i=10)for(j=1;j=9;j+)printf(%3d,i*j);printf(n);108while敘述 while的敘述 while敘述執行時會先判斷條件式是否為真 若為真,則執行以下之敘述 若為假,則跳出while敘述 while的語法while(條件判斷式)敘述;109while敘述的流程圖條件條件i10print(i)i+結束結束NY110Ch5_9 whileCh5_9 計算出計算出1加至加至1001#include2 main()3 int i=1,sum=0;45678 printf(sum=%in,sum);9 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;(i=101)While(i=100)sum=sum+i;i+;111Ch5_10 while n2的n次方 12 24 38 416 532 664 7128 8256 9512 101024Ch5_10 while迴路的應用迴路的應用計算計算2的的n次方的值次方的值2 int n=1,power=1;3 printf(nt2的n次方n);4 while(n=10)567 n+;8 power*=2;printf(%2i t%i n,n,power);112 while巢狀結構的語法while(條件判斷式1)/*外層迴路*/敘述1;while(條件判斷式2)/*內層迴路*/敘述2;113while巢狀結構的流程圖YN條件條件i10i10i+;j=i;i+;j=i;結束結束NYj+j+條件條件j10j10114do while敘述 do while的敘述 do while會先執行迴路中的敘述 再判斷條件式是否成立 不論條件判斷式成立與否,do-while中的敘述最少會執行一次 語法do 敘述;while(條件判斷式);115do while()之流程圖print(i+);條件條件i10yesno116Ch5_11 do-while1int j=0;doprintf(Hellon);j+;while(j5);HelloHelloHelloHelloHello2int j=0;doprintf(Hellon);while(j5);HelloHelloHello117第六章 選擇性敘述 有條件的選擇敘述 多重條件選擇敘述 無條件選擇敘述118有條件的選擇敘述 有條件的選擇敘述即為if敘述,其語法如下:語法一 if(條件運算式)敘述;流程圖 條件運算式敘述 1yesno119 語法二 if(條件運算式)敘述 1;敘述 2;敘述 n;如果敘述超過一個以上,則須以 來隔開,如果沒有括號只會執行最接近的那一行敘述。有條件的選擇敘述 120有條件的選擇敘述的流程圖條件運算式條件運算式敘述敘述 1noyes敘述敘述 2敘述敘述 n121Ch6_1 ifCh6_1 輸入輸入a,b兩個數,判斷並將兩個數,判斷並將a,b由大到小排列由大到小排列1#include2 main()3 int a,b,t;4 printf(input two integers:);5 scanf(%i%i,&a,&b);67891011 printf(由大到小排列:%i%in,a,b);12 input two integers:3 4t a b tif(ab)t=a;a=b;b=t;由大到小排列:4 3122 程式執行結果input two integers:3 4由大到小排列:4 3 說明3ab4t3第1步第2步第3步Ch6_1 if(a=50passfail124Ch6_3 Ch6_3 輸入兩個整數,並計算輸入兩個整數,並計算兩個整數之差兩個整數之差int n1,n2,ans;printf(input two integers:);scanf(%i%i,&n1,&n2);printf(兩數之差為:%in,ans);input two integers:25 78if(n1=n2)ans=n1-n2;else ans=n2-n1;ans=abs(n1-n2);兩數之差為:53125Ch6_4 Ch6_4 輸入一個年份,測試其是否為閏年輸入一個年份,測試其是否為閏年int yy;printf(Input a year:);scanf(%i,&yy);if(printf(%i is a leap yearn,yy);elseprintf(%i is not a leap yearn,yy);Input a year:1900Input a year:2000if(yy%400=0)|(yy%4=0&yy%100!=0)1900 is not a leap year2000 is a leap year126 語法二if(條件運算式)敘述 1;敘述 2;敘述 n;else 敘述 a;敘述 b;敘述 z;if-else 兩重條件選擇 127 語法三 if(條件運算式 1)敘述 1;else if(條件運算式 2)敘述 2;else 敘述 n;else會和最接近且與之配對的if一起使用。if-else 多重條件選擇 Jan 31Feb 28Mar 31Apr 30May 31Jun 30128if-else多重條件選擇的流程圖 條件運算式條件運算式 1敘述敘述 1noyesnoyes條件運算式條件運算式 2敘述敘述 2敘述敘述 n2月月28天天4,6,9,11月月30天天31天天129Ch6_5 (1/2)請輸入每週工作時數:45請輸入時薪:100Ch6_5 輸入輸入工作時數工作時數及及時薪時薪,計算,計算每週薪資每週薪資1#include2 main()3 int work_time,time_pay,salary,ot;4 printf(請輸入每週工作時數:);5 scanf(%i,&work_time);6 printf(請輸入時薪:);7 scanf(%i,&time_pay);130Ch6_5(2/2)10 if(work_time 40)11 ot=work_time-40;1213141517 else18 salary=work_time*time_pay;19 printf(每週的薪金是%i元n,salary);20 1112 if(ot 10)13 salary=14 else15 salary=40*time_pay+10*time_pay*1.5+(ot-10)*time_pay*2;40*time_pay+ot*time_pay*1.5;131switch-case 多重條件選擇的語法switch(house)case L:printf(Luthern);break;case M:printf(Moodyn);break;default:printf(Unknownn);break;132switch-case多重條件選擇的流程圖case 常數 1noyes敘述 2敘述 1switch(運算式)case 常數 2default敘述 nyesyesbreaknobreakbreak133Ch6_7 (1/2)Ch6_7 輸入一個整數,並輸出所輸入的數除以輸入一個整數,並輸出所輸入的數除以5之餘數之餘數1#include2 main()3 int num;4 printf(Please input an integer:);5 scanf(%i,&num);6 switch(num%5)7 case 0:8 printf(%i可被5整除。n,num);9 break;10 case 1:11 printf(%i除以5的餘數為1。n,num);12 break;134Ch6_7 (2/2)15 case 2:16 printf(%i除以5的餘數為2。n,num);17 break;Please input an integer:5656除以5的餘數為118 case 3:19 printf(%i除以5的餘數為3。n,num);20 break;21 case 4:22 printf(%i除以5的餘數為4。n,num);23 break;24 25 135 goto敘述為無條件跳躍指令,不論處於何種狀況下都會將程式執行的控制權無條件地轉移到所指定的標籤處,然後繼續往下執行。語法一goto 標籤1;敘述 1;標籤1:敘述 2;語法二標籤2:敘述 1;goto 標籤2;敘述 2;goto敘述(不鼓勵使用)136Ch6_8 不鼓勵使用gotoCh6_8 計算從計算從1累加到累加到10的總和的總和1#include2 main()3 int i=1,sum=0;4 loop:5 sum+=i;6 i+;7 if(i=10)8 goto loop;9 printf(%i,sum);10 55137 當遇到continue敘述時,便直接回到迴路開始的地方,其下面的敘述將會被省略。continue敘述配合if條件,放在 for的迴路 while的迴路 do-while的迴路 語法for(起始運算式;條件運算式;累加運算式)if(condition)continue;continue敘述 138Ch6_9Ch6_9 計算計算sum=2+4+6+8+101#include2 main()3 int i,sum=0;4 for(i=1;i=10;i+)56 7 8 p
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业管理 > 销售管理


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!