版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
C++程序設(shè)計基礎(chǔ)2008年春季學(xué)期第2講基本數(shù)據(jù)類型與表達式(上)2本章內(nèi)容
作業(yè)講解常見錯誤基本數(shù)據(jù)類型數(shù)組及其應(yīng)用本講作業(yè)32.2常見錯誤與警告1、變量未定義或定義了卻從未使用2、邏輯表達式錯誤(||與&&)3、IF…ELSE不匹配,或IF(表達式)中少了括號4、字符串與表達式的錯誤,如“y=x-5”是字符串5、cin>>x,y;
cin>>x>>y>>endl;之類的錯誤6、函數(shù)實現(xiàn)的函數(shù)頭處寫分號的錯誤(見上講程序)7、函數(shù)未能按聲明、使用、定義的原則(第四講)重復(fù)上機過程!缺少函數(shù)頭(在函數(shù)實現(xiàn)代碼如main后面加了;就會出現(xiàn))m[0]=1;m[1]=2;m[2]=3;s1="abcd";//error,too!5、cin>>x,y;cin>>x>>y>>endl;之類的錯誤不能與程序中的其他名字如函數(shù)名等同名符號常量名不能放在賦值語句的左邊。另一個是地址值(所占內(nèi)存空間的起始地址)inta[5];則元素為a[0]~a[4]long(signedlong),unsignedlong:4個字節(jié)有兩個值:true和false;for(i=1;i<10;i++) if(a[i]>max)max=a[i];{if(x<y)一維數(shù)組元素的下標表示如下:voidmain()注意:"0"與'0'的不同。用一個與常量相關(guān)的標識符來替代常量出現(xiàn)在程序中,這種相關(guān)的標識符稱為符號常量。無符號:00000000~11111111可表示0到255共256個數(shù)4常見錯誤及改正1、單詞拼寫錯誤void—viodmain---mianiostream--iosteamcout---countendl—end12、輸出<<與輸入>>用錯cin<<"Entertwonumbers:">>x,y;
cout<<"Entertwonumbers:";cin>>x>>y;3、main后少了(),函數(shù)體少了{}或{}不匹配54、;用錯,該有的沒有,不該有的卻有5、中文標點用錯,特別是引號#include<iostream.h>void
main()
{ doublex,y; cout<<"Entertwofloatnumber:"; cin>>x>>y; doublez=x+y; cout<<"x+y="<<z<<endl;}不是“”!應(yīng)該是;此處無;
errorC2018:unknowncharacter"0xa3"肯定是中文符號錯常見錯誤及改正66、大小寫錯誤void–Void前面是x,后面完成X7、函數(shù)后面接(),不是{}也不是[]unknowncharacter“0xa3”:不可知字符(中文符號)syntaxerror:missing";"beforetype"double""x":undeclaredidentifier:x:是沒有聲明的標識符4、unexpectedtokensfollowingpreprocessordirective-expectedanewline(若在#include行尾有;則有本條錯誤):在預(yù)處理命令后有一個意外的符號8、常見錯誤常見錯誤及改正75、missingfunctionheader(old-styleformallist?)
缺少函數(shù)頭(在函數(shù)實現(xiàn)代碼如main后面加了;就會出現(xiàn))6、subscriptrequiresarrayorpointertype
下標需要數(shù)組或指針類型,max(2,4)誤寫成max[2,4]!7、"max":functiondoesnottake3parameters
函數(shù)不支持3個參數(shù)8、"main":functionshouldreturnavalue;"void"returntypeassumed
main前少了void
常見錯誤及改正89、localvariable"x"usedwithouthavingbeeninitialized
本地變量沒有初始化就使用了10、function"void_cdeclmain(void)"alreadyhasabody
在程序中有兩個main函數(shù)體!不能在同一文件中放兩個程序的代碼,一個程序中只有一個main函數(shù)!解決辦法常見錯誤及改正911、編譯與構(gòu)建時文件名稱不同Debug/aa.exe:fatalerrorLNK1169:oneormoremultiplydefinedsymbolsfound解決辦法:關(guān)閉工作區(qū)-選擇否-重新編譯、構(gòu)建常見錯誤及改正2.3基本數(shù)據(jù)類型基本數(shù)據(jù)類型類型修飾符常用數(shù)據(jù)類型C++語言的基本數(shù)據(jù)類型有如下4種:char(字符型)int(整型)float(單精度浮點型)
double(雙精度浮點型)void(空值型)1)基本數(shù)據(jù)類型如:A,b,z12,989992)類型修飾符C++語言中還有四種類型修飾符:signed(有符號)unsigned(無符號)long(長型)short(短型)是否能為負數(shù)數(shù)的范圍是否更寬無符號:00000000~11111111可表示0到255共256個數(shù)有符號:11111111~01111111可表示-128到+127共256個數(shù)0代表正,1代表負,×11111113)常用數(shù)據(jù)類型允許用修飾符組合構(gòu)成的常用數(shù)據(jù)類型有:char(signedchar),unsignedchar:1個字節(jié)short(signedshort),unsignedshort:2個字節(jié)int(signedint),unsignedint:4個字節(jié)long(signedlong),unsignedlong:4個字節(jié)float:4個字節(jié)(大約6位有效數(shù)字)double:8個字節(jié)(大約12位有效數(shù)字)longdouble:10個字節(jié)(大約15位有效數(shù)字)4)常量和變量常量
是指在程序中不被改變的量變量
指在程序中其值可以被改變的量5)常量常量是指在程序中不被改變的量。常量有各種不同的數(shù)據(jù)類型,這由它的表示方法決定。1、整型常量2、浮點型常量3、字符型常量4、字符串常量5、符號常量1、整型常量有3種表示方式:十進制整數(shù)八進制整數(shù)(以0開頭的整數(shù))十六進制整數(shù)(以0X或0x開頭的整數(shù))如:123,-34,00123(=1*82+2*81+3*80)//等于數(shù)83
0X123//等于數(shù)291
-024,-0X32//不正確123L//長整型數(shù)123LU//無符號長整型數(shù)5)常量有兩種表示:定點數(shù)形式和指數(shù)形式如://定點數(shù)形式//指數(shù)形式要注意E或e的前面要有數(shù)字,且E的后面的指數(shù)必須為整數(shù)。
E2,2.1E3.5,e//不合法實型常數(shù)分為單精度、雙精度和長雙精度3類。如:在C++中,一個實型常數(shù)未說明則表示是double型。2、浮點型常量5)常量是用單引號括起來的一個字符。如'a'、'!'等。轉(zhuǎn)義序列表示方法:以反斜線(\)開頭,后跟字符的ASCII碼值;如'\n'
,它表示一個換行符。轉(zhuǎn)義字符中可將反斜杠同八進制或十六進制數(shù)值結(jié)合使用,以表示相應(yīng)于該數(shù)值的ASCII碼。用八進制數(shù)表示時,所能表示的范圍為'\000'~'\377',即從0~255。用十六進制數(shù)表示時,表示的范圍是'\x00'~'\xff'。3、字符型常量5)常量C++中常用轉(zhuǎn)義序列符5)常量4、布爾常量有兩個值:true和false;在定義數(shù)組時,同時給各元素賦初值,這稱為數(shù)組元素的初始化。&(a[0][0]+2*4+1)minv=min(x,min(y,z)); //計算最小值如變量名something和Something為不同的名字。另一個是地址值(所占內(nèi)存空間的起始地址)用八進制數(shù)表示時,所能表示的范圍為'\000'~'\377',即從0~255。注意:"0"與'0'的不同。inta[5];則元素為a[0]~a[4]字符串常量"a"在內(nèi)存中doublez=x+y;inta[4]={1,2,3,4};例如:inta,b,c;doublex,y,z;表示定義了一個名為B的一維數(shù)組,其中有5個元素,類型都為整型。#include<iostream.分別設(shè)計一個求最大值與最小值的函數(shù),求出最大、最小值及中間值,并輸出;允許用修飾符組合構(gòu)成的常用數(shù)據(jù)類型有:是由一對雙引號括起來的字符序列。如:
"
Howdoyoudo?"
、"
hello"字符常量和字符串常量在存儲方式上是不同的。字符常量只占一個字節(jié)的空間,而字符串常量除字符序列中每個字符占一個字節(jié)外,還要在最后多占一個字節(jié)空間用來保存一個'\0'字符(空字符)稱為字符串結(jié)束標志符號。它是系統(tǒng)自動增加的。如:
"
hello"的長度為6,占6個內(nèi)存單元。注意:
"0"與'0'的不同。5、字符串常量5)常量5)常量由一個字符型變量存放由一維數(shù)組存放字符常量字符串常量用單引號括起用雙引號括起字符串有一個結(jié)束符,該結(jié)束符用'\0'表示字符常量'a'在內(nèi)存中用一個字節(jié)字符串常量"a"在內(nèi)存中占用兩個字節(jié)可進行加、減法運算可進行連接、拷貝運算5、符號常量用一個與常量相關(guān)的標識符來替代常量出現(xiàn)在程序中,這種相關(guān)的標識符稱為符號常量。定義方法須用類型說明符const。如:
constfloatpi=3.14159;定義成符號常量后,程序中對其值只能讀而不能改變,否則出現(xiàn)編譯錯誤。由于其常量值不可改變,所以該常量定義時必須初始化。注:符號常量名不能放在賦值語句的左邊。5)常量地址值名字類型值三要素數(shù)據(jù)值地址值intc;c=5;內(nèi)存5......c地址值1000H變量類型變量名數(shù)據(jù)值可以在程序中隨時定義變量,只要在該變量被使用前定義即可;定義格式:<類型><變量名表>;例如:inta,b,c;doublex,y,z;變量是指在程序中其值可以被改變的量。6)變量<1>變量名C++將大寫和小寫的字母認為是不同的字母。如變量名something和Something為不同的名字。命名變量名的規(guī)則為:不能為關(guān)鍵字遵循標識符的命名規(guī)則不能與程序中的其他名字如函數(shù)名等同名一般講究見名知意一般變量名全用小寫字母。如myBook,theFox。6)變量必須先定義其類型才能使用該變量。如:unsignedmyAge,myWeight;floatmyScore;可用賦值運算符給變量賦值。如:intx(0);unsignedshortwidth;width=5;也可在定義時直接給變量賦值。這時所賦的一般是初始值,稱為變量初始化。如:unsignedshortwidth=5;<2>變量類型6)變量如:inta;a=300;注意有兩個值的概念:一個是數(shù)據(jù)值(存放在內(nèi)存空間中的數(shù)據(jù))另一個是地址值(所占內(nèi)存空間的起始地址)<3>變量值內(nèi)容起始地址空間大小由類型決定與變量名A關(guān)聯(lián)對應(yīng)變量值100110051009100d3006)變量2.4數(shù)組數(shù)組的定義數(shù)組的賦值字符數(shù)組數(shù)組的定義數(shù)組是一種用一個名字來標識一組有序且類型相同的數(shù)據(jù)組成的派生數(shù)據(jù)類型,它占有一片連續(xù)的內(nèi)存空間。一維數(shù)組的說明形式為:類型說明符數(shù)組名[常量表達式];起始地址內(nèi)容B100110051009100d1011對應(yīng)元素值與數(shù)組名關(guān)聯(lián)如:
intB[5];表示定義了一個名為B的一維數(shù)組,其中有5個元素,類型都為整型。定義時方括號內(nèi)必須為常量形式,不能為變量。如:intsize=50;voidmain(){intarray[size];//error…}應(yīng)為:constintsize=50;數(shù)組的定義數(shù)組的賦值1、數(shù)組元素的表示數(shù)組的賦值是給數(shù)組的各個元素賦值。數(shù)組的元素可以被賦值也可被賦初值。一維數(shù)組元素的下標表示如下:<數(shù)組名>[<下標表達式>]
如:
inta[5];則元素為a[0]~a[4]注意:a[5]不屬于該數(shù)組的空間范圍。又如:
intb[3][4];則元素為b[0][0]~b[2][3]。12345a[0]a[1]a[2]a[3]a[4]2、數(shù)組元素的賦初值在定義數(shù)組時,同時給各元素賦初值,這稱為數(shù)組元素的初始化。規(guī)定:數(shù)組元素的個數(shù)不能少于初始值的個數(shù)。如:
inta[4]={1,2,3,4};inta[4]={2,3};//默認值為0inta[4]={1,2,3,4,5};//errorintb[2][3]={{1,2,3},{4,5,6}};intb[2][3]={1,2,3,4,5};intb[2][3]={{1,3},{2,4}};數(shù)組的賦值3、數(shù)組元素的賦值即用賦值表達式給每個數(shù)組元素賦值。如:
intm[3];m[0]=1;m[1]=2;m[2]=3;注意:m[3]=4;
//error也可用循環(huán)語句實現(xiàn):如:
inta[5];for(inti=0;i<5;i++)a[i]=i*2+1;12345a[0]a[1]a[2]a[3]a[4]13579數(shù)組的賦值例如:計算由鍵盤輸入的五個人的平均年齡#include<iostream.h>voidmain(){
intage[5];//數(shù)組聲明intsum=0;for(inti=0;i<5;i++)
{cin>>age[i];//給數(shù)組賦值sum+=age[i];//累加數(shù)組元素之和cout<<"Enteranotherage:";
}cout<<"theaverageis:"<<sum/5.0<<endl;
}數(shù)組的應(yīng)用舉例字符數(shù)組字符數(shù)組是指數(shù)組類型為char的一種數(shù)組。如:
chars1[4]={'a','b','c','d'};chars2[5]={'a','b','c','d','\0'};chars2[5]="abcd";chars3[5]="abcde";//errorchars3[]="abcde";
//元素個數(shù)由初始值的個數(shù)決定charss[2][3]={{'a','b','\0''},{'c','d','\0'}};charss[2][3]={"ab","cd"};ss[0,0]ss[0,1]ss[0,2]ss[1,0]ss[1,1]ss[1,2]ab\0cd\0注意:
chars1[5];s1[5]="abcd";//error
s1="abcd";//error,too!
初始化時允許直接用字符串常量賦值,而在一般賦值時嚴禁直接對數(shù)組名操作,而只能對其中的元素逐個操作(因為數(shù)組名是一個指針常量!)。如:staticinta[]={1,2,4,8,16};for(inti=0;i<5;i++)
cout<<a[i]<<"";cout<<endl;
結(jié)果為:124816注意字符數(shù)組cout<<"最大值"<<"中間值"<<"最小值"<<endl;a[i]=rand()/300;//rand()值的范圍是0-32768八進制整數(shù)(以0開頭的整數(shù))intsize=50;#include<iostream.#include<a[4]={1,2,3,4,5};//errorfor(i=0;i<10;i++)字符常量只占一個字節(jié)的空間,而字符串常量除字符序列中每個字符占一個字節(jié)外,還要在最后多占一個字節(jié)空間用來保存一個'\0'字符(空字符)稱為字符串結(jié)束標志符號。&(a[0][0]+2*4+1)m[0]=1;m[1]=2;m[2]=3;cin>>x>>y;cout<<"Enteranotherage:";#include"iostream.h"voidmain(){inta[12];for(inti=0;i<12;i++)
{ a[i]=i+1;//元素賦值 if(i%4==0)cout<<endl;cout<<a[i]<<"\t";
}}123456789101112a[12]pa[0]a[1]a[2]a[9]a[10]a[11]給一維數(shù)組賦值,并按每行4個元素輸出數(shù)組的應(yīng)用舉例2.5枚舉類型枚舉模式和枚舉變量枚舉變量的值枚舉模式和枚舉變量枚舉類型是若干個有名字的整型常量的集合。枚舉類型的定義格式為:
enum<枚舉類型名>{<枚舉常量表>};
如:
enumday{sun,mon,tue,wed,thu,fri,sat};這時,枚舉常量所對應(yīng)的常量值默認為0~6。枚舉變量的定義格式為:enum<枚舉類型名><枚舉變量名表>;如:enumdayd1,d2,d3;也可連在一起寫:
enumday{sun,mon,tue,wed}d1,d2,d3;如:
enumday{sun,mon,tue,wed,thu,fri,sat}d1,d2,d3;enumcolor{red,blue,yellow,black,white}c1,c2,c3;
則有:
d1=sun;d2=sat;c1=red;c2=blue;
但無:
d3=yellow;//集合中無該枚舉常量值
c3=3;//枚舉常量值并不能直接對應(yīng)整型值若輸出某個枚舉變量的值則總是整型數(shù)值,而不是枚舉符。如:cout<<d1<<c2;則輸出:01若要輸出sun和blue,則要通過編程實現(xiàn)。枚舉變量的值隨機生成數(shù)組的10個元素,求它們的最大值及平均值#include<iostream.h>#include<stdlib.h> //srand()及rand()函數(shù)#include<time.h> //包含time()函數(shù)voidmain(){inti,a[10],sum=0,max;srand((unsigned)time(NULL)); //使種子數(shù)隨時間變化,否則每次運行結(jié)果相同//數(shù)組元素用隨機函數(shù)賦值for(i=0;i<10;i++)
數(shù)組的應(yīng)用舉例a[i]=rand()/300;//rand()值的范圍是0-32768//數(shù)組元素累加求和for(i=0;i<10;i++)sum=sum+a[i];//求數(shù)組的最大值(打擂算法)max=a[0];for(i=1;i<10;i++) if(a[i]>max)max=a[i];
//數(shù)組按每行5列輸出for(i=0;i<10;i++)
{ if(i%5==0)cout<<endl; cout<<a[i]<<"\t"; }cout<<"\nmaxofarraya[]is"<<max<<endl;}數(shù)組的應(yīng)用舉例給二維數(shù)組a[3][4]賦值,并按每行4個元素輸出123456789101112a[0][0]a[1][0]a[2][0]a[0][0]a[0][1]a[0][2]a[0][3]a[2][0]a[2][1]a[2][2]a[2][3]123456789101112a[2][3]a[0][0]a[i][j]是一維數(shù)組中的第幾個元素?如a[2][1]:以首元素為基準,前面有2行(2*4個),有1列故有2*4+1=9,其地址為:&(a[0][0]+2*4+1)數(shù)組的應(yīng)用舉例給二維數(shù)組a[3][4]的第0行賦值a[0][0]a[0][1]a[0][2]a[0][3]123456789101112a[2][3]a[0][0]for(inti=0;i<4;i++) a[0][i]=i+1;for(inti=0;i<4;i++) a[1][i]=5+i;for(inti=0;i<4;i++) a[2][i]=9+i;給1行賦值給2行賦值數(shù)組的應(yīng)用舉例給二維數(shù)組a[3][4]的各行賦值a[0][0]a[0][1]a[0][2]a[0][3]for(inti=0;i<3;i++)//外循環(huán),控制行
{
for(intj=0;j<4;j++)
//內(nèi)循環(huán),控制列{a[i][j]=4*i+j+1;cout<<a[i][j]<<"\t";}cout<<endl;}
2
3
45
6
7
89
10
11
12可把a[i][j]改為*(*(a+i)+j)數(shù)組的應(yīng)用舉例2.6本講作業(yè)從鍵盤上輸入三個整數(shù),求出其中的最大與最小值(用條件運算符?:);分別設(shè)計一個求最大值與最小值的函數(shù),求出最大、最小值及中間值,并輸出;用for循環(huán)編程輸出以下圖形:******************************************4、編程求Sum=1!+2!+3!+…+10!之和。*************************voidmain(){ doub
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024清潔服務(wù)承包合同范本
- 2025年粵教滬科版九年級歷史上冊階段測試試卷
- 培訓(xùn)的收獲總結(jié)
- 2025年魯教新版九年級歷史上冊月考試卷含答案
- 農(nóng)業(yè)節(jié)水灌溉設(shè)備采購合同
- 物聯(lián)網(wǎng)技術(shù)在農(nóng)業(yè)領(lǐng)域應(yīng)用協(xié)議
- 化驗室結(jié)果與臨床
- 可編程邏輯控制器(基于S7-200系列)課件 第9章 S7-200系列編程軟件及應(yīng)用
- 《蛋白尿的診治進展》課件
- 2025年粵教版八年級歷史上冊月考試卷
- 血液系統(tǒng)疾病概述(血液科)
- 《護理交接班制度》課件
- 重慶九龍坡區(qū)2022-2023學(xué)年高一物理第一學(xué)期期末質(zhì)量跟蹤監(jiān)視試題含解析
- 食材配送投標服務(wù)方案
- 建筑施工現(xiàn)場農(nóng)民工維權(quán)告示牌
- 醫(yī)療醫(yī)學(xué)醫(yī)生護士工作PPT模板
- 口腔門診規(guī)章制度.-口腔診所12個規(guī)章制度
- 幼兒園班級安全教育活動計劃表
- ppt模板:創(chuàng)意中國風(fēng)古風(fēng)水墨山水通用模板課件
- 紡紗學(xué)-ppt課件
- (高清版)嚴寒和寒冷地區(qū)居住建筑節(jié)能設(shè)計標準JGJ26-2018
評論
0/150
提交評論