Microsoft Word - C語言講義--完整版.doc

Size: px
Start display at page:

Download "Microsoft Word - C語言講義--完整版.doc"

Transcription

1 C 語言程式設計教學講義 陳佳杏製作 單元 1: 程式語言簡介...3 一 程式設計的流程... 3 二 程式語言的分類... 3 直譯器與編譯器的比較... 3 三 依程式設計的方式分類... 4 四 常見的高階程式語言... 4 單元 2: 認識 C 語言...5 一 歷史發展... 5 二 C 程式的開發環境... 5 三 繪製流程圖... 6 四 結構化程式設計... 6 單元 3: 變數與資料型態...7 一 變數與常數... 7 二 基本資料型態... 7 三 變數的命名原則... 7 四 資料型態轉換... 7 單元 4: 格式化的輸入與輸出...8 一 標準輸出指令... 8 二 跳脫字元 (Escape Sequence)... 8 三 修飾子... 8 四 格式化輸出 : 使用修飾子... 9 五 標準輸入指令... 9 單元 5: 運算子與運算式...10 一 基本運算子 二 其他常用的運算子...11 單元 6: 選擇敘述句...12 一 if 敘述 二 switch 敘述 補充 取亂數 單元 7: 迴圈敘述句...14 一 比較 for / while / dowhile 二 無窮迴圈 三 空迴圈 四 巢狀迴圈 五 迴圈的跳離 單元 8: 函式...16 一 為何要函式化? 二 函式 (Function) 定義的格式 三 函式原形 (Prototype)...16 四 函式的呼叫

2 五 遞迴函式 (Recursive Function) 六 儲存體類別 (Storage Classes) 七 範圍規則 (Scope) 應用練習 : 使用遞迴函式 單元 9: 前置處理器...19 一 #define 前置處理器 二 #include 前置處理器 單元 10: 陣列...20 一 一維陣列 二 二維陣列 三 陣列與函數 單元 11: 字串...22 一 字元陣列 二 字串的輸入 / 輸出函數 三 字串陣列 單元 12: 指標...24 一 指標變數 二 指標運算子 三 指標的運算 指標的簡潔運算式 四 指標與函數 五 指標與陣列的關係 六 指標陣列 比較 字串陣列 V.S. 指標陣列 七 雙重指標 指向指標的指標 八 動態配置記憶體 單元 13: 結構與其他資料形態...29 一 結構 (Structure) 二 巢狀結構 三 結構陣列 四 結構指標 五 結構與函數 六 自訂型態 (typedef) 單元 14: 檔案...32 一 檔案儲存在記憶體的形式 : 二 檔案存取模式...32 三 檔案處理函數 ( 有緩衝區 ) 四 命令列參數的使用 參考資料 : 1. C 語言教學手冊 ( 第二版 )/ 洪維恩編著 / 博碩文化 ( 民 90) 2. C 程式設計藝術 ( 第三版 )/ 吳國樑編譯 / 全華 ( 民 90) - 2 -

3 單元 1: 程式語言簡介 一 程式設計的流程 1. Defining the program: 定義問題 2. Planning the solution: 設計解決方案 ( 演算法 ) 3. Coding the program: 撰寫程式 4. Testing the program: 測試程式 5. Documenting the program: 撰寫程式發展文件 二 程式語言的分類 1. 機器語言 (Machine Language): 指硬體內部所使用的語言, 也是電腦唯一能直接辨識的語言, 通常是一連串的數字所組成 (0 或 1) 2. 組合語言 (Assembly Language): 最接近機器語言的一種低階語言, 屬於符號式語言 組合語言必須經由組譯器 (assembler) 轉換成機器語言, 才能在電腦上執行 3. 高階語言 (High-level Language): 又稱編譯語言, 其文法接近日常英文用語, 也包含一般常用的數學運算符號 高階語言的原始程式碼必須轉換為機器語言才能正確執行 轉換程式包含直譯器和編譯器兩種 4. 非常高階語言 (Very High-level Language): 又稱第四代語言, 如 SQL (Structual Quary Language, 結構化查詢語言 ) 5. 自然語言 (Natural Language) 直譯器與編譯器的比較 說明優缺例 直譯器 Interpreter 將原始程式的指令逐一翻譯並執行, 不需要經過編譯 佔用的記憶體較少 修改及除錯容易 每次執行前才翻譯, 執行速度慢 效率較低 BASIC HTML 編譯器 Compiler 將原始程式編譯後, 先產生目的檔 (.obj), 再將其他要連結的程式連結後, 再執行該程式 執行時不需要重複編譯, 執行速度及效率高 原始程式經過修改就必須重新編譯 較佔用記憶體空間 C/C++ COBOL PASCAL - 3 -

4 三 依程式設計的方式分類 1. 程序導向程式設計 (Procedure-Oriented Programming) 2. 物件導向程式設計 (Object-Oriented Programming) 如 :C++,Java,Visual BASIC 四 常見的高階程式語言語言 說明 應用 FORTRAN FORmula TRANslator (1954) 科學 COBOL COmmon Business-Oriented Language (1959) 商業 BASIC Beginner's All-purpose Symbolic Instruction Code 教育, 商業 Pascal named after French inventor Blaise Pascal (1971) 教育, 系統, 科學 Ada named after Ada, the Countess of Lovelace (1980) 軍事, 一般 C evolved from the language B, from Bell Labs (1972) 系統, 一般 - 4 -

5 單元 2: 認識 C 語言 一 歷史發展 C 語言是由美國貝爾實驗室 (Bell Laboratory) 的 Dennis Ritchie 在 1972 年所發展出來的 C 語言的前身是 B 語言, 原先用在 DEC PDP-11 電腦上 C 語言在各種平台上快速發展, 之後出了許多版本, 為了統一各版本, 美國國家標準局 (ANSI) 提出了一套標準, 並在 1989 年通過審查, 而在 1999 年則進行了修訂 二 C 程式的開發環境 C 程式在執行前經過六個階段 1. 編輯 : 使用者可利用文書編輯器 (editor) 撰寫或修改 C 程式碼 (source code) 2. 前置處理 : 前置處理器 (preprocessor) 會在開始編譯前自動執行, 依據程式碼中 # 所標示的指示 (preprocessor directives), 進行代換或插入等動作 例如 :#include <stdio.h> 告訴編譯器在未編譯程式之前, 先將程式庫中的標頭檔 stdio.h 插入該位置 3. 編譯 : 編譯器 (compiler) 將程式碼編譯為目的碼 (object code) 4. 連結 : 連結器 (linker) 將一個或多個目的檔 (.obj) 與靜態程式庫檔 (.lib) 連結, 產生可執行檔 (.exe) 5. 載入 : 載入器 (loader) 將可執行檔 (.exe) 載入記憶體, 並與動態程式庫檔 (.dll) 連結 動態程式庫可減少執行檔所佔的硬碟和記憶體空間 6. 執行 : 最後, 電腦在 CPU 的控制下, 開始執行所載入的程式 編輯 edit.c 前置處理編譯.obj 連結.exe preprocess compile link 載入 load 執行 execute 標頭檔.h 其他.obj.lib.dll - 5 -

6 三 繪製流程圖 開始 決策 預定函數的執行 設定 / 程序 結束 四 結構化程式設計 語法 循序性結構 (Sequence Structure) 選擇性結構 (Selection Structure) ifelse switchcase 重複性結構 (Iteration Structure) for while dowhile 開始 流程圖 敘述 1 敘述 2 true 判斷 false 敘述 2 敘述 1 判斷 敘述 2 false true 敘述 1 敘述 3 結束 - 6 -

7 單元 3: 變數與資料型態 一 變數與常數 變數 (variable) 是利用宣告的方式, 將記憶體中的某個區塊配置給此變數, 不管變數的值如何改變, 它會一直佔用相同的記憶體空間 例 :int i=3; float f=15.7; char ch='y'; 常數 (constant) 的值是固定的, 如整數常數 字元常數等 例 :const int max=65536; 二 基本資料型態 資料型態位元組範圍備註 char 字元 1 0~255 用來儲存英文字母及 ASCII 碼 int 整數 ~32767 可在 int 之前加上修飾詞 (qualifier), unsigned short long float 浮點數 4 1.2e-38~3.4e38 可用小數點及指數型態表示 double 倍精度浮點數 8 2.2e-308~1.8e308 可用小數點及指數型態表示 三 變數的命名原則 所有的變數必須在使用前宣告 命名原則如下 : 1. 不能使用關鍵字 2. 只有前 8 個字元為有效字元 3. 可使用英文字母 數字或底線 4. 變數名稱中間不可以有空白 5. 第一個字元不可為數字 6. 變數名稱要有意義, 且長短適中 7. 大小寫有別 四 資料型態轉換 1. 指派轉換 ( x = 100; ) 2. 算術轉換 ( y = i * / 23; ) 3. 模式轉換 ( i = (int) ( x ); ) 4. 函數轉換 ( x = sum (a, b); ) - 7 -

8 單元 4: 格式化的輸入與輸出 一 標準輸出指令 printf(" 格式字串 ", var1, var2, ); 二 跳脫字元 (Escape Sequence) \n 換行 \" 雙引號 \x ASCII 碼 (16 進位 ) \f 換頁 \' 單引號 \d ASCII 碼 (8 進位 ) \t 跳格 \/ 斜線 \b 倒退 \\ 反斜線 例子 printf("\tthis line begins with tab.\n"); printf("it\'s a \"C Tutorial\".\n"); printf("this is backslash: \\.\n"); printf("\\101 is \101.\n"); printf("\\x41 is \x41.\n"); 執行結果 This line begins with tab. It's a "C Tutorial". This is backslash: \. \101 is A. \x41 is A. 三 修飾子 -: 向左靠齊 +: 印出正負號 %c: 字元 %s: 字串 %d: 十進位整數 %f: 浮點數 ( 小數點型式 ) %l: 長整數, 加在 d u 之前 %u: 無號十進位整數 %e: 浮點數 ( 指數 e 型式 ) - 8 -

9 四 格式化輸出 : 使用修飾子 資料 格式 結果 %10d %+d %-10d % d %010d %7.2f %010.3f %+10.4f 五 標準輸入指令 scanf(" 格式化字串 ", &var1, &var2, ); 1. & 是位址運算子 2. 字元陣列不需要加上 & 位址運算子 輸入格式 %d: 十進位整數 int %f: 浮點數 float, double %c: 字元 char %s: 字串 字元陣列 例子 int num1, num2; printf("enter 2 numbers: "); scanf("%d,%d",&num1,&num2); 結果執行畫面 : Enter 2 numbers: 輸入值格式 : 103,

