C++程序設(shè)計課件_第1頁
C++程序設(shè)計課件_第2頁
C++程序設(shè)計課件_第3頁
C++程序設(shè)計課件_第4頁
C++程序設(shè)計課件_第5頁
已閱讀5頁,還剩580頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

C++入門2

§電腦的組成——硬體和軟體

一、電腦硬體1

硬體組成:由運(yùn)算器、控制器、記憶體、輸入設(shè)備和輸出設(shè)備等五大部分組成,如圖所示。3二、電腦軟體1軟體的作用:軟體是電腦系統(tǒng)的靈魂,沒有配備任何軟體的“裸機(jī)”無法使用,沒有配備足夠的軟體,電腦的功能將不能很好地發(fā)揮,應(yīng)用範(fàn)圍也將受到很大的影響。2軟體的組成:43程式語言的發(fā)展:正象人與人之間的交流需要自然語言一樣,人與計算交流也需要語言,我們把這種語言稱為電腦語言,電腦語言有多種:C++;C;PB;VB;Java等等①電腦語言的發(fā)展過程:

機(jī)器語言組合語言高級語言

機(jī)器語言:由0或1代碼組成的且是電腦唯一能夠直接讀懂並能直接執(zhí)行的語言。

組合語言:將機(jī)器指令映射為一些可以被人讀懂的助記符,如ADD、SUB等。5

高級語言:遮罩低級語言硬體細(xì)節(jié)的語言,各類電腦能通用、接近人們“自然語言”和“數(shù)學(xué)語言”的程式設(shè)計語言,通用性和可移植好翻譯系統(tǒng):把高級語言編寫的程式翻譯成用二進(jìn)位形式表示的機(jī)器語言程序的軟體翻譯方式有兩種:編譯方式和解釋方式根源程式:用高級語言編寫的程式目的程式:是翻譯後得到的機(jī)器語言程式,它是電腦可執(zhí)行的程式程式:為使電腦完成一個預(yù)定的任務(wù)而設(shè)計的一系列語句或指令。程式是指令的集合。電腦的工作是用程式來控制的。程式設(shè)計:設(shè)計、書寫及檢查調(diào)試程式的過程6各種電腦語言的發(fā)展演化進(jìn)程:FORTRANFORTRAN77FORTRAN90BASICANSI-BASICQBASICVISUAL-BASICDELPHIPASCALALGOLALGOL68SIMULA67SMALLTALKC++JAVAC#BCPLBC7§電腦的工作過程一利用電腦解題的步驟

1.上機(jī)前的準(zhǔn)備:①建立數(shù)學(xué)模型

②確定解題步驟(即演算法)

③用某種計算語言將演算法寫成程式

2上機(jī)調(diào)試運(yùn)行該程式

3維護(hù),升級該程式電腦的工作過程取指令→分析指令→執(zhí)行指令(程式=演算法+數(shù)據(jù)結(jié)構(gòu))8§演算法的表示形式⒈用流程圖表示演算法演算法:是程式的靈魂,是為解決一個問題而採取的方法和步驟,或者說是解題步驟的精確描述演算法的主要表示形式:流程圖:用一些框圖表示各種操作,且為提高演算法的品質(zhì),規(guī)定演算法(程式)只能由三種基本結(jié)構(gòu)(順序、選擇和迴圈)組成。ANSI(美國國家標(biāo)準(zhǔn)化協(xié)會)規(guī)定了一些常用的流程圖符號:起止框

(示演算法的開始和結(jié)束)判斷框

(一個入口兩個出口,依給定的條件是否滿足決定執(zhí)行兩條路徑中的某一路徑)9處理框

(示“賦值”等一般處理)輸入/輸出框

(示輸入輸出操作)流程線

(示流程的方向)連接點(diǎn)

(小圓圈,將畫在不同地方的流程線連接起來)注釋框

(對流程線中某些部分作必要的說明,不是流程圖中的必要部分,不反映流程和操作)例題:求1+2+3+…直到其和等於或大於100為止。用流程圖表示其演算法10分析:和數(shù)用變數(shù)t

存放,加數(shù)用變數(shù)i

存放結(jié)束開始0t,1it+iti+1it

100輸出t的值不成立成立順序結(jié)構(gòu)順序結(jié)構(gòu)迴圈結(jié)構(gòu)11⒉用N-S流程圖表示演算法a.順序結(jié)構(gòu)塊A、B是按順序執(zhí)行的b.選擇結(jié)構(gòu)(if‥‥‥else)P條件成立執(zhí)行A操作,p條件不成立執(zhí)行B操作ABABp成立

不成立12c.迴圈結(jié)構(gòu)前測試當(dāng)型迴圈當(dāng)p1滿足A前測試直到型迴圈直到p2滿足A後測試當(dāng)型迴圈當(dāng)p1滿足A後測試直到型迴圈直到p2滿足A(for、while、do‥‥‥while)13例題:

求1+2+3…直到其和等於或大於100為止,用N-S圖表示其演算法直到t

100輸出t0t,1it+iti+1i分析:和數(shù)用變數(shù)t

存放,加數(shù)用變數(shù)i

存放intt=0,i=0;t=t+i;i=i+1;do

{}while(t<100);cout<<t;voidmain(){#include<iostream.h>}143用偽代碼(演算法描述語言)表示演算法

偽代碼:用介於自然語言和電腦語言之間的文字和符號來描述演算法

特點(diǎn):書寫方便,格式緊湊,便於向程式過渡,適用軟體專業(yè)人員使用。例題:

將x,y中最大的輸出分析:用偽代碼表示其演算法為:if(x>y)輸出xelse輸出y15

對複雜問題如何進(jìn)行抽象和分解,對程式如何進(jìn)行組織,使得程式的可維護(hù)性、可讀性、穩(wěn)定性、效率等更好,是程式設(shè)計方法研究的問題。目前,有兩種重要的程式設(shè)計方法:結(jié)構(gòu)化的程式設(shè)計和面向?qū)ο蟮某淌皆O(shè)計

結(jié)構(gòu)化程式設(shè)計(StructuredProgramming,簡稱SP)

主要思想是:

把一個複雜的任務(wù)不斷進(jìn)行功能分解,劃分成一系列較小的任務(wù),直到這些子任務(wù)小到易於理解和實(shí)現(xiàn)。結(jié)構(gòu)化程式設(shè)計兩個要點(diǎn):①採用“自頂向下逐步求精”的設(shè)計思想

②程式只採用順序、迴圈和選擇三種控制結(jié)構(gòu)用C++編寫的結(jié)構(gòu)化程式是由許多函數(shù)組成的,其程式的結(jié)構(gòu)清晰。但也有一些缺點(diǎn):

