C語(yǔ)言二級(jí)考復(fù)習(xí)_第1頁(yè)
C語(yǔ)言二級(jí)考復(fù)習(xí)_第2頁(yè)
C語(yǔ)言二級(jí)考復(fù)習(xí)_第3頁(yè)
C語(yǔ)言二級(jí)考復(fù)習(xí)_第4頁(yè)
C語(yǔ)言二級(jí)考復(fù)習(xí)_第5頁(yè)
已閱讀5頁(yè),還剩463頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、2022-4-212022-4-21目錄目錄v一一 C程序的組成、結(jié)構(gòu)及書(shū)程序的組成、結(jié)構(gòu)及書(shū)寫(xiě)規(guī)則寫(xiě)規(guī)則v二二 數(shù)據(jù)類型及基本運(yùn)算數(shù)據(jù)類型及基本運(yùn)算v三三 順序結(jié)構(gòu)程序設(shè)計(jì)順序結(jié)構(gòu)程序設(shè)計(jì)v四四 選擇結(jié)構(gòu)程序設(shè)計(jì)選擇結(jié)構(gòu)程序設(shè)計(jì)v五五 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)循環(huán)結(jié)構(gòu)程序設(shè)計(jì)v六六 數(shù)組數(shù)組v七七 函數(shù)及變量的存儲(chǔ)類別和編函數(shù)及變量的存儲(chǔ)類別和編譯預(yù)處理譯預(yù)處理 v八八 指針指針v九九 結(jié)構(gòu)與其它自定義類型結(jié)構(gòu)與其它自定義類型v十十 文件文件2022-4-212022-4-21程序設(shè)計(jì)與高級(jí)語(yǔ)言程序設(shè)計(jì)與高級(jí)語(yǔ)言 早期的機(jī)器語(yǔ)言;早期的機(jī)器語(yǔ)言; 過(guò)渡性語(yǔ)言過(guò)渡性語(yǔ)言匯編語(yǔ)言;匯編語(yǔ)言; 2020世

2、紀(jì)世紀(jì)5050年代末的程序設(shè)計(jì)語(yǔ)言(高級(jí)語(yǔ)言);年代末的程序設(shè)計(jì)語(yǔ)言(高級(jí)語(yǔ)言);2022-4-21 C C語(yǔ)言是國(guó)際上廣泛流行的計(jì)算機(jī)高級(jí)語(yǔ)言語(yǔ)言是國(guó)際上廣泛流行的計(jì)算機(jī)高級(jí)語(yǔ)言, ,既可用來(lái)寫(xiě)系統(tǒng)軟既可用來(lái)寫(xiě)系統(tǒng)軟件,也可用來(lái)寫(xiě)應(yīng)用軟件。件,也可用來(lái)寫(xiě)應(yīng)用軟件。 C C語(yǔ)言是在語(yǔ)言是在B B語(yǔ)言的基礎(chǔ)上發(fā)展起來(lái)的。語(yǔ)言的基礎(chǔ)上發(fā)展起來(lái)的。 19691969年英國(guó)劍橋大學(xué)的年英國(guó)劍橋大學(xué)的MatinMatin Richards Richards推出了推出了BCPL (basic BCPL (basic combined programming language)combined progra

3、mming language)語(yǔ)言。語(yǔ)言。 19721972年至年至19731973年間,貝爾實(shí)驗(yàn)室的年間,貝爾實(shí)驗(yàn)室的D.M.RitchieD.M.Ritchie 在在B B語(yǔ)言的基語(yǔ)言的基礎(chǔ)上設(shè)計(jì)出了礎(chǔ)上設(shè)計(jì)出了C C語(yǔ)言語(yǔ)言( (取取BCPLBCPL的第二個(gè)字母的第二個(gè)字母) )。最初的。最初的C C語(yǔ)言只是語(yǔ)言只是為描述和實(shí)現(xiàn)為描述和實(shí)現(xiàn)UNIXUNIX操作系統(tǒng)提供一種工作語(yǔ)言而設(shè)計(jì)的。操作系統(tǒng)提供一種工作語(yǔ)言而設(shè)計(jì)的。2022-4-21 1977 1977年出現(xiàn)了不依賴于具體機(jī)器的年出現(xiàn)了不依賴于具體機(jī)器的C C語(yǔ)言編譯文本語(yǔ)言編譯文本可移植可移植C C語(yǔ)語(yǔ)言編譯程序言編譯程序,使,

4、使C C移植到其他機(jī)器時(shí)所需做的工作大大簡(jiǎn)化。移植到其他機(jī)器時(shí)所需做的工作大大簡(jiǎn)化。 19781978年年, , Brian W.KernighanBrian W.Kernighan和和Dennis M.RitchieDennis M.Ritchie合著了影響合著了影響深遠(yuǎn)的名著深遠(yuǎn)的名著The C Programming LanguageThe C Programming Language,書(shū)中介紹的,書(shū)中介紹的C C語(yǔ)言語(yǔ)言成為后來(lái)廣泛使用的成為后來(lái)廣泛使用的C C語(yǔ)言版本的基礎(chǔ),被稱為標(biāo)準(zhǔn)語(yǔ)言版本的基礎(chǔ),被稱為標(biāo)準(zhǔn)C C。19781978年以年以后,后,C C語(yǔ)言已先后移植到大、中、小、

5、微型機(jī)上。語(yǔ)言已先后移植到大、中、小、微型機(jī)上。 1980年,貝爾實(shí)驗(yàn)室的年,貝爾實(shí)驗(yàn)室的Bjarne Stroustrup博士及其同事修改和博士及其同事修改和擴(kuò)充擴(kuò)充C語(yǔ)言的內(nèi)核,使其能滿足面向?qū)ο竽P偷囊?,稱語(yǔ)言的內(nèi)核,使其能滿足面向?qū)ο竽P偷囊?,稱“帶類的帶類的C”,1983年取名年取名C+;2022-4-21 C+C+與與C C完全兼容,保存了完全兼容,保存了C C語(yǔ)言的所有組成部分,具有更完美的語(yǔ)言的所有組成部分,具有更完美的體系結(jié)構(gòu)和更強(qiáng)大的功能;體系結(jié)構(gòu)和更強(qiáng)大的功能; C/C+C/C+常用的編譯軟件有常用的編譯軟件有Turbo CTurbo C,Quick CQuick C

6、,Borland CBorland C,Microsoft Visual C+Microsoft Visual C+,Borland C+Borland C+,WatcomWatcom C+ C+等等;等等;同學(xué)們應(yīng)了解所用的計(jì)算機(jī)系統(tǒng)所配置的同學(xué)們應(yīng)了解所用的計(jì)算機(jī)系統(tǒng)所配置的C C編譯系統(tǒng)編譯系統(tǒng)的特點(diǎn)和規(guī)定的特點(diǎn)和規(guī)定 ( (可以參閱有關(guān)手冊(cè)可以參閱有關(guān)手冊(cè)) )。2022-4-211.2.1 1.2.1 簡(jiǎn)單的簡(jiǎn)單的C/C+C/C+程序?qū)嵗绦驅(qū)嵗纠纠?1.11.1】 include stdio.hinclude 頭文件頭文件main ( )main ( )函數(shù)名函數(shù)名 print

