c++程序設(shè)計(jì)要點(diǎn)復(fù)習(xí)_第1頁(yè)
c++程序設(shè)計(jì)要點(diǎn)復(fù)習(xí)_第2頁(yè)
c++程序設(shè)計(jì)要點(diǎn)復(fù)習(xí)_第3頁(yè)
c++程序設(shè)計(jì)要點(diǎn)復(fù)習(xí)_第4頁(yè)
c++程序設(shè)計(jì)要點(diǎn)復(fù)習(xí)_第5頁(yè)
已閱讀5頁(yè),還剩10頁(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、第一章程序設(shè)計(jì)概述 面向?qū)ο蟪绦蛟O(shè)計(jì)的本質(zhì)是 把數(shù)據(jù)和數(shù)據(jù)處理的過(guò)程當(dāng)成一個(gè)整體 - 對(duì)象 。 由符號(hào) “/*”和“*/ ”括起來(lái)的多行注釋語(yǔ)句(不能嵌套使用);main()函數(shù)是必須的入口函數(shù),每個(gè)C程序從main()函數(shù)開始執(zhí)行,并在main()中結(jié)束。第二章 C+ 的數(shù)據(jù)類型、運(yùn)算符和表達(dá)式C+語(yǔ)言程序中允許出現(xiàn)的所有基本字符的集合,稱為C+語(yǔ)言的字符集。標(biāo)識(shí)符:是由程序員定義的命名符。用來(lái)標(biāo)識(shí)常量、變量、函數(shù)、數(shù)據(jù)類型的名字等。由字母、數(shù)字和下劃線(其他的都是非法的) 組成,且必須以字母或下劃線為第一字符。1) 保留字或關(guān)鍵字是系統(tǒng)作特殊用途的單詞,不可作用戶標(biāo)識(shí)符;2) 標(biāo)識(shí)符的大小

2、寫有區(qū)別;3) C+ 沒(méi)有規(guī)定標(biāo)識(shí)符的長(zhǎng)度,即字符個(gè)數(shù);4) 標(biāo)識(shí)符盡可能做到見(jiàn)文知意,增加程序可讀性 八進(jìn)制 (octal) :以 0 開頭的八進(jìn)制數(shù)字串;十六進(jìn)制 (hexadecimal) :以 0x 開頭 的十六進(jìn)制數(shù)字串; 指數(shù)形式,也即科學(xué)記數(shù)法,用字母E或e表示,一般形式:aEb,表示a*10的b次方,b必須是整數(shù),且尾數(shù)和指數(shù)都不能缺??!C+的浮點(diǎn)數(shù)有3種:?jiǎn)尉雀↑c(diǎn)型(float),雙精度浮點(diǎn)型(double)和長(zhǎng)雙精度浮點(diǎn)型(Iong double)。不加后綴的浮 點(diǎn)數(shù)默認(rèn)為double型,float型數(shù)據(jù)后綴為F或f, Io ng double型數(shù)據(jù)后綴為I或L。字符常量

3、:如:65, a97;所以這些常量可以參加數(shù)值運(yùn)算,如A1=65+仁66= B.(0是48)轉(zhuǎn)義字符可以組成字符常量,其長(zhǎng)度也為1。如n 字符串:可以一行或連續(xù)幾行書寫,當(dāng)連續(xù)幾行書寫時(shí),在每行后加續(xù)行符“”結(jié)尾即可。每個(gè)字符串都有一個(gè)串結(jié)束標(biāo)志 “0”,因此字符串在內(nèi)存中占用的字節(jié)數(shù)等于字符串的長(zhǎng)度加1 eg.“”:占內(nèi)存 7個(gè)單元?!?101102x43x44 ”是字符串“ abCD ”字符串的長(zhǎng)度不受限制,靠0”來(lái)判定串的結(jié)束;a”和a是兩個(gè)不同的概念;字符串常量實(shí)際上是一個(gè)字符型數(shù)組,不存在字符串型的數(shù)據(jù)類型 。#define N 100 long width = 7, length

