C語言程序基本數(shù)據(jù)類實型 字符型和數(shù)據(jù)類型的轉(zhuǎn)換_第1頁
C語言程序基本數(shù)據(jù)類實型 字符型和數(shù)據(jù)類型的轉(zhuǎn)換_第2頁
C語言程序基本數(shù)據(jù)類實型 字符型和數(shù)據(jù)類型的轉(zhuǎn)換_第3頁
C語言程序基本數(shù)據(jù)類實型 字符型和數(shù)據(jù)類型的轉(zhuǎn)換_第4頁
C語言程序基本數(shù)據(jù)類實型 字符型和數(shù)據(jù)類型的轉(zhuǎn)換_第5頁
已閱讀5頁,還剩48頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

C語言程序基本數(shù)據(jù)類型C語言課程基礎(chǔ)部分的任務(wù)1.上節(jié)課內(nèi)容回顧2.任務(wù)四C語言程序基本數(shù)據(jù)類實型字符型和數(shù)據(jù)類型的轉(zhuǎn)換任務(wù)單1、實型數(shù)據(jù)C語言課程基礎(chǔ)部分的任務(wù)2、字符型數(shù)據(jù)3、字符串常量6、作業(yè)4、賦值語句5、變量的數(shù)據(jù)類型的轉(zhuǎn)換C語言程序數(shù)據(jù)類型程序=算法+數(shù)據(jù)結(jié)構(gòu)+程序設(shè)計方法+語言工具和環(huán)境C語言的數(shù)據(jù)類型數(shù)據(jù)類型基本類型構(gòu)造類型指針類型(

)空類型(void)字符型(char)數(shù)值類型枚舉類型(enum)數(shù)組類型([])結(jié)構(gòu)體類型(struct)共用體類型(union)整型(short,int,long,unsigbed)實型單精度型(float)雙精度型(double)C語言程序基本數(shù)據(jù)類型C語言提供的基本數(shù)據(jù)類型包括

int(整)型

float(單精度實)型double(雙精度實)型char(字符)型。并且還可以通過使用short(短)、long(長)、signed(有符號)和unsigned(無符號)修飾char和int,用long修飾double,形成更多的類型。C語言程序基本數(shù)據(jù)類型-整型

注意:括號表示其中的內(nèi)容是可選的。共六種有符號基本整型有符號短整型有符號長整型無符號基本整型無符號短整型無符號長整型(signed)int(signed)short(int)(signed)long(int)unsignedintunsignedshort(int)unsignedlong(int)整型變量的分類C語言程序基本數(shù)據(jù)類型-整型整數(shù)變量類型的有關(guān)數(shù)據(jù):整型數(shù)據(jù)類型所占位數(shù)所占字節(jié)數(shù)

數(shù)的表示范圍[signed]int162(一個字節(jié)占8位)-32768~32767,即-215~215-1[signed]short[int]162-32768~32767,即-215~215-1[signed]long[int]324-2147483648~214748367,即-231~231-1unsigned[int]1620~65535,即0~216-1unsignedshort[int]1620~65535,即0~216-1unsignedlong[int]3240~4294967295,即0~232-1整型數(shù)據(jù)的溢出(修改)

#include<stdio.h>

main()

{

shortinta,b;

a=32767;

b=a+1;

printf(“%d,%d\n”,a,b);

}

C語言程序基本數(shù)據(jù)類型-整型說明:數(shù)值是以補(bǔ)碼表示的。一個整型變量只能容納-32768~32767范圍內(nèi)的數(shù),無法表示大于32767或小于-32768的數(shù)。遇此情況就發(fā)生“溢出”。數(shù)據(jù)輸入輸出時,%d代表的是輸入輸出整數(shù)運(yùn)行結(jié)果:32767,-32768整型數(shù)據(jù)的溢出

