高級語言程序設(shè)計(jì)(CC++版) 課件 第1章 基礎(chǔ)知識_第1頁
高級語言程序設(shè)計(jì)(CC++版) 課件 第1章 基礎(chǔ)知識_第2頁
高級語言程序設(shè)計(jì)(CC++版) 課件 第1章 基礎(chǔ)知識_第3頁
高級語言程序設(shè)計(jì)(CC++版) 課件 第1章 基礎(chǔ)知識_第4頁
高級語言程序設(shè)計(jì)(CC++版) 課件 第1章 基礎(chǔ)知識_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

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

文檔簡介

第1章

基礎(chǔ)知識課程地位先導(dǎo)課程、奠定基礎(chǔ)歷史悠久、地位卓越內(nèi)涵豐富、外延拓展216:12課程目標(biāo)掌握程序設(shè)計(jì)基礎(chǔ)知識培養(yǎng)問題求解應(yīng)用能力提升計(jì)算思維核心素養(yǎng)316:12課程規(guī)劃64學(xué)時(shí):理論32+上機(jī)32理論教學(xué)實(shí)踐教學(xué)在線教學(xué)416:12課程特色突出問題求解緊扣競賽考研強(qiáng)化教學(xué)交互培養(yǎng)計(jì)算思維516:12學(xué)習(xí)目標(biāo)及策略考研專業(yè)課程初試語言基礎(chǔ)復(fù)試機(jī)試環(huán)節(jié)認(rèn)真聽講,仔細(xì)看書習(xí)題訓(xùn)練,真題模擬上機(jī)實(shí)踐,在線評測最終目的:熟練使用C/C++語言編程解決實(shí)際問題。616:12目錄程序設(shè)計(jì)語言C與C++語言第一個C++程序內(nèi)存和變量cin/cout輸入輸出整數(shù)類型浮點(diǎn)類型字符類型程序設(shè)計(jì)步驟與流程圖716:121.程序設(shè)計(jì)語言8返回機(jī)器語言計(jì)算機(jī)能直接識別和接受的二進(jìn)制代碼稱為機(jī)器指令。機(jī)器指令的集合就是該計(jì)算機(jī)的機(jī)器語言。特點(diǎn):難學(xué),難記,難檢查,難修改,難以推廣使用。依賴具體機(jī)器難以移植。匯編語言機(jī)器語言的符號化。用英文字母和數(shù)字表示指令的符號語言。特點(diǎn):相比機(jī)器語言簡單好記,但仍然難以普及。匯編指令需通過匯編程序轉(zhuǎn)換為機(jī)器指令才能被計(jì)算機(jī)執(zhí)行。依賴具體機(jī)器難以移植。高級語言高級語言更接近于人們習(xí)慣使用的自然語言和數(shù)學(xué)語言。特點(diǎn):功能強(qiáng)大,不依賴于具體機(jī)器。用高級語言編寫的源程序需要通過編譯程序轉(zhuǎn)換為機(jī)器指令的目標(biāo)程序。B87F01BB210203D8B81F042BC3MOVAX123MOVBX456ADDBXAXMOVAX789SUBAXBXx=789-(123+456)16:122.C/C++發(fā)展簡史1972年,Bell實(shí)驗(yàn)室的DennisRitchie和KenThompson共同發(fā)明了C語言。C語言充分結(jié)合了匯編語言和高級語言的優(yōu)點(diǎn),高效靈活,且易于移植,很快得到廣泛使用。1979年,Bjarne

