C程序設(shè)計(jì)案例教程 王明福 源代碼習(xí)題答案 第2章新_第1頁(yè)
C程序設(shè)計(jì)案例教程 王明福 源代碼習(xí)題答案 第2章新_第2頁(yè)
C程序設(shè)計(jì)案例教程 王明福 源代碼習(xí)題答案 第2章新_第3頁(yè)
C程序設(shè)計(jì)案例教程 王明福 源代碼習(xí)題答案 第2章新_第4頁(yè)
C程序設(shè)計(jì)案例教程 王明福 源代碼習(xí)題答案 第2章新_第5頁(yè)
已閱讀5頁(yè),還剩51頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第2章數(shù)據(jù)類型和表達(dá)式通過(guò)本章的學(xué)習(xí),使讀者:了解C#語(yǔ)言的根本字符、標(biāo)識(shí)符和關(guān)鍵字掌握C#語(yǔ)言的數(shù)據(jù)和數(shù)據(jù)類型掌握C#語(yǔ)言的運(yùn)算符和表達(dá)式本章要點(diǎn)2.1根本規(guī)那么2.1.1標(biāo)識(shí)符

在C#中,標(biāo)識(shí)符的命名有如下規(guī)那么:(1)首字符必須是字母、下劃線“_〞或“@〞;后面的字符可以是字母、下劃線或數(shù)字;(2)標(biāo)識(shí)符不應(yīng)該使用C#的關(guān)鍵字。如果一定要用C#的關(guān)鍵字作為標(biāo)識(shí)符,應(yīng)使用“@〞字符作為前綴;(3)允許在標(biāo)識(shí)符中使用Unicode轉(zhuǎn)義符;(4)C#采用了Unicode技術(shù),因此支持使用中文作為標(biāo)識(shí)符例如:下面是幾個(gè)正確的變量名稱:intA、M_data、_D123。下面是幾個(gè)錯(cuò)誤的變量名稱:123data〔錯(cuò)誤原因:使用數(shù)字作為起始字符〕float〔錯(cuò)誤原因:使用關(guān)鍵字作為標(biāo)識(shí)符〕int-a〔錯(cuò)誤原因:使用連字符“—〞〕。2.1根本規(guī)那么2.1.3關(guān)鍵字關(guān)鍵字又稱保存字,是一種有特殊用途的標(biāo)識(shí)符。由系統(tǒng)預(yù)先定義好的,不能用于其它目的。C#中有七十多個(gè)關(guān)鍵字,這些關(guān)鍵字都有自己的用途。C#的常見(jiàn)關(guān)鍵字參見(jiàn)教材表2-1。2.2根本數(shù)據(jù)類型C++語(yǔ)言的數(shù)據(jù)類型分為根本數(shù)據(jù)類型和構(gòu)造數(shù)據(jù)類型〔或稱復(fù)合數(shù)據(jù)類型〕。根本數(shù)據(jù)類型有5種:整型〔int〕、浮點(diǎn)型〔float〕、字符型〔char〕、雙精度浮點(diǎn)型〔double〕和無(wú)值型〔void〕。2.2根本數(shù)據(jù)類型類型名類型說(shuō)明符字長(zhǎng)(字節(jié))取值范圍布爾型boolfalse,true字符型char1-128~127無(wú)符號(hào)字符型unsignedchar10~255整型int4-2147483648~2147483674長(zhǎng)整型long4-2147483648~2147483674無(wú)符號(hào)長(zhǎng)整型unsignedlong40~4294967295浮點(diǎn)型float43.4E-38~3.4E+38實(shí)型double81.7-308~1.7E+308空值型void02.2常量與變量常量是在程序中不能改變的量。它通??梢苑譃閿?shù)字常量和符號(hào)常量1.整型常量