10 單元 5: 運算子與運算式 一 基本運算子 1. 算數運算子 運算子 意義 int a=9,b=4 運算結果 + 加法 a+b 13 - 減法 a-b 5 * 乘法 a*b 36 / 除法 a/b 2 % 取餘數 a%b 1 運算子 原式 簡潔運算式 += a=a+b a+=b -+ a=a-b a-=b *= a=a*b a*=b /= a=a/b a/=b %= a=a%b a%=b 2. 關係運算子 運算子 意義 例子 運算結果 > 大於 2>3 false >= 大於等於 2>=3 false < 小於 2<3 true <= 小於等於 2<=3 true == 等於 2==3 false!= 不等於 2!=3 true 3. 邏輯運算子 運算子 && 意義 AND, 且 a b a&&b a b OR, 或! NOT, 否

11 二 其他常用的運算子 1. 遞增 / 減運算子 運算子 意義 int i=3; int a; 運算結果 i a ++ 變數值加 1 i 變數值減 1 i-- 2 a = i a = ++i 4 4 a = i a = --I 2 2 i++: 先執行整個敘述後, 再將 i 的值加 1 ++i: 先將 i 的值加 1, 再執行整個敘述 2. 條件運算子 運算子 (?:) 條件判斷? 運算式 1 : 運算式 2 if( 判斷條件 ) 運算式 1; else 運算式 2; 意義 實例 a = (x > 100)? b : c; abs = (a > 0)? a : -a; if (x > 100) a = b; else a = c; if (a > 0) abs = a; else abs = -a;

12 單元 6: 選擇敘述句 一 if 敘述 if 敘述 ifelse 巢狀 if ifelse ifelse if ( 判斷條件 ) 敘述 ; if ( 判斷條件 ) 敘述 1; 敘述 n; if ( 判斷條件 ) 敘述 1; else 敘述 2; if ( 判斷條件 ) 敘述主體 1; else 敘述主體 2; if ( 判斷條件 1) 敘述主體 1; if ( 判斷條件 2) 敘述主體 2; if ( 判斷條件 ) 敘述主體 1; else if ( 判斷條件 ) 敘述主體 2; else 敘述主體 n; 二 switch 敘述 switch ( 運算式 ) case 選擇值 1: 敘述主體 1; break; case 選擇值 2: 敘述主體 2; break; case 選擇值 n: 敘述主體 n; break; default: 敘述主體 ; 注意 : 1. 選擇值只能是 字元 或 常數 2. break 用於跳離 switch 區塊 3. 當選擇值皆不成立時預設處理程序放在 default 裡頭

13 隨堂練習 1. 輸入三個整數 a b c, 印出此三數的最大值 最小值 總和及平均值 2. 輸入兩整數的四則運算式 (a+b, a-b, a*b, a/b, a%b), 印出其計算結果 3. 利用 switch 敘述, 將輸入的成績 ( 分數 ) 以下列方式分級 90~100: A 級 80~89: B 級 70~79: C 級 60~69: D 級 0~59: E 級 補充 取亂數 #include <stdlib.h> #include <time.h> srand((unsigned)time(null)); /* 函數 srand(): 下亂數種子 */ int num = a + rand() % b; /* 函數 rand(): 取亂數 */ a: 起始值 b: 亂數個數 實例 : (1) 數字 0~9 的亂數取法 :rand() % 10 (2) 骰子點數 1~6 的亂數取法 :1 + rand() % 6 (3) 整數 18~32 的亂數取法 :18 + rand() % 15 (4) 五位數的亂數取法 : rand() % 練習題 1. 數字加密 : 亂數產生四位數, 將每個位數的數字加 7 後除以 10 取餘數, 然後第一個數字和第三數字對調, 第二個數字和第四個數字對調 最後印出加密過的數 2. 數字解密 : 根據上題, 讀入加密過的數字, 然後解密為原來的四位數

14 單元 7: 迴圈敘述句 一 比較 for / while / dowhile for 敘述 while 敘述 dowhile 敘述 for ( 初值 ; 判斷條件 ; 增減量 ) 敘述 1; 敘述 2; 敘述 n; 設初值 ; while ( 判斷條件 ) 敘述 1; 敘述 2; 敘述 n; 設增減量 ; 設初值 do 敘述 1; 敘述 2; 敘述 n; 設增減量 ; while ( 判斷條件 ); for (i=1,sum=0;i<=9;i+=2) sum += i; printf("i=%d\n", i); printf("sum=%d\n",sum); printf("\n"); 實例 i=1; sum=0; while(i<=9) sum += i; printf("i=%d\n", i); printf("sum=%d\n",sum); printf("\n"); i += 2; i=1; sum=0; do sum += i; printf("i=%d\n", i); printf("sum=%d\n",sum); printf("\n"); i += 2; while (i<=9); 二 無窮迴圈 while (1) 敘述主體 ; 三 空迴圈 for ( 設初值 ; 判斷條件 ; 設增減量 ) 或 for ( 設初值 ; 判斷條件 ; 設增減量 ) ;

15 四 巢狀迴圈 for 之巢狀迴圈 for ( 初值 1; 條件 1; 增減量 1) for ( 初值 2; 條件 2; 增減量 2) 初值 1; while ( 條件 1) while 之巢狀迴圈 初值 2; while ( 條件 2) 增減量 2; 增減量 1; 五 迴圈的跳離 break( 跳出迴圈 ) continue( 回到迴圈開始處 ) for ( 設初值 ; 判斷條件 ; 設增減量 ) 敘述 1; 敘述 2; break; 敘述 n; for ( 設初值 ; 判斷條件 ; 設增減量 ) 敘述 1; 敘述 2; continue; 敘述 n; 備註 : 在 while / do while 迴圈中的用法相同 隨堂練習 1. 輸入正整數 n (1) 求 n 的值 (2) 求 1 * 2 * * n 的值 (3) 求 1! + 2! + + n! 的值 2. 輸入大於 2 的正整數 n (1) 求小於等於 n 的所有質數 (2) 求小於 n 的所有質因數

16 單元 8: 函式 一 為何要函式化? 1. 使程式發展容易管理 2. 軟體再使用 ( 抽象化的技術, abstraction) 3. 避免重複撰寫相同的程式碼 二 函式 (Function) 定義的格式 回傳值型態函式名稱 ( 參數列 ) 變數宣告 ; 陳述句 ; return 回傳值 ; int sum(int a, int b) int num; num = a + b; return num; 三 函式原形 (Prototype) 編譯器利用函式原形來驗證函式的呼叫, 函式原形通常置於 main() 函式外, 或是標頭檔內 函式原形的另一個功能是引數型態的強制轉換 傳回值型態函式名稱 ( 引數型態 ); int sum(int, int); 或 int sum(int a, int b); 標頭檔 (Header File,.h) 含有函式原形, 以及這些函式所需的各種 資料型態 和 常數 的定義 我們可以撰寫自己的標頭檔, 以.h 為附檔名 在原始程式檔中, 以 #include 將標頭檔含括進來 四 函式的呼叫 1. 傳值呼叫 (call by value): 將引數 值 拷貝一份傳給函式, 不會影響原來的變數值 2. 傳參考呼叫 (call by reference): 將引數的 位址 傳給函式, 會影響原來的變數值 五 遞迴函式 (Recursive Function) 1. 自己呼叫自己, 注意終止條件的設定 2. 用到大量的堆疊 (stack) 空間, 容易造成記憶體不足 3. 可以改寫成迴圈形式

17 六 儲存體類別 (Storage Classes) 佔用期間類別說明 動態 靜態 自動變數 auto 暫存器變數 register 靜態變數 static 外部變數 extern auto 變數是在程式控制進入 所宣告的區塊 時才被產生出來, 一離開此區塊, 就會從記憶體中消失了 區域變數 內定為自動變數例 :auto float x,y; 宣告成 register 的變數會放到硬體暫存器中, 減少運算時從記憶體載入的負擔 register 變數只能用在 自動變數 上例 :register int counter = 1; static 變數從程式開始執行時便配置好儲存體, 並設定初值 ( 數值預設為 0, 指標預設為 NULL) static 變數包含 內部靜態變數 與 外部靜態變數 例 :static int count = 1; 外部變數包含 全域變數 和 函式名稱 外部變數也屬於靜態變數, 在程式開始執行時便佔有記憶體空間 七 範圍規則 (Scope) 分類說明包含 檔案範圍 區塊範圍 函式範圍 可在整個檔案中使用 可在區塊內使用, 也就是 包起來的範圍 只能在函式範圍內使用 1. 全域變數 (Global Variable) 2. 函式定義 3. 函式原形 1. 區域變數 (Local Variable) 2. 巢狀區塊中的變數 3. 函式的參數 標名 : 1. goto 陳述句的標名 2. switch 結構的 case 函式原形範圍 函式原形參數列中的識別字

