C技能培訓一實用_第1頁
C技能培訓一實用_第2頁
C技能培訓一實用_第3頁
C技能培訓一實用_第4頁
C技能培訓一實用_第5頁
已閱讀5頁,還剩48頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

會計學1C技能培訓一實用2023/1/17為何要學習c++?1,首先在編程界使用最廣泛的語言是什么?2,C語言的優(yōu)越性體現(xiàn)在哪里?3,C++在C基礎(chǔ)上擴充了哪些東西?第1頁/共53頁2023/1/17C++幾個重要概念1、程序:數(shù)據(jù)+操作2、數(shù)據(jù)類型:不同的數(shù)據(jù)組織方式得到不同的數(shù)據(jù)類型3、表達式:操作符+操作數(shù)4、語句控制:數(shù)據(jù)操作的流程第2頁/共53頁2023/1/17程序風格命名(為常量、變量、函數(shù)取名)(1)名字必須符合標識符的規(guī)范。(2)標識符:由字母、數(shù)字、下劃線組成,而且只能以字母、下劃線打頭。(3)名字不能是保留字(系統(tǒng)有固定用途的標識符)。(4)字母的大小寫有區(qū)別。(5)名字最好能表達一定的含義第3頁/共53頁2023/1/17C++基本數(shù)據(jù)類型數(shù)據(jù)類型 占用字節(jié)數(shù)int 4shortint 2longint 4unsignedint 4unsignedshortint 2unsignedlongint 4char 1signed char 1unsignedchar 1float 4double 8longdouble 10 第4頁/共53頁2023/1/17第一個C++程序 #include<iostream.h>voidmain(){cout<<”hello,world!”<<endl;

}

程序功能:在屏幕上顯示輸出

hello,world!說明一說明二說明三說明四說明五說明六第5頁/共53頁2023/1/17第一個C++程序說明一:編譯預處理命令#include1、#:預處理命令的標志。2、#include:包含命令;把一個文本文件的內(nèi)容插入到該命令處。3、<iostream.h>命令參數(shù);給出要插入文件的文件名。第6頁/共53頁2023/1/17第一個C++程序說明二:頭文件:以h為擴展名的文本文件 如果程序文件中引用到的函數(shù)、變量、常量、對象、數(shù)據(jù)類型等是由別的文件提供的,則必須在程序文件的開始部分用#include命令把有關(guān)的頭文件包含進來。第7頁/共53頁2023/1/17第一個C++程序說明三:函數(shù)(具有特定功能的程序模塊)1、定義格式:返回類型函數(shù)名(形式參數(shù)表){函數(shù)體}voidmain(){cout<<”hello,world!”;}第8頁/共53頁2023/1/17第一個C++程序主函數(shù)(main函數(shù))每個程序中至少要有一個函數(shù),這個不可缺少的函數(shù)就是主函數(shù),約定主函數(shù)名為:main(1)程序由一個或多個函數(shù)組成。(2)如果程序中只有一個函數(shù),則一定是main函數(shù)。(3)如果程序中有多個函數(shù),則有且僅有一個為main函數(shù)。(4)main函數(shù)是程序的入口,程序是從main函數(shù)開始執(zhí)行的。(5)main函數(shù)的返回值☆void:無返回值?!頸nt:有返回值。(0表示程序正常結(jié)束非0表示程序非正常結(jié)束)第9頁/共53頁2023/1/17第一個C++程序說明四:C++語句☆基本語句:以分號;作為結(jié)束標志。☆復合語句:包含在{}中的基本語句序列。第10頁/共53頁2023/1/17常量