C語言程序基本數(shù)據(jù)類型-整型32767:0111111111111111-327681000000000000000說明:數(shù)值是以補(bǔ)碼表示的。一個整型變量只能容納-32768~32767范圍內(nèi)的數(shù),無法表示大于32767或小于-32768的數(shù)。遇此情況就發(fā)生“溢出”。例題#include<stdio.h>main(){longx,y;inta,b,c,d;x=50000;y=60000;a=7;b=8;c=x+a;d=y+b;printf("c=x+a=%d,d=y+b=%d\n",c,d);}C語言程序基本數(shù)據(jù)類型-整型數(shù)據(jù)輸入輸出時,%d代表的是輸入輸出的是整數(shù)從程序中可以看到:x,y是長整型變量,a,b是基本整型變量。它們之間允許進(jìn)行運(yùn)算,運(yùn)算結(jié)果為長整型。但c,d被定義為基本整型,因此最后結(jié)果為基本整型。本例說明,不同類型的量可以參與運(yùn)算并相互賦值。其中的類型轉(zhuǎn)換是由編譯系統(tǒng)自動完成的。有關(guān)類型轉(zhuǎn)換的規(guī)則將在以后介紹。c=x+a=50007,d=y+b=60008C語言程序基本數(shù)據(jù)類型-整型實型數(shù)據(jù)實型常量實型常量的表示方法實型也稱為浮點(diǎn)型。實型常量也稱為實數(shù)或者浮點(diǎn)數(shù)。在C語言中,實數(shù)只采用十進(jìn)制。它有二種形式:十進(jìn)制小數(shù)形式,指數(shù)形式。C語言程序基本數(shù)據(jù)類型-實型浮點(diǎn)型數(shù)據(jù)浮點(diǎn)型常量的表示方法兩種表示形式小數(shù)指數(shù)0.1233e-3注意:字母e(或E)之前必須有數(shù)字,且e后面的指數(shù)必須為整數(shù):1e3、1.8e-3、-123e-6、-.1e-3e3、2.1e3.5、.e3、e

C語言程序基本數(shù)據(jù)類型-實型十進(jìn)制數(shù)形式:由數(shù)碼0~9和小數(shù)點(diǎn)組成。例如:0.0、25.0、5.789、0.13、5.0、300.、-267.8230等均為合法的實數(shù)。注意,必須有小數(shù)點(diǎn)。C語言程序基本數(shù)據(jù)類型-實型指數(shù)形式:由十進(jìn)制數(shù),加階碼標(biāo)志“e”或“E”以及階碼(只能為整數(shù),可以帶符號)組成。其一般形式為:aEn(a為十進(jìn)制數(shù),n為十進(jìn)制整數(shù))其值為a*10n。如:2.1E5(等于2.1*105)3.7E-2(等于3.7*10-2)0.5E7(等于0.5*107)-2.8E-2(等于-2.8*10-2)以下不是合法的實數(shù):345(無小數(shù)點(diǎn))E7(階碼標(biāo)志E之前無數(shù)字)-5(無階碼標(biāo)志)53.-E3(負(fù)號位置不對)2.7E(無階碼)標(biāo)準(zhǔn)C允許浮點(diǎn)數(shù)使用后綴。后綴為“f”或“F”即表示該數(shù)為浮點(diǎn)數(shù)。如356f和356.是等價的。C語言程序基本數(shù)據(jù)類型-實型例題1\2#include<stdio.h>main(){printf("%f\n",356.);printf("%f\n",356);}C語言程序基本數(shù)據(jù)類型-實型數(shù)據(jù)輸入輸出時,%f代表的是輸入輸出的是浮點(diǎn)數(shù),

%d代表的是輸入輸出的是整數(shù)#include<stdio.h>main(){printf("%f\n",356.);printf("%d\n",356);}規(guī)范化的指數(shù)形式

在字母e(或E)之前的小數(shù)部分中,小數(shù)點(diǎn)左邊應(yīng)有一位(且只能有一位)非零的數(shù)字。

例如:123.456可以表示為:

123.456e0,12.3456e1,1.23456e2,0.123456e3,0.0123456e4,0.00123456e5

其中的1.23456e3稱為“規(guī)范化的指數(shù)形式”。C語言程序基本數(shù)據(jù)類型-實型

實型數(shù)據(jù)浮點(diǎn)型變量(1)浮點(diǎn)型數(shù)據(jù)在內(nèi)存中的存放形式

一個浮點(diǎn)型數(shù)據(jù)一般在內(nèi)存中占4個字節(jié)(32位)。與整型數(shù)據(jù)的存儲方式不同,浮點(diǎn)型數(shù)據(jù)是按照指數(shù)形式存儲的。系統(tǒng)把一個浮點(diǎn)型數(shù)據(jù)分成小數(shù)部分和指數(shù)部分,分別存放。指數(shù)部分采用規(guī)范化的指數(shù)形式。C語言程序基本數(shù)據(jù)類型-實型類型位數(shù)數(shù)的范圍有效數(shù)字float32

10-37~10386~7位double型64

10-307~1030815~16位longdouble12810-4931~10493218~19位(2)浮點(diǎn)型變量的分類浮點(diǎn)型變量分為單精度(float型)、雙精度(double型)和長雙精度型(longdouble)三類形式。C語言程序基本數(shù)據(jù)類型-實型例題

#include<stdio.h>main(){floata;doubleb;a=33333.33333;b=33333.33333333333333;printf("%f\n%f\n",a,b);}從本例可以看出由于a是單精度浮點(diǎn)型,有效位數(shù)只有七位。而整數(shù)已占五位,故小數(shù)二位后之后均為無效數(shù)字。b是雙精度型,有效位為十六位。但C++規(guī)定小數(shù)后最多保留六位,其余部分四舍五入。C語言程序基本數(shù)據(jù)類型-實型浮點(diǎn)型數(shù)據(jù)的舍入誤差#include<stdio.h>main(){floata,b;a=1.234567e10;b=a+20;printf(“%e\n”,b);}

C語言程序基本數(shù)據(jù)類型-實型運(yùn)行結(jié)果:1.234567e10說明:一個浮點(diǎn)型變量只能保證的有效數(shù)字是7位有效數(shù)字,后面的數(shù)字是無意義的,并不準(zhǔn)確地表示該數(shù)。應(yīng)當(dāng)避免將一個很大的數(shù)和一個很小的數(shù)直接相加或相減,否則就會“丟失”小的數(shù)浮點(diǎn)型數(shù)據(jù)浮點(diǎn)型常量的類型

C編譯系統(tǒng)將浮點(diǎn)型常量作為雙精度來處理。

例如:f=2.45678*4523.65

系統(tǒng)先把2.45678和4523.65作為雙精度數(shù),然后進(jìn)行相乘的運(yùn)算,得到的乘也是一個雙精度數(shù)。最后取其前7位賦給浮點(diǎn)型變量f。如是在數(shù)的后面加字母f或F(如1.65f,654.87F),這樣編譯系統(tǒng)就會把它們按單精度(32位)處理。C語言程序基本數(shù)據(jù)類型-實型字符型數(shù)據(jù)用一對單引號括起來的單個字符,稱為字符常量字符可以是字符集中任意字符。但數(shù)字作為字符型參與數(shù)值運(yùn)算時數(shù)字的值就不是它的本身的值。C語言還允許使用一種特殊形式的字符常量,就是以反斜杠“\”開頭的轉(zhuǎn)義字符。

字符變量的類型關(guān)鍵字為char,一般占用1字節(jié)內(nèi)存單元。字符變量用來存儲字符常量。將一個字符常量存儲到一個字符變量中,實際上是將該字符的ASCII碼值(無符號整數(shù))存儲到內(nèi)存單元中。可作為整數(shù)和字符兩種形式輸出,可對字符進(jìn)行整數(shù)運(yùn)算(ASCII碼值)。C語言程序基本數(shù)據(jù)類型-字符型字符常量(1)用單引號包含的一個字符是字符型常量(2)只能包含一個字符C語言程序基本數(shù)據(jù)類型-字符型例‘a(chǎn)’,’A’,‘1’‘a(chǎn)bc’、“a”