§程式的設(shè)計方法16

①恰當(dāng)?shù)墓δ芊纸馐墙Y(jié)構(gòu)化程式設(shè)計的前提。然而對用戶來講,變化最大的就是功能的改進(jìn)、添加和刪除。結(jié)構(gòu)化程式要實(shí)現(xiàn)這種功能變化不容易,有時甚至要重新設(shè)計整個程式的結(jié)構(gòu)。

②在結(jié)構(gòu)化程式設(shè)計中,數(shù)據(jù)和對數(shù)據(jù)的操作(即函數(shù))分離,函數(shù)依賴於數(shù)據(jù)類型的表示。數(shù)據(jù)的表示發(fā)生變化,則與之相關(guān)的所有函數(shù)均要修改,使得程式難於維護(hù)。

③由於數(shù)據(jù)結(jié)構(gòu)和函數(shù)密切相關(guān),使得程式代碼複用性較差

面向?qū)ο蟮某淌皆O(shè)計面向?qū)ο蟪淌皆O(shè)計是在吸取結(jié)構(gòu)化程式設(shè)計的一切優(yōu)點(diǎn)的基礎(chǔ)上發(fā)展起來的,其程式由對象組成,對象間通過消息相互作用。它的本質(zhì)是把數(shù)據(jù)和處理數(shù)據(jù)的過程當(dāng)成一個整體——對象。17

對象:客觀世界中任何一個事物都可以看作一個對象,例如三年級一班。一個對象應(yīng)包括兩個因素:一是數(shù)據(jù)(相當(dāng)於班級中的學(xué)生);二是需要進(jìn)行的操作,相當(dāng)於學(xué)生進(jìn)行的活動:上課、休息、開會和文娛活動等。對象是由數(shù)據(jù)和操作代碼組成:

類(class):對象的類型叫做類,例如三年級一班、二班、三班是三個不同的對象,它們具有完全相同的結(jié)構(gòu)和特性故它們屬於同一類。類代表了某一批對象的共性和特徵,類是對象的抽象,而對象是類的具體實(shí)例。類是用來定義對象的一種抽象數(shù)據(jù)類型,或者說它是產(chǎn)生對象的範(fàn)本。

18

封裝:有兩個含義:①把對象的全部屬性和全部服務(wù)結(jié)合在一起,形成一個不可分割的獨(dú)立單位(即對象);②第二個涵義也稱作“數(shù)據(jù)隱藏”,即盡可能隱蔽對象的內(nèi)部細(xì)節(jié)。例如:聲卡是自成一體的,這種自成一體性稱為封裝性,無需知道其工作原理就能使用的思想稱為數(shù)據(jù)隱藏。在C++中,封裝是通過定義類來實(shí)現(xiàn)的。

繼承:類與類之間可以組成繼承層次,一個類的定義(子類或派生類)可以定義在另一個已定義類(父類或超類或基類)的基礎(chǔ)上。子類可以繼承父類中的屬性和操作,也可以定義自己的屬性和操作。繼承的主要益處是可以複用超類的程式代碼。

多態(tài)性:對象的多態(tài)性是指在一般類中定義的屬性或操作被特殊類繼承之後,可以具有不同的數(shù)據(jù)類型或表現(xiàn)出不同的行為。這使得同一個屬性或操作名在一般類及其各個特殊類中具有不同的語義。

19§C++語言概述一、C++的發(fā)展史:BCPLBCC++CPLALGOL60二、從C到C++:

C語言:是介於低級組合語言與高級語言之間的語言;C語言既可向彙編語言一樣直接訪問電腦硬體,又具備高級語言的優(yōu)點(diǎn)(面向用戶、容易記憶、清晰靈活),可稱之為高級的組合語言。

常用來編寫系統(tǒng)軟體。然而,C語言也存在一些缺陷:類型檢查機(jī)制較弱,代碼的重用率也低。為了克服C的缺點(diǎn)並保持其優(yōu)點(diǎn),在1980年貝爾實(shí)驗實(shí)對C進(jìn)行了改進(jìn)和擴(kuò)充,構(gòu)成最早的C++(又稱帶類的C語言)語言。20

C++語言:保留了C語言的優(yōu)點(diǎn)同時也吸收其他面向?qū)ο缶幊陶Z言的長處??梢哉fC++是C的一個超集、一個更好的C語言、C語言的改良版本,也是建立C++的基礎(chǔ)。C++既支持傳統(tǒng)的結(jié)構(gòu)化程式設(shè)計,又支持面向?qū)ο蟮某淌皆O(shè)計。三C++程式開發(fā)過程步驟:1.編輯2.編譯3.連接4.運(yùn)行

編輯(.cpp/.h)

編譯(.obj)聯(lián)接(.exe)運(yùn)行21

編輯:是指把按照C++語法規(guī)則編寫的程式代碼通過編輯器(如:VisualC++6.0)輸入電腦,並存盤。在存盤時,C++原始檔案的擴(kuò)展名為.CPP。編譯:將編輯好的C++根源程式用編譯器進(jìn)行語法檢查並轉(zhuǎn)換為目標(biāo)代碼檔(OBJ檔)。即生成該原始檔案的目標(biāo)代碼。鏈接:將用戶程式生成的(多個)目標(biāo)代碼檔(.obj)以及系統(tǒng)提供的

庫檔(.lib)中的代碼連接在一起,生成一個可執(zhí)行檔(.exe)

(或動態(tài),靜態(tài)庫,.dll,.lib)。執(zhí)行:運(yùn)行所生成的可執(zhí)行檔,用戶可以根據(jù)運(yùn)行結(jié)果來判斷程式是否出錯。如果有輸入數(shù)據(jù),嘗試各種不同的輸入是否都能得到正確結(jié)果.調(diào)試:編碼調(diào)試是一個迴圈過程編輯編譯鏈接執(zhí)行22§C++程式的框架結(jié)構(gòu)1.編程顯示:ThisismyfirstC++program.

/*ch1_1.cppcreatedon2004-02-10author小王*/#include<iostream.h>voidmain(){

//下麵將輸出ThisismyfirstC++program.

cout<<“ThisismyfirstC++program.\n”;}是iostream.h檔定義的標(biāo)準(zhǔn)輸出流設(shè)備是將其右邊的數(shù)據(jù)送到顯示設(shè)備上23

#include<iostream.h>

#include<math.h>

doublemax(doublex,doubley);

voidmain()

{

doublea,b,c;

cout<<"inputtwonumbers:\n";

cin>>a>>b;

c=max(a,b);

cout<<"thesquartofmaximum="<<sqrt(c);

}