數(shù)據(jù)的一種重要表現(xiàn)形式,常量的值不可改變,1、整型常量(整型常數(shù))如:1232、實型常量(實型常數(shù))如:1.233、字符常量(用’’括起的一個字符)如:’a’4、字符串常量(用

””括起的字符序列)如:”student”5、枚舉常量注:除字符串常量中引號內(nèi)的字符以及注釋外,其它字符必須是半角字符。尤其注意不要誤用中文標點。第11頁/共53頁2023/1/17使用常量的好處(1)程序的可讀性(可理解性)變差。程序員自己會忘記那些數(shù)字或字符串是什么意思,用戶則更加不知它們從何處來、表示什么。(2)在程序的很多地方輸入同樣的數(shù)字或字符串,難保不發(fā)生書寫錯誤。(3)如果要修改數(shù)字或字符串,則會在很多地方改動,既麻煩又容易出錯。第12頁/共53頁2023/1/17定義常量的方法const和#define#defineMAX100/*C語言的宏常量*/constintMAX=100;//C++語言的const常量constfloatPI=3.14159;//C++語言的const常量第13頁/共53頁2023/1/17const 和#define的比較C++語言可以用const來定義常量,也可以用#define來定義常量。但是前者比后者有更多的優(yōu)點:(1)const常量有數(shù)據(jù)類型,而宏常量沒有數(shù)據(jù)類型。編譯器可以對前者進行類型安全檢查。而對后者只進行字符替換,沒有類型安全檢查,并且在字符替換可能會產(chǎn)生意料不到的錯誤(邊際效應(yīng))。(2)有些集成化的調(diào)試工具可以對const常量進行調(diào)試,但是不能對宏常量進行調(diào)試。(3)const可以定義局部的常量第14頁/共53頁2023/1/17常量定義規(guī)則需要對外公開的常量放在頭文件中,不需要對外公開的常量放在定義文件的頭部。為便于管理,可以把不同模塊的常量集中存放在一個公共的頭文件中。如果某一常量與其它常量密切相關(guān),應(yīng)在定義中包含這種關(guān)系,而不應(yīng)給出一些孤立的值。 例如:constfloatRADIUS=100;constfloatDIAMETER=RADIUS*2;第15頁/共53頁2023/1/17復合數(shù)據(jù)類型數(shù)組 數(shù)組是具有統(tǒng)一數(shù)據(jù)類型的對象的集合.在定義數(shù)組時,系統(tǒng)會自動為它分配一塊連續(xù)的內(nèi)存空間.舉例:inta[10]={0}; sizeof(a)結(jié)果是多少?如何得到數(shù)組元素的個數(shù)?

疑問:為什么內(nèi)置數(shù)組類型不支持數(shù)組之間的賦值?

即inta[5]={1,2,3,4,5};intb[5];b=a;這種語法到底對不對?為什么?第16頁/共53頁2023/1/17cout和數(shù)據(jù)的顯示輸出1、cout:連接顯示器的輸出流對象。2、<<:輸出操作符(插入操作符)3、顯示輸出語句的格式:

cout<<表達式【<<表達式】

;注:【】中內(nèi)容可有可無,若有,可重復多次。如:cout<<100;

屏幕輸出100cout<<100<<200<<100+200;

屏幕輸出100200300第17頁/共53頁2023/1/17cout和數(shù)據(jù)的顯示輸出4、插入空格:(空格符為’’)如:cout<<100<<’’<<200<<100+200;屏幕輸出:100200300第18頁/共53頁2023/1/17cout和數(shù)據(jù)的顯示輸出5、換行輸出☆換行符號:’\n’☆換行控制符:endl如:cout<<100\n<<200;cout<<100<<endl<<200;則這兩個語句的輸出結(jié)果相同:100200第19頁/共53頁2023/1/17cout和數(shù)據(jù)的顯示輸出四點注意:1、要輸出的字符串需要用雙引號”

”括起來。但輸出到屏幕上時,雙引號”

”并不顯示。2、語句的最后要用分號

