版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第
2
章C++語言基礎(chǔ)【學(xué)習(xí)目標(biāo)】
要開發(fā)VisualC++應(yīng)用程序,就必須熟練掌握C++語言,C++語言是程序員開發(fā)基于VisualC++應(yīng)用程序的基礎(chǔ)。C++是一種混合型程序設(shè)計(jì)語言,既不像Basic那樣是面向過程的程序設(shè)計(jì),也不像Java那樣是面向?qū)ο蟮某绦蛟O(shè)計(jì),而是將兩者統(tǒng)一既面向?qū)ο笥种С置嫦蜻^程的程序設(shè)計(jì)語言。本章簡(jiǎn)要地介紹C++語言基礎(chǔ)知識(shí),對(duì)于C++的基本要素和編寫規(guī)范進(jìn)行了簡(jiǎn)單的介紹,并逐步地講解C++語言的數(shù)據(jù)類型、運(yùn)算符、表達(dá)式等基礎(chǔ),通過學(xué)習(xí)本章,讀者可以達(dá)到以下學(xué)習(xí)目的:l
了解控制臺(tái)開發(fā)環(huán)境l
掌握標(biāo)識(shí)符、關(guān)鍵字等基本要素l
掌握C++語言的數(shù)據(jù)類型l
熟悉C++語言的運(yùn)算符應(yīng)用l
熟悉C++語言的表達(dá)式l
掌握條件判斷語句和循環(huán)語句l
編寫自定義函數(shù)
課件制作人:宋坤【學(xué)習(xí)導(dǎo)航】
本章主要為讀者介紹了C++語言的基礎(chǔ)知識(shí),包括C++的基本要素、數(shù)據(jù)類型、運(yùn)算符、表達(dá)式、語句和函數(shù)等。對(duì)于C++的初學(xué)者來說,這些內(nèi)容均需要熟練掌握,它是初學(xué)者學(xué)習(xí)C++編程的第一個(gè)步驟,也是構(gòu)建“高樓大廈”的“地基”部分,基礎(chǔ)的熟練程度將直接影響編程的質(zhì)量和效率。希望大家能夠熟練掌握本章內(nèi)容。本章在書中的學(xué)習(xí)位置如圖2-1所示。
課件制作人:宋坤【知識(shí)框架】
本章學(xué)習(xí)內(nèi)容知識(shí)框架如圖2-2所示。課件制作人:宋坤√本章目錄2.1C++概述2.2程序設(shè)計(jì)基礎(chǔ)2.3課后習(xí)題√√課件制作人:宋坤2.1
C++概述C++語言誕生于20世紀(jì)80年代初,它是在C語言的基礎(chǔ)上提供了面向?qū)ο蠊δ艿恼Z言,可以說C++語言是C語言的擴(kuò)展。C++語言集面向?qū)ο蠛兔嫦蜻^程于一身,因此它即適合于傳統(tǒng)的面向過程程序開發(fā),也適用于面向?qū)ο蟪绦蜷_發(fā)。由于本章中的程序代碼均在控制臺(tái)下編寫的,為了讓讀者能夠熟悉VisualC++下控制臺(tái)應(yīng)用程序的開發(fā)過車工,下面本教材利用VisualC++編寫一個(gè)簡(jiǎn)單的控制臺(tái)應(yīng)用程序。
(1)啟動(dòng)VisualC++,單擊“File/New”菜單項(xiàng),打開新建窗口,如圖2-1所示。
課件制作人:宋坤2.1
C++概述
(2)在“Projects”選項(xiàng)卡中選擇“Win32ConsoleApplication”選項(xiàng),在“Projectname”編輯框中輸入工程名稱,本例為“FirstProject”,單擊“OK”按鈕進(jìn)入向?qū)Т翱?,開始創(chuàng)建工程,如圖2-2所示。
(3)向向?qū)Т翱谥羞x擇“AHello,WordApplication”選項(xiàng),單擊“Finish”按鈕完成工程的創(chuàng)建。這樣就完成了一個(gè)控制臺(tái)工程的創(chuàng)建。在工具欄中單擊按鈕編譯并執(zhí)行應(yīng)用程序,效果如圖2-3所示。
課件制作人:宋坤2.1
C++概述課件制作人:宋坤2.2
程序設(shè)計(jì)基礎(chǔ)C++基本要素?cái)?shù)據(jù)類型運(yùn)算符表達(dá)式語句函數(shù)√√√√√√課件制作人:宋坤C++基本要素
程序設(shè)計(jì)語言的基本要素包括標(biāo)識(shí)符、關(guān)鍵字、常量和變量等。本節(jié)本教材將介紹C++語言的基本要素。如果讀者熟悉C語言,可以掠過本節(jié)。
標(biāo)識(shí)符
標(biāo)識(shí)符是程序員或系統(tǒng)定義的符號(hào),用來表示變量、類型或函數(shù)。在C++語言中,標(biāo)識(shí)符可以由字母、數(shù)字和下劃線組成,并且標(biāo)識(shí)符的第一個(gè)字符只能是英文字母或下劃線,標(biāo)識(shí)符的命名必須遵循命名規(guī)范。下面來列舉一些合法的標(biāo)識(shí)符和一些不合法的標(biāo)識(shí)符。 合法的標(biāo)識(shí)符:age,name,_ab,DAY_23,A123…
不合法的標(biāo)識(shí)符:T-3,123d,#as…定義標(biāo)識(shí)符時(shí)應(yīng)注意字母的大小寫,例如,intnumber和intNumber在C++中就是兩個(gè)不同的標(biāo)識(shí)符。定義標(biāo)識(shí)符時(shí)還應(yīng)該盡量選擇能夠反映其用途的單詞或縮寫,這樣可以提高程序的可讀性。例如,在為年齡的整型變量命名時(shí),可以命名為age,要比命名為nl、a可讀性高。
關(guān)鍵字
關(guān)鍵字是C++編譯器內(nèi)置的有特殊意義的標(biāo)識(shí)符,用戶不能定義與關(guān)鍵字相同的標(biāo)識(shí)符。C++語言關(guān)鍵字如表2-1所示。
課件制作人:宋坤C++基本要素__asmelsemainstruct__assumeenum__multiple_inheritanceswitchauto__except__single_inheritancetemplate__basedexplicit__virtual_inheritancethisboolexternmutablethreadbreakfalsenakedthrowcase__fastcallnamespacetruecatch__finallynewtry__cdeclfloatnoreturn__trycharforoperatortypedefclassfriendprivatetypeidconstgotoprotectedtypenameconst_castifpublicunioncontinueinlineregisterunsigned__declspec__inlinereinterpret_castusingdeclaration,usingdirectivedefaultintreturnuuiddelete__int8short__uuidofdllexport__int16signedvirtualdllimport__int32sizeofvoiddo__int64staticvolatiledouble__leavestatic_castwmaindynamic_castlong__stdcallwhile課件制作人:宋坤C++基本要素
常量
在程序運(yùn)行過程中,值不能被改變的量稱為常量。常量定義形式如下:const類型常量=值表達(dá)式;此外,C++中可以使用C語言中的#define預(yù)處理命令來定義常量:#define常量名值例如:定義常量的表達(dá)式為“constintI=100;”,表示當(dāng)程序運(yùn)行時(shí),編譯器會(huì)對(duì)I進(jìn)行嚴(yán)格檢查,只有I為int時(shí)才被替換為100;如果定義常量的表達(dá)式為“#defineI100”,表示程序運(yùn)行時(shí),代碼中所有的常量I都會(huì)被100替換。l
整型常量整型常量可以用十進(jìn)制、八進(jìn)制和十六進(jìn)制數(shù)來表示。十進(jìn)制整型常量由0~9的數(shù)字組成。不能以0開始,沒有小數(shù)部分。例如,123、-321等。八進(jìn)制整型常量以0開始,由0~7的數(shù)字組成。例如,0123、0765等。十六進(jìn)制整型常量以0x開始,由0~9的數(shù)字和A~F(大小寫相同)的字母組成。例如,0x123、0xab、0x12ab等。l
實(shí)型(浮點(diǎn))常量實(shí)型常量的整數(shù)部分和小數(shù)部分被小數(shù)點(diǎn)分開。當(dāng)實(shí)型常量太大或太小時(shí),可以使用科學(xué)記數(shù)法來表示。例如:fData=123.456;fData=1.23456e+2;課件制作人:宋坤C++基本要素整型常量和實(shí)型常量的后面可以指定后綴,后綴不區(qū)分大小寫。例如:lData=23L; //指定為長(zhǎng)整型nData=426u; //指定為無符號(hào)型fData=1.23456f; //指定為單精度實(shí)型l
字符型常量在C++中,字符型常量是用單引號(hào)括起來的一個(gè)字符。這些字符通常是ASCII碼字符,它們的值即該字符的ASSCII碼值。例如:C='A';//C為字符A的ASCII碼值在C++語言中還提供了一種轉(zhuǎn)義序列,它可以表示ASCII碼表中的不可顯示字符。轉(zhuǎn)義序列如表2-2所示。轉(zhuǎn)義序列ASCII值說明\’39單引號(hào)\”34雙引號(hào)\?63問號(hào)\\92反斜線\a7響鈴\b8退格\f12走紙接頁\n10換行\(zhòng)h13回車\t9水平制表\v11垂直制表課件制作人:宋坤C++基本要素在許多程序中,有時(shí)會(huì)遇到某一個(gè)字符或字符串前有一個(gè)“L”前綴,例如:L’a’L”O(jiān)neWorldOneDream”這里的L表示的是字符或字符串為寬字符或?qū)捵址?。寬字符常量用于支持某些語言的字符集合,例如,漢語。漢語中的漢字不能通過一個(gè)字符來表示(通常,兩個(gè)字符表示一個(gè)漢字)。變量在程序運(yùn)行過程中,其值可以發(fā)生變化的量稱為變量。變量有一個(gè)變量名,在內(nèi)存中占據(jù)一定的內(nèi)存空間,在該內(nèi)存空間中存放變量的值。在C++中,使用變量之前必須先進(jìn)行聲明。變量的聲明如下:<數(shù)據(jù)類型><變量名1>[=<初始值1>],<變量名2>[=<初始值2>],……;例如,聲明一個(gè)整型變量:intnum;凡是未事先聲明的變量不能使用,當(dāng)變量被聲明為一個(gè)確定的類型時(shí),在編譯時(shí)系統(tǒng)自動(dòng)為其分配相應(yīng)的內(nèi)存空間。在給變量賦值時(shí),可以先聲明后賦值,例如:intnNum;nNum=15;也可以在聲明的同時(shí)為變量賦值:intnNum=15;課件制作人:宋坤數(shù)據(jù)類型數(shù)據(jù)是程序加工的對(duì)象,C++中將數(shù)據(jù)分為不同的數(shù)據(jù)類型。數(shù)據(jù)類型規(guī)定了數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)和可以進(jìn)行的運(yùn)算。C++簡(jiǎn)單數(shù)據(jù)類型介紹在C++語言中,簡(jiǎn)單數(shù)據(jù)類型包括整型、實(shí)型和字符型等,實(shí)型又分為單精度實(shí)型和雙精度實(shí)型。C++中所有的數(shù)據(jù)類型如表2-3所示。數(shù)據(jù)類型說明所占字節(jié)取值范圍char字符型1-128~127int整型4-2147483648~147483647float單精度實(shí)型41.2e-38~3.4e38double雙精度實(shí)型82.2e-308~1.8e308void無值型0無取值范圍signedchar有符號(hào)字符型1-128~127unsignedchar無符號(hào)字符型10~255short[int]短整型2-32768~32767signedshort[int]有符號(hào)短整型2-32768~32767unsignedshort[int]無符號(hào)短整型20~65535signed[int]有符號(hào)整型4-2147483648~2147483647unsigned[int]無符號(hào)整型40~4294967295long[int]長(zhǎng)整型4-2147483648~2147483647signedlong[int]有符號(hào)長(zhǎng)整型4-2147483648~2147483647unsignedlong[int]無符號(hào)長(zhǎng)整型40~4294967295課件制作人:宋坤數(shù)據(jù)類型
布爾類型在邏輯判斷中,結(jié)果通常只有真和假兩個(gè)值。C++語言中提供了布爾類型bool來描述真和假。bool類型共有兩個(gè)取值,分別為true和false。顧名思義,true表示真,false表示假。在程序中,bool類型被作為整數(shù)類型對(duì)待,false表示0,true表示1。將bool類型賦值給整型是合法的,反之,將整數(shù)賦值給bool類型也是合法的。例如:boolret;intvar=3;ret=var; //ret=truevar=ret; //var=1字符串類型字符串類型的數(shù)據(jù)是由雙引號(hào)括起來的字符序列。不要把字符和字符串混淆,‘a(chǎn)’是字符,“a”是字符串,二者不同。字符串在存儲(chǔ)時(shí)會(huì)自動(dòng)在字符串結(jié)尾加一個(gè)字符串結(jié)束標(biāo)志“\0”,以便系統(tǒng)判斷字符串是否結(jié)束。字符串結(jié)束標(biāo)志“\0”的ASCII碼為0,是一個(gè)不可顯示的字符。如有一個(gè)字符串“Hello”,它所占的字節(jié)就是6個(gè),最后一個(gè)字節(jié)存放的是“\0”。當(dāng)字符串輸出時(shí),字符一個(gè)一個(gè)地輸出,直到“\0”結(jié)束。
l
字符串基本操作下面通過一個(gè)實(shí)例來介紹字符串類型。例如:字符串的輸入輸出,具體操作步驟如下。(1)啟動(dòng)VisualC++6.0集成開發(fā)環(huán)境,創(chuàng)建一個(gè)Win32平臺(tái)下的控制臺(tái)程序,如圖2-4所示。課件制作人:宋坤數(shù)據(jù)類型(2)在編輯窗口中,對(duì)代碼進(jìn)行編輯,程序代碼如下:#include"iostream.h"intmain(){charstr[10]; //定義一個(gè)字符數(shù)組
cout<<"輸入少于9個(gè)字符"<<'\n'; //輸出文本
cout<<"str=";cin>>str; //記錄用于輸入的數(shù)據(jù)
cout<<"直接輸出字符串"<<'\n';cout<<str<<'\n';cout<<"通過數(shù)組元素輸出字符串"<<'\n';for(inti=0;i<10;i++) //遍歷字符數(shù)組{
cout<<str[i];}}課件制作人:宋坤數(shù)據(jù)類型運(yùn)行結(jié)果如圖2-5所示。
l
字符串函數(shù)應(yīng)用除了可以對(duì)字符串進(jìn)行輸入和輸出以外,還可以對(duì)字符串進(jìn)行復(fù)制、銜接、計(jì)算字符串長(zhǎng)度和比較等處理。在C++語言中,可以使用C++編譯器附帶的字符串處理函數(shù)庫<cstring>來處理字符串。字符串處理函數(shù)如表2-4所示。課件制作人:宋坤數(shù)據(jù)類型下面通過一個(gè)實(shí)例使用字符串處理函數(shù)求字符串的長(zhǎng)度,并對(duì)字符串進(jìn)行銜接。例如:字符串的輸入輸出,具體操作步驟如下。(1)啟動(dòng)VisualC++6.0集成開發(fā)環(huán)境,創(chuàng)建一個(gè)Win32平臺(tái)下的控制臺(tái)程序。(2)在編輯窗口中,對(duì)代碼進(jìn)行編輯,程序代碼如下:函數(shù)名功能描述strlen(字符串)計(jì)算字符串長(zhǎng)度strcpy(字符串1,字符串2)將字符串2復(fù)制到字符串1內(nèi)strcat(字符串1,字符串2)將字符串2銜接到字符串1后strcmp(字符串1,字符串2)比較兩個(gè)字符串,當(dāng)字符串1<字符串2時(shí)返回負(fù)整數(shù),當(dāng)字符串1==字符串2時(shí)返回0,當(dāng)字符串1>字符串2時(shí)返回正整數(shù)strchr(字符串,字符)查找字符串中第一個(gè)與指定字符相同的字符的索引課件制作人:宋坤數(shù)據(jù)類型#include"iostream.h"#include"cstring"intmain(){charstr1[20],str2[10]; //定義字符數(shù)組
cout<<"輸入少于9個(gè)字符"<<'\n'; //輸出一行文本
cout<<"str1=";cin>>str1;cout<<"輸入少于9個(gè)字符"<<'\n';cout<<"str2=";cin>>str2;cout<<"輸出字符串"<<"\n";cout<<"str1="<<str1<<"\n";cout<<"str2="<<str2<<"\n";cout<<"計(jì)算str1的長(zhǎng)度"<<"\n";cout<<"長(zhǎng)度="<<strlen(str1)<<"\n"; //輸出字符串長(zhǎng)度
cout<<"把字符串str2銜接到字符串str1后面"<<"\n";cout<<strcat(str1,str2)<<"\n"; //連接字符串}運(yùn)行結(jié)果如圖2-6所示。課件制作人:宋坤數(shù)據(jù)類型數(shù)組類型數(shù)組是由一組具有相同類型數(shù)據(jù)所組成的有序集合。數(shù)組中每個(gè)數(shù)據(jù)都稱為數(shù)組元素。聲明數(shù)組可以通過數(shù)據(jù)類型、數(shù)組名和下標(biāo)的方式進(jìn)行。下標(biāo)是用“[]”括起來的,表示數(shù)組中數(shù)組元素的數(shù)目。數(shù)組還根據(jù)下標(biāo)分為一維數(shù)組、二維數(shù)組和多維數(shù)組。 l
一維數(shù)組只有一個(gè)下標(biāo)的數(shù)組稱為一維數(shù)組。一維數(shù)組的聲明格式如下:數(shù)據(jù)類型數(shù)組名[常量表達(dá)式];例如,聲明一個(gè)一維數(shù)組,代碼如下:intarray[10];上行代碼聲明了一個(gè)數(shù)組,數(shù)組名是array,數(shù)組類型是int型,下標(biāo)為10,說明該數(shù)組由10個(gè)int型的元素組成。當(dāng)編譯器編譯到這個(gè)聲明時(shí),會(huì)自動(dòng)根據(jù)數(shù)組類型分配出相應(yīng)的存儲(chǔ)空間來存放這些數(shù)組元素。課件制作人:宋坤數(shù)據(jù)類型也可以在數(shù)組聲明的同時(shí)給數(shù)組賦初值,代碼如下:intarray[10]={1,2,3,4};上行代碼在聲明一個(gè)數(shù)組的同時(shí)為數(shù)組中前4個(gè)元素賦初值,而數(shù)組后6個(gè)元素并沒有被賦值,系統(tǒng)會(huì)把它們的值默認(rèn)為0。也就是說,如果輸出array[5]的值,結(jié)果是0。在使用一維數(shù)組時(shí)應(yīng)注意:
數(shù)組命名時(shí)要遵循標(biāo)識(shí)符命名規(guī)則。
數(shù)組名后是用方括號(hào)括起來的常量表達(dá)式。
常量表達(dá)式表示數(shù)組的長(zhǎng)度,即數(shù)組元素的個(gè)數(shù)。
常量表達(dá)式中可以包括整型常量和整型表達(dá)式,但是不能是變量。C++不允許對(duì)數(shù)組的大小作動(dòng)態(tài)定義。在為數(shù)組賦值時(shí),也可以通過數(shù)組元素進(jìn)行賦值。代碼如下:intarray[10];array[0]=1;array[1]=2;array[2]=3;array[3]=4;這段代碼和上段代碼作用相同,都是為數(shù)組中前4個(gè)元素賦值。 l
二維數(shù)組二維數(shù)組的聲明和一維數(shù)組相同,一般形式如下:數(shù)據(jù)類型數(shù)組名[常量表達(dá)式1][常量表達(dá)式2];例如,聲明一個(gè)二維數(shù)組,代碼如下:intarray[10][5];課件制作人:宋坤數(shù)據(jù)類型其中,“常量表達(dá)式1”被稱為行下標(biāo),“常量表達(dá)式2”被稱為列下標(biāo)。如果有二維數(shù)組a[n][m],則二維數(shù)組的下標(biāo)取值范圍如下: 行下標(biāo)的取值范圍0~n-1。
列下標(biāo)的取值范圍0~m-1。
二維數(shù)組的最大下標(biāo)元素是a[n-1][m-1]。 l
多維數(shù)組多維數(shù)組的聲明和二維數(shù)組相同,只是下標(biāo)更多,一般形式如下:數(shù)據(jù)類型數(shù)組名[常量表達(dá)式1][常量表達(dá)式2]…[常量表達(dá)式n];例如,多維數(shù)組的聲明如下:inta[3][4][5];intb[4][5][7][8];上述兩條代碼分別定義了一個(gè)三維數(shù)組和一個(gè)四維數(shù)組。由于數(shù)組元素的位置都可以通過偏移量計(jì)算,所以對(duì)于三維數(shù)組a[m][n][p]來說,元素a[i][j][k]所在的地址是從a[0][0][0]算起到(i*n*p+j*p+k)個(gè)單位的地方。 l
數(shù)組的基本操作數(shù)組是有序的數(shù)據(jù)集合,數(shù)組中的每一個(gè)元素都具有相同的數(shù)據(jù)類型。在程序中使用數(shù)組的最大好處是用一個(gè)數(shù)組名代表邏輯上相關(guān)的一批數(shù)據(jù),用下標(biāo)表示該數(shù)組中的各個(gè)元素,并且和循環(huán)語句結(jié)合使用,使得程序書寫簡(jiǎn)潔,操作方便,編寫出來的程序出錯(cuò)率低,可讀性強(qiáng)。下面通過一個(gè)實(shí)例來介紹數(shù)組的操作。例如:從鍵盤為二維數(shù)組元素賦值,顯示二維數(shù)組,求出二維數(shù)組中最大元素和最小元素的值及其下標(biāo),將二維數(shù)組轉(zhuǎn)制成為另一個(gè)二維數(shù)組,并顯示。具體操作步驟如下。課件制作人:宋坤數(shù)據(jù)類型(1)啟動(dòng)VisualC++6.0集成開發(fā)環(huán)境,創(chuàng)建一個(gè)Win32平臺(tái)下的控制臺(tái)程序。(2)在編輯窗口中,對(duì)代碼進(jìn)行編輯,程序代碼如下:#include"iostream.h"intmain(){inta[2][3],max,min,h,l,b[3][2],i,j;//從鍵盤為數(shù)組元素賦值
for(i=0;i<2;i++){for(j=0;j<3;j++){cout<<"a["<<i<<"]["<<j<<"]=";cin>>a[i][j];}}cout<<"輸出二維數(shù)組a"<<"\n";for(i=0;i<2;i++){for(j=0;j<3;j++){cout<<a[i][j]<<"\t";}//使元素分行顯示
cout<<"\n";}//求數(shù)組中最大元素及其下標(biāo)
max=a[0][0];h=0;l=0;課件制作人:宋坤數(shù)據(jù)類型
for(i=0;i<2;i++){for(j=0;j<3;j++){if(min>a[i][j]){min=a[i][j];h=i;l=j;}}}cout<<"數(shù)組中最小元素是:"<<"\n";cout<<"min:"<<"a["<<h<<"]["<<l<<"]="<<min<<"\n";
for(i=0;i<2;i++)//將數(shù)組a轉(zhuǎn)制后存入數(shù)組b中{for(j=0;j<3;j++){b[j][i]=a[i][j];}}cout<<"輸出二維數(shù)組b"<<"\n";for(i=0;i<3;i++){for(j=0;j<2;j++){cout<<b[i][j]<<"\t";}
cout<<"\n"; //使元素分行顯示}}課件制作人:宋坤數(shù)據(jù)類型
運(yùn)行結(jié)果如圖2-7所示。
枚舉類型枚舉類型是構(gòu)造類型,它由程序員定義,是一種允許用符號(hào)代表數(shù)據(jù)的數(shù)據(jù)類型。在定義枚舉類型的同時(shí)指定一組被命名的常量集合,該集合決定了該枚舉類型的變量可以具有的合法值。課件制作人:宋坤數(shù)據(jù)類型
枚舉的聲明如下:enum<枚舉類型名>{<常量1>,<常量2>,…,<常量n>};例如,聲明一個(gè)枚舉類型,代碼如下:enumweek{sun,mon,tue,wed,thu,fri,sat};聲明類型以后就可以聲明和使用變量了,如聲明一個(gè)week類型的變量為work,并為work賦值,代碼如下:enumweekwork;work=fri;在C++中,對(duì)枚舉常量按常量處理,作為常量本身是有值的,按照定義時(shí)的順序使值不斷遞增,即第一個(gè)常量的值是0,第二個(gè)常量的值是1,依此類推,第n個(gè)常量是n-1。當(dāng)枚舉類型的某個(gè)常量被指定值以后,該常量后面的常量值則根據(jù)指定的值不斷遞增。下面通過一個(gè)實(shí)例來介紹枚舉類型。
課件制作人:宋坤數(shù)據(jù)類型
例如:聲明一個(gè)枚舉類型,設(shè)置枚舉常量的值并輸出枚舉常量,具體操作步驟如下。(1)啟動(dòng)VisualC++6.0集成開發(fā)環(huán)境,創(chuàng)建一個(gè)Win32平臺(tái)下的控制臺(tái)程序。(2)在編輯窗口中,對(duì)代碼進(jìn)行編輯,程序代碼如下:#include"stdafx.h"#include"iostream.h"intmain(){enumweek{sunday,monday=3,tuesday,wednesday,thursday=9,friday,saturday};cout<<sunday<<'\n';cout<<monday<<'\n';cout<<tuesday<<'\n';cout<<wednesday<<'\n';cout<<thursday<<'\n';cout<<friday<<'\n';cout<<saturday<<'\n';}運(yùn)行結(jié)果如圖2-8所示。課件制作人:宋坤數(shù)據(jù)類型結(jié)構(gòu)體類型結(jié)構(gòu)是一種復(fù)合的數(shù)據(jù)類型,它可以將不同類型的數(shù)據(jù)組成一個(gè)整體,以便于使用。使用struct關(guān)鍵字可以聲明自己需要的數(shù)據(jù)類型。其中成員可以擁有各種不同的數(shù)據(jù)類型。結(jié)構(gòu)體的聲明如下:structemployees{charid[5];charname[20];charsex[2];};課件制作人:宋坤數(shù)據(jù)類型例如:聲明一個(gè)結(jié)構(gòu)體類型,并對(duì)結(jié)構(gòu)體變量進(jìn)行賦值、輸入和輸出,具體操作步驟如下。(1)啟動(dòng)VisualC++6.0集成開發(fā)環(huán)境,創(chuàng)建一個(gè)Win32平臺(tái)下的控制臺(tái)程序。(2)在編輯窗口中,對(duì)代碼進(jìn)行編輯,程序代碼如下:#include"iostream.h"structemployees{intid;charname[20];charsex[2];};intmain(){employeesemp1,emp2;cout<<"輸入emp1數(shù)據(jù):"<<"\n";
cout<<"id:";cin>>emp1.id;cout<<"name:";cin>>;cout<<"sex:";cin>>emp1.sex;cout<<"輸入emp2數(shù)據(jù):"<<"\n";cout<<"id:";cin>>emp2.id;cout<<"name:";cin>>;cout<<"sex:";cin>>emp2.sex;cout<<"輸出emp1:"<<"\n";cout<<"id="<<emp1.id<<"\n";cout<<"name="<<<<"\n";cout<<"sex="<<emp1.sex<<"\n";cout<<"輸出emp2:"<<"\n";cout<<"id="<<emp2.id<<"\n";cout<<"name="<<<<"\n";cout<<"sex="<<emp2.sex<<"\n";}課件制作人:宋坤數(shù)據(jù)類型運(yùn)行結(jié)果如圖2-9所示。
指針類型指針是一種特別的數(shù)據(jù)類型,用來存儲(chǔ)數(shù)據(jù)在內(nèi)存中的地址。計(jì)算機(jī)內(nèi)存被劃分為按順序編號(hào)的內(nèi)存單元,任何變量在內(nèi)存中都有單獨(dú)的內(nèi)存單元,即它在內(nèi)存中的地址。例如,先聲明一個(gè)變量,然后用指針指向變量,代碼如下:課件制作人:宋坤數(shù)據(jù)類型intnum;int*pnum;pnum=#在程序運(yùn)行中,“*”是取值運(yùn)算符,聲明變量是一個(gè)指針變量,其運(yùn)算結(jié)果是指針指向的變量;“&”是取址運(yùn)算符,表示取出變量的地址?!?”和“&”互為逆運(yùn)算。下面通過一個(gè)實(shí)例來介紹指針類型。例如:先聲明一個(gè)變量,然后用指針指向該變量,然后通過指針進(jìn)行輸出,具體操作步驟如下。(1)啟動(dòng)VisualC++6.0集成開發(fā)環(huán)境,創(chuàng)建一個(gè)Win32平臺(tái)下的控制臺(tái)程序。(2)在編輯窗口中,對(duì)代碼進(jìn)行編輯,程序代碼如下:課件制作人:宋坤數(shù)據(jù)類型#include"iostream.h"intmain(){intnum;int*pnum;pnum=#cout<<"輸入一個(gè)數(shù)"<<"\n";cin>>num;cout<<"指針pnum的值:"<<"\n";cout<<pnum<<"\n";cout<<"地址"<<pnum<<"中的值是:"<<"\n";cout<<*pnum<<"\n";}運(yùn)行結(jié)果如圖2-10所示。
課件制作人:宋坤數(shù)據(jù)類型引用類型引用是C++的一種新的變量類型,是對(duì)C語言的重要擴(kuò)充。它的作用是為變量起一個(gè)別名。當(dāng)聲明一個(gè)引用時(shí),應(yīng)該把它初始化為另一個(gè)對(duì)象名,即目標(biāo)變量。從這時(shí)起,引用就成為目標(biāo)的替代名,所有對(duì)引用的操作都相當(dāng)于對(duì)目標(biāo)變量的操作。下面通過一個(gè)實(shí)例來說明別名和變量的關(guān)系。例如:使用變量的別名對(duì)變量進(jìn)行增減,具體操作如下。(1)啟動(dòng)VisualC++6.0集成開發(fā)環(huán)境,創(chuàng)建一個(gè)Win32平臺(tái)下的控制臺(tái)程序。(2)在編輯窗口中,對(duì)代碼進(jìn)行編輯,程序代碼如下:
課件制作人:宋坤數(shù)據(jù)類型#include"iostream.h"intmain(){intx=1;int&y=x;cout<<x<<"\n";cout<<y<<"\n";x++;cout<<x<<"\n";cout<<y<<"\n";y++;cout<<x<<"\n";cout<<y<<"\n";}運(yùn)行結(jié)果如圖2-11所示。
課件制作人:宋坤數(shù)據(jù)類型通過實(shí)例可以看出,變量x的值改變后,別名y的值也相應(yīng)的改變了;同樣,別名y的值改變后,變量x的值也改變了。C++語言中增加引用,主要是用它作為函數(shù)的參數(shù),使無返回值的函數(shù)具有傳遞數(shù)據(jù)的功能。
課件制作人:宋坤運(yùn)算符運(yùn)算符是連接數(shù)據(jù)的紐帶,在程序設(shè)計(jì)語言中,運(yùn)算符起著不可或缺的作用。C++語言中,基本的運(yùn)算符可分為賦值運(yùn)算符、算術(shù)運(yùn)算符、邏輯運(yùn)算符、關(guān)系運(yùn)算符和位移運(yùn)算符。如果運(yùn)算符只需要一個(gè)變量就可以完成運(yùn)算,稱為單目運(yùn)算符;如果運(yùn)算符需要兩個(gè)變量才能完成運(yùn)算,稱為雙目運(yùn)算符;如果運(yùn)算符需要3個(gè)變量才能完成運(yùn)算,則稱為三目運(yùn)算符。賦值運(yùn)算符賦值運(yùn)算符“=”用來更新變量的值,賦值運(yùn)算符和其他運(yùn)算符組合起來可以簡(jiǎn)化語句的書寫,被稱為復(fù)合賦值運(yùn)算符。C++中賦值運(yùn)算符如表2-5所示。
課件制作人:宋坤運(yùn)算符
算術(shù)運(yùn)算符C++中的算術(shù)運(yùn)算符與平時(shí)使用的“加減乘除”四則運(yùn)算基本相同,只在兩個(gè)整數(shù)相除時(shí)稍有不同,在C++中,兩個(gè)整數(shù)相除的結(jié)果仍然是整數(shù),如5/2的結(jié)果是2。C++中的算術(shù)運(yùn)算符如表2-6所示。
運(yùn)算符名稱=賦值運(yùn)算符-=減賦值運(yùn)算符+=加賦值運(yùn)算符*=乘賦值運(yùn)算符/=除賦值運(yùn)算符%=求余賦值運(yùn)算符<<=左位移賦值運(yùn)算符>>=右位移賦值運(yùn)算符&=按位與賦值運(yùn)算符|=按位或賦值運(yùn)算符^=按位異或賦值運(yùn)算符課件制作人:宋坤運(yùn)算符
下面根據(jù)算數(shù)運(yùn)算符設(shè)計(jì)一個(gè)簡(jiǎn)單計(jì)算器,程序設(shè)計(jì)步驟如下。(1)啟動(dòng)VisualC++6.0集成開發(fā)環(huán)境,創(chuàng)建一個(gè)Win32平臺(tái)下的控制臺(tái)程序。(2)在編輯窗口中,對(duì)代碼進(jìn)行編輯,程序代碼如下:
運(yùn)算符優(yōu)先級(jí)名稱++2自增運(yùn)算符--2自減運(yùn)算符-2負(fù)運(yùn)算符*4乘運(yùn)算符/4除運(yùn)算符%4求模運(yùn)算符+5加運(yùn)算符-5減運(yùn)算符課件制作人:宋坤運(yùn)算符
#include"stdafx.h"#include"iostream.h"intmain(){doublenum1,num2,result;charop;intbo;cout<<"輸入一個(gè)數(shù):"<<'\n';cin>>num1;cout<<"輸入一個(gè)+、-、*、/中的一個(gè)符號(hào):"<<'\n';cin>>op;cout<<"輸入一個(gè)數(shù):"<<'\n';cin>>num2;switch(op){case'+':result=num1+num2;break;case'-':result=num1-num2;break;case'*':result=num1*num2;break;case'/':if(num2==0)bo=1;elseresult=num1/num2;break;}if(1)cout<<"除數(shù)不能為0"<<'\n';elsecout<<num1<<op<<num2<<"的結(jié)果為:"<<result<<'\n';}課件制作人:宋坤運(yùn)算符運(yùn)行結(jié)果如圖2-12所示。
關(guān)系運(yùn)算符用于進(jìn)行兩個(gè)數(shù)的比較,和邏輯運(yùn)算符一樣,常被作為條件表達(dá)式使用。當(dāng)a=3,b=5時(shí),關(guān)系運(yùn)算符如表2-7所示。運(yùn)算符名稱描述>大于a>b,值為FALSE,b>a,值為TRUE<小于a<b,值為TRUE,b<a,值為FALSE==等于a==b,值為FALSE>=大于等于a>=b,值為FALSE;b>=a,值為TRUE<=小于等于a<=b,值為TRUE;b<=a,值為FALSE!=不等于a!=b,值為TRUE課件制作人:宋坤運(yùn)算符例如:下面根據(jù)關(guān)系運(yùn)算符的“>”和“<”對(duì)學(xué)生成績(jī)進(jìn)行條件判斷,具體操作步驟如下。(1)啟動(dòng)VisualC++6.0集成開發(fā)環(huán)境,創(chuàng)建一個(gè)Win32平臺(tái)下的控制臺(tái)程序。(2)在編輯窗口中,對(duì)代碼進(jìn)行編輯,程序代碼如下:
#include"stdafx.h"#include"iostream.h"intmain(){intgrade;cout<<"請(qǐng)輸入學(xué)生成績(jī):"<<"\n";cin>>grade;if(grade<450)//判斷學(xué)生成績(jī)是否小于450{
cout<<"沒有進(jìn)入大專分?jǐn)?shù)線\n";}elseif(grade>550)//判斷學(xué)生成績(jī)是否大于550{
cout<<"進(jìn)入本科分?jǐn)?shù)線\n";}else{cout<<"進(jìn)入大專分?jǐn)?shù)線\n";}
}課件制作人:宋坤運(yùn)算符運(yùn)行結(jié)果如圖2-13所示。邏輯運(yùn)算符邏輯運(yùn)算符用于執(zhí)行邏輯運(yùn)算,常被作為條件表達(dá)式使用。邏輯運(yùn)算符如表2-8所示。運(yùn)算符名稱描述&&邏輯與運(yùn)算符兩邊都為TRUE時(shí),結(jié)果為TRUE,否則為FALSE||邏輯或運(yùn)算符兩邊都為FALSE時(shí),結(jié)果為FALSE,否則為TRUE!邏輯非運(yùn)算數(shù)為TRUE時(shí),結(jié)果為FALSE,反之為TRUE課件制作人:宋坤運(yùn)算符例如:下面根據(jù)邏輯運(yùn)算符判斷2008年是否為閏年,具體操作步驟如下。(1)啟動(dòng)VisualC++6.0集成開發(fā)環(huán)境,創(chuàng)建一個(gè)Win32平臺(tái)下的控制臺(tái)程序。(2)在編輯窗口中,對(duì)代碼進(jìn)行編輯,程序代碼如下:#include"stdafx.h"#include"iostream.h"intmain(){intyear;cout<<"輸入一個(gè)年份:"<<"\n";cout<<"year=";cin>>year;
inta,b,c;a=((int)(year/4))*4==year;//判斷年份能否被4整除
b=((int)(year/100))*100==year;//判斷年份能否被100整除
c=((int)(year/400))*400==year;//判斷年份能否被400整除
if(a&&(!b)||b&&c)//判斷是否為閏年{
cout<<year<<"年是閏年\n";}else{cout<<year<<"年不是閏年\n";}
}運(yùn)行結(jié)果如圖2-14所示。
課件制作人:宋坤運(yùn)算符逗號(hào)運(yùn)算符逗號(hào)運(yùn)算符是一種特殊的運(yùn)算符,可以將兩個(gè)表達(dá)式連接起來稱為逗號(hào)表達(dá)式。格式如下:表達(dá)式1,表達(dá)式2,…,表達(dá)式n逗號(hào)表達(dá)式的求值過程是先求表達(dá)式1的值,再求表達(dá)式2的值,依次向后求值,整個(gè)逗號(hào)表達(dá)式的值是最右邊的表達(dá)式的值。課件制作人:宋坤運(yùn)算符例如:inta;a=(1+2,5*2,4+5,8+5);輸出結(jié)果a=13。條件運(yùn)算符條件運(yùn)算符是惟一的三目運(yùn)算符,即它是惟一一個(gè)需要3個(gè)操作數(shù)的運(yùn)算符。條件運(yùn)算符對(duì)3個(gè)表達(dá)式進(jìn)行計(jì)算并返回一個(gè)值,其條件表達(dá)式格式如下:表達(dá)式1?表達(dá)式2:表達(dá)式3;條件運(yùn)算符執(zhí)行順序是先求表達(dá)式1的值,值為TRUE時(shí)執(zhí)行表達(dá)式2,表達(dá)式2的值就是條件表達(dá)式的值;若表達(dá)式1的值為FALSE,則執(zhí)行表達(dá)式3,表達(dá)式3的值就是條件表達(dá)式的值。可以用條件表達(dá)式進(jìn)行賦值,例如:inta=5,b=7,min;min=(a<b)?a:b;代碼中“min”的值為5。
課件制作人:宋坤表達(dá)式表達(dá)式是由常量、變量、運(yùn)算符和數(shù)據(jù)組成的,是程序設(shè)計(jì)語言為了獲得值而產(chǎn)生的。表達(dá)式位于賦值語句的右邊,它的返回值可以被程序利用。x=y+zx=y+=(m+n)上面是兩個(gè)簡(jiǎn)單的表達(dá)式,兩個(gè)表達(dá)式的含義如下。 第1行代碼是將y+z的值賦給x。
第2行代碼是先計(jì)算m+n的和,將取得的值和y相加后賦給y,再把y的值賦給x。表達(dá)式的返回值也有類型之分,其類型取決于表達(dá)式包含的變量和常量的類型。表達(dá)式可以根據(jù)其所包含的運(yùn)算符分為以下8種類型。 算術(shù)表達(dá)式:根據(jù)類型可分為兩種。 整型表達(dá)式:表達(dá)式中的數(shù)據(jù)是整型,結(jié)果也是整型。 實(shí)型表達(dá)式:表達(dá)式中的數(shù)據(jù)是實(shí)型,運(yùn)算過程中先轉(zhuǎn)換成double 型,結(jié)果也是double型。 邏輯表達(dá)式:用邏輯運(yùn)算符連接整型數(shù)據(jù),結(jié)果是0或1。 位表達(dá)式:用位運(yùn)算符連接整型數(shù)據(jù),結(jié)果是整型。 強(qiáng)制類型轉(zhuǎn)換表達(dá)式:用“(類型)”運(yùn)算符使表達(dá)式的類型強(qiáng)制轉(zhuǎn)換。 逗號(hào)表達(dá)式:順序求出表達(dá)式的值,結(jié)果是最右邊的表達(dá)式的值。 賦值表達(dá)式:將“=”右邊表達(dá)式的值賦給左邊的變量,結(jié)果為賦值后的變量值。 條件表達(dá)式:根據(jù)前面表達(dá)式的值判斷執(zhí)行后面兩個(gè)表達(dá)式中的哪一個(gè)。指針表達(dá)式:對(duì)指針類型的數(shù)據(jù)進(jìn)行運(yùn)算,結(jié)果是指針類型。課件制作人:宋坤語句程序都是由一條條的語句構(gòu)成的,語句分為簡(jiǎn)單語句和復(fù)合語句。簡(jiǎn)單語句是由表達(dá)式和分號(hào)組成的。即使分號(hào)之前沒有任何其他的符號(hào)或數(shù)據(jù),它也是簡(jiǎn)單語句,這時(shí)該語句被稱為空語句。復(fù)合語句是以“{”開始,以“}”結(jié)束的語句,也稱為語句塊。在C++中,復(fù)合語句和單一語句在語法上占有同等的地位,即可以把復(fù)合語句看成一條語句。復(fù)合語句內(nèi)的每條語句都必須以分號(hào)結(jié)尾,但復(fù)合語句本身不用。例如下段代碼就是復(fù)合語句,功能是交換x、y兩個(gè)變量的值,代碼如下:{
t=x;x=y;y=t;}在復(fù)合語句內(nèi),不但可以包含執(zhí)行語句,還可以包含聲明語句,但是在復(fù)合語句內(nèi)聲明的變量在復(fù)合語句外不能使用。當(dāng)復(fù)合語句外的變量和內(nèi)部的變量重名時(shí),內(nèi)部的變量在復(fù)合語句中有效。順序語句順序結(jié)構(gòu)程序設(shè)計(jì)就是按自上而下的順序編寫程序,代碼中沒有結(jié)構(gòu)控制語句,代碼自上而下一條一條的執(zhí)行。執(zhí)行流程如圖2-15所示。
課件制作人:宋坤語句下面通過一個(gè)例子對(duì)順序語句進(jìn)行介紹。例如:使用順序結(jié)構(gòu)交換變量的值,具體操作步驟如下。(1)啟動(dòng)VisualC++6.0集成開發(fā)環(huán)境,創(chuàng)建一個(gè)Win32平臺(tái)下的控制臺(tái)程序。(2)在編輯窗口中,對(duì)代碼進(jìn)行編輯,程序代碼如下:#include"stdafx.h"#include"iostream.h"
intmain(){intx=1,y=2,t;cout<<"x="<<x<<"\n";cout<<"y="<<y<<"\n";t=x;x=y;y=t;cout<<"x="<<x<<"\n";cout<<"y="<<y<<"\n";}運(yùn)行結(jié)果如圖2-16所示。
課件制作人:宋坤語句分支語句分支語句就是選擇結(jié)構(gòu)程序設(shè)計(jì)語句,選擇結(jié)構(gòu)程序設(shè)計(jì)是根據(jù)特定的條件判斷來執(zhí)行特定的代碼。在C++語言中,選擇條件語句包括if語句和switch語句。l
if判斷語句if語句用來判斷條件語句是否成立,根據(jù)判斷的結(jié)果決定執(zhí)行哪一條語句。if語句流程如圖2-17所示。課件制作人:宋坤語句if語句包括4種形式。第1種形式if(<表達(dá)式>){<語句塊>}當(dāng)<表達(dá)式>的值為TRUE時(shí),執(zhí)行<語句塊>。第2種形式if(<表達(dá)式>){<語句塊1>}else{<語句塊2>}當(dāng)<表達(dá)式>的值為TRUE時(shí),執(zhí)行<語句塊1>;當(dāng)<表達(dá)式>的值為FALSE時(shí),執(zhí)行<語句塊2>。課件制作人:宋坤語句第3種形式if(<表達(dá)式1>){<語句塊1>}elseif(<表達(dá)式2>){<語句塊2>}elseif(<表達(dá)式3>){<語句塊3>}...elseif(<表達(dá)式n>){<語句塊n>}else{<語句塊n+1>}第3種形式是多分支if語句,如果<表達(dá)式>的值為TRUE,就執(zhí)行if語句后的<語句塊>,否則執(zhí)行else后的<語句塊>,兩個(gè)<語句塊>不會(huì)同時(shí)執(zhí)行。多分支if語句的執(zhí)行流程如圖2-18所示,多分支if語句的N-S流程圖如圖2-19所示。
課件制作人:宋坤語句課件制作人:宋坤語句下面通過一個(gè)例子對(duì)多分支if語句的使用進(jìn)行介紹。例如:將學(xué)生分?jǐn)?shù)的100制度改為A、B、C、D、E等級(jí)制度,輸入分?jǐn)?shù)后使用多分支if語句判斷分?jǐn)?shù)等級(jí),具體操作步驟如下。(1)啟動(dòng)VisualC++6.0集成開發(fā)環(huán)境,創(chuàng)建一個(gè)Win32平臺(tái)下的控制臺(tái)程序。(2)在編輯窗口中,對(duì)代碼進(jìn)行編輯,程序代碼如下:#include"stdafx.h"#include"iostream.h"
intmain(){intnum;cout<<"輸入學(xué)生分?jǐn)?shù):"<<"\n";cout<<"num=";cin>>num;if(num<0||num>100){cout<<"輸入的分?jǐn)?shù)不正確"<<"\n";}elseif(num>=90){cout<<"該學(xué)生的分?jǐn)?shù)等級(jí)為A"<<"\n";}elseif(num>=80){cout<<"該學(xué)生的分?jǐn)?shù)等級(jí)為B"<<"\n";}elseif(num>=70){cout<<"該學(xué)生的分?jǐn)?shù)等級(jí)為C"<<"\n";}elseif(num>=60){cout<<"該學(xué)生的分?jǐn)?shù)等級(jí)為D"<<"\n";}else{cout<<"該學(xué)生的分?jǐn)?shù)等級(jí)為E"<<"\n";}}
課件制作人:宋坤語句運(yùn)行結(jié)果如圖2-20所示。
第4種形式if(<表達(dá)式1>){
if(<表達(dá)式2>){<語句塊1>}
else{<語句塊2>}}else{if(<表達(dá)式3>){<語句塊3>}
else{<語句塊4>}}課件制作人:宋坤語句第4種形式其實(shí)就是if語句的嵌套,用來進(jìn)行多條件的判斷。下面通過一個(gè)例子對(duì)if語句的嵌套使用進(jìn)行介紹。例如:使用if語句判斷是否為閏年,具體操作步驟如下。(1)啟動(dòng)VisualC++6.0集成開發(fā)環(huán)境,創(chuàng)建一個(gè)Win32平臺(tái)下的控制臺(tái)程序。(2)在編輯窗口中,對(duì)代碼進(jìn)行編輯,程序代碼如下:#include"stdafx.h"#include"iostream.h"
intmain(){intyear;cout<<"輸入一個(gè)年份:"<<"\n";cout<<"year=";cin>>year;if(year%4==0){if(year%100!=0){cout<<year<<"年是閏年"<<"\n";}elseif(year%400==0){cout<<year<<"年是閏年"<<"\n";}else{cout<<year<<"年不是閏年"<<"\n";}}else{cout<<year<<"年不是閏年"<<"\n";}}課件制作人:宋坤語句運(yùn)行結(jié)果如圖2-21所示。
l
switch語句雖然使用if語句可以處理多選擇問題,但是,如果嵌套過多,大量的if…else語句會(huì)令人頭暈?zāi)垦?,此時(shí)可以使用switch語句。switch語句用于實(shí)現(xiàn)多分支結(jié)構(gòu),完整的switch語句包括switch、case、default、break4個(gè)關(guān)鍵字。switch語句流程如圖2-22所示。課件制作人:宋坤語句switch語句的一般形式如下:switch(<表達(dá)式>){
case<常量表達(dá)式1>:<語句塊1>
break;case<常量表達(dá)式2>:<語句塊2>
break;...case<常量表達(dá)式n>:<語句塊n>break;default:<語句塊n>}執(zhí)行switch語句時(shí),會(huì)將<表達(dá)式>的值和<常量表達(dá)式>的值進(jìn)行比較,當(dāng)某個(gè)case語句中<常量表達(dá)式>的值與<表達(dá)式>的值相等時(shí),就執(zhí)行該case語句后的<語句塊>。當(dāng)遇到break語句時(shí),退出switch語句。如果所有case語句中<常量表達(dá)式>的值都不等于<表達(dá)式>的值,則執(zhí)行default語句后的<語句塊>。其中,default語句是一個(gè)可選項(xiàng),可以選擇不使用。例如:下面使用switch語句來判斷某月份所在的季節(jié),具體操作步驟如下。(1)啟動(dòng)VisualC++6.0集成開發(fā)環(huán)境,創(chuàng)建一個(gè)Win32平臺(tái)下的控制臺(tái)程序。(2)在編輯窗口中,對(duì)代碼進(jìn)行編輯,程序代碼如下:
課件制作人:宋坤語句#include"stdafx.h"#include"iostream.h"
intmain(){intmonth;cout<<"輸入一個(gè)月份:"<<"\n";cout<<"month=";cin>>month;switch(month){case1:cout<<month<<"月是冬季"<<"\n";break;case2:cout<<month<<"月是春季"<<"\n";break;case3:cout<<month<<"月是春季"<<"\n";break;case4:cout<<month<<"月是春季"<<"\n";break;case5:cout<<month<<"月是夏季"<<"\n";break;case6:cout<<month<<"月是夏季"<<"\n";break;case7:cout<<month<<"月是夏季"<<"\n";break;case8:cout<<month<<"月是秋季"<<"\n";break;課件制作人:宋坤語句case9:cout<<month<<"月是秋季"<<"\n";break;case10:cout<<month<<"月是秋季"<<"\n";break;case11:cout<<month<<"月是冬季"<<"\n";break;case12:cout<<month<<"月是冬季"<<"\n";break;default:cout<<month<<"月不存在"<<"\n";}}運(yùn)行結(jié)果如圖2-23所示。
課件制作人:宋坤語句switch語句還有一個(gè)特殊的用法,就是不使用break語句的多路開關(guān)形式,一般形式如下。switch(<表達(dá)式>){
case<常量表達(dá)式1>:<語句塊1>
case<常量表達(dá)式2>:<語句塊2>...
case<常量表達(dá)式n>:<語句塊n>default:<語句塊n>}不使用break語句,程序在執(zhí)行時(shí)從第一個(gè)與常量表達(dá)式相等的case語句開始,順序執(zhí)行后面的每一條語句,直到switch語句結(jié)束。例如:下面使用switch語句來查詢某一分?jǐn)?shù)段以及各分?jǐn)?shù)段的人數(shù),具體操作步驟如下。(1)啟動(dòng)VisualC++6.0集成開發(fā)環(huán)境,創(chuàng)建一個(gè)Win32平臺(tái)下的控制臺(tái)程序。(2)在編輯窗口中,對(duì)代碼進(jìn)行編輯,程序代碼如下:#include"stdafx.h"#include"iostream.h"
intmain(){intf100=0,f90=0,f80=0,f70=0,f60=0;charnum;課件制作人:宋坤語句
intfen[40]={82,75,95,46,68,61,75,52,93,48,71,72,85,93,82,75,81,75,82,68,69,71};for(inti=0;i<20;i++){if(fen[i]>90)
f100++;elseif(fen[i]>80)
f90++;elseif(fen[i]>70)
f80++;elseif(fen[i]>60)
f70++;else
f60++;}cout<<"請(qǐng)輸入A、B、C、D、E,5種分?jǐn)?shù)等級(jí)之一:";
cin>>num;switch(num){case'A':
cout<<"90~100分的有"<<f100<<"人"<<"\n";case'B':
cout<<"80~90分的有"<<f90<<"人"<<"\n";case'C':
cout<<"70~80分的有"<<f80<<"人"<<"\n";case'D':
cout<<"60~70分的有"<<f70<<"人"<<"\n";case'E':
cout<<"60分以下的有"<<f60<<"人"<<"\n";}}運(yùn)行結(jié)果如圖2-24所示。課件制作人:宋坤語句循環(huán)語句循環(huán)結(jié)構(gòu)程序設(shè)計(jì)在很大程度上簡(jiǎn)化了順序結(jié)構(gòu)程序設(shè)計(jì),使程序看起來更加清晰易懂。在C++語言中有3種語句可以實(shí)現(xiàn)循環(huán),分別是goto語句、while語句、for語句。下面分別對(duì)這3種語句進(jìn)行介紹。goto循環(huán)語句goto語句可以跳離目前的語句,直接到達(dá)指定標(biāo)志設(shè)定的語句處。在標(biāo)志設(shè)定的語句后面必須有其他語句,否則是錯(cuò)誤的。下面通過一個(gè)例子對(duì)goto語句進(jìn)行介紹。例如:使用goto語句累加數(shù)字求和,具體操作步驟如下。(1)啟動(dòng)VisualC++6.0集成開發(fā)環(huán)境,創(chuàng)建一個(gè)Win32平臺(tái)下的控制臺(tái)程序。(2)在編輯窗口中,對(duì)代碼進(jìn)行編輯,程序代碼如下:
課件制作人:宋坤語句#include"stdafx.h"#include"iostream.h"
intmain(){intnum,i=1,sum=0;cout<<"輸入一個(gè)數(shù):"<<"\n";cout<<"num=";cin>>num;XUNHUAN://當(dāng)條件滿足時(shí),執(zhí)行g(shù)oto語句直接跳轉(zhuǎn)到標(biāo)志后的語句。
if(i<=num){sum+=i;i++;gotoXUNHUAN;}cout<<"從1加到"<<num<<"和是:"<<sum<<"\n";}運(yùn)行結(jié)果如圖2-25所示。
課件制作人:宋坤語句while循環(huán)語句在使用while語句時(shí),只要條件表達(dá)式為TRUE,while循環(huán)就會(huì)一直執(zhí)行,直到條件表達(dá)式的值為FALSE時(shí)結(jié)束。while語句的流程如圖2-26所示。
while語句的一般形式如下:while(<條件表達(dá)式>){<循環(huán)體>}下面通過一個(gè)例子對(duì)while語句進(jìn)行介紹。例如:使用switch語句求出100~200間的全部素?cái)?shù),具體操作步驟如下。(1)啟動(dòng)VisualC++6.0集成開發(fā)環(huán)境,創(chuàng)建一個(gè)Win32平臺(tái)下的控制臺(tái)程序。(2)在編輯窗口中,對(duì)代碼進(jìn)行編輯,程序代碼如下:
課件制作人:宋坤語句#include"stdafx.h"#include"iostream.h"#include"cmath"
intmain(){intnum=101,kf,i=2;cout<<"輸出100~200間的全部素?cái)?shù):"<<"\n";while(num<=200){kf=sqrt(num);while(i<=kf){if(num%i==0){break;}i++;}if(i>kf){cout<<num<<"\t";}i=2;num=num+2;}cout<<"\n";}運(yùn)行結(jié)果如圖2-27所示。課件制作人:宋坤語句for循環(huán)語句for語句是最常用的循環(huán)語句,它是while語句的一種緊湊寫法。for語句流程如圖2-28所示。
課件制作人:宋坤語句for語句的一般形式如下:for(<表達(dá)式1>;<表達(dá)式2>;<表達(dá)式3>){<循環(huán)體>}其中3個(gè)表達(dá)式的內(nèi)容分別如下。 <表達(dá)式1>:設(shè)定for語句內(nèi)各變量在循環(huán)開始前的初始值。 <表達(dá)式2>:決定循環(huán)是否繼續(xù)執(zhí)行的條件。如果<表達(dá)式2>的值為True,繼續(xù)循環(huán),否則退出循環(huán)。 <表達(dá)式3>:每次循環(huán)結(jié)束前執(zhí)行的語句,通常是使一個(gè)變量的值遞增或遞減,用來改變<表達(dá)式2>的值。下面通過一個(gè)例子對(duì)for語句進(jìn)行介紹。例如:使用for語句的嵌套輸出九九乘法表,具體操作步驟如下。(1)啟動(dòng)VisualC++6.0集成開發(fā)環(huán)境,創(chuàng)建一個(gè)Win32平臺(tái)下的控制臺(tái)程序。(2)在編輯窗口中,對(duì)代碼進(jìn)行編輯,程序代碼如下:課件制作人:宋坤語句#include"stdafx.h"#include"iostream.h"
intmain(){inti,j;cout<<"輸出乘法九九表:"<<"\n";for(i=1;i<10;i++){for(j=1;j<=i;j++){cout<<j<<"*"<<i<<"="<<i*j<<"\t";}cout<<"\n";}}運(yùn)行結(jié)果如圖2-29所示。課件制作人:宋坤語句流程控制語句在程序中,還會(huì)遇到一些特殊的情況,例如,在程序運(yùn)行中因某種原因需要強(qiáng)制結(jié)束或繼續(xù)執(zhí)行相應(yīng)的語句時(shí),這就需利用break、continue、Exit語句。l
break語句若要在達(dá)到某種條件后就終止程序的執(zhí)行,可以使用break語句,該語句的功能就是跳出結(jié)構(gòu)控制語句。下面通過一個(gè)例子對(duì)break語句進(jìn)行介紹。例如:在累加數(shù)字求和運(yùn)算中,當(dāng)輸入0時(shí),則通過break語句跳出循環(huán)。具體操作步驟如下。(1)啟動(dòng)VisualC++6.0集成開發(fā)環(huán)境,創(chuàng)建一個(gè)Win32平臺(tái)下的控制臺(tái)程序。(2)在編輯窗口中,對(duì)代碼進(jìn)行編輯,程序代碼如下:#include"stdafx.h"#include"iostream.h"intmain(){intnum,sum=0;cout<<"輸入要累加的數(shù):"<<"\n";while(1){
cin>>num;
sum+=num;
if(num==0)
{break;
}}cout<<"輸入數(shù)的和:sum="<<sum<<"\n";}課件制作人:宋坤語句運(yùn)行結(jié)果如圖2-30所示。l
continue語句continue語句的功能是結(jié)束本次循環(huán),返回條件判斷部分,重新開始循環(huán),continue語句只能在循環(huán)結(jié)構(gòu)中使用。下面通過一個(gè)例子對(duì)continue語句進(jìn)行介紹。例如:求0~100間不能被3整除的數(shù),如果該數(shù)能被3整除時(shí),則通過continue語句返回條件判斷部分。具體操作步驟如下。(1)啟動(dòng)VisualC++6.0集成開發(fā)環(huán)境,創(chuàng)建一個(gè)Win32平臺(tái)下的控制臺(tái)程序。(2)在編輯窗口中,對(duì)代碼進(jìn)行編輯,程序代
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 衛(wèi)星結(jié)構(gòu)全面解析
- 2025年企業(yè)消防安全事故案例匯編
- 供應(yīng)商管理制度
- 公共交通車輛清潔消毒制度
- 超市員工培訓(xùn)及心理輔導(dǎo)制度
- Unit 2 Stay Healthy Section A 知識(shí)清單 2025-2026學(xué)年人教版八年級(jí)英語下冊(cè)
- 中國(guó)熱帶農(nóng)業(yè)科學(xué)院香料飲料研究所2026年第一批公開招聘工作人員備考題庫完整答案詳解
- 2026年蘇州市醫(yī)療保險(xiǎn)研究會(huì)人員招聘?jìng)淇碱}庫及一套完整答案詳解
- 養(yǎng)老院收費(fèi)標(biāo)準(zhǔn)及退費(fèi)制度
- 2026年數(shù)智備考題庫設(shè)計(jì)師、系統(tǒng)運(yùn)維工程師招聘?jìng)淇碱}庫附答案詳解
- 2025-2026學(xué)年四年級(jí)英語上冊(cè)期末試題卷(含聽力音頻)
- 2026屆川慶鉆探工程限公司高校畢業(yè)生春季招聘10人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 醫(yī)療器械法規(guī)考試題及答案解析
- 2025年河南體育學(xué)院馬克思主義基本原理概論期末考試筆試題庫
- 2026年廣西出版?zhèn)髅郊瘓F(tuán)有限公司招聘(98人)考試參考題庫及答案解析
- 2026年中國(guó)鐵路上海局集團(tuán)有限公司招聘普通高校畢業(yè)生1236人備考題庫及答案詳解1套
- 2026年上海市普陀區(qū)社區(qū)工作者公開招聘?jìng)淇碱}庫附答案
- 醫(yī)源性早發(fā)性卵巢功能不全臨床治療與管理指南(2025版)
- 甘肅省平?jīng)鍪?2025年)輔警協(xié)警筆試筆試真題(附答案)
- 中國(guó)雙相障礙防治指南(2025版)
- 移動(dòng)式工程機(jī)械監(jiān)理實(shí)施細(xì)則
評(píng)論
0/150
提交評(píng)論