doublemax(doublex,doubley)

{

if(x>y)

returnx;

else

returny;

}

運(yùn)行結(jié)果為:

2.求較大數(shù)平方根的程式:inputtwonumbers:216

thesquartofmaximum=4.0000024

#include<iostream.h>

#include<math.h>doublemax(doublex,doubley)

{

if(x>y)

returnx;

else

returny;

}

voidmain()

{

doublea,b,c;

cout<<"inputtwonumbers:\n";

cin>>a>>b;

c=max(a,b);

cout<<"thesquartofmaximum="<<sqrt(c);

}

運(yùn)行結(jié)果為:

3.求較大數(shù)平方根的程式:inputtwonumbers:216

thesquartofmaximum=4.0000025一、結(jié)構(gòu)化程式設(shè)計的C++程式結(jié)構(gòu):

編譯預(yù)處理指令全局說明程式的主函數(shù)main()用戶自定義的子函數(shù)其結(jié)構(gòu)用圖表示為右圖:26①編譯預(yù)處理部分(宏定義,檔包含和條件編譯、):由井字型大小“#”引入的指令為預(yù)處理指令,“#include”稱為檔包含預(yù)處理指令,通過該指令系統(tǒng)將其後程式段使用的名稱進(jìn)行了預(yù)先的說明?!?include<iostream.h>的作用是:將系統(tǒng)定義的一個頭檔iostream.h包含到該程式中,iostream.h檔定義了輸入輸出流對象cout與cin等②全局說明部分:包括程式要用的全局變數(shù)、類說明、用戶定義函數(shù)的原型

說明等。③主函數(shù):任何一個C++程式都有且只有一個主函數(shù)main(),它可以帶參數(shù)。

main函數(shù)的返回值有兩種情況:無返回值(返回類型為void)及返回值為整型27④用戶自定義函數(shù):是程式員為了實(shí)現(xiàn)某些特定的操作而編寫的一組代碼。常用的函數(shù)一般都帶有一定數(shù)目的參數(shù)和一個返回值。⑤注釋部分:多行注釋"/*------*/"或單行注釋"http://-----"

函數(shù)的結(jié)構(gòu)形式:函數(shù)類型函數(shù)名(形式參數(shù)類型:形式參數(shù)){數(shù)據(jù)定義函數(shù)執(zhí)行}例:doublemax(doublex,doubley)

{

if(x>y)

returnx;

else

returny;

}

28二、面向?qū)ο蟪淌皆O(shè)計的C++程式結(jié)構(gòu):

編譯預(yù)處理指令全局說明類的說明類成員函數(shù)的定義用戶定義函數(shù)主函數(shù)main()29§VisualC++6.0開發(fā)環(huán)境介紹

VisualC++6.0(簡稱VC)

:是美國微軟公司開發(fā)的C++集成開發(fā)環(huán)境,它集根源程式的編寫、編譯、連接、調(diào)試、運(yùn)行,以及應(yīng)用程式的檔管理於一體,

是當(dāng)前PC機(jī)上最流行的C++程式開發(fā)環(huán)境。C++的集成環(huán)境開發(fā)環(huán)境有:VisualC++,Turbo-C++,BorlandC++,C++

Builder等。VC的功能較多,應(yīng)在以後逐步掌握,但是本章應(yīng)掌握它的基本用法:30

VC++6.0用戶介面簡介:31菜單欄:包含了該系統(tǒng)的各種功能工具條:由常用功能按鈕組成。專案工作區(qū)(workspace):用來查看和修改專案中的所有元素。

檔專案和專案配置是由專案工作區(qū)組織起來的。專案工作區(qū)的內(nèi)容和設(shè)置通過專案工作區(qū)檔(.dsw)

來描述。在建立一個專案工作區(qū)文件的同時,還生成專案檔(.dsp)和工作區(qū)選項檔(.opt)用來保存工作區(qū)的設(shè)置。32專案(專案)——一個程式是一個專案專案是一些相互關(guān)聯(lián)原始檔案的集合,這些原始檔案組成一個程式包含根源程式、頭檔、目標(biāo)檔等一個專案的所有資訊。專案檔的擴(kuò)展名.dspdsw和dsp由系統(tǒng)自動產(chǎn)生。代碼編輯窗口:通過該窗口輸入根源程式輸出窗口:用來顯示專案創(chuàng)建過程中的錯誤資訊及運(yùn)行結(jié)果33

用VC開發(fā)程式的步驟:1:首先創(chuàng)建一個C++專案file/new/workspace選擇win32consoleapplication輸入專案名稱選擇:創(chuàng)建或加入工作空間2:創(chuàng)建C++原始檔案file/new/file選擇C++sourcefile.選擇Addtoproject把原始檔案加入專案。343:編輯、編譯、連接、運(yùn)行程式編譯:build/compile連接:build/build運(yùn)行:build/!execute35§2.1

C++的詞法及詞法規(guī)則C++的字元集大小寫字母:a,b,A,B‥‥‥數(shù)字:0~9。運(yùn)算符:+,-,*,/,

%,<,<=,=,>=,

>,!=,==,<<,>>,&,|,

&&,‖,∧,~,(),[],{},->,

?

,!,?,?:,,,;,”,#。特殊字元:連字元或下劃線,空格、換行和跳位字元等。36二詞與詞法規(guī)則識別字:用來標(biāo)識用戶定義的常量名、變數(shù)名、函數(shù)名、檔案名、數(shù)組名、和數(shù)據(jù)類型名和程式等。由字母、下劃線或數(shù)字

組成的字元序列,識別字必須由字母或下劃線開始,有效長度是8個字元。正確不正確smart5smart(不能數(shù)字開頭)_decisionbomb?(有非法字元?)key_boardkey.board(有非法字元.)【例】:下圖是正確和不正確的識別字實(shí)例:37

識別字的命名規(guī)則:

①所有識別字必須由字母或下劃線開頭且由字母、下劃線或數(shù)字組成②識別字應(yīng)該儘量有意義。如:年year,長度用length,累加和用sum等。④大小寫字母表示不同意義,即代表不同的識別字⑤不能把關(guān)鍵字它們再定義為變數(shù)的識別字關(guān)鍵字:預(yù)定義的識別字,稱之為關(guān)鍵字,它是一種特殊的識別字。關(guān)鍵字具有特定的含義,作為專用定義符的單詞,不允許另作它用。標(biāo)準(zhǔn)C++中預(yù)定義了以下關(guān)鍵字(常用):38auto break case char

classconst continue default do

ddefaultdelete double else enum

explicit

