




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1第1章C++程序設計基礎2為什么要學習C++程序設計C++是C的擴充版本。C++對C的擴充是由Bjarne
Stroustrup于1980年在貝爾實驗室提出來的,起初,他把這種語言稱為“帶類的C”,到1983年才改名為C++。2.C++吸收了C和Simula67的精髓,它具有C所無法比擬的優(yōu)越性。31.2簡單的C++程序舉例1#include<iostream>2usingnamespacestd;3intmain() 4{5 inta,b; //定義2個變量6cout<<"輸入變量a和b:"; 7cin>>a>>b; /*從鍵盤輸入a和b的值*/8cout<<"a+b="<<a+b<<endl; 9return0;10}41.3注釋方法1.C++的注釋形式有兩種,一種是“/**/”格式,這是C語言中的注釋風格;2.雙斜線//,在雙斜線之后的部分都會被視為注釋;
不必為程序的每一行都加注釋,也不必為一目了然的代碼加注釋,只要注解適當?shù)拇a,有助于他人理解即可。51.4編程風格程序員使用標識符、空格、Tab鍵、空行、標點符號、代碼縮進排列和注釋等,來安排源代碼的方式?!纠?.2】一個不好的風格程序#include<iostream>usingnamespacestd;
intmain(){inta,b;cout<<"輸入變量a和b:"; cin
>>a>>b; cout<<"a+b="<<a+b<<endl;return0;}61.5.1C++程序中的字符26個小寫英文字母;26個大寫英文字母;10個阿拉伯數(shù)字和其它一些符號,如:+、-、*、/等,其中每個ASCII碼字符占用一個字節(jié)。71.5.2標識符標識符由字母、下劃線和數(shù)字組成,且第一個字符不能為數(shù)字,長度一般不超過32個,文件名只識別前8個字符。標識符大小寫敏感。采用有意義的單詞作標識符,做到見名知意。studentName、StudentName、name_of_studentabc、a1238abc、StudentName、$bill
81.5.3關鍵字又稱保留字,是系統(tǒng)定義的一些特殊標識符,具有特定含義,不允許挪作他用;表1-1:C++常用關鍵字。91.6C++的基本數(shù)據(jù)類型兩大類:基本數(shù)據(jù)類型和導出數(shù)據(jù)類型?;绢愋鸵卜Q預定義的類型或內置數(shù)據(jù)類型,包括char、int、float、double、bool和void等。導出類型:由基本數(shù)據(jù)類型構造出來的類型,包括數(shù)組、指針、引用、結構體、共用體、枚舉和類等。表1-2:C++的基本數(shù)據(jù)類型。類型名稱字節(jié)數(shù)取值范圍bool布爾型1True,false[signed]char有符號字符型1-128~127unsignedchar無符號字符型10~255[signed]short[int]有符號短整型2-32768~32767unsignedshort[int]無符號短整型20~65535[signed]int
或signed有符號整型4-231~(231-1)unsigned[int]無符號整型40~(232-1)[signed]long[int]有符號長整型4-231~(231-1)unsignedlong[int]無符號長整型40~(232-1)float實型4-1038~1038double雙精度實型8-10308~10308longdouble長雙精度實型8-10308~10308111.7.1變量在程序運行中,值可變的量稱為變量。變量的三要素:變量名、內存空間和值。1定義變量:
boolb; chargender,ch;
inta,b; doubledx; floatf; unsignedu;121.7.1變量2變量賦值(1)變量定義后,用賦值語句賦初值。
inta; a=-12+100;(2)在定義變量的同時,初始化。
inta=12;★
變量不賦值,其值是什么?131.7.2文字常量1.在程序運行過程中,值不能被改變的量稱為常量。2.文字常量是指可直接使用的常量。3.文字常量存儲在代碼區(qū),對它的訪問不是通過地址進行的。4.文字常量分為整形、實型、字符型和字符串型常量。141.7.2文字常量1.整型常量(1)十進制整數(shù),如:789,-456(2)八進制整數(shù),如:0789,-026(3)十六進制整數(shù),如:0x789,-0xAB(4)長整型與無符號型整數(shù)長整型整數(shù),如:12L,0234L,-0xABl無符號型整數(shù),如:12U,0234U,0xABu151.7.2文字常量2.實型常量在內存中以浮點形式存放,均為十進制數(shù),無數(shù)制區(qū)分。(1)小數(shù)形式:1.65,1.,.123(2)指數(shù)形式:1.23e5、1.23e-5、1e3161.7.2文字常量3.字符型常量:用單引號括起來的一個字符,如‘a’,‘A’,‘?’。在內存中的ASCII碼值,數(shù)據(jù)類型為char。4.轉義字符:
\b
退格
\n
換行符 \r
回車符
\t Tab鍵 \\
反斜杠字符
\'
單引號
\"
雙引號
\nnn
八進制值,最多三位
\xhh
十六進制值,最多兩位例如:'\n'<=>'\12'<=>'\xa‘
'A'<=>'\101'<=>'\x41'
171.7.2文字常量5.字符串常量"123"、"IamaChinese."、"a"串結束符:'\0‘"a"和'a'不同
思考:"I\’vedone""dog\’stoy""\”Love\""181.7.3符號常量例如:#definePI3.1415926定義符號常量的好處:?191.7.4常變量例如:constdoublepi=3.14159;常變量具有變量的三個要素。必須在定義時賦初值,且在程序的運行中值不可變。編譯器可對常變量進行類型檢查。201.8.1算術運算符和算術表達式五個算術運算符:+、-、*、/、%5/2為2,5.0/2為2.5
8%3為2,而8.0%3非法211.8.3賦值運算符和賦值表達式賦值運算符:<變量>=<表達式>例如: 3.14=pi x+y=100 constintN=100; N=200; b=c=d=a+5 a=5+c=20221.8.3賦值運算符和賦值表達式復合賦值運算符:a=a+3
<=> a+=3y*=(x+8)
<=> y=y*(x+8)思考:若a初值為6,執(zhí)行表達式a+=a-=a*=a后,表達式的值和a的值分別是多少?231.8.4自增、自減運算示例: inti=3,j; j=++i;不同于:j=i++; 3++、++(x+y)非法的
inti=3,j=4,x; x=(i++)+(j++);241.8.5關系運算符和關系表達式 <、<=、>、>= 優(yōu)先級高于
==、!=運算結果為boolean注意:有a=1,b=2,c=3,則表達式a>b>c的值為false,“走火入魔”的寫法。251.8.6邏輯運算符和邏輯表達式三種邏輯運算符:!、&&、||運算結果:boolean1.非0表示true,0表示false。若有a=-1;b=2.0;則表達式a&&b
為true。2.關系0≤x≤10應寫成0<=x&&x<=10。3.表達式求值短路:
intx=1,y=1,z=1,w=0;w=++x||++y&&++z;
注意261.8.7位運算和算術表達式1.按位與(&)
inta=3,b=-2,c=a&b;a00000000
0000
0000
0000
0000
00000011b11111111
1111
1111
1111
1111
11111110c00000000
0000
0000
0000
0000
00000010271.8.7位運算和算術表達式2.按位或(|)
inta=3,b=-2,c=a|b;a00000000
0000
0000
0000
0000
00000011b11111111
1111
1111
1111
1111
11111110c11111111
1111
1111
1111
1111
1111
1111
281.8.7位運算和算術表達式3.按位異或(^)
inta=3,b=-2,c=a^b;a00000000
0000
0000
0000
0000
00000011b11111111
1111
1111
1111
1111
11111110c11111111
1111
1111
1111
1111
11111101思考:inta=5,b=9;a=a^b; b=a^b; a=a^b;291.8.7位運算和算術表達式4.按位取反(~)
inta=18,b=~a;a00000000000000000000000000010010b11111111111111111111111111101101301.8.7位運算和算術表達式5.左移(<<) 例如1:inta=15,x=a<<3; 例如2:shortinta=32767,b=a<<1;6.右移(>>) 例如:shortinta=-2,b=a>>2;無論是左移或右移,原變量a的值311.8.7位運算和算術表達式思考:編程從一個16位的單元中取出某幾位。若value的值為八進制數(shù)0101675,start為5,end為8,那么,value和result的值為:321.8.7位運算和算術表達式 代碼: unsignedintvalue=0101675,result;
intstart=5,end=8; result=value<<(start-1)>>(16-end-start+1));思考:為什么將變量value定義成unsignedint類型,如果改成int型可以嗎?331.8.8逗號運算符與逗號表達式例如逗號表達式:a=3*5,a*4,a+5則表達式的值,變量的值分別是:…思考:下面三個表達式運算結束后,a、x和表達式的值分別是多少? a=3*5,a*4 x=(a=3,6*3) x=a=3,6*3341.8.9sizeof
運算符例如: doublex=100;
sizeof(double)和sizeofx均為8。引入sizeof的目的:351.9語句1.表達式語句 例如: a+b,c*d; x=(a+b,c*d); 2.空語句3.復合語句 { a+b,c*d; x=(a+b,c*d); }361.10.1賦值時的類型轉換例如:inti=3.96;則i=???doubled=23;則d=???charch=360;則賦值過程為:…371.10.1賦值時的類型轉換4. unsignedcharc=-2;
inti; i=c;5. charc=-2;
inti; i=c;思考賦值過程思考賦值過程381.10.2混合運算時的類型轉換總體原則:由低類型向高類型轉換。自己看書!實型常量2.0f或2.0F屬于float類型,而2.0屬于double型。391.10.3強制類型轉換格式:(<type>)<表達式>例如:
inta=9,b=5; doubled1,d2; d1=(double)a/b; d2=(double)(a/b);新標準:static_cast<double>(a/b)401.11.1cout對象和cin對象cout/cin:輸出/入流對象;例如:cout<<"IlikeC++";“<<”流插入操作符“>>”流提取操作符【例1.3】程序舉例#include<iostream>usingnamespacestd;
intmain(){ intlength,width,area;
cout<<"計算矩形的面積\n";
cout<<"輸入矩形的長:";
cin>>length;
cout<<"輸入矩形的寬:";
cin>>width;area=length*width;
cout<<"矩形的面積為:"<<area<<endl; return0;}421.11.1cout對象和cin對象易于出錯的地方:int whole;floatfractional;charletter;cout<<"請輸入一個整數(shù)、一個浮點數(shù)和一個字符:";cin>>whole>>fractional>>letter;cout<<"整數(shù):"<<whole<<"浮點數(shù):“<<fractional<<"字符:"<<letter<<endl;431.11.1cout對象和cin對象字符數(shù)組的初步應用,例: charname[21];
cout<<"Whatisyourname?";
cin>>name;
cout<<"Hi,"<<name<<endl;注意:溢出、串中含空格的問題。441.11.2格式化輸出1.用setw操作符為輸出數(shù)據(jù)項指定寬度(僅對一項有效):
int
intValue=3928;float floatValue=91.5;char cStringValue[]="Confucius&Mo-tse";
cout<<"("<<setw(5)<<intValue<<")"<<endl;
cout<<"("<<setw(8)<<floatValue<<")"<<endl;
cout<<"("<<setw(20)<<cStringValue<<")"<<endl;451.11.2格式化輸出2.用setprecision操作符輸出數(shù)的有效位數(shù)(對多項有效)。floatquotient,number1=132.364f,number2=26.91f;quotient=number1/number2;cout<<quotient<<endl;cout<<setprecision(5)<<quotient<<endl;cout<<setprecision(4)<<quotient<<endl;cout<<setprecision(3)<<quotient<<endl;cout<<setprecision(2)<<quotient<<endl;cout<<setprecision(1)<<quotient<<endl;
461.11.3采用函數(shù)成員實現(xiàn)格式化輸出floatday1,day2,total;
cout<<"輸入第1~2天的銷售量:";
cin>>day1>>day2;total=day1+day2;
cout<<"銷售數(shù)據(jù)\n";
cout.precision(2);
cout.setf(ios::fixed|ios::showpoint);
cout<<"第1天:";cout.width(8);
cout<<day1<<endl;
cout<<"第2天:";cout.width(8);
cout<<day2<<endl;
cout<<"總和:"<<setw(8)<<total<<endl;【例1.4】使用函數(shù)成員實現(xiàn)格式化輸出。471.11.4對函數(shù)成員的初步討論向對象發(fā)送消息:
cout.width(7);
cin.get(ch);函數(shù)成員是函數(shù),是對象的一部分,執(zhí)行對象的一個操作。481.11.5指定輸入域寬方法1: charword[10];
cin>>setw(10)>>word;方法2:
cin.width(10);
cin>>word;注意:域寬只對與其相鄰的下一個輸入有效;491.11.6讀取一行舉例:charsentence[81];
cout<<"請輸入一個句子:";cin.getline(sentence,81);cout<<"你輸入的是:"<<sentence<<endl;501.11.7讀取一個字符方法1:
charch;
cin>>ch;
cout<<"字符是:"<<ch<<endl;方法2:
cin.get(ch);511.11.8讀取字符時易出錯的地方舉例:
cout<<"請輸入一個整數(shù):";
cin>>number;
cout<<"請輸入一個字符:";
cin.get(ch);修改方法:cin.ignore();521.12枚舉類型1.類型定義,例如:enumweekday{Sun,Mon,Tue,Wed,Thu,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工程給排水分包合同
- 有關工業(yè)品買賣合同集錦10篇-買賣合同8篇
- 事業(yè)單位編外工作人員的合同
- 企業(yè)市場營銷策略與技術文檔
- 倉庫合同租賃協(xié)議
- 弱電智能化勞務分包合同
- 建筑安裝工程建筑承包協(xié)議書
- 喂食車租賃合同8篇
- 2025年毫州貨運從業(yè)資格證模擬考試題庫
- 聯(lián)合經營企業(yè)合同8篇
- 2025年02月曲靖市師宗縣事業(yè)單位委托公開遴選工作人員(含遴選)26人筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 2025年寶雞職業(yè)技術學院單招職業(yè)技能測試題庫及完整答案1套
- 2025年車位買賣合同模板電子版
- AI創(chuàng)作指令合集系列之-教案寫作指令
- 急危重癥護理學第十章環(huán)境及理化因素損傷的救護
- 常用臨床檢驗結果解讀
- 2025年臨床醫(yī)師定期考核試題中醫(yī)知識復習題庫及答案(280題)
- 《人工智能基礎》課件-AI的前世今生:她從哪里來
- 2024年沙洲職業(yè)工學院高職單招(英語/數(shù)學/語文)筆試歷年參考題庫含答案解析
- 生物安全手冊(共39頁)
- 破產管理人報酬計算器
評論
0/150
提交評論