7、f printf (This is a C program.n); (This is a C program.n); 函數(shù)體函數(shù)體本程序的作用是輸出以下一行信息:本程序的作用是輸出以下一行信息: This is a C program.This is a C program. 2022-4-21 1.2.2 C/C+1.2.2 C/C+程序設(shè)計(jì)規(guī)則程序設(shè)計(jì)規(guī)則 (1 1)C C程序中使用到的一切數(shù)據(jù)都必須在使用它們之前對(duì)其類程序中使用到的一切數(shù)據(jù)都必須在使用它們之前對(duì)其類型和存儲(chǔ)屬性加以定義和說(shuō)明;型和存儲(chǔ)屬性加以定義和說(shuō)明; (2 2)函數(shù)是)函數(shù)是C C程序的基本模塊,包括函數(shù)名、參數(shù)說(shuō)明

8、表和函程序的基本模塊,包括函數(shù)名、參數(shù)說(shuō)明表和函數(shù)體三個(gè)部分;數(shù)體三個(gè)部分; (3 3)語(yǔ)句是函數(shù)的基本單位,語(yǔ)句結(jié)束必須加)語(yǔ)句是函數(shù)的基本單位,語(yǔ)句結(jié)束必須加“ “ ;”; (4 4)C C語(yǔ)言允許語(yǔ)言允許“/ /* * * */”/”包圍的注釋行;包圍的注釋行; (5 5)C C程序是自由格式書(shū)寫(xiě)的程序,通常采用結(jié)構(gòu)化程序設(shè)計(jì)程序是自由格式書(shū)寫(xiě)的程序,通常采用結(jié)構(gòu)化程序設(shè)計(jì)原則將程序設(shè)計(jì)成原則將程序設(shè)計(jì)成“層次型層次型”; (6 6)C C的輸入輸出操作由庫(kù)函數(shù)的輸入輸出操作由庫(kù)函數(shù)scanfscanf和和printfprintf完成;完成;2022-4-21c c程序結(jié)構(gòu)程序結(jié)構(gòu)202

9、2-4-21 高級(jí)語(yǔ)言源程序高級(jí)語(yǔ)言源程序目標(biāo)程序目標(biāo)程序編譯程序編譯程序編譯編譯執(zhí)行執(zhí)行高級(jí)語(yǔ)言程序的執(zhí)行過(guò)程高級(jí)語(yǔ)言程序的執(zhí)行過(guò)程 在編好一個(gè)在編好一個(gè)C源程序后,如何上機(jī)運(yùn)行呢源程序后,如何上機(jī)運(yùn)行呢? 要經(jīng)過(guò)以下幾個(gè)步驟:要經(jīng)過(guò)以下幾個(gè)步驟:上機(jī)輸入、編輯源程序、對(duì)源程序進(jìn)行編譯、與庫(kù)函數(shù)連接、運(yùn)行上機(jī)輸入、編輯源程序、對(duì)源程序進(jìn)行編譯、與庫(kù)函數(shù)連接、運(yùn)行目標(biāo)程序這樣幾個(gè)步驟。目標(biāo)程序這樣幾個(gè)步驟。2022-4-21 實(shí)線表示操作流程,虛線表示文件的輸入輸出。實(shí)線表示操作流程,虛線表示文件的輸入輸出。2022-4-21 1.2.3 C/C+1.2.3 C/C+程序的編輯、編譯與運(yùn)行程序

10、的編輯、編譯與運(yùn)行 1 1)在)在Turbo CTurbo C集成開(kāi)發(fā)環(huán)境下編譯與運(yùn)行集成開(kāi)發(fā)環(huán)境下編譯與運(yùn)行C C程序程序 為了能使用為了能使用Turbo CTurbo C,必須先將,必須先將Turbo CTurbo C編譯程序裝入磁盤(pán)的某編譯程序裝入磁盤(pán)的某一目錄下,例如放在一目錄下,例如放在C C盤(pán)根目錄下一級(jí)盤(pán)根目錄下一級(jí)TCTC子目錄下。子目錄下。 第一步:運(yùn)行第一步:運(yùn)行Turbo CTurbo C,即,即TC.exeTC.exe文件;文件; 第二步:編輯源文件。在編輯第二步:編輯源文件。在編輯(Edit) (Edit) 狀態(tài)下可以根據(jù)需要輸入狀態(tài)下可以根據(jù)需要輸入或修改源程序。或

11、修改源程序。 2022-4-21 第三步:編譯源程序。選擇第三步:編譯源程序。選擇“Compile”Compile”菜單并在其下拉菜菜單并在其下拉菜單中選擇單中選擇“Compile to OBJ” Compile to OBJ” ,則進(jìn)行編譯,得到一個(gè)后綴,則進(jìn)行編譯,得到一個(gè)后綴為為.obj.obj的目標(biāo)程序;然后再選菜單的目標(biāo)程序;然后再選菜單“Compile/Link EXE file”Compile/Link EXE file”, 進(jìn)行連接操作,可得到一個(gè)后綴為進(jìn)行連接操作,可得到一個(gè)后綴為.exe.exe的可執(zhí)行文件。也可以將的可執(zhí)行文件。也可以將編譯和連接合為一個(gè)步驟進(jìn)行。選菜單編

12、譯和連接合為一個(gè)步驟進(jìn)行。選菜單“Compile/Make EXE Compile/Make EXE file” file” 或按或按“F9”F9”鍵,即可一次完成編譯和連接。鍵,即可一次完成編譯和連接。 打開(kāi)打開(kāi)“Run”Run”菜單,選擇菜單,選擇RunRun命令運(yùn)行可執(zhí)行程序;命令運(yùn)行可執(zhí)行程序;2022-4-212022-4-21 2 2)在)在Visual C+Visual C+集成開(kāi)發(fā)環(huán)境下編譯與運(yùn)行集成開(kāi)發(fā)環(huán)境下編譯與運(yùn)行C C程序(自修)程序(自修) 打開(kāi)打開(kāi)“Build”Build”菜單,選擇菜單,選擇“Compile hjm01.c”Compile hjm01.c”命令,命

13、令,編譯正確后生成目標(biāo)文件;編譯正確后生成目標(biāo)文件; 打開(kāi)打開(kāi)“Build”Build”菜單,選擇菜單,選擇“Build hjm01.exe”Build hjm01.exe”命令,命令,將目標(biāo)程序與庫(kù)文件相鏈接,生成可執(zhí)行文件;將目標(biāo)程序與庫(kù)文件相鏈接,生成可執(zhí)行文件; 打開(kāi)打開(kāi)“Build”Build”菜單,選擇菜單,選擇“Execute hjm01.exe”Execute hjm01.exe”命命令,運(yùn)行執(zhí)行程序。令,運(yùn)行執(zhí)行程序。2022-4-21 1.3.1 1.3.1 基本字符集基本字符集 字符集是構(gòu)成字符集是構(gòu)成C/C+C/C+程序的基本元素。程序的基本元素。C/C+C/C+語(yǔ)言的

14、字符集有下語(yǔ)言的字符集有下述字符構(gòu)成:述字符構(gòu)成: (1 1)英文字母:)英文字母:A AZ Z,a az z (2 2)數(shù)字字符:)數(shù)字字符:0 09 9 (3 3)特殊符號(hào):!,)特殊符號(hào):!,& &等。等。 2022-4-21 1.3.2 1.3.2 標(biāo)識(shí)符標(biāo)識(shí)符 C/C+C/C+程序中,標(biāo)識(shí)符用來(lái)標(biāo)識(shí)變量名、符號(hào)常量名、函數(shù)名、程序中,標(biāo)識(shí)符用來(lái)標(biāo)識(shí)變量名、符號(hào)常量名、函數(shù)名、數(shù)組名、文件名、類名、對(duì)象名等。數(shù)組名、文件名、類名、對(duì)象名等。 有效標(biāo)識(shí)符的構(gòu)成規(guī)則為:有效標(biāo)識(shí)符的構(gòu)成規(guī)則為: (1 1)必須由字母()必須由字母(a az z,A AZ Z)或下劃線()或下