18 應用練習 : 使用遞迴函式 1. 費氏數列 (Fibonacci): 費氏數列中第 n 項的值等於前兩項的合, 如 設 f(n) 表示第 n 項, 根據定義 :f(n) = f(n-1) + f(n-2) 請利用遞迴函數, 求出 f(n) int f(int n) if (n==1 n==2) return 1; else return f(n-1)+f(n-2); 2. 河內塔 (Hanoi) 問題 : 有三根柱子和 n 個大小不同的環 ( 如圖 ) 欲將 n 個環由 A 柱移到 B 柱上, 移動規則如下 : (1) 一次只能移動一個環 (2) 在搬移的過程中, 大環不能壓住小環 問 : 最少移動次數及搬移過程為何? void hanoi(int n, int src, int dst, int tmp) if (n==1) printf( %d %d\n, src, dst); else hanoi(n-1, src, tmp, dst); printf( %d ( %d\n, src, dst); hanoi(n-1, tmp, dst, src); [ 輸出畫面 ] Input:(n,A,B)=(3,1,3) Output: 移動次數 :7-18 -

19 單元 9: 前置處理器 一 #define 前置處理器 1. 增加程式的易讀性 2. 簡化修改常數或字串內容時的複雜度 3. 增加程式執行效率 4. 巨集 (Macro) 的使用可取代簡單的函數 #define MAX #define WORD "This is a test!" #define AREA(w, h) ((w)*(h)) #define POWER(i) (i)*(i)*(i) int main() printf("%d \n", MAX); printf(word); printf("area = %d \n", AREA(5, 3)); printf("%d * %d * %d = %d \n", i+1, i+1, i+1, POWER(i+1)); 二 #include 前置處理器 將標頭檔 (.h) 含括進程式中 使用說明用法 < > 到系統設定的目錄尋找該檔案如 :C:\Dev-C++\Include\ #include <stdio.h> " " 依指定的目錄尋找該標頭檔 #include "D:\myprog\area.h"

20 單元 10: 陣列 一 一維陣列 宣告格式 : 型態陣列名稱 [ 個數 ]; int score[10] = 80,90,95,75,100,80,85,95,90,60; 範例 陣列裡的 10 個元素 score score[0] score[9] 陣列名稱 每個元素佔一個 int 型態大小 (4 bytes) sizeof(score) 4 * 10 = 40 bytes 初值設定方式 : int data[5] = 1; /* 將所有元素值都設為 1 */ int num[] = 60,75,48,92; /* 依照初值設定的個數決定陣列的大小 */ int student[10] = 1,2,3,4,5; /* 初值個數少於宣告元素個數時, 剩餘空間填 0 */ 二 二維陣列 宣告格式 : 型態陣列名稱 [ 列數 ][ 行數 ]; int sale[2][4] = 10,20,30,40, 50,60,70,80; 範例 2 列 4 行 sale[0][0] 10 sale[0][1] 20 sale[1][0] 50 sale[1][1] 60 陣列中的元素個數 2*4=8 sizeof(sale) 4*(2*4)=32bytes

21 初值設定方式 : int temp[][4] = 1,2,3,4, /* 未定長度之二維陣列的初值設定 */ 5,6,7,8, 9,10,11,12 ; 多維陣列的宣告和初值設定方式依此類推 三 陣列與函數 陣列可以當作引數傳遞到函數中, 此時函數接收到的是陣列的 位址, 而非陣列的值 事實上, 傳遞至函數中的也就是指向陣列位址的指標 (Pointer) #include <stdio.h> #define SIZE 5 範例 void print_matrix(int A[]); /* 函式原型 */ int main(void) int data[size] = 23,25,28,29,27; printf_matrix(data); return 0; void print_matrix(int A[]) int i; for (i=0; i<size; i++) printf("%d ", A[i]); printf("\n"); return; Memory In main() data FDB In print_matrix() A 為指標常數 0253FDB8-21 -

22 單元 11: 字串 一 字元陣列 在 C 語言中並沒有字串的資料型態, 要使用字串變數, 就要宣告 字元陣列 字串常數儲存在記憶體時, 在最後面會加上字串結束字元 \0 做結尾 宣告格式 : char 字元陣列名稱 [ 字串長度 ]; char name[15] = "David Chen"; 範例 name D a v i d C h e n \0 比較下列三種宣告 : 宣告 說明 char a[] = "My friend"; sizeof(a) 9 個字元 + 字串結束字元 \0 = 10 bytes char b = c ; sizeof(b) 1 個字元 = 1 byte char str[] = "c"; sizeof(str) 1 個字元 + 加上字串結束字元 \0 = 2 bytes 二 字串的輸入 / 輸出函數 (1) (2) 語法 scanf("%s", 字元陣列名稱 ); printf("%s", 字元陣列名稱 ); gets( 字元陣列名稱 ); puts( 字元陣列名稱 );

23 說明範例 scanf() 讀到 Enter 或空白時就結束讀取動作, 同時在字串結尾處加上 \0 #include <stdio.h> int main(void) char name[15]; printf("what s your name?\n"); scanf("%s", name); printf("hi! %s How are you?\n", name); return 0; 1. gets() 在讀到 Enter 時才結束讀取動作, 並在字串結尾處加上 \0 2. puts() 會將 \0 轉換成換行字元, 在輸出字串時會自動換行 #include <stdio.h> int main(void) char name[15]; puts("what s your name?"); gets(name); puts("hi! "); puts(name); puts(" How are you?"); return 0; 三 字串陣列 宣告格式 : char 字元陣列名稱 [ 陣列大小 ][ 字串長度 ]; char name[3][10] = "David", "Jane Wang", "Tom Lee"; 範例 name[0] 0253FDB8 D a v i d \0 name[1] 0253FDC2 J a n e W a n g \0 name[2] 0253FDCC T o m L e e \0 name[0] 與 name[1] 相差 10 bytes name[1] 與 name[2] 相差 10 bytes 常用的字串處理函數放在 string.h 中, 請參見附錄 D-10 頁

24 單元 12: 指標 一 指標變數 指標 (Pointer) 是一種特殊的變數, 用來存放變數在記憶體中的位址 在 Dev C++ 中, 無論指標指向何種資料型態, 指標變數本身均佔有 4 個位元組 (bytes) 指標變數 存放變數位址 0253FDD0 變數 存放變數 ex:15 宣告格式 : 型態 * 指標變數 ; 0253FDD0 int *ptri; /* 整數型態之指標變數 */ char *ptrch; /* 字元型態之指標變數 */ 範例 sizeof(ptri) 4 bytes sizeof(ptrch) 4 bytes 二 指標運算子 1. 位址運算子 &: 用來取得變數或陣列元素在記憶體中的位址 2. 依址取值運算子 *: 用來取得指標所指向的記憶體位址的內容 int a = 10, b; int *p; 範例 p = &a; b = *p; *p = 20; 結果 :a = 20, b =

25 三 指標的運算 1. 設定運算 : 將等號右邊的值設定給左邊的指標變數 2. 加 / 減法運算 : 針對各個資料型態的長度來處理位址的加減法運算 3. 差值運算 : 計算兩個指標之間的距離, 其單位為資料型態的長度 int a=10, b=20; int *p1, *p2; char ch='a', *pch; 範例 /* 設定運算 */ p1 = &a; /* 將 a 的位址存放於 p1 */ p2 = &b; /* 將 b 的位址存放於 p2 */ pch = &ch; /* 將 ch 的位址存放於 pch */ /* 加減法運算 */ p1++; /* 將 p1 中的位址值加上 4 bytes (int 型態的大小 ) */ pch--; /* 將 pch 中的位址值減去 1 byte (char 型態的大小 ) */ /* 差值運算 */ sub = p1 p2; /* 計算 p1 和 p2 相差的距離 ( 以 int 為單位的距離 ) */ 指標的簡潔運算式 int X; int A[5] = 10,20,30,40,50; int *p = A + 2; 運算式同義所執行的敘述及順序 X = *(p++); X = *(++p); X = (*p)++; X = ++(*p); X = *(p--); X = *(--p); X = (*p)--; X = --(*p); X = *p++; X = *++p; X = *p--; X = *--p; X = *p; p = p + 1; p = p + 1; X = *p; X = *p; *p = *p + 1; *p = *p + 1; X = *p; X = *p; p = p - 1; p = p - 1; X = *p; X = *p; *p = *p - 1; *p = *p - 1; X = *p; 執行後 X *p

26 四 指標與函數函數的 return 敘述只能有一個回傳值, 當程式需要傳遞兩個以上的值時, 可以利用指標解決在函數間傳遞多個回傳值的問題 其做法是將指標當作引數傳入函數中, 由於指標內的值是所指向變數的位址, 因此不須經過 return 敘述即可更改變數的值 void swap(int *, int *); /* 函數原型, 參數為兩個整數型態的指標變數 */ int main(void) int a=3, b=5; swap(&a, &b); /* 傳遞 a 和 b 的位址 */ return 0; void swap(int *x, int *y) /* 此函數用來交換 x y 所指向的變數之值 */ int temp = *x; *x = *y; *y = temp; 範例 五 指標與陣列的關係 陣列可看成是指標的分身, 陣列元素的排列可利用指標運算來存取 int a[3] = 5,7,9; 指標的指向陣列註標陣列內容記憶體位址陣列元素位址指標的移位 *(a+0) a[0] FDC8 &a[0] a+0 *(a+1) a[1] FDCC &a[1] a+1 *(a+2) a[2] FDD0 &a[2] a+2 兩種表示法同義 兩種表示法同義 注意 : 陣列 a 以指標的方式表示時,a 會被視為指標常數, 所以不可寫成 a

27 六 指標陣列陣列中存放的變數為指標變數, 即為指標陣列 宣告格式 : 型態 * 陣列名稱 [ 個數 ]; int i=10,j=28,k=34; int* a[3]; a[0] = &j; a[1] = &k; a[2] = &i; a[0] i 10 a[1] j 28 a[2] k 34 比較 字串陣列 V.S. 指標陣列 (1) 字串陣列 :char name[3][10] = "David", "Jane Wang", "Tom Lee"; name[0] D a v i d \0 name[1] J a n e W a n g \0 name[2] T o m L e e \0 (2) 指標陣列 :char *name[3] = David, Jane Wang, Tom Lee ; name[0] D a v i d \0 name[1] J a n e W a n g \0 name[2] T o m L e e \0 利用指標陣列可節省浪費的記憶體空間 七 雙重指標 指向指標的指標指標變數中若是存放另一個指標變數的位址, 這種指向指標的指標稱為雙重指標 宣告格式 : 型態 ** 指標變數 ; 雙重指標變數指標變數變數 存放指標位址 0253FDA4 存放變數位址 0253FDD0 0253FDA4 存放變數 ex: FDD0-27 -

28 八 動態配置記憶體 int n=5; int* p; p = (int*) malloc( n * sizeof(int) ); n 5 p 0x02E0 0x02E0 0x02E4 0x02E8 0x02EC 0x02F0 一維配置 配置 n 個 int int row=3,col=5,i; int** array; array = (int**) malloc(row * sizeof(int*)); for (i=0; i<row; i++) array[i] = (int*) malloc(col * sizeof(int)); 二維配置 row 3 col 5 i array 0x02A0 0x1A30 0x1A34 0x1A38 0x1A3C 0x1A40 配置 col 個 int array[0] 0x1A30 0x02A0 array[1] 0x2D70 0x02A4 array[2] 0xBDA0 0x02A8 配置 row 個 int* ( 指向 int 的指標變數 ) 0x2D70 0x2D74 0x2D78 0x2D7C 0x2D80 配置 col 個 int 0xBDA0 0xBDA4 0xBDA8 0xBDAC 0xBDB0 配置 col 個 int

29 單元 13: 結構與其他資料形態 一 結構 (Structure) 格式 : struct 結構名稱 資料型態欄位名稱 1; 資料型態欄位名稱 2; ; 結構的宣告及使用範例 struct mydata /* 結構名稱 */ char name[15]; /* 欄位 */ int score; /* 欄位 */ ; /* 宣告結構變數並設定初值 */ struct mydata teacher = "Apric",90; struct mydata /* 結構名稱 */ char name[15]; /* 欄位 */ int score; /* 欄位 */ teacher = "Apric",90; /* 宣告結構變數並設定初值 */ #include <stdio.h> /* 公用的結構通常定義為外部變數的型式 */ int main(void) sturct mydata student; /* 宣告結構變數 */ printf("name: "); scanf("%s", student.name); printf("score: "); scanf("%d", &student.score); printf("%s got %d points! \n", student.name, student.score); return 0; 二 巢狀結構 struct date /* 結構名稱 */ int month; int day; ; 範例

30 struct newdata /* 結構名稱 */ char name[15]; struct date birthday; /* 結構變數 */ int score; ; int main(void) struct newdata student = "Apric", 7, 10, 90; printf("%s's birthday is %d/%d \n", student.name, student.birthday.month, student.birthday.day); printf("he/she got %d points! \n", student.score); return 0; 三 結構陣列 struct mydata student[10]; 範例 for(i=0; i<10; i++) printf("%s got %d points! \n", student[i].name, student[i].score); 四 結構指標 範例 struct mydata student[10]; /* 結構陣列 */ struct mydata *ptr = student; /* 結構指標, 初值為 student 陣列的起始位址 */ for (i=0;i<10;i++) printf("name, Score:"); scanf("%s, %d", (student+i) name, &(student+i) score); printf("%s got %d points!\n", ptr name, ptr score); ptr++; 五 結構與函數 void get_data(struct mydata *p); /* 函式原型, 參數為結構指標 */ void print_data(struct mydata a); /* 函式原型, 參數為結構變數 */ 範例 int main(void) struct mydata student;

31 get_data(&student); print_data(student); return 0; void get_data(struct mydata *p) printf("name:"); scanf("%s", p name); printf("score:"); scanf("%d", &p score); void print_data(struct mydata a) printf("%s got %d!\n", a.name, a.score); return; 六 自訂型態 (typedef) 格式 : typedef 資料型態識別字 ; 由編譯器執行 typedef #define 由前置處理器主導 typedef int clock; clock hour, second; #define CLOCK int CLOCK hour, second; 利用 typedef 自訂新的結構型態 : typedef struct int minite; float second; time; time record = 3, 27.25;

32 單元 14: 檔案 一 檔案儲存在記憶體的形式 : 類型儲存方式儲存單位檔案大小檔案類型 文字檔 text file 以 ASCII 碼儲存 每個字元皆佔有 1 個位元組, 如數值 為 6 個字元 較大 ( 資料相同時 ) 文字資料 二進位檔 binary file 以二進位的格式儲存 以資料型態的長度為儲存單位, 如整數 在 Dev C++ 中佔有 4 個位元組 較小 ( 資料相同時 ) 圖形檔 聲音檔 影像檔 二 檔案存取模式 代碼 r w a 存取模式讀取舊檔覆寫新舊檔附加新舊檔 r+ 讀取 覆寫舊檔 w+ 讀取 覆寫新舊檔 a+ 讀取 附加新舊檔 rb wb ab 讀取二進位檔 覆寫二進位檔 附加二進位檔

33 三 檔案處理函數 ( 有緩衝區 ) 變數宣告 : FILE *file; char ch; char buffer[128]; 名稱功能使用範例 fopen 開檔 file = fopen( C:\abc.txt, r ); fclose 關檔 fclose(file); getc 讀取字元 ch = getc(file); putc 寫入字元 putc(ch, file); fgets 讀取字串 fget(buffer, 128, file); fputs 寫入字串 fputs(buffer, file); fprintf 格式化輸出 fprintf(file, %c \n, ch); fscanf 格式化輸入 fscanf(file, %c, &ch); fread 區塊輸入 fread(buffer, sizeof(char), 128, file); fwrite 區塊輸出 fwrite(buffer, sizeof(char), 128, file); feof ferror 檢查是否結束 檢查錯誤 while(!feof(file) ) ch = getc(file); if ( ferror(file) ) printf( error ); fseek 移動檔案指標位置 fseek(file, 128, SEEK_SET); 函數的格式說明請參見課本 12-7,

34 四 命令列參數的使用 語法 main(argc, argv) int argc; char *argv[];... main(int argc, char* argv[])... 參數說明 1. argc (argument count): 記錄參數個數 2. argv (argument value): 記錄參數值 argv[0] 記錄程式名稱, 後面接續的參數依序指定給 argv[1] argv[2]... 命令範例 type 123 abc.txt argc = 3; argv[0] = type ( 程式名稱 ) argv[1] = 123 argv[2] = abc.txt 程式範例 #include <stdio.h> int main (int argc, char* argv[]) int i; printf( The value of argc is %d \n, argc); for(i=0; i<argc; i++) printf( argv[%d]=%s \n, i, argv[i]); return 0;

C/C++ - 文件IO

C/C++ - 文件IO C/C++ IO Table of contents 1. 2. 3. 4. 1 C ASCII ASCII ASCII 2 10000 00100111 00010000 31H, 30H, 30H, 30H, 30H 1, 0, 0, 0, 0 ASCII 3 4 5 UNIX ANSI C 5 FILE FILE 6 stdio.h typedef struct { int level ;

More information

CC213

CC213 : (Ken-Yi Lee), E-mail: feis.tw@gmail.com 49 [P.51] C/C++ [P.52] [P.53] [P.55] (int) [P.57] (float/double) [P.58] printf scanf [P.59] [P.61] ( / ) [P.62] (char) [P.65] : +-*/% [P.67] : = [P.68] : ,

More information

CC213

CC213 : (Ken-Yi Lee), E-mail: feis.tw@gmail.com 9 [P.11] : Dev C++ [P.12] : http://c.feis.tw [P.13] [P.14] [P.15] [P.17] [P.23] Dev C++ [P.24] [P.27] [P.34] C / C++ [P.35] 10 C / C++ C C++ C C++ C++ C ( ) C++

More information

FY.DOC

FY.DOC 高 职 高 专 21 世 纪 规 划 教 材 C++ 程 序 设 计 邓 振 杰 主 编 贾 振 华 孟 庆 敏 副 主 编 人 民 邮 电 出 版 社 内 容 提 要 本 书 系 统 地 介 绍 C++ 语 言 的 基 本 概 念 基 本 语 法 和 编 程 方 法, 深 入 浅 出 地 讲 述 C++ 语 言 面 向 对 象 的 重 要 特 征 : 类 和 对 象 抽 象 封 装 继 承 等 主

More information

C

C C 14 2017 5 31 1. 2. 3. 4. 5. 2/101 C 1. ( ) 4/101 C C ASCII ASCII ASCII 5/101 C 10000 00100111 00010000 ASCII 10000 31H 30H 30H 30H 30H 1 0 0 0 0 0 ASCII 6/101 C 7/101 C ( ) ( ) 8/101 C UNIX ANSI C 9/101

More information

新・明解C言語入門編『索引』

新・明解C言語入門編『索引』 !... 75!=... 48 "... 234 " "... 9, 84, 240 #define... 118, 213 #include... 148 %... 23 %... 23, 24 %%... 23 %d... 4 %f... 29 %ld... 177 %lf... 31 %lu... 177 %o... 196 %p... 262 %s... 242, 244 %u... 177

More information

C++ 程式設計

C++ 程式設計 C C 料, 數, - 列 串 理 列 main 數串列 什 pointer) 數, 數, 數 數 省 不 不, 數 (1) 數, 不 數 * 料 * 數 int *int_ptr; char *ch_ptr; float *float_ptr; double *double_ptr; 數 (2) int i=3; int *ptr; ptr=&i; 1000 1012 ptr 數, 數 1004

More information

_汪_文前新ok[3.1].doc

_汪_文前新ok[3.1].doc 普 通 高 校 本 科 计 算 机 专 业 特 色 教 材 精 选 四 川 大 学 计 算 机 学 院 国 家 示 范 性 软 件 学 院 精 品 课 程 基 金 青 年 基 金 资 助 项 目 C 语 言 程 序 设 计 (C99 版 ) 陈 良 银 游 洪 跃 李 旭 伟 主 编 李 志 蜀 唐 宁 九 李 涛 主 审 清 华 大 学 出 版 社 北 京 i 内 容 简 介 本 教 材 面 向

More information

nooog

nooog C : : : , C C,,, C, C,, C ( ), ( ) C,,, ;,, ; C,,, ;, ;, ;, ;,,,, ;,,, ; : 1 9, 2 3, 4, 5, 6 10 11, 7 8, 12 13,,,,, 2008 1 1 (1 ) 1.1 (1 ) 1.1.1 ( ) 1.1.2 ( ) 1.1.3 ( ) 1.1.4 ( ) 1.1.5 ( ) 1.2 ( ) 1.2.1

More information

epub 33-8

epub 33-8 8 1) 2) 3) A S C I I 4 C I / O I / 8.1 8.1.1 1. ANSI C F I L E s t d i o. h typedef struct i n t _ f d ; i n t _ c l e f t ; i n t _ m o d e ; c h a r *_ n e x t ; char *_buff; /* /* /* /* /* 1 5 4 C FILE

More information

C 1

C 1 C homepage: xpzhangme 2018 5 30 C 1 C min(x, y) double C // min c # include # include double min ( double x, double y); int main ( int argc, char * argv []) { double x, y; if( argc!=

More information

( CIP) /. :, ( ) ISBN TP CIP ( 2005) : : : : * : : 174 ( A ) : : ( 023) : ( 023)

( CIP) /. :, ( ) ISBN TP CIP ( 2005) : : : : * : : 174 ( A ) : : ( 023) : ( 023) ( CIP) /. :, 2005. 2 ( ) ISBN 7-5624-3339-9.......... TP311. 1 CIP ( 2005) 011794 : : : : * : : 174 ( A ) :400030 : ( 023) 65102378 65105781 : ( 023) 65103686 65105565 : http: / /www. cqup. com. cn : fxk@cqup.

More information

untitled

untitled A, 3+A printf( ABCDEF ) 3+ printf( ABCDEF ) 2.1 C++ main main main) * ( ) ( ) [ ].* ->* ()[] [][] ** *& char (f)(int); ( ) (f) (f) f (int) f int char f char f(int) (f) char (*f)(int); (*f) (int) (

More information

untitled

untitled 不 料 料 例 : ( 料 ) 串 度 8 年 數 串 度 4 串 度 數 數 9- ( ) 利 數 struct { ; ; 數 struct 數 ; 9-2 數 利 數 C struct 數 ; C++ 數 ; struct 省略 9-3 例 ( 料 例 ) struct people{ char name[]; int age; char address[4]; char phone[]; int

More information

Microsoft PowerPoint - C-Ch10.ppt

Microsoft PowerPoint - C-Ch10.ppt 了解陣列元素的位址 陣列 指標的應用 10-1 陣列與指標的關係 可以使用位址運算子 (&) 來查詢陣列中各個元素的位址 &test[0] 這行表示陣列最前面元素的位址 &test[1] 這行表示陣列第二個元素的位址 關於陣列名稱的機制 陣列名稱可以表示陣列最前面元素的位址 #include int main(void) int test[5] = 80,60,55,22,75;

More information

Microsoft PowerPoint - Class5.pptx

Microsoft PowerPoint - Class5.pptx C++ 程式初探 V 2015 暑期 ver. 1.0.1 C++ 程式語言 大綱 1. 大量檔案讀取 & 計算 2. 指標 3. 動態記憶體 & 動態陣列 4. 標準函式庫 (STL) vector, algorithm 5. 結構與類別 2 大量檔案讀取 & 計算 若目前有一個程式將讀取純文字文件 (.txt) 中的整數, 並將該文件中的整數有小到大排序後, 儲存到另外一個新的純文字件中 假設有

More information

Microsoft PowerPoint - C-Ch12.ppt

Microsoft PowerPoint - C-Ch12.ppt 檔案的輸入 輸出 12-1 輸入 輸出的基礎 理解資料流 (stream) 的概念 在 C 語言中支援各種輸出入功能的概念, 就稱為資料流 執行附加格式的輸入 輸出 printf() 和 scanf() 是用來輸出 輸入的函數 必須先引入 stdio.h 檔案才能使用這些函數 這兩個函數會以固定的格式進行輸出入, 也可以使用各種不同的轉換規格 使用固定格式的輸出 輸入函數之範例 : int main(void)

More information

C/C++程序设计 - 字符串与格式化输入/输出

C/C++程序设计 - 字符串与格式化输入/输出 C/C++ / Table of contents 1. 2. 3. 4. 1 i # include # include // density of human body : 1. 04 e3 kg / m ^3 # define DENSITY 1. 04 e3 int main ( void ) { float weight, volume ; int

More information

Microsoft PowerPoint - STU_C_Lang_CH13.ppt

Microsoft PowerPoint - STU_C_Lang_CH13.ppt 第 13 章 動態配置記憶體 程式設計與生活 - 使用 C 語言 Shi-Huang Chen Spring 2013 第 13 章 動態配置記憶體 13-1 記憶體配置函式 malloc( ) 13-2 動態配置結構陣列 配置記憶體 預估需求數量的範圍是一項不容易的學問 例 : 大到預估今年國家預算, 小到預估櫥窗裡展示的毛線衣, 需要多少磅毛線才能織成 撰寫程式時, 一樣無法預估程式執行所需的記憶體空間

More information

C C

C C C C 2017 3 8 1. 2. 3. 4. char 5. 2/101 C 1. 3/101 C C = 5 (F 32). 9 F C 4/101 C 1 // fal2cel.c: Convert Fah temperature to Cel temperature 2 #include 3 int main(void) 4 { 5 float fah, cel; 6 printf("please

More information

Microsoft PowerPoint - 20-string-s.pptx

Microsoft PowerPoint - 20-string-s.pptx String 1 String/ 1.: char s1[10]; char *s2; char s3[] = "Chan Tai Man"; char s4[20] = "Chan Siu Ming"; char s5[]={'h','e','l','l','o','\0'; 0 1 2 3 4 5 6 7 8 9 10 11 12 s3 C h a n T a i \0 M a n \0 printf

More information

c_cpp

c_cpp C C++ C C++ C++ (object oriented) C C++.cpp C C++ C C++ : for (int i=0;i

More information

第 15 章 程 式 編 写 語 言 15.1 程 式 編 写 語 言 的 角 色 程 式 編 寫 語 言 是 程 式 編 寫 員 與 電 腦 溝 通 的 界 面 語 法 是 一 組 規 則 讓 程 式 編 寫 員 將 字 詞 集 合 起 來 電 腦 是 處 理 位 元 和 字 節 的 機 器, 與

第 15 章 程 式 編 写 語 言 15.1 程 式 編 写 語 言 的 角 色 程 式 編 寫 語 言 是 程 式 編 寫 員 與 電 腦 溝 通 的 界 面 語 法 是 一 組 規 則 讓 程 式 編 寫 員 將 字 詞 集 合 起 來 電 腦 是 處 理 位 元 和 字 節 的 機 器, 與 程 式 編 写 語 言 在 完 成 這 章 後, 你 將 能 夠 了 解 程 式 編 写 語 言 的 功 能 了 解 高 階 語 言 和 低 階 語 言 之 間 的 分 別 知 道 翻 譯 程 式 的 意 義 和 能 夠 把 翻 譯 程 式 分 類 為 : 匯 編 程 式 編 譯 程 式 和 解 譯 程 式 認 識 不 同 翻 譯 程 式 的 優 點 和 缺 點 程 式 是 指 揮 電 腦 的 指

More information

1 2005 9 2005,,,,,,,,,, ( http: \ \ www. ncre. cn,, ) 30,,,,,,,, C : C : : 19 : 100081 : : 7871092 1 /16 : 8. 75 : 96 : 2005 11 1 : 2005 11 1 : ISBN 7

1 2005 9 2005,,,,,,,,,, ( http: \ \ www. ncre. cn,, ) 30,,,,,,,, C : C : : 19 : 100081 : : 7871092 1 /16 : 8. 75 : 96 : 2005 11 1 : 2005 11 1 : ISBN 7 1 2005 9 2005,,,,,,,,,, ( http: \ \ www. ncre. cn,, ) 30,,,,,,,, C : C : : 19 : 100081 : : 7871092 1 /16 : 8. 75 : 96 : 2005 11 1 : 2005 11 1 : ISBN 7-80097 - 564-9 /TP 8 : 10. 00 ,,,, 1994 NCRE,,, ( ),,,,,

More information

Microsoft PowerPoint - C-Ch11.ppt

Microsoft PowerPoint - C-Ch11.ppt 各式各樣的資料型態 11-1 結構的基礎知識 決定新的型態 關於結構 結構資料型態可以將不同資料型態的值整合成新的型態 結構型態的宣告語法 : struct 結構型態 { 資料型態識別字 ; 資料型態識別字 ; }; 加上 struct 進行宣告 宣告結構變數 語法 : 結構型態結構變數名稱 ; 範例 : struct Car car1; 對成員進行存取 使用結構型態的成員時, 必須使用成員選擇運算子

More information

untitled

untitled Introduction to Programming ( 數 ) Lecture 3 Spring 2005 March 4, 2005 Lecture 2 Outline 數 料 If if 狀 if 2 (Standard Output, stdout): 料. ((Standard Input, stdin): 料. 類 數 數 數 說 printf 見 數 puts 串 數 putchar

More information

新版 明解C++入門編

新版 明解C++入門編 511!... 43, 85!=... 42 "... 118 " "... 337 " "... 8, 290 #... 71 #... 413 #define... 128, 236, 413 #endif... 412 #ifndef... 412 #if... 412 #include... 6, 337 #undef... 413 %... 23, 27 %=... 97 &... 243,

More information

C/C++语言 - C/C++数据

C/C++语言 - C/C++数据 C/C++ C/C++ Table of contents 1. 2. 3. 4. char 5. 1 C = 5 (F 32). 9 F C 2 1 // fal2cel. c: Convert Fah temperature to Cel temperature 2 # include < stdio.h> 3 int main ( void ) 4 { 5 float fah, cel ;

More information

C

C C 2017 4 1 1. 2. while 3. 4. 5. for 6. 2/161 C 7. 8. (do while) 9. 10. (nested loop) 11. 12. 3/161 C 1. I 1 // summing.c: 2 #include 3 int main(void) 4 { 5 long num; 6 long sum = 0L; 7 int status;

More information

Ps22Pdf

Ps22Pdf ( 98 ) C ( ) ( )158 1998 C : C C C,,, C,, : C ( ) : : (, 100084) : : : 7871092 1/ 16 :18 25 :415 : 2000 3 1 2000 3 1 : ISBN 7 302 01166 4/ T P432 : 00016000 : 22 00 ( 98 ) 20 90,,, ;,,, 1994, 1998, 160,

More information

資料結構之C語言重點複習

資料結構之C語言重點複習 鏈結串列自編教材 ( 一 ) 本教材 ( 一 ) 目標問題 : 每次以亂數產生一 [0,1000] 之整數值, 若該值 >100, 則以同方式繼續產生下一亂數值, 若該值

More information

C/C++ 语言 - 循环

C/C++ 语言 - 循环 C/C++ Table of contents 7. 1. 2. while 3. 4. 5. for 6. 8. (do while) 9. 10. (nested loop) 11. 12. 13. 1 // summing.c: # include int main ( void ) { long num ; long sum = 0L; int status ; printf

More information

Microsoft Word - chap13.doc

Microsoft Word - chap13.doc ï FILE dã Ä o rô qî ô Ö ƒù å o ô ÃÓ FILE Ã Ù Ö o v-> ª w ï FILE d wã +1 ~ c:\temp w Õx test.dat Ã Û vä à n ïw à test.dat 13-2a /* File name: ex13-2a.c */ #include char ch; fptr = fopen("c:\\temp\\test.dat",

