




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
VisualC++程序設(shè)計11.1程序設(shè)計程序設(shè)計:指設(shè)計、編制、調(diào)試程序的方法和過程。程序設(shè)計實質(zhì)是對所需解決的問題,設(shè)計好算法和相應的數(shù)據(jù)結(jié)構(gòu),再利用程序設(shè)計語言將設(shè)計好的算法和數(shù)據(jù)結(jié)構(gòu)編寫為程序,再反復進行調(diào)試、修改,一直到正確運行的過程?;疽螅赫_、可讀、可理解、可維護2程序的運行過程源程序需要保存在硬盤中,運行時先要讀入內(nèi)存,為其數(shù)據(jù)和代碼分配相應的內(nèi)存空間,數(shù)據(jù)存放在內(nèi)存數(shù)據(jù)區(qū)中,代碼在內(nèi)存代碼區(qū)中存為一連串的指令,CPU取出一條條的指令執(zhí)行,并將運算的結(jié)果保存到內(nèi)存中。31.1程序設(shè)計語言程序設(shè)計語言:是指人與計算機交流的語言。分類:機器語言(二進制代碼表示的語言,直接執(zhí)行)匯編語言(助記符表示的語言,編譯后執(zhí)行)高級語言(與自然語言較接近的語言,較易學習,需要編譯及連接后執(zhí)行,如C,Java,VisualC++等)4高級程序設(shè)計語言高級程序設(shè)計語言有嚴格的語法規(guī)則,否則不能通過編譯。程序設(shè)計語言的基本成分:數(shù)據(jù)成分:指數(shù)據(jù)描述,如整型、實型、數(shù)組等控制成分:指控制流程,如順序、條件、循環(huán)運算成分:指數(shù)據(jù)運算,如算術(shù)、關(guān)系及邏輯運算傳輸成分:指數(shù)據(jù)的輸入和輸出操作。5程序設(shè)計語言是表達軟件的工具C++是一種高級程序設(shè)計語言,用其編寫的程序必須先編譯成機器語言表示的目標程序,計算機才能運行。使用可視化集成開發(fā)工具VisualC++,來編寫C++源程序,編譯、調(diào)試正確后直接運行。6C++程序的執(zhí)行過程
C++源程序
C++預處理器
預處理后的源程序
C++編譯程序
目標程序
鏈接程序
可執(zhí)行程序
其它目標程序和庫
7C++程序設(shè)計學習內(nèi)容簡介C++程序設(shè)計語言本身的語法知識基本的典型算法(在程序?qū)W習過程中積累)面向?qū)ο蟪绦蛟O(shè)計方面的基本知識8VisualC++字符集與標識符VisualC++字符集:所有組成C++語句的字符集合,嚴格區(qū)分大小寫。關(guān)鍵字:被C++作為程序語句中有特定意義的保留字。如:void、int、char、main標識符:可以用來命名的符號以字母和下劃線開頭的字母、數(shù)字及下劃線的組合。如合法:_a2,b33不合法:3d,dd.d不能用關(guān)鍵字。如合法:Void不合法:void91.下列標識符中,合法的標識符為
。A7AbBmainCa3.b+D_12b310VisualC++程序任一個C++程序都是從main主函數(shù)開始執(zhí)行,一直執(zhí)行到主函數(shù)結(jié)束。在main主函數(shù)中調(diào)用其他自定義的函數(shù)或庫函數(shù)。庫函數(shù):是系統(tǒng)定義的函數(shù),在程序中包含相應的頭文件后,可以直接使用庫函數(shù)。11VisualC++程序舉例1、voidmain(void){}//此函數(shù)體為空/*Theprogramisverysimple.Theseareallexplanation.*/2、#include<iostream.h>//編譯預處理命令voidmain()//函數(shù)頭定義{//函數(shù)體開始cout<<“HelloWorld!”;//程序語句}//函數(shù)體結(jié)束12#include<iostream.h>#include<math.h>voidmain(){cout<<“-4絕對值的平方根為:”<<sqrt(fabs(-4));}運行輸出:-4絕對值的平方根為:213基本的數(shù)據(jù)類型程序中用到的數(shù)據(jù)必須指明數(shù)據(jù)類型可以明確該數(shù)據(jù)所占用的存儲空間可以規(guī)定該數(shù)據(jù)所能執(zhí)行的操作和運算基本數(shù)據(jù)類型(存儲字節(jié)數(shù)決定取值范圍和精度)char(1B)、shortint(2B)、int(4B)、longint(4B)、unsignedintfloat(4B)、double(8B)void14常量常量分為字面常量(值常量)和標識符常量。字面常量分為整型常量、實型常量、字符型常量和字符串常量。整型常量可分別用十進制、八進制(以0開頭0-7),十六進制(以0X(x)開頭0-F)來表示。如:075,0xA8E后綴L表示長整型,后綴U表示無符號15實型常量系統(tǒng)默認為double雙精度類型,只有后面加上f后,才被認為float單精度類型。3.143.14f實型常量可用十進制小數(shù)形式(由數(shù)字和小數(shù)點組成)和指數(shù)形式(也稱科學記數(shù)法,E或e前必須有數(shù)字,其后必須是整數(shù))如:合法:0.13.25-78.0.23e3//e10.e51.0e3.516字符型常量:1.表示為單引號括起的單個字符‘a(chǎn)’。2.用單引號括起的轉(zhuǎn)義序列(以轉(zhuǎn)義符’\’開始,后跟一個字符或一個0-255之間的整型常量(可用八進制\ddd或十六進制\xdd整數(shù))表示。如:’\n’:表示換行;‘\t’:表示水平制表符;‘\’’’,‘\’’,‘\\’,轉(zhuǎn)義為原來的標點符號本身;’\032’,’\101’,’\x41’,’\x22’:表示相應ASCII碼值代表的字符。17字符串常量:用雙引號括起來的若干個字符.“A”,“1234”,“student”‘a(chǎn)’與”a”不同字符串常量存儲方式:字符串常量在計算機中按順序存放字符串中的字符,每個字節(jié)對應存放一個字符的ASCII碼,系統(tǒng)會自動在末尾加上一個字符串結(jié)束符標志\0,其ASCII碼值為0。字符串常量的存儲容量=(字符串中的字符個數(shù)+1)B18標識符常量標識符常量(常量被命名為標識符)使用編譯預處理define#definepi3.1415//預處理命令使用常量說明符constconstfloatpi=3.1415;//程序語句19例:利用符號常量求半徑為5的圓周長#include“iostream.h”#definePI3.14159voidmain(){constintR=5;cout<<“半徑為5的圓周長:”<<2*PI*R<<endl;}//輸出:半徑為5的圓周長:31.415920例:利用符號常量求半徑為5的圓周長#include“iostream.h”#definePI3.14159;voidmain(){constintR=5;cout<<“半徑為5的圓周長:”<<2*PI*R<<endl;}//編譯出錯在輸出行。212.以下選項中不合法的常量是。A.’a’B.068C.“ab\0cd”D.224L3.以下常量表示中不正確的是。A.’\55’B.’55’C.‘\x55’D.0x554.設(shè)有四個:(1)4e0.5(2)’\87’(3)0X54(4)“\\”其中的合法的常量是。A.(1)(2)B.(2)(4)C.(3)(4)D.(1)(3)22變量變量:保存某種類型的值并可以被修改的量。變量的定義:數(shù)據(jù)類型變量名;inta;變量定義同時初始化數(shù)據(jù)類型變量名=初值;intb1=2;intc1(5);//相當于c1=5floatb2,c2;//可同時定義同一類型的多個變量變量必須先定義,再被初始化才能被使用。intd=a1+2;//變量a1未被定義,不能直接使用inta1;intd=a1+2;//語法錯誤a1的值并未確定。
inta1=1;intd=a1+2;//ok23變量的值和變量的地址定義一個變量后,運行時系統(tǒng)會給變量分配相應的內(nèi)存單元塊,保存變量的值。如inta=5;變量的值可以隨時被改變,保存最后一次被修改的值。變量的地址是指分給變量的內(nèi)存單元塊的首字節(jié)地址,變量定義后,變量地址就定了。&a//變量a的地址,&指取變量的地址符變量一般可以通過變量名來訪問變量的值,也可以通過變量的地址來訪問變量的值。24#include<iostream.h>voidmain(){intage=19;cout<<“age的值為”<<age;cout<<“age的地址為”<<&age<<endl;age=20;cout<<“age的值為”<<age;cout<<“age的地址為”<<&age<<endl;}//輸出的地址為十六進制整數(shù),以0x開頭2520age0xa379ef450xa379ef4926#include<iostream.h>voidmain(){floatb(3.0f);//注常量實數(shù)默認為double類型doublec(5.5);cout<<“b的值為”<<b<<“b的地址為”<<&b<<endl;cout<<“c的值為”<<c<<“c的地址為”<<&c<<endl;}
27標準輸入輸出流使用標準輸入輸出流進行輸入輸出,必須包含標準輸入輸出流的頭文件。#include<iostream.h>//文件包含預處理命令標準輸入流cin對應鍵盤輸入。cin>>變量1>>變量2;使用提取運算符>>,用鍵盤輸入值給變量標準輸出流cout對顯示器輸出。cout<<表達式1<<表達式2;使用插入運算符<<,將表達式值在顯示器中輸出28輸入流cin>>變量名1>>變量名2;//只能對變量輸值//從鍵盤輸入數(shù)值給相應數(shù)據(jù)類型的變量。inta;doubleb;cin>>a>>b;//輸入的值之間用空格或回車鍵作為間隔,可輸入:34.5回車cin.get(字符變量名);一次只能對一個字符變量輸值,包括空格或換行字符也作為輸入值。29chara,b;cin.get(a);cin.get(b);輸入:34即:a=3b=chara,b;cin>>a>>b;輸入:34即:a=3b=4注:當程序運行到輸入語句時,程序運行光標會停下閃爍,等待輸入值。一次性輸入所有值后回車,輸入值全部存入緩沖區(qū),再分別取出給相應變量賦值。30P8例1.5#include<iostream.h>voidmain(){ inta;charb;floatc; cin>>a>>b>>c; cout<<a<<""<<b<<""<<c<<endl;}輸入1.23.45.6輸出1.231輸出流coutcout<<表達式1<<表達式2<<表達式3;將各表達式的值按相應格式顯示輸出。cout<<表達式1<<‘\t’<<表達式2<<endl;注1:輸出流的表達式可以是變量、含變量或常量的表達式,分別輸出相應變量的值,或表達式的值。注2:‘\t’:按制表位輸出?!甛n’或endl:指換行輸出。32流對象的成員函數(shù)控制輸出格式系統(tǒng)默認輸出小數(shù)形式,是六位有效數(shù)字,最后一位有效數(shù)字由其后面位四舍五入得到。系統(tǒng)對小數(shù)位為0的,只輸出整數(shù)位。33#include<iostream.h>voidmain(){ doublea=0.444444778888; cout<<a<<endl;}//輸出0.44444534#include<iostream.h>voidmain(){ doublea=21.444444778888; cout<<a<<endl;}//輸出:21.444435#include<iostream.h>voidmain(){ doublea=21.0000; cout<<a<<endl;}//輸出:2136流對象的成員函數(shù)控制輸出格式cout.setf(ios:fixed)//設(shè)置小數(shù)形式輸出固定位數(shù)格式,默認6位小數(shù)位數(shù)cout<<setw(數(shù)值1)<<表達式1<<setw(數(shù)值2)<<表達式2<<‘\n’;setw(數(shù)值):設(shè)置的數(shù)值寬度只對其后的一個輸出項起作用,使用此函數(shù)必須包含#include<iomanip.h>頭文件。自行閱讀例1.7和例1.837對整數(shù)設(shè)置不同進制形式輸入和輸出輸入輸出默認進制為十進制,串上oct表示后面的相應數(shù)據(jù)項改為八進制,串上hex表示改為十六進制,串上dec表示改回十進制。輸入與輸出是分開設(shè)置的,無論輸入輸出設(shè)置了一直會保持這種進制到下一次改變。38#include<iostream.h>voidmain(){inta,b,c;cin>>a>>hex>>b>>c; cout<<a<<""<<b<<""<<hex<<c<<endl; cout<<a<<""<<oct<<b<<""<<c<<endl;}輸入:11121A輸出:11181ab2232391.8指針變量指針:變量的地址指針變量:存儲其他變量地址(指針)的變量.指針變量的定義:數(shù)據(jù)類型*指針變量名;int*p;intb=5;p=&b;定義某一數(shù)據(jù)類型的指針變量可以存儲這種數(shù)據(jù)類型的任一變量的地址。指針變量定義同時初始化inta=3,c=6;int*p1=&a;p1=&c;40指針變量所指向的變量變量一般直接通過變量名來訪問,變量也可以通過指針變量來訪問,如果指針變量保存了某個變量的地址,即表示指針變量指向了這個變量,則可通過指針變量來訪問其所指向的變量。利用取內(nèi)容運算符*指針變量名,來表示指針變量所指向的變量。inta=5;int*p=&a;*p=9;cout<<*p<<‘\t’<<a<<endl;a:9p0x23458841改錯inta=3;int*p1;*p1=&a;inta=3;int*p1=&a;p1=8;inta=3;int*p1;*p1=6;42指針變量值和指針變量地址指針變量值表示這個指針變量所保存的那個變量的地址。指針變量地址表示這個指針變量本身被分配的內(nèi)存單元地址。指針變量所指向的變量的值即表示指針變量所指向的內(nèi)存單元的值。
inta=50;int*p=&a;cout<<p<<‘\t’<<&p<<‘\t’<<*p<<‘\n’;43改錯:
#include<iostream.h>voidmain(){inta,b,c,d;cin>>a>>b>>d;c=a*a+b*b+d*d;cout<<“c=”<<‘\t’<<c<<endl;}44編程:
#include<iostream.h>voidmain(){inta,b,c,d;cin>>a>>b>>d;c=a*a+b*b+d*d;cout<<“area=”<<c<<endl;}45編程:
#includ<iostream.h>voidmain(){inta,b,d;cin>>a>>b>>d;cout<<“area=”<<a*a+b*b+d*d<<end;}461.9引用類型變量引用類型變量:可作為變量的一個別名。定義:數(shù)據(jù)類型&引用變量名=已定義的變量;引用變量被賦值為某一已定義的變量,此時引用變量名與本身的變量名是同一變量的兩個名字。intx=5;int&m=x;//int&m=&x;錯
cout<<x<<‘\t’<<m<<endl;//55m=10;cout<<x<<‘\t’<<m<<endl;//101047枚舉類型是指在某一特定范圍內(nèi)取值的數(shù)據(jù)類型。枚舉類型的定義:
enum枚舉類型名{枚舉常量1,枚舉常量2,枚舉常量3,…,枚舉常量n};如enumweekdays{Sun,Mon,Tue,Wed,Thu,Fri,Sat};枚舉類型注:(1)每個枚舉常量對應一個整型值,默認從0開始遞增??梢詾槊杜e常量確定一個整型值,其后的枚舉常量從這個確定值開始遞增。如:enumweekdays{Sun=4,Mon=1,Tue,Wed,Thu,Fri,Sat};48定義枚舉類型變量先定義枚舉類型,再定義變量
enumcolor{red,yellow,blue,green};colora=red,b;定義枚舉類型,同時定義變量。enumcolor{red,yellow,blue,green}a,b;不指明枚舉類型名,直接定義變量。enum{red,yellow,blue,green}a,b;49枚舉類型變量的使用枚舉類型變量可以用枚舉量表中的枚舉常量賦值,相同枚舉類型變量之間也可以賦值。枚舉類型變量不能從鍵盤直接輸入值,但可以輸出枚舉類型變量,輸出的是其對應的整數(shù)值。enumcolor{red,yellow,blue,green};colora=red;colorb;b=a;a=blue;cout<<a<<‘\t’<<b<<endl;//輸出:20501.下列程序的輸出結(jié)果是
。#include<iostream.h>enumweekdays{Sun,Mon=2,Tue,Wed=Tue+5,Thu,Fri};voidmain(){ weekdaysa=Sun,c=Fri,d=a; cout<<a<<','<<c<<‘,’<<d<<endl;}//輸出0,10,051自增++、自減--運算后置自增變量++,先取變量參與運算,再將變量的值加1。前置自增++變量,先將變量的值加1,再將變量參與運算。inti=5,j;j=i++;//j=5i=6inti=5,j;j=++i;//i=6j=6inti=5,j;j=i--;//j=5i=4inti=5,j;j=--i;//j=4i=452算術(shù)運算符-、+、*、/、%,其中%為模運算,即求余運算1.當兩個整數(shù)作‘/’運算時,作整除運算。有實數(shù)參與的‘/’運算為一般的除法運算。3/4=03.0/4=0.752.運算‘%’兩側(cè)必須都是整型操作數(shù)。若不是整型數(shù)必須將操作數(shù)強制轉(zhuǎn)換成整型再進行求余運算,否則出現(xiàn)編譯錯誤。3.作‘%’運算時,若操作數(shù)中有負值,求余的原則為:先取絕對值求余數(shù),余數(shù)取與被除數(shù)相同的符號。-10%3=-110%-3=153關(guān)系運算符(6個,<、<=、>、>=、==、!=,運算結(jié)果:1=真;0=假)1.當關(guān)系表達式成立時,關(guān)系表達式的結(jié)果為1,否則為0。例:有a=4,b=3,c=2,求表達式a>b>c的值?解:a>b>c的值相當于(a>b)>c,而a>b的值為1,即再求1>c,最后表達式的值為0。2.不要混淆賦值運算符“=”和比較運算符“==”。例:inta=0,b=1,c=2;cout<<a==b<<endl;a=b;cout<<a==b<<endl;54邏輯運算優(yōu)先級別為:
!&&||高低注:在邏輯運算過程中不等于零即認為是真,可參與邏輯運算,但運算最后的結(jié)果真為1,假為0.
!非零值=0!0=1非零值&&非零值=1非零值&&0=00||0=0非零值||0=10||非零值=1例:!5(2<1)||3(!0)&&(3>2)55賦值運算符變量=表達式;賦值語句(變量=表達式)賦值表達式1變量被賦值。2表達式本身的值,為被賦的值。如:(a=3)//區(qū)別于(a==3)inta=b=c=5;//b,c沒有定義b=a+3=c;
//錯a+3不是變量,不能被賦值56
常用復合賦值運算符二元算術(shù)運算符與賦值運算符組合成的運算符稱為復合賦值運算符。+=(加等)、-=、*=、/=、%=(求余等)、&=(與等)、^=(異或等)、|=(或等)。復合賦值運算:變量與賦值運算符右邊的表達式參與運算后的值,重新賦給這個變量。如:a+=b+=a*=b+5從右到左,a*=b+5相當于a=a*(b+5)b=b+aa=a+b57逗號表達式用逗號運算符連接起來的表達式。
一般形式:<表達式1>,<表達式2>,…,<表達式n>
即按從左到右的順序依次求出各表達式的值,并把最后一個表達式的值作為整個逗號表達式的值。例:設(shè)b=2,c=3,d=4,則下列逗號表達式如:(a=5+5,b=b*b+c,d=d*a+b)的值為47y=x=(a=3,6*3)結(jié)果:x=y=18,a=3(y=x=a=3,6*3)結(jié)果:x=y=a=3y=(x=a=3,6*3)結(jié)果:x=a=3,y=1858sizeof()運算符sizeof(數(shù)據(jù)類型):數(shù)據(jù)類型占用的字節(jié)數(shù)sizeof(表達式):表達式的值所占用的字節(jié)數(shù)如:sizeof(double)8sizeof(char)1sizeof(‘a(chǎn)’)1sizeof(‘a(chǎn)’+’b’)4sizeof(‘a(chǎn)’+5)459intk=11;k=1/3*k++;后k的值為多少?602.intx,y;floata,b;數(shù)學式2x/(3ab),在C++程序中對應的正確表達式是
。A.2/3*x/a/bB.2*x/3/a/bC.2*x/3*a*bD.2/a/b/3*x61賦值運算符與賦值表達式逗號運算符與逗號表達式邏輯運算符與邏輯表達式算術(shù)運算符與算術(shù)表達式優(yōu)先級別低高關(guān)系運算符與關(guān)系表達式單目運算62邏輯表達式優(yōu)化的副作用
即指在求邏輯表達式時,從左至右,若表達式某部分值可直接確定整個邏輯表達式的值,則其后的運算不再進行。已知inta=0,b=2,c=3,d;求d=a&&b++&&++c的值。因為a為0,則不必進行b++、++c的運算,就可得整個邏輯表達式的值為0,變量b,c都沒有作自加運算,賦值運算最后進行,d=0。
另請自行閱讀P17的例1.12636.設(shè)有說明”inta,b,c;a=b=c=5;執(zhí)行語句“b+=++a>b||++c>b;”,則a,b,c的值分別是。A.6,7,6B.6,5,5C.6,6,5D.6,1,67.設(shè)有說明“inta=3,b=5,m”,則表達式“m=a/b&&a++”的值為。A.0B.1C.falseD.true64
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 商場空調(diào)維護合同范本
- 魚池出租轉(zhuǎn)讓合同范本
- 機械購銷合同范本清單
- 路燈維修驗收合同范本
- 購房委托還款合同范本
- 旅游巴士租車合同范本
- 廚房移門合同范本
- 門店供銷合同范本
- 2025工程設(shè)備租賃合同律師版
- 2025企業(yè)外匯設(shè)備貸款合同范本
- FZ∕T 73037-2019 針織運動襪行業(yè)標準
- 新疆維吾爾自治區(qū)和田地區(qū)墨玉縣2023-2024學年七年級下學期5月期中道德與法治試題
- 工廠化循環(huán)水產(chǎn)養(yǎng)殖項目投資計劃書
- 全民國家安全教育日培訓課件模板(可編輯)
- 精神疾病患者自殺風險評估與預防措施
- 山西省太原市2023-2024學年七年級下學期期中數(shù)學試題
- XF-T 3004-2020 汽車加油加氣站消防安全管理
- 江蘇省鹽城市建湖縣2023-2024學年七年級下學期期中語文試題
- 甘肅省農(nóng)墾集團有限責任公司人才招聘考試試題及答案
- 濕式電除塵施工方案(完整常用版)
- 項目管理的角色與職責
評論
0/150
提交評論