C語言基本數(shù)據(jù)類型_第1頁(yè)
C語言基本數(shù)據(jù)類型_第2頁(yè)
C語言基本數(shù)據(jù)類型_第3頁(yè)
C語言基本數(shù)據(jù)類型_第4頁(yè)
C語言基本數(shù)據(jù)類型_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第二講基本數(shù)據(jù)類型什么是數(shù)據(jù)類型?著名計(jì)算機(jī)科學(xué)家NikiklausWirth提出一個(gè)公式

數(shù)據(jù)結(jié)構(gòu)+算法=程序

實(shí)際上結(jié)構(gòu)化的程序設(shè)計(jì)可以表示為:程序=算法+數(shù)據(jù)結(jié)構(gòu)+程序設(shè)計(jì)方法+語言工具和環(huán)境C的數(shù)據(jù)結(jié)構(gòu)就是以數(shù)據(jù)類型的形式出現(xiàn)的知識(shí)要點(diǎn)2.1C語言的數(shù)據(jù)類型2.2數(shù)值數(shù)據(jù)的表示2.3文字?jǐn)?shù)據(jù)的表示2.4變量的定義和賦值2.5

C語言類型修飾符2.6表達(dá)式中數(shù)據(jù)類型轉(zhuǎn)換2.1C語言的數(shù)據(jù)類型

C語言提供的數(shù)據(jù)類型分類如下:

知識(shí)要點(diǎn)2.1C語言的數(shù)據(jù)類型2.2數(shù)值數(shù)據(jù)的表示2.3文字?jǐn)?shù)據(jù)的表示2.4變量的定義和賦值2.5

C語言類型修飾符2.6表達(dá)式中數(shù)據(jù)類型轉(zhuǎn)換2.2數(shù)值數(shù)據(jù)的表示C語言中使用的數(shù)值數(shù)據(jù)有兩種:整數(shù)和浮點(diǎn)小數(shù)。整數(shù)

表示形式:十進(jìn)制:123 456八進(jìn)制:011 072十六進(jìn)制:0x11 -0x32

一般整數(shù)的存儲(chǔ)空間為2個(gè)字節(jié),取值范圍一般為

-215~215-1,即-32768~32767。如果超過這個(gè)范圍,只有使用占4個(gè)字節(jié)的長(zhǎng)整型數(shù),即在整數(shù)后面加上一個(gè)字母L(大小寫均可),此時(shí)取值范圍可以擴(kuò)大到-231~231-1,即-2147483648~2147483647。

C語言中使用的數(shù)值數(shù)據(jù)有兩種:整數(shù)和浮點(diǎn)小數(shù)。浮點(diǎn)小數(shù)

C語言中的浮點(diǎn)小數(shù)描述的是實(shí)數(shù),可以采用十進(jìn)制小數(shù)形式或者指數(shù)形式表示。十進(jìn)制小數(shù)形式:包含整數(shù)部分、小數(shù)點(diǎn)和小數(shù)部分。如1.3234.0注意:其中小數(shù)點(diǎn)不能省略,34與34.0不是一樣的。指數(shù)形式:包含尾數(shù)部分、字母E或e和階碼。例如2.78E12。注意:尾數(shù)部分不能省、階碼必須是整數(shù)。浮點(diǎn)小數(shù)一般為單精度浮點(diǎn)類型,占用4個(gè)字節(jié),有效位數(shù)6~7位,如果需要精度特別高,可以采用雙精度浮點(diǎn)類型,有效位數(shù)可以達(dá)到16~17位。知識(shí)要點(diǎn)2.1C語言的數(shù)據(jù)類型2.2數(shù)值數(shù)據(jù)的表示2.3文字?jǐn)?shù)據(jù)的表示2.4變量的定義和賦值2.5

C語言類型修飾符2.6表達(dá)式中數(shù)據(jù)類型轉(zhuǎn)換2.3文字?jǐn)?shù)據(jù)的表示C語言把文字?jǐn)?shù)據(jù)分為兩種類型:?jiǎn)蝹€(gè)字符和字符串。單個(gè)字符

單個(gè)字符的表現(xiàn)形式是由單引號(hào)括起來的一個(gè)字符,例如:’a’

‘A’

‘+’

‘5’

‘$’。其中單引號(hào)、雙引號(hào)和反斜杠的表現(xiàn)形式比較特殊,分別是’\’’、’\”’、’\\’。在C語言中轉(zhuǎn)義字符被認(rèn)為是具有特殊意義的單個(gè)字符,例如’\n’,代表一個(gè)換行符。單個(gè)字符在內(nèi)存中只占用1個(gè)字節(jié),其存儲(chǔ)的內(nèi)容為該字符在ASCII碼表中對(duì)應(yīng)的數(shù)值。