extern float for friend

gotoif

inline int long

mutablenew operator private protectedpublic register return short

signedsizeof static static_cast struct

switchthis typedef union unsignedvirtualvoid while3.運(yùn)算符和分隔符號

運(yùn)算符是C++語言實(shí)現(xiàn)加、減等各種運(yùn)算的符號。C++語言的分隔符主要是:空格、製錶和換行符。394.字串字串是由雙引號括起來的字元。如“China”,“C++Program”

5.常量

C++中常量包括實(shí)型(浮點(diǎn)常量)和整型常量(十進(jìn)位常量、八進(jìn)制常量、十六進(jìn)制常量)、字元常量和字串常量。

6.注釋注釋是用來幫助閱讀、理解及維護(hù)程式。在編譯時,注釋部分被忽略,不產(chǎn)生目標(biāo)代碼。C++語言提供兩種注釋方式。一種是與C相容的多行注釋用/*和*/分界。另一種是單行注釋,以“//”開頭的表明本行中“//”符號後的內(nèi)容是注釋。40§2.2

數(shù)據(jù)類型數(shù)據(jù)類型:它定義了變數(shù)可存儲的數(shù)值範(fàn)圍以及可進(jìn)行的操作。每個變數(shù)(是用於記憶體中保存數(shù)據(jù)的)都必須有確定的數(shù)據(jù)類型,C++語言的數(shù)據(jù)類型有:數(shù)據(jù)類型基本類型整型int實(shí)型(浮點(diǎn)型)單精確度型float雙精度型double字元型單字符型char寬字元型w-char邏輯型bool非基本類型空類型(無值類型)void構(gòu)造類型數(shù)組類型結(jié)構(gòu)類型struct聯(lián)合型類型union枚舉型類型enum指針類型類類型class41基本數(shù)據(jù)類型寬度及表示範(fàn)圍:各類型精度由低到高排列為:

如果運(yùn)算符兩邊運(yùn)算元類型不同,先要將較低類型轉(zhuǎn)換為較高類型,然後再運(yùn)算42

#include<iostream.h>

voidmain()

{

chara='x';

intb=3,f=2;

floatc=2.5678;

doubled=5.2345

longe=32L;

cout<<a-b+d/c-e*f<<endl;

}運(yùn)行結(jié)果為:55.038515

43§2.3

變數(shù)變數(shù):指程式在運(yùn)行時其值可改變的量。每個變數(shù)由一個變數(shù)名惟一標(biāo)識,同時,每個變數(shù)又具有一個特定的數(shù)據(jù)類型。不同類型的變數(shù)在內(nèi)存中佔(zhàn)有存儲單元的個數(shù)不同不能是C++的關(guān)健字。第一個字元必須是字母或下劃線且由字母、數(shù)字或下劃線組成。一般不要超過31個字元。不要與C++中的庫函數(shù)名、類名和對象名相同。應(yīng)該儘量有意義。如:numOfStudents;my-car;myCar;iMyCar等區(qū)分大小寫1.變數(shù)的命名規(guī)則:注意:C++中,變數(shù)使用之前一定要定義或說明!442.變數(shù)的定義的格式:[存儲類型]類型變數(shù)名;存儲類型有:autoregisterexternstatic默認(rèn)的是autoauto存儲類屬於臨時性存儲,其存儲空間可以被若干變數(shù)多次覆蓋使用。register存儲類存放在通用寄存器中。extern存儲類在所有函數(shù)和程式段中都可引用。static存儲類在內(nèi)存中是以固定地址存放的,在整個程式運(yùn)行期間都有效。45

例如:inta,b,c;//定義3個整型變數(shù)a,b,c

和: inta; //定義整型變數(shù)a intb; //定義整型變數(shù)b intc; //定義整型變數(shù)c

二者等價。3.變數(shù)的初始化:變數(shù)初始化一般採用兩種方式:①在定義變數(shù)時就給變數(shù)賦初值

例如:

inta=3;

floatb=3.4;

②先定義,再賦植

例如:

inta;

a=3;46

sizeof操作符

typedef

為一個已有的類型名提供一個同意詞typedefintINTEGER;//新類型名INTEGERnum1,num2;//完全等價於:intnum1,num2例:

例:

count<<“sizeofcharis”<<sizeof(char)<<end1;其運(yùn)行的結(jié)果為:sizeofcharis

1其語法形式為:sizeof(類型名)或sizeof(運(yùn)算式)其結(jié)果值為:“類型名”所指定的類型或“運(yùn)算式”的結(jié)果類型所占位元組數(shù)。47§2.4常量常量:指在程式運(yùn)行過程中其值不能改變的量。C++支持5種類型的常量:浮點(diǎn)型、整型、字元型、布爾型和枚舉型。十進(jìn)位:123,-23456八進(jìn)制:0123,0765十六進(jìn)制:0x123,0xa4d3長整型:123L,0123L,0X123L無符號整形:13579ul

//無符號長整數(shù)1、整型常量2.實(shí)型常量①.小數(shù)形式:由數(shù)字和小數(shù)點(diǎn)組成如:0.123,.234,-56.789等48②.指數(shù)形式:如:123E5,123e5,0.123e8,1.23E7,-0.123e234.字串常量只表示一個字元,用單撇號。例:‘a(chǎn)’存儲字元的ASCII碼。例:‘a(chǎn)’在電腦中存為其ASCII碼97

字元常量可與整數(shù)進(jìn)行混合運(yùn)算,它門在功能上等價轉(zhuǎn)義字元(是以\開頭的特殊的字元常量)常用轉(zhuǎn)義字元:\a;\n

;\t

;\b

;\\

;\’

;\”

;

\ddd;

\xhh

3.字元常量用雙撇號括起來的量。如“a”存儲時系統(tǒng)自動在字串常量的末尾加上‘\0’

,表示字串結(jié)束?!產(chǎn)’是字元常量,占一個位元組,“a”是字串常量,占兩個位元組。

494.枚舉常量若一個變數(shù)只有幾種可能的值,就可以把它定義為枚舉類型。其形式為:enum

枚舉類型名

{常量值1,常量值2,…,常量值n};例:enumweekday{sun=7,mon=1,tue,wed,thu,fri,sat};enumcolor{Red,Green,Blue,White,Black};5.常量的定義①若想使某個變數(shù)的值一直不變可用const來定義其為一個常量。一旦加了const修飾符,只能通過聲明時初始化其值,而不能在隨後再改變其值.例:計算圓面積

#include<stdio.h>voidmain()

{

constfloatpi=3.14159;

floatr=3;

printf(“Area=%f\n”,

r*r*pi);

}50②

