




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第一部分C++結(jié)構(gòu)化程序設(shè)計(jì)第一章C++程序設(shè)計(jì)基礎(chǔ)第一部分C++結(jié)構(gòu)化程序設(shè)計(jì)第一章C++程序設(shè)計(jì)基礎(chǔ)本章內(nèi)容①C++語(yǔ)言概述②計(jì)算機(jī)中的數(shù)據(jù)與編碼③C++程序開(kāi)發(fā)過(guò)程④C++程序?qū)嵗莼緮?shù)據(jù)類型⑥常量、變量及引用⑦運(yùn)算符與表達(dá)式⑧基本輸入/輸出本章內(nèi)容①C++語(yǔ)言概述1.1C++語(yǔ)言概述1.C++語(yǔ)言與程序設(shè)計(jì)
語(yǔ)言:人類交流思想的工具
程序設(shè)計(jì):就是將解決某個(gè)問(wèn)題的過(guò)程用程序設(shè)計(jì)語(yǔ)言描述出來(lái),計(jì)算機(jī)按這個(gè)描述去逐步實(shí)現(xiàn)。程序設(shè)計(jì)語(yǔ)言:編寫程序的語(yǔ)言。C與C++語(yǔ)言1.1C++語(yǔ)言概述1.C++語(yǔ)言與程序設(shè)計(jì)語(yǔ)言:人2.程序設(shè)計(jì)語(yǔ)言分為結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言(第1-4章)面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言(第5-11章)2.程序設(shè)計(jì)語(yǔ)言分為結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言(第1-4章)計(jì)算機(jī)中的信息可以分為兩大類:控制信息:是控制計(jì)算機(jī)完成各種操作的指令和控制字。
數(shù)據(jù)信息:計(jì)算機(jī)加工的對(duì)。包括數(shù)字信息、文字信息以及各種圖形、圖像、聲音等。
1.2計(jì)算機(jī)中的數(shù)據(jù)
無(wú)論是那種數(shù)據(jù),在計(jì)算機(jī)內(nèi)部都要轉(zhuǎn)換成二進(jìn)制數(shù)后,計(jì)算機(jī)才能對(duì)其進(jìn)行傳送、存儲(chǔ)和加工處理。計(jì)算機(jī)中的信息可以分為兩大類:1.2計(jì)算機(jī)中的數(shù)據(jù)無(wú)論1.2.1
進(jìn)位計(jì)數(shù)制
在計(jì)算機(jī)中使用的數(shù)據(jù)有二進(jìn)制、十進(jìn)制、八進(jìn)制和十六進(jìn)制。無(wú)論哪種數(shù)制,它們的共同之處都是進(jìn)位計(jì)數(shù)制。如果數(shù)制僅采用R個(gè)基本符號(hào),稱為R進(jìn)制。其中R稱為基數(shù)。任意一個(gè)R進(jìn)制數(shù)N都可以用一個(gè)式子展開(kāi):
其中:m、n是正整數(shù),m是每個(gè)數(shù)位上的值,m的取值范圍0—R-1。1.2.1進(jìn)位計(jì)數(shù)制在計(jì)算機(jī)中使用的數(shù)據(jù)有二進(jìn)制、十進(jìn)制
進(jìn)制
基數(shù)
進(jìn)位
使用符號(hào)
二進(jìn)制2逢2進(jìn)位0、1
八進(jìn)制8逢8進(jìn)位0、1、2、3、4、5、6、7十進(jìn)制10逢10進(jìn)位0、1、2、3、4、5、6、7、8、9十六進(jìn)制16逢16進(jìn)位0、1、2、3、4、5、6、7、8、9、
A、B、C、D、E、F
常用進(jìn)位計(jì)數(shù)制
進(jìn)制基數(shù)進(jìn)位1)R制數(shù)到十進(jìn)制數(shù)的轉(zhuǎn)換方法是:將要轉(zhuǎn)換的數(shù)按權(quán)展開(kāi),各位數(shù)字與它的權(quán)相乘,最后求的和就是十進(jìn)制數(shù)。
例如:
(1101.01)2=1×23+1×22+0×21+1×20+0×2-1+1×2-2
=(13.25)10
(205.4)8=2×82+0×81+5×80+4×8–1=(133.5)10
(AF.8)16=10×161
+15×160+8×16-1
=(175.5)10
1.2.2不同數(shù)制之間的轉(zhuǎn)換1)R制數(shù)到十進(jìn)制數(shù)的轉(zhuǎn)換方法是:1.2.2不同數(shù)制之間2)十進(jìn)制數(shù)到R制數(shù)的轉(zhuǎn)換方法是:十進(jìn)制的整數(shù)部份和小數(shù)部份分別轉(zhuǎn)換,然后再拼接起來(lái)。整數(shù)部份:連續(xù)除以R進(jìn)制的R,直到商為0,將每次除以R的余數(shù)自下而上排列,即構(gòu)成R進(jìn)制的整數(shù)部分。小數(shù)部份:小數(shù)部分連續(xù)乘以R進(jìn)制的R,每次取積的整數(shù),并將其自上而下排列,直到小數(shù)部份為0或規(guī)定精度為止。2)十進(jìn)制數(shù)到R制數(shù)的轉(zhuǎn)換方法是:十進(jìn)制的整數(shù)部份和小數(shù)部份例如:將(237.625)10轉(zhuǎn)換為二進(jìn)制整數(shù)部分除2取余余數(shù)整數(shù)小數(shù)部分乘2取整2|23710.6252|1180取×22|59111.2502|291值0.252|140×2
2|71方00.502|31×22|11向11.00轉(zhuǎn)換結(jié)果為:(237.625)10=(11101101.101)2例如:將(237.625)10轉(zhuǎn)換為二進(jìn)制例如:將(237.625)10轉(zhuǎn)換為十六進(jìn)制:
整數(shù)部分除16取余余數(shù)整數(shù)小數(shù)部分乘16取整
16|237D(13)取0.62516|14E(14)值×16
0方A10.000向轉(zhuǎn)換結(jié)果為:(237.625)10=(ED.A)16例如:將(237.625)10轉(zhuǎn)換為十六進(jìn)制:3)二、八、十六進(jìn)制之間的轉(zhuǎn)換
二進(jìn)制與八進(jìn)制之間轉(zhuǎn)換方法:
以小數(shù)點(diǎn)為界,左右分別按3位一劃分,兩頭不夠3位時(shí)補(bǔ)0,將劃分的3位數(shù)按八進(jìn)制數(shù)讀出即可。例如:將二進(jìn)制10100110101.0111轉(zhuǎn)換成八進(jìn)制:010
100
110
101
.011
1002465.34
因此:(10100110101.01110)2=(2465.34)8
將八進(jìn)制轉(zhuǎn)換成二進(jìn)制時(shí),將每位八進(jìn)制數(shù)用3位二進(jìn)制表示出來(lái)即可。
3)二、八、十六進(jìn)制之間的轉(zhuǎn)換二進(jìn)制與八進(jìn)制之間轉(zhuǎn)換方法:二進(jìn)制與十六進(jìn)制之間轉(zhuǎn)換方法:
以小數(shù)點(diǎn)為界,左右分別按4位一劃分,兩頭不夠4位時(shí)補(bǔ)0,將劃分的4位數(shù)按十六進(jìn)制數(shù)讀出即可。例如將二進(jìn)制11110110101.101轉(zhuǎn)換成十六進(jìn)制:0111
1011
0101
.10107B5.A
因此:(11110110101.101)2=(7B5.A)16
將十六進(jìn)制轉(zhuǎn)換成二進(jìn)制時(shí),將每位十六進(jìn)制數(shù)用4位二進(jìn)制表示出來(lái)即可。
二進(jìn)制與十六進(jìn)制之間轉(zhuǎn)換方法:將十六進(jìn)制轉(zhuǎn)換成二進(jìn)制時(shí),1.2.2二進(jìn)制信息的存儲(chǔ)單位
位(bit):二進(jìn)制的1位,是計(jì)算機(jī)中數(shù)據(jù)處理的最小單位。字節(jié)(Byte):8位二進(jìn)制位組成一個(gè)字節(jié)(1Byte=8bit)。常用來(lái)描述容量的單位有:千字節(jié)(KB),1KB=1024bit兆字節(jié)(MB),1MB=1024KB千兆字節(jié)(GB),1GB=1024MB
字(Word):獨(dú)立的信息處理單位,又稱為計(jì)算機(jī)字。
1.2.2二進(jìn)制信息的存儲(chǔ)單位位(bit):二進(jìn)制的11.2.3非數(shù)值數(shù)據(jù)的表示
字符編碼:ASCII(AmericanSandardCodeforInformationInterchange)碼。
ASCII用一個(gè)字節(jié)中的7位二進(jìn)制位來(lái)表示一個(gè)字符,每個(gè)字符唯一對(duì)應(yīng)一個(gè)ASCII碼,最多可表示27=128個(gè)字符。
漢字編碼:漢字在計(jì)算機(jī)內(nèi)部也采用二進(jìn)制的數(shù)字化編碼。廣泛應(yīng)用GB2312-80(國(guó)家標(biāo)準(zhǔn)信息交換用漢字編碼),簡(jiǎn)稱國(guó)標(biāo)碼,采用二字節(jié)編碼.3)國(guó)標(biāo)碼共編碼了7445個(gè)圖形字符,其中6763個(gè)漢字和682個(gè)非漢字符號(hào)。1.2.3非數(shù)值數(shù)據(jù)的表示字符編碼:漢字編碼:1.3C++程序開(kāi)發(fā)過(guò)程:出錯(cuò)編輯源程序預(yù)處理程序編譯程序連接程序裝入程序輸出結(jié)果執(zhí)行程序輸入、修改源程序出錯(cuò)出錯(cuò)磁盤輸入數(shù)據(jù)1.3C++程序開(kāi)發(fā)過(guò)程:出錯(cuò)編輯源程序預(yù)處理程序編譯程1.4C++程序?qū)嵗?/p>
例1:
在屏幕輸出Hello,youarewelcome!/*Helloprogram*/#include<iostream.h>voidmain(){cout<<″Hello,youarewelcome!″;//你好,歡迎你!}程序說(shuō)明:兩種注釋編譯預(yù)處理行main()函數(shù):void、函數(shù)體{…}、程序執(zhí)行處語(yǔ)句:一行可以寫若干條語(yǔ)句,每個(gè)語(yǔ)句用“;”作為結(jié)束。1.4C++程序?qū)嵗?:在屏幕輸出Hello,you例2:編寫程序從鍵盤任意輸入2個(gè)數(shù),輸出這2個(gè)數(shù)的和。#include<iostream.h>voidmain(){inta,b,n;cout<<″請(qǐng)輸入兩個(gè)數(shù):″;cin>>a>>b;n=a+b;cout<<″a+b=″<<n<<endl;}程序說(shuō)明:第3行為變量定義
第4行是輸出語(yǔ)句第5行輸入
第6行是賦值運(yùn)算
第7行中endl也可以用“\n”代替,表示換行。
例2:編寫程序從鍵盤任意輸入2個(gè)數(shù),輸出這2個(gè)數(shù)的和。#in例3:
由兩個(gè)函數(shù)組成的C++程序
#include<iostream.h>intfmax(inta,intb){if(a>b)returna;elsereturnb;}main(){intv1,v2;cout<<“請(qǐng)輸入兩個(gè)數(shù):”;cin>>v1>>v2;cout<<″兩個(gè)數(shù)中較大數(shù)是:<<fmax(v1,v2)<<endl;return0;}例3:由兩個(gè)函數(shù)組成的C++程序#include<io1.5基本數(shù)據(jù)類型
程序中處理的數(shù)據(jù)分為不同的類型。類型不同,存儲(chǔ)方式和使用的場(chǎng)合也不同。
數(shù)據(jù)類型基本數(shù)據(jù)類型整型(int)字符型(char)符點(diǎn)型(float、double)布爾型(bool)非基本數(shù)據(jù)類型構(gòu)造類型指針類型空類型(void)數(shù)組類型結(jié)構(gòu)類型(struct)聯(lián)合類型(union)枚舉類型(enum)類類型(class)1.5基本數(shù)據(jù)類型程序中處理的數(shù)據(jù)分為不同的類型。類型基本數(shù)據(jù)類型:C++系統(tǒng)已定義的類型??梢灾苯永眠@些類型名來(lái)定義數(shù)據(jù)。
類型名
說(shuō)明
字節(jié)
取值范圍
bool布爾型1true,false[singned]char有符號(hào)字符型1-128~+127unsignedchar無(wú)符號(hào)字符型10~255[signed]shortint有符號(hào)短整型2-32768~32767unsignedshortint無(wú)符號(hào)短整型20~65535[signed]int有符號(hào)整型4-2147483648~+2147483647unsignedint無(wú)符號(hào)整型40~4294967295[signed]longint長(zhǎng)整型4-2147483648~+2147483647unsignedlongint無(wú)符號(hào)長(zhǎng)整型40~4294967275float浮點(diǎn)型43.4×10-38~3.4×10+38double雙浮點(diǎn)型81.7×10-38~3.4×10+38longdouble長(zhǎng)雙浮點(diǎn)型103.4×10-4932~3.4×10+4932
基本數(shù)據(jù)類型:C++系統(tǒng)已定義的類型。可以直接利用這些1.6常量、變量及引用
1.6.1
常量程序中可以直接使用的常數(shù)稱為常量常量分為:
整型浮點(diǎn)型字符型字符串常量布爾常量1.6常量、變量及引用1.6.1常量1)整型常量十進(jìn)制整數(shù):
由0~9數(shù)字組成的正負(fù)整數(shù),如0、15、-247。八進(jìn)制整數(shù):
以數(shù)字0開(kāi)頭的整數(shù),由數(shù)字0~7組成,如015,0238。十六進(jìn)制整數(shù):
以0x或0X開(kāi)頭的整數(shù),由數(shù)字0~9和字母a~f(或大寫A~F)組成。例如:0x516,0x8AB,0xb2ff。八進(jìn)制和十六進(jìn)制只能表示無(wú)符號(hào)整數(shù).任一整型常數(shù)后跟字母l(或L)時(shí),為長(zhǎng)整型.如:12345L任一整型常數(shù)后跟字母u(或U)時(shí),為無(wú)符號(hào)整型.如:7895u
1)整型常量浮點(diǎn)型數(shù)由整數(shù)部分和小數(shù)部分組成。浮點(diǎn)型常數(shù)有兩種形式:
小數(shù)形式:3.14159,-0.55,-123.0。指數(shù)形式:+5.25e-8
0.5678e05、
其中:+5.25e-8表示+5.25×10-8
0.5678e+05表示0.5678×105
2)浮點(diǎn)型常量(又稱實(shí)型)指數(shù)形式表示浮點(diǎn)型數(shù)時(shí)e(或E)前可以是整數(shù)或小數(shù),但e后的指數(shù)部分必須是整型數(shù)。浮點(diǎn)型數(shù)總是按double類型存儲(chǔ)的,只有在數(shù)的后面加上f才按float類型存儲(chǔ),如1.234E-6f。長(zhǎng)雙精度(longdouble)型常量通常在雙精度數(shù)后面加上l或L表示,如1.2345e-12L。說(shuō)明:浮點(diǎn)型數(shù)由整數(shù)部分和小數(shù)部分組成。2)浮點(diǎn)型常量(又稱實(shí)型)3)字符型常量
字符型常量是用單引號(hào)括起來(lái)的單個(gè)字符
例如:′A′、′S′、′*′、′a′、′\n′
說(shuō)明:
字符型常量中的單引號(hào)作為定界符,不是字符型常量?jī)?nèi)容。字符型常量具有數(shù)值,其值就是該字符的ASCII碼值。而且值可以作為整數(shù)參與運(yùn)算:如‘a’+5結(jié)果為字符‘f’如‘9
’-6結(jié)果為數(shù)字字符‘3’如‘A′+32結(jié)果為’a‘‘f’–‘d’結(jié)果為整數(shù)2??梢允茿SCII字符集中任意可打印字符,包括空格.轉(zhuǎn)義字符(見(jiàn)表1-3)
3)字符型常量字符型常量是用單引號(hào)括起來(lái)的單個(gè)字符說(shuō)明:4)字符串常量
用雙引號(hào)括起來(lái)的一串字符。例如:″Thisisastring″″a″
″ABC
xyz\n″″1234″″中國(guó)_天津″
說(shuō)明:字符串中可以包含空格、轉(zhuǎn)義字符、中文字符等。雙引號(hào)作為字符串的定界符,計(jì)算字符串長(zhǎng)度時(shí)雙引號(hào)不計(jì)算在內(nèi)。編譯程序在存儲(chǔ)字符串常量時(shí)自動(dòng)在字符串最后加一個(gè)‘\0’作為一個(gè)字符串的結(jié)束標(biāo)志,‘\0’占一個(gè)字節(jié)位置。一個(gè)字符占一個(gè)字節(jié),一個(gè)漢字占兩個(gè)字節(jié)。在程序設(shè)計(jì)中字符串通常用字符數(shù)組或字符指針存放。4)字符串常量用雙引號(hào)括起來(lái)的一串字符。說(shuō)明:字符串中可5)布爾常量布爾常量?jī)H有兩個(gè)值,即true(真)和false(假)。
5)布爾常量
6)符號(hào)常量
為常量起一個(gè)名字,稱為符號(hào)常量。符號(hào)常量在使用前必須進(jìn)行說(shuō)明。符號(hào)常量的說(shuō)明形式為:const數(shù)據(jù)類型名
常量名=常量值;或數(shù)據(jù)類型名const常量名=常量值;
例如:constintm=100;constfloatpi=3.14159;說(shuō)明:符號(hào)常量在說(shuō)明時(shí)一定要賦初值,其值程序中不能修改。符號(hào)常量名不要和一般變量名重名。使用符號(hào)常量可以提高程序的可讀性,增強(qiáng)程序的可維護(hù)性。
6)符號(hào)常量為常量起一個(gè)名字,稱為符號(hào)常量。說(shuō)明:符號(hào)1.6.2變量
1)標(biāo)識(shí)符用來(lái)為變量、符號(hào)常量、數(shù)組、函數(shù)、類型等命名。命名標(biāo)識(shí)符有以下規(guī)則:
必須由字母、下畫線和數(shù)字組成第1個(gè)字符應(yīng)是字母或下畫線字符例如:a、x1、data_5、count等為合法的標(biāo)識(shí)符
標(biāo)識(shí)符的長(zhǎng)度視具體的編譯系統(tǒng)而定。不能使用C++的關(guān)鍵字作為標(biāo)識(shí)符,例如:int、for等C++中變量名區(qū)分大小寫,因此ex1和EX1是兩個(gè)不同的變量名
1.6.2變量1)標(biāo)識(shí)符2)變量——在程序中可以改變值的量稱為變量。每個(gè)變量在內(nèi)存中占有一定的存儲(chǔ)單元,該存儲(chǔ)單元中存放變量的值。在程序設(shè)計(jì)中可以根據(jù)需要改變變量的值。每個(gè)存儲(chǔ)單元都有一個(gè)地址。
12.345變量名X1變量值存儲(chǔ)單元2)變量每個(gè)變量在內(nèi)存中占有一定的存儲(chǔ)單元,該存儲(chǔ)單元中存3)定義變量程序中的變量名在使用之前必須定義。
例如:chara,b,c;//定義a、b為字符型變量intx,y;//定義x、y為整型變量longints1,s2;//定義s1、s2為長(zhǎng)整型變量floatdata_1,data_2;//定義data1_1、data_2為浮點(diǎn)型變量doublew1,w2//定義w1、w2為雙精度型變量unsignedm,n;//定義m、n為無(wú)符號(hào)整型變量
3)定義變量例如:4)變量的初始化——變量在定義的同時(shí)可以給其賦值。
例如:chara=‘A’;
intx=0,y=12;
doublew1=12.3456,w2=-0.4567e-4;
charch(‘B’);longintx1(1),y1(100);doubledata1(12.056),data2(-0.12345e-4);4)變量的初始化例如:程序舉例:#include<iostream.h>voidmain(){intd1=5,d2=20;doublex1=12.5,x2=-5.0;charch1(‘*’),ch2(‘A’);cout<<d1+d2<<endl;cout<<x1-x2<<endl;cout<<ch1<<““<<ch2+3<<endl;}2517.5*D運(yùn)行結(jié)果:程序舉例:#include<iostream.h>25運(yùn)1.6.3引用——程序中定義過(guò)的變量名再給它另一個(gè)名字,這個(gè)名字稱為引用(reference)。
說(shuō)明引用的形式為:數(shù)據(jù)類型
&引用名=變量名;或數(shù)據(jù)類型
&引用名(變量名);其中:變量名是已經(jīng)定義過(guò)的一個(gè)變量名;“&”是說(shuō)明引用的符號(hào);數(shù)據(jù)類型是被引用變量名的類型。例如:inta;int&refa=a;變量名和引用名是對(duì)同一個(gè)存儲(chǔ)單元的操作
注意:1.6.3引用說(shuō)明引用的形式為:變量名和引用名是對(duì)同一程序舉例:#include<iostream.h>voidmain(){inta(5);int&rea=a;cout<<a<<″
″<<rea<<endl;rea=10;cout<<a<<″
″<<rea<<endl;}輸出結(jié)果:5510
105area10area存儲(chǔ)單元示意:程序舉例:#include<iostream.h>輸出結(jié)1.6.4枚舉類型
將一些可能取值的量一一列舉出來(lái),稱為枚舉類型。
說(shuō)明枚舉類型的形式為:enum枚舉類型名{枚舉元素};其中:enum是用于說(shuō)明枚舉類型的關(guān)鍵字。每個(gè)枚舉元素就是枚舉常量值。例如:enum
colour{red,yellow,blue,white,black};定義枚舉型變量形式:
enumcolour{red,yellow,blue,white,black}c1,c2;或enumcolour
m1,m2;1.6.4枚舉類型將一些可能取值的量一一列舉出來(lái),稱為枚舉型使用說(shuō)明:1)枚舉元素在說(shuō)明后都自動(dòng)有一個(gè)整數(shù)值。
例如:colour中,red的值為0,yellow的值為1,……,
black的值為4。
可以在說(shuō)明枚舉類型時(shí)另指定一個(gè)整數(shù)值,指定元素后邊的各元素值按增1的順序重新排列,而沒(méi)有指定的元素值仍按系統(tǒng)自動(dòng)給定的值。
例如:enum
d{east,west,south=10,north};
south的值10,north的值為11,east的值為0,west值為1。
2)僅能給枚舉變量賦枚舉元素值。3)枚舉變量進(jìn)行增1或減1,比較運(yùn)算。4)枚舉變量不能用于輸入,輸出時(shí)僅輸出枚舉值的順序號(hào)。
枚舉型使用說(shuō)明:1)枚舉元素在說(shuō)明后都自動(dòng)有一個(gè)整數(shù)值。1.7運(yùn)算符與表達(dá)式
表達(dá)式由操作數(shù)和運(yùn)算符組成
操作數(shù):常量、變量及函數(shù)調(diào)用。運(yùn)算符:對(duì)操作數(shù)進(jìn)行的運(yùn)算和處理。
C++的表達(dá)式既可以單獨(dú)作為語(yǔ)句使用,也可以在其他語(yǔ)句中作為測(cè)試的條件以及調(diào)用函數(shù)的參數(shù)使用。
C++提供了豐富的運(yùn)算符。以下分別介紹。
1.7運(yùn)算符與表達(dá)式表達(dá)式由操作數(shù)和運(yùn)算符組成C++1.7.1算術(shù)運(yùn)算符與算術(shù)表達(dá)式
算術(shù)運(yùn)算符包括:
+(加)-(減)*(乘)/(除)%(取余)
使用規(guī)則:
+、-、*、/與一般數(shù)學(xué)運(yùn)算相同,其中“-”可作一元運(yùn)算符使用,表示取負(fù)。優(yōu)先級(jí)為:先*、/、%,后+、-。兩個(gè)整型數(shù)相除,取商的整數(shù)部分。例如:8/5結(jié)果為1,5/8結(jié)果為0。兩實(shí)型數(shù)相除,結(jié)果為實(shí)型數(shù),例如:8.0/5.0結(jié)果為1.6。%用于求兩個(gè)整數(shù)相除的余數(shù),例如:8%5為3,而10%5為0。參加運(yùn)算的兩個(gè)操作數(shù)的類型不同時(shí),按由低到高規(guī)則轉(zhuǎn)換后計(jì)算。
1.7.1算術(shù)運(yùn)算符與算術(shù)表達(dá)式算術(shù)運(yùn)算符包括:使用inta=10,b=4;doublex=1.5;charc1=’A’;longw=12345;表達(dá)式1:(a+b)*x-w/c1表達(dá)式2:a*x-b*x+w/15+(c1+4)算術(shù)表達(dá)式舉例:
表達(dá)式1和表達(dá)式2的計(jì)算過(guò)程及最后類型。討論:inta=10,b=4;算術(shù)表達(dá)式舉例:1.7.2位操作運(yùn)算符——用于對(duì)二進(jìn)制數(shù)值的位進(jìn)行運(yùn)算
位操作運(yùn)算符分為邏輯位操作運(yùn)算符和移位運(yùn)算符:邏輯位操作運(yùn)算符:
&
按位“與”,兩操作數(shù)逐位求“與”|
按位“或”,兩操作數(shù)逐位求“或”∧
按位“異或”,兩操作數(shù)逐位相加不進(jìn)位~
求反,一元運(yùn)算符,將操作數(shù)逐位取反移位運(yùn)算符:<<
二進(jìn)制左移,將操作數(shù)左移指定位數(shù)>>
二進(jìn)制右移,將操作數(shù)右移指定位數(shù)1.7.2位操作運(yùn)算符位操作運(yùn)算符分為邏輯位操作運(yùn)算符和移使用規(guī)則:
參加位操作的操作數(shù)必須是整型常數(shù)或整型變量。邏輯位操作運(yùn)算符的使用形式為:操作數(shù)1
&
操作數(shù)2操作數(shù)1
|
操作數(shù)2操作數(shù)1
∧
操作數(shù)2~操作數(shù)移位運(yùn)算符的使用形式為:操作數(shù)1<<操作數(shù)2
將操作數(shù)1左移操作數(shù)2指定的位數(shù)操作數(shù)1>>操作數(shù)2將操作數(shù)1右移操作數(shù)2指定的位數(shù)例如:
inta=15,b=125;a&b;//a和b按位與a^(~b);//a和非b按位或b<<2;//b左移2位使用規(guī)則:參加位操作的操作數(shù)必須是整型常數(shù)或整型變量。例如1.7.3賦值運(yùn)算符與賦值表達(dá)式
1)簡(jiǎn)單賦值運(yùn)算符,形式為:
變量=操作數(shù)其中:操作數(shù)可以是常量、變量和C++任意合法的表達(dá)式.
例如:inta(15);doubledata,s;data=-8.1245;//將-8.1245存入data變量s=a*50+data/3;//將表達(dá)式a*50+data/3結(jié)果存入
賦值號(hào)“=”左邊必須是變量。賦值表達(dá)式的值和類型為“=”號(hào)左邊變量的值和類型。說(shuō)明:1.7.3賦值運(yùn)算符與賦值表達(dá)式1)簡(jiǎn)單賦值運(yùn)算符,形式2)復(fù)合賦值運(yùn)算符——將算術(shù)運(yùn)算和賦值放在一起的縮寫形式包括:+=
-=*=
/=
%=例如:a+=b;
相當(dāng)于a=a+b;a-=b;
相當(dāng)于a=a+b;a*=b;
相當(dāng)于a=a*b;a/=b;
相當(dāng)于a=a/b;a%=b;
相當(dāng)于a=a%b;
使用說(shuō)明:
由于有存儲(chǔ)功能,復(fù)合賦值運(yùn)算符左邊必須是變量名。以下是錯(cuò)誤的:
a+=b+=c+d=12;當(dāng)復(fù)合賦值運(yùn)算的右邊是表達(dá)式時(shí),將表達(dá)式視為一個(gè)整體,例如a-=x+y;相當(dāng)于:a=a-(x+y)2)復(fù)合賦值運(yùn)算符——將算術(shù)運(yùn)算和賦值放在一起的縮寫形式1.7.4自增和自減運(yùn)算符
自增自減運(yùn)算符有如下4種形式:
++i
前置自增,將i的值先加1,再使用i的值。i++
后置自增,先使用i的值,然后i的值加1。--i
前置自減,將i的值先減1,再使用i的值。
i--
后置自減,先使用i的值,然后i的值減1。
使用說(shuō)明:
因?yàn)橛屑訙p和賦值的功能,運(yùn)算對(duì)象必須是變量,不能是常數(shù)或表達(dá)式。單獨(dú)作為一個(gè)語(yǔ)句使用時(shí),前置增1(減1)或后置增1(減1)是一樣的,但若和其他運(yùn)算符組合使用,采用前置或后置就會(huì)產(chǎn)生不同的結(jié)果。運(yùn)算符++(或--)是一個(gè)整體,使用時(shí)兩個(gè)+(或-)之間不要有空。++(或--)運(yùn)算符是單目運(yùn)算符.1.7.4自增和自減運(yùn)算符自增自減運(yùn)算符有如下4種形式:自增自減運(yùn)算符舉例:#include<iostream.h>voidmain(){inta(2),b(2),d1,d2;a++;b--;cout<<“a=“<<a<<“b=“<<b<<endl;d1=++a;cout<<“a=”<<a<<“d1=“<<d1<<endl;d2=b--;cout<<“b=“<<b<<“d2=“<<d2<<endl;}
a=3b=1a=4
d1=4b=0d2=1輸出結(jié)果:自增自減運(yùn)算符舉例:#include<iostream.1.7.5關(guān)系運(yùn)算符與關(guān)系表達(dá)式關(guān)系運(yùn)算符用于比較兩個(gè)數(shù)的大小,共有6個(gè)運(yùn)算符:
<小于<=小于等于>大于>=大于等于==等于?。讲坏扔谑褂谜f(shuō)明:
關(guān)系表達(dá)式的值是整數(shù)值0和1,當(dāng)關(guān)系式成立時(shí)為1;否則為0。關(guān)系運(yùn)算符兩邊操作數(shù)可以是整型、浮點(diǎn)型、字符型、指針及枚舉型。關(guān)系運(yùn)算符可以在一個(gè)關(guān)系式中連續(xù)使用,但若用-1<=x<=1式判斷是否在[-1,1]區(qū)間,則是錯(cuò)誤的。注意區(qū)別“=”和“==”。注意==和!=運(yùn)算符的優(yōu)先級(jí)比其它關(guān)系運(yùn)算符低。
1.7.5關(guān)系運(yùn)算符與關(guān)系表達(dá)式關(guān)系運(yùn)算符用于比較兩個(gè)數(shù)關(guān)系運(yùn)算符使用舉例:輸出結(jié)果為:#include<iostream.h>voidmain(){inta=5,b=6;cout<<"a>b:"<<(a>b)<<'\n';cout<<"a<=b:"<<(a<=b)<<'\n';cout<<"a==b:"<<(a==b)<<'\n';cout<<"a!=b:"<<(a!=b)<<'\n';}a>b:0a<=b:1a==b:0a?。剑猓海标P(guān)系運(yùn)算符使用舉例:輸出結(jié)果為:#include<ios1.7.6邏輯運(yùn)算符與邏輯表達(dá)式
邏輯運(yùn)算符用于對(duì)操作數(shù)進(jìn)行邏輯操作。邏輯運(yùn)算符是:&&
邏輯“與”
||
邏輯“或”
!
邏輯“非”
(一元運(yùn)算符)邏輯運(yùn)算符的使用形式是:
操作數(shù)1&&
操作數(shù)2操作數(shù)1||
操作數(shù)2!操作數(shù)使用說(shuō)明:
邏輯表達(dá)式的值取值為1或0。邏輯運(yùn)算符兩邊的操作數(shù)可以是任意基本數(shù)據(jù)類型,只要是0或非0值即可。任何非0值的數(shù)據(jù)都作為1參與邏輯運(yùn)算。注意多個(gè)&&或||符使用時(shí)的“短路操作”。1.7.6邏輯運(yùn)算符與邏輯表達(dá)式邏輯運(yùn)算符用于對(duì)操作數(shù)邏輯運(yùn)算符使用舉例:
#include<iostream.h>voidmain(){inta,b,c,x,y;a=1;b=2;c=0;cout<<a++-1<<endl;cout<<(a&&b||!c)<<endl;cout<<b/++a<<endl;x=++a||++b&&++c;//短路cout<<a<<b<<c<<x<<endl;a=b=c=-1;y=++a&&++b&&++c;//短路cout<<a<<b<<c<<y<<endl;}0104
2
0
10-1-10
輸出結(jié)果為:邏輯運(yùn)算符使用舉例:#include<iostream.1.7.7其它運(yùn)算符
1)條件運(yùn)算符與條件表達(dá)式
條件運(yùn)算符是三元運(yùn)算符,形式為:e1?e2:e3其中:e1一般為關(guān)系或邏輯式;e2和e3為任意表達(dá)式。
e1e2的值e3的值非00a=x>y?x+y:x-y;
功能:條件表達(dá)式舉例:1.7.7其它運(yùn)算符1)條件運(yùn)算符與條件表達(dá)式e12)逗號(hào)運(yùn)算符與逗號(hào)表達(dá)式逗號(hào)表達(dá)式:用逗號(hào)“,”將幾個(gè)表達(dá)式隔開(kāi)的式子。逗號(hào)表達(dá)式的形式為:e1,e2,…,en作用:從左到右計(jì)算各表達(dá)式值,并以最后一個(gè)表達(dá)式的值作為逗號(hào)表達(dá)式的值。
x=(a=1,b=3,++b,a+b);
逗號(hào)表達(dá)式舉例:2)逗號(hào)運(yùn)算符與逗號(hào)表達(dá)式逗號(hào)表達(dá)式:用逗號(hào)“,”將幾3)求字節(jié)運(yùn)算符求字節(jié)運(yùn)算符是個(gè)一元運(yùn)算符,形式為:
sizeof(e)其中:e可以是任意類型的變量、類型名或表達(dá)式。作用:求e在內(nèi)存中占用的字節(jié)數(shù)。例如:
inta,b,i
;doublex;a=sizeof(x);b=sizeof(float);i=sizeof(a*x)+100;3)求字節(jié)運(yùn)算符求字節(jié)運(yùn)算符是個(gè)一元運(yùn)算符,形式為:4)類型轉(zhuǎn)換符利用類型轉(zhuǎn)換符強(qiáng)制轉(zhuǎn)換成所需要的類型。使用格式是:(類型名)表達(dá)式或類型名
(表達(dá)式)作用:將“表達(dá)式”的值轉(zhuǎn)換成“類型名”所指定的類型。例如:inta,b;doublex(10.5),y(3.8);a=int(x+y)-10;b=(int)x+y-10;整數(shù)轉(zhuǎn)換為字符型,則去掉多余的高位;長(zhǎng)整型轉(zhuǎn)換為一般整型時(shí),去掉多余高位;浮點(diǎn)型轉(zhuǎn)換成整型時(shí),去掉小數(shù)部分;雙精度型轉(zhuǎn)換成單精度時(shí),按單精度型位數(shù)舍入。轉(zhuǎn)換后數(shù)據(jù)的精度受到影響。
轉(zhuǎn)換原則:4)類型轉(zhuǎn)換符利用類型轉(zhuǎn)換符強(qiáng)制轉(zhuǎn)換成所需要的類型。使用1.7.8運(yùn)算符的優(yōu)先級(jí)和結(jié)合性
優(yōu)先級(jí):不同操作符之間進(jìn)行操作的先后順序。
幾種不同的運(yùn)算符出現(xiàn)在一個(gè)表達(dá)式中時(shí),優(yōu)先級(jí)別高的先計(jì)算,優(yōu)先級(jí)別低的后計(jì)算。結(jié)合性:當(dāng)連續(xù)幾個(gè)相同級(jí)別的運(yùn)算符進(jìn)行計(jì)算時(shí),有的是由左到右逐個(gè)運(yùn)算,有的是由右到左逐個(gè)運(yùn)算。
單擊見(jiàn)表1–41.7.8運(yùn)算符的優(yōu)先級(jí)和結(jié)合性優(yōu)先級(jí):單擊見(jiàn)表1–1.8基本輸入/輸出
輸入輸出又稱I/O(Input/Output)操作。輸入:指在程序運(yùn)行時(shí)由輸入設(shè)備(常指鍵盤)向程序提供數(shù)據(jù);輸出:是指將程序的運(yùn)行結(jié)果在輸出設(shè)備(常指顯示器)上顯示。
輸入輸出1.8基本輸入/輸出輸入輸出又稱I/O(Input/O1)cin的使用形式:
cin>>變量1>>變量2>>……>>變量n;使用cin一次可以輸入多個(gè)值??梢暂斎肴魏位绢愋偷臄?shù)據(jù)。用空格、制表符或回車作為輸入的兩個(gè)數(shù)據(jù)之間的分隔。
例如:
inta,b,c;doublex1,y1;cin>>a>>b>>c;cin>>x1>>x2;
輸入、輸出流對(duì)象:cincout1)cin的使用形式:輸入、輸出流對(duì)象:cincout2)cout的使用形式:
cout<<e1<<e2<<……<<en;其中:每個(gè)ei可以是:
常量、變量、表達(dá)式、字符串、函數(shù)調(diào)用等。
當(dāng)是表達(dá)式時(shí),輸出表達(dá)式結(jié)果的值;若是函數(shù)調(diào)用,則輸出函數(shù)調(diào)用后的結(jié)果;當(dāng)是字符串時(shí),將字符串原樣輸出。例如:
intn=10;cout<<3.14159<<″
″<<n<<′\n′;cout<<″n=
″<<n<<endl;使用cin和cout在程序開(kāi)始處要寫入預(yù)編譯命令:#include<iostream.h>注意:2)cout的使用形式:使用cin和cout在程序開(kāi)始處要寫輸入輸出格式:默認(rèn)格式輸出:
輸出一個(gè)整型數(shù)或字符時(shí),原樣輸出值;輸出一個(gè)float型數(shù)時(shí),默認(rèn)7位有效數(shù)字;輸出double型數(shù)時(shí),默認(rèn)15位有效數(shù)字。輸入輸出格式:#include<iostream.h>voidmain(){inta=123;longintb=1234567;floatx1=12.34,x2=23.456789;doubley=12.34567890123;cout<<”a=”<<a<<’\n’<<”b=”<<b<<endl;cout<<”x1=”<<x1<<”“<<”x2=”<<x2<<endl;cout<<”y=<<y<<endl;}默認(rèn)格式輸出舉例:a=123b=1234567x1=12.34000x2=23.45679y=12.3456789012300
輸出結(jié)果:#include<iostream.h>默認(rèn)格式輸出舉
在輸入輸出流中使用控制符C++提供控制符控制輸出數(shù)據(jù)的格式。常用的幾個(gè)控制符:
dec轉(zhuǎn)換為十進(jìn)制數(shù)輸入/輸出hex轉(zhuǎn)換為十六進(jìn)制數(shù)輸入/輸出oct轉(zhuǎn)換為八進(jìn)制數(shù)輸入/輸出setw(int)設(shè)置輸出的寬度setprecision(int)設(shè)置浮點(diǎn)數(shù)輸出的有效數(shù)字位數(shù)setfill(char)設(shè)置填充字符endl插入換行符使用
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年農(nóng)藥原料購(gòu)銷合同
- 2025年企業(yè)經(jīng)營(yíng)權(quán)互換合同范本
- 2025年塑料管道供需合同
- 2025年電纜線訂購(gòu)合同示例
- 2025年農(nóng)業(yè)物資合作開(kāi)發(fā)協(xié)議
- 2025年危險(xiǎn)品行業(yè)合作經(jīng)營(yíng)協(xié)議書
- 2025年合作方變更協(xié)議書
- 2025年石油供應(yīng)協(xié)議石油供應(yīng)合同范文
- 2025年公務(wù)員人力資源派遣框架合同
- 2025年退休人員返聘協(xié)議樣本
- 金融知識(shí)普及
- (100題)2024時(shí)事政治考試題庫(kù)
- 新概念英語(yǔ)第二冊(cè)-Lesson18-同步習(xí)題含答案
- 中國(guó)兒童幽門螺桿菌感染診治專家共識(shí)2022
- 全國(guó)大學(xué)英語(yǔ)六級(jí)詞匯表
- 2024年3月江蘇海洋大學(xué)招考聘用專職輔導(dǎo)員和工作人員5人筆試參考題庫(kù)附帶答案詳解
- 垂線課件人教版數(shù)學(xué)七年級(jí)下冊(cè)
- 建設(shè)法規(guī)(全套課件)
- 東來(lái)順牛羊肉培訓(xùn)
- 心衰患者的容量管理中國(guó)專家共識(shí)-共識(shí)解讀
- 外用激素合理使用
評(píng)論
0/150
提交評(píng)論