C簡單程序相關(guān)設計_第1頁
C簡單程序相關(guān)設計_第2頁
C簡單程序相關(guān)設計_第3頁
C簡單程序相關(guān)設計_第4頁
C簡單程序相關(guān)設計_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

C簡單程序相關(guān)設計第2章C++簡單程序設計2.1C++語言概述2.2基本數(shù)據(jù)類型和表達式2.3數(shù)據(jù)的輸入與輸出2.4算法的基本控制結(jié)構(gòu)2.5自定義數(shù)據(jù)類型2.1C++語言概述C++的產(chǎn)生20世紀60年代英國劍橋大學學者開發(fā)BCPL1970年美國Bell實驗室提出B語言1972年Bell實驗室對B語言改進推出C語言1980年AT&T貝爾實驗室的BjarneStroustrup博士創(chuàng)建C++語言C++的歷史幾十年來,許多編程語言如流星般閃過,而C++一直占據(jù)著世界頂級編程語言的寶座。針對PC機、智能手機和MP3等嵌入式設備,以及其它眾多計算機環(huán)境,C++語言始終是不錯的選擇。C++的標準不斷更新目前使用的是ANSI/ISOC++(ISO/IEC1482:2003),2003年發(fā)布下一個標準為C++11,2011年10月發(fā)布42.1.3C++程序?qū)嵗?*第一個C++程序CPP版本:1.0*/#include<iostream>//文件包含命令usingnamespacestd;intmain() //主函數(shù)頭{ //主函數(shù)體cout<<"Hello!"<<endl;//輸出數(shù)據(jù) cout<<"WelcometoC++!"<<endl;return0;}26個小寫字母

abcdefghijklmnopqrstuvwxyz26個大寫字母

ABCDEFGHIJKLMNOPQRSTUVWXYZ10個數(shù)字字符

0123456789

特殊符號

!#%^&*_+=-~<>/\‘“;.,:?()[]{}

2.1.4字符集2.1.5詞法記號關(guān)鍵字(保留字):已被C++語言本身使用,不能作為其它用途使用的單詞,P22標識符:由字母、數(shù)字、下劃線組成且由字母或下劃線開頭的字符串。標識符是區(qū)分大小字母的。標識符的有效長度視不同系統(tǒng)而定。不能使用C++語言的關(guān)鍵字。判斷下列標識符是否合法:Result,List-2,_first2,first_&,2first2.2基本數(shù)據(jù)類型和表達式邏輯類型bool整數(shù)類型浮點類型空類型voidcharshortintlongfloatdoublelongdouble基本數(shù)據(jù)類型用于函數(shù)和指針取值只有true和falsesigned有符號unsigned無符號2.2.2常量在程序運行期間其值不發(fā)生變化的數(shù)據(jù)。1、整型常量十進制整數(shù):如123,0,-456八進制整數(shù)(以0開頭):如012十六進制整數(shù)(以0X開頭):如0x12長整型用L作后綴;無符號型用U作后綴;無符號長整型用UL或LU均可。練習題:在C++語言中,029是一個[]。A)八進制數(shù);B)十進制數(shù);C)十六進制數(shù);D)非法數(shù)

一般表示無符號數(shù)據(jù)2、實型常量只有十進制表示一般形式實數(shù)整數(shù)和小數(shù)部分可省其一,但不能都省如1.3,.13,13.,0.0指數(shù)形式實數(shù)由尾數(shù)、指數(shù)和字母e組成E前后都要有數(shù)字,且E后的指數(shù)必須為整數(shù)判斷:e2,2.1e-5,,-5.1e2,e浮點型常量缺省為double,加后綴f表示float,加l表示longdouble3、字符常量由兩個單引號括起的一個字符,如'A'、'5'、'%'具有數(shù)值,值為字符的ASCII碼轉(zhuǎn)義序列:以\開頭‘\字母’:用于輸出格式控制或特殊字符,P26,如‘\n’、'\t'、'\\'、'\''‘\ddd’:用三位八進制數(shù)表示一個字符常量,如'\101'‘\xhh’:兩位十六進制數(shù)表示一個字符常量,如'\x41'練習題:"abc\n"在內(nèi)存中占幾個字節(jié)?"abc\\n"呢?字符串"\\\"ABC\"\\"在內(nèi)存中占幾個字節(jié)?4、字符串常量由雙引號括起的字符序列(不一定是C++字符集中的字符,只要C++編譯器支持即可)字符串中每一字符用一個字節(jié)存放,并且系統(tǒng)自動在字符串尾加'\0'字符串的處理由字符數(shù)組來實現(xiàn)練習題:'x'和"x"有什么不同?2.2.3變量變量聲明的一般形式:<存儲類型><數(shù)據(jù)類型><變量名>;