用#define來定義常量例:計算圓面積

#include<stdio.h>

#definePI3.14159

voidmain()

{

floatr=3;

printf(“Area=%f\n”,

r*r*PI);

}在程式編譯前,所有的PI都被替換成3.141592651#include<iostream.h>voidmain(){constintPI=30;intnum,total;floatv,r,h;num=10;total=num*PI;cout<<total<<endl;r=2.5;h=3.2;v=3.14159*r*r*h;cout<<v<<endl;}變數(shù)變數(shù)先定義後使用符號常量52§2.6輸入/輸出(I/O)

I/O:

C++沒有提供輸入/輸出語句,而是以下兩種方法來實(shí)現(xiàn):②或由檔stdio.h中定義的庫函數(shù)scanf()、

printf()來實(shí)現(xiàn)

①由檔iostream.h中定義的輸入對象cin、輸出對象cout與抽取操作符“>>”和插入操作符“<<”來實(shí)現(xiàn)。

輸入/輸出流(I/0流):C++中把數(shù)據(jù)之間的傳輸操作稱作流。I/0流指輸入或輸出的一系列位元組。1.用標(biāo)準(zhǔn)I/O流庫實(shí)現(xiàn)輸入輸出:①

輸入:當(dāng)程式需要從鍵盤輸入時,可以使用抽取操作符“>>”從輸入流cin中抽取鍵盤輸入的字元和數(shù)字,並把它賦給指定的變數(shù)。53例2:

doublex;inty;charz;cin>>x>>y>>z;注意:①cin:指標(biāo)準(zhǔn)的輸入設(shè)備(鍵盤)

②>>:提取操作符,從輸入流讀入數(shù)據(jù)

③從控制臺(鍵盤)接收輸入數(shù)據(jù):cin>>變數(shù)1>>變數(shù)2……

④用空格或回車符作為數(shù)據(jù)之間的分隔符號,每個輸入數(shù)據(jù)的格式應(yīng)與相應(yīng)變數(shù)的類型相符。

⑤若用程式中用了I/O流則必需在該程式前寫上預(yù)處理指令:

#include<iostream.h>例1:#include<iostream.h>voidmain(){

inta;

cin>>a;}54其運(yùn)行結(jié)果為:i的值為3.14159例:doublei=3.14159;

cout<<“i的值為”<<i;

等價:cout<<“i的值為”;cout<<i;

或等價:cout<<“i的值為”

<<i;

注意:①cout:指標(biāo)準(zhǔn)的輸出設(shè)備(顯示器),用於在螢?zāi)簧陷敵鲎償?shù)的值和雙引號中的字串。

②<<:插入操作符,把數(shù)據(jù)送到輸出流

③把變數(shù)的值或字串送到控制臺(螢?zāi)唬┹敵觯?/p>

cout<<運(yùn)算式1<<運(yùn)算式2……

cout<<“字元1”<<“字元2”……④cin,cout在檔<iostream.h>中,故在程式開始必須寫出其檔②

輸出:當(dāng)需要在螢?zāi)簧陷敵鲎償?shù)的值或字串時,可用輸出流庫對象

cout與插入操作符“<<”來實(shí)現(xiàn)。55例:用流進(jìn)行輸入輸出:#include<iostream.h>voidmain(){ intm; charch1,ch2; floatx,y; cin>>m>>ch1>>ch2>>x>>y; cout<<“m=“<<m<<endl; cout<<“ch1=“<<ch1<<“,ch2=“<<ch2<<endl; cout<<“x=“<<x<<“;y=“<<y<<endl;}在C++程式中,對標(biāo)準(zhǔn)I/O的操作必須說明相關(guān)頭檔,cin,cout使用的頭檔是<iostream.h>鍵盤輸入的格式:以空格或回車分隔數(shù)據(jù)。但字元數(shù)據(jù)要注意:空格也是合法字元。“”內(nèi)字元原樣輸出56

I/O流的格式控制用控制符(檔iomanip.h中定義的對象)可以對輸入輸出格式進(jìn)行控制常用的控制有:dechex

oct

setfill(c)

setprecision(n)

setw(n)

setiosflags(ios::fixed)setiosflags(ios::scientific)

setiosflags(ios::left)setiosflags(ios::right)setiosflags(ios::skipws)setiosflags(ios::uppercase)setiosflags(ios::lowercase)setiosflags(ios::showpoint)setiosflags(ios::showpos)

置基數(shù)為10置基數(shù)為16置基數(shù)為8設(shè)填充字元為c

設(shè)顯示小數(shù)精度為n位

設(shè)域?qū)挒閚個字元

固定的浮點(diǎn)顯示

指數(shù)表示

左對齊

右對齊

忽略前導(dǎo)空白

16進(jìn)制數(shù)大寫輸出

16進(jìn)制數(shù)小寫輸出強(qiáng)制顯示小數(shù)點(diǎn)強(qiáng)制顯示符號57#include<iostream.h>

#include<iomanip.h>//要用到格式控制符voidmain()

{

doubleamount=22.0/7;

cout<<amount<<endl;

cout<<setprecision(0)<<amount<<endl

<<setprecision(1)<<amount<<endl

<<setprecision(2)<<amount<<endl

<<setprecision(3)<<amount<<endl

<<setprecision(4)<<amount<<endl;

cout<<setiosflags(ios::fixed);

cout<<setprecision(8)<<amount<<endl;

cout<<setiosflags(ios::scientific)

<<amount<<endl;

cout<<setprecision(6);//重新設(shè)置成原默認(rèn)設(shè)置

}

運(yùn)行結(jié)果為:

3.14286

例:3

3

3.1

3.14

3.143

3.14285714

3.14285714e+0058①cout<<setfill('*')

<<setw(2)<<21<<endl

<<setw(3)<<21<<endl

<<setw(4)<<21<<endl;

cout<<setfill('');//恢復(fù)默認(rèn)設(shè)置

運(yùn)行結(jié)果為:

21

*21

**21②number=1001;cout<<"1001:"<<hex

<<setiosftags(ios::uppercase)

<<number<<endl;

運(yùn)行結(jié)果為:

1001:3E9。③cout<<10.0/5<<endl;

cout<<setiosflags(ios::showpoint)

<<10.0/5<<endl;

運(yùn)行結(jié)果為:

2

2.00000

59④cout<<10<<""<<-20<<endl;

cout<<setiosflags(ios::showpos)

<<10<<""<<-20<<endl;

運(yùn)行結(jié)果為:10-20

+10-20