15、劃線(_ _)開(kāi)頭;)開(kāi)頭; (2 2)由字母、數(shù)字和下劃線組成的長(zhǎng)度不超過(guò))由字母、數(shù)字和下劃線組成的長(zhǎng)度不超過(guò)3232的字符串;的字符串; (3 3)標(biāo)識(shí)符中的大小寫(xiě)字母有區(qū)別;)標(biāo)識(shí)符中的大小寫(xiě)字母有區(qū)別; (4 4)不能與)不能與同名;同名; 下面是不合法的標(biāo)識(shí)符和變量名:下面是不合法的標(biāo)識(shí)符和變量名: .d.d.,ohnohn,y 123y 123,3333,3d643d642022-4-21 1.3.3 1.3.3 關(guān)鍵字關(guān)鍵字 C C編譯系統(tǒng)已經(jīng)預(yù)定義的、具有特殊用途的保留標(biāo)識(shí)編譯系統(tǒng)已經(jīng)預(yù)定義的、具有特殊用途的保留標(biāo)識(shí)符稱為關(guān)鍵字。具體見(jiàn)書(shū)符稱為關(guān)鍵字。具體見(jiàn)書(shū)P P7 7。

16、編譯預(yù)處理是編譯預(yù)處理是C C編譯系統(tǒng)的一個(gè)組成部分。編譯系統(tǒng)的一個(gè)組成部分。 告訴編譯系統(tǒng)在對(duì)源程序進(jìn)行編譯之前應(yīng)該告訴編譯系統(tǒng)在對(duì)源程序進(jìn)行編譯之前應(yīng)該做些什么。做些什么。2022-4-21C C源程序源程序目標(biāo)程序目標(biāo)程序執(zhí)行程序執(zhí)行程序編譯預(yù)處理編譯預(yù)處理編譯編譯鏈接鏈接圖圖1 1 編譯預(yù)處理的執(zhí)行過(guò)程編譯預(yù)處理的執(zhí)行過(guò)程(無(wú)預(yù)處理命令)(無(wú)預(yù)處理命令)(有預(yù)處理命令)(有預(yù)處理命令)2022-4-21 編譯預(yù)處理命令有三種:編譯預(yù)處理命令有三種: 宏定義宏定義 無(wú)參數(shù)宏定義無(wú)參數(shù)宏定義 有參數(shù)宏定義(有參數(shù)宏定義(7.77.7節(jié)介紹)節(jié)介紹) 文件包含文件包含 條件編譯條件編譯 20

17、22-4-21 無(wú)參數(shù)宏定義的格式為:無(wú)參數(shù)宏定義的格式為:define define 【例】【例】define PI 3.1415926define PI 3.1415926 【例】分析程序的結(jié)果。【例】分析程序的結(jié)果。 #define PI 3.1415926#define PI 3.1415926 #define R 4.0 #define R 4.0 main( ) main( ) float area; float area; area=PI area=PI* *R R* *R;R; printf(“area printf(“area=%.2f”);=%.2f”); 宏名一般用大寫(xiě)字

18、母表示宏名一般用大寫(xiě)字母表示1.4.1 1.4.1 無(wú)參數(shù)宏定義無(wú)參數(shù)宏定義2022-4-21 1.4.2 1.4.2 文件包含文件包含 文件包含是通過(guò)編譯預(yù)處理命令文件包含是通過(guò)編譯預(yù)處理命令includeinclude把另一個(gè)文件的全把另一個(gè)文件的全部?jī)?nèi)容包含到本文件之中。命令格式有兩種:部?jī)?nèi)容包含到本文件之中。命令格式有兩種:include “include “文件名文件名” 【例】【例】#include “C#include “C:TCCC1file2.c”TCCC1file2.c”include include 【例【例】#include stdio.h#include 按系統(tǒng)指定的

19、標(biāo)準(zhǔn)方式檢索文件目錄按系統(tǒng)指定的標(biāo)準(zhǔn)方式檢索文件目錄先在源文件目錄中檢索文件,沒(méi)找到再按先在源文件目錄中檢索文件,沒(méi)找到再按系統(tǒng)指定的標(biāo)準(zhǔn)方式檢索文件目錄系統(tǒng)指定的標(biāo)準(zhǔn)方式檢索文件目錄2022-4-21【例】計(jì)算常用對(duì)數(shù)【例】計(jì)算常用對(duì)數(shù)lgx。 #include “math.h” main( ) float x; scanf(“%f”,&x); printf(“%fn”,log10(x); 【例【例】 #include main( ) printf(This is a C program.n); 2022-4-212022-4-21 見(jiàn)書(shū)見(jiàn)書(shū)P P1111圖圖2.1 2.1 數(shù)據(jù)類型

20、分類示意圖數(shù)據(jù)類型分類示意圖數(shù)據(jù)在內(nèi)存中有兩種表示形式:其一是在程序運(yùn)行數(shù)據(jù)在內(nèi)存中有兩種表示形式:其一是在程序運(yùn)行過(guò)程中值永遠(yuǎn)保持不變的過(guò)程中值永遠(yuǎn)保持不變的;其二是在程序運(yùn)行過(guò)程;其二是在程序運(yùn)行過(guò)程中值可以發(fā)生變化的中值可以發(fā)生變化的; 2022-4-21常量常量數(shù)值常量數(shù)值常量符號(hào)常量符號(hào)常量整型常量整型常量實(shí)型常量實(shí)型常量字符常量字符常量字符串常量字符串常量2.3.1 2.3.1 常量常量 常量常量在程序運(yùn)行過(guò)程中其值不能被改變的量;在程序運(yùn)行過(guò)程中其值不能被改變的量; 按表達(dá)形式,常量分為:按表達(dá)形式,常量分為:2022-4-21 1 1、值常量、值常量 常量通常是直接以自身的存在

21、形式體現(xiàn)其值和類型,常量不占內(nèi)存,常量通常是直接以自身的存在形式體現(xiàn)其值和類型,常量不占內(nèi)存,在程序運(yùn)行時(shí)作為操作對(duì)象直接出現(xiàn)在運(yùn)算器的各種寄存器中。在程序運(yùn)行時(shí)作為操作對(duì)象直接出現(xiàn)在運(yùn)算器的各種寄存器中。 2 2、符號(hào)常量、符號(hào)常量 符號(hào)常量的定義形式:符號(hào)常量的定義形式: 標(biāo)識(shí)符標(biāo)識(shí)符 值常量值常量 數(shù)據(jù)類型數(shù)據(jù)類型 標(biāo)識(shí)符值常量標(biāo)識(shí)符值常量 【例】【例】 define PI 3.14159define PI 3.14159 const float I=3.1415926const float I=34-21 3.3.常用的轉(zhuǎn)義字符常用的轉(zhuǎn)義字符 【例】分析下面兩

22、段代碼的區(qū)別:【例】分析下面兩段代碼的區(qū)別: #includestdio.h#include main( ) main( ) printf(“This printf(“This is a C program.n”) is a C program.n”); #includestdio.h#include main( )main( ) printf(“tThis printf(“tThis is a C is a C program.n”)program.n”); 2022-4-21 2.3.2 2.3.2 變量變量 在程序運(yùn)行過(guò)程中其值可以被改變的量;在程序運(yùn)行過(guò)程中其值可以被改變的量; 1.1