More information

int *p int a 0x00C7 0x00C7 0x00C int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++;

int *p int a 0x00C7 0x00C7 0x00C int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++; Memory & Pointer trio@seu.edu.cn 2.1 2.1.1 1 int *p int a 0x00C7 0x00C7 0x00C7 2.1.2 2 int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++; 2.1.3 1. 2. 3. 3 int A,

More information

第1章

第1章 第 8 章 函式 1 本章提要 8.1 前言 8.2 如何定義函式 8.3 函式的呼叫和返回 8.4 傳遞陣列 8.5 方法多載 8.6 遞迴 8.7 綜合練習 8.8 後記 2 8.1 前言 每一種高階程式語言都有提供函式 (Function)( 或稱函數 ) 的功能, 以便將經常使用到的程式功能包裝成函式的形式, 如此一來便能反覆地呼叫該函式來完成某件特定工作在高階程式語言中, 副程式 (Subroutine)

More information

C C C The Most Beautiful Language and Most Dangerous Language in the Programming World! C 2 C C C 4 C 40 30 10 Project 30 C Project 3 60 Project 40

C C C The Most Beautiful Language and Most Dangerous Language in the Programming World! C 2 C C C 4 C 40 30 10 Project 30 C Project 3 60 Project 40 C C trio@seu.edu.cn C C C C The Most Beautiful Language and Most Dangerous Language in the Programming World! C 2 C C C 4 C 40 30 10 Project 30 C Project 3 60 Project 40 Week3 C Week5 Week5 Memory & Pointer