doublex,y,z;inta=2,b=-6,c(3);名字類型值三要素數(shù)據(jù)值地址值2.2.4符號常量將一個變量聲明為一個常量

const<數(shù)據(jù)類型><變量名稱>=<表達式>;

const<數(shù)據(jù)類型><變量名稱>(<表達式>);

<數(shù)據(jù)類型>const<變量名稱>=<表達式>;

<數(shù)據(jù)類型>const<變量名稱>(<表達式>);

constintMAX=10;intconstPI(3.14);2.2.5運算符與表達式1、算術(shù)運算符-(取負)、+(取正):右結(jié)合

+、-、*、/、%(不能用于浮點型):左結(jié)合++、--:++a;--a;a++;a--:右結(jié)合對變量本身來說運算結(jié)果一樣前置:變量先+1或-1,再參加表達式的運算后置:變量先參加運算,然后再+1或-1練習題:

a=7*2+-3%5-4/3;intx=11,則x++*1/3的值為(),x為()intx=11,則++x*1/3的值為(),x為()2.賦值運算符賦值運算符:=(右結(jié)合)注:表達式和常變量不能作為左值當=兩邊數(shù)據(jù)類型不一致時,編譯器會在賦值前將右操作數(shù)自動轉(zhuǎn)換為同左操作數(shù)相同的類型。賦值復合運算符:+=、-=、*=、/=、%=、<<=、>>=、&=、^=、|=變量op=表達式<=>變量=變量op表達式a+=3→a=a+3、x*=y+8→x=x*(y+8)

思考:

inta=12;a+=a-=a*a;作為一個整體參與運算3.逗號運算符d1,d2,d3,d4最后一個表達式的值就是逗號表達式的值floatx(10.5f),y(1.8f),z(0);z=(x+=5,y+=x+0.2);z=(z=8,x=5,y=3);inta=1,b=2,c;c=(a++,a+=b,a+b);4.邏輯運算符關(guān)系運算符:>、<、>=、<=、==、!=邏輯真為1(true),邏輯假為0(false)練習:

charx('m'),y('n');intn;n=(x<y);n=(x==(y-1));n=('y'!='Y')+(5>3)+((y-x)==1);邏輯運算符單目:!雙目:&&、||操作數(shù):非0為真,0為假表達式值:真為1,假為0注意:C++規(guī)定:在一個邏輯表達式中,當計算出一個子表達式的值后便可確定整個邏輯表達式的值時,后面的子表達式就不再計算。intx,y,z;x=y=z=1;--x&&++y&&++z;++x&&++y&&++z;intx=5,y=18;--x>=5&&++y>18;x++>=0||--y>100;5.條件運算符d1?d2:d3(右結(jié)合)

intx=2,y=0,z;z=((y=0)?++x:y++);z=(y!=5?x+1:y++);z=((y=5)?x+1:++y);思考:若有(exp)?a++:b--,則能完全與(exp)等價的是[]。

A)(exp==0) B)(exp!=0)C)(exp==1) D)(exp!=1)6.sizeof運算符sizeof(<類型或變量名>)返回變量或數(shù)據(jù)類型在內(nèi)存中所占的字節(jié)數(shù)

doublez(0);intk;k=sizeof(float); k=-1*sizeof(z); k=sizeof(10.2);7.位運算邏輯位運算符:~(單目)、&、|、^移位運算符:<<、>><<時移掉的位被丟棄,左邊移出的空位補0;>>時移掉的位被丟棄,右邊移出的空位補0或符號位例:inta=0xffffffff;a=a>>2;cout<<a;unsignedcharx=0133,y=0xff;z=x^y;charx=-27,y;y=x<<2;y=x>>3;負數(shù)在計算機內(nèi)部以補碼形式存在8.運算符優(yōu)先級與結(jié)合性元素/成員->單目->雙目->三目->賦值->逗號算術(shù)->移位->關(guān)系->邏輯位->邏輯結(jié)合性大多數(shù)為從左至右,只有三類是從右至左右結(jié)合:單目、三目和賦值9.數(shù)據(jù)類型轉(zhuǎn)換只有數(shù)據(jù)類型相同的數(shù)據(jù)才能進行運算顯式:(數(shù)據(jù)類型名稱)<表達式>;

inta=2,b(0);floatc=4.8;b=(int)c+a;隱式:char->short->int->long->float->doubleinta(2);floatb=12.5;doublec=1.2e3;15+a*b-c/a2.3數(shù)據(jù)的輸入與輸出#include<iostream>輸出:

cout<<<表達式1><<<表達式2><<…inta=3,b=4;cout<<"a="<<a<<",b="<<b<<endl;輸入:

cin>><變量1>>><變量2>>>…inta,b;cin>>a>>b;2.3.3簡單的I/O格式控制dec:設置數(shù)制為十進制

hex:設置數(shù)制為十六進制

cout<<hex<<17<<endl;oct:設置數(shù)制為八進制#include<iomanip>setw(int):設置輸出場寬

cout<<setw(4)<<17<<endl;2.4算法的基本控制結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)其他控制語句2.4.1用if語句實現(xiàn)選擇結(jié)構(gòu)提出問題:根據(jù)學生分數(shù)判斷是否及格?根據(jù)學生分數(shù)如何進行分級?分支語句條件可以是邏輯、關(guān)系,甚至是算術(shù)表達式。

if(3)cout<<"ok!\n";分號是分支語句中內(nèi)嵌語句所要求的。if(<表達式1>) <語句1>;elseif(<表達式2>) <語句2>;......elseif(<表達式n>) <語句n>;else <語句n+1>;練習:判斷某一年是否閏年#include<iostream>usingnamespacestd;intmain(){intyear;cout<<"Pleaseinputyear:";cin>>year;if((year%4==0&&year%100!=0)||(year%400==0))cout<<year<<"isaleapyear.\n";elsecout<<year<<"isnotaleapyear.\n";return0;}if-else的配對關(guān)系else與上方最近的未配對的if相配對判斷三個程序哪個正確?y=–1(x<0)0(x=0)1(x>0)if(x<0)y=-1;elseif(x==0)y=0;elsey=1;if(x>=0)if(x>0)y=1;elsey=0;elsey=-1;y=0;if(x>=0)if(x>0)y=1;elsey=-1;if(P1)

if(P2) 語句1;

else

語句2;switch語句switch(<整型表達式>){case<整常型表達式1>: <語句序列1>case<整常型表達式2>: <語句序列2>

......case<整常型表達式n>: <語句序列n>default: <語句序列n+1>}以case中的常量表達式值為入口標號,由此開始順序執(zhí)行,直到遇到break或switch的}退出switch語句。switch例題輸入月份,輸出是哪個季節(jié)?要求用switch語句完成春:3、4、5夏:6、7、8秋:9、10、11冬:12、1、22.4.3循環(huán)結(jié)構(gòu)提問:從鍵盤上輸入10個整數(shù)并求和,怎么編程?回答:在程序中用cin,寫10個提取符。提問:從鍵盤上輸入500個整數(shù)并求和,怎么編程?回答:這個,嗯……???不會讓我寫500個......循環(huán):反復執(zhí)行同一段程序,直到滿足一定的條件后才停止執(zhí)行該段程序。?1、while語句while(<條件>)

<語句>;語句部分可以是復合語句;先判斷,后執(zhí)行;應有使循環(huán)趨于結(jié)束的語句,否則出現(xiàn)死循環(huán)。while的循環(huán)體可以是空語句。例:通過鍵盤輸入一個正整數(shù)n,然后求出n!。while循環(huán)例題思考:程序作下列改動1、r不賦初值?2、while后加;3、while后復合語句不加{}#include<iostream>usingnamespacestd;intmain(){

intn,r(1);cin>>n;while(n>=1){r*=n;n--;}cout<<r<<endl;return0;}課后思考題:用0.1mm厚的紙對折,問對折多少次后,其厚度超過了地球直徑(12742公里)2、do-while語句do<語句>;while(<條件>);先執(zhí)行,后判斷例:用do-while循環(huán)語句實現(xiàn)n!#include<iostream>usingnamespacestd;intmain(){

intn,r(1);cin>>n;

do{r*=n;n--;}while(n>=1);cout<<r<<endl;return0;}do-while循環(huán)語句例題學生在操場上排隊,5人一行余2人,7人一行余3人,3人一行余1人,編程求該校的學生總?cè)藬?shù)(不超過一千人)的所有可能解。intn=1000;do{if(n%5==2&&n%7==3&&n%3==1) cout<<n<<endl;n--;}while(n>=0);3、for語句for(d1;d2;d3) <語句>;d1:循環(huán)變量賦初值;可省但分號不能省。d2:控制循環(huán)結(jié)束的條件;可省,條件永遠為真,無限循環(huán)下去。d3:控制循環(huán)變量的增減,以使循環(huán)條件逐步趨于假??墒?,須在循環(huán)體中為循環(huán)變量增減,確保正常結(jié)束。例:用for循環(huán)語句實現(xiàn)n!求表達式1表達式2非0?語句求表達式3Yfor語句的下一語句N2.4.4循環(huán)結(jié)構(gòu)的嵌套循環(huán)體內(nèi)包含另一個完整的循環(huán)語句。for、while、do-while之間可以相互嵌套。for(;;){…for(;;){ …}}while(){…

溫馨提示

  • 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

提交評論