4、= 7;double area, radius = 23;(這些是合法的)關(guān)于“/”如果兩個(gè)運(yùn)算對(duì)象有一個(gè)或兩個(gè)都是實(shí)型,則運(yùn)算結(jié)果是實(shí)型。 關(guān)于“%”只能用于整數(shù),取兩數(shù)相除后的余數(shù);當(dāng)運(yùn)算的對(duì)象異號(hào)時(shí),取%前的運(yùn)算數(shù)的符號(hào) 作為結(jié)果符號(hào),而值為兩數(shù) 絕對(duì)值 的余數(shù)。關(guān)于邏輯 0 表示假 1 表示真 。 邏輯運(yùn)算符的操作數(shù)可以是任何基本數(shù)據(jù)類型的數(shù)據(jù)。 關(guān)于位運(yùn)算符1) : 按位求反,將運(yùn)算元內(nèi)所有的 1 變 0, 0 變 12) &: 按位與,處理兩個(gè)整形運(yùn)算元中的每一個(gè)二進(jìn)制位,如果對(duì)應(yīng)位值都為1,則結(jié)果位為 1,反之結(jié)果位值為 0。3) A:按位異或,對(duì)于每個(gè)二進(jìn)制位,如果兩個(gè)運(yùn)算元中

5、的對(duì)應(yīng)位有且僅有一個(gè)為1時(shí),結(jié)果位上的值為1,反之結(jié)果為 0 。4) |: 按位或, 對(duì)于每個(gè)二進(jìn)制位, 如果兩個(gè)運(yùn)算元中的對(duì)應(yīng)位其中有一個(gè)為 1 時(shí),結(jié)果位上的值為 1,反之結(jié)果為 0。5) : 右移運(yùn)算符,運(yùn)算元中各二進(jìn)制全部右移一定位置。Sizeof:返回其后的表達(dá)式類型標(biāo)識(shí)符所表示的數(shù)在內(nèi)存所占字節(jié)的多少,實(shí)際上是求所占內(nèi)存字節(jié)數(shù),所以也叫長(zhǎng)度 運(yùn)算符。如果有多于兩個(gè) +或兩個(gè) -連寫的情況,則編譯首先識(shí)別前面兩個(gè)+或-為增量或減量操作符。/errorc = a + b;類型轉(zhuǎn)換的方向肆鏗劉勰黑!闘媲I!製!理口用 char |境福i:慌満i尊圖;裔i希需6纓牌贈(zèng)!熾螂躍螂腸遊加!蠟1

6、!埶黑!牌慳!腳熾轉(zhuǎn)S unsigned char 高渝隔躅i;靜裔i騙海穂錨蜀撕 辭裔鬲備潦i:翩裔満口曲淳瀆浴懿晞君鍛農(nóng)鮫陰01.J.s short s於翳黑綴屋遠(yuǎn)駆詫隱遊谿帶廉SSTrt O sh賺詞請(qǐng)帝滿論曬舖謙漏ii觀 用 int 尊 14瞰整刪京卿卿卿!頭割蕩躺鑒溜馨鰹牌陛1粧I long int I鋸需需橋緡瀟砲噺鯛滯曙級(jí)燻!翅 劇望!型蠅騾煽L1瞌J障瀟論論溜侖緒筒踽備腳僑闋筒瀟離嗇鯊I unsigned int fi&纓卿腳唧唆m劉舉皿麵瞬迎專潮罷卿!劉翩副殆P淀尿 曲隔扇-屆崩;.總器3溫曲備禺屛目 unsigned long 童暑腐ii翻閒倚inasia踽隔8鬲闕脩隅ii

7、備腐緡i踴痛%麥関疇理劉曙疊悝媲關(guān)直弓 double 君帝尋甫鬧爾能磅訓(xùn)巒憐:癌曲e舗 卿uh擦 Iu:O 澤 椚d 0 曲g邂wvm .znuf&.e du. m第三章數(shù)據(jù)的輸入與輸出輸入:信息從計(jì)算機(jī)的外部設(shè)備流入計(jì)算機(jī)主機(jī)稱為輸入。 輸出:信息從計(jì)算機(jī)主機(jī)流入計(jì)算機(jī)外部設(shè)備稱為輸出。 ”從cin輸入流中抽取字符,” n時(shí),m與n的最大公約數(shù)等于 n與m%n的最大公約數(shù);當(dāng)n = 0時(shí),m與n的最大公約數(shù)等于m。m是n的k倍還多r ,那么m和n的最大公約數(shù)與n和r的最大公約數(shù)相同。若r= 0,則n就是m和n的最大公約數(shù);若r不等于0,則對(duì)n和r重復(fù)上述過(guò)程,直到r= 0為止。第五章數(shù)組及其