2.調(diào)用標(biāo)準(zhǔn)I/O函數(shù)完成輸入輸出標(biāo)準(zhǔn)函數(shù):各種電腦都提供的一些通用函數(shù)被稱為標(biāo)準(zhǔn)函數(shù)標(biāo)準(zhǔn)I/O函數(shù):常用的是由檔stdio.h定義的輸入函數(shù)scanf()和輸出函數(shù)printf()①

輸出函數(shù):printf()格式:printf(”格式控制串”,輸出項1,輸出項2,…,)功能:將後面的輸出項按前面給定的格式輸出60格式控制串的組成:“普通字串和格式串“格式串:以%開頭,以格式字元結(jié)束。其完整的形式為:%

–0m.nl或h格式字元格式說明的起始符號指定左對齊輸出指定空位填0指定輸出的寬度及精度輸出長度修正指出輸出的類型:d:十進(jìn)位

o:八進(jìn)制

x:十六進(jìn)制

c:字元

s:字串

u:無符號的十進(jìn)位

f:小數(shù)形式

e:指數(shù)形式表示

例:floata=2.14235;printf(“a=%–05.2f”,a);其輸出結(jié)果為:a=002.14

61實(shí)例1:

#include<stdio.h>voidmain(){printf("ThisisaCprogram.\n");}實(shí)例2:

#include“stdio.h”voidmain(){inta=1,b=2,c=100;printf("a=%d,b=%3d,d=%3d%%\n",a,b,a*c/b);printf("%d,%o,%x\n",c,c,c);}

輸出:a=1,

b=

2,

d=

50%100,144,

6462格式:scanf(”格式控制串”,地址1,地址2,…,)②輸入函數(shù):scanf()%*mh或l格式字元格式說明的起始符號虛讀,不送變數(shù)域?qū)捳f明短整型或常整型及雙精度型指出輸入的類型:d:十進(jìn)位

o:八進(jìn)制

x:十六進(jìn)制

c:字元

s:字串

u:無符號的十進(jìn)位

f:小數(shù)形式

e:指數(shù)形式表示

“格式控制串”完整的組成:變數(shù)a的地址可表示為:&a功能:將數(shù)據(jù)按給定的格式存入對應(yīng)的變數(shù)中。實(shí)例:1:scanf("%3d%2d",&x,&y);

輸入序列:123456[ENTER]

結(jié)果:x=123,y=452:scanf("%d,%d:%f",&x,&y,&z);

輸入序列:1,2:3.5[ENTER]

結(jié)果:x=1,y=2,z=3.5633:scanf("%d%d%d",&x,&y,&z);

輸入序列一:1

2

3[ENTER]

結(jié)果:x=1,y=2,z=3

輸入序列二:1[TAB]23[ENTER]

輸入序列三:1[ENTER]

23[ENTER]