More information

Microsoft PowerPoint - ds-1.ppt [兼容模式]

Microsoft PowerPoint - ds-1.ppt [兼容模式] http://jwc..edu.cn/jxgl/ HomePage/Default.asp 2 说 明 总 学 时 : 72( 学 时 )= 56( 课 时 )+ 16( 实 验 ) 行 课 时 间 : 第 1 ~14 周 周 学 时 : 平 均 每 周 4 学 时 上 机 安 排 待 定 考 试 时 间 : 课 程 束 第 8 11 12 章 的 内 容 为 自 学 内 容 ; 目 录 中 标 有

More information

untitled

untitled 1 Outline 數 料 數 數 列 亂數 練 數 數 數 來 數 數 來 數 料 利 料 來 數 A-Z a-z _ () 不 數 0-9 數 不 數 SCHOOL School school 數 讀 school_name schoolname 易 不 C# my name 7_eleven B&Q new C# (1) public protected private params override

More information

Microsoft PowerPoint - 04-array_pointer.ppt

Microsoft PowerPoint - 04-array_pointer.ppt Array 與 Pointer Array Dynamical Memory Allocation Array( 陣列 ) 陣列是用來存放同樣型態的資料陣列的大小必須在程式中預先設定在程式執行中, 陣列的大小無法改變陣列中的資料是透過索引 (index) 來存取 一維陣列的宣告 type array_name[array_size]; int iarray[100]; /* an integer array

More information

Microsoft Word - 2-4-1_2 課本1225_OK_0222修.doc

Microsoft Word - 2-4-1_2 課本1225_OK_0222修.doc 第 七 課 玩 積 木 學 程 式 學 習 目 標 1. 學 生 能 夠 說 出 程 式 中 的 指 令 還 要 轉 換 成 電 腦 可 以 了 解 的 命 令 才 能 指 揮 電 腦 工 作 2. 學 生 能 夠 說 出 程 式 語 言 的 發 展 愈 高 階, 愈 像 人 類 的 自 然 語 言 3. 學 生 能 夠 分 辨 程 式 語 言 的 不 同 用 途 4. 學 生 能 夠 說 出 個

More information

C语言的应用.PDF

C语言的应用.PDF AVR C 9 1 AVR C IAR C, *.HEX, C,,! C, > 9.1 AVR C MCU,, AVR?! IAR AVR / IAR 32 ALU 1KBytes - 8MBytes (SPM ) 16 MBytes C C *var1, *var2; *var1++ = *--var2; AVR C 9 2 LD R16,-X ST Z+,R16 Auto (local

More information

1 LINUX IDE Emacs gcc gdb Emacs + gcc + gdb IDE Emacs IDE C Emacs Emacs IDE ICE Integrated Computing Environment Emacs Unix Linux Emacs Emacs Emacs Un

1 LINUX IDE Emacs gcc gdb Emacs + gcc + gdb IDE Emacs IDE C Emacs Emacs IDE ICE Integrated Computing Environment Emacs Unix Linux Emacs Emacs Emacs Un Linux C July 27, 2016 Contents 1 Linux IDE 1 2 GCC 3 2.1 hello.c hello.exe........................... 5 2.2............................... 9 2.2.1 -Wall................................ 9 2.2.2 -E..................................

More information

CC213

CC213 : (Ken-Yi Lee), E-mail: feis.tw@gmail.com 177 [P179] (1) - [P181] [P182] (2) - for [P183] (3) - switch [P184] [P187] [P189] [P194] 178 [ ]; : : int var; : int var[3]; var 2293620 var[0] var[1] 2293620

More information

Microsoft Word - ACL chapter02-5ed.docx

Microsoft Word - ACL chapter02-5ed.docx 第 2 章神奇的質數 2.1.1 什麼是質數 1 1 1 打下好基礎 - 程式設計必修的數學思維與邏輯訓練 1 1 0 10 2 3 5 7 4 6 8 9 10 4 10000 1229 1000 168 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131

More information

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.06.doc

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.06.doc 2 5 8 11 0 13 1. 13 2. 15 3. 18 1 23 1. 23 2. 26 3. 28 2 36 1. 36 2. 39 3. 42 4. 44 5. 49 6. 51 3 57 1. 57 2. 60 3. 64 4. 66 5. 70 6. 75 7. 83 8. 85 9. 88 10. 98 11. 103 12. 108 13. 112 4 115 1. 115 2.

More information

C/C++ Basics

C/C++ Basics 第 十章 檔案輸入與輸出 講師 : 李根逸 (Ken-Yi Lee), E-mail: feis.tw@gmail.com 265 課程 大綱 與作業系統或其他軟體溝通 (API) [P267] 檔案相關函式表 [P268] 開啟與關閉檔案 (fopen, fclose) 讀寫純 文字檔 (fscanf, fprintf) 讀寫 二進位檔 (fread, fwrite) 前置處理器

More information

Microsoft Word - C-pgm-ws2010.doc

Microsoft Word - C-pgm-ws2010.doc Information and Communication Technology 資訊與通訊科技 Loops (while/for) C 廻路 姓名 : 班別 : ( ) CS C Programming #1 Functions 函數 : 1 若 n=14, 求以下表示式的值 Expressions 表示式 Value 值 Expressions 表示式 Value 值 A 20 2 * (n /

More information

6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C C C51 C51 ANSI C MCS-51 C51 ANSI C C C51 bit Byte bit sbit

6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C C C51 C51 ANSI C MCS-51 C51 ANSI C C C51 bit Byte bit sbit 6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C51 6.1 C51 6.1.1 C51 C51 ANSI C MCS-51 C51 ANSI C C51 6.1 6.1 C51 bit Byte bit sbit 1 0 1 unsigned char 8 1 0 255 Signed char 8 11 128

More information

Microsoft PowerPoint - C-Ch08.ppt

Microsoft PowerPoint - C-Ch08.ppt 函數 8-1 函數 函數 (function) 可以整合某些特定的處理 整合好的處理可以隨時呼叫使用 C 語言的程式本身也是一個函數, 也就是 main() 函數 使用函數可簡化程式 提款的處理 1. 將提款卡插入自動提款機當中 2. 輸入個人密碼 3. 指定提款金額 4. 領取款項 5. 確認款項與提款卡 提款處理 8-2 函數的定義與呼叫 定義函數的語法 : 傳回值的型態函數名稱 ( 引數列表

More information

[改訂新版]C言語による標準アルゴリズム事典

[改訂新版]C言語による標準アルゴリズム事典 iii C 1991 SEND + MORE = MONEY C 100 2003 Java 2003 27 PC-9800 C BMP SVG EPS BMPSVG WindowsMacLinux Web iv int main() int main(void) EXIT_SUCCESS 0 https://github.com/okumuralab/ algo-c TEX TEX PDF PDF

More information

C/C++ Programming

C/C++ Programming !281 第 十講 檔案輸入與輸出 講師 : 李根逸 (Ken-Yi Lee), E-mail: feis.tw@gmail.com !282 課程 大綱 與作業系統或其他軟體溝通 (API) [P.283] 檔案相關函式表 [P.284] 開啟與關閉檔案 (fopen, fclose) 讀寫純 文字檔 (fscanf, fprintf) 讀寫 二進位檔 (fread, fwrite)

More information

Microsoft PowerPoint - 02 C語言基本概述.ppt

Microsoft PowerPoint - 02 C語言基本概述.ppt 第二章 C 語言基本概述 C 語言的基本語法 關鍵字 vs. 識別字 各種程式錯誤 提高程式的可讀性 簡單的 C 程式 下面的程式碼可印出兩行字串 :. 簡單的例子 含括指令與標頭檔 (/) #include 是前置處理器的指令 #include 稱為含括指令 語法為 #include < 標頭檔 > 含括指令與標頭檔 (/) 含括動作前後的比較 : 前置處理器以標頭檔 (header file)

More information

Microsoft PowerPoint - 02 C語言基本概述.ppt

Microsoft PowerPoint - 02 C語言基本概述.ppt 第二章 C 語言基本概述 C 語言的基本語法關鍵字 vs. 識別字各種程式錯誤提高程式的可讀性 1 2.1 簡單的例子 簡單的 C 程式 下面的程式碼可印出兩行字串 : 2 2.2 解析 C 語言 含括指令與標頭檔 (1/4) #include 是前置處理器的指令 #include 稱為含括指令 語法為 #include < 標頭檔 > 前置處理器以標頭檔 (header file) 的內容取代 #include

More information

第3章.doc

第3章.doc 3 3 3 3.1 3 IT Trend C++ Java SAP Advantech ERPCRM C++ C++ Synopsys C++ NEC C C++PHP C++Java C++Java VIA C++ 3COM C++ SPSS C++ Sybase C++LinuxUNIX Motorola C++ IBM C++Java Oracle Java HP C++ C++ Yahoo

More information

ebook8-30

ebook8-30 3 0 C C C C C C++ C + + C++ GNU C/C++ GNU egcs UNIX shell s h e l l g a w k P e r l U N I X I / O UNIX shell awk P e r l U N I X C C C C C C U N I X 30.1 C C U N I X 70 C C U N I X U N I X U N I X C Dennis

More information

中華大學國貿系教學規範

中華大學國貿系教學規範 中 華 大 學 97 學 年 度 基 礎 課 程 教 學 提 升 計 畫 程 式 設 計 - 講 義 課 程 召 集 人 : 資 訊 工 程 學 系 張 欽 智 課 程 講 義 及 題 庫 編 撰 教 師 : 資 訊 管 理 學 系 應 鳴 雄 資 訊 工 程 學 系 張 欽 智 中 華 民 國 九 十 八 年 七 月 I 目 錄 壹 課 程 講 義... 1 單 元 1:C/C++ 語 言 基 礎

More information

chap07.key

chap07.key #include void two(); void three(); int main() printf("i'm in main.\n"); two(); return 0; void two() printf("i'm in two.\n"); three(); void three() printf("i'm in three.\n"); void, int 标识符逗号分隔,

More information

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File 51 C 51 51 C C C C C C * 2003-3-30 pnzwzw@163.com C C C C KEIL uvision2 MCS51 PLM C VC++ 51 KEIL51 KEIL51 KEIL51 KEIL 2K DEMO C KEIL KEIL51 P 1 1 1 1-1 - 1 Project New Project 1 2 Windows 1 3 N C test

More information

51 C 51 isp 10 C PCB C C C C KEIL

51 C 51 isp 10   C   PCB C C C C KEIL http://wwwispdowncom 51 C " + + " 51 AT89S51 In-System-Programming ISP 10 io 244 CPLD ATMEL PIC CPLD/FPGA ARM9 ISP http://wwwispdowncom/showoneproductasp?productid=15 51 C C C C C ispdown http://wwwispdowncom

More information

四川省普通高等学校

四川省普通高等学校 四 川 省 普 通 高 等 学 校 计 算 机 应 用 知 识 和 能 力 等 级 考 试 考 试 大 纲 (2013 年 试 行 版 ) 四 川 省 教 育 厅 计 算 机 等 级 考 试 中 心 2013 年 1 月 目 录 一 级 考 试 大 纲 1 二 级 考 试 大 纲 6 程 序 设 计 公 共 基 础 知 识 6 BASIC 语 言 程 序 设 计 (Visual Basic) 9

More information

C 語言—陣列及字串

C 語言—陣列及字串 10/16 系程主講人 : 荊輔翔 概論 陣列 陣列是一個具有索引 (index) 性質的連續資料儲存空間集合 陣列中每一個資料儲存空間稱之為陣列元素 (array element); 它們都具有相同的資料名稱 資料型態 及空間大小 ; 但存取它們時則須藉由索引 ( 或稱註標 ) 來區別辨識 索引代表資料在陣列中的相對位址 ( 其計數由 0 開始, 其餘累加類推 ), 且須由中括號 [ ] 涵蓋之

More information

Ps22Pdf

Ps22Pdf C ( CIP) C /. :, 2001. 7 21 ISBN 7-5624 -2355-5. C........ C. TP312 CIP ( 2001 ) 034496 C * * : 7871092 1 /16 : 14. 25 : 356 20017 1 20017 1 : 1 6 000 ISBN 7-5624-2355-5 / TP311 : 21. 00 C, C,,,, C,, (

More information

2. 參考網站 C 語言考古題 & C 的解題 程式設計學習入門 ( 網址 : c.blogspot.com/) 網站 : 星子 ACM 小窩 ( 網址 : 網站 :ACM Onli

2. 參考網站 C 語言考古題 & C 的解題 程式設計學習入門 ( 網址 :  c.blogspot.com/) 網站 : 星子 ACM 小窩 ( 網址 :  網站 :ACM Onli 壹 課程說明 單元名稱 單元摘要 C 語言 : 進階資料型態 1. 認識陣列 (Array) 2. 認識結構 (Structure) 3. 認識指標 (Pointer) 設計者劉洲溶教師 ( 國立台中二中 ) 1. 了解陣列的含意及學習陣列宣告語法及程式設計方法 2. 了解結構的意義及學習結構宣告語法及程式設計方法 學習目標 3. 了解指標的含意及學習指標宣告語法及程式設計方法 4. 培養學生進階程式設計能力

More information

Visual C# 2005程式設計

Visual C# 2005程式設計 Visual Basic 2005 程式設 計 第 5 章流程控制 5-1 認識流程控制 判斷結構 (decision structures) If...Then Else Select Case Try Catch Finally 迴圈結構 (loop structures) For...Next For Each...Next Do...Loop While End While 5-2 If Then

More information

3.1 num = 3 ch = 'C' 2

3.1 num = 3 ch = 'C' 2 Java 1 3.1 num = 3 ch = 'C' 2 final 3.1 final : final final double PI=3.1415926; 3 3.2 4 int 3.2 (long int) (int) (short int) (byte) short sum; // sum 5 3.2 Java int long num=32967359818l; C:\java\app3_2.java:6:

More information

untitled

untitled 1 DBF (READDBF.C)... 1 2 (filetest.c)...2 3 (mousetes.c)...3 4 (painttes.c)...5 5 (dirtest.c)...9 6 (list.c)...9 1 dbf (readdbf.c) /* dbf */ #include int rf,k,reclen,addr,*p1; long brec,erec,i,j,recnum,*p2;