Stroustrup加入Bell實(shí)驗(yàn)室,開始致力于將C改良為帶類的C(Cwithclasses)。1983年該語言被正式命名為C++。ANSI和ISO的聯(lián)合標(biāo)準(zhǔn)化委員會在1994年1月25曰提出了第一個C++標(biāo)準(zhǔn)化草案,該草案保持了Stroustrup最初定義的所有特征。在完成C++標(biāo)準(zhǔn)化的第一個草案后不久,Alexanderstepanov創(chuàng)建了標(biāo)準(zhǔn)模板庫(STL)。在通過了第一個草案之后,委員會投票并通過了將STL包含到C++標(biāo)準(zhǔn)中的提議。委員會于1997年11月14日通過了該標(biāo)準(zhǔn)的最終草案,1998年C++的ANSI/ISO標(biāo)準(zhǔn)被投入使用。通常此版本的C++被認(rèn)為是標(biāo)準(zhǔn)C++,所有的主流C++編譯器都支持該版本的C++,包括微軟的VisualC++和Borland公司的C++Builder。9返回16:123.第一個C++程序要求:在屏幕上輸出“Ilovec++programming!”。#include<iostream>usingnamespacestd;intmain(){ cout<<"Ilovec++programming!"<<endl; return0; }10返回16:124.內(nèi)存和變量存儲器是計(jì)算機(jī)系統(tǒng)的重要組成部分,是用來存儲程序和數(shù)據(jù)的部件。存儲器按其用途可分為主存儲器和輔助存儲器。主存儲器又稱內(nèi)存儲器簡稱內(nèi)存,輔助存儲器又稱外存儲器簡稱外存。內(nèi)存存取速度快,是CPU能夠直接尋址的存儲空間。存儲器中每一個字節(jié)均對應(yīng)唯一的編碼地址,通常以8bit位組成一個字節(jié)(byte)為基本單位,每210(1024)byte為1KB,210KB為1MB,210MB為1GB,210GB為1TB。11返回16:12變量:具有特定屬性的內(nèi)存單元,可通過變量名直接引用該存儲單元在C/C++程序中,變量必須遵循“先定義,后使用”的原則。變量命名遵守以下規(guī)則:(1)變量名只能由字母、數(shù)字和下劃線構(gòu)成;(2)變量名不能以數(shù)字開頭;(3)變量名不能使用系統(tǒng)保留的關(guān)鍵字(見表1.1);(4)變量名嚴(yán)格區(qū)分大小寫。同時(shí),為了增加程序代碼的可讀性,給變量取名時(shí)應(yīng)盡可能做到“見名知義”。定義變量的一般格式為:數(shù)據(jù)類型

變量名1,變量名2,……,變量名n;

inta; //定義一個名稱為a的整型變量

inta,b,c; //定義三個整型變量,名稱分別為a,b,c12autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunionunsignedvoidvolatilewhile16:125.cin/cout輸入輸出