C語言把文字?jǐn)?shù)據(jù)分為兩種類型:?jiǎn)蝹€(gè)字符和字符串。字符串

字符串是由雙引號(hào)括起來的字符序列,例如:”thisisaprogram.”

”IloveC”

。字符串中的字符按照從左到右的順序,依次存儲(chǔ)在一段連續(xù)的空間里,其中每一個(gè)字符占用一個(gè)字節(jié),其內(nèi)容為該字符在ASCII碼表中對(duì)應(yīng)的數(shù)值。注意:C語言的字符串在實(shí)際存儲(chǔ)時(shí),將自動(dòng)在字符串尾部加了一個(gè)結(jié)束標(biāo)志‘\0’(其ASCII碼值為0)。思考:‘a(chǎn)’

“a”

是相同的嗎?無雞鴨也可無魚肉也可蘿卜青菜不可少不得大米無雞鴨也可,無魚肉也可,蘿卜青菜不可少,不得大米。無雞,鴨也可,無魚,肉也可,蘿卜青菜不可,少不得大米。知識(shí)要點(diǎn)2.1C語言的數(shù)據(jù)類型2.2數(shù)值數(shù)據(jù)的表示2.3文字?jǐn)?shù)據(jù)的表示2.4變量的定義和賦值2.5C語言類型修飾符2.6表達(dá)式中數(shù)據(jù)類型轉(zhuǎn)換2.4變量的定義和賦值C語言中的數(shù)據(jù)有兩種基本形式:常量和變量。常量的值是固定的,變量是可以改變的

變量的定義

類型標(biāo)識(shí)符變量名;

變量在定義時(shí)要注意以下幾個(gè)問題:變量的命名要符合C語言規(guī)定的標(biāo)識(shí)符的命名規(guī)則,即只能由字母、數(shù)字和下劃線組成,首字母必須為字母或下劃線。此外C語言中規(guī)定的有特殊用途的關(guān)鍵字,例如int、float、if等,不能作為變量名稱。

ab2stu1x1_1sum_name1正確

2acstu-1len#1elseintfloat不正確C語言中大小寫是敏感的。但是習(xí)慣上,C中的變量一般用小寫字母表示。變量的定義變量的數(shù)據(jù)類型決定了它的存儲(chǔ)類型,即該變量占用的存儲(chǔ)空間。所以定義變量類型,就是為了給該變量分配存儲(chǔ)空間,以便存放數(shù)據(jù)?;镜淖兞款愋图捌浯鎯?chǔ)空間見表2.1:

類型名稱存儲(chǔ)空間取值范圍實(shí)例int整型2個(gè)字節(jié)介于-32768~32767的整數(shù)inti,j;float單精度浮點(diǎn)型4個(gè)字節(jié)實(shí)數(shù),有效位數(shù)6~7位floatx;double雙精度浮點(diǎn)型8個(gè)字節(jié)實(shí)數(shù),有效位數(shù)15~16位doubley;char字符型1個(gè)字節(jié)ASCII碼字符,或-128~127的整數(shù)charc;變量的賦值變量需要預(yù)置一個(gè)值,即賦值。賦值操作通過賦值符號(hào)“=”把右邊的值賦給左邊的變量:

變量名=表達(dá)式;

例如x=3;a=a+1;f=3*4+2;

注意數(shù)學(xué)中的“=”符號(hào)不同于C語言中的賦值符號(hào)“=”。其中需要注意的是:如果賦值時(shí)兩側(cè)類型不一致時(shí),系統(tǒng)將會(huì)作如下處理:

將實(shí)數(shù)賦給一個(gè)整型變量時(shí),系統(tǒng)自動(dòng)舍棄小數(shù)部分。

將整數(shù)賦給一個(gè)浮點(diǎn)型變量時(shí),系統(tǒng)將保持?jǐn)?shù)值不變并且以浮點(diǎn)小數(shù)形式存儲(chǔ)到變量中。

當(dāng)字符型數(shù)據(jù)賦給一個(gè)整型變量時(shí),不同的系統(tǒng)實(shí)現(xiàn)的情況不同,一般當(dāng)該字符的ASCII值小于127時(shí),系統(tǒng)將整型變量的高字節(jié)置0、低字節(jié)存放該字符的ASCII值。

變量在定義的同時(shí)也可以賦初值,稱作變量的初始化。字符型變量的值可以是字符型數(shù)據(jù)、介于-128~127的整數(shù)或者轉(zhuǎn)義字符。/*--------------------------------------------

程序L2_1.C功能:賦值時(shí)類型自動(dòng)的轉(zhuǎn)換示例。---------------------------------------------*/#include<stdio.h>main(){inta,x;floatf;a=3.9;f=12;x='A';printf("a=%d,f=%f,x=%d\n",a,f,x);}運(yùn)行結(jié)果:a=3,f=12.000000,x=65/*---------------------------------------------------------------------