整型常量可用以下幾種形式表示:2.2.1常量①十進(jìn)制整數(shù)如:34、0、-56等。②八進(jìn)制整數(shù)為了與十進(jìn)制數(shù)區(qū)別,八進(jìn)制整數(shù)以0開(kāi)頭,后跟假設(shè)干個(gè)0~7的數(shù)字。③十六進(jìn)制整數(shù)為了與十進(jìn)制整數(shù)和八進(jìn)制整數(shù)區(qū)別,以0x或OX開(kāi)頭,后跟假設(shè)干個(gè)0~9及a~f,a~f分別表示十進(jìn)制整數(shù)10~15。2.2常量與變量2.實(shí)型常量

實(shí)數(shù)又稱為浮點(diǎn)數(shù),一般有兩種書(shū)寫(xiě)形式:①一般形式就是平時(shí)寫(xiě)實(shí)數(shù)的形式。②指數(shù)形式在C#中,指數(shù)形式表示為:<整數(shù)局部>E<指數(shù)局部>3.字符常量

字符常量是用單引號(hào)〔即撇號(hào)〕括起來(lái)的一個(gè)字符。2.2常量與變量4.字符串常量

(1)常規(guī)字符串雙引號(hào)括引起的一串字符,可以包括轉(zhuǎn)義字符。例如:“china〞,“〞,“teacherandstudent〞,“a〞等都是字符串常量。 (2)逐字字符串在常規(guī)字符串前面加一個(gè)@,就形成逐字字符串。例如: @“C:\windows\Microsoft〞與"C:\\windows\\Microsoft"含義相同2.2常量與變量5.布爾型常量通常表示真假用布爾常量:false表示假,true表示真。

6.符號(hào)常量

在聲明語(yǔ)句中,可以聲明一個(gè)標(biāo)識(shí)符常量。具體格式為:const類型標(biāo)識(shí)符=初值例如:constdoublePI=3.141592.2常量與變量在程序執(zhí)行過(guò)程中其值可以改變的量叫變量。2.2.2變量的聲明1.變量的定義

<數(shù)據(jù)類型><變量名>;或<數(shù)據(jù)類型><變量名1>,<變量名2>,…,<變量n>;例如:inta,x,y;//定義了3個(gè)整型變量a,x,ycharb;//定義了1個(gè)字符型變量bfloatc,d;//定義了2個(gè)實(shí)型〔單精度〕變量c,ddoubleu,v;//定義了2個(gè)實(shí)型〔雙精度〕變量u,v2.2常量與變量2.變量的初始化

inta=2;//定義a為整型變量,初值為2charb=‘A’;//定義b為字符型變量,初值為‘A’doublex=2.1234;//定義x為實(shí)型變量,初值為2.1234也可對(duì)被定義的變量的局部變量進(jìn)行初始化。如intu,v=100,w;//定義u,v,w為整型變量,v的初值為1002.2常量與變量2.2.3變量的命名標(biāo)準(zhǔn)通常有PascalCase和CamelCase兩種命名方法,PascalCase中每個(gè)單詞的首字母都是大寫(xiě),CamelCase規(guī)定首字母都是小寫(xiě)。下面給出PascalCase和CamelCase的例子,如下表所示。PascalCaseCamelCaseMyDatamyDataCreateDaracreateDataWorldworld2.2常量與變量2.2.4變量的賦值

在C#中,給一個(gè)變量賦值的格式如下:變量名=表達(dá)式;

inta=0;//定義整型變量a,并為其賦初值等于0doubleb; //定義雙精度變量b,未賦初值a=256;//為整型變量a賦值為256

b=21.78;//為雙精度變量b賦值為21.78

2.2常量與變量2.2.5變量的類型

1.?dāng)?shù)值類型C#中常用的數(shù)值類型如表2-4所示。

全稱簡(jiǎn)稱說(shuō)明字節(jié)取值范圍System.Boolleanbooltrue或falseSystem.Bytebyte8位無(wú)符號(hào)整數(shù)