8、使用數(shù)組要求先定義后使用數(shù)組說(shuō)明的作用是在程序運(yùn)行前分配內(nèi)存空間。因此,數(shù)組類型符必須是已定義的,下標(biāo)表達(dá)式也須有確定值,不能為變量或?qū)嵭捅磉_(dá)式。如果給定的常數(shù)的個(gè)數(shù)不足,則系統(tǒng)對(duì)其余元素初始化為0或空字符C+的高維數(shù)組在內(nèi)存中以高維優(yōu)先的方式存放,二維數(shù)組中以行為優(yōu)先排放如果全部元素都賦初值,則定義數(shù)組時(shí),對(duì)第一維的長(zhǎng)度可以不指定,但高維的長(zhǎng)度不能省,如:int ad3=1,2,3,4,5,6;i nt y23 = 1,2,3,4,5,6,7,8,9,10,11,12;字符數(shù)組的定義:char str10;str0= C;str1= h;str2= str3= n;str4= a;str5=

9、 0逐個(gè)字符對(duì)數(shù)組元素進(jìn)行賦初始值:char str110 = s,:u:e:不會(huì)添加結(jié)束符0 用串常量初始化:char str210 = Student”char str3 = student ”char str3 =student ”;String.h頭文件包含:1)字符串長(zhǎng)度函數(shù)strle n()2)字符串賦值函數(shù)strcpy()3)字符串連接函數(shù)strcat()4)字符串比較函數(shù)strcmp()如果兩個(gè)串相等,函數(shù)返回值為0;如果s1串大于s2串,返回值大于0;如果s1串小于s2串,返回值小于0。、,、* 、* 1注意:int strn cmp(c onstchar *s1,c ons

10、tchar *s2,i nt n);函數(shù)strcmp用于兩個(gè)串的完全比較;strncmp用于比較兩個(gè)串的前n個(gè)字符。用cin流輸入字符串時(shí),C+把鍵盤操作的空格和回車都視為結(jié)束,因此無(wú)法輸入帶空格的字符串。 C語(yǔ)言的函數(shù)gets接受鍵盤輸入的空格,以回車作為結(jié)束。使用puts輸出字符串,這兩個(gè)函數(shù)在 stdio.h中聲明。#in clude #in clude void mai n()char str10; gets(str); puts(str);數(shù)組使用舉例-冒泡排序基本思想:首先,在A1-An范圍內(nèi),依次比較兩個(gè)相鄰元素的大小 Ai+1f 則交jAi?nAi+1,否則就不交換,i=1l2

11、F_.,n-1o 經(jīng)過(guò)這樣 遍處理(稱為一趟起觀).就JBA1-An中最大的元素?fù)Q到了An中:然后,在AI1bAn-1范圍內(nèi)再逬行一趟起泡,將該范圍內(nèi)最大的放在 An-1中;依次進(jìn)行下去直到上險(xiǎn)完A1 -A2;經(jīng)過(guò)以上n1趟起泡.則將這n個(gè)數(shù)按從小到大的順序fi斎。改進(jìn)版:#in elude void mai n()int a10,i,j,temp, swap;for(i=0;i ai;for(i=0;i9;i+)swap = 1 ;for(j=0;jaj+1)swap = 0;temp = aj;aj = aj+1; aj+1 = temp;cout這時(shí)第i+1 趟: for(j=0;j10

12、;j+)coutaj;coute ndl;if(swap) break;數(shù)組使用舉例-約瑟夫問(wèn)題設(shè)有門個(gè)人站成一圈每個(gè)人有不卮的編號(hào)i(仁i n),從編號(hào)為1的人開 始按順時(shí)針?lè)较?2】4一循環(huán)攝數(shù)數(shù)到H1的人出列,然后從岀列者 的下一個(gè)人重新開始報(bào)數(shù),數(shù)到m的人又出列,如此重復(fù)進(jìn)行直到口個(gè) 人都出列為1L約彗夫問(wèn)題是:對(duì)于任意給定的門個(gè)人的原始排列II頁(yè)序和m值,求岀n個(gè) 人的出列順序.Word文檔算法:引入數(shù)組P將 n個(gè)人的編號(hào)按其原始排列順序存入數(shù)組元素POPn-1中。從編號(hào)為1的人開始循環(huán)報(bào)數(shù),數(shù)到m的人,假定其在數(shù)組中的下標(biāo)為t,就輸出Pt,并將它從數(shù)組中刪除,將Pt后面的元素依次向