More information

C/C++ - 数组与指针

C/C++ - 数组与指针 C/C++ Table of contents 1. 2. 3. 4. 5. 6. 7. 8. 1 float candy [ 365]; char code [12]; int states [50]; 2 int array [6] = {1, 2, 4, 6, 8, 10}; 3 // day_mon1.c: # include # define MONTHS 12 int

More information

Python a p p l e b e a r c Fruit Animal a p p l e b e a r c 2-2

Python a p p l e b e a r c Fruit Animal a p p l e b e a r c 2-2 Chapter 02 變數與運算式 2.1 2.1.1 2.1.2 2.1.3 2.1.4 2.2 2.2.1 2.2.2 2.2.3 type 2.2.4 2.3 2.3.1 print 2.3.2 input 2.4 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 + 2.4.6 Python Python 2.1 2.1.1 a p p l e b e a r c 65438790

More information

Fun Time (1) What happens in memory? 1 i n t i ; 2 s h o r t j ; 3 double k ; 4 char c = a ; 5 i = 3; j = 2; 6 k = i j ; H.-T. Lin (NTU CSIE) Referenc

Fun Time (1) What happens in memory? 1 i n t i ; 2 s h o r t j ; 3 double k ; 4 char c = a ; 5 i = 3; j = 2; 6 k = i j ; H.-T. Lin (NTU CSIE) Referenc References (Section 5.2) Hsuan-Tien Lin Deptartment of CSIE, NTU OOP Class, March 15-16, 2010 H.-T. Lin (NTU CSIE) References OOP 03/15-16/2010 0 / 22 Fun Time (1) What happens in memory? 1 i n t i ; 2