23、.變量的說(shuō)明變量的說(shuō)明 【例【例】 intint i i,j j,k k; 2.2.變量的賦初值變量的賦初值在程序中,一個(gè)變量占據(jù)著一在程序中,一個(gè)變量占據(jù)著一個(gè)實(shí)際的存儲(chǔ)單元,變量名實(shí)際上是存儲(chǔ)單元的邏輯地個(gè)實(shí)際的存儲(chǔ)單元,變量名實(shí)際上是存儲(chǔ)單元的邏輯地址,存儲(chǔ)單元中的內(nèi)容是變量的值;址,存儲(chǔ)單元中的內(nèi)容是變量的值;2022-4-21 (1 1)允許在定義變量的同時(shí)對(duì)其賦初值;)允許在定義變量的同時(shí)對(duì)其賦初值; 【例【例】 intint a a3 3; float ffloat f7.87.8; (2 2)允許僅對(duì)說(shuō)明語(yǔ)句中的部分變量賦初值;)允許僅對(duì)說(shuō)明語(yǔ)句中的部分變量賦初值; 【例【例】

24、 intint a a,b b,c c6 6; (3 3)不允許同時(shí)對(duì)幾個(gè)變量賦同一個(gè)初值;)不允許同時(shí)對(duì)幾個(gè)變量賦同一個(gè)初值; 【例【例】 intint a ab bc c1313; (4 4)變量的賦初值不是在程序編譯階段,而是在程序)變量的賦初值不是在程序編譯階段,而是在程序運(yùn)行時(shí)賦的;運(yùn)行時(shí)賦的;2022-4-21 1 1、變量一旦被說(shuō)明為字符型,就意味著它只能取單字變量一旦被說(shuō)明為字符型,就意味著它只能取單字符值。符值。 例:例:charchar x x;x x3333; 字符在計(jì)算機(jī)內(nèi)部并不是以字符原形存儲(chǔ)的,是以字符在計(jì)算機(jī)內(nèi)部并不是以字符原形存儲(chǔ)的,是以ASCIIASCII碼的

25、形式碼的形式存儲(chǔ)在一個(gè)字節(jié)中,所以字符也可以用存儲(chǔ)在一個(gè)字節(jié)中,所以字符也可以用ASCIIASCII碼的整數(shù)形式來(lái)表示。碼的整數(shù)形式來(lái)表示。 2 2、字符型數(shù)據(jù)與字符串?dāng)?shù)據(jù)的區(qū)別、字符型數(shù)據(jù)與字符串?dāng)?shù)據(jù)的區(qū)別和和;2022-4-21 2.4.1 2.4.1 算術(shù)運(yùn)算符和算術(shù)表達(dá)式算術(shù)運(yùn)算符和算術(shù)表達(dá)式 1 1)算術(shù)運(yùn)算符)算術(shù)運(yùn)算符 類別類別運(yùn)算符運(yùn)算符含義含義備注備注雙目雙目/ /除除隨參與運(yùn)算的類型而含義有所不同隨參與運(yùn)算的類型而含義有所不同% %求余數(shù)求余數(shù)運(yùn)算對(duì)象必須為整型運(yùn)算對(duì)象必須為整型單目單目+自增自增1 1運(yùn)算對(duì)象必須為變量運(yùn)算對(duì)象必須為變量-自減自減1 1運(yùn)算對(duì)象必須為變量運(yùn)

26、算對(duì)象必須為變量+ +取正取正- -取負(fù)取負(fù)2022-4-21 2 2)算術(shù)運(yùn)算符的運(yùn)算優(yōu)先級(jí)和結(jié)合性)算術(shù)運(yùn)算符的運(yùn)算優(yōu)先級(jí)和結(jié)合性 運(yùn)算符運(yùn)算符結(jié)合性結(jié)合性備注備注()()自內(nèi)向外自內(nèi)向外+,-,- -(取負(fù))(取負(fù))自右至左自右至左+,-為前綴形式時(shí)為前綴形式時(shí)* *,/ /,自左至右自左至右+ +(加),(加),- -(減)(減)自左至右自左至右優(yōu)優(yōu)先先級(jí)級(jí)3 3)算術(shù)表達(dá)式)算術(shù)表達(dá)式 注意書(shū)寫(xiě)的規(guī)范注意書(shū)寫(xiě)的規(guī)范2022-4-21【例】將下列代數(shù)式轉(zhuǎn)換成【例】將下列代數(shù)式轉(zhuǎn)換成C C語(yǔ)言表達(dá)式。語(yǔ)言表達(dá)式。 xx212sqrtsqrt(x x* *x+1x+1)/ /(2 2* *

27、x x)x21sqrtsqrt(absabs(x x)/2/24 4)算術(shù)型數(shù)據(jù)的混合運(yùn)算)算術(shù)型數(shù)據(jù)的混合運(yùn)算 自動(dòng)類型轉(zhuǎn)換:規(guī)則是由低級(jí)向高級(jí)轉(zhuǎn)換,如下自動(dòng)類型轉(zhuǎn)換:規(guī)則是由低級(jí)向高級(jí)轉(zhuǎn)換,如下圖所示:(圖所示:(P P1717圖圖2.2 2.2 )2022-4-21 強(qiáng)制類型轉(zhuǎn)換:是根據(jù)程序的需要,將某數(shù)據(jù)強(qiáng)強(qiáng)制類型轉(zhuǎn)換:是根據(jù)程序的需要,將某數(shù)據(jù)強(qiáng) 制轉(zhuǎn)換成指定的數(shù)據(jù)類型,方法是在被轉(zhuǎn)換對(duì)象制轉(zhuǎn)換成指定的數(shù)據(jù)類型,方法是在被轉(zhuǎn)換對(duì)象 (或表達(dá)式)前面增加類型標(biāo)識(shí)符,(或表達(dá)式)前面增加類型標(biāo)識(shí)符,如下:如下: 數(shù)據(jù)類型自動(dòng)轉(zhuǎn)換規(guī)則示意數(shù)據(jù)類型自動(dòng)轉(zhuǎn)換規(guī)則示意(類型標(biāo)識(shí)符)(類型標(biāo)識(shí)符)

28、 表達(dá)式表達(dá)式水平箭頭表示必定轉(zhuǎn)換;縱向箭頭表示水平箭頭表示必定轉(zhuǎn)換;縱向箭頭表示兩個(gè)不同類型對(duì)象時(shí)的轉(zhuǎn)換方向兩個(gè)不同類型對(duì)象時(shí)的轉(zhuǎn)換方向2022-4-21 【例】【例】 (2.7+6.82.7+6.8) 表示將表示將2.7+6.82.7+6.8的運(yùn)算結(jié)果的運(yùn)算結(jié)果9.59.5強(qiáng)制轉(zhuǎn)換成強(qiáng)制轉(zhuǎn)換成intint型整數(shù)型整數(shù)9 9,舍棄小數(shù),舍棄小數(shù)部分。部分。 【思考題思考題】如何實(shí)現(xiàn)運(yùn)算結(jié)果的四舍五入呢?如何實(shí)現(xiàn)運(yùn)算結(jié)果的四舍五入呢? 5 5)使用算術(shù)表達(dá)式的注意事項(xiàng))使用算術(shù)表達(dá)式的注意事項(xiàng) 兩個(gè)整數(shù)直接相除,結(jié)果自動(dòng)取整,丟棄小數(shù)部分;兩個(gè)整數(shù)直接相除,結(jié)果自動(dòng)取整,丟棄小數(shù)部分;【例【例

