c基本數(shù)據(jù)類型及表達(dá)式實(shí)用_第1頁
c基本數(shù)據(jù)類型及表達(dá)式實(shí)用_第2頁
c基本數(shù)據(jù)類型及表達(dá)式實(shí)用_第3頁
c基本數(shù)據(jù)類型及表達(dá)式實(shí)用_第4頁
c基本數(shù)據(jù)類型及表達(dá)式實(shí)用_第5頁
已閱讀5頁,還剩49頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

會計學(xué)1c基本數(shù)據(jù)類型及表達(dá)式實(shí)用第二章數(shù)據(jù)類型及表達(dá)式2.1詞法符號2.2基本數(shù)據(jù)類型2.3常量與變量2.4運(yùn)算符與表達(dá)式第1頁/共54頁§2.1詞法符號 P132.1.1字符集2.1.2標(biāo)識符2.1.3關(guān)鍵字第2頁/共54頁2.1.1字符集

1.字符集:即程序中允許出現(xiàn)的符號(ASCII碼字符集)每種程序設(shè)計語言都使用一些特定的字符來構(gòu)造基本詞法單位,這些字符構(gòu)成的集合就叫做字符集。

26個小寫字母(a~z)、26個大寫字母(A~Z)

10個數(shù)字(0~9)其他符號:+-*/=\|?^%,()<>:;‘{}[].!“_#&(空格)第3頁/共54頁同一個符號在不同位置出現(xiàn)時有不同的含義 例:3*2*p符號單獨(dú)使用與組合使用時含義不同 例:=

==&

&&不論何種語言,在寫字符串時不受字符集限制2.注意以下幾點(diǎn):字符集的字符必須是半角(ASCII碼字符集)第4頁/共54頁命名規(guī)則:以字母或下劃線開頭,后跟字母、數(shù)字、下劃線組成的串長度:標(biāo)識符長度任意(C++編譯器不同)例:name、total、sub_1、a11、_A11合法

2x、sum1、s$1非法標(biāo)識符標(biāo)識符:一個名字,由一串符號構(gòu)成。作為標(biāo)志與識別,常用來標(biāo)識常量、變量、數(shù)據(jù)類型、函數(shù)等2.1.2標(biāo)識符

1.標(biāo)識符第5頁/共54頁注意:在標(biāo)識符里區(qū)分大小寫字母例:nameNameNAME

一個標(biāo)識符不能分行書寫不同標(biāo)識符

習(xí)慣上取有意義的名字,如sum、 aver等。習(xí)慣上變量名、函數(shù)名常用小寫字母第6頁/共54頁又叫保留字(Reservedword),是預(yù)先定義好的,被系統(tǒng)占用的標(biāo)識符,具有特定的含義。注:一般標(biāo)識符不能取關(guān)鍵字2.1.3關(guān)鍵字第7頁/共54頁2.2基本數(shù)據(jù)類型構(gòu)造類型基本類型空類型(void)字符型實(shí)型整型

枚舉型類(class)略基本型(int)短整型(short)長整型(long)單精度型(float)雙精度型(double)長雙精度型(longdouble)指針類型*數(shù)組結(jié)構(gòu)體(union)共用體(struct)無符號型(unsigned)無符號整型(unsignedint)無符號短整型(unsignedshort)無符號長整型(unsignedlong)第8頁/共54頁

基本數(shù)據(jù)類型

不同數(shù)據(jù)類型的存儲位數(shù)不同,數(shù)的范圍不同進(jìn)行數(shù)據(jù)處理時,根據(jù)數(shù)的特點(diǎn)決定數(shù)據(jù)類型數(shù)據(jù)類型字節(jié)范圍整型int4-2147483648~2147483647字符型char1-128~+127實(shí)型單精度float410-38

~10+38(7)雙精度double810-308

~10+308(15)第9頁/共54頁2.3.1常量整型常量實(shí)型常量字符常量字符串常量符號常量常量:是指在程序運(yùn)行過程中,其值不變的量。常量都具有一定的數(shù)據(jù)類型,由其表示方法決定。在程序中不必對常量進(jìn)行任何說明就可以使用。主要有以下幾種:2.3常量與變量#include<iostream.h>voidmain(){ doubler,s,a; cout<<"PleaseinputR="; cin>>r; s=2*r*3.14; a=r*r*3.14; cout<<"s="<<s<<endl; cout<<"area="<<a<<endl;}數(shù)據(jù)是以常量或變量的形式來描述的第10頁/共54頁1.整型常量整型常量:

不帶小數(shù)點(diǎn)整型常量可用十進(jìn)制、八進(jìn)制和十六進(jìn)制的形式表示(1)十進(jìn)制整數(shù)(2)八進(jìn)制整數(shù):以數(shù)字0開頭的,由數(shù)字0~7組成的常數(shù)。例如:0177,033等。而123、039則是不合法的八進(jìn)制常數(shù)。(3)十六進(jìn)制整數(shù):以數(shù)字0x或0X開頭的,由數(shù)字0~9A?F(或a~f)組成的常數(shù)。例如:0x10、0x3e而1a,0xgf、20h則不合法。長整型常量:在十進(jìn)制、八進(jìn)制、十六進(jìn)制表示的整型常量中,若末尾加上字母l或(L)則說明該常數(shù)為長整型常量。如:12l,034l、0x3FL等。第11頁/共54頁小數(shù)表示法:由符號、數(shù)字和小數(shù)點(diǎn)組成(必須有小數(shù)點(diǎn))如-.123,-0.123指數(shù)形式:由尾符、尾數(shù)、階碼標(biāo)志e(E)、階符、整數(shù)階碼構(gòu)成如:-1.23e-345.6E5注:浮點(diǎn)常量總是以雙精度(Double)形式出現(xiàn),若要表示Float型常量,必須在實(shí)型常量后面加F或f。2.實(shí)型常量又稱浮點(diǎn)數(shù)第12頁/共54頁3.字符型常量一般字符常量:鍵盤上有該符號例:'b'轉(zhuǎn)義字符常量:用來表示一些不可顯示或無法從鍵盤鍵入的控制字符。以

\引導(dǎo)的字符序列單引號括起來的單個字符,值為其ASCII碼值,

單引號是定界符,不是常量本身的內(nèi)容如:'a''A''2',注:'0'與0不同如(P17表2-3)

'\n'表示回車換行

'\''表示單引號

'\"'表示雙引號第13頁/共54頁字符常數(shù)的存儲方式:ASCII碼值,占一個字節(jié),如'A'對應(yīng)的ASCII碼值為:

65=0101=0X41=01000001B010000018位A:65a:970:48C++允許字符型數(shù)據(jù)參與數(shù)值運(yùn)算第14頁/共54頁字符串常量:雙引號括起來的一串字符

例"3a9d#=s"

"2天津ABC"4.字符串常量存儲:在內(nèi)存中依次存放每個字符的ASCII碼,尾部自動加字符串結(jié)束標(biāo)志'\0',即:001100000100000100111001010001003a9d#=s\0長度:為該串中含字符的個數(shù),不含結(jié)束標(biāo)志\0。上例串長度為:7第15頁/共54頁注:

在字符串里,可以使用轉(zhuǎn)義字符的書寫方式,以下字符串含"。"A"Sk3"

(錯!)"A\"Sk3"例如:輸出字符串A"Sk3\0OLLEH例:字符串“HELLO”的內(nèi)存表示字符串結(jié)束標(biāo)志A\Sk3cout<<"A\\Sk3";思考:‘a(chǎn)’與“a”的區(qū)別?第16頁/共54頁3)能進(jìn)行的運(yùn)算不同

'a'+'r'+5

合法字符常量可以與整型數(shù)進(jìn)行加/減運(yùn)算

"a"+"r"+5

非法

字符常量與字符串常量的區(qū)別1)表現(xiàn)形式不同字符常量用''

定界符不同字符串常量用""2)內(nèi)存中所占空間不同

'a'

:字符常量,存儲其ASCII碼值,占據(jù)一個字節(jié)

"a"

:字符串常量,占據(jù)兩個字節(jié),即:a與\0的ASCII碼值4)存放兩者的變量不同字符常量用字符變量字符串常量用字符數(shù)組第17頁/共54頁

5.符號常量C++中常量可以是常數(shù),也可以是代表固定不變的值的名字——符號常量。比如程序中經(jīng)常用到某個常數(shù),此時可以定義一個名字來表示此常數(shù),以便改進(jìn)程序的可讀性。例如:計算圓面積或圓周長要用到3.1415926(不能直接用),可定義為符號常量。定義符號常量一般形式:

const

數(shù)據(jù)類型

符號常量=表達(dá)式;

例如:constdoublePI=3.1415926;constdoublePI=;error一般用大寫字母#include<iostream.h>voidmain(){ doubler,s,a; cout<<"PleaseinputR="; cin>>r; s=2*r*3.14; a=r*r*3.14; cout<<"s="<<s<<endl; cout<<"area="<<a<<endl;}#include<iostream.h>constdoublePI=3.14;voidmain(){ doubler,s,a; cout<<"PleaseinputR="; cin>>r; s=2*r*PI; a=r*r*PI; cout<<"s="<<s<<endl; cout<<"area="<<a<<endl;}3.1415926;第18頁/共54頁(1)符號常量定義時必須初始化。如:

constdoublePI; PI=3.1415926; //error(2)定義中“表達(dá)式”只能是常量表達(dá)式,不能含有變量和函數(shù)。注意:例:constintCOUNT=5+1;right

constdoubleA1=5+sin(x);error第19頁/共54頁2.3.2變量1)變量:指在程序運(yùn)行過程中其值可以改變的量2)變量要素:名字、類型和值(地址)3)C++程序中:變量的作用:用來存放數(shù)據(jù)使用變量前必須首先定義變量名和變量的數(shù)據(jù)類型,為此變量在內(nèi)存中分配一定的存儲單元,并將在該單元中存放變量的值。變量的類型不同占內(nèi)存單元數(shù)不同,見P15表2-2存儲字節(jié)數(shù)。

第20頁/共54頁變量的定義的一般格式/變量定義語句數(shù)據(jù)類型名變量名表;基本類型關(guān)鍵字:char字符型

int整型long長整型float浮點(diǎn)數(shù)double雙精度數(shù)多個變量之間用逗號“,”分隔例:charc;

inti,j,k;longl1,l2;floatx,y,z;doublet1,t2;“先定義,后使用”變量類型:決定為該變量分配多大的存儲空間決定該變量可參與何種運(yùn)算變量名:規(guī)則遵循標(biāo)識符的命名規(guī)則第21頁/共54頁例:inti,j,k;變量值:存儲空間內(nèi)的值變量的地址:

存儲空間惟一的地址ki=3;j=5;ij35ji4個字節(jié)對變量的操作:存(賦值)和取(使用)i=3,j=5;k=i+j;取出i,j的值,求和后存入kk8第22頁/共54頁inti=3,j=5,k=i+j;變量賦值與初始化1)初始化:定義同時賦值2)賦值:定義后用賦值運(yùn)算符“=”給變量賦值inti,j,k;i=3;

j=5;

k=i+j;3)也可定義后用輸入語句從鍵盤輸入變量的值inti,j,k;cin>>i>>j;k=i+j;第23頁/共54頁注意:不能重復(fù)定義一個變量例:inta,b,c;doublex,y,c;沒有存放字符串的變量

chara;a="d3$*j";(錯!)第24頁/共54頁2.4運(yùn)算符與表達(dá)式2.4.2、算術(shù)運(yùn)算符2.4.4、逗號運(yùn)算符2.4.1、表達(dá)式重要2.4.5、類型轉(zhuǎn)換2.4.3、賦值運(yùn)算符第25頁/共54頁操作數(shù):運(yùn)算符:圓括號:優(yōu)先級:

相鄰兩個運(yùn)算符之間的運(yùn)算順序結(jié)合性:

優(yōu)先級相同時那個運(yùn)算符起作用,左、右結(jié)合性常量、變量、函數(shù)或其他表達(dá)式改變運(yùn)算符的運(yùn)算次序組成值書寫沒有上、下標(biāo)、分式;括號只能出現(xiàn)圓括號;乘號不能省略例如:'A'+32+7.23*6/3-(4+3)/3說明運(yùn)算的含義表達(dá)式第26頁/共54頁左結(jié)合:一個運(yùn)算符對其操作數(shù)從左到右進(jìn)行規(guī)定的運(yùn)算,稱此運(yùn)算符是左結(jié)合的。右結(jié)合:

與左結(jié)合相反,即:從右到左。

式子運(yùn)算符c++表達(dá)式結(jié)合性5×9÷3*/5*9/3左結(jié)合-5*6負(fù)號為右結(jié)合X=5=右結(jié)合結(jié)合性舉例第27頁/共54頁賦值運(yùn)算符與賦值表達(dá)式逗號運(yùn)算符與逗號表達(dá)式邏輯運(yùn)算符與邏輯表達(dá)式算術(shù)運(yùn)算符與算術(shù)表達(dá)式C++中常用的運(yùn)算符及其表達(dá)式有以下幾種:優(yōu)先級別低高關(guān)系運(yùn)算符與關(guān)系表達(dá)式C++中常用的運(yùn)算符及其表達(dá)式有以下幾種:一、常用運(yùn)算符與表達(dá)式C++中常用的運(yùn)算符和表達(dá)式有以下幾種:第28頁/共54頁3、求模運(yùn)算%:要求兩個操作數(shù)必須均為整型。兩個整數(shù)相除后的余數(shù),其符號和被除數(shù)的符號相同。-(負(fù)號)*/%+-二、算術(shù)運(yùn)算符和算術(shù)表達(dá)式算術(shù)運(yùn)算符(p23表2-5)結(jié)合性算術(shù)表達(dá)式中混有多種數(shù)據(jù)時,注意結(jié)果的類型1、整數(shù)相除結(jié)果為整數(shù);分子<分母值為0