More information

PowerPoint Presentation

PowerPoint Presentation 第六章簡介運算子超載 (Operator Overloading) 6-1 運算子超載的基礎 6-2 超載二元運算子 6-3 超載邏輯與關係運算子 6-4 超載一元運算子 6-5 使用夥伴函數 6-6 細部檢視指定運算子 6-7 超載註標運算子 6-1 運算子超載的基礎 甚麼是運算子超載? 讓運算子 ( 符號 ) 有不同的意義 EX: 運算子的預設意義 ( 以 + 與 = 為例 ) class frac

More information

概述

概述 OPC Version 1.6 build 0910 KOSRDK Knight OPC Server Rapid Development Toolkits Knight Workgroup, eehoo Technology 2002-9 OPC 1...4 2 API...5 2.1...5 2.2...5 2.2.1 KOS_Init...5 2.2.2 KOS_InitB...5 2.2.3

More information

C PICC C++ C++ C C #include<pic.h> C static volatile unsigned char 0x01; static volatile unsigned char 0x02; static volatile unsigned cha

C PICC C++ C++ C C #include<pic.h> C static volatile unsigned char 0x01; static volatile unsigned char 0x02; static volatile unsigned cha CYPOK CYPOK 1 UltraEdit Project-->Install Language Tool: Language Suite----->hi-tech picc Tool Name ---->PICC Compiler Executable ---->c:hi-picinpicc.exe ( Command-line Project-->New Project-->File Name--->myc

More information

Microsoft PowerPoint - Class2.pptx

Microsoft PowerPoint - Class2.pptx C++ 程式初探 II 2015 暑期 C++ 程式 II 大綱 1. 變數 2. 運算式 3. 輸出 4. 條件判斷 5. 迴圈 6. 陣列 2 基本變數型態 整數 位元組 浮點數 位元組 字元 位元組 short 2 float 4 char ( 整數 ) 1 int 2 (4) double 8 long 4 (8) long double 8(10) 位元組 整數値域 浮點數値域 準確度 1-128

More information

1

1 基本練習題 1 答 :(A) 2 答 :(B) 3 答 :(C) 4 答 :(B) 5 答 :(D) 6 答 :2 7 答 :(B) 8 答 : (A) A B C / D E * + F G / - (B) A B + C D - * E / (C) A B C * + E F + - 9 答 : (A) - + A * - / BCDE / F G (B) / * + A B C D E (C)

More information

C/C++语言 - 分支结构

C/C++语言 - 分支结构 C/C++ Table of contents 1. if 2. if else 3. 4. 5. 6. continue break 7. switch 1 if if i // colddays.c: # include int main ( void ) { const int FREEZING = 0; float temperature ; int cold_ days

More information

The golden pins of the PCI card can be oxidized after months or years

The golden pins of the PCI card can be oxidized after months or years Q. 如何在 LabWindows/CVI 編譯 DAQ Card 程式? A: 請參考至下列步驟 : 步驟 1: 安裝驅動程式 1. 安裝 UniDAQ 驅動程式 UniDAQ 驅動程式下載位置 : CD:\NAPDOS\PCI\UniDAQ\DLL\Driver\ ftp://ftp.icpdas.com/pub/cd/iocard/pci/napdos/pci/unidaq/dll/driver/

More information

untitled

untitled 1 1.1 1.2 1.3 1.4 1.5 ++ 1.6 ++ 2 BNF 3 4 5 6 7 8 1.2 9 1.2 IF ELSE 10 1.2 11 1.2 12 1.3 Ada, Modula-2 Simula Smalltalk-80 C++, Objected Pascal(Delphi), Java, C#, VB.NET C++: C OOPL Java: C++ OOPL C# C++

More information

untitled

untitled 1 5 IBM Intel 1. IBM 第 1/175 页 第 2/175 页 第 3/175 页 80 第 4/175 页 2. IBM 第 5/175 页 3. (1) 第 6/175 页 第 7/175 页 第 8/175 页 = = 第 9/175 页 = = = = = 第 10/175 页 = = = = = = = = 3. (2) 第 11/175 页 第 12/175 页 第 13/175

More information

Microsoft PowerPoint - ch03_AEL0080.ppt

Microsoft PowerPoint - ch03_AEL0080.ppt 3 基本資料型態 能盡物之性, 則可以贊天地之化育 可以贊天地之化育, 則可以與天地矣 中庸中庸.第二十一章第二十一章 1/88 基本資料型態 3.1 3.2 3.3 3.4 3.5 3.6 3.7 整數和浮點數變數和常數算術運算標準數學函數的運算邏輯值及其運算字元與字串位元處理運算 2/88 C++ 的資料型態 C++ 資料型態 基本資料型態 整數 int, short, long 浮點數 float,

More information

1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10

1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10 Java V1.0.1 2007 4 10 1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10 6.2.10 6.3..10 6.4 11 7.12 7.1

More information

Microsoft Word - CPE考生使用手冊160524.docx

Microsoft Word - CPE考生使用手冊160524.docx 大 學 程 式 能 力 檢 定 (CPE) 考 生 使 用 手 冊 2016 年 5 月 24 日 這 份 手 冊 提 供 給 參 加 CPE 檢 定 考 試 的 考 生 內 容 包 含 考 試 環 境 的 使 用, 以 及 解 題 時 所 使 用 I/O 的 基 本 知 識 1. 如 欲 報 名 參 加 CPE 考 試, 請 先 於 CPE 網 站 完 成 帳 號 註 冊, 然 後 再 報 名 該