29、】 float xfloat x,y y; x x6/46/4; y y6.0/46.0/4;x x的值為的值為1.01.0y y的值為的值為1.51.5(int)2022-4-21 運(yùn)算符運(yùn)算符“+”+”、“-”-”運(yùn)算的優(yōu)先級(jí)高于算術(shù)運(yùn)算中運(yùn)算的優(yōu)先級(jí)高于算術(shù)運(yùn)算中所有所有 雙目運(yùn)算符,運(yùn)算對(duì)象雙目運(yùn)算符,運(yùn)算對(duì)象,不能是,不能是或或 【例】【例】 有有intint x x;float yfloat y;下面的式子錯(cuò)在了哪里?;下面的式子錯(cuò)在了哪里? (x+yx+y)+、 5+ 5+ 變量的前綴和后綴運(yùn)算的區(qū)別變量的前綴和后綴運(yùn)算的區(qū)別2022-4-21y y6 6,x x6 6y y25

30、25,x x7 7y y4949,x x7 7y y+x+x* *+x+x;y y+x+x;y yx+x+* *x+x+;y y5 5,x x6 6y yx+x+;2022-4-21 2.4.2 2.4.2 賦值運(yùn)算符和賦值表達(dá)式賦值運(yùn)算符和賦值表達(dá)式 1 1)基本賦值運(yùn)算符)基本賦值運(yùn)算符 將賦值運(yùn)算符右邊的表達(dá)式的值賦給其左邊的將賦值運(yùn)算符右邊的表達(dá)式的值賦給其左邊的; 【例【例】float xfloat x3.13.1;intint y y;y yx+2x+2;float yfloat y5.65.6;intint x x;x+2x+2y y;5 5y y;2022-4-21 2 2)復(fù)

31、合賦值運(yùn)算符)復(fù)合賦值運(yùn)算符 算術(shù)運(yùn)算符算術(shù)運(yùn)算符 對(duì)賦值運(yùn)算符左、右兩邊的運(yùn)算對(duì)象進(jìn)行指定的算術(shù)運(yùn)算符對(duì)賦值運(yùn)算符左、右兩邊的運(yùn)算對(duì)象進(jìn)行指定的算術(shù)運(yùn)算符的運(yùn)算,再將運(yùn)算結(jié)果賦予左邊的變量;的運(yùn)算,再將運(yùn)算結(jié)果賦予左邊的變量; 【例】【例】 a+=3 a+=3 等價(jià)于等價(jià)于a=a+3a=a+3 那么那么a a* *b+1 b+1 等價(jià)于等價(jià)于a aa a* *(b+1b+1) a += a +=(b b) ( (其中其中a a為變量,為變量,b b為表達(dá)式為表達(dá)式) ) a +a += =(b b) ( (將有下劃線的將有下劃線的“a+”a+”移到移到“=”=”右側(cè)右側(cè)) ) a = a +

32、 a = a +(b b) ( (在在“=”=”左側(cè)補(bǔ)上變量名左側(cè)補(bǔ)上變量名a)a)2022-4-21 3 3)賦值表達(dá)式)賦值表達(dá)式 用用將將連接而成的式子稱為賦值表達(dá)連接而成的式子稱為賦值表達(dá)式。式。 【例【例】 intint k k,a a1 1,j j5 5;a+a+j+ j+ 【例【例】 intint x x6 6; x+x+x-x-x x* *x x;a aa +a +(j+j+)a a6 6,j j6 6x xx+x+(x-x-x x* *x x)x xx+x+(x xx-xx-x* *x x)x x-60-602022-4-21 2.4.3 2.4.3 逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式逗

33、號(hào)運(yùn)算符和逗號(hào)表達(dá)式 1 1)逗號(hào)運(yùn)算符)逗號(hào)運(yùn)算符“,”的用法:的用法: 用作分隔符用作分隔符在變量說(shuō)明語(yǔ)句、函數(shù)調(diào)用語(yǔ)句等場(chǎng)合,例在變量說(shuō)明語(yǔ)句、函數(shù)調(diào)用語(yǔ)句等場(chǎng)合,例 如如 intint a a,b b,c c; 用作運(yùn)算符用作運(yùn)算符是一個(gè)雙目運(yùn)算符,構(gòu)成逗號(hào)表達(dá)式,是一個(gè)雙目運(yùn)算符,構(gòu)成逗號(hào)表達(dá)式,運(yùn)算順序自左至右;例如,運(yùn)算順序自左至右;例如 a a2 2* *6 6,a-4a-4,a+15a+15;12128 82727逗號(hào)表達(dá)式的值為逗號(hào)表達(dá)式的值為27272022-4-21 2 2)逗號(hào)表達(dá)式)逗號(hào)表達(dá)式 表達(dá)式表達(dá)式1 1,表達(dá)式,表達(dá)式2 2,表達(dá)式,表達(dá)式3 3,表達(dá)式,

34、表達(dá)式n n 分別計(jì)算每一個(gè)表達(dá)式的值,并將最后一分別計(jì)算每一個(gè)表達(dá)式的值,并將最后一個(gè)表達(dá)式的值作為整個(gè)逗號(hào)表達(dá)式的結(jié)果個(gè)表達(dá)式的值作為整個(gè)逗號(hào)表達(dá)式的結(jié)果 【例【例】x x5+55+5,10+1010+10 【例【例】x x(5+55+5,10+1010+10)2020,1010逗號(hào)表達(dá)式的值和逗號(hào)表達(dá)式的值和x x的值分別為的值分別為賦值語(yǔ)句之后賦值語(yǔ)句之后x x的值為的值為20202022-4-21 【例】分析逗號(hào)表達(dá)式(【例】分析逗號(hào)表達(dá)式(a a3 3* *5 5,a a* *4 4),),a+15a+15的結(jié)果。的結(jié)果。 6060a a的值為的值為1515整個(gè)逗號(hào)表達(dá)式的值為整個(gè)

35、逗號(hào)表達(dá)式的值為3030 【例【例】intint x x,y y,分析,分析y y(x x1 1,+x+x,x+2x+2)的結(jié)果。)的結(jié)果。逗號(hào)表達(dá)式的值為逗號(hào)表達(dá)式的值為4 44 4y y的值為的值為括號(hào)中的表達(dá)式值為括號(hào)中的表達(dá)式值為2022-4-21 2.4.4 2.4.4 關(guān)系運(yùn)算符和關(guān)系表達(dá)式關(guān)系運(yùn)算符和關(guān)系表達(dá)式 關(guān)系運(yùn)算主要用在程序中的判斷語(yǔ)句。關(guān)系運(yùn)算主要用在程序中的判斷語(yǔ)句。 1 1、關(guān)系運(yùn)算符、關(guān)系運(yùn)算符 = = != = = !=同級(jí)同級(jí)同級(jí)同級(jí)高高低低2 2、關(guān)系表達(dá)式、關(guān)系表達(dá)式 若干表達(dá)式用關(guān)系運(yùn)算符連接而成,關(guān)系表達(dá)式的值為若干表達(dá)式用關(guān)系運(yùn)算符連接而成,關(guān)系表達(dá)

36、式的值為0 0或或1 1。 【例】設(shè)【例】設(shè)x x1 1,y y2 2,z z3 3,分析下面的關(guān)系表達(dá)式的值。,分析下面的關(guān)系表達(dá)式的值。 x!=y=z-2x!=y=z-21 12022-4-21 2.4.5 2.4.5 邏輯運(yùn)算符和邏輯表達(dá)式邏輯運(yùn)算符和邏輯表達(dá)式 1 1、邏輯運(yùn)算符、邏輯運(yùn)算符運(yùn)算符運(yùn)算符優(yōu)先級(jí)優(yōu)先級(jí)!(邏輯非)(邏輯非)1* / %2+ -3 =4= !=5&(邏輯與)(邏輯與)6|(邏輯或)(邏輯或)7=82022-4-21 2)邏輯表達(dá)式)邏輯表達(dá)式 用邏輯運(yùn)算符將若干不同類型的表達(dá)式連接而成的式子稱為邏輯用邏輯運(yùn)算符將若干不同類型的表達(dá)式連接而成的式子稱為