10~255System.SBytesbyte8位無(wú)符號(hào)整數(shù)

1-128~127System.Charchar16位Unicode字符

20~65535System.Int32int32位有符號(hào)整數(shù)

4-2147483648~2147483647System.Int16short16位有符號(hào)整數(shù)

2-32768~327672.2常量與變量2.2.5變量的類型

2.引用類型引用類型不存儲(chǔ)它們所代表的實(shí)際值,而是指向所要存儲(chǔ)的值,即引用類型存儲(chǔ)的實(shí)際數(shù)據(jù)是當(dāng)前的引用的地址。(1)object類型object數(shù)據(jù)類型是根類類型,它是所有類型的基類。任一個(gè)object變量,可以賦予任何類型的值。例如:

intx1=123;doublex2=34.87; objecty1,y2;//聲明y1,y2是object類型的變量

y1=x1; y2=x2;2.2常量與變量2.2.5變量的類型

2.引用類型引用類型不存儲(chǔ)它們所代表的實(shí)際值,而是指向所要存儲(chǔ)的值,即引用類型存儲(chǔ)的實(shí)際數(shù)據(jù)是當(dāng)前的引用的地址?!?〕字符串類型string字符串是被雙引號(hào)包含的一串字符,專門用于處理字符串的引用類型,string是System.String的別名。用string關(guān)鍵字聲明的變量〔對(duì)象〕可以存儲(chǔ)Unicode字符的字符串,并具有字符串的連接運(yùn)算。例如:stringstr1=“C#語(yǔ)言〞;stringstr2=“程序設(shè)計(jì)〞;stringstr3;str3=str1+str2;//str3的值為:“C#語(yǔ)言程序設(shè)計(jì)〞2.2常量與變量2.2.6類型之間的轉(zhuǎn)換

1.隱式轉(zhuǎn)換隱式轉(zhuǎn)換是系統(tǒng)默認(rèn)的,遵守“由低級(jí)〔字節(jié)數(shù)和精度〕類型向高級(jí)類型轉(zhuǎn)換,結(jié)果為高級(jí)類型〞的原那么.stringa,b;a=10+“12〞;//系統(tǒng)將整型數(shù)據(jù)10隱式轉(zhuǎn)化為字符串“10〞,結(jié)果a的內(nèi)容為“1012〞doublex=3.1415;inty=21;doublez=x+y;//系統(tǒng)將整型數(shù)據(jù)y隱式轉(zhuǎn)化為實(shí)型21.0后再與x運(yùn)算,//結(jié)果z的內(nèi)容為24.14152.2常量與變量2.2.6類型之間的轉(zhuǎn)換

2.顯示轉(zhuǎn)換(1)強(qiáng)制轉(zhuǎn)換強(qiáng)制轉(zhuǎn)換轉(zhuǎn)換的一般格式為:〔數(shù)據(jù)類型名稱〕數(shù)據(jù)(2)ToString()方法─—將根本數(shù)值類型轉(zhuǎn)化為字符串使用格式為:變量名稱.ToString()例如: intc; c=309; stringe=c.ToString();//e的值為“309〞 doubled=3.1415; stringf=d..ToString();//f的值為“3.1415〞2.2常量與變量2.2.6類型之間的轉(zhuǎn)換

(3)Parse方法─將字符串轉(zhuǎn)換為數(shù)值數(shù)值類型名稱.Parse(字符串表達(dá)式)例如:strings="123.32"; intx;doubley;x=int.Parse(“234〞);//將字符串"234"轉(zhuǎn)化為整數(shù)234y=double.Parse(s);//將字符串"123.32"轉(zhuǎn)化為實(shí)數(shù)123.32(4)Covert類─各種數(shù)據(jù)類型之間的相互轉(zhuǎn)化intc;c=3;stringe=c.ToString();//e的值為“3〞intg;g=Convert.ToInt32(e);//g為int類型的值3【例2-2】數(shù)據(jù)類型轉(zhuǎn)換。staticvoidMain(string[]args){strings1="123",s2="90.8";intx;doubley;//1.用parse,Convert,將字符串轉(zhuǎn)換為數(shù)〔int,double,...)x=int.Parse(s1);y=double.Parse(s2);Console.WriteLine("\ns1={0},s2={1}",x,y);