結(jié)果與輸入序列一的結(jié)果一樣。4:scanf("%2d

%*2d,%2d",&x,&y);

輸入序列:1234,56[ENTER]

結(jié)果:x=12,y=56。注意:在scanf中,可以使用[ENTER]、空格或[TAB]作為數(shù)據(jù)之間的分隔符號。645:scanf(”x=%d",&x);

要使x的值等於12,從鍵盤應(yīng)怎樣輸入?

正確的輸入序列:x=12[ENTER]

注意:字元x=被過濾掉了

若輸入序列為:12[ENTER]錯誤!

65§3.1

C++的運(yùn)算符運(yùn)算符:在程式中,許多語句是由運(yùn)算式構(gòu)成的。運(yùn)算式是由運(yùn)算符和運(yùn)算數(shù)組成的式子。運(yùn)算符指運(yùn)算的符號,而運(yùn)算數(shù)包含常量、變數(shù)和函數(shù)等。運(yùn)算符的分類:

單目運(yùn)算(一元運(yùn)算符,只需一個運(yùn)算元)

雙目運(yùn)算(二元運(yùn)算符,需兩個運(yùn)算元)

三目運(yùn)算(三元運(yùn)算符,需三個運(yùn)算元)

按運(yùn)算符連接運(yùn)算對象的個數(shù)分為:②

按其在運(yùn)算式中所起的作用又可分為:66

算術(shù)運(yùn)算符

+-*/%

關(guān)係運(yùn)算符

<<=>===!=

邏輯運(yùn)算符

!&&||

位運(yùn)算符

<<>>~|^&

自增自減運(yùn)算符

++--

賦值運(yùn)算符

=及其擴(kuò)展(+=-=*=/=%=等)條件運(yùn)算符

?:

指針運(yùn)算符

*和

&

逗號運(yùn)算符

,

分量運(yùn)算符

*->

函數(shù)調(diào)用運(yùn)算符()下標(biāo)運(yùn)算符[]

求位元組運(yùn)算符

sizeof

強(qiáng)制類型轉(zhuǎn)換運(yùn)算符:(type)

671、算術(shù)運(yùn)算符運(yùn)算符名字實(shí)例+加12+4.9//得出16.9-減3.98-4//得出-0.02*乘2*3.4//得出6.8/除9/2.0//得出4.5%取餘13%3//得出12、自加和自減運(yùn)算符++是自增運(yùn)算符,――自減運(yùn)算符,它門都是單目運(yùn)算符,都是將數(shù)值變數(shù)的值加1或減1,該類操作符應(yīng)用於變數(shù)而不能應(yīng)用於常量。例:inti=5;

68運(yùn)算符名字實(shí)例++自加(首碼)++i+10//得出16,i變?yōu)?++自加(尾碼)i+++10//得出15,i變?yōu)?--自減(首碼)--i+10//得出14,i變?yōu)?--自減(尾碼)i--+10//得出15,i變?yōu)?注意:

①++或--只能用於變數(shù)

②++i或--i是先增值再引用,i++或i--是先引用再增值

③自右向左將運(yùn)算符結(jié)合在一起,但調(diào)用函數(shù)時,實(shí)參的求值順序一般為自右向左。a=6;b=6;

c1=a++;c2=++b;

例:執(zhí)行結(jié)果為:c1=6,a=7,b=7,c2=7inta=1;printf(“%d,%d,%d”,a++,a++,a++);輸出的結(jié)果為3,2,1而不是1,2,3。

693、關(guān)係運(yùn)算符

關(guān)係運(yùn)算符用於數(shù)值之間的比較,運(yùn)算式的值為1(表示true),或為0(表示false),見表:運(yùn)算符名字實(shí)例==等於5==5//得出1!=不等於5!=5//得出0<小於5<5.5//得出1<=小於或等於5<=5//得出1>大於5>5.5//得出0>=大於或等於6.3>=5//得出1關(guān)係運(yùn)算符都是雙目運(yùn)算符,兩邊的數(shù)值結(jié)果必須是類型相同的其結(jié)合性是從左到右,優(yōu)先順序低於算術(shù)運(yùn)算符。字串不應(yīng)當(dāng)用關(guān)係運(yùn)算符比較,因為被比較的不是字串的內(nèi)容本身,而是字串的地址70①如何表示數(shù)學(xué)中的邏輯關(guān)係:0≤a≤9?用0<=a<=9表示?行嗎?X

因為0<=a<=9等價於(0<=a)<=9若a=5則(0<=a)<=9的值為:1②如何表示數(shù)學(xué)中的邏輯系:0≤a≤9

0≤a≤9應(yīng)表示為為:a>=0&&a<=9714、邏輯運(yùn)算符運(yùn)算符名字實(shí)例!邏輯非

!(5==5)

//得出0&&邏輯與5<6&&6<6

//得出0||邏輯或5<6||6<5

//得出1注意:

①邏輯非的優(yōu)先順序最高,邏輯與次之,邏輯或最低

②&&:如果第一運(yùn)算元為0,則不再求解第二運(yùn)算元。

例:(x=0)&&(y=4):只完成了x的賦值,不再操作y=4,所以,

y沒有實(shí)現(xiàn)賦值。

③||

:如果第一運(yùn)算元為1,則不再求解第二運(yùn)算元。

例:(x=4)||(y=4)結(jié)果如何?例:該式5>3&&2||8<3-!0的值為:172例:從鍵盤上輸入年份year(4位十進(jìn)位數(shù)),判斷其是否閏年。

閏年的條件是:能被4整除、但不能被100整除;或者能被400整除。#include<stdio.h>voidmain(){intyear;printf("Pleaseinputtheyear:");scanf("%d",&year);if((year%4==0&&year%100!=0)||(year%400==0))printf("%disaleapyear.\n",year);elseprintf("%disnotaleapyear.\n",year);}735、條件運(yùn)算符

一般形式為:

運(yùn)算式1?運(yùn)算式2:運(yùn)算式3

其運(yùn)算方式為:先計算運(yùn)算式1的值,如果其值為非0(真),則表達(dá)式2的值就是整個運(yùn)算式的最終結(jié)果;否則運(yùn)算式

3的值就是整個運(yùn)算式的值。

運(yùn)行的結(jié)果為:x=y?no!例如:①x=10;

y=x>9?100:200;②x=10;y=20;

printf(“x=y?%s!”,x==y?“yes”:“no”);//y=10074注意:

①條件運(yùn)算符的結(jié)合性是自右向左。例如:a>b?a:c>d?c:d;

//相當(dāng)於a>b?a:(c>d?c:d)

②條件運(yùn)算符優(yōu)先順序高於賦值運(yùn)算符低於關(guān)係和算術(shù)運(yùn)算符。例如:

a>b?a-b:b-a;//相當(dāng)於a>b?(a-b):(b-a)

6、位運(yùn)算符

位運(yùn)算符是對其運(yùn)算元按其二進(jìn)制形式逐位進(jìn)行運(yùn)算,參加位運(yùn)算的運(yùn)算元必須為整數(shù)。C++提供6種位運(yùn)算符:

運(yùn)算符名字功能~取反按位求反&逐位與把兩運(yùn)算元對應(yīng)的二進(jìn)位位進(jìn)行邏輯與|逐位或把兩運(yùn)算元對應(yīng)的二進(jìn)位位進(jìn)行邏輯或^逐位異或把兩個運(yùn)算元對應(yīng)的二進(jìn)位位進(jìn)行異或<<逐位左移將左運(yùn)算元的每個二進(jìn)位位左移右運(yùn)算元位>>逐位右移左運(yùn)算元的每一個二進(jìn)位位右移右運(yùn)算元位757、賦值運(yùn)算符

①=是賦值運(yùn)算符,它的作用是將一個運(yùn)算式的值賦給一個左值。

左值:是指能出現(xiàn)在賦植運(yùn)算式左邊的運(yùn)算式,左值能存放數(shù)據(jù),能

夠被修改,不能是常量??捎米償?shù)作左值,指針和引用也可以作左值。右值:只能出現(xiàn)在賦植運(yùn)算式右邊。

②賦值運(yùn)算符“=”的一般格式為:變數(shù)=運(yùn)算式;

例如:inti=1.2*3; intj;j=3*(4+5); //j的值變?yōu)?7//結(jié)果為3,而不是3.6例:二進(jìn)位數(shù)左移:0110<<1其值為:1100

二進(jìn)位數(shù)右移(缺位補(bǔ)最左一位的數(shù)值)1100>>1

其值為:111076③賦值運(yùn)算符的種類:運(yùn)算符實(shí)例等價於=n=25

+=n+=25n=n+25-=n-=25n=n-25*=n*=25n=n*25/=n/=25n=n/25%=n%=25n=n%25&=n&=0xF2F2n=n&0xF2F2|=n|=0xF2F2n=n|0xF2F2^=n^=0xF2F2n=n^0xF2F2<<=n<<=4n=n<<4>>=n>>=4n=n>>477注意:

①賦值運(yùn)算式本身的運(yùn)算結(jié)果是右側(cè)運(yùn)算式的值,而結(jié)果類型是左側(cè)

變數(shù)的數(shù)據(jù)類型.

②賦值運(yùn)算符的結(jié)合性是從右至左的

例如:inta=12;a+=a-=a*=a;表示:

a=a*a//a=12*12=144

a=a-a//a=144-144=0

a=a+a//a=0+0=0注意:x*=y+8等價於x=x*(y+8),788、sizeof運(yùn)算符(求位元組運(yùn)算符)

sizeof運(yùn)算符是單目運(yùn)算符,用於計算運(yùn)算對象在內(nèi)存中所占位元組的多少,它有兩種形式:

sizeof(類型識別字);

sizeof運(yùn)算式;

例如:inta,則sizeof(a)表示:求變數(shù)a在內(nèi)存中所占位元組數(shù)。inta[10],則sizeof(a)表示:求數(shù)組a在內(nèi)存中所占位元組數(shù)。

9、逗號運(yùn)算符①逗號運(yùn)算符用於將多個運(yùn)算式連在一起,並將各運(yùn)算式從左到右的順序依次求值,且最右端的運(yùn)算式的結(jié)果,為整個逗號運(yùn)算式的結(jié)果。②一般格式為:運(yùn)算式1,運(yùn)算式2,……,運(yùn)算式n(i=3,i++,++i,i+5)這個逗號運(yùn)算式的值是10,i的值為579C++運(yùn)算符的優(yōu)先順序和結(jié)合性:

①當(dāng)不同的運(yùn)算符混合運(yùn)算時,運(yùn)算順序是根據(jù)運(yùn)算符的優(yōu)先順序而定的。②若各運(yùn)算符有相同的優(yōu)先順序,運(yùn)算順序是從左向右,還是從右向左,是由運(yùn)算符的結(jié)合性確定的。所謂結(jié)合性是指運(yùn)算符可以和左邊的運(yùn)算式結(jié)合,也可以與右邊的運(yùn)算式結(jié)合。C++運(yùn)算符的優(yōu)先順序和結(jié)合性見表(P=課本35頁)注意:

①優(yōu)先順序:一般情況為:

1)單目,雙目,三目,賦值