37、邏輯表達(dá)式。表達(dá)式。 邏輯表達(dá)式的值應(yīng)該是一個(gè)邏輯量邏輯表達(dá)式的值應(yīng)該是一個(gè)邏輯量“真真”或或“假假”。c語(yǔ)言編譯語(yǔ)言編譯系統(tǒng)在給出邏輯運(yùn)算結(jié)果時(shí),判斷一個(gè)量是否為系統(tǒng)在給出邏輯運(yùn)算結(jié)果時(shí),判斷一個(gè)量是否為“真真”時(shí),以時(shí),以0代表代表“假假”,以,以代表代表“真真”。 【例】設(shè)【例】設(shè)int a0,b2,c3;判斷下面邏輯表達(dá)式的值。;判斷下面邏輯表達(dá)式的值。 a0 , a0 | b0 | c0 , !a2022-4-21 代數(shù)中的不等式代數(shù)中的不等式0 x0)& (x5),而不能直接寫(xiě)成),而不能直接寫(xiě)成0 x=A&c=a&c=z【例】判別整數(shù)變量【例】判別整數(shù)變量

38、year是否為閏年是否為閏年。(year40&year%100!=0)| |( (year%400=0) )返回返回2022-4-21 2.4.6 2.4.6 位運(yùn)算符和位表達(dá)式位運(yùn)算符和位表達(dá)式 1 1)位運(yùn)算符)位運(yùn)算符位運(yùn)算符位運(yùn)算符形形 式式功功 能能x對(duì)對(duì)x x的二進(jìn)制值按位求反的二進(jìn)制值按位求反& &x&yx&y對(duì)對(duì)x x,y y的二進(jìn)制值按位與的二進(jìn)制值按位與| |x|yx|y對(duì)對(duì)x x,y y的二進(jìn)制值按位或的二進(jìn)制值按位或 x x yy對(duì)對(duì)x x,y y的二進(jìn)制值按位異或的二進(jìn)制值按位異或xmxxmxm將將x x的二進(jìn)制值右移的二進(jìn)制值

39、右移m m位位 2 2)位運(yùn)算符求值規(guī)則)位運(yùn)算符求值規(guī)則2022-4-21 3 3)位運(yùn)算的優(yōu)先級(jí))位運(yùn)算的優(yōu)先級(jí) & | & |運(yùn)運(yùn) 算算 符符求求 值值 規(guī)規(guī) 則則0=10=1 1=01=0& &0&0=0 0&1=0 1&0=0 1&1=10&0=0 0&1=0 1&0=0 1&1=1| |0|0=0 0|1=1 1|0=0 1|1=10|0=0 0|1=1 1|0=0 1|1=1 0 0 0=0 0 1=1 1 0=1 1 1=0 0=0 0 1=1 1 0=1 1 1=000101110

40、2 00101110001011102 001011102 結(jié)果為結(jié)果為 0000101100001011高高低低2022-4-21 【例】取一個(gè)整數(shù)【例】取一個(gè)整數(shù)a a從右端開(kāi)始的從右端開(kāi)始的4 47 7位。位。 先使先使a a右移右移4 4位;下圖中,位;下圖中, (a)(a)圖是未右移時(shí)的情況圖是未右移時(shí)的情況; ; (b) (b)圖是右移圖是右移4 4位后的情況。目的是使要取出的那幾位移到最位后的情況。目的是使要取出的那幾位移到最 右端。右移到右端可以用下面方法實(shí)現(xiàn):右端。右移到右端可以用下面方法實(shí)現(xiàn): a 4a 4。 2022-4-21 設(shè)置一個(gè)低設(shè)置一個(gè)低4 4位全為位全為1,1

41、,其余全為其余全為0 0的數(shù)。可用下面方法的數(shù)。可用下面方法實(shí)現(xiàn):實(shí)現(xiàn): ( ( 0 4 )0 4 ) 0 0的全部二進(jìn)制為全的全部二進(jìn)制為全1 1,左移,左移4 4位,這樣右端低位,這樣右端低4 4位為位為 0 0。見(jiàn)下面所示:。見(jiàn)下面所示: 0:00000:0000000000000000 0: 11110: 1111111111111111 04:111104:1111110000110000 ( (04):00000 4) &(a 4) & ( ( 0 4 )0 4 ) 根據(jù)介紹的方法,與低根據(jù)介紹的方法,與低4 4位為位為1 1的數(shù)進(jìn)行的數(shù)進(jìn)行& &運(yùn)

42、算,就能將這運(yùn)算,就能將這4 4位位保留下來(lái)。保留下來(lái)。 程序如下:程序如下: 2022-4-21 main(main() ) unsigned a unsigned a,b b,c c,d d; scanf(%oscanf(%o ,&a)&a); b=ab=a4 4; c=c=( (0 04)4); d=b&c d=b&c; printf(%oprintf(%o, %dn%o%dn%o, %dn%dn,a a,a a,d d,d)d); 2022-4-21 2.5.1 2.5.1 庫(kù)函數(shù)的調(diào)用庫(kù)函數(shù)的調(diào)用 abs(xabs(x) ) fabs(x fabs(x

43、) ) sqrt(x sqrt(x) ) pow(x,y pow(x,y) ) clrscr clrscr( )( )2022-4-21 2.5.2 2.5.2 使用庫(kù)函數(shù)注意事項(xiàng)使用庫(kù)函數(shù)注意事項(xiàng) 庫(kù)函數(shù)是庫(kù)函數(shù)是C C編譯系統(tǒng)預(yù)定義的,庫(kù)函數(shù)的原型都被編譯系統(tǒng)預(yù)定義的,庫(kù)函數(shù)的原型都被定義在擴(kuò)展名為定義在擴(kuò)展名為h h的頭文件,在調(diào)用庫(kù)函數(shù)之前,必須的頭文件,在調(diào)用庫(kù)函數(shù)之前,必須用用編譯預(yù)處理命令將相關(guān)的頭文件包含到程序編譯預(yù)處理命令將相關(guān)的頭文件包含到程序中來(lái)。中來(lái)。2022-4-21 【例】計(jì)算常用對(duì)數(shù)【例】計(jì)算常用對(duì)數(shù)lgxlgx。 #include “math.h#include