;表示結(jié)束。3、換行符號’\n’和換行控制符endl寫法不同,但效果相同。4、可以作為輸出內(nèi)容的不止是字符串,還可以是數(shù)、表達式等等。第20頁/共53頁2023/1/17數(shù)組如何定義數(shù)組的大小inta[10];constintsize=10;inta[size];intsize=10;inta[size];inta[]={1,2,3,4,5,6,7,8,9,10};訪問數(shù)組時,千萬別越界。因為數(shù)組下標越界時,編譯可以通過的,沒法幫你檢查 第21頁/共53頁2023/1/17復合數(shù)據(jù)類型結(jié)構(gòu)體 結(jié)構(gòu)體將某些相關(guān)的具有不同類型的數(shù)據(jù)組織到一個數(shù)據(jù)類型中.

定義形式: struct結(jié)構(gòu)體名

{

成員列表; };第22頁/共53頁2023/1/17結(jié)構(gòu)體舉例

struct employee { charname[10]; intage; }; sizeof(employee)=?第23頁/共53頁2023/1/17復合數(shù)據(jù)類型共用體 共用體使用不同的數(shù)據(jù)類型的變量共占同一內(nèi)存單元.

定義形式: union {

成員列表; };

第24頁/共53頁2023/1/17共用體共用體和結(jié)構(gòu)體的比較 兩者定義相似,但含義不同.二者主要區(qū)別在于:結(jié)構(gòu)體變量所占長度是各成員所占內(nèi)存的長度之和,每個成員分別占有自己的內(nèi)存單元;而共用體變量所占的內(nèi)存長度等于最長的成員的長度. unioncountry { charusa[3]; charchina[5]; charaustralia[9]; }; sizeof(country)=?第25頁/共53頁2023/1/17復合數(shù)據(jù)類型枚舉 所謂枚舉是指將變量的值一一列舉出來,變量的值只限于在列舉出來的值的范圍內(nèi)

enumcolor{Red,Green,Blue,Yellow};Red=?第26頁/共53頁2023/1/17復合數(shù)據(jù)類型指針類用戶自定義類型第27頁/共53頁2023/1/17運算符算術(shù)運算符.單目算術(shù)運算符-(取負),+(取正),++(增1),--(減1),.雙目算術(shù)運算符+(相加),-(相減),*(相乘),/(相除)和%(取余數(shù))關(guān)系運算符

>(大于),<(小于),>=(小于等于),==(相等),!=(不相等)邏輯運算符.單目邏輯運算符:!(邏輯求反).雙目邏輯運算符:&&(邏輯與),||(邏輯或)第28頁/共53頁2023/1/17運算符舉例:+(加號)的使用voidswap(int&a,int&b){ a=a+b; b=a-b; a=a-b;}第29頁/共53頁2023/1/17運算符邏輯運算符 一般用于條件的判斷,比如if(),或者while().位操作運算符位操作運算符是用來進行二進制位運算的運算符,它又分為兩類:邏輯位運算符和移位運算符.第30頁/共53頁2023/1/17運算符邏輯位運算符.單目邏輯位運算符~(按位求反).雙目邏輯位運算符&(按位與),|(按位或),^(按位異或)移位運算符移位運算符:<<(左移),>>(右移)左移是將一個二進制數(shù)按指定移動的位數(shù)向左移位,移掉的位被丟棄,右邊移出的空位一律補0.右移是將一個二進制數(shù)按指定移動的位數(shù)向右移動,移掉的位被丟棄,左邊移出的空位或者一律補0,或者補符號位,這要由機器而定.第31頁/共53頁2023/1/17運算符舉例:^(按位異或)的使用