2)算術(shù),移位,關(guān)係,位運(yùn)算,邏輯,條件,賦植,逗號

②結(jié)合性:僅單目、三目和賦值的結(jié)合性是從右到左。80括??!++,--,sizeof*,/,%+,-

移位(>><<)關(guān)係(>,>=,<,<=和==,!=)位運(yùn)算&&||?:賦值運(yùn)算逗號運(yùn)算高低③常用運(yùn)算符優(yōu)先順序:即:先()→單目!→算數(shù)→移位→關(guān)係→位運(yùn)算→&&和︳︳→?→賦值→逗號81運(yùn)算式:

①運(yùn)算式:由運(yùn)算符、運(yùn)算元組成的計算式子。最簡單的運(yùn)算式只有一個常量或變數(shù)。②運(yùn)算式的分類(據(jù)運(yùn)算式中的運(yùn)算符的種類):算術(shù)運(yùn)算式:a+5.2/3.0-9%5關(guān)係運(yùn)算式:(a+b*c)>d邏輯運(yùn)算式:a>b&&c>d賦值運(yùn)算式:a=b+c、a+=b*c+d和a=b=c=1條件運(yùn)算式:a>b?a:b逗號運(yùn)算式:x=a+b,y=c+d,z=x+y混合運(yùn)算式:(a>b)+(a=b+c)*(x>y?x:y)

82③運(yùn)算式求值的順序:●按運(yùn)算符的優(yōu)先順序高低次序執(zhí)行。例如,先乘除後加減●如果在一個運(yùn)算對象(或稱運(yùn)算元)兩側(cè)的運(yùn)算符的優(yōu)先順序相同,則按C語言規(guī)定的結(jié)合方向(結(jié)合性)進(jìn)行。且運(yùn)算元必需化成同類型才能計算例:算術(shù)運(yùn)算符的結(jié)合方向是“自左至右”,即:在執(zhí)行“a-b+c”時,變數(shù)b先與減號結(jié)合,執(zhí)行“a-b”83數(shù)據(jù)類型轉(zhuǎn)換:

C++中數(shù)據(jù)類型轉(zhuǎn)換有兩類,①隱式轉(zhuǎn)換:是由編譯器自動將不同類型的數(shù)據(jù)轉(zhuǎn)換為相同類型後再進(jìn)行運(yùn)算。隱式類型轉(zhuǎn)換按從低到高的順序進(jìn)行:int

unsigned

long

unsignedlong

double

longdouble↑

↑short,char

float②顯式轉(zhuǎn)換:由程式員顯式指出的類型轉(zhuǎn)換,轉(zhuǎn)換形式有兩種:

類型名(運(yùn)算式)

(類型名)運(yùn)算式例如:

doublef=3.6;

intn=(int)f;

這樣n為3。

84§語句語句:是組成程式最基本的單位,語句是最小的可執(zhí)行單元,一條語句由一個分號結(jié)束。語句分類:

根據(jù)複雜程度的不同分:①簡單語句:空語句是簡單語句,僅由一個分號組成。②複合語句:由一對花括弧“{}”和括弧裏的一系列簡單語句組成,⒉

根據(jù)執(zhí)行流程的不同分:順序控制語句:指按照語句在程式中先後次序一條一條的順次執(zhí)行的語句選擇控制語句:據(jù)一個條件或一個值從一組語句中選擇一個執(zhí)行。迴圈控制語句:根據(jù)某個條件重複執(zhí)行一組語句

85§順序控制語句順序控制語句:其語句在執(zhí)行過程中,程式的流程不會發(fā)生轉(zhuǎn)移。常見的順序結(jié)構(gòu)語句有:聲明語句、賦值語句和輸入輸出語句。例如:doubledval;//聲明語句dval=302.2948;//賦值語句,給變數(shù)賦值

cout<<"congratulation!";//輸出語句

cin>>dval;//輸入語句86§選擇控制語句選擇控制語句:又稱為分支語句,它通過對給定的條件進(jìn)行判斷,從而決定執(zhí)行兩個或多個分支中的哪一支。因此,在編寫選擇語句之前,應(yīng)該首先明確判斷條件是什麼,並確定當(dāng)判斷結(jié)果為“真”或“假”時應(yīng)分別執(zhí)行什麼樣的操作。選擇控制語句種類:if…else語句和switch語句。

⒈if語句有三種格式:

87運(yùn)算式執(zhí)行語句2執(zhí)行語句1成立不成立運(yùn)算式執(zhí)行語句成立不成立①

if(<運(yùn)算式>)

<語句>②

if(<運(yùn)算式>)

<語句1>

else<語句2>88運(yùn)算式1運(yùn)算式2運(yùn)算式3運(yùn)算式4語句1語句2語句3語句4假假假語句5假真真真真③if(運(yùn)算式1)語句1

elseif(運(yùn)算式2)語句2

elseif(運(yùn)算式3)語句3

else語句n89例:求a和b兩數(shù)中較大的一個。a>b?max=bmax=a成立不成立#include<iostream.h>voidmain(){inta,b,max;cout<<"Inputaandb:";cin>>a>>b;if(a>b)max=a;elsemax=b;cout<<“Themaxofaandb:”<<max;}90例:判斷用戶的輸入,如果輸入的數(shù)值大於0,則在螢?zāi)簧巷@示“正數(shù)”;否則在螢?zāi)簧巷@示“不是正數(shù)”。#include<iostream.h>voidmain(){floata;cin>>a;if(a>0)cout<<“正數(shù)”<<endl;elsecout<<“不是正數(shù)”<<endl;}91例:輸入兩個整數(shù),比較兩個數(shù)的大小。#include<iostream.h>voidmain(){intx,y;cout<<"Enterxandy:";cin>>x>>y;

if(x!=y)

if(x>y)cout<<x<<“>“<<y<<endl;

elsecout<<x<<“<“<<y<<endl;

else

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論