x=Convert.ToInt32(s1);y=Convert.ToDouble(s2);Console.WriteLine("\ns1={0},s2={1}",x,y);

//2.用int,...,Convert,將數(shù)轉(zhuǎn)換為字符串intk=12;doubled=12.56;s1=k.ToString();s2=d.ToString();Console.WriteLine("\ns1={0},s2={1}",s1,s2);s1=Convert.ToString(k);s2=Convert.ToString(d);Console.WriteLine("\ns1={0},s2={1}",s1,s2);}2.3運(yùn)算符與表達(dá)式1.算術(shù)運(yùn)算符

根本算術(shù)運(yùn)算符及其功能如下表所示。2.3.1算術(shù)運(yùn)算符與算術(shù)表達(dá)式運(yùn)算符名稱例子運(yùn)算功能+-*/%++--加法運(yùn)算減法運(yùn)算乘法運(yùn)算除法運(yùn)算模運(yùn)算遞增遞減x+yx-yx*yx/yx%y++x;x++--x;x--求x與y的和求x與y的差求x與y的積求x與y的商求x除以y的余數(shù)2.3運(yùn)算符與表達(dá)式2.算術(shù)表達(dá)式

在C#中,用算術(shù)運(yùn)算符連接起來(lái)的式子稱為算術(shù)表達(dá)式。例如:2*(a+4)/18-2.98+‘A’,sin(x)+cos(x)/2,〔int〕a+4+(--z)都是合法的C++算術(shù)表達(dá)式。但 sin300+y×e9,3+|x|,3a+5不是合法的C#算術(shù)表達(dá)式。2.3運(yùn)算符與表達(dá)式3.優(yōu)先級(jí)和結(jié)合方向

C#語(yǔ)言規(guī)定了運(yùn)算符的優(yōu)先級(jí)和結(jié)合方向,在表達(dá)式求值時(shí),先按運(yùn)算符的優(yōu)先級(jí)別上下次序執(zhí)行,再按運(yùn)算符的結(jié)合方向結(jié)合〔相同優(yōu)先級(jí)時(shí)〕。例如先乘除后加減,如下表所示。高運(yùn)算種類結(jié)合性優(yōu)先級(jí)++,--從右到左高低

*,/,%從左到右+,-從左到右2.3運(yùn)算符與表達(dá)式1.關(guān)系運(yùn)算符

C#語(yǔ)言中提供6種關(guān)系運(yùn)算符<,<=,>,>=,==,!=。2.3.2關(guān)系運(yùn)算符與關(guān)系表達(dá)式(1)優(yōu)先級(jí)別順序是:自上而下,優(yōu)先級(jí)由高到低。(2)同級(jí)運(yùn)算符的結(jié)合性是“左結(jié)合性〞,即“自左向右〞順序進(jìn)行。關(guān)系運(yùn)算的優(yōu)先級(jí)都低于算術(shù)類,高于賦值類。例如, a>b+c 等效于 a>(b+c) a=b+c 等效于 a=(b+c)(3)關(guān)系運(yùn)算符<=,>=,==,!=在書(shū)寫(xiě)時(shí),不要空格將其分開(kāi),否那么會(huì)產(chǎn)生語(yǔ)法錯(cuò)誤。2.3運(yùn)算符與表達(dá)式2.關(guān)系表達(dá)式用關(guān)系運(yùn)算符將兩個(gè)表達(dá)式連接起來(lái),表示關(guān)系運(yùn)算的表達(dá)式稱為關(guān)系表達(dá)式。一般形式為:表達(dá)式1關(guān)系運(yùn)算符表達(dá)式2【例2-4】關(guān)系表達(dá)式。2.3運(yùn)算符與表達(dá)式staticvoidMain(string[]args){intz; z=3+5==2*4;//即判斷〔3+5〕是否等于〔2*4〕,z=1表示true Console.WriteLine("z={0}",z);z=3<=5!=4;//先判斷〔3<=5〕,結(jié)果為0,再進(jìn)行0!=4,z=1表示true Console.WriteLine("z={0}",z); z=2+3!=5>5-3;//等價(jià)于(2+3)!=(5>(5-3)),z=1表示trueConsole.WriteLine("z={0}",z); z=5>4>=3;//先求5>4結(jié)果為1,再進(jìn)行1>=3的比較,z=0表示false Console.WriteLine("z={0}",z);}2.3運(yùn)算符與表達(dá)式1.邏輯運(yùn)算符