C++的輸入和輸出均是采用“流”(stream)方式實(shí)現(xiàn),有關(guān)流對象cin、cout和流運(yùn)算符的信息均存放于C++的輸入輸出流庫中。因此,若要在程序中使用cin、cout和流運(yùn)算符,則必須用預(yù)處理命令“#include<iostream>”將頭文件iostream包含到本文件中。使用cin可輸入多個變量的值,其一般格式:cin>>變量1>>變量2……>>變量n;使用cout可輸出多個表達(dá)式的值,其一般格式:cout<<表達(dá)式1<<表達(dá)式2……<<表達(dá)式n;13返回16:12例1.2:計(jì)算兩個整數(shù)的和。輸入:輸入兩個整數(shù),兩個整數(shù)用空格隔開。輸出:輸出為兩個整數(shù)的和,單獨(dú)占一行。樣例輸入:12樣例輸出:3#include<iostream>usingnamespacestd;intmain(){ inta,b; cin>>a>>b; cout<<a+b<<endl; return0;}1416:126.整數(shù)類型進(jìn)制由符號集和兩個基本因數(shù)“基數(shù)”與“位權(quán)”構(gòu)成,基數(shù)指不同符號的個數(shù),位權(quán)指進(jìn)制每一固定位對應(yīng)的權(quán)值。十進(jìn)制是10個符號的排列組合,二進(jìn)制是2個符號的排列組合。1.十進(jìn)制轉(zhuǎn)二進(jìn)制對于整數(shù)部分,用被除數(shù)反復(fù)除以2(第一次取該整數(shù)為被除數(shù),以后每次均取前一次商的整數(shù)部分作被除數(shù)),依次記下每次的余數(shù)并將余數(shù)倒序排列,便是轉(zhuǎn)換后的二進(jìn)制數(shù)。對于小數(shù)部分,采用連續(xù)乘以基數(shù)2并依次取出整數(shù)部分,直至其小數(shù)部分為0結(jié)束。以十進(jìn)制數(shù)53轉(zhuǎn)換為二進(jìn)制數(shù)為例,53連續(xù)六次除以2后,得到的余數(shù)依次是:1、0、1、0、1、1。將所有余數(shù)倒序排列為110101。因此十進(jìn)制數(shù)53轉(zhuǎn)換成二進(jìn)制數(shù)為110101。2.二進(jìn)制轉(zhuǎn)十進(jìn)制二進(jìn)制數(shù)第0位的權(quán)值是2的0次方,第1位的權(quán)值是2的1次方,……。如二進(jìn)制數(shù)01100100轉(zhuǎn)換成十進(jìn)制數(shù)為100。15返回16:126.整數(shù)類型(原碼、反碼、補(bǔ)碼)計(jì)算機(jī)中的有符號數(shù)存在原碼、反碼和補(bǔ)碼三種表示方法。在計(jì)算機(jī)系統(tǒng)中,數(shù)值一律采用補(bǔ)碼來表示和存儲,其原因在于:補(bǔ)碼可將符號位和數(shù)值位統(tǒng)一處理;補(bǔ)碼也可將加減運(yùn)算進(jìn)行統(tǒng)一處理。原碼、反碼與補(bǔ)碼的表示規(guī)則如下:原碼表示法的最高位為符號位,正數(shù)該位為0,負(fù)數(shù)該位為1;其余位為數(shù)值位,表示數(shù)值的大小,為該數(shù)絕對值的二進(jìn)制形式。正數(shù)的反碼與原碼相同,負(fù)數(shù)的反碼為該數(shù)原碼的符號位不變數(shù)值位取反(0變?yōu)?,1變?yōu)?)。反碼通常用作原碼和補(bǔ)碼之間的過渡碼。正數(shù)的補(bǔ)碼與原碼相同,負(fù)數(shù)的補(bǔ)碼為該數(shù)反碼加1。16返回16:12補(bǔ)碼符號位的數(shù)學(xué)特征體現(xiàn)了補(bǔ)碼在計(jì)算機(jī)系統(tǒng)中數(shù)據(jù)表示與運(yùn)算的優(yōu)勢。以編譯系統(tǒng)為短整型數(shù)據(jù)分配2個字節(jié)存儲空間為例,十進(jìn)制數(shù)據(jù)13的二進(jìn)制形式是1101,其在存儲單元中數(shù)據(jù)形式如圖1.1。十進(jìn)制數(shù)據(jù)-13的原碼、反碼和補(bǔ)碼如圖1.2。17位序151413121110987654321013的原碼0000000000001101-13的原碼1000000000001101-13的反碼1111111111110010-13的補(bǔ)碼111111111111001116:12Dev-C++環(huán)境中各種類型整數(shù)所占用存儲單元長度及取值范圍C++標(biāo)準(zhǔn)并沒有具體規(guī)定各種類型數(shù)據(jù)所占用存儲單元的長度,具體由各編譯系統(tǒng)自行決定,只是要求:sizeof(short)<=sizeof(int)<=sizeof(long)<=sizeof(longlong)。18整數(shù)類型字節(jié)數(shù)取值范圍[signed]int4-2147483648~2147483647(-231~231-1)unsigned[int]40~4294967295(0~232-1)[signed]short[int]2-32768~32767(-215~215-1)unsignedshort[int]20~65535(0~216-1)[signed]long[int]4-2147483648~2147483647(-231~231-1)unsignedlong[int]40~4294967295(0~232-1)[signed]longlong[int]8-9223372036854775808~9223372036854775807(-263~263-1)unsignedlonglong[int]80~18446744073709551615(0~264-1)16:12例1.3:有m支鉛筆分給n位同學(xué)(且m>n),請問每位同學(xué)平均可分幾支?還剩幾支?輸入:輸入兩個整數(shù)m和n,分別表示鉛筆的總數(shù)和學(xué)生的人數(shù)(m>n)。輸出:輸出兩個整數(shù),分別表示每位同學(xué)平均分配的數(shù)量及剩余的鉛筆數(shù)量。樣例輸入:16332樣例輸出:53#include<iostream>usingnamespacestd;intmain(){ intm,n; cin>>m>>n; cout<<m/n<<""<<m%n<<endl; //cout<<“每位同學(xué)平均可分”<<m/n<<"支,還剩"<<m%n<<“支”<<endl; return0;}1916:127.浮點(diǎn)類型浮點(diǎn)表示法是目前為止使用最廣泛的實(shí)數(shù)表示方法。相對于定點(diǎn)數(shù)而言,浮點(diǎn)數(shù)利用指數(shù)使小數(shù)點(diǎn)的位置根據(jù)需要而上下浮動,從而可以靈活地表達(dá)更大范圍的實(shí)數(shù)。在處理浮點(diǎn)型數(shù)據(jù)時(shí),計(jì)算機(jī)系統(tǒng)將其分成小數(shù)和指數(shù)兩個部分加以存儲。浮點(diǎn)數(shù)類型包括單精度浮點(diǎn)型(float)、雙精度浮點(diǎn)型(double)和長雙精度浮點(diǎn)型(longdouble)。Dev-C++環(huán)境中各種類型浮點(diǎn)數(shù)所占用存儲單元長度及取值范圍見表1.3。同整數(shù)類型一樣,C++也沒有規(guī)定各種浮點(diǎn)型所占用存儲單元的長度,具體由各編譯系統(tǒng)自行決定。20返回整數(shù)類型字節(jié)數(shù)有效數(shù)字絕對值取值范圍float460以及1.2*10-38~3.4*1038double8150以及2.3*10-308~1.7*10308longdouble16190以及3.4*10-4932~1.1*10493216:12