44、 “math.h” main( ) main( ) float x; float x; scanf(“%f”,&x scanf(“%f”,&x);); printf(“%fn”,log10(x); printf(“%fn”,log10(x); 2022-4-212022-4-21 順序結(jié)構(gòu)順序結(jié)構(gòu) 分支結(jié)構(gòu)分支結(jié)構(gòu) 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)C C語(yǔ)言用于順序結(jié)構(gòu)的基本語(yǔ)句是表達(dá)式語(yǔ)句、復(fù)合語(yǔ)句和空語(yǔ)言用于順序結(jié)構(gòu)的基本語(yǔ)句是表達(dá)式語(yǔ)句、復(fù)合語(yǔ)句和空語(yǔ)句。語(yǔ)句。 3.1.1 3.1.1 表達(dá)式語(yǔ)句表達(dá)式語(yǔ)句2022-4-21表達(dá)式;表達(dá)式; 【例】【例】a a1 1; 【功能】完成計(jì)算表

45、達(dá)式的值或?qū)⒔Y(jié)果賦給某一變量的任務(wù);【功能】完成計(jì)算表達(dá)式的值或?qū)⒔Y(jié)果賦給某一變量的任務(wù); 【例】【例】i+i+; 【例【例】printf(“byeprintf(“bye!”);!”); 【例【例】x=y+zx=y+z; ;2022-4-21 表達(dá)式語(yǔ)句中最常用的是表達(dá)式語(yǔ)句中最常用的是賦值表達(dá)式賦值表達(dá)式 ;);) 簡(jiǎn)單賦值:變量表達(dá)式;簡(jiǎn)單賦值:變量表達(dá)式; 多重賦值:變量多重賦值:變量1 1變量變量2 2變量變量n n表達(dá)式;表達(dá)式; 賦值表達(dá)式可以出現(xiàn)在任何表達(dá)式允許出現(xiàn)的地方,而賦賦值表達(dá)式可以出現(xiàn)在任何表達(dá)式允許出現(xiàn)的地方,而賦 值語(yǔ)句則不能;值語(yǔ)句則不能;x=(y=2)+(z=3

46、+y);x=(y=2)+(z=3+y);x=(y=2;)+(z=3+y;)x=(y=2;)+(z=3+y;);正確正確錯(cuò)誤錯(cuò)誤2022-4-213.1.2 3.1.2 復(fù)合語(yǔ)句復(fù)合語(yǔ)句 若干連續(xù)語(yǔ)句若干連續(xù)語(yǔ)句 【例【例】 z=x; x=y; y=z; z=x; x=y; y=z; 中最后一個(gè)語(yǔ)句末尾的分號(hào)不能省略,并且在中最后一個(gè)語(yǔ)句末尾的分號(hào)不能省略,并且在 之外不能再加之外不能再加“;”。 【應(yīng)用范圍】復(fù)合語(yǔ)句主要用于選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)中。【應(yīng)用范圍】復(fù)合語(yǔ)句主要用于選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)中。返回返回2022-4-213.1.3 3.1.3 空語(yǔ)句空語(yǔ)句; 【功能】一般作為程序的轉(zhuǎn)向點(diǎn)或作為

47、循環(huán)語(yǔ)句中的空循環(huán)體;【功能】一般作為程序的轉(zhuǎn)向點(diǎn)或作為循環(huán)語(yǔ)句中的空循環(huán)體;2022-4-21C C語(yǔ)言的輸入和輸出函數(shù)(原型放在頭文件語(yǔ)言的輸入和輸出函數(shù)(原型放在頭文件stdio.hstdio.h中):中): putcharputchar(字符輸出);(字符輸出); printfprintf(格式輸出);(格式輸出); getchargetchar(字符輸入);(字符輸入); scanfscanf(格式輸入);(格式輸入);2022-4-213.2.1 3.2.1 數(shù)據(jù)的輸出數(shù)據(jù)的輸出 1 1、putcharputchar函數(shù)函數(shù) 在顯示器上輸出在顯示器上輸出字符。字符。 putchar

48、putchar (參數(shù))(參數(shù)) 參數(shù)可以是一個(gè)字符型變量、一個(gè)整型變量或一個(gè)參數(shù)可以是一個(gè)字符型變量、一個(gè)整型變量或一個(gè)字符型常量(包括控制字符和轉(zhuǎn)義字符)等。字符型常量(包括控制字符和轉(zhuǎn)義字符)等。 【例】使用庫(kù)函數(shù)【例】使用庫(kù)函數(shù)putcharputchar()輸出各種字符。()輸出各種字符。2022-4-21 include main( ) char ch1, ch2; int j; ch1=C; ch2=h; j=105;putchar(ch1);putchar(ch2);putchar(j);putchar(n);putchar(141); putchar(n);輸出字符輸出字符C

49、 C輸出字符輸出字符h h輸出字符輸出字符i i輸出字符輸出字符n n輸出字符輸出字符a a,141141是轉(zhuǎn)義字符是轉(zhuǎn)義字符輸出換行輸出換行2022-4-21 2 2、printfprintf函數(shù)函數(shù) 1)1) printfprintf(“格式控制字符串格式控制字符串”,輸出項(xiàng),輸出項(xiàng)1 1,輸出項(xiàng),輸出項(xiàng)2 2,) 將各輸出項(xiàng)(可以是變量、常量、表達(dá)式)的將各輸出項(xiàng)(可以是變量、常量、表達(dá)式)的值按指定的格式輸出到屏幕上。值按指定的格式輸出到屏幕上。 【例【例】 printfprintf( “( “”,x”,x ); ); 2) printf 2) printf函數(shù)中常用的格式控制函數(shù)中常

50、用的格式控制 2022-4-21格式字符格式字符 格式修飾格式修飾 格式說(shuō)明總是由格式說(shuō)明總是由“”字符開(kāi)始字符開(kāi)始標(biāo)志、類型修飾、輸標(biāo)志、類型修飾、輸出最小寬度和精度出最小寬度和精度說(shuō)明輸出項(xiàng)類型說(shuō)明輸出項(xiàng)類型 格式字符格式字符 見(jiàn)見(jiàn)P P3232表表3.13.1; 【例【例】printfprintf(“x xd d,y=y=fnfn”,x x,y y);); 【例】【例】mainmain()() char c=A; char c=A; int int x=1234; x=1234; float y=-123.456789; float y=-123.456789; printf(“|%c|

51、%s|%d|%f|%e|n”,c,“Hello”,x,y,y printf(“|%c|%s|%d|%f|%e|n”,c,“Hello”,x,y,y);); 2022-4-21v 標(biāo)志標(biāo)志 - -表示輸出值左對(duì)齊,右邊補(bǔ)空;表示輸出值左對(duì)齊,右邊補(bǔ)空; 【例【例】 printfprintf(”-d”-d”,-24-24);); 運(yùn)行結(jié)果:運(yùn)行結(jié)果:-24-24 + +表示輸出結(jié)果右對(duì)齊,輸出符號(hào)位;表示輸出結(jié)果右對(duì)齊,輸出符號(hào)位; 對(duì)對(duì)o o格式輸出時(shí)加前綴格式輸出時(shí)加前綴0 0,對(duì),對(duì)x x格式輸出時(shí)加前綴格式輸出時(shí)加前綴0 x0 x,對(duì),對(duì) e e、g g、f f格式當(dāng)結(jié)果有小數(shù)時(shí)才給出小數(shù)

52、點(diǎn);格式當(dāng)結(jié)果有小數(shù)時(shí)才給出小數(shù)點(diǎn);2022-4-21v 精度精度 m .nm .n 【例【例】printfprintf(“8.1f”8.1f”,123.45123.45);); 輸出結(jié)果:輸出結(jié)果: 123.5123.5v 輸出寬度輸出寬度 用十進(jìn)制整數(shù)限定輸出數(shù)據(jù)的位數(shù):用十進(jìn)制整數(shù)限定輸出數(shù)據(jù)的位數(shù): 【例【例】printfprintf(“5d”5d”,-24-24);); 運(yùn)行結(jié)果:運(yùn)行結(jié)果: -24-24數(shù)據(jù)總寬度小數(shù)位數(shù)2022-4-21v 類型修飾類型修飾 h h表示輸出項(xiàng)是短整型或無(wú)符號(hào)短整型;表示輸出項(xiàng)是短整型或無(wú)符號(hào)短整型; l l表示輸出項(xiàng)是長(zhǎng)整型或無(wú)符號(hào)長(zhǎng)整型;表示輸出