字符變量字符變量用來存儲字符常量,即單個字符。字符變量的類型說明符是char。字符變量類型定義的格式和書寫規(guī)則都與整型變量相同。例如:

chara,b;字符數(shù)據(jù)在內(nèi)存中的存儲形式及使用方法:每個字符變量被分配一個字節(jié)的內(nèi)存空間,因此只能存放一個字符。字符值是以ASCII碼的形式存放在變量的內(nèi)存單元之中的。C語言程序基本數(shù)據(jù)類型-字符型如X的十進(jìn)制ASCII碼是120,y的十進(jìn)制ASCII碼是121。對字符變量a,b賦予'x'和'y'值:a='x';b='y';實際上是在a,b兩個單元內(nèi)存放120和121的二進(jìn)制代碼:a:01111000b:01111001所以也可以把它們看成是整型量。C語言允許對整型變量賦以字符值,也允許對字符變量賦以整型值。在輸出時,允許把字符變量按整型量輸出,也允許把整型量按字符量輸出。

C語言程序基本數(shù)據(jù)類型-字符型向字符變量賦以整數(shù)。main(){chara,b;a=120;b=121;

printf("%c,%c\n",a,b);

printf("%d,%d\n",a,b);

}C語言程序基本數(shù)據(jù)類型-字符型x,y120,121Pressanykeytocontinue數(shù)據(jù)輸入輸出時,%c代表的是輸入輸出的是字符數(shù)據(jù)本程序中定義a,b為字符型,但在賦值語句中賦以整型值。從結(jié)果看,a,b值的輸出形式取決于printf函數(shù)格式串中的格式符,數(shù)據(jù)輸入輸出時,%c代表的是輸入輸出的是字符常量,當(dāng)格式符為"c"時,對應(yīng)輸出的變量值為字符,當(dāng)格式符為"d"時,對應(yīng)輸出的變量值為整數(shù)。C語言程序基本數(shù)據(jù)類型-字符型向字符變量賦以整數(shù)

#include<stdio.h>

main()

{

charc1,c2;

c1=97;

c2=98;

printf("%c%c\n",c1,c2);

printf("%d%d\n",c1,c2);

}C語言程序基本數(shù)據(jù)類型-字符型運(yùn)行結(jié)果:ab

9798說明:在第3和第4行中,將整數(shù)97和98分別賦給c1和c2,它的作用相當(dāng)于以下兩個賦值語句:

c1=′a′;c2=′b′;因為’a’和’b’的ASCII碼為97和98向字符變量賦以整數(shù)main(){chara,b;a=10000;b=121;printf("%d,%d\n",a,b);}整型量的內(nèi)存最少為二字節(jié)量,字符量為單字節(jié)量,當(dāng)整型量按字符型量處理時,只有低八位字節(jié)參與處理。

C語言程序基本數(shù)據(jù)類型-字符型程序運(yùn)算結(jié)果16,121分析10000的內(nèi)存存放形式16位應(yīng)該是0010011100010000當(dāng)整型量按字符型量處理時,只有低八位字節(jié)參與處理。低八位的二進(jìn)制數(shù)值為00010000換算為10進(jìn)制是16所以程序運(yùn)算結(jié)果16,121C語言程序基本數(shù)據(jù)類型-字符型結(jié)論

整型量的內(nèi)存最少為二字節(jié)量,字符量為單字節(jié)量,當(dāng)整型量按字符型量處理時,只有低八位字節(jié)參與處理。低八位運(yùn)算的最大取值范圍是0—11111111,換算到10進(jìn)制就是0——255。C語言程序基本數(shù)據(jù)類型-字符型大小寫字母的轉(zhuǎn)換#include<stdio.h>