13、左移動(dòng)一個(gè)位置。刪除一個(gè)元素后,由于它后面的元素都左移了一個(gè)位置,因此,每次報(bào)數(shù)的起始位置就是上次報(bào)數(shù)的出列位置。假設(shè)當(dāng)前 數(shù)組元素個(gè)數(shù)為i,上次出列位置為t,則本次出列位置就是(t+m-1)%i 。代碼如下:#include const int n = 8;void main()int Pn;int m = 4;int i,j,t;for(i = 0;i=1;i-)t = (t+m-1)%i; coutPt ;for(j = t+1;j=i-1;j+)Pj-1 = Pj;coutendl;第六章函數(shù)閏年的條件 : 能被 4整除,但不能被 100整除的年份都是閏年 ;能被 400整除的年份都是

14、閏年; 代碼: if(year%4=0&year%100!=0|year%400=0)調(diào)用函數(shù)前先要聲明局部變量| 局部變量是定義在函數(shù)內(nèi)或塊內(nèi)的變量”只在本函數(shù)內(nèi)或塊內(nèi)有效 |&濟(jì)冊(cè)解冊(cè)存濟(jì)理廊加M加如加加加如f他他搟剛刖冊(cè)砂存處彩伽加處加加加專加如入局部變量在程序運(yùn)行到它所在的函數(shù)或塊時(shí)建立*該函數(shù)或塊執(zhí)行完 畢,局部變量占有的空間即被輕放局部變量在走義時(shí)若未被初始化,負(fù)值為隨機(jī)數(shù)程序中使用的絕大多數(shù)變量都是局卽變量代碼區(qū):存放程序的代碼,即程序中的各個(gè)函數(shù)代碼塊全局?jǐn)?shù)據(jù)區(qū):存放程序的全局?jǐn)?shù)據(jù)和靜態(tài)數(shù)據(jù)堆區(qū):存放程序的動(dòng)態(tài)數(shù)據(jù)棧區(qū):存放程序的局部數(shù)據(jù),即各個(gè)函數(shù)中的數(shù)據(jù)所有靜態(tài)變量存放在全

15、局?jǐn)?shù)據(jù)區(qū),編譯時(shí)獲得存儲(chǔ)空間,未初始化時(shí)自動(dòng)全0,且只初始化一次。局部靜態(tài)變量的作用域?yàn)閴K域,但生命期為整個(gè)文件雖然靜態(tài)局部變量在函數(shù)調(diào)用結(jié)束后仍然存在,但其它函數(shù)不能引用。一個(gè)全局變量和一個(gè)靜態(tài)全局變量在使用上是不同的,其它文件通過(guò)外部變量聲明可使用一個(gè)全局變量,但卻無(wú)法使 用靜態(tài)全局變量,靜態(tài)全局變量只能被定義它的文件所獨(dú)享函數(shù)遞歸調(diào)用:#in elude int fact(i nt n)int fn;if(n=0) fn = 1;else fn = n *fac( n-1);return fn;用遞歸法求Fibonacci :long Fib on acci (int n)if(n =2

16、)return 1;elseretur n Fib on acc i(n-1)+Fib on acc i(n-2);定義重載函數(shù)時(shí)必須保證參數(shù)類型不同,僅僅返回值類型不同是不行的。Word文檔第七章指針數(shù)組名代表的是數(shù)組的起始地址,是一個(gè)常量,而不是指針變量,在程序中是不能改變的。隨機(jī)產(chǎn)生一百以內(nèi)的數(shù):ai = ran d()%100;對(duì)于二維數(shù)組a,雖然a和a0都是地址而且值相同,但意義不同;a是指向行(數(shù)組)的,一維數(shù)組名a0是指向列(元素)的。在指向行的指針前加一個(gè)*,就轉(zhuǎn)換成指向列的指針;反之,在指向列的指針前加一個(gè)&,就稱為指向行的指針維數(shù)組的列指針指向具體元素的捋針,又稱一級(jí)指針,