輸入:輸入一個浮點(diǎn)類型的數(shù)r表示圓的半徑。輸出:該圓的面積。樣例輸入:2.3樣例輸出:16.6106#include<iostream>usingnamespacestd;intmain(){ doubler; cin>>r; cout<<3.14*r*r<<endl; return0;}2116:12絕對值與取整函數(shù);指數(shù)、對數(shù)、開方函數(shù)函數(shù)功能intabs(inti)返回整數(shù)的絕對值doublefabs(doubled)返回雙精度數(shù)的絕對值doublelabs(longn)返回長整型數(shù)的絕對值

doubleceil(doubled)向上取整doublefloor(doubled)向下取整doubleround(doubled)四舍五入22函數(shù)功能doublelog(doublex)返回自然對數(shù)ln(x)的值doublelog10(doublex)返回常用對數(shù)lg(x)的值doublepow(doublex,doubley)返回x的y次冪doublesqrt(doublex)返回x的平方根

16:12例1.5:輸入一個正整數(shù),輸出其位數(shù)。輸入:一個正整數(shù)。輸出:正整數(shù)的位數(shù)。樣例輸入:100樣例輸出:3#include<iostream>#include<cmath>usingnamespacestd;intmain(){ intnum,n; cin>>num; n=log10(num)+1; cout<<n<<endl; return0;}2316:128.字符類型在C++中,字符類型分為無符號字符類型和有符號字符類型。字符類型數(shù)據(jù)占一個字節(jié),以其對應(yīng)ASCII碼的二進(jìn)制形式存儲,因此可看作是存儲空間和取值范圍更小的整數(shù)類型。字符類型數(shù)據(jù)所占用存儲空間和

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論