main()

{

charc1,c2;

c1='a';

c2='b';

c1=c1-32;

c2=c2-32;

printf("%c%c\n",c1,c2);

}C語言程序基本數(shù)據(jù)類型-字符型運(yùn)行結(jié)果:AB

說明:程序的作用是將兩個小寫字母a和b轉(zhuǎn)換成大寫字母A和B。從ASCII代碼表中可以看到每一個小寫字母比它相應(yīng)的大寫字母的ASCII碼大32。C語言允許字符數(shù)據(jù)與整數(shù)直接進(jìn)行算術(shù)運(yùn)算。a和b的大小寫轉(zhuǎn)換#include<stdio.h>

main(){chara,b;a='a';b='b';a=a-32;b=b-32;printf("%c,%c\n%d,%d\n",a,b,a,b);}C語言程序基本數(shù)據(jù)類型-字符型A,B65,66PressanykeytocontinueC語言程序基本數(shù)據(jù)類型-字符型轉(zhuǎn)義字符字符形式\n\t\v\b\r\f\\\'\ddd\xxh功能換行橫向跳格(即跳到下一個輸出區(qū))豎向跳格退格回車走紙換頁反斜杠字符“\”單引號(撇號)字符1到3位8進(jìn)制數(shù)所代表的字符1到2位16進(jìn)制數(shù)所代表的字符說明:

廣義地講,C語言字符集中的任何一個字符均可用轉(zhuǎn)義字符來表示。表中的\ddd和\xhh正是為此而提出的。ddd和hh分別為八進(jìn)制和十六進(jìn)制的ASCII代碼。如\101表示字母"A",\102表示字母"B",\134表示反斜線,\XOA表示換行等。

C語言程序基本數(shù)據(jù)類型-字符型字符串常量字符串常量是用一對雙引號括起來的若干字符序列。例如:“CHINA”,“Cprogram”,“$12.5”等都是合法的字符串常量。C語言規(guī)定:在存儲字符串常量時,由系統(tǒng)在字符串的末尾自動加一個‘\0’作為字符串的結(jié)束標(biāo)志?!產(chǎn)’是字符常量,而“a”是字符串常量。不能將一個字符串賦給一個字符變量。C語言程序基本數(shù)據(jù)類型-字符串常量例如:字符串"Cprogram"在內(nèi)存中所占的字節(jié)為:Cprogram\0字符常量'a'和字符串常量"a"雖然都只有一個字符,但在內(nèi)存中的情況是不同的。'a'在內(nèi)存中占一個字節(jié),可表示為:a"a"在內(nèi)存中占二個字節(jié),可表示為:a\0C語言程序基本數(shù)據(jù)類型-字符串常量字符串常量和字符常量是不同的量。它們之間主要有以下區(qū)別:

字符常量由單引號括起來,字符串常量由雙引號括起來。字符常量只能是單個字符,字符串常量則可以含一個或多個字符??梢园岩粋€字符常量賦予一個字符變量,但不能把一個字符串常量賦予一個字符變量。在C語言中沒有相應(yīng)的字符串變量。這是與BASIC語言不同的。但是可以用一個字符數(shù)組來存放一個字符串常量。在數(shù)組一章內(nèi)予以介紹。字符常量占一個字節(jié)的內(nèi)存空間。字符串常量占的內(nèi)存字節(jié)數(shù)等于字符串中字節(jié)數(shù)加1。增加的一個字節(jié)中存放字符"\0"(ASCII碼為0)。這是字符串結(jié)束的標(biāo)志。C語言程序基本數(shù)據(jù)類型-字符串常量變量賦初值變量賦初值在程序中常常需要對變量賦初值,以便使用變量。語言程序中可有多種方法為變量提供初值。先介紹在作變量定義的同時給變量賦以初值的方法。這種方法稱為初始化。在變量定義中賦初值的一般形式為:類型說明符變量1=值1,變量2=值2,……;C語言程序基本數(shù)據(jù)類型-賦值語句變量賦初值