More information

星星排列 _for loop Protected Sub Page_Load(ByVal sender As Object, ByVal e As Dim h As Integer = 7 'h 為變數 ' Dim i, j As Integer For i = 1 To h

星星排列 _for loop Protected Sub Page_Load(ByVal sender As Object, ByVal e As Dim h As Integer = 7 'h 為變數 ' Dim i, j As Integer For i = 1 To h 資訊系統與實習 製作 : 林郁君 一 2009.09.28 9X9 'button 被按下後 ' Dim i, j As Integer For i = 1 To 9 'i 從 1 到 9' For j = 1 To 9 'j 從 1 到 9' If j * i < 10 Then ' 如果 j 乘上 i 是為個位數 ' Response.Write(i & "*" & j & " =" & i *

More information

Microsoft PowerPoint - plan06.ppt

Microsoft PowerPoint - plan06.ppt 程 序 设 计 语 言 原 理 Principle of Programming Languages 裘 宗 燕 北 京 大 学 数 学 学 院 2012.2~2012.6 6. 基 本 控 制 抽 象 子 程 序 抽 象 子 程 序 活 动 和 局 部 环 境 静 态 实 现 模 型 一 般 实 现 模 型 调 用 序 列 和 在 线 展 开 参 数 机 制 泛 型 子 程 序 异 常 处 理 其

More information

3. 給 定 一 整 數 陣 列 a[0] a[1] a[99] 且 a[k]=3k+1, 以 value=100 呼 叫 以 下 兩 函 式, 假 設 函 式 f1 及 f2 之 while 迴 圈 主 體 分 別 執 行 n1 與 n2 次 (i.e, 計 算 if 敘 述 執 行 次 數, 不

3. 給 定 一 整 數 陣 列 a[0] a[1] a[99] 且 a[k]=3k+1, 以 value=100 呼 叫 以 下 兩 函 式, 假 設 函 式 f1 及 f2 之 while 迴 圈 主 體 分 別 執 行 n1 與 n2 次 (i.e, 計 算 if 敘 述 執 行 次 數, 不 1. 右 側 程 式 正 確 的 輸 出 應 該 如 下 : * *** ***** ******* ********* 在 不 修 改 右 側 程 式 之 第 4 行 及 第 7 行 程 式 碼 的 前 提 下, 最 少 需 修 改 幾 行 程 式 碼 以 得 到 正 確 輸 出? (A) 1 (B) 2 (C) 3 (D) 4 1 int k = 4; 2 int m = 1; 3 for (int

More information

untitled

untitled MODBUS 1 MODBUS...1 1...4 1.1...4 1.2...4 1.3...4 1.4... 2...5 2.1...5 2.2...5 3...6 3.1 OPENSERIAL...6 3.2 CLOSESERIAL...8 3.3 RDMULTIBIT...8 3.4 RDMULTIWORD...9 3.5 WRTONEBIT...11 3.6 WRTONEWORD...12

More information

untitled

untitled 1 Outline 料 類 說 Tang, Shih-Hsuan 2006/07/26 ~ 2006/09/02 六 PM 7:00 ~ 9:30 聯 ives.net@gmail.com www.csie.ntu.edu.tw/~r93057/aspnet134 度 C# 力 度 C# Web SQL 料 DataGrid DataList 參 ASP.NET 1.0 C# 例 ASP.NET 立

More information

Microsoft PowerPoint - ch09_AEL0080.ppt

Microsoft PowerPoint - ch09_AEL0080.ppt 9 字 串 子曰 : 質勝文則野, 文勝質則史 文質彬彬, 然後君子 論語論語.雍也第六雍也第六 標準的 C++ 提供了方便的程式庫, 讓我們能將 字串 視為獨立的單元, 以進行各種存取和剪接的處理 1/36 字串 9.1 9.2 9.3 9.4 9.5 字串的基本概念字串的輸入與輸出字串的處理字串的指標陣列字串處理在編碼上的應用 2/36 字串的基本概念 字串 (string) 是由雙引號 所包括起來的一串文字

More information

Generated by Unregistered Batch DOC TO PDF Converter , please register! 浙江大学 C 程序设计及实验 试题卷 学年春季学期考试时间 : 2003 年 6 月 20 日上午 8:3

Generated by Unregistered Batch DOC TO PDF Converter , please register! 浙江大学 C 程序设计及实验 试题卷 学年春季学期考试时间 : 2003 年 6 月 20 日上午 8:3 浙江大学 C 程序设计及实验 试题卷 2002-2003 学年春季学期考试时间 : 2003 年 6 月 20 日上午 8:30-10:30 注意 : 答题内容必须写在答题卷上, 写在本试题卷上无效 一. 单项选择题 ( 每题 1 分, 共 10 分 ) 1. 下列运算符中, 优先级最低的是 A.

More information

科学计算的语言-FORTRAN95

科学计算的语言-FORTRAN95 科 学 计 算 的 语 言 -FORTRAN95 目 录 第 一 篇 闲 话 第 1 章 目 的 是 计 算 第 2 章 FORTRAN95 如 何 描 述 计 算 第 3 章 FORTRAN 的 编 译 系 统 第 二 篇 计 算 的 叙 述 第 4 章 FORTRAN95 语 言 的 形 貌 第 5 章 准 备 数 据 第 6 章 构 造 数 据 第 7 章 声 明 数 据 第 8 章 构 造

More information

C/C++基礎程式設計班

C/C++基礎程式設計班 C/C++ 基礎程式設計 結構 檔案處理 (Structure, File) 講師 : 張傑帆 CSIE, NTU 人這輩子沒辦法做太多事, 所以每一件事情都要做到精采絕倫 In your life you only get to do so many things. Right now we ve chosen to do this. So let s make it great. -Steve

More information

Microsoft Word - part doc

Microsoft Word - part doc 3 指標與陣列 3-1 指標與一維陣列 3-2 指標與二維陣列 3-3 陣列指標 3-4 為什麼 parr 等同於 *parr? 3-5 指向陣列的指標 3-6 多重指標 3-7 命令列引數 3-8 除錯題 3-9 問題演練 3-10 程式實作 32 Part 1 C 程式語言篇 指標其實就是一位址 陣列的名稱, 表示此陣列第一個元素的位址, 所以它也是指標 由此可知, 指標與陣列的關係是很密切的

More information

2013 C 1 #include <stdio.h> 2 int main(void) 3 { 4 int cases, i; 5 long long a, b; 6 scanf("%d", &cases); 7 for (i = 0; i < cases; i++) 8 { 9 scanf("%

2013 C 1 #include <stdio.h> 2 int main(void) 3 { 4 int cases, i; 5 long long a, b; 6 scanf(%d, &cases); 7 for (i = 0; i < cases; i++) 8 { 9 scanf(% 2013 ( 28 ) ( ) 1. C pa.c, pb.c, 2. C++ pa.cpp, pb.cpp Compilation Error long long cin scanf Time Limit Exceeded 1: A 10 B 1 C 1 D 5 E 5 F 1 G II 5 H 30 1 2013 C 1 #include 2 int main(void) 3

More information

2013 C 1 # include <stdio.h> 2 int main ( void ) 3 { 4 int cases, a, b, i; 5 scanf ("%d", & cases ); 6 for (i = 0;i < cases ;i ++) 7 { 8 scanf ("%d %d

2013 C 1 # include <stdio.h> 2 int main ( void ) 3 { 4 int cases, a, b, i; 5 scanf (%d, & cases ); 6 for (i = 0;i < cases ;i ++) 7 { 8 scanf (%d %d 2013 18 ( ) 1. C pa.c, pb.c, 2. C++ pa.cpp, pb.cpp, Compilation Error cin scanf Time Limit Exceeded 1: A 5 B 5 C 5 D 5 E 5 F 5 1 2013 C 1 # include 2 int main ( void ) 3 { 4 int cases, a, b,

More information

Microsoft Word - 01.DOC

Microsoft Word - 01.DOC 第 1 章 JavaScript 简 介 JavaScript 是 NetScape 公 司 为 Navigator 浏 览 器 开 发 的, 是 写 在 HTML 文 件 中 的 一 种 脚 本 语 言, 能 实 现 网 页 内 容 的 交 互 显 示 当 用 户 在 客 户 端 显 示 该 网 页 时, 浏 览 器 就 会 执 行 JavaScript 程 序, 用 户 通 过 交 互 式 的

More information

EK-STM32F

EK-STM32F STMEVKIT-STM32F10xx8 软 件 开 发 入 门 指 南 目 录 1 EWARM 安 装... 1 1.1 第 一 步 : 在 线 注 册... 1 1.2 第 二 步 : 下 载 软 件... 2 1.3 第 三 步 : 安 装 EWARM... 3 2 基 于 STMEVKIT-STM32F10xx8 的 示 例 代 码 运 行... 6 2.1 GPIO Demo... 6 2.2

More information

C/C++基礎程式設計班

C/C++基礎程式設計班 C/C++ 基礎程式設計 指標 (Pointer) 講師 : 張傑帆 CSIE, NTU 瘋到自以為能改變世界的人, 就能改變世界 The people who are crazy enough to think they can change the world are the ones who do.-steve Jobs 課程大綱 指標簡介 陣列與指標 動態記憶體配置 指標宣告進階 指標 用途

More information

untitled

untitled 3 C++ 3.1 3.2 3.3 3.4 new delete 3.5 this 3.6 3.7 3.1 3.1 class struct union struct union C class C++ C++ 3.1 3.1 #include struct STRING { typedef char *CHARPTR; // CHARPTR s; // int strlen(

More information

全国计算机技术与软件专业技术资格(水平)考试

全国计算机技术与软件专业技术资格(水平)考试 全 国 计 算 机 技 术 与 软 件 专 业 技 术 资 格 ( 水 平 ) 考 试 2008 年 上 半 年 程 序 员 下 午 试 卷 ( 考 试 时 间 14:00~16:30 共 150 分 钟 ) 试 题 一 ( 共 15 分 ) 阅 读 以 下 说 明 和 流 程 图, 填 补 流 程 图 中 的 空 缺 (1)~(9), 将 解 答 填 入 答 题 纸 的 对 应 栏 内 [ 说 明

More information

epub83-1

epub83-1 C++Builder 1 C + + B u i l d e r C + + B u i l d e r C + + B u i l d e r C + + B u i l d e r 1.1 1.1.1 1-1 1. 1-1 1 2. 1-1 2 A c c e s s P a r a d o x Visual FoxPro 3. / C / S 2 C + + B u i l d e r / C

More information