版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第二章C++基礎(chǔ)知識(shí)西南交通大學(xué)軟件學(xué)院計(jì)算機(jī)基礎(chǔ)教研室計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)與VisualC++8/19/20231教學(xué)內(nèi)容1.C++程序的基本框架2.C++程序運(yùn)行與調(diào)試方法3.變量與常量4.各種運(yùn)算符與表達(dá)式5.類(lèi)型轉(zhuǎn)換2C++基本程序框架示例:
編寫(xiě)程序:在計(jì)算機(jī)屏幕上顯示:
Hello,C++!3源程序清單://屏幕輸出Hello,C++!#include<iostream>//預(yù)編譯命令usingnamespacestd;//using命令voidmain()//主函數(shù)名{ //表示函數(shù)的開(kāi)頭cout<<"Hello,C++!"<<endl;//函數(shù)體}//表示函數(shù)的結(jié)束注釋預(yù)編譯命令主函數(shù)輸出語(yǔ)句4一、程序基本結(jié)構(gòu)
1.注釋程序中“//”符號(hào)表明本行后續(xù)字符為注釋信息,該信息與程序的運(yùn)行無(wú)關(guān),在編譯時(shí)被忽略。另一種注釋方法: /**/夾在“/*”與“*/”之間的所有字符為注釋信息。52.預(yù)編譯命令
#include文件名 預(yù)編譯命令編譯程序時(shí)把指定的文件的內(nèi)容插入到該行的位置。 #include<iostream>表示把庫(kù)文件iostream中的內(nèi)容包含到該程序文件中來(lái)。
庫(kù)文件是系統(tǒng)提供的能實(shí)現(xiàn)某些特定功能的文件,如本例中用到系統(tǒng)提供的輸出功能。多條#include命令必須分行書(shū)寫(xiě)。6包含庫(kù)文件時(shí)有兩種可能形式: #include<iostream> usingnamespacestd;或 #include<iostream.h> 早些系統(tǒng)實(shí)現(xiàn)是將標(biāo)準(zhǔn)庫(kù)功能定義在全局空間中,聲明在帶.h后綴的頭文件中 C++標(biāo)準(zhǔn)程序庫(kù)中的所有標(biāo)識(shí)符都定義在名為std的名稱(chēng)空間中7 指出包含的文件名可以使用<>和“”兩種符號(hào) #include<iostream> #include“c:\jys\iostream”<>表示只在系統(tǒng)目錄中尋找要包含的文件“”表示在指定的路徑中尋找要包含的文件83.主函數(shù)
C++程序由一個(gè)或多個(gè)函數(shù)組成,其中,主函數(shù)main必須有且只有一個(gè)。
voidmain() {函數(shù)體}(1)void稱(chēng)為空類(lèi)型,表示函數(shù)沒(méi)有返回值;(2)函數(shù)名之后必須有一對(duì)小圓括號(hào)(),括號(hào)中可以有參數(shù)。9(3)“{”與“}”必須配對(duì)使用,“{}”之間的內(nèi)容為函數(shù)體,函數(shù)體內(nèi)可以包含任意多行語(yǔ)句。(4)C++規(guī)定每個(gè)語(yǔ)句的最后以“;”結(jié)束。(5)C++程序的書(shū)寫(xiě)很靈活,一行可書(shū)寫(xiě)多個(gè)語(yǔ)句,一個(gè)語(yǔ)句可以寫(xiě)成多行,但書(shū)寫(xiě)時(shí)首先應(yīng)該考慮程序的可讀性。10 通常采用縮進(jìn)格式:按不同層次的結(jié)構(gòu),從不同的起始位置寫(xiě)起 intabc() { …; …; for() { …; if() { …; } } }11主函數(shù)的書(shū)寫(xiě)也可以是如下形式: intmain() { 函數(shù)體 return0; }
int表示函數(shù)返回一個(gè)整型的數(shù)據(jù)12C++程序可以由多個(gè)函數(shù)組成,main函數(shù)在程序中位置可以任意,但主函數(shù)main代表了程序執(zhí)行的起始點(diǎn)和終止點(diǎn),即程序總是從主函數(shù)main的第一條語(yǔ)句開(kāi)始執(zhí)行,并結(jié)束于主函數(shù)的最后一條語(yǔ)句。
13cout語(yǔ)名用于輸出,使用格式為:
cout<<輸出內(nèi)容cout是一個(gè)標(biāo)準(zhǔn)輸出流對(duì)象,表示標(biāo)準(zhǔn)輸出設(shè)備——計(jì)算機(jī)屏幕。符號(hào)“<<”是插入運(yùn)算符,它指示計(jì)算機(jī)把其右端的內(nèi)容送到屏幕。
注意:C++區(qū)分大小寫(xiě),所有標(biāo)點(diǎn)必須使用西文標(biāo)點(diǎn),只有雙引號(hào)、注釋里可使用中文。
4.輸出語(yǔ)句14#include<iostream>usingnamespacestd;voidmain(){
…… 語(yǔ)句部分}.. 其他函數(shù).
5.程序的基本框架結(jié)構(gòu)為:變量定義語(yǔ)句;輸入語(yǔ)句;算法語(yǔ)句;輸入語(yǔ)句;15二、開(kāi)發(fā)過(guò)程中涉及到的程序1.源程序:用源語(yǔ)言寫(xiě)的,有待翻譯的程序2.目標(biāo)程序:也稱(chēng)為"結(jié)果程序",是源程序通過(guò)翻譯程序加工以后所生成的程序。3.翻譯程序:是指一個(gè)把源程序翻譯成等價(jià)的目標(biāo)程序的程序。16源程序源程序目標(biāo)程序翻譯程序匯編程序編譯程序解釋程序 是把用匯編語(yǔ)言寫(xiě)成的源程序,轉(zhuǎn)換成機(jī)器語(yǔ)言形式的目標(biāo)程序。 將高級(jí)程序設(shè)計(jì)語(yǔ)言所寫(xiě)的程序,一次性完全轉(zhuǎn)換成機(jī)器語(yǔ)言形式的目標(biāo)程序 將高級(jí)語(yǔ)言源程序轉(zhuǎn)換成機(jī)器指令的目標(biāo)程序。它的特點(diǎn)在于:邊翻譯邊執(zhí)行17C++程序運(yùn)行與調(diào)試方法1、編輯將源程序輸入到計(jì)算機(jī)中,生成后綴為.cpp的程序文件。2、編譯將程序的源代碼轉(zhuǎn)換為機(jī)器語(yǔ)言代碼,生成后綴名為.obj的文件。一、C++程序編輯與運(yùn)行過(guò)程183、鏈接將多個(gè)源程序文件以及庫(kù)中的某些文件連在一起,生成一個(gè)后綴為.exe的可執(zhí)行文件。4、運(yùn)行調(diào)試19二、VC++集成環(huán)境及操作1、VisualC++6.0的安裝 書(shū)P236~P244頁(yè)2、基本操作(書(shū)P19~P24頁(yè)) 1)創(chuàng)建項(xiàng)目 2)在項(xiàng)目中添加源文件 3)編輯 4)保存 5)編譯 6)調(diào)試 7)鏈接 8)執(zhí)行20常量與變量 程序處理的對(duì)象是數(shù)據(jù),數(shù)據(jù)有數(shù)值數(shù)據(jù)、文字?jǐn)?shù)據(jù)、圖像數(shù)據(jù)、聲音數(shù)據(jù)等多種形式,最基本、最常用的數(shù)據(jù)是數(shù)值數(shù)據(jù)和文字?jǐn)?shù)據(jù)。21不同類(lèi)型的數(shù)據(jù)占據(jù)不同長(zhǎng)度的存儲(chǔ)單元 例如: char1字節(jié)
int4字節(jié)不同類(lèi)型的數(shù)據(jù)對(duì)應(yīng)不同的值域范圍 例如:short2字節(jié) -32768~32767 int 4字節(jié)-2147483648~2147483647不同類(lèi)型的數(shù)據(jù)對(duì)應(yīng)不同的操作(運(yùn)算)及規(guī)則22C++數(shù)據(jù)類(lèi)型基本數(shù)據(jù)類(lèi)型非基本數(shù)據(jù)類(lèi)型整型實(shí)型雙精度型字符型布爾型數(shù)組指針引用類(lèi)結(jié)構(gòu)聯(lián)合枚舉不同種類(lèi)的數(shù)據(jù)是通過(guò)數(shù)據(jù)類(lèi)型來(lái)表示的23根據(jù)程序運(yùn)行過(guò)程中,值是否可以改變,C++中的數(shù)據(jù)可分為常量和變量?jī)纱箢?lèi)。值可以改變的量稱(chēng)為變量,值不能被改變的量稱(chēng)為常量。一、常量常量有字面值常量和符號(hào)常量?jī)煞N,字面值常量又稱(chēng)為常數(shù)或直接常量,是在程序直接使用的值。C++中的字面常量有整型、實(shí)型、字符型、布爾型、字符串型五類(lèi)241、字面值常量
1)整型常量整型常量包括正整數(shù)、負(fù)整數(shù)和零。C++中的整型常量可以用十進(jìn)制、八進(jìn)制和十六進(jìn)制表示:①十進(jìn)制:如15,-235,0②八進(jìn)制:以0打頭,如07,0327,-02③十六進(jìn)制:以0X或0x打頭,如-0x7,OX5bf25例如: 15+30= 015+030= 0x15+0x15=453742了解:長(zhǎng)整型常量的表示方法是加后綴字母l或L,如712l,0x5fL
無(wú)符號(hào)型整型常量的表示方法是加后綴字母u或U,如712u,0x5fU262)實(shí)型常量(浮點(diǎn)數(shù)或?qū)嵭统?shù))
小數(shù)形式(一般形式):由正負(fù)號(hào)、數(shù)字和小數(shù)點(diǎn)組成,必須有且僅有一個(gè)小數(shù)點(diǎn)。 例如: 0.0,1.0,-2.68,3.141593, 637.312,-32768.0,...27
科學(xué)記數(shù)形式(指數(shù)形式):用字母e或者E表示10的冪次。 注意:E前后必須有數(shù)字,指數(shù)部分必須為整數(shù)。 例如:
0.0E0,-6.226e-4,1.267E20,... 實(shí)型(浮點(diǎn)型)常量只有十進(jìn)制。尾數(shù)e或E指數(shù)28 實(shí)型常量分單精度(float)、雙精度(double)和長(zhǎng)雙精度(longdouble)三種:
不加說(shuō)明(隱含)的實(shí)型常量是double型;
float型常量必須在實(shí)數(shù)后加F(或f);
longdouble型常量須在實(shí)數(shù)后加L(或l)。 如:-1.5是雙精度常量 0.4E3f是單精度常量 4.5e2L是長(zhǎng)雙精度常量293)字符型常量 單個(gè)字符的ASCII碼,是一個(gè)整型數(shù)值。 程序中直接使用ASCII碼值很不直觀,如:ASCII碼為48和97分別代表字符0和a。 C++引入了一套助記符號(hào)來(lái)表示ASCII碼:
普通字符常量:字母、數(shù)字和標(biāo)點(diǎn)符號(hào)等可見(jiàn)字符,其助記碼就是在該符號(hào)兩邊加上單引號(hào)。 例如:'a','A','1','+',...30
轉(zhuǎn)義字符常量:控制字符等不可見(jiàn)字符及其他一些特殊字符采用由一個(gè)反斜杠符和一個(gè)符號(hào)組成的轉(zhuǎn)義字符表示:字符表示功能字符表示功能\a響鈴\f換頁(yè)\v垂直制表符\\字符“\”\t水平制表符\"雙引號(hào)\n換行\(zhòng)'單引號(hào)\b退格\nnn用八進(jìn)制數(shù)表示\r回車(chē)\xnn用十六進(jìn)制數(shù)表示31附錄IASCII代碼表32
示例:#include<iostream>usingnamespacestd;voidmain(){ cout<<'\''<<endl; cout<<'\"'<<endl; cout<<'\"'<<'\b'<<'a'<<endl; cout<<'\\'<<endl; cout<<'\a'<<endl; cout<<'\141'<<endl; cout<<'\x61'<<endl;}//輸出單引號(hào)//輸出雙引號(hào)//退格//反斜杠//響鈴//輸出字符a//輸出字符a334)字符串型常量即用雙引號(hào)括起來(lái)的一串字符。如:
"VisualC++","12.34",
"Thisisastring.\n",...
字符串常量在內(nèi)存占用的實(shí)際存儲(chǔ)字節(jié)數(shù)要比字符串中的字符個(gè)數(shù)多1個(gè),即在字符串的尾部還要添加一個(gè)'\0'字符,用以表示字符串的結(jié)束。
"CHINA"
"a"
'a'CHINA\0a
\0a34[例]編程輸出下列文本**********2008北京歡迎你!**********源程序清單:#include<iostream>usingnamespacestd;voidmain(){ cout<<"**********"<<endl; cout<<"2008北京歡迎你!"<<endl; cout<<"**********"<<endl;}35示例:#include<iostream>usingnamespacestd;voidmain(){cout<<12345<<endl; cout<<"12345\n"; cout<<"'VC++6.0'是\"VisualC++6.0\"的縮寫(xiě)\n";}//輸出數(shù)值//輸出字符串//輸出字符串:'VC++6.0'是"VisualC++6.0"的縮寫(xiě)365)布爾型常量布爾型數(shù)據(jù)的取值:
只有false和true兩種布爾型數(shù)據(jù)也可以和數(shù)值型數(shù)據(jù)參與運(yùn)算,此時(shí):true相當(dāng)于1false相當(dāng)于0這種情況下,vc++6.0編譯系統(tǒng)會(huì)給出警告信息,建議不要這樣使用布爾型數(shù)據(jù)372、符號(hào)常量 關(guān)鍵字const用來(lái)說(shuō)明屬于某種數(shù)據(jù)類(lèi)型的符號(hào)常量,定義方法為:
const數(shù)據(jù)類(lèi)型說(shuō)明符常量名=常量值; 或:數(shù)據(jù)類(lèi)型說(shuō)明符const常量名=常量值; constdoublePI=3.141592653; constcharOP=‘+’;
38注意:符號(hào)常量的名稱(chēng)習(xí)慣使用大寫(xiě)字母;在定義符號(hào)常量時(shí)必須賦值;定義了的符號(hào)常量只能讀取它的值,而不能再改變它的值。若數(shù)據(jù)類(lèi)型為int,則類(lèi)型可省略39[例]編程實(shí)現(xiàn):求圓的面積和周長(zhǎng)。算法描述:
定義符號(hào)常量PI定義double變量r,area、circum輸入半徑值到變量r;計(jì)算圓面積area=PI*r*r計(jì)算圓周長(zhǎng)circum=2*PI*r輸出圓面積和周長(zhǎng)40#include<iostream>usingnamespacestd;voidmain(){
}constdoublePI=3.141592653;doubler,area,circum;area=PI*r*r;circum=2*PI*r;cout<<"面積為:"<<area<<endl;cout<<“周長(zhǎng)為:“<<circum<<endl;cin>>r;41二、變量變量是用于臨時(shí)存放數(shù)據(jù)的內(nèi)存單元,在程序運(yùn)行的過(guò)程中該內(nèi)存單元的內(nèi)容可以改變 變量必須“先定義,后使用”。變量在定義時(shí)必須指出變量名、變量的數(shù)據(jù)類(lèi)型。變量名就是對(duì)應(yīng)內(nèi)存空間的名稱(chēng),而變量的數(shù)據(jù)類(lèi)型指出了分配的內(nèi)存空間的大小。421、變量的名稱(chēng)①不同語(yǔ)言系統(tǒng)可使用的字符有所不同,C++中可使用的字符集: 大小寫(xiě)的英文字母:A~Z,a~z 數(shù)字字符:0~9 特殊字符: 空格! # % ^ & * _(下劃線(xiàn))+ = - ~< > / \ ' " ; . , () [] {}43②變量的命名必須遵循C++的標(biāo)識(shí)符命名規(guī)則。 所謂標(biāo)識(shí)符就是指在程序中聲明變量、數(shù)組、函數(shù)和標(biāo)號(hào)等的名稱(chēng)。分為系統(tǒng)保留字和用戶(hù)自定義標(biāo)識(shí)符。 系統(tǒng)保留字又叫關(guān)鍵字(參見(jiàn)附錄P245頁(yè)),有預(yù)定的含義,不允許用戶(hù)重新定義,也不允許用戶(hù)定義的標(biāo)識(shí)符與其同名。44③用戶(hù)自定義標(biāo)識(shí)符的規(guī)則:標(biāo)識(shí)符只能包含字母、數(shù)字和下劃線(xiàn);必須以字母或下劃線(xiàn)開(kāi)頭;不能使用關(guān)鍵字;大小寫(xiě)敏感;例如:sum_1 2max short452、變量的數(shù)據(jù)類(lèi)型
內(nèi)存單元可存儲(chǔ)的數(shù)據(jù)數(shù)據(jù)類(lèi)型占用內(nèi)存字節(jié)數(shù)取值范圍整型短整型short2-32768~32767整型int4-2147483648~2147483647長(zhǎng)整型long4-2147483648~2147483647實(shí)型單精度型float4±3.4e-38~±3.4e38雙精度型double8±1.7e-308~±1.7e308長(zhǎng)雙精度型longdouble10±3.4e-4932~±1.1e4932字符型char1一個(gè)字符布爾型bool1true,false46變量的數(shù)據(jù)類(lèi)型還可分為有符號(hào)型和無(wú)符號(hào)型(加前綴unsigned),默認(rèn)為有符號(hào)型,無(wú)符號(hào)型數(shù)據(jù)將符號(hào)位用于表示數(shù)值,擴(kuò)大了變量的表數(shù)范圍
例如:unsignedshort0~65535 short-32768~32767選擇數(shù)據(jù)類(lèi)型時(shí)應(yīng)考慮溢出問(wèn)題,即存放的數(shù)據(jù)超出了存儲(chǔ)范圍,使得結(jié)果出錯(cuò)473、變量的定義格式: 向變量?jī)?nèi)存放相應(yīng)類(lèi)型的數(shù)據(jù)稱(chēng)為變量的賦值。變量定義完成之后、參與運(yùn)算之前,必須為其賦值。變量的賦值語(yǔ)句格式為:數(shù)據(jù)類(lèi)型 變量名1(,...變量名n);變量名1=值1;變量名2=值2;...變量名n=值n;48 也可以在定義變量的同時(shí)為變量賦值,稱(chēng)為變量的初始化。此時(shí)變量的定義語(yǔ)句格式為:數(shù)據(jù)類(lèi)型 變量名1=值1(,…變量名n=值n);數(shù)據(jù)類(lèi)型 變量名(初值);49
1)整型變量 整型變量用來(lái)存放整型的數(shù)值;整型變量的數(shù)據(jù)類(lèi)型有:
short,int,long 如: inti,j,k=1;//說(shuō)明了3個(gè)整型變量
longlen; //說(shuō)明了1個(gè)長(zhǎng)整型變量
50
2)實(shí)型變量(浮點(diǎn)型變量) 實(shí)型變量用來(lái)存放實(shí)數(shù)值;實(shí)型變量的數(shù)據(jù)類(lèi)型有:
float,double,longdouble 如: floataverage,sum; //說(shuō)明了兩個(gè)浮點(diǎn)類(lèi)型變量。 doubledistance,weight(52.5); //說(shuō)明了兩個(gè)雙精度類(lèi)型的變量。51
3)字符型變量 字符型變量用來(lái)存放單個(gè)字符;字符型變量的數(shù)據(jù)類(lèi)型為:
char
如: chara,b;
52
4)字符串型變量: 字符串型變量用來(lái)存放字符串(一串字符);它不是C++的基本數(shù)據(jù)類(lèi)型,是在string庫(kù)文件中定義的一種擴(kuò)展類(lèi)型,其數(shù)據(jù)類(lèi)型名稱(chēng)為:
string53 使用string聲明字符型變量需加文件包含命令:
#include<iostream> #include<string> usingnamespacestd; 不能用 #include<iostream.h> 例: stringname,address;54 5)布爾型變量 布爾型變量的數(shù)據(jù)類(lèi)型為:
bool 布爾型變量只能取兩種值:
true/false或1(非0)/0. 如: boolt,f; t=true;t=1;t=false;t=0; 布爾型數(shù)據(jù)可以和數(shù)值型數(shù)據(jù)參與運(yùn)算,此時(shí): true相當(dāng)于1;false相當(dāng)于0。 但通常不這樣用布爾型數(shù)據(jù)。55三、數(shù)據(jù)的輸入輸出C++使用數(shù)據(jù)流來(lái)執(zhí)行標(biāo)準(zhǔn)輸入輸出操作 計(jì)算機(jī)屏幕是標(biāo)準(zhǔn)輸出流設(shè)備,稱(chēng)為cout,把cout流看作是通過(guò)計(jì)算機(jī)屏幕發(fā)往用戶(hù)的字符系列。 鍵盤(pán)是標(biāo)準(zhǔn)輸入流設(shè)備,稱(chēng)為cin,把cin流看作是通過(guò)鍵盤(pán)發(fā)給計(jì)算機(jī)的字符系列。Page56561.數(shù)據(jù)的輸入輸入語(yǔ)句格式為:
cin>>V1>>V2>>…>>Vn;其中:V1,V2,…Vn為變量名 ">>"稱(chēng)為析出(提?。┎僮鞣饔茫旱却龔逆I盤(pán)輸入數(shù)據(jù),接收后依次存入各變量V1,V2,…Vn。57
例如: 假設(shè)變量my_name、myAge、birthday均已定義;則從鍵盤(pán)輸入my_name的C++語(yǔ)句為: cin>>my_name; 輸入my_name、myAge、birthday的C++語(yǔ)句為: cin>>my_name>>myAge>>birthday;58 為增加程序的可讀性,通常在輸入語(yǔ)句前增加一條輸出語(yǔ)句,這條輸出語(yǔ)句輸出一個(gè)字符串常量,用于提示操作者輸入幾個(gè)什么類(lèi)型的數(shù)據(jù)。 例如: intx; cout<<"請(qǐng)輸入一個(gè)整數(shù):"; cin>>x;59
執(zhí)行輸入操作時(shí)應(yīng)注意: 輸入幾個(gè)數(shù)據(jù)時(shí),要用空格、回車(chē)或Tab鍵分隔開(kāi)。 cin>>a>>b>>c; 運(yùn)行時(shí)從鍵盤(pán)輸入:3.52.1-4.3 3.5,2.1,-4.3錯(cuò)誤
輸入的數(shù)據(jù)個(gè)數(shù)、類(lèi)型要與接收變量匹配。
inti,j;//定義為整型變量cin>>i>>j; 運(yùn)行時(shí)從鍵盤(pán)輸入:2 -82.5 -8錯(cuò)誤 輸入完所有數(shù)據(jù)后,用回車(chē)鍵表示輸入結(jié)束602.數(shù)據(jù)的輸出輸出操作格式為:
cout<<E1<<E2<<…<<Em;其中:E1,E2,…,Em為表達(dá)式 "<<"稱(chēng)為插入操作符作用:將各表達(dá)式的值輸出(顯示)到屏幕上當(dāng)前光標(biāo)位置處。61例如: 在屏幕上輸出TodayisSunday cout<<"TodayisSunday"; 屏幕上輸出已計(jì)算好的變量grade的值: cout<<grade; 或: cout<<"grade="<<grade; 屏幕上輸出2092+378的值: cout<<2092+378;62 在輸出語(yǔ)句中,endl起換行輸出的作用。例如: cout<<a<<endl; cout<<b<<endl; cout<<c<<endl;或: cout<<a<<endl<<b<<endl<<c<<endl;和endl起相同作用效果的表達(dá)方式有?63[例]求鍵盤(pán)輸入的兩個(gè)數(shù)的和
思路分析:本題未指定數(shù)據(jù)類(lèi)型,為避免數(shù)據(jù)溢出,數(shù)據(jù)類(lèi)型最好定義為double型。算法描述:
定義三個(gè)double型變量a、b、sum提示輸入兩個(gè)數(shù)從鍵盤(pán)輸入一個(gè)數(shù)到a變量從鍵盤(pán)輸入第二個(gè)數(shù)到b變量計(jì)算a與b的和放到sum變量中將sum的值輸出到屏幕64#include<iostream>usingnamespacestd;voidmain(){}源程序清單doublea,b,sum;cout<<"請(qǐng)輸入兩個(gè)數(shù):";cin>>a>>b;sum=a+b;cout<<a<<"+"<<b<<"="<<sum<<endl;65運(yùn)算符與表達(dá)式我們把運(yùn)算符、運(yùn)算量(也稱(chēng)操作數(shù))構(gòu)成的用于計(jì)算的公式稱(chēng)為表達(dá)式。執(zhí)行表達(dá)式所規(guī)定的運(yùn)算得到的結(jié)果值便是表達(dá)式的值。C++提供了豐富的運(yùn)算符。從功能上分可分為算術(shù)運(yùn)算符、條件運(yùn)算符、邏輯運(yùn)算符、賦值運(yùn)算符,逗號(hào)運(yùn)算符、條件運(yùn)算符等;從表現(xiàn)形式上可分為單目運(yùn)算符、雙目運(yùn)算符及三目運(yùn)算符等。
66單目運(yùn)算符,又稱(chēng)為一元運(yùn)算符
運(yùn)算符操作數(shù)
(- !--++)雙目運(yùn)算符,又稱(chēng)為二元運(yùn)算符
操作數(shù)1運(yùn)算符操作數(shù)2
(+-*/%)三目運(yùn)算符 條件運(yùn)算符(問(wèn)號(hào)運(yùn)算符)67 C++中的運(yùn)算符具有優(yōu)先級(jí)和結(jié)合性
優(yōu)先級(jí)是指當(dāng)表達(dá)式中運(yùn)算符的執(zhí)行順序。在C++中,優(yōu)先級(jí)以阿拉伯?dāng)?shù)字表示,數(shù)值越小級(jí)別越高。計(jì)算機(jī)按照優(yōu)先級(jí)由高到級(jí)逐一運(yùn)算處理。一般而言,單目運(yùn)算符的優(yōu)先級(jí)高于雙目運(yùn)算符。
結(jié)合性是指當(dāng)表達(dá)式中的多個(gè)運(yùn)算符優(yōu)先級(jí)相同時(shí),是按照從左至右的順序執(zhí)行,還是從右至左的順序執(zhí)行,從左至右稱(chēng)為左結(jié)合,從右至左稱(chēng)為右結(jié)合。68一、算術(shù)運(yùn)算符與算術(shù)表達(dá)式基本算術(shù)運(yùn)算符的功能、優(yōu)先級(jí)別:Page69運(yùn)算符運(yùn)算優(yōu)先級(jí)別()改變正常優(yōu)先級(jí)1-負(fù)號(hào)2*,/,%乘法、除法、求余運(yùn)算3+,-加、減法4691.*號(hào)不能省略乘號(hào):(x+y)(x-y)應(yīng)寫(xiě)成(x+y)*(x-y)2./號(hào)兩整數(shù)相除時(shí),結(jié)果為整數(shù):8/3=23.求余(取模)運(yùn)算符:% 求余運(yùn)算只能用于整型常量或整型變量所組成的表達(dá)式中。 10%3得1;13%5得3;12%4得0; 23.3%4非法Page7070示例: 設(shè)inta=5,b=2;floatc=5.0,d=2.0;分別求a/b,a%b,c/d,a+a%b/b,a%d的值。 解: a/b= a%b= c/d= a+a%b/b= a%d=22.515非法表達(dá)式71示例:1)已知inta=3467,寫(xiě)出計(jì)算其個(gè)、十、百、千位的表達(dá)式。 解: 2)寫(xiě)出奇數(shù)、偶數(shù)的通式。解:偶數(shù): 奇數(shù):a%10a/10%10a/100%10a/1000%10x%2為0;x%2為172[例]求鍵盤(pán)輸入的兩個(gè)非0整數(shù)的和、差、積以及平均數(shù)
算法描述Page73定義int型變量a,b,sum,sub,mul定義一個(gè)double型變量avg提示輸入兩個(gè)整數(shù)從鍵盤(pán)輸入變量a、b的值求和sum=a+b;求差sub=a-b;求積mul=a*b;求平均數(shù)avg=(a+b)/2.0;輸出sum,sub,mul,avg的值73源程序清單#include<iostream>usingnamespacestd;voidmain(){
}
inta,b,sum,sub,mul;doubleavg=0;cout<<"請(qǐng)輸入兩個(gè)非0整數(shù):";cin>>a>>b;sum=a+b; sub=a-b;mul=a*b; avg=(a+b)/2.0;cout<<a<<"+"<<b<<"="<<sum<<endl;cout<<a<<"-"<<b<<"="<<sub<<endl;cout<<a<<"*"<<b<<"="<<mul<<endl;cout<<"平均數(shù)="<<avg<<endl;也可以按書(shū)上所述,不定義輸出變量,直接將表達(dá)式的值輸出。744.自增自減運(yùn)算符
C++提供了自增(++)、自減(--)運(yùn)算符,作用是使變量的值增加1或減少1。自增(++)、自減(--)運(yùn)算符只能用于變量,不能用于常量。++、--結(jié)合方向自右向左。 如-i++表示 -(i++)75根據(jù)++、--在變量的前后位置不同,分為前置運(yùn)算和后置運(yùn)算兩種:
前置運(yùn)算 ++j或--jj的值先變,再將已變的j值作為表達(dá)式的值;
后置運(yùn)算 j++或j--先將j的值作為表達(dá)式的值,再變化j76示例:1)y=2,x=y++;2)y=2,x=y--;3)y=2,x=++y;4)y=2,x=--y;5)已知:inta=8,b=10;寫(xiě)出順次執(zhí)行c=--a;d=b--;e=a--;f=--b;后a至f的值。先將y的值賦給x,y再自加1得3,結(jié)果為x=2,y=3先將y的值賦給x,y再自減1得1,結(jié)果為x=2,y=1y先自加1得3,然后將y的值賦給x,結(jié)果為x=3,y=3y先自減1得1,然后將y的值賦給x,結(jié)果為x=1,y=1解:a、b、c、d、e、f的值為6、8、7、10、7、8
77
示例:寫(xiě)出下面程序的輸出結(jié)果#include<iostream>usingnamespacestd;voidmain(){ inta(4),b(5),c,d; c=(++a)*7/3+(b--)*3; cout<<"c="<<c<<endl; d=(a++)*2+(--b)/4*8; cout<<"d="<<d<<endl;} //c=26//d=1078二、賦值運(yùn)算符與賦值表達(dá)式在程序運(yùn)行中要改變變量的值,可以使用賦值語(yǔ)句?!?”為賦值運(yùn)算符,當(dāng)程序運(yùn)行時(shí),先求出賦值號(hào)右邊表達(dá)式的值,然后再將結(jié)果存入賦值運(yùn)算符左邊的變量。(1)不能用賦值語(yǔ)句給常量賦值。(2)表達(dá)式的數(shù)據(jù)類(lèi)型必須和要賦值變量的數(shù)據(jù)類(lèi)型匹配,否則系統(tǒng)將進(jìn)行隱式類(lèi)型轉(zhuǎn)換,編譯時(shí)出現(xiàn)警告信息。79a=b=c=5; a=5+(c=6); a=(b=4)+(c=6);
表達(dá)式值為10,a為10,b為4,c為6a=(b=10)/(c=2);
表達(dá)式值為5,a為5,b為10,c為2(3)變量每次只能存儲(chǔ)一個(gè)值,當(dāng)另一個(gè)值賦給該變量后,新值會(huì)取代原有的值。(4)可用一條語(yǔ)句給多個(gè)變量賦值。示例:Page80表達(dá)式值為5,a,b,c均為5表達(dá)式值為11,a為11,c為680[例]編程計(jì)算獎(jiǎng)金數(shù)額,獎(jiǎng)金按銷(xiāo)售額的5%計(jì)算
算法描述:
定義兩個(gè)double型變量sales,bonus輸出提示信息從鍵盤(pán)輸入變量sales的值計(jì)算bonus=sales*0.05輸出sales,bonus81源程序清單
#include<iostream>usingnamespacestd;doublesales=0.0;doublebonus=0.0;cout<<"請(qǐng)輸入銷(xiāo)售額:"<<endl;cin>>sales;cout<<"銷(xiāo)售額為:"<<sales<<endl;cout<<"獎(jiǎng)金為:"<<bonus<<endl;bonus=0.05*sales;voidmain(){}82部分復(fù)合賦值運(yùn)算符 +=,-=,*=,/=,%=例如: a+=3;等價(jià)于a=a+3;
x*=y+8;等價(jià)于x=x*(y+8);inta(2),b(3),c(4);a*=b/=c-=a; a-=b*=c+=3; a=b=c=1;c=(a*=2)+(b+=3)+2;a+=a-=a*a;Page83//a=2,b=1,c=2//a=-3,b=5,c=5//a=2,b=4,c=8相當(dāng)于:a=a+(a=a-a*a);a=-4 為了簡(jiǎn)化程序,在賦值運(yùn)算符“=”之前加上其他運(yùn)算符,構(gòu)成復(fù)合賦值運(yùn)算符83三、逗號(hào)運(yùn)算符與逗號(hào)表達(dá)式
逗號(hào)運(yùn)算符的使用格式為: 表達(dá)式1,表達(dá)式2,……表達(dá)式n運(yùn)行時(shí)依次求解各個(gè)表達(dá)式的值,最后一個(gè)表達(dá)式n的值作為整個(gè)表達(dá)式的值。使用逗號(hào)表達(dá)式的目的一般只是想分別得到各個(gè)表達(dá)式的值,而并非一定需要得到和使用整個(gè)逗號(hào)表達(dá)式的值。逗號(hào)運(yùn)算符是所有運(yùn)算符中級(jí)別最低的運(yùn)算符。已學(xué)運(yùn)算符的優(yōu)先級(jí)順序?yàn)椋核阈g(shù)運(yùn)算符>賦值運(yùn)算符>逗號(hào)運(yùn)算符84[例]寫(xiě)出程序運(yùn)行結(jié)果
#include<iostream>usingnamespacestd;voidmain(){intx=0,y=2;inta=5,i=0,j=0;x=(a=3*5,a*4);y=(i=2,j=2,i++,--j);cout<<x<<endl<<y<<endl;}60185類(lèi)型轉(zhuǎn)換
一、字符型數(shù)據(jù)的類(lèi)型轉(zhuǎn)換 由于字符型數(shù)據(jù)存放的實(shí)際上是相應(yīng)字符的ASCII碼的碼值,可以把字符型數(shù)據(jù)可歸類(lèi)成整型。 字符數(shù)據(jù)和整型數(shù)據(jù)之間可以互相賦值、也可以運(yùn)算。86 例如: intj; charm; j='a'; m=97; intc='A'+2; charc=65; intj='A'; cout<<c<<","<<j<<endl;能否m=“a”;?87例:閱
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國(guó)轎車(chē)懸架彈簧市場(chǎng)發(fā)展?fàn)顩r及投資前景規(guī)劃研究報(bào)告
- 2025年度鋼材行業(yè)上下游企業(yè)合作聯(lián)盟合同3篇
- 2025年度物業(yè)管理服務(wù)合同in大型商業(yè)綜合體2篇
- 2024版車(chē)位銷(xiāo)售代理簡(jiǎn)單合同
- 2024電商企業(yè)人力資源服務(wù)合同5篇
- 2025年度石景山居民家庭醫(yī)生服務(wù)跟蹤合同3篇
- 2024版有關(guān)購(gòu)銷(xiāo)合同模板
- 2024版銷(xiāo)售勞動(dòng)合同
- 2025年新能源汽車(chē)洗車(chē)站運(yùn)營(yíng)管理合同模板3篇
- 2025年度高級(jí)財(cái)務(wù)人員聘任合同
- MT/T 199-1996煤礦用液壓鉆車(chē)通用技術(shù)條件
- GB/T 6144-1985合成切削液
- GB/T 10357.1-2013家具力學(xué)性能試驗(yàn)第1部分:桌類(lèi)強(qiáng)度和耐久性
- 第三方在線(xiàn)糾紛解決機(jī)制(ODR)述評(píng),國(guó)際商法論文
- 公寓de全人物攻略本為個(gè)人愛(ài)好而制成如需轉(zhuǎn)載注明信息
- 第5章-群體-團(tuán)隊(duì)溝通-管理溝通
- 腎臟病飲食依從行為量表(RABQ)附有答案
- 深基坑-安全教育課件
- 園林施工管理大型園林集團(tuán)南部區(qū)域養(yǎng)護(hù)標(biāo)準(zhǔn)圖例
- 排水許可申請(qǐng)表
- 低血糖的觀察和護(hù)理課件
評(píng)論
0/150
提交評(píng)論