53、項(xiàng)是長(zhǎng)整型或無(wú)符號(hào)長(zhǎng)整型;【例【例】 long intlong int x x12345671234567; printfprintf(”|%ld|%d|”, x, x|%ld|%d|”, x, x); ; 輸出結(jié)果:輸出結(jié)果:|1234567|-10617|1234567|-10617|2022-4-21 【例【例】printfprintf函數(shù)應(yīng)用舉例。函數(shù)應(yīng)用舉例。 include stdio.hinclude main( ) main( ) int int x =28; x =28; float y =-1.7; float y =-1.7; char c =B; char c =B;

54、double z =1.25e+7; double z =1.25e+7; printf(“x printf(“x=%+5d, y=%-8.3fn”, x, y);=%+5d, y=%-8.3fn”, x, y); printf(“|%c#%-5c|n”, c, c); printf(“|%c#%-5c|n”, c, c); printf(“z printf(“z=%lfn”, z);=%lfn”, z); x= x= +28,y=-1.700+28,y=-1.700 |B#B|B#B | |Z=12500000.000000Z=12500000.0000002022-4-213.2.2 3.

55、2.2 數(shù)據(jù)的輸入數(shù)據(jù)的輸入 1 1、getchargetchar函數(shù)函數(shù)c cgetchargetchar( ) 從鍵盤(pán)上讀取從鍵盤(pán)上讀取字符;字符;【例【例】include main( ) char ch; ch=getchar( ); printf(“%c:%dn”, ch, c); include main( ) char ch; ch=getchar( ); printf(“c:%dn”, ch, c); 2022-4-21 2 2、scanfscanf函數(shù)函數(shù) 1 1)函數(shù)調(diào)用)函數(shù)調(diào)用 scanfscanf(“格式控制字符串格式控制字符串”,輸入項(xiàng),輸入項(xiàng)1 1,輸入項(xiàng),輸入項(xiàng)2

56、 2,) 按指定的格式接收由鍵盤(pán)輸入的數(shù)據(jù),并存入輸按指定的格式接收由鍵盤(pán)輸入的數(shù)據(jù),并存入輸入項(xiàng)變量所在的內(nèi)存單元中。入項(xiàng)變量所在的內(nèi)存單元中。 格式修飾格式修飾 格式字符格式字符 輸入項(xiàng)必須為地址引用:輸入項(xiàng)必須為地址引用:& &變量名變量名【例【例】scanf(“%dscanf(“%d, %d”, &x, &y);, %d”, &x, &y);2022-4-21 2 2)scanfscanf函數(shù)中常用的格式控制函數(shù)中常用的格式控制 格式字符格式字符 見(jiàn)見(jiàn)P P3636表表3.33.3; 輸入數(shù)據(jù)寬度輸入數(shù)據(jù)寬度 用十進(jìn)制整數(shù)設(shè)定輸入數(shù)據(jù)的寬

57、用十進(jìn)制整數(shù)設(shè)定輸入數(shù)據(jù)的寬 度,【例度,【例】scanfscanf(”5d”5d”,&a&a); ;輸入輸入765437654321 類型修飾符類型修飾符 類同于類同于printfprintf函數(shù);函數(shù); 3 3)scanfscanf函數(shù)的使用要點(diǎn)函數(shù)的使用要點(diǎn) int xint x;scanfscanf(”%d”%d”,x x);); 輸入數(shù)據(jù)時(shí),不允許規(guī)定精度輸入數(shù)據(jù)時(shí),不允許規(guī)定精度錯(cuò)誤錯(cuò)誤scanf(”%d”,&x)2022-4-21 輸入數(shù)據(jù)時(shí),數(shù)據(jù)與數(shù)據(jù)之間應(yīng)使用分隔符;輸入數(shù)據(jù)時(shí),數(shù)據(jù)與數(shù)據(jù)之間應(yīng)使用分隔符; 【例【例】scanfscanf(”d d,d

58、”d”,&x&x,&y&y);); 【例【例】scanfscanf(”d dd”d”,&x&x,&y&y);); 按原樣輸入的字符在鍵入時(shí)不能遺漏,否則將導(dǎo)致數(shù)據(jù)按原樣輸入的字符在鍵入時(shí)不能遺漏,否則將導(dǎo)致數(shù)據(jù) 項(xiàng)與對(duì)應(yīng)讀入數(shù)據(jù)錯(cuò)位;項(xiàng)與對(duì)應(yīng)讀入數(shù)據(jù)錯(cuò)位; 【例【例】scanf(“x=%d,y=%d”,&x,&yscanf(“x=%d,y=%d”,&x,&y););正確的輸入應(yīng)該是正確的輸入應(yīng)該是x x3 3,y y4 4 鍵入數(shù)據(jù)的類型、寬度應(yīng)該與格式控制中給定的相一致;鍵入數(shù)據(jù)的類型、寬度應(yīng)該與

59、格式控制中給定的相一致; 例例 double adouble a,b b;scanfscanf(”d dd”d”,&a&a,&b&b);); 錯(cuò)誤錯(cuò)誤2022-4-21 為了提高程序設(shè)計(jì)的質(zhì)量和效率,現(xiàn)在普遍采用結(jié)構(gòu)化程序?yàn)榱颂岣叱绦蛟O(shè)計(jì)的質(zhì)量和效率,現(xiàn)在普遍采用結(jié)構(gòu)化程序設(shè)計(jì)方法。結(jié)構(gòu)化程序由若干個(gè)基本結(jié)構(gòu)組成。每一個(gè)基本結(jié)構(gòu)可設(shè)計(jì)方法。結(jié)構(gòu)化程序由若干個(gè)基本結(jié)構(gòu)組成。每一個(gè)基本結(jié)構(gòu)可以包含一個(gè)或若干個(gè)語(yǔ)句。以包含一個(gè)或若干個(gè)語(yǔ)句。 見(jiàn)下圖。先執(zhí)行見(jiàn)下圖。先執(zhí)行A A操作,再執(zhí)行操作,再執(zhí)行B B操作,兩者是順操作,兩者是順序執(zhí)行的關(guān)系。圖是序執(zhí)行的關(guān)系。圖是

60、nsns結(jié)構(gòu)化流程圖。結(jié)構(gòu)化流程圖。2022-4-21 【例】輸入三角形的三邊長(zhǎng),求三角形面積?!纠枯斎肴切蔚娜呴L(zhǎng),求三角形面積。 設(shè)輸入的三邊長(zhǎng)設(shè)輸入的三邊長(zhǎng)a a、b b、c c能構(gòu)成三角形。從數(shù)學(xué)知識(shí)已知求三角能構(gòu)成三角形。從數(shù)學(xué)知識(shí)已知求三角形面積的公式為:形面積的公式為: 其中其中s=(a+b+c)/2s=(a+b+c)/2; includestdio.hinclude includeinclude main( ) main( ) float afloat a,b b,c c,s s,areaarea; scanf(%fscanf(%f,%f%f,%f%f,&a&a,&b&b,&c)&c); s= (a+b+c) /2 s= (a+b+c) /2 ; area=sqrt(sarea=sqrt(s* *(s-a)(s-a)* *(s-b)(s-b)* *(s-c)(s-c); 2022-4-21 printf(aprintf(a=%7.2f=%7.2f,b=%7.2fb=%7.2f,c =%7.2fc =%7.2f,s =%7.2fns =%7.2fn, a a,b b,c c,s)s); printf(areaprintf(area=%7.2fn=%7.2fn

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論