voidswap(int&a,int&b) { a=a^b; b=a^b; a=b^a; }第32頁/共53頁2023/1/17運算符賦值運算符.簡單的賦值運算符:=.復合的賦值運算符:+=,-=,*=,/=,%=,&=,|=,^=,<<=,>>=第33頁/共53頁2023/1/17運算符條件運算符 條件運算符的使用格式如下:d1?d2:d3其功能是計算d1的值,并且進行判斷,如果為非零,則表達式的值為d2,否則表達式的值是d3第34頁/共53頁2023/1/17運算符舉例:?:的使用intgetLenOfStr(constchar*str)//求字符串長度{ return*str==0?0:1+getLenOfStr(str+1);}第35頁/共53頁2023/1/17運算符逗號運算符,逗號運算符的優(yōu)先級是所有運算符中最低的.使用逗號運算符(,)可以將多個表達式組成一個表達式.例如e1,e2,e3,e4;e1,e2,e3,e4各為一個表達式.整個表達式的值和類型由最后一個表達式?jīng)Q定.計算一個逗號表達式的值時,從左到右依次計算各個表達式的值,最后計算的一個表達式的值和類型便是整個逗號表達式的值和類型第36頁/共53頁2023/1/17運算符強制類型運算符該運算符用來將指定的表達式的值強制為所指定的類型,使用格式如下:類型說明符(表達式)或者(類型說明符)表達式將指定的”表達式”的類型轉(zhuǎn)換為指定的”類型說明符”所說明的類型.這種強制類型可能使數(shù)值精度受到影響.第37頁/共53頁2023/1/17控制結(jié)構(gòu)順序結(jié)構(gòu) 在C++中,最基本的順序結(jié)構(gòu)是數(shù)據(jù)的輸入和輸出語句.它們是通過I/O流來實現(xiàn)的.cin和cout是預定義的流對象.cin用來處理標準輸入,即鍵盤輸入;cout用來處理標準輸出.第38頁/共53頁2023/1/17控制結(jié)構(gòu)選擇結(jié)構(gòu)

C++中的選擇結(jié)構(gòu)語句有:if語句,ifelse語句,ifelseif語句和switch語句if語句if語句用于在程序中有條件的執(zhí)行某一語句,語法形式如下:if(condition) expression;其功能是:只有在condition為真時才執(zhí)行expression第39頁/共53頁2023/1/17選擇結(jié)構(gòu)if…else語句if…else語句根據(jù)不同的條件分別執(zhí)行不同的語句,其語法形式如下:if(condition) expression1;else expression2;其功能是:當condition為真時執(zhí)行expression1,當condition為假時執(zhí)行expression2if …elseif語句if …elseif語句用于進行多重判斷,其語法形式如下:第40頁/共53頁2023/1/17循環(huán)結(jié)構(gòu)forfor循環(huán)通常用于處理具有固定長度的數(shù)據(jù)結(jié)構(gòu),例如數(shù)組. for循環(huán)的文法結(jié)構(gòu)如下: for(表達式1;表達式2;表達式3)

語句;其中,”表達式1”可以是一條說明或表達式,它一般用于對一組變量進行初始化或賦值.當然,它也可以是一個空語句.”表達式2”用于控制循環(huán),只有在其為真時,才執(zhí)行循環(huán)體中的”語句”.”表達式3”在每次循環(huán)結(jié)束后執(zhí)行,它一般用于修改在”表達式1”中初始化的變量.循環(huán)體可以是簡單語句也可以是復合語句,如果在第一次計算”表達式2”時得到的值為假,則循環(huán)體中的語句一次也不會執(zhí)行.第41頁/共53頁2023/1/17forint a[10]={0};for(inti=0;i<10;++i){ a[i]=i;}經(jīng)典習題:

有n盆一字排開的花盆,它們的顏色只限于紅色,藍色,白色,請問:如何每盆花盆只訪問一次,便可將相同顏色的花盆放在一起第42頁/共53頁2023/1/17whileWhile語句特別適合于處理字符串和其他指針類型,其語法結(jié)構(gòu)如下: while(condition) { expression; };只要condition為真,就會重復執(zhí)行expression第43頁/共53頁2023/1/17while循環(huán)的使用計算10! intloop=1; intsum=1; while(loop<=10) { sum*=loop; ++loop; }第44頁/共53頁2023/1/17while循環(huán)典型應(yīng)用求兩個數(shù)的最大公約數(shù)(提示:采用輾轉(zhuǎn)相除的方法)參考答案:intgetMaxCommonDivisor(intfirst,intsecond)//求兩個數(shù)的最大公約數(shù),采用輾轉(zhuǎn)相除的方法{ intmin=first<second?first:second; intmax=first>second?first:

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論