例3/5值為02、除數(shù)不能為0;單目雙目雙目高低例:8%5運(yùn)算結(jié)果:

9%12運(yùn)算結(jié)果:

-15%12運(yùn)算結(jié)果:

12%(-15)運(yùn)算結(jié)果:

39-312第29頁/共54頁常用的數(shù)學(xué)函數(shù)

#include<math.h>

函數(shù)名含義范例結(jié)果sin(x)正弦函數(shù)sin(0)0cos(x)余弦函數(shù)cos(0)1exp(x)以e為底的指數(shù)函數(shù)exp(3)20.086fabs(x)求絕對值fabs(-2.6)2.6pow(x,y)xypow(2,3)8.0sqrt(x)平方根sqrt(16)4.0第30頁/共54頁

式子c++表達(dá)式(a+b)/(c-d)a*a*asinxsin(x)sqrt(g)cosxcos(x)exp(x)算術(shù)表達(dá)式舉例<math.h>#include第31頁/共54頁注:字符型數(shù)據(jù)可以進(jìn)行運(yùn)算charc1,c2;inti;c1='A';c2=c1+32;i=c2;字符的ASCII碼值與整型數(shù)據(jù)可以通用,可以相互賦值,占1個字節(jié)。659797小寫字母a的ASCII碼的值第32頁/共54頁防止整數(shù)溢出錯誤?。?!例:shortinti=1000,j=1000,k;k=i*j;shortint類型數(shù)的范圍是–32768~32767

結(jié)果:k=1000*2000=1000000>32767

產(chǎn)生整數(shù)溢出,但C++系統(tǒng)不報警。要引起注意:可改變i,j,k為long類型變量來解決。第33頁/共54頁三、賦值運(yùn)算符和賦值表達(dá)式=賦值表達(dá)式:<變量>=<表達(dá)式>賦值運(yùn)算符:賦值過程:inta,b;a=2.4+3.8;//類型不同要轉(zhuǎn)換,a=6;b=a+3; //類型相同不需要轉(zhuǎn)換a=a+b;先求表達(dá)式的值,轉(zhuǎn)換類型,再賦值優(yōu)先級僅高于逗號表達(dá)式,從右向左第34頁/共54頁inta,b;b=(a=2.4+3.8);b=a=2.4+3.8注意賦值表達(dá)式的值和類型,當(dāng)賦值號左右不一致時,要將表達(dá)式的值類型轉(zhuǎn)換為變量的類型右左<變量1>=<變量2>=……<變量n>=<表達(dá)式>由于賦值運(yùn)算符是右結(jié)合性的,可不加括號注意賦值運(yùn)算符不是等于號,賦值運(yùn)算符左邊只能是變量名,不可以是常量或其他表達(dá)式

x+y=z //error 3=a+7 //error第35頁/共54頁讀程序,寫結(jié)果#include<iostream.h>#include<math.h>voidmain(){shortinti;doubled;longl;floatf;L=d=i=f=20/3;cout<<f<<l<<d<<i<<endl;}第36頁/共54頁復(fù)合的賦值運(yùn)算

格式:<變量><雙目運(yùn)算符>=<表達(dá)式><變量>=<變量><雙目運(yùn)算符>(<表達(dá)式>)算術(shù)運(yùn)算符復(fù)合

+=,-=,*=,/=,%=(p26)例如:a+=1a=a+1a*=6+2x%=y+3a=a*(6+2)x=x%(y+3)inta=12;a+=a-=a*=a第37頁/共54頁例2.2輸出賦值表達(dá)式的運(yùn)算結(jié)果。#include<iostream.h>voidmain(){ inta,b,c,d,e=7; a=b=1; c=5; d=a=a+1; d*=a+b; //等價于d=d*(a+b) e%=c-b; //等價于e=e%(c-b) cout<<a<<"\t"<<b<<"\t"<<c<<"\t"<<d<<"\t"<<e;}運(yùn)行結(jié)果為:21563說明:使用賦值的目的是為了保存賦值號右邊表達(dá)式的值,即保存計算結(jié)果。將計算結(jié)果保存到變量中,就可以在后面的操作中使用該值了。