(1)C語言允許在定義變量的同時使變量初始化。如:inta=3;

指定a為整型變量,初值為3

floatf=3.56;

指定f為浮點(diǎn)型變量,初值為3.56

charc=‘a(chǎn)’;

指定c為字符變量,初值為‘a(chǎn)’變量賦初值可以使被定義的變量的一部分賦初值。如:

inta,b,c=5;表示指定a、b、c為整型變量,但只對c初始化,c的初值為5如果對幾個變量賦以同一個初值,應(yīng)寫成:inta=3,b=3,c=3;

表示a、b、c的初值都是3。不能寫成∶

inta=b=c3;

注意:初始化不是在編譯階段完成的而是在程序運(yùn)行時執(zhí)行本函數(shù)時賦初值的,相當(dāng)于有一個賦值語句。

C語言程序基本數(shù)據(jù)類型-賦值語句例如inta=3;intb,c=5;floatx=3.2,y=3.0,z=0.75;charch1='K',ch2='P';應(yīng)注意,在定義中不允許連續(xù)賦值,如a=b=c=5是不合法的。C語言程序基本數(shù)據(jù)類型-賦值語句【一部分變量賦初值】

#include<stdio.h>main(){inta=3,b,c=5;b=a+c;printf("a=%d,b=%d,c=%d\n",a,b,c);}a=3,b=8,c=5C語言程序基本數(shù)據(jù)類型-賦值語句變量的數(shù)據(jù)類型的轉(zhuǎn)換

變量的數(shù)據(jù)類型是可以轉(zhuǎn)換的。轉(zhuǎn)換的方法有兩種:1)一種是自動轉(zhuǎn)換,2)一種是強(qiáng)制轉(zhuǎn)換。C語言程序基本數(shù)據(jù)類型-變量的數(shù)據(jù)類型的轉(zhuǎn)換變量的數(shù)據(jù)類型的自動轉(zhuǎn)換

自動轉(zhuǎn)換發(fā)生在不同數(shù)據(jù)類型的量混合運(yùn)算時,由編譯系統(tǒng)自動完成。C語言程序基本數(shù)據(jù)類型-變量的數(shù)據(jù)類型的轉(zhuǎn)換

自動轉(zhuǎn)換遵循以下規(guī)則:

1)若參與運(yùn)算量的類型不同,則先轉(zhuǎn)換成同一類型,然后進(jìn)行運(yùn)算。2)轉(zhuǎn)換按數(shù)據(jù)長度增加的方向進(jìn)行,以保證精度不降低。如int型和long型運(yùn)算時,先把int量轉(zhuǎn)成long型后再進(jìn)行運(yùn)算。3)所有的浮點(diǎn)運(yùn)算都是以雙精度進(jìn)行的,即使僅含float單精度量運(yùn)算的表達(dá)式,也要先轉(zhuǎn)換成double型,再作運(yùn)算。4)char型和short型參與運(yùn)算時,必須先轉(zhuǎn)換成int型。5)在賦值運(yùn)算中,賦值號兩邊量的數(shù)據(jù)類型不同時,賦值號右邊量的類型將轉(zhuǎn)換為左邊量的類型。C語言程序基本數(shù)據(jù)類型-變量的數(shù)據(jù)類型的轉(zhuǎn)換變量的數(shù)據(jù)類型的自動轉(zhuǎn)換整型、單精度型、雙精度型數(shù)據(jù)可以混合運(yùn)算。不同類型的數(shù)據(jù)要先轉(zhuǎn)換成同一類型,然后進(jìn)行運(yùn)算。轉(zhuǎn)換規(guī)則如圖:箭頭只表示轉(zhuǎn)換方向,并不是依次轉(zhuǎn)換。轉(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

提交評論