版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、C程序設(shè)計(第程序設(shè)計(第四四版)版)譚浩強(qiáng)譚浩強(qiáng) 著著山東大學(xué)管理學(xué)院山東大學(xué)管理學(xué)院 戚桂杰戚桂杰2021-10-15山東大學(xué)管理學(xué)院 戚桂杰2目錄目錄 程序設(shè)計和程序設(shè)計和C語言語言 算法算法程序的靈魂程序的靈魂 最簡單的最簡單的C程序設(shè)計程序設(shè)計順序程序設(shè)計順序程序設(shè)計 選擇結(jié)構(gòu)程序設(shè)計選擇結(jié)構(gòu)程序設(shè)計 循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)程序設(shè)計 利用數(shù)組處理批量數(shù)據(jù)利用數(shù)組處理批量數(shù)據(jù) 利用函數(shù)實現(xiàn)模塊化程序設(shè)計利用函數(shù)實現(xiàn)模塊化程序設(shè)計 用戶自己建立數(shù)據(jù)類型用戶自己建立數(shù)據(jù)類型 對文件的輸入輸出對文件的輸入輸出 常見錯誤分析常見錯誤分析2021-10-15山東大學(xué)管理學(xué)院 戚桂杰3第第1章章
2、 程序設(shè)計和程序設(shè)計和C語言語言所謂程序,就是一組計算機(jī)能識別和執(zhí)行的指令。所謂程序,就是一組計算機(jī)能識別和執(zhí)行的指令。#include int main( ) / 一個簡單的一個簡單的C語言程序語言程序 printf(This is a C program.n); return 0;計算機(jī)語言的發(fā)展:計算機(jī)語言的發(fā)展:機(jī)器語言機(jī)器語言匯編語言(低級語言)匯編語言(低級語言)高級語言(面向過程的語言、高級語言(面向過程的語言、算法語言)算法語言)第四代語言(面向問題的語言)第四代語言(面向問題的語言)計算機(jī)語言的應(yīng)用:計算機(jī)語言的應(yīng)用:高級語言源程序機(jī)器語言目標(biāo)程序程序執(zhí)行結(jié)果編譯程序運(yùn)行程序
3、2021-10-15山東大學(xué)管理學(xué)院 戚桂杰41.3 C語言的發(fā)展及其特點(diǎn)語言的發(fā)展及其特點(diǎn) 匯編語言的優(yōu)缺點(diǎn)、高級語言的優(yōu)缺點(diǎn)匯編語言的優(yōu)缺點(diǎn)、高級語言的優(yōu)缺點(diǎn) C語言集匯編語言、高級語言的優(yōu)點(diǎn)于一身,語言集匯編語言、高級語言的優(yōu)點(diǎn)于一身,既可用來編寫系統(tǒng)軟件,又可用來寫應(yīng)用軟件既可用來編寫系統(tǒng)軟件,又可用來寫應(yīng)用軟件 C語言的產(chǎn)生與發(fā)展語言的產(chǎn)生與發(fā)展 ALGOL60CPL(Combined Programming Language) BCPL(Basic CPL) B C C語言與UNIX操作系統(tǒng)相互促進(jìn) C語言的標(biāo)準(zhǔn)化:標(biāo)準(zhǔn)C、ANSI C、C99 C語言編譯系統(tǒng):Microsoft
4、C、Turbo C、BORLAND C等2021-10-15山東大學(xué)管理學(xué)院 戚桂杰5C語言的特點(diǎn)語言的特點(diǎn)(1)語言簡潔、緊湊,使用方便、靈活(例下表)語言簡潔、緊湊,使用方便、靈活(例下表) 37個關(guān)鍵字、個關(guān)鍵字、9種控制語句、格式自由、小寫字母種控制語句、格式自由、小寫字母 C語言語言 PASCAL語言語言 含含 義義 BEGINEND 復(fù)合語句復(fù)合語句if (e) S; IF (e) THEN S 條件語句條件語句 int i ; VAR i : INTEGER; 定義定義i為整型變量為整型變量int a10; VAR a : ARRAY1.10 OF INTEGER 定義定義a為整
5、型一維數(shù)組為整型一維數(shù)組int f ( ); FUNTION f ( ) : INTEGER 定義定義f 為返回整型值的函數(shù)為返回整型值的函數(shù)int * p; VAR p : INTEGER 定義定義p為指向整型單元的為指向整型單元的 指針變量指針變量i+=2; i : = i + 2 賦值語句,使賦值語句,使 i + 2 ii+ 或或 +i i : = i + 1 i自增值自增值 1 , i + 1 i 2021-10-15山東大學(xué)管理學(xué)院 戚桂杰6C語言的特點(diǎn)語言的特點(diǎn)(2)運(yùn)算符豐富)運(yùn)算符豐富(3)數(shù)據(jù)類型豐富)數(shù)據(jù)類型豐富(4)具有結(jié)構(gòu)化的控制語句。以函數(shù)為程序的模)具有結(jié)構(gòu)化的控制
6、語句。以函數(shù)為程序的模塊單位,便于實現(xiàn)程序的模塊化塊單位,便于實現(xiàn)程序的模塊化(5)語法限制不太嚴(yán)格、程序設(shè)計自由度大)語法限制不太嚴(yán)格、程序設(shè)計自由度大(6)允許直接訪問物理地址,能進(jìn)行位操作,可)允許直接訪問物理地址,能進(jìn)行位操作,可直接對硬件操作。直接對硬件操作。C語言被稱為語言被稱為“中級語言中級語言”。(7)生成目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高。)生成目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高。(8)可移植性好)可移植性好與其他語言(Basic、FORTRAN、COBOL、PASCAL)的比較2021-10-15山東大學(xué)管理學(xué)院 戚桂杰71.4 最簡單的最簡單的C語言程序語言程序例例1.1 要求在
7、屏幕上輸出一行信息。要求在屏幕上輸出一行信息。 解題思路:解題思路:#include /這是編譯預(yù)處理指令這是編譯預(yù)處理指令int main( ) / 定義主函數(shù)定義主函數(shù) printf(This is a C program.n); return 0;例例1.2 求兩個整數(shù)之和。求兩個整數(shù)之和。#include int main( ) /求兩數(shù)之和求兩數(shù)之和 int a, b, sum; /這是定義變量這是定義變量 a=123; b=456; /以下以下4行為行為C 語句語句 sum=a+b; printf(sum is %dn, sum); return 0;absum1234565792
8、021-10-15山東大學(xué)管理學(xué)院 戚桂杰81.4 最簡單的最簡單的C語言程序語言程序例例1.3 求兩個整數(shù)中的較大者。求兩個整數(shù)中的較大者。#include int main( ) /主函數(shù)主函數(shù) int max(int x, int y); /對被調(diào)用函數(shù)對被調(diào)用函數(shù)max的聲明的聲明 int a, b, c; / 聲明部分,定義變量聲明部分,定義變量 scanf(%d,%d,&a,&b); / 輸入變量輸入變量a和和b的值的值 c=max(a,b); / 調(diào)用調(diào)用max函數(shù),將得到的值賦給函數(shù),將得到的值賦給c printf(max= %dn,c); / 輸出輸出c的值的值 return
9、 0;int max(int x, int y) /定義定義max函數(shù),函數(shù)值為整型,形式參數(shù)函數(shù),函數(shù)值為整型,形式參數(shù)x,y為整型為整型 int z; /max函數(shù)中的聲明部分,定義其中用到的變量函數(shù)中的聲明部分,定義其中用到的變量z為整型為整型 if (xy) z=x; else z=y; return (z); /將將z的值返回,通過的值返回,通過max帶回調(diào)用處帶回調(diào)用處2021-10-15山東大學(xué)管理學(xué)院 戚桂杰9#include int main( ) int max(int x, int y); int a, b, c; scanf(%d,%d,&a,&b); c=max(a,
10、b); printf(max= %dn,c); return 0;int max(int x, int y) int z; if (xy) z=x; else z=y; return (z);abc78xyz78881.4 最簡單的最簡單的C語言程序語言程序2021-10-15山東大學(xué)管理學(xué)院 戚桂杰101.3 簡單的簡單的C程序介紹程序介紹C語言源程序的結(jié)構(gòu):語言源程序的結(jié)構(gòu):(1)一個程序由一個或多個源程序文件組成。)一個程序由一個或多個源程序文件組成。(2)C程序是由函數(shù)構(gòu)成的。包含一個程序是由函數(shù)構(gòu)成的。包含一個main函數(shù)和若干個其他函函數(shù)和若干個其他函數(shù)。數(shù)。(3)函數(shù)的組成:函數(shù)
11、的首部、函數(shù)體。)函數(shù)的組成:函數(shù)的首部、函數(shù)體。 int max ( int x, int y) int z; if (xy) z=x; else z=y; return (z); 合法是空函數(shù):合法是空函數(shù):void dump( ) 函數(shù)首部函數(shù)體函數(shù)類型函數(shù)名函數(shù)參數(shù)類型函數(shù)參數(shù)名聲明部分執(zhí)行部分2021-10-15山東大學(xué)管理學(xué)院 戚桂杰111.3 簡單的簡單的C程序介紹程序介紹(4)一個一個C程序總是從程序總是從main函數(shù)開始執(zhí)行的。函數(shù)開始執(zhí)行的。#include int max(int x, int y) int z; if (xy) z=x; else z=y; return
12、 (z); main( ) int a, b,c; scanf(%d,%d,&a,&b); c=max(a,b); printf(max= %dn,c); (5)C程序書寫格式自由。(6)每個語句和數(shù)據(jù)定義的最后必須有一個分號。(7)C語言本身沒有輸入輸出語句。輸入輸出操作是由庫函數(shù)scanf和printf等函數(shù)來完成的。(8)可以用/ 對程序的任何部分作注釋。2021-10-15山東大學(xué)管理學(xué)院 戚桂杰121.5 C程序的上機(jī)步驟程序的上機(jī)步驟開始編輯編譯連接有錯?執(zhí)行結(jié)果正確?編寫C程序并上機(jī)運(yùn)行的步驟源程序f.c目標(biāo)程序f.obj庫函數(shù)和其他目標(biāo)程序可執(zhí)行目標(biāo)程序f.exe結(jié)束有無無不正
13、確正確2021-10-15山東大學(xué)管理學(xué)院 戚桂杰131.6 程序設(shè)計的任務(wù)程序設(shè)計的任務(wù) 問題分析問題分析 設(shè)計算法設(shè)計算法 編寫程序編寫程序 對源程序進(jìn)行編輯、編譯和連接對源程序進(jìn)行編輯、編譯和連接 運(yùn)行程序,分析結(jié)果(調(diào)試、測試)運(yùn)行程序,分析結(jié)果(調(diào)試、測試) 編寫程序文檔編寫程序文檔2021-10-15山東大學(xué)管理學(xué)院 戚桂杰14第第2章章 算法算法程序的靈魂程序的靈魂 程序程序=數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)+算法算法+程序設(shè)計方法程序設(shè)計方法+語言工具和環(huán)境語言工具和環(huán)境 數(shù)據(jù)結(jié)構(gòu):對數(shù)據(jù)的描述,即在程序中指定數(shù)數(shù)據(jù)結(jié)構(gòu):對數(shù)據(jù)的描述,即在程序中指定數(shù)據(jù)的類型和數(shù)據(jù)的組織形式。據(jù)的類型和數(shù)據(jù)的
14、組織形式。 算法:對操作的描述,即操作步驟。算法:對操作的描述,即操作步驟。2.1 什么是算法什么是算法 為解決一個問題而采取的方法和步驟。為解決一個問題而采取的方法和步驟。 計算機(jī)算法分為數(shù)值運(yùn)算算法、非數(shù)值運(yùn)算算計算機(jī)算法分為數(shù)值運(yùn)算算法、非數(shù)值運(yùn)算算法法2021-10-15山東大學(xué)管理學(xué)院 戚桂杰152.2 簡單算法舉例簡單算法舉例例例2.1 求求1 2 3 4 5=5!Step1: 1pStep2: 2iStep3: p ipStep4: i+1iStep5: 若若 i=5,返回返回Step3;否則,結(jié)束。;否則,結(jié)束。 求求1 3 5 7 9 11Step1: 1pStep2: 3i
15、Step3: p ipStep4: i+2iStep5: 若若 i=80,則打印,則打印ni和和gi;否則不打印。;否則不打印。Step3: i+1iStep4: 若若 i=50,返回返回Step2;否則,結(jié)束。;否則,結(jié)束。 2021-10-15山東大學(xué)管理學(xué)院 戚桂杰172.2 簡單算法舉例簡單算法舉例例例2. 3 判定判定20002500年中的每一年是否閏年,將結(jié)果輸出年中的每一年是否閏年,將結(jié)果輸出閏年的條件:閏年的條件:能被能被4整除但不能被整除但不能被100整除的年份是閏年;整除的年份是閏年;能被能被100整除又能被整除又能被400整除的年份是閏年。整除的年份是閏年。設(shè)設(shè)year為
16、被檢測的年份,算法如下:為被檢測的年份,算法如下:S1:2000yS2:若:若year不能被不能被4 整除,則輸出整除,則輸出year “不是閏年不是閏年”,然后轉(zhuǎn)到,然后轉(zhuǎn)到S6S3:若:若year能被能被4 整除,不能被整除,不能被100 整除,則輸出整除,則輸出year “是閏是閏年年”,然后轉(zhuǎn)到,然后轉(zhuǎn)到S6S4:若:若year能被能被100 整除,又能被整除,又能被400 整除,則輸出整除,則輸出year “是閏是閏年年”,然后轉(zhuǎn)到,然后轉(zhuǎn)到S6S5:輸出:輸出year “不是閏年不是閏年”S6: year+1yearS7:若:若year=2500,返回返回S2繼續(xù)執(zhí)行繼續(xù)執(zhí)行;否則
17、,結(jié)束。;否則,結(jié)束。2021-10-15山東大學(xué)管理學(xué)院 戚桂杰182.2 簡單算法舉例簡單算法舉例例例2. 4 求求算法如下:算法如下:S1:sign=1S2:sum=1S3:deno=2S4:sign=( 1)signS5:term=sign(1/deno)S6: sum=sum+termS7:deno=deno+1S8:若:若deno=100返回返回S4;否則算法結(jié)束。;否則算法結(jié)束。10019914131211100199141312112021-10-15山東大學(xué)管理學(xué)院 戚桂杰192.2 簡單算法舉例簡單算法舉例例例2. 4 對于一個大于或等于對于一個大于或等于3 的正整數(shù),判斷
18、是否為素數(shù)的正整數(shù),判斷是否為素數(shù)算法如下:算法如下:S1:輸入:輸入n的值的值S2:i=2(i 作為除數(shù)作為除數(shù))S3:n被被i除,得余數(shù)除,得余數(shù)rS4:如果:如果r=0,表示,表示n能被能被 i 整除,打印整除,打印n“不是素數(shù)不是素數(shù)”,算法結(jié),算法結(jié)束;否則執(zhí)行束;否則執(zhí)行S5S5:i+1 iS6: 若若 i=n 1返回返回S3;否則打??;否則打印n“是素數(shù)是素數(shù)”,然后結(jié)束。,然后結(jié)束。S6步驟可改為:步驟可改為:S6: 若若 i=0?打印x打印xYN 2021-10-15山東大學(xué)管理學(xué)院 戚桂杰232.4.2 用流程圖表示算法用流程圖表示算法例例2.6 將例將例2.1求求5!的算
19、法用流程圖表示如下。!的算法用流程圖表示如下。開始1t2ititi+1ii5?打印t結(jié)束NY2021-10-15山東大學(xué)管理學(xué)院 戚桂杰242.4.2 用流程圖表示算法用流程圖表示算法例例2.7 將例將例2.2的算法用流程圖表示如下。的算法用流程圖表示如下。開始1ii+1igi80?打印ni,gi結(jié)束Ni50?YNY2021-10-15山東大學(xué)管理學(xué)院 戚桂杰252.4.2 用流程圖表示算法用流程圖表示算法例例2.8 將例將例2.3的算法用流程圖表示如下。的算法用流程圖表示如下。開始2000yy+1yy不能被4整除打印y“是閏年”結(jié)束Y2500?y不能被100整除y不能被400整除打印y“不是
20、閏年”打印y“是閏年”打印y“不是閏年”YYNNYNYN2021-10-15山東大學(xué)管理學(xué)院 戚桂杰262.4.2 用流程圖表示算法用流程圖表示算法例例2.10 將例將例2.5的算法用流程圖表示如下。的算法用流程圖表示如下。i ?n開始i+1ir=0?打印n“是素數(shù)”結(jié)束2in/i 的余數(shù)r打印n“不是素數(shù)”YNNY輸入n2021-10-15山東大學(xué)管理學(xué)院 戚桂杰272.4.3 三種基本結(jié)構(gòu)和改進(jìn)的流程圖三種基本結(jié)構(gòu)和改進(jìn)的流程圖1. 傳統(tǒng)流程圖的弊端傳統(tǒng)流程圖的弊端 BS型算法:型算法:a Bowl of Spaghetti. 例圖例圖2.13。2. 三種基本結(jié)構(gòu)(三種基本結(jié)構(gòu)(1966年
21、,年,Bohra & Jacopini)(1)順序結(jié)構(gòu))順序結(jié)構(gòu) (2)選擇結(jié)構(gòu))選擇結(jié)構(gòu) (3)循環(huán)結(jié)構(gòu))循環(huán)結(jié)構(gòu) ABabABbp成立不成立Abp成立不成立aaAbp成立不成立aAbp不成立成立a當(dāng)型While型直到型Until型2021-10-15山東大學(xué)管理學(xué)院 戚桂杰282.4.3 三種基本結(jié)構(gòu)和改進(jìn)的流程圖三種基本結(jié)構(gòu)和改進(jìn)的流程圖(3)循環(huán)結(jié)構(gòu))循環(huán)結(jié)構(gòu) Abp成立不成立a當(dāng)型While型Abp不成立成立a直到型Until型0 xx=5?x +1 x打印x值NYNY2021-10-15山東大學(xué)管理學(xué)院 戚桂杰292.4.3 三種基本結(jié)構(gòu)和改進(jìn)的流程圖三種基本結(jié)構(gòu)和改進(jìn)的流程圖三種
22、基本結(jié)構(gòu)的共同特點(diǎn):三種基本結(jié)構(gòu)的共同特點(diǎn):(1)只有一個入口)只有一個入口(2)只有一個出口)只有一個出口(3)結(jié)構(gòu)內(nèi)的每一部分都)結(jié)構(gòu)內(nèi)的每一部分都 有機(jī)會被執(zhí)行有機(jī)會被執(zhí)行(4)結(jié)構(gòu)內(nèi)不存在)結(jié)構(gòu)內(nèi)不存在“死循環(huán)死循環(huán)”ABabABbp成立 不成立Abp成立不成立aaAB死循環(huán)三種基本結(jié)構(gòu)可解決任何復(fù)雜的問題2021-10-15山東大學(xué)管理學(xué)院 戚桂杰302.4.4 用用N-S流程圖表示算法流程圖表示算法 N-S( I. Nassi & B. Shneiderman)流程圖的基本符號流程圖的基本符號 其中其中A或或B框可以是簡單操作,也可以是三種結(jié)構(gòu)之一框可以是簡單操作,也可以是三種結(jié)構(gòu)
23、之一ABA當(dāng)p1成立A直到p1成立ABp成立不成立順序結(jié)構(gòu)選擇結(jié)構(gòu)當(dāng)型循環(huán)結(jié)構(gòu) 直到型循環(huán)結(jié)構(gòu)p(1+r)p當(dāng)n=100成立不成立r=0.06AB2021-10-15山東大學(xué)管理學(xué)院 戚桂杰312.4.4 用用N-S流程圖表示算法流程圖表示算法例2.111t2ititi+1i直到 i5打印t例2.121i打印ni,gii+1i直到i50 gi80是否2021-10-15山東大學(xué)管理學(xué)院 戚桂杰322.4.4 用用N-S流程圖表示算法流程圖表示算法2000y y/4的余數(shù)為0y/100的余數(shù) 不為0 是否打印y“是閏年”y/400的余數(shù)為0打印y“是閏年”打印y“不是閏年”打印y“非閏年”y+1
24、y直到y(tǒng)2500是否是否例2.132021-10-15山東大學(xué)管理學(xué)院 戚桂杰332.4.4 用用N-S流程圖表示算法流程圖表示算法例2.15開始i+1ir=0?打印n“是素數(shù)”結(jié)束2in/i 的余數(shù)ri ?n打印n“不是素數(shù)”YNNY輸入n開始i+1ir=0? 輸出n “是素數(shù)”結(jié)束0w 2 in/i 的余數(shù)ri 和 w=0nYNYN輸入n1ww=0 輸出n “不是素數(shù)”YN2021-10-15山東大學(xué)管理學(xué)院 戚桂杰342.4.4 用用N-S流程圖表示算法流程圖表示算法例2.15開始i+1ir=0? 輸出n “是素數(shù)”結(jié)束0w 2 in/i 的余數(shù)ri 和 w=0nYNYN輸入n1ww=0
25、 輸出n “不是素數(shù)”YN輸出n “是素數(shù)”1w輸入n0ww=02in/i 的余數(shù)rr=0是否i+1i直到i 或w0n輸出n “不是素數(shù)”是否2021-10-15山東大學(xué)管理學(xué)院 戚桂杰35 2.4.5 用偽代碼表示算法用偽代碼表示算法 2.4.6 用計算機(jī)語言表示算法用計算機(jī)語言表示算法#include int main( ) int i, t; t=1; i=2; while(i=5) t=t*i; i=i+1; printf(%d,t); return 0; #include int main( ) int sign=1; double deno=2.0,sum=1.0,term; wh
26、ile(deno=100) sign=-sign; term=sign/deno; sum=sum+term; deno=deno+1; printf(%f,sum); return 0;2021-10-15山東大學(xué)管理學(xué)院 戚桂杰362.5 結(jié)構(gòu)化程序設(shè)計方法結(jié)構(gòu)化程序設(shè)計方法(1)自頂向下;)自頂向下; (2)逐步細(xì)化)逐步細(xì)化(3)模塊化設(shè)計;()模塊化設(shè)計;(4)結(jié)構(gòu)化編碼)結(jié)構(gòu)化編碼工作報告工作報告當(dāng)前問題當(dāng)前問題前一階段工作前一階段工作對策對策工廠概況工廠概況頂層設(shè)計第二層設(shè)計第三層設(shè)計2021-10-15山東大學(xué)管理學(xué)院 戚桂杰37第第3章章 最簡單的最簡單的C程序設(shè)計程序設(shè)計順
27、序程序設(shè)計順序程序設(shè)計3.1 順序程序設(shè)計舉例順序程序設(shè)計舉例3.2 數(shù)據(jù)的表現(xiàn)形式及其運(yùn)算數(shù)據(jù)的表現(xiàn)形式及其運(yùn)算3.2.1 常量和變量常量和變量1.常量常量 在程序運(yùn)行過程中,其值不能被改變的量。在程序運(yùn)行過程中,其值不能被改變的量。 (1)整型常量)整型常量 (2)實型常量)實型常量 (3)字符常量)字符常量 (4)字符串常量)字符串常量 (5)符號常量)符號常量2021-10-15山東大學(xué)管理學(xué)院 戚桂杰381.常量常量(1)整型常量)整型常量l十進(jìn)制整數(shù)。十進(jìn)制整數(shù)。l八進(jìn)制整數(shù)。以八進(jìn)制整數(shù)。以 0 開頭。如開頭。如 0123、011。l十六進(jìn)制整數(shù)。以十六進(jìn)制整數(shù)。以 0 x 開頭
28、。如開頭。如 0 x123、 0 x12。(2)實型常量)實型常量l十進(jìn)制小數(shù)形式十進(jìn)制小數(shù)形式l指數(shù)形式形式:指數(shù)形式形式:12.34e3、-1.23E-72021-10-15山東大學(xué)管理學(xué)院 戚桂杰391.常量常量(3)字符常量)字符常量普通字符,普通字符,用單撇號括起來的字符。如用單撇號括起來的字符。如a,D,1,?,$。此為源程序級的表示,例如此為源程序級的表示,例如c= a;若在計算機(jī)中表示,則為其若在計算機(jī)中表示,則為其ASCII碼的二進(jìn)制。碼的二進(jìn)制。注意注意ASCII表的規(guī)律,空字符、空格字符表的規(guī)律,空字符、空格字符轉(zhuǎn)義字符:以字符轉(zhuǎn)義字符:以字符開頭的字符序列。例如開頭的字
29、符序列。例如 n 2021-10-15山東大學(xué)管理學(xué)院 戚桂杰40轉(zhuǎn)義字符轉(zhuǎn)義字符字符形式字符形式ntbrfoooxhh含義含義換行換行水平制表水平制表退格退格回車回車換頁換頁字符字符 字符字符 字符字符 13位位8進(jìn)制所代表的字符進(jìn)制所代表的字符12位位16進(jìn)制所代表的字進(jìn)制所代表的字符符ASCII代碼代碼109813129239342021-10-15山東大學(xué)管理學(xué)院 戚桂杰41 利用利用ddd和和 xhh可表示任何字符(只要已知其可表示任何字符(只要已知其ASCII碼)碼) 例如例如101等同于等同于A,012等同于等同于n; 0、000為空為空字符。字符。 例例 轉(zhuǎn)義字符的應(yīng)用。轉(zhuǎn)義字
30、符的應(yīng)用。#include int main ( ) printf( ab ct derftgn); printf(htibbj k); return 0;輸出:輸出: ab c defab cgdehih j ikh j kfgde2021-10-15山東大學(xué)管理學(xué)院 戚桂杰42(4)字符串常量)字符串常量 字符串常量是一對雙引號括起來的字符序列。字符串常量是一對雙引號括起來的字符序列。例如:例如:How do you do, abc, a a與與a的不同。的不同。 字符串常量在內(nèi)存中的存放。例如字符串常量在內(nèi)存中的存放。例如CHINA C H I N A 02021-10-15山東大學(xué)管理
31、學(xué)院 戚桂杰43(5)符號常量)符號常量例例 符號常量的使用符號常量的使用 #define PRICE 30 int main( ) int num, total; num=10; total=num*PRICE; printf ( Total=%d, total ); return 0; 符號常量的作用:(符號常量的作用:(1)含義清楚)含義清楚 (2)便于修改)便于修改 int main( ) int num, total; num=10; total=num*30; printf ( Total=%d, total ); return 0; 2021-10-15山東大學(xué)管理學(xué)院 戚桂杰4
32、42. 變量變量其值可以改變的量稱為變量。其值可以改變的量稱為變量。源程序中變量有一個名字。程序運(yùn)行時對應(yīng)內(nèi)存相應(yīng)源程序中變量有一個名字。程序運(yùn)行時對應(yīng)內(nèi)存相應(yīng)的存儲單元(地址)。的存儲單元(地址)。C語言中變量:語言中變量:“先定義,后使用先定義,后使用”。便于保證(便于保證(1)變量使用的正確性;()變量使用的正確性;(2)為其分配合)為其分配合適的單元;(適的單元;(3)變量進(jìn)行運(yùn)算的正確性。)變量進(jìn)行運(yùn)算的正確性。a123變量名變量名變量值變量值對應(yīng)單元地址對應(yīng)單元地址存儲單元存儲單元2021-10-15山東大學(xué)管理學(xué)院 戚桂杰453. 常變量常變量const int a=3; 在該變
33、量存在期間其值不能改變。在該變量存在期間其值不能改變。 與變量的異同?與變量的異同? 與常量的異同?與常量的異同? 與符號常量的異同?與符號常量的異同?2021-10-15山東大學(xué)管理學(xué)院 戚桂杰464. 標(biāo)識符標(biāo)識符 標(biāo)識符(標(biāo)識符(identifier):用來標(biāo)識變量名、符號):用來標(biāo)識變量名、符號常量名、函數(shù)名、數(shù)組名、類型名、文件名的常量名、函數(shù)名、數(shù)組名、類型名、文件名的有效字符序列。有效字符序列。 有效標(biāo)識符:只能由字母、數(shù)字、下劃線組成,有效標(biāo)識符:只能由字母、數(shù)字、下劃線組成,且第一個字符必須為字母或下劃線。且第一個字符必須為字母或下劃線。注注1:C語言中大、小寫字母是有區(qū)別的
34、。語言中大、小寫字母是有區(qū)別的。注注2:標(biāo)識符的長度(各個:標(biāo)識符的長度(各個C編譯系統(tǒng)自己的規(guī)定)。編譯系統(tǒng)自己的規(guī)定)。注注3:形象的標(biāo)識符。:形象的標(biāo)識符。2021-10-15山東大學(xué)管理學(xué)院 戚桂杰473.2.2 數(shù)據(jù)類型數(shù)據(jù)類型所謂類型,就是對數(shù)據(jù)分配存儲單元的安排,包所謂類型,就是對數(shù)據(jù)分配存儲單元的安排,包括存儲單元的長度以及數(shù)據(jù)的存儲形式。括存儲單元的長度以及數(shù)據(jù)的存儲形式。數(shù)據(jù)類型數(shù)據(jù)類型基本類型基本類型整型整型(int)字符型(字符型(char)實型(浮點(diǎn)型)實型(浮點(diǎn)型)枚舉類型枚舉類型單精度型單精度型( float )雙精度型雙精度型( double )指針類型指針類型
35、空類型空類型構(gòu)造類型構(gòu)造類型數(shù)組類型數(shù)組類型結(jié)構(gòu)體類型結(jié)構(gòu)體類型共用體類型共用體類型2021-10-15山東大學(xué)管理學(xué)院 戚桂杰483.2.3 整型數(shù)據(jù)整型數(shù)據(jù)1. 整型數(shù)據(jù)的分類整型數(shù)據(jù)的分類(1)基本整型)基本整型 int i; /int型數(shù)據(jù)單元為型數(shù)據(jù)單元為2個字節(jié)或個字節(jié)或4個字節(jié)個字節(jié) i =10;數(shù)值是以補(bǔ)碼表示的。例如數(shù)值是以補(bǔ)碼表示的。例如 10的補(bǔ)碼。的補(bǔ)碼。 0 0 0 0 0 0 0 00 0 0 0 1 0 1 0i20002001i 的地址為20000 0 0 0 0 0 0 00 0 0 0 1 0 1 010的原碼的原碼1 1 1 1 1 1 1 11 1 1
36、1 0 1 0 1按位取反按位取反1 1 1 1 1 1 1 11 1 1 1 0 1 1 0再加再加12021-10-15山東大學(xué)管理學(xué)院 戚桂杰491.整型數(shù)據(jù)的分類整型數(shù)據(jù)的分類基本整型:基本整型:int短整型:短整型:short int 或或 short長整型:長整型:long int 或或 long雙長整型:雙長整型:long long int sizeof(short) sizeof(int) sizeof(long) sizeof(long long)2.整型變量的符號屬性整型變量的符號屬性表表3.2 ANSI標(biāo)準(zhǔn)定義的整數(shù)類型標(biāo)準(zhǔn)定義的整數(shù)類型 signed intunsign
37、ed int signed short intunsigned short int signed long intunsigned long int比特數(shù)161632321616類 型最小取值范圍 3276832767 即 215( 215 1)04294967275 即 0( 232 1) 21474836482147483647 即 231( 231 1) 3276832767 即 215( 215 1)065535 即 0( 216 1)065535 即 0( 216 1)2021-10-15山東大學(xué)管理學(xué)院 戚桂杰503.2.3 整型數(shù)據(jù)整型數(shù)據(jù) 整型變量的溢出整型變量的溢出#incl
38、ude int main ( ) int a,b; a=32767; b=a+1; printf (%d,%d, a,b); return 0;運(yùn)行結(jié)果為:運(yùn)行結(jié)果為:32767,-32768說明:說明:(2)用用%u格式輸出無符號數(shù)據(jù)。格式輸出無符號數(shù)據(jù)。0 1 1 1 1 1 1 11 1 1 1 1 1 1 11 1 1 1 1 1 1 11 1 1 1 1 1 1 1ab0 1 1 1 1 1 1 11 1 1 1 1 1 1 11 0 0 0 0 0 0 00 0 0 0 0 0 0 0ab2021-10-15山東大學(xué)管理學(xué)院 戚桂杰513.2.4 字符型數(shù)據(jù)字符型數(shù)據(jù)1. 字符與字
39、符代碼字符與字符代碼字符按字符按ASCII碼碼形式存儲形式存儲字符字符1 與整數(shù)與整數(shù)1的不同:的不同:1+1=? 1 + 1 =?2021-10-15山東大學(xué)管理學(xué)院 戚桂杰523.2.4 字符型數(shù)據(jù)字符型數(shù)據(jù)2. 字符變量字符變量char c1, c2;c1=a; c2=b;字符數(shù)據(jù)在內(nèi)存中的存儲形式及其使用方法字符數(shù)據(jù)在內(nèi)存中的存儲形式及其使用方法字符在內(nèi)存中以二進(jìn)制形式存放其對應(yīng)的字符在內(nèi)存中以二進(jìn)制形式存放其對應(yīng)的ASCII碼!碼!例例 向字符變量賦以整數(shù)。向字符變量賦以整數(shù)。main ( ) char c1,c2; c1=97; c2=98; / 等價于等價于c1=a; c2=b;
40、 printf(%c %cn,c1,c2); printf(%d %dn,c1,c2);97c198c201100001c101100010c22021-10-15山東大學(xué)管理學(xué)院 戚桂杰53 例例 大小寫字母的轉(zhuǎn)換大小寫字母的轉(zhuǎn)換main ( ) char c1,c2; c1=a; c2=b; c1=c132; c2=c232; printf(%c %cn,c1,c2);字符數(shù)據(jù)與整型數(shù)據(jù)可以互相賦值。字符數(shù)據(jù)與整型數(shù)據(jù)可以互相賦值。char c=130;printf(%c,%d,c,c);2021-10-15山東大學(xué)管理學(xué)院 戚桂杰543.2.5 浮點(diǎn)型數(shù)據(jù)浮點(diǎn)型數(shù)據(jù)實型數(shù)據(jù)在內(nèi)存中的存放
41、形式實型數(shù)據(jù)在內(nèi)存中的存放形式是以指數(shù)形式存放在是以指數(shù)形式存放在存儲單元中的。存儲單元中的。指數(shù)形式:指數(shù)形式:123e3、123E3規(guī)范化的指數(shù)形式:規(guī)范化的指數(shù)形式:1.23e5、1.23000e+05例:將例:將5.25在內(nèi)存存放。在內(nèi)存存放。5.25=(101.01)2=1.0101 22.實型變量的分類實型變量的分類+.0101+ 00000010系數(shù)部分?jǐn)?shù)符系數(shù)部分?jǐn)?shù)符系數(shù)部分小數(shù)系數(shù)部分小數(shù)指數(shù)指數(shù)類型floatdoublelong double比特數(shù)3264128有效數(shù)字61519數(shù)值范圍()1.2 10 38 3.4 1038 () 2.3 10308 1.7 10308(
42、) 3.4 104932 1.1 1049322021-10-15山東大學(xué)管理學(xué)院 戚桂杰553.2.6 怎樣確定常量的類型怎樣確定常量的類型(1)整型常量)整型常量在某類型的取值范圍內(nèi)即可。在某類型的取值范圍內(nèi)即可?;颍嚎稍谡麛?shù)的末尾加或:可在整數(shù)的末尾加L或或l。(2)浮點(diǎn)型常量)浮點(diǎn)型常量實型常量都是雙精度浮點(diǎn)型常量。實型常量都是雙精度浮點(diǎn)型常量。或:可在實數(shù)的末尾加或:可在實數(shù)的末尾加F或或f,L或或l。例:例:float f=3.14159; float f=3.14159f; long double a=1.23L;2021-10-15山東大學(xué)管理學(xué)院 戚桂杰563.2.7 運(yùn)算符
43、和表達(dá)式運(yùn)算符和表達(dá)式1.基本的算術(shù)運(yùn)算符基本的算術(shù)運(yùn)算符 +、*、/ 、%注意注意:(:(1)兩個整數(shù)相除的結(jié)果為整數(shù)。若至少有一個兩個整數(shù)相除的結(jié)果為整數(shù)。若至少有一個運(yùn)算數(shù)為實數(shù),則算術(shù)運(yùn)算的結(jié)果為雙精度實數(shù)。運(yùn)算數(shù)為實數(shù),則算術(shù)運(yùn)算的結(jié)果為雙精度實數(shù)。 例:例:1/2為為0,1.0/2等于等于0.5(2) +、還可為單目運(yùn)算符。還可為單目運(yùn)算符。3.算術(shù)表達(dá)式和運(yùn)算符的優(yōu)先級與結(jié)合性算術(shù)表達(dá)式和運(yùn)算符的優(yōu)先級與結(jié)合性2021-10-15山東大學(xué)管理學(xué)院 戚桂杰572. 自增自減運(yùn)算符自增自減運(yùn)算符 +i , i i + , i j=+i; j=i+;注注1.自增自減運(yùn)算符自增自減運(yùn)算符
44、,只能作用于變量,而不能用于常量或只能作用于變量,而不能用于常量或表達(dá)式。表達(dá)式。5+、(、(a+b)+不合法。不合法。注注2.自增自減運(yùn)算符的結(jié)合方向自增自減運(yùn)算符的結(jié)合方向“自右至左自右至左”例如例如 (1) i+ (參見(參見Turbo C程序)程序) (2) i=3; j=(+i )+ (+i) + (+i);2021-10-15山東大學(xué)管理學(xué)院 戚桂杰584. 各類數(shù)值型數(shù)據(jù)間的混合運(yùn)算各類數(shù)值型數(shù)據(jù)間的混合運(yùn)算 10+a+1.5-8765.1234 *b(系統(tǒng)自動進(jìn)行轉(zhuǎn)換)(系統(tǒng)自動進(jìn)行轉(zhuǎn)換)5.強(qiáng)制類型轉(zhuǎn)換運(yùn)算符:強(qiáng)制類型轉(zhuǎn)換運(yùn)算符: (類型)(表達(dá)式)(類型)(表達(dá)式)(int
45、)3.14 、 (float)1double floatlongunsignedint char, short 高低2021-10-15山東大學(xué)管理學(xué)院 戚桂杰596. C運(yùn)算符運(yùn)算符 (1)算術(shù)運(yùn)算符)算術(shù)運(yùn)算符 (+ * + ) (2)關(guān)系運(yùn)算符)關(guān)系運(yùn)算符 ( = = !=) (3)邏輯運(yùn)算符)邏輯運(yùn)算符 (! & | ) (4)位運(yùn)算符)位運(yùn)算符 ( | & ) (5)賦值運(yùn)算符)賦值運(yùn)算符 ( =及其擴(kuò)展賦值運(yùn)算符及其擴(kuò)展賦值運(yùn)算符) (6)條件運(yùn)算符)條件運(yùn)算符 (? :) (7)逗號運(yùn)算符)逗號運(yùn)算符 (,) (8)指針運(yùn)算符)指針運(yùn)算符 (* 和和 &) (9)求字節(jié)數(shù)運(yùn)算符)
46、求字節(jié)數(shù)運(yùn)算符 (sizeof) (10)強(qiáng)制類型轉(zhuǎn)換運(yùn)算符)強(qiáng)制類型轉(zhuǎn)換運(yùn)算符 (類型類型) (11)成員運(yùn)算符)成員運(yùn)算符 ( ) (12)下標(biāo)運(yùn)算符)下標(biāo)運(yùn)算符 ( ) (13)其他)其他 (如函數(shù)調(diào)用運(yùn)算符如函數(shù)調(diào)用運(yùn)算符 ( ) )2021-10-15山東大學(xué)管理學(xué)院 戚桂杰603.3 C語句語句3.3.1 C語句的作用和分類語句的作用和分類源程序文件1C程序局部變量聲明源程序文件2源程序文件n預(yù)處理命令全局變量聲明函數(shù)1函數(shù)首部函數(shù)n函數(shù)體執(zhí)行語句2021-10-15山東大學(xué)管理學(xué)院 戚桂杰613.3.1 C語句的作用和分類語句的作用和分類(1)控制語句)控制語句 if ( ) e
47、lse (條件語句)(條件語句) for ( ) (循環(huán)語句)(循環(huán)語句) while ( ) (循環(huán)語句)(循環(huán)語句) do while ( ) (循環(huán)語句)(循環(huán)語句) continue (結(jié)束本次循環(huán)語句)(結(jié)束本次循環(huán)語句) break (終止執(zhí)行終止執(zhí)行switch或循環(huán)語句或循環(huán)語句) switch (多分支選擇語句)(多分支選擇語句) return (從函數(shù)返回語句)(從函數(shù)返回語句) goto (轉(zhuǎn)向語句)(轉(zhuǎn)向語句)2021-10-15山東大學(xué)管理學(xué)院 戚桂杰623.3.1 C語句的作用和分類語句的作用和分類(2)函數(shù)調(diào)用語句)函數(shù)調(diào)用語句 printf(This is a
48、C statement.);(3)表達(dá)式語句)表達(dá)式語句 a=3; x+y;(4)空語句)空語句 ;(5)復(fù)合語句)復(fù)合語句 2021-10-15山東大學(xué)管理學(xué)院 戚桂杰633.3.2 最基本的語句最基本的語句賦值語句賦值語句 例例3.4 給出三角形的三邊長,求三角形面積。給出三角形的三邊長,求三角形面積。解題思路、編寫程序、程序分析(略)。注意數(shù)學(xué)函數(shù)及解題思路、編寫程序、程序分析(略)。注意數(shù)學(xué)函數(shù)及t的應(yīng)用。的應(yīng)用。1.賦值運(yùn)算符賦值運(yùn)算符: = 例如:例如:a=3; k=i*j; 其作用其作用?2. 復(fù)合的賦值運(yùn)算符:復(fù)合的賦值運(yùn)算符:+=、*=、%=、a+=3 等價于等價于 a=a+
49、3 x*=y+8 等價于等價于 x=x*(y+8)x%=3 等價于等價于 x=x%3一般地:一般地:v = v op exp (此處(此處 v為變量,為變量,exp為表達(dá)式,為表達(dá)式,op為運(yùn)算符)為運(yùn)算符) 等價于等價于 v op= exp目的:簡化程序目的:簡化程序 提高效率提高效率2021-10-15山東大學(xué)管理學(xué)院 戚桂杰643.3.2 最基本的語句最基本的語句賦值語句賦值語句3. 賦值表達(dá)式:賦值表達(dá)式: 整個作為一個表達(dá)式整個作為一個表達(dá)式有此概念后,就可以理解并實現(xiàn):有此概念后,就可以理解并實現(xiàn):a=b=c=5a=5+(c=6)a=(b=4)+(c=6)a=(b=10)/c=2)
50、a+=a =a*a(若若a的初值為的初值為12)printf(%d,a=b)變量 = 表達(dá)式2021-10-15山東大學(xué)管理學(xué)院 戚桂杰654. 賦值過程中的類型轉(zhuǎn)換賦值過程中的類型轉(zhuǎn)換賦值運(yùn)算符兩側(cè)的數(shù)據(jù)類型不一致時,賦值運(yùn)算符右端的賦值運(yùn)算符兩側(cè)的數(shù)據(jù)類型不一致時,賦值運(yùn)算符右端的表達(dá)式計算結(jié)果要轉(zhuǎn)換為賦值運(yùn)算符左端變量的類型。表達(dá)式計算結(jié)果要轉(zhuǎn)換為賦值運(yùn)算符左端變量的類型。注意:表達(dá)式的值是否超過變量所屬類型的取值范圍。注意:表達(dá)式的值是否超過變量所屬類型的取值范圍。 實型數(shù)據(jù)實型數(shù)據(jù)整型變量整型變量取整數(shù)部分,但注意范圍取整數(shù)部分,但注意范圍(1)實型變量實型變量整型數(shù)據(jù)整型數(shù)據(jù)以浮點(diǎn)
51、形式存儲以浮點(diǎn)形式存儲(2)double數(shù)據(jù)數(shù)據(jù)float變量變量取取7位有效數(shù)字,但注意范圍位有效數(shù)字,但注意范圍(3)double變量變量float數(shù)據(jù)數(shù)據(jù)有效位數(shù)擴(kuò)展有效位數(shù)擴(kuò)展char數(shù)據(jù)數(shù)據(jù)整型變量整型變量字符數(shù)據(jù)送到整型變量低字符數(shù)據(jù)送到整型變量低8位位但注意符號擴(kuò)展但注意符號擴(kuò)展(4)char變量變量整型數(shù)據(jù)整型數(shù)據(jù)取低取低8位位(5)2021-10-15山東大學(xué)管理學(xué)院 戚桂杰666. 變量賦初值變量賦初值int a=3;float f=3.56;char c=a;int a,b,c=5;相當(dāng)于相當(dāng)于int a,b,c;c=5;2021-10-15山東大學(xué)管理學(xué)院 戚桂杰673
52、.4 數(shù)據(jù)的輸入輸出數(shù)據(jù)的輸入輸出 標(biāo)準(zhǔn)輸入輸出函數(shù):標(biāo)準(zhǔn)輸入輸出函數(shù):putchar( )、getchar( )、printf( )、scanf( )、puts( )、gets( ) #include 2021-10-15山東大學(xué)管理學(xué)院 戚桂杰683.4.1 字符數(shù)據(jù)的輸入輸出字符數(shù)據(jù)的輸入輸出1. putchar函數(shù)(字符輸出函數(shù))函數(shù)(字符輸出函數(shù)) putchar函數(shù)的功能是向終端輸出一個字符。函數(shù)的功能是向終端輸出一個字符。 一般形式:一般形式:putchar(表達(dá)式)表達(dá)式) 先計算表達(dá)式之值,然后在終端輸出其先計算表達(dá)式之值,然后在終端輸出其ASCII碼為碼為該值的字符。該值的
53、字符。 例如:例如:char a=B; putchar(a); putchar(O); putchar(Y); putchar(n); putchar(A); putchar(A+1);此時在屏幕上輸出:BOYAB2021-10-15山東大學(xué)管理學(xué)院 戚桂杰693.4 .1 字符數(shù)據(jù)的輸入輸出字符數(shù)據(jù)的輸入輸出2. getchar函數(shù)(字符輸入函數(shù))函數(shù)(字符輸入函數(shù))getchar函數(shù)的功能是從終端(實際上是從輸入緩沖區(qū))讀入一個函數(shù)的功能是從終端(實際上是從輸入緩沖區(qū))讀入一個字符。字符。一般形式:一般形式:getchar( )例例3.9 從鍵盤輸入從鍵盤輸入BOY3個字符,然后把它們輸出
54、到屏幕。個字符,然后把它們輸出到屏幕。#include int main ( ) char a,b,c; a=getchar( ); b=getchar( ); c=getchar( ); putchar(a); putchar(b); putchar(c); putchar(n); return 0;注意程序運(yùn)行過程中的輸入。注意程序運(yùn)行過程中的輸入。2021-10-15山東大學(xué)管理學(xué)院 戚桂杰703.4 .1 字符數(shù)據(jù)的輸入輸出字符數(shù)據(jù)的輸入輸出2. getchar函數(shù)(字符輸入函數(shù))函數(shù)(字符輸入函數(shù)) getchar函數(shù)的功能是從終端(實際上是從輸入緩沖區(qū))函數(shù)的功能是從終端(實際上是
55、從輸入緩沖區(qū))讀入一個字符。讀入一個字符。 getchar( )將輸入緩沖區(qū)下一個可讀字符的字符值作為將輸入緩沖區(qū)下一個可讀字符的字符值作為函數(shù)值返回。函數(shù)值返回。 注注1.getchar( )從輸入緩沖區(qū)從輸入緩沖區(qū)讀入讀入 下一個可讀字符后(例如右圖中下一個可讀字符后(例如右圖中b),), 再下一個字符成為下一個可讀字符(右圖中再下一個字符成為下一個可讀字符(右圖中c) 注注2.若當(dāng)前輸入緩沖區(qū)可讀字符為空(例如程序開始時,若當(dāng)前輸入緩沖區(qū)可讀字符為空(例如程序開始時,或輸入緩沖區(qū)字符被讀完后或輸入緩沖區(qū)字符被讀完后例如上圖讀完換行符例如上圖讀完換行符 后)后), getchar 將等待用
56、戶從鍵盤向緩沖區(qū)輸入數(shù)據(jù),將等待用戶從鍵盤向緩沖區(qū)輸入數(shù)據(jù),直到輸入一行字符(鍵入直到輸入一行字符(鍵入 后),才開始讀輸入緩沖區(qū)后),才開始讀輸入緩沖區(qū)(此時剛輸入的第一個字符為下一個可讀字符)。剛(此時剛輸入的第一個字符為下一個可讀字符)。剛輸入的一行字符同時顯示在屏幕上。輸入的一行字符同時顯示在屏幕上。abc123下一個下一個可讀字符可讀字符輸入緩沖區(qū)2021-10-15山東大學(xué)管理學(xué)院 戚桂杰713.4.1 字符數(shù)據(jù)的輸入輸出字符數(shù)據(jù)的輸入輸出2. getchar函數(shù)(字符輸入函數(shù))函數(shù)(字符輸入函數(shù))補(bǔ)充補(bǔ)充1: getch( )函數(shù)函數(shù)直接讀鍵盤(而不是讀輸入緩沖直接讀鍵盤(而不是
57、讀輸入緩沖區(qū),也就不必理會輸入緩沖區(qū)是否為空),此時區(qū),也就不必理會輸入緩沖區(qū)是否為空),此時該函數(shù)等待用戶從鍵盤輸入一個字符,當(dāng)用戶按該函數(shù)等待用戶從鍵盤輸入一個字符,當(dāng)用戶按任一鍵后(不必為任一鍵后(不必為 ),),getch( )將該字符作為函將該字符作為函數(shù)值返回。注意:為執(zhí)行數(shù)值返回。注意:為執(zhí)行g(shù)etch( )函數(shù)而在鍵盤上函數(shù)而在鍵盤上鍵入的字符不顯示在屏幕上。該函數(shù)常常用來響鍵入的字符不顯示在屏幕上。該函數(shù)常常用來響應(yīng)用戶是否敲擊鍵盤。應(yīng)用戶是否敲擊鍵盤。補(bǔ)充補(bǔ)充2: getche( )函數(shù),基本同函數(shù),基本同getch( );只是為執(zhí)行只是為執(zhí)行g(shù)etche( )函數(shù)而在鍵盤
58、上鍵入的字符顯示在屏幕上。函數(shù)而在鍵盤上鍵入的字符顯示在屏幕上。2021-10-15山東大學(xué)管理學(xué)院 戚桂杰723.4.2 格式輸入輸出格式輸入輸出1. printf函數(shù)(格式輸出函數(shù))函數(shù)(格式輸出函數(shù)) printf( )的功能是向終端輸出若干個任意類型(格式)的功能是向終端輸出若干個任意類型(格式)的數(shù)據(jù)。的數(shù)據(jù)。 一般形式:一般形式:printf(參數(shù)參數(shù)1,參數(shù),參數(shù)2,參數(shù),參數(shù)3參數(shù)參數(shù)n); 轉(zhuǎn)換控制字符串轉(zhuǎn)換控制字符串 輸出表列輸出表列 例如:例如:printf(%d,%cn,i,c); 其中其中printf( )的第一個參數(shù)為轉(zhuǎn)換控制字符串,它包括:的第一個參數(shù)為轉(zhuǎn)換控制字
59、符串,它包括:格式說明,由格式說明,由%和格式字符等組成,如和格式字符等組成,如%d,%6.2f 等等。其作。其作用是將后面對應(yīng)的參數(shù)表達(dá)式的數(shù)據(jù)轉(zhuǎn)換為指定的格式輸出。用是將后面對應(yīng)的參數(shù)表達(dá)式的數(shù)據(jù)轉(zhuǎn)換為指定的格式輸出。普通字符,將原樣輸出。普通字符,將原樣輸出。2021-10-15山東大學(xué)管理學(xué)院 戚桂杰731. printf函數(shù)(格式輸出函數(shù))函數(shù)(格式輸出函數(shù))格式字符格式字符(1)d格式符。將對應(yīng)參數(shù)的數(shù)據(jù)以十進(jìn)制形式輸出。格式符。將對應(yīng)參數(shù)的數(shù)據(jù)以十進(jìn)制形式輸出。 %d:以十進(jìn)制形式按實際長度輸出。:以十進(jìn)制形式按實際長度輸出。 %md:m為指定的輸出數(shù)據(jù)的最小寬度。若實際輸為指定
60、的輸出數(shù)據(jù)的最小寬度。若實際輸出字符個數(shù)小于出字符個數(shù)小于m,則在左端補(bǔ)以空格(右端對齊)。,則在左端補(bǔ)以空格(右端對齊)。若實際輸出字符個數(shù)超過若實際輸出字符個數(shù)超過m,則,則m不起作用。不起作用。 % md: “ ”意味著左對齊格式,將在右端補(bǔ)以空意味著左對齊格式,將在右端補(bǔ)以空格。格。 %ld、%lld:輸出長整型(:輸出長整型(long)、雙長整型()、雙長整型(long long)數(shù)據(jù)。)數(shù)據(jù)。注意:注意:int型的數(shù)據(jù)應(yīng)利用型的數(shù)據(jù)應(yīng)利用%d格式輸出,格式輸出,long 型數(shù)據(jù)應(yīng)利用型數(shù)據(jù)應(yīng)利用%ld格式格式輸出。否則可能發(fā)生類型轉(zhuǎn)換而出錯。該轉(zhuǎn)換規(guī)則不同于賦值輸出。否則可能發(fā)生類
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025學(xué)年上學(xué)期八年級物理期末考試試卷(無答案)
- 2024版有林地離婚協(xié)議
- 2025年度定制化床墊設(shè)計生產(chǎn)采購合同3篇
- 2024項目立項專用合同書
- 2024門診部中醫(yī)拔罐師勞動合同與拔罐養(yǎng)生服務(wù)協(xié)議3篇
- 2024年公務(wù)員考試宜賓市珙縣《行政職業(yè)能力測驗》模擬試題含解析
- 2024特許經(jīng)營權(quán)許可與商標(biāo)使用合同
- 2025年度安置房項目投資合作協(xié)議3篇
- 【單元AB卷 核心基礎(chǔ)卷】人教新起點(diǎn)英語一年級上冊單元核心基礎(chǔ)卷-Unit 1 School(含答案)
- 2024年從業(yè)人員職業(yè)健康管理制度
- 0的認(rèn)識和加、減法(說課稿)-2024-2025學(xué)年一年級上冊數(shù)學(xué)人教版(2024)001
- 2025年廣西旅發(fā)南國體育投資集團(tuán)限公司招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2024-2025學(xué)年銅官山區(qū)數(shù)學(xué)三年級第一學(xué)期期末調(diào)研試題含解析
- ISO 56001-2024《創(chuàng)新管理體系-要求》專業(yè)解讀與應(yīng)用實踐指導(dǎo)材料之18:“7支持-7.1資源”(雷澤佳編制-2025B0)
- ISO 56001-2024《創(chuàng)新管理體系-要求》專業(yè)解讀與應(yīng)用實踐指導(dǎo)材料之17:“6策劃-6.6合作”(雷澤佳編制-2025B0)
- ISO 56001-2024《創(chuàng)新管理體系-要求》專業(yè)解讀與應(yīng)用實踐指導(dǎo)材料之16:“6策劃-6.5組織結(jié)構(gòu)”(雷澤佳編制-2025B0)
- 全國英語教師賽課一等獎七年級上冊(人教2024年新編)《Unit 7 Happy Birthday》教學(xué)設(shè)計
- 碳排放監(jiān)測技術(shù)
- 2024年世界職業(yè)院校技能大賽高職組“關(guān)務(wù)實務(wù)組”賽項參考試題庫(含答案)
- 江西省2023-2024學(xué)年高二上學(xué)期期末教學(xué)檢測數(shù)學(xué)試題 附答案
- 超市項目投標(biāo)書模板
評論
0/150
提交評論