第38頁/共54頁四、自增自減運(yùn)算符與表達(dá)式自增自減運(yùn)算符:++--

單目區(qū)別:要求操作數(shù)必須是變量自增自減表達(dá)式:

i++

先取值,后自加,等價于:i=i+1

++i先自加,后取值,等價于:i=i+1--i

先自減,后取值,等價于:i=i-1i--

先取值,后自減,等價于:i=i-1先自增減,再計算++i--i先計算,再自增減i++i--表達(dá)式的值與變量的值第39頁/共54頁程序段1:#include<iostream.h>voidmain(){inti=1,j;j=i++;cout<<i<<“\t”<<j;}結(jié)果:

22i++與++i的區(qū)別舉例程序段2:#include>iostream.h>voidmain(){inti=1,j;j=++i;cout<<i<<“\t”<<j;}21結(jié)果:第40頁/共54頁#include<iostream.h>#include<math.h>voidmain(){inti=3,j=2;intm,n;m=(i++)*(j++);cout<<m<<endl;cout<<i<<j<<endl;m=(++i)*(++j);cout<<m<<endl;cout<<i<<j<<endl;m=i+++++j;cout<<m<<i<<j<<endl;}例2.4自增、自減運(yùn)算符的應(yīng)用。第41頁/共54頁表達(dá)式2表達(dá)式n,……,功能:從第一個開始(左),依次計算每個表達(dá)式的值,最后(右)一個表達(dá)式的值即為逗號表達(dá)式的值。五、逗號運(yùn)算符(p27)例:inta,b,c,d;則:

a=1,b=a+2,c=b+3值:

表達(dá)式1,第42頁/共54頁優(yōu)先級別:最低為了將逗號表達(dá)式的值賦給變量,必須加圓括號例:inta,b,c,d;d=(a=1,b=a+2,c=b+3);cout<<d<<endl;//結(jié)果:d=6思考一下各變量及逗號表達(dá)式的值X=y=(z=3,2*3)X=y=z=3,2*3X=(y=z=3,2*3)第43頁/共54頁類型轉(zhuǎn)換問題提出:什么時候、為什么需要類型轉(zhuǎn)換? 進(jìn)行雙目運(yùn)算時,要求兩個操作數(shù)的類型必須相同:當(dāng)運(yùn)算符兩邊的操作數(shù)的數(shù)據(jù)類型不一致時,VC++系統(tǒng)要先轉(zhuǎn)換為同一類型,然后再進(jìn)行運(yùn)算。

即先轉(zhuǎn)換,再運(yùn)算,運(yùn)算結(jié)果的類型同操作數(shù)的類型。兩種類型轉(zhuǎn)換的方法:

ó

自動類型轉(zhuǎn)換、ó

強(qiáng)制類型轉(zhuǎn)換第44頁/共54頁longchar系統(tǒng)自動轉(zhuǎn)換:由編譯系統(tǒng)自動完成intdoublefloat低高當(dāng)操作數(shù)類型不同時系統(tǒng)進(jìn)行的轉(zhuǎn)換小空間向大空間轉(zhuǎn)換1自動類型轉(zhuǎn)換箭頭表示轉(zhuǎn)換方向第45頁/共54頁'A'+32+7.23*6-5/3intintdoubledouble運(yùn)算結(jié)果的類型為:第46頁/共54頁2強(qiáng)制類型轉(zhuǎn)換(類型名)操作數(shù)或類型名(操作數(shù))這也是一個表達(dá)式,該表達(dá)式的值是把操作數(shù)的數(shù)據(jù)類型強(qiáng)行轉(zhuǎn)換為前面指定的數(shù)據(jù)類型后的值。操作數(shù):可以是常量、變量、函數(shù)、表達(dá)式若為表達(dá)式,則要用括號將表達(dá)式括起來一般形式:例如:(long)2 (int)4.8 (double)5/3 (double)(5/3)1.0000001.6666672L4使用強(qiáng)制類型轉(zhuǎn)換運(yùn)算符來實(shí)現(xiàn)第47頁/共54頁舉例:#include<iostream.h>voidmain(){doublex=5.6;inti;

i=int(x);cout<<“i=“<<i<<“\nx=“<<x<<“\n”;}

運(yùn)行結(jié)果:i=5x=5.6說明x變量的類型沒變注意一:是一種運(yùn)算,表達(dá)式的值類型轉(zhuǎn)換,而操作數(shù)的類型不變。(若為變量,不能改變變量的的數(shù)據(jù)類型。)第48頁/共54頁注意二:

當(dāng)操作數(shù)是表達(dá)式,用以下形式轉(zhuǎn)換時,表

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論