




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
12000H2001H2002H2003H2004H33+5=?5運算器(2000H)+(2002H)用一個字節(jié)表示整數(shù),范圍為-128~127;用兩個字節(jié)表示整數(shù),范圍為-32768~32767。一般用四個字節(jié)表示整數(shù)。(舉例)內存CPU內存data外存Program8硬盤軟盤21514131211109876543210有符號數(shù)無符號數(shù)0111111111111111327673276701111111111111103276632766…………0000000000000001110000000000000000001111111111111111-1(補碼)655351111111111111110-265534…………1000000000000001-32767327691000000000000000-32768327683常量與變量常量:在程序運行過程中,其值一直保持不變的量為常量。常量也區(qū)分不同的類型:30,40為整型,30.0,40.0為實型,編輯器只是根據(jù)其表面形式來判斷其類型。變量:在程序運行過程中,其值可以改變的量為變量。變量在程序的執(zhí)行中能夠賦值,發(fā)生變化。變量有一個名字,并在使用之前要說明其類型,一經(jīng)說明,就在內存中占據(jù)與其類型相應的存儲單元。4#include<iostream.h>#definePRICE30//常量,在程序中保持不變voidmain(void){intnum,total;//定義變量,在內存中開辟區(qū)間
num=10;//變量賦值,10為常量
total=num*PRICE;cout<<“total=“<<total;//輸出結果}其中:num=10total=num*PRICE
是賦值號,不同于數(shù)學意義上的等號。numtotal10300PRICE305C++中有多種數(shù)據(jù)類型,均有常量與變量之分,各占不同的內存空間,正確定義與使用數(shù)據(jù)是編寫程序的基本前提。6變量名的命名方法:變量名、數(shù)組名、函數(shù)名…稱為標識符。標識符只能由字母、數(shù)字、下劃線這三種字符組成,且第一個字符必須為字母或下劃線,長度不大于247個字符,大小寫不通用。(關鍵字不能作為標識符)。關鍵字即是VC++的語法要求中使用的字。如intifwhile等。正確的標識符:INT,sum,de12,SUM等。變量必須使用前定義,以分配空間。舉例說明7abc
English2xyx-yifElseb(3)‘def’Chine_bbb3yAbsFloatfloat一般變量都是用匈牙利命名法命名的。intnCount;charchChoice;8整型數(shù)據(jù)整型常量:常量是根據(jù)其表面形式來判定,整型量即是沒有小數(shù)點的整數(shù),范圍:-231~(231-1),有三種形式:1)十進制(默認方式) 431345876542)八進制以0開頭043,056,0113)十六進制以0x開頭0x120xa30x340xdf(舉例說明)9#include<iostream.h>voidmain(void){ intint10,int8,int16;//定義3個整型變量
int10=10; //默認為十進制
int8=010; //八進制
int16=0x10; //十六進制
cout<<"int10="<<int10<<endl; cout<<"int8="<<int8<<endl; cout<<"int16="<<int16<<endl;}輸出int10=10int8=8int16=1610整型變量:分為有符號型與無符號型。有符號型:
short在內存中占兩個字節(jié),范圍為-215~(215-1)
int
在內存中占四個字節(jié),范圍為-231~(231-1)
long在內存中占四個字節(jié),范圍為-2-31~231-1無符號型:最高位不表示符號位unsignedshort在內存中占兩個字節(jié),范圍為0~216-1unsignedint
在內存中占四個字節(jié),范圍為0~232-1unsignedlong在內存中占四個字節(jié),范圍為0~232-1111)整型常量亦有長短之分,常量中無unsigned型,但一個非負的整型常量可以賦給unsigned型的變量。2)若一個常量定義為長整型數(shù),則在其后加l或L進行區(qū)分。如:32l32L564L等,內存為其分配四個字節(jié)存儲。一個數(shù)在內存中為1111111111111111當這個數(shù)為有符號數(shù)時,是-1;為無符號數(shù)時,是232-1內存中的數(shù)是以補碼的形式存放的。(舉例說明)111111111111111112#include<iostream.h>voidmain(){unsignedshorta;shortintb=-1;a=b;cout<<"a="<<a<<endl;}結果:65535不同類型的整型數(shù)據(jù)間的賦值歸根到底就是一條:按存儲單元中的存儲形式直接傳送。
a1111111111111111b1111111111111111unsignedshorta;13實型數(shù)據(jù)實型數(shù)又稱浮點數(shù),有兩種表示方式:1)十進制形式:23.024.53.56789指數(shù)形式:23E1145e-1356789e1e前有數(shù)字,后面必須是整數(shù)。實型變量分單精度float和雙精度double兩種形式:float:占四個字節(jié),提供7~8位有效數(shù)字。double:占八個字節(jié),提供15~16位有效數(shù)字。舉例說明14#include<iostream.h>voidmain(void){ floata,b; doublec,d; a=0.01; b=3.45678e-2; c=3.45678e-2; d=9.7654e-5; cout<<"a="<<a<<'\t'<<"b="<<b<<endl; cout<<"c="<<c<<'\t'<<"d="<<d<<endl;}a=0.01b=0.0345678c=0.0345678d=9.7654e-005Pressanykeytocontinue15如果為實數(shù),則用浮點數(shù)的形式在內存存儲,表示如下:JtJSfS階符階碼數(shù)符尾數(shù)實數(shù)是既有整數(shù)又有小數(shù)的數(shù)。實數(shù)可以表示成:N=S×RJS稱為尾數(shù),尾數(shù)決定有效數(shù)字,即數(shù)字的精度。J表示指數(shù)(階碼)。R是基數(shù),可取2,4,8,16等,對具體機器而言,基數(shù)取好后,就不能再變了。數(shù)有正有負,所以設置數(shù)符;階碼亦有正負,所以設置階符16一般用4個字節(jié)表示一個浮點數(shù),也有用8個字節(jié)表示的。字長一定,尾數(shù)越多,精度越高;階碼越多,范圍越大。當計算機中出現(xiàn)小于機器所能表示的最小數(shù)時,機器只能當零來處理,當出現(xiàn)超過機器所能表示的最大數(shù)時,出現(xiàn)溢出現(xiàn)象,一旦出現(xiàn)溢出,就會停止運算。定點數(shù),浮點數(shù)均會出現(xiàn)溢出現(xiàn)象。17字符型數(shù)據(jù)(char)字符型數(shù)據(jù)實際上是作為整型數(shù)據(jù)在內存中存儲的。計算機是以字符編碼的形式處理字符的,因此,我們在計算機內部是以ASCII碼的形式表示所有字符的。所以7位二進制數(shù)即可表示出一個字符,我們用一個字節(jié)的容量(8位)存儲一個字符。例如:字符A的ASCII碼為0x41或65,在內存中表示為:01000001在程序中表示為:chargrade;//定義一個字符型的變量空間(1個字節(jié))grade=‘A’;//必須用‘’表示,否則易與標識符混同‘’內括起來的字符表示該字符的ASCII碼。18進一步,由于在內存中的形式與整型數(shù)據(jù)相同,所以,可以直接用其整型值給變量賦值。chargrade;grade=65;以下的賦值形式均是等同的。grade='A';grade=65;grade=0x41;grade=0101;#include<iostream.h>voidmain(void){chara,b;a=‘A’;//輸入ASCII碼
b=65;//輸入十進制數(shù)
cout<<"a="<<a<<endl;cout<<"b="<<b<<endl;}輸出:a=Ab=A即在內存中的表示均是相同的0100000119012345670123456789ABCDEFb6b5b4b3b2b1b020非打印字符有些ASCII的字符代表某些操作,不能打印出來,如回車、退格等,可用兩種方式表示這些字符。1)用ASCII碼的形式
charre=13;2)用轉義字符
charre=‘\n’;(p15)21轉義字符含義ASCII代碼\a響鈴7\n換行,將當前位置移到下一行開頭10\t水平制表(跳到下一個tab位置)9\b退格,將當前位置移到前一列8\r回車,將當前位置移到本行開頭13\f換頁,將當前位置移到下頁開頭12\v豎向跳格8\\反斜杠字符“\”92\′單引號(撇號)字符39\"雙引號字符34\0空字符0\ddd1到3位8進制數(shù)所代表的字符
\xhh1到2位16進制數(shù)所代表的字符
22轉義字符雖然包含2個或多個字符,但它只代表一個字符。編譯系統(tǒng)在見到字符“\”時,會接著找它后面的字符,把它處理成一個字符,在內存中只占一個字節(jié)。
23典型轉義字符:‘\n’換行‘\b’退格'\t'下一個輸出區(qū)若輸出中包含這些特定格式,則再加一個\輸出c:\tc\tc
表示為cout<<"c:\\tc\\tc";可以用轉義字符表示任一一個ASCII字符‘\ddd’(八進制)‘\xhh‘(十六進制)'\101''\x41''\x61''\141'24#include<iostream.h>voidmain(void){charc1,c2,c3,c4;charn1,n2;c1='a'; //字符常量
c2=97; //十進制
c3='\x61'; //轉義字符
c4=0141; //八進制
cout<<"c1="<<c1<<'\t'<<"c2="<<c2<<endl;cout<<"c3="<<c3<<'\t'<<"c4="<<c4<<endl;n1=‘\n’;//轉義字符:回車
n2=‘\t’;//轉義字符:下一個輸出區(qū)(Tab)cout<<"使用轉義字符\n";cout<<"c1="<<c1<<n2<<"c2="<<c2<<n1;cout<<"c3="<<c3<<n2<<"c4="<<c4<<n1;}輸出:c1=ac2=ac3=ac4=a使用轉義字符c1=ac2=ac3=ac4=a25字符串常量:用""表示,在內存中順序存放,以'\0'結束。如:"CHINA"0x430x480x490x550x41\0'a'在內存中占一個字節(jié)"a"占兩個字節(jié)aa\0實際上內存是對應字符的ASCII碼形式010000110100100001001001010101010100000100000000CHINA\001100001011000010000000026下列常量的表示在C++中是否合法?若不合法,指出原因;若合法,則指出常量的數(shù)據(jù)類型。3276735u1.25e3.4 3L0.0086e-32‘\87’ “ComputerSystem” “a” ‘a’‘\96\45’-0 +0 .5 -.56727變量1)在程序的執(zhí)行過程中,其值可以改變的量稱為變量。2)變量名必須用標識符來標識。3)變量根據(jù)其取值的不同值域,分為不同類型的變量:整型變量、實型變量、字符型變量、構造型變量、指針型變量等等。284)對于任一變量,編譯程序要為其分配若干個字節(jié)(連續(xù)的)的內存單元,以便保存變量的取值。5)當要改變一個變量的值時,就是把變量的新的取值存放到為該變量所分配的內存單元中;用到一個變量的值時,就是從該內存單元中取出數(shù)據(jù)。6)不管什么類型的變量,通常均是變量的說明在前,使用變量在后。29 inti,j,k; //定義了三個整型變量i,j,k floatx,y,z; //定義了三個實型變量x,y,zcharc1,c2;//說明了二個字符型變量c1,c2doubledv1;//說明了一個雙精度型變量dv1k四個字節(jié)的連續(xù)空間j四個字節(jié)的連續(xù)空間i四個字節(jié)的連續(xù)空間z四個字節(jié)的連續(xù)空間y四個字節(jié)的連續(xù)空間x四個字節(jié)的連續(xù)空間dv1八個字節(jié)的連續(xù)空間c21個字節(jié)的空間c11個字節(jié)的空間開辟空間后,空間中為隨機值30變量賦初值在定義變量的同時給變量賦值,即在內存中開辟出一個空間后馬上給此空間賦值。但這個空間的值并不是固定不變的,在程序的運行中一樣可以改變。
chara='\x64',b='d';inta1=6,a2=98;a=‘A’;b=‘\n’;a1=011;a2=121;
inta=4;//定義語句,在開辟空間后馬上為空間賦值
a=6;//重新為該空間賦值a4631算術運算符和算術表達式一、算術運算符和算術表達式+-*/%用算術運算符連接起來的式子是算術表達式兩個整數(shù)相除結果為整數(shù)
1/2=05/2=2整數(shù)才可求余,余數(shù)的符號與左邊數(shù)的符號相同。3%2=1-3%2=-13%-2=1-3%-2=-18%4=0二、優(yōu)先級與結合性()*/%
+—32三、強制轉換類型(類型名)(表達式)(double)a(int)(x+y)(int)6.2%4=2在強制類型運算后原變量不變,但得到一個所需類型的中間變量。如:intx;floaty=5.8;x=(int)y;x=5y=5.8y的值沒有改變,仍是單精度浮點型33四、自增、自減運算符(難點)++--i6i37
inti,j;i=3;j=++i;i=4j=4++在前,先運算,后賦值
inti,j;i=3;j=i++;i=4j=3++在后,先賦值,后運算j44i3j34i=6;i++;i=i+1i=7++i;i=i+1i=7i=6;i--;i=i-1i=5--i;i=i-1i=5i67341)自增、自減運算符只能用于變量,不可用于常量和表達式因為表達式在內存內沒有具體空間,常量所占的空間不能重新賦值3++(x+y)++(-i)++若i=3,j=2(i++)+j等于5i=4,j=22)結合方式自右至左,優(yōu)先級最高,向右取最大-i++-(i++)i+++j(i++)+j35賦值運算符和賦值表達式bmw=2002"="左邊必須是變量名。若“=”兩邊變量類型不同,在賦值時要進行類型轉換。轉換原則:根據(jù)左邊變量的類型轉換。36少字節(jié)
多字節(jié)1)若多字節(jié)變量為unsigned,則轉換后多余字節(jié)補零。000000001111111111111111unsignedshortinta=-1;unsignedlongb;b=a;ab37111111111111111111111111有符號型,符號擴展shortinta=-1;longb;b=a;2)若多字節(jié)變量為有符號型,則轉換后擴展少字節(jié)的最高位。轉換后,數(shù)據(jù)的符號不變。ab38多字節(jié)
少字節(jié)低位照搬1111111111111111inta=-1;shortintb;b=a;b=-1inta=65535;shortintb;b=a;b=-1ba1111111139賦值表達式a=b=5;b=5a=5"="的結合性為自右至左復合的賦值運算符a+=3a=a+3
x*=y+3x=x*(y+3)x/=x-4x=x/(x-4)x+=yx=x+yi+=j--i=i+(j--)40a=12;a+=a-=a*a;12a
a=a-(a*a)=12-(12*12)=-132
a=a+(-132)=-132-132=-264-132-26441關系運算符和關系表達式關系運算符(比較運算)
<><=>===!===與=a=5;賦值運算a==5;判斷是否相等<><=>=的優(yōu)先級大于==!=3.算術運算符的優(yōu)先級大于關系運算符的優(yōu)先級42關系表達式:用關系運算符將表達式連接起來稱為關系表達式。其值非真即假。在C++語言中,用非0代表真,用0表示假。關系表達式的結果只有兩個,真為1,假為0。a=2b=3c=4a>2a>b+ca==2a=='a'a>'a'b=a==2'a'>'A'b=='a'+1c-a==a00100110143
邏輯運算符
運算符與&&
或||
非!
A B結果0 0 00 1 01 0 01 1 1有0出0,全1出1A,B同時成立&&A B結果0 0 00 1 11 0 11 1 1有1出1,全0出0A或B有一個成立||A結果0 110有0出1,有1出0!44江蘇籍的男生江蘇籍的學生和所有男生非江蘇籍的學生江蘇籍&&男生例如:兩個條件:江蘇籍
男生江蘇籍||男生!江蘇籍注意:1.優(yōu)先級:!&&||
!
算術
關系
邏輯
賦值
逗號453.不可寫為1<x<10應為:1<x&&x<102.作為條件,所有非0值均為真;作為結果,只有0或1兩種。
5>3&&2||8<4-!04.當前面的表達式可以得出整個表達式的結果時,不必再求后面的表達式。a&&b&&c
當a為0時,表達式為0,不必求b與c。a||b||c
當a為1時,表達式為1,不必求b與c。46x=4y=5i=++x==5||++y==6x=5y=5i=1i=x++==5&&y++==6x=5y=5i=0判斷某年是否為閏年1)能被400整除2)能被4整除,不能被100整除(2200年不是)year%400==0year%4==0&&year%100!=0(year%400==0)||(year%4==0&&year%100!=0)47當c=4時,以下的值各多少?(c=1)&&(c=3)&&(c=5)(c==1)||(c==2)||(c==5)(c!=2)&&(c!=4)&&(c>=1)&&(c<=5)10048sizeof()運算符
sizeof()運算符是一個單目運算符,用于計算某一個操作數(shù)類型的字節(jié)數(shù)。其格式為:sizeof(<類型>)sizeof(int)//其值為4sizeof(float)//其值為4sizeof(double)//其值為8sizeof(char)//其值為149逗號運算符和逗號表達式表達式1,表達式2,表達式3,…,表達式n順序求解,結果為最后一個表達式的值,并且優(yōu)先級最低。a=(3+4,5*6,2+1);
a=3a=3*3,a+6,a+7;16(a=3*5,a*4),a+520a=9a=1550下列語句中表達式中i,j的值各為多少1、inti=0,j=0;2、inti=0,j=1;i=3,(j++)+i;i+=j*=3;3、inti=1,j=0;4、inti=1,j=1;j=i=((i=3)*2);i+=j+=2;i=3,j=1i=3,j=3i=6,j=6i=4,j=351各類數(shù)值型數(shù)據(jù)間的混合運算整型、實型、字符型數(shù)據(jù)間可以混合運算。floatdoublelongunsignedintchar10+'a'+1.5-87.65*'b'在進行運算時,不同類型的數(shù)據(jù)要先轉換成同一類型的數(shù)據(jù)再進行運算。轉換規(guī)則如下:52
輸入語句:cin程序在執(zhí)行期間,接收外部信息的操作稱為程序的輸入;而把程序向外部發(fā)送信息的操作稱為程序的輸出。在C++中沒有專門的輸入輸出語句,所有輸入輸出是通過輸入輸出流來實現(xiàn)的。簡單的輸入輸出53要使用C++提供的輸入輸出時,必須在程序的開頭增加一行:#include<iostream.h>即包含輸入輸出流的頭文件“iostream.h”。有關包含文件的作用,在編譯預處理部分(第五章)作詳細介紹。54
輸入十進制整數(shù)和實數(shù)cin>><變量名1>《>><變量名2>......》(舉例說明)inta,b;cin>>a>>b; //程序運行至此停下,等待從鍵盤輸入變量值鍵盤輸入:35<CR>或:3<CR>5<CR>均可。輸入語句自動過濾空白字符。a3鍵盤b5鍵盤55浮點型數(shù)據(jù)同整型數(shù)據(jù)一樣。floatc,d;cin>>c>>d;charch1,ch2;cin>>ch1>>ch2;若輸入:ab<CR> 則ch1為a, ch2為b。若輸入:ab<CR> 則ch1為a, ch2為b。字符型變量過濾空白字符。cin格式過濾空白字符56floata;inti1,i2;charch1,ch2;cin>>i1>>a>>i2>>ch1>>ch2;輸入:345.6781ab<CR>i2:1在缺省的情況下,cin自動跳過輸入的空格,換言之,cin不能將輸入的空格賦給字符型變量,同樣地,回車鍵也是作為輸入字符之間的分隔符,也不能將輸入的回車鍵字符賦給字符型變量。a:5.578i1:34ch1:ach2:b57若要把從鍵盤上輸入的每一個字符,包括空格和回車鍵都作為一個輸入字符賦給字符型變量時,必須使用函數(shù)cin.get()。其格式為:cin.get(<字符型變量>);cin.get()從輸入行中取出一個字符,并將它賦給字符型變量。這個語句一次只能從輸入行中提取一個字符。charc1;cin.get(c1);58charch1,ch2,ch3;cin.get(ch1);cin.get(ch2);cin.get(ch3);輸入:AB<CR>則:ch1:A并且在輸入緩沖區(qū)中保留回車鍵。ch2:空格ch3:B空格的ASCII碼為3200100000ch259輸入十六進制或八進制數(shù)據(jù)在缺省的情況下,系統(tǒng)約定輸入的整型數(shù)是十進制數(shù)據(jù)。當要求按八進制或十六進制輸入數(shù)據(jù)時,在cin中必須指明相應的數(shù)據(jù)類型:hex為十六進制;oct為八進制;dec為十進制。60inti,j,k,l;cin>>hex>>i; //指明輸入為十六進制數(shù)cin>>oct>>j; //指明輸入為八進制數(shù)cin>>k; //輸入仍為八進制數(shù)cin>>dec>>l; //指明輸入為十進制數(shù)當執(zhí)行到語句cin時,若輸入的數(shù)據(jù)為:11111212<CR>結果:i:17j:9k:10l:1261使用非十進制數(shù)輸入時,要注意以下幾點:1、八進制或十六進制數(shù)的輸入,只能適用于整型變量,不適用于字符型變量,實型變量。2、當在cin中指明使用的數(shù)制輸入后,則所指明的數(shù)制一直有效,直到在接著的cin中指明輸入時所使用的另一數(shù)制為止。如上例中,輸入k的值時,仍為八進制。623、輸入數(shù)據(jù)的格式、個數(shù)和類型必須與cin中所列舉的變量類型一一對應。一旦輸入出錯,不僅使當前的輸入數(shù)據(jù)不正確,而且使得后面的提取數(shù)據(jù)也不正確。cin>>a,b;cin>>ab;cin>>ab;inta,b;cin>>a>>b;63輸出數(shù)據(jù) cout與輸入cin對應的輸出是cout輸出流。當要輸出一個表達式的值時,可使用cout來實現(xiàn),其一般格式為:cout<<<表達式>《<<<表達式>......》;其中運算符“<<”稱
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 智能電網(wǎng)立項課題申報書
- 共建公司合同范本
- 減負教學課題研究申報書
- 課題申報書封面對不齊
- 旅游管理課題申報書
- 教改課題申報書文庫
- 護理課題申報書是什么
- 員工合同范本快遞
- 課題申報書文獻參考
- 買賣蘋果雙方合同范本
- 育英學校與社區(qū)及家長聯(lián)系制度
- 《工程勘察資質分級標準和工程設計資質分級標準》
- 枯死松樹清理服務投標方案(完整技術標)
- 駐場人員服務方案
- 《監(jiān)理企業(yè)安全責任清單(2.0版)參考模板》
- 《老年日常生活照料》課件-協(xié)助老年人進食進水
- (高清版)DZT 0130.6-2006 地質礦產實驗室測試質量管理規(guī)范 第6部分:水樣分析
- 消防安全評估消防安全評估方案
- 小區(qū)停車收費方案
- 醫(yī)療行業(yè)的病人隱私保護培訓
- 第1課 精美絕倫的傳統(tǒng)工藝 課件 2023-2024學年贛美版初中美術八年級下冊
評論
0/150
提交評論