程序L2_2.C功能:將字符'A'賦值給字符變量的四種方法。

------------------------------------------------------------------*/

#include<stdio.h>main(){charc1,c2,c3,c4;c1='A';c2=65;c3='\101';c4='\x41';printf("c1=%c,c2=%c,c3=%c,c4=%c\n",c1,c2,c3,c4);printf("c1=%d,c2=%d,c3=%d,c4=%d\n",c1,c2,c3,c4);}思考:c1,c2,c3,c4加上32輸出結(jié)果是什么?加上256呢?知識(shí)要點(diǎn)2.1C語言的數(shù)據(jù)類型2.2數(shù)值數(shù)據(jù)的表示2.3文字?jǐn)?shù)據(jù)的表示2.4變量的定義和賦值2.5

C語言類型修飾符2.6表達(dá)式中數(shù)據(jù)類型轉(zhuǎn)換2.5C語言類型修飾符基本類型可以帶修飾性前綴,即類型修飾符,擴(kuò)大C語言基本數(shù)據(jù)類型的使用范圍。C語言共有4種類型修飾符:

long長(zhǎng)型short短型

signed有符號(hào)型unsigned無符號(hào)型longint(簡(jiǎn)寫為long)型的存儲(chǔ)長(zhǎng)度為4個(gè)字節(jié),用于存儲(chǔ)整數(shù)超過int型取值范圍的情況。longdouble型存儲(chǔ)長(zhǎng)度16個(gè)字節(jié),約24位有效數(shù)字,取值范圍超過double型。有符號(hào)型signed和無符號(hào)型unsigned適用于char型、int型和long型三種類型,區(qū)別在于它們的最高位是否作為符號(hào)位。unsignedchar型取值范圍0~255,unsignedint(簡(jiǎn)寫為unsigned)型取值范圍0~65535,unsignedlong型取值范圍0~232-1。/*---------------------------------------------------------------

程序L2_3.C功能:類型修飾符long和unsigned的使用。

--------------------------------------------------------------*/

#include<stdio.h>main(){chara1,b1;unsignedchara2,b2;intx1,y1;longx2,y2;a1=127;b1=129;a2=127;b2=129;x1=32767;y1=32769;x2=32767;y2=32769;printf("a1=%d,a2=%u,b1=%d,b2=%u\n",a1,a2,b1,b2);printf("x1=%d,x2=%ld,y1=%d,y2=%ld\n",x1,x2,y1,y2);}知識(shí)要點(diǎn)2.1C語言的數(shù)據(jù)類型2.2數(shù)值數(shù)據(jù)的表示2.3文字?jǐn)?shù)據(jù)的表示2.4變量的定義和賦值2.5

C語言類型修飾符2.6表達(dá)式中數(shù)據(jù)類型轉(zhuǎn)換2.6表達(dá)式中數(shù)據(jù)類型轉(zhuǎn)換自動(dòng)類型轉(zhuǎn)換C語言規(guī)定,不同類型的數(shù)據(jù)在參加運(yùn)算前會(huì)自動(dòng)轉(zhuǎn)換成相同類型,再進(jìn)行運(yùn)算。轉(zhuǎn)換的規(guī)則是:如果運(yùn)算的數(shù)據(jù)有float型或double型,自動(dòng)轉(zhuǎn)換成double型再運(yùn)算,結(jié)果為double型。如果運(yùn)算的數(shù)據(jù)中無float型或double型,但是有l(wèi)ong型,數(shù)據(jù)自動(dòng)轉(zhuǎn)換成long型再運(yùn)算,結(jié)果為long型。其余情況為int型。doublefloatlongunsignedintchar,short高低/*------------------------------------------------

程序L2_4.C功能:自動(dòng)類型轉(zhuǎn)換示例。

------------------------------------------------*/#include<stdio.h>main(){floatx,y;longm,n;x=3/2+8/3;y=3.0/2+8/3.0;m=1*2*3*4*5*6*7*8*9;n=1L*2*3*4*5*6*7*8*9;printf("x=%f,y=%f,m=%ld,n=%ld\n",x,y,m,n);}結(jié)果:X=3.000000,y=4.166667,m=-30336,n=362880強(qiáng)制類型轉(zhuǎn)換在C語言中也可以使用強(qiáng)制類型轉(zhuǎn)換符,強(qiáng)迫表達(dá)式的值轉(zhuǎn)換為某一特定類型。強(qiáng)制類型轉(zhuǎn)換形式為:

(類型)表達(dá)式

強(qiáng)制類型轉(zhuǎn)換最主要的的用途一是滿足一些運(yùn)算對(duì)類型的特殊要求,例如求余運(yùn)算符“%”,要求運(yùn)算符兩側(cè)的數(shù)據(jù)為整型,(int)2.5%3二是防止丟失整數(shù)除法中的小數(shù)部分。2.7計(jì)算機(jī)中數(shù)據(jù)的表示計(jì)算機(jī)最主要的功能是處理數(shù)據(jù),如數(shù)值、文字、圖形、圖像等。而這些數(shù)據(jù)必須被轉(zhuǎn)換為相應(yīng)的數(shù)字編碼,才能進(jìn)行存儲(chǔ)和處理。二進(jìn)制、八進(jìn)制、十六進(jìn)制進(jìn)制之間的轉(zhuǎn)換二進(jìn)制數(shù)在內(nèi)存中的表示字符編碼IEEE浮點(diǎn)數(shù)表示法目前已知的所有的C/C++編譯器都是按照IEEE(國(guó)際電子電器工程師協(xié)會(huì))制定的IEEE浮點(diǎn)數(shù)表示法來進(jìn)行計(jì)算的。這種結(jié)構(gòu)是一種科學(xué)表示法,用符號(hào)(正或負(fù))、指數(shù)和尾數(shù)來表示,底數(shù)被確定為2,也就是說把一個(gè)浮點(diǎn)數(shù)表示為尾數(shù)乘以2的指數(shù)次方再加上符號(hào)。IEEE浮點(diǎn)數(shù)表示法float共計(jì)42位,折合4字節(jié)由最高到最低位分別為31、30、29、……、0位31位是符號(hào)位,1表示該數(shù)為負(fù),0反之。30-23位,一共8位是指數(shù)位。22-0位,一共23位是尾數(shù)位。123456.0f直接將整數(shù)部轉(zhuǎn)化為二進(jìn)制表示:11110001001000000然后將小數(shù)點(diǎn)向左移,一直移到離最高位只有1位,就是最高位的1:1.11100010010000000一共移動(dòng)了16位小數(shù)點(diǎn)每向左移一位就等于在以2為底的科學(xué)計(jì)算法表示中指數(shù)+1,所以原數(shù)就等于:1.11100010010000000*(2^16)123456.0f指數(shù)部分,一共8位,統(tǒng)一把十進(jìn)制的整數(shù)化為二進(jìn)制時(shí),都先加上127,在這里,我們的16加上127后就變成了143,二進(jìn)制表示為:1000111112345.6f這個(gè)數(shù)是正的,所以符號(hào)位是0我們按照前面講得格式把它拼起來:01000111111100010010000000000000/*--------------------------------------------------------------------

程序L2_5.C:十進(jìn)制、八進(jìn)制、十六進(jìn)制數(shù)據(jù)及其輸出

------------------------------------------------------------------------*/

#include<stdio.h>main(){inta,b,c,m,n;a=11;b=011;c=0x11;m=65;n=97;printf("十進(jìn)制11等于%d,八進(jìn)制11等于%d,十六進(jìn)制11等于%d,\n",a,b,c);printf("十進(jìn)制八進(jìn)制十六進(jìn)制字符\n");printf("65%o%x%c,\n",m,m,m);printf("97%o%x%c,\n",n,n,n);}/*-----------------------------------------------------------------------------

程序L2_6.C:從鍵盤輸入一個(gè)大寫字母,輸出其對(duì)應(yīng)的小寫字母。

-------------------------------------------------------------------------------*/#include<stdio.h>main(){charc;printf("請(qǐng)輸入大寫字母\n");scanf("%c",&c);c=c+32;/*大寫字母的ASCII碼加上32為其對(duì)應(yīng)的小寫字母*/printf("其小寫字母為%c\n",c);}/*-----------------------------------------------------------------

程序L2_7.C:已知x=3.2,y=7,z=2,計(jì)算y/3*3.2-2的值。

-----------------------------------------------------------------*/#include<stdio.h>main(){floatx=3.2,s;inty=7,z=2;charc;s=y/3*3.2-2;printf("resultis%f\n",s);}/*--------------------------------------------------------------------------

程序L2_8.C:編寫一個(gè)程序,用于輸入一個(gè)學(xué)生的姓名、學(xué)號(hào)、英語、數(shù)學(xué)、計(jì)算機(jī)成績(jī),輸出學(xué)生姓名、學(xué)號(hào)和平均成績(jī)。

------------------------------------------------------------------------------*/

#include<stdio.h>main(){charname[31];/*

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論