有3種邏輯運(yùn)算符:“!〞(邏輯非)、“&&〞(邏輯與)和“||〞〔邏輯或〕。2.3.3邏輯運(yùn)算符與邏輯表達(dá)式2.邏輯表達(dá)式

邏輯表達(dá)式的一般形式為:!x,x&&y,x||y2.3運(yùn)算符與表達(dá)式【例2-5】邏輯表達(dá)式。staticvoidMain(string[]args){ intx=2,y=5,z; z=(x>0)||(y<8);

Console.WriteLine("z={0}",z);//z=1表示true z=(x==0)&&(y<8);

Console.WriteLine("z={0}",z);//z=0表示false z=!(x==2);

Console.WriteLine("z={0}",z);//z=0表示false}

2.3運(yùn)算符與表達(dá)式所謂位〔bit〕運(yùn)算,是指對(duì)一個(gè)數(shù)據(jù)的某些二進(jìn)制位進(jìn)行的運(yùn)算。C#語(yǔ)言提供6種位運(yùn)算符,如表2-8所示。2.3.4位運(yùn)算和位運(yùn)算符位運(yùn)算符含義位運(yùn)算符含義&按位與~取反|按位或<<左移^按位異或>>右移2.3運(yùn)算符與表達(dá)式【例2-6】分析以下程序的執(zhí)行結(jié)果(本程序在32位機(jī)上運(yùn)行)。staticvoidMain(string[]args){uinta=0x1234;//0001,0010,0011,0100=>1234(前面16位均為0)

uintb=a<<2;//0100,1000,1101,0000=>48d0(前面16位均為0)

uintc=a>>2;//0000,0100,1000,1101=>048d(前面16位均為0)

uintd=b&c; //0000,0000,1000,0000=>0080(前面16位均為0)

uinte=b|c;//0100,1100,1101,1101=>4cdd(前面16位均為0)

uintf=b^c;//0100,1100,0101,1101=>4c5d(前面16位均為0)

uintg=~a;//1110,1101,1100,1011=>edcb(前面16位均為0)

Console.WriteLine("a={0:X}",a);Console.WriteLine("b={0:X}",b);Console.WriteLine("c={0:X}",c);Console.WriteLine("d={0:X}",d);Console.WriteLine("e={0:X}",e);Console.WriteLine("f={0:X}",f);Console.WriteLine("g={0:X}",g);}2.3運(yùn)算符與表達(dá)式表達(dá)式1?表達(dá)式2:表達(dá)式3如果“表達(dá)式1〞的值為非0〔真〕,那么條件表達(dá)式的運(yùn)算結(jié)果等于“表達(dá)式2〞的值,否那么,運(yùn)算結(jié)果等于“表達(dá)式3〞的值。求x的絕對(duì)值,用條件運(yùn)算符處理為:

y=(x>=0)?x:-x;2.3.5條件運(yùn)算符2.3

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論