17、具定義和一股扌希變量的定義一樣。iiiuaani lignin mi inainii iiiuami iimfiiii ihi jii m inuami imtim rai mi iim inuami imriin mi urn iiiKaani imniii mi wumami lignin mi mi w innami iimnin| include ciostream.j| include Hntmainf)i int fcaP1r = a; X疑問(wèn):例:一個(gè)班有日個(gè)學(xué)生各學(xué)b門課,分另町算每個(gè)學(xué)生和毎 門課的平均成績(jī).IH-iill mi lllb-Hli IH-i Illi nili

18、ii + illli-!llii-!illi-iil li-H Illi-rill IHsi ilil rril lii + iilli-liiiil-iillirtliilri iliiill IfrH Illi i-ril lif-r :illi-liliil-!illir4lliar-Hllli*iil IIH illi-ril lilr-iili iT I lid-sillilil e1 ilir-iill ir-i Ilil-riillirfeiilir-illli-iillir-BIIIilil-Hil li-include iastream.h? cor st int A = 3

19、+1 const int 3 = &+1void studentAverage(int b,float *p) inllj, float total;void main()static float scoreA|B=100 60 7C.81 52 6271.83 92.98 90 70.50 60.40: vad studentAveragefint a,int Afloat *p);vad cour&eAveragefint a.mt b.float (xp)6 j;total = 0fcrrj=C jbj+ p+4itotal = total+1fcp = totai/b;P+

20、;stud en tAvera ge(A-1n6-1.sc ore0). cOLit,hAYerage of students is nk for(inf i=0:iA-1;H+)匚 out Student lp isc oreiB-1 endl:coLitendivoid tourseAverage(int a int b.nciat (*p)6 (inti J;float total:for(j=0;Jb,j4-+)c ourseAverage(Ai B1 score); cout,FAverage of courses is:rT fori=0;iB-1li+)c out C ourse

21、 piore f-1 i endl:total = 0: ror(i=Ojj);T (尸iHD = tQtal/耳 wiwr.injfe 岸 ducr有關(guān)字符串判斷是否結(jié)束的語(yǔ)法:#in elude void strCopy(char *dest,char *source)while(*source!=0)這句話等號(hào)后面的0也可換做【0】或者【NULL】*dest = *source;source+;dest+;*dest = 0; void mai n()char a20,*strPtr = I am a stude nt.; strCopy(a,strPtr);coutae ndl;cha

22、r *name 與 char *name 20不同:char *name 20是二維字符數(shù)組,在內(nèi)存中連續(xù)存放;char *n ame是一個(gè)指向字符串的指針數(shù)組,并未定義行的長(zhǎng)度,各行之間也不一定連續(xù)存放,只是分別在內(nèi)存 中存儲(chǔ)了長(zhǎng)度不等的字符串,然后用指針數(shù)組中的指針元素分別指向它們int *pf(i nt, i nt);返回一個(gè)指向整型的指針。函數(shù)指針的定義和使用類型標(biāo)識(shí)符(*指針變量明)(函數(shù)參數(shù)表)int max(int,int); / 說(shuō)明函數(shù) maxint (*fp)(int,int);/定義函數(shù)指針,指向有兩整型參數(shù)和返回值為整型的函數(shù)fp = max;/將函數(shù)max的入口地址賦

23、給 fp,fp和max都指向函數(shù)入口說(shuō)明:函數(shù)指針指向程序代碼區(qū),一般數(shù)據(jù)變量指針指向數(shù)據(jù)區(qū)函數(shù)指針不能隨意指向任何一個(gè)函數(shù),只能指向與其定義一致的函數(shù)在給函數(shù)指針變量賦值時(shí),只需給出函數(shù)名而不必給出參數(shù)fp = max(a,b)語(yǔ)法錯(cuò)誤!函數(shù)指針不能進(jìn)行+,-, +,-等運(yùn)算,因?yàn)樵诔绦驁?zhí)行階段函數(shù)代碼區(qū)不會(huì)變動(dòng)函數(shù)指針作函數(shù)參數(shù)也血蠱謝如爰創(chuàng)占冊(cè)磁妙盤創(chuàng)毘勁勁妾?jiǎng)?chuàng)爰冊(cè)雜|int maxfint x,int y)include irit main,)修 retum(xy?x:y);int maxfininQminOntJnt),sum(i nt,i nt); void process(int(7p)(irrt,int)Jnt x,inty); int a,b;f int mirHint x,int y)return(xfield structure_po in ter-field (*structure_poi nter).field對(duì)于組合結(jié)構(gòu)體:m.se nder. name(&m)-se nder. n

溫馨提示

  • 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)論