C語言程序設(shè)計第2章基本數(shù)據(jù)類型課件_第1頁
C語言程序設(shè)計第2章基本數(shù)據(jù)類型課件_第2頁
C語言程序設(shè)計第2章基本數(shù)據(jù)類型課件_第3頁
C語言程序設(shè)計第2章基本數(shù)據(jù)類型課件_第4頁
C語言程序設(shè)計第2章基本數(shù)據(jù)類型課件_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

高級語言程序設(shè)計

2023/7/241概況1

您的內(nèi)容打在這里,或者通過復(fù)制您的文本后。概況2

您的內(nèi)容打在這里,或者通過復(fù)制您的文本后。概況3

您的內(nèi)容打在這里,或者通過復(fù)制您的文本后。+++整體概況第二章基本數(shù)據(jù)類型主講:計算機(jī)學(xué)院朱立華內(nèi)容提要C語言的數(shù)據(jù)類型——存儲與處理的整體體現(xiàn)常量與變量的概念、區(qū)別基本類型之整型、字符型、實型:常量在源程序中的表示形式及取值范圍常量在內(nèi)存中的存儲格式變量的定義及值的獲取對該類型提供的基本操作C源程序的基本結(jié)構(gòu)及程序中的6種基本符號輸入/輸出控制2023/7/244C語言的數(shù)據(jù)類型

計算機(jī)處理存儲的數(shù)據(jù),存儲是為了處理,處理依賴于存儲數(shù)據(jù)存儲兩要素:存儲空間的大小,數(shù)據(jù)的存儲格式數(shù)據(jù)的處理主要是指對數(shù)據(jù)可以實施的最基本操作C語言通過數(shù)據(jù)類型體現(xiàn)存儲與處理的統(tǒng)一因此,C語言的每一種數(shù)據(jù)類型,掌握以下幾方面:該類型數(shù)據(jù)占多少字節(jié)

該類型數(shù)據(jù)在內(nèi)存中的存儲格式對該類型的數(shù)據(jù)提供哪些基本操作該類型數(shù)據(jù)的取值范圍2023/7/245C語言的數(shù)據(jù)類型

基本整型(int)長類型(long)數(shù)據(jù)類型基本類型短類型(short)無符號整型(unsigned)整型實型(浮點型)單精度實型(float)雙精度實型(double)字符型(char)枚舉型共同體類型數(shù)組類型結(jié)構(gòu)體類型構(gòu)造類型指針類型空類型(void)2023/7/246常量與變量無論何種類型的數(shù)據(jù),在程序運行過程中,其存儲空間中的內(nèi)容有兩種狀態(tài):可以變化和不可以變化,對應(yīng)于變量與常量。

變量:存儲空間中的數(shù)據(jù)可以被修改,這個空間就稱為變量空間,簡稱變量。常量:存儲空間中的數(shù)據(jù)不能被修改,這個空間就稱為常量空間,簡稱常量(有字面常量和符號常量兩種)

無論是變量還是常量,都需要一個名稱,在程序中代表相應(yīng)的存儲空間中的內(nèi)容。變量名需要定義,而字面常量名無需定義,直接用字面常量值(有時后面再加特定后綴)表示。

2023/7/247常量與變量變量名的定義:數(shù)據(jù)類型名 變量名1[,變量名2,變量名3,…,變量名n];例1:inta;例2:intx,y,z;在變量名定義之后,系統(tǒng)根據(jù)其類型為變量分配了一定大小的內(nèi)存空間,該內(nèi)存空間中是隨機(jī)數(shù),要使變量有確切值,可以通過下列3種方式之一:賦值:先定義變量,再用賦值號“=”進(jìn)行賦值初始化:在定義變量的同時指定初值讀入:先定義變量,再從鍵盤或文件提供數(shù)據(jù)必須以分號結(jié)束[]中的內(nèi)容為可選項,可能沒有同一類型定義多個變量時,變量間以逗號隔開變量名必須是用戶自定義標(biāo)識符定義一個整型變量,變量名為a定義3個整型變量,彼此逗號隔開2023/7/2483.1416F52388L常量與變量intm;m=345;longn=52388L;

doublex=3.1416;floaty=3.1416F;charch='A';?m345345345定義變量賦值初始化n5238852388x3.14163.14163.14163.1416y3.1416初始化初始化3.1416初始化‘A’chAA總結(jié):以上例子中,白字代表變量名,黃字代表常量名,綠框代表變量空間,紅框代表常量空間在程序中變量以變量名的形式出現(xiàn),代表的是變量空間中的內(nèi)容,變量名需要定義;字面常量以(字面)常量名的形式出現(xiàn),代表的是字面常量空間中的內(nèi)容,字面常量名無需定義,其真正代表的常量是不帶后綴等標(biāo)識的。2023/7/249常量與變量程序2.1 常量空間與變量空間操作示例#include<stdio.h> intmain(){

intm,n; n=125; m=n;printf("Theresultis:\n");printf("%d,%d,%d\n",n,m,125); printf("%d,%d,%d\n",sizeof(n),sizeof(m),sizeof(125)); printf("%x,%x\n",&n,&m);

return0;}

通過本程序,介紹下面3方面知識:(1)C語言源程序的結(jié)構(gòu)(2)C語言源程序中的6種符號(3)輸出函數(shù)printf的使用<運行結(jié)果>Theresultis:125,125,1254,4,412ff78,12ff7

動態(tài)演示過程2023/7/2410C語言源程序的結(jié)構(gòu)C語言的源程序可以由一個或多個文件組成每個文件可由一個或多個函數(shù)組成,函數(shù)是組成C程序的基本單位

程序必須有且只有一個main函數(shù),是系統(tǒng)調(diào)用應(yīng)用程序的起點函數(shù)由函數(shù)頭和函數(shù)體兩部分組成函數(shù)頭3要素:返回類型函數(shù)名(形參表)函數(shù)體:由一對大括號括起,內(nèi)含0或多條語句語句必須由分號結(jié)束源程序中可以有注釋(不參加編譯):/*…*/或//…2023/7/2411#include<stdio.h> intmain(){//以左大括號表示主函數(shù)體開始

intm,n; n=125; m=n;printf("Theresultis:\n");printf("%d,%d,%d\n",n,m,125); printf("%d,%d,%d\n",sizeof(n),sizeof(m),sizeof(125));printf("%x,%x\n",&n,&m);

return0;}

//以左大括號表示主函數(shù)體開始

函數(shù)頭函數(shù)體函數(shù)返回類型函數(shù)名形參表,此時無形參定義兩個整型變量賦值,將常量賦給變量賦值,用有確定值的變量賦給另一個變量輸出提示信息輸出變量和常量的值輸出變量和常量所占字節(jié)大小C語言中的一個運算符,計算數(shù)據(jù)所占字節(jié)大小的,參數(shù)可以是常量、變量、表達(dá)式、類型名以十六進(jìn)制形式輸出變量在內(nèi)存中的起始地址返回調(diào)用點,結(jié)束程序文件包含,此文件中有printf函數(shù)的原型/*程序2.1常量空間與變量空間操作示例,這是一個單文件的程序,文件名:li2_1.c*/多行注釋形式單行注釋形式單行注釋形式2023/7/2412C語言源程序中的6種符號(1)關(guān)鍵字(Keyword):C語言中預(yù)先規(guī)定的具有固定功能和意義的單詞或單詞的縮寫,32個都有特定意義,用法固定(2)標(biāo)識符(identifier):以字母或下劃線開頭,后面跟字母、數(shù)字、下劃線的任意序列。標(biāo)識符又分為系統(tǒng)預(yù)定義標(biāo)識符和用戶自定義標(biāo)識符兩種。(標(biāo)識符中的大小寫字母有區(qū)別)(3)運算符(operator):C語言提供了34個運算符,分為15個不同的優(yōu)先級,完成不同的運算功能(4)分隔符(separator):相鄰的關(guān)鍵字、標(biāo)識符之間必須使用分隔符,不同場合選用:空格、回車/換行、逗號、分號

(5)其它符號:有一些有特定含義的其它符號:{}、//、/**/(6)數(shù)據(jù)(data):各種類型的字面值常量

不可以用關(guān)鍵字,最好也不用系統(tǒng)預(yù)定義標(biāo)識符2023/7/2413#include<stdio.h> intmain(){//以左大括號表示主函數(shù)體開始

intm,n; n=125; m=n;printf("Theresultis:\n");printf("%d,%d,%d\n",n,m,125); printf("%d,%d,%d\n",sizeof(n),sizeof(m),sizeof(125));printf("%x,%x\n",&n,&m);

return0;}

//以左大括號表示主函數(shù)體開始

/*程序2.1常量空間與變量空間操作示例,這是一個單文件的程序,文件名:li2_1.c*/系統(tǒng)預(yù)定義標(biāo)識符用戶自定義標(biāo)識符關(guān)鍵字逗號,分隔一條語句中的并列成分分號,用于語句結(jié)束后,分隔相鄰語句空格,用于相鄰關(guān)鍵字、標(biāo)識符之間,不可用其他分隔符時其他符號常量運算符2023/7/2414C程序通過格式輸出函數(shù)printf輸出任何類型的數(shù)據(jù)printf函數(shù)的調(diào)用形式:printf(格式控制字符串

[,輸出參數(shù)1,輸出參數(shù)2,……,輸出參數(shù)n]);printf("Theresultis:\n");

printf("%d,%d,%d\n",n,m,125);

printf("%d,%d,%d\n",sizeof(n),sizeof(m),sizeof(125));printf("%x,%x\n",&n,&m);printf(“%x,%x,%x\n”,&n,&m,&125);X小結(jié):每一種類型的數(shù)據(jù)都有特定的格式轉(zhuǎn)換說明符控制其輸出格式,具體請參考附錄I,在以后的使用中逐步熟悉輸出函數(shù)printf的使用該函數(shù)原型在stdio.h頭文件中,因此要用#include<stdio.h>文件包含命令用雙引號括起來的字符串

,其中的普通字符原樣輸出,格式轉(zhuǎn)換說明符以%開頭后跟一個字母,控制不同類型數(shù)據(jù)特定的輸出格式輸出參數(shù)可以是常量、變量、表達(dá)式,個數(shù)取決于格式控制串中格式轉(zhuǎn)換說明符的個數(shù),按從左到右的順序一一對應(yīng)格式?jīng)]有格式轉(zhuǎn)換說明符,原樣輸出所有字符輸出結(jié)果:Theresultis:有3個格式轉(zhuǎn)換說明符依次控制后面的3個參數(shù),按十進(jìn)制整數(shù)格式輸出,3個普通字符原樣輸出輸出結(jié)果:125,125,125輸出結(jié)果:4,4,4有兩個格式轉(zhuǎn)換說明符依次控制后面的2個參數(shù),按十六進(jìn)制整數(shù)格式輸出,兩個普通字符原樣輸出獲取變量的起始地址值輸出結(jié)果:12ff78,12ff7c對常量不能取地址2023/7/2415整型的種類數(shù)據(jù)類型名稱類型全稱

類型簡稱占字節(jié)數(shù)

取值范圍有符號基本整型signedintint2或4?取決于編譯器有符號短整型signedshortintshort2-216-1~216-1-1有符號長整型signedlongintlong4-232-1~232-1-1無符號基本整型unsignedintunsigned2或4?取決于編譯器無符號短整型unsignedshortintunsignedshort20~216-1無符號長整型unsignedlongintunsignedlong40~232-1整型:C語言中最常用最基本的類型。根據(jù)整型數(shù)據(jù)所占內(nèi)存空間大小分為:short、int、long根據(jù)二進(jìn)制數(shù)最高位的意義分為:signed、unsigned綜合考慮兩方面因素,共有6種整型,如下表所示:2字節(jié)2或4字節(jié)4字節(jié)最高位0表示正數(shù),1表示負(fù)數(shù)最高位0或1表示數(shù)值本身,不表示正負(fù)號2023/7/2416在C語言源程序中,可以用十進(jìn)制、八進(jìn)制、十六進(jìn)制這三種制式的數(shù)來表示各種類型的整型字面值常量形式:例:十進(jìn)制整數(shù):12、-91、-12L、93U、123Lu、902LU八進(jìn)制整數(shù):012、-071、-016L、072U、016LU、072lu、十六進(jìn)制整數(shù):0XA2、-0X9C3、-0X16L、0x1AU、0X2fLuN進(jìn)制數(shù)轉(zhuǎn)為十進(jìn)制數(shù)的方法:每一位的位值乘以位權(quán)再求和十進(jìn)制數(shù)轉(zhuǎn)為N進(jìn)制數(shù)的方法:除以N取余,本次商作為下一次被除數(shù),再除以N取余,直到被除數(shù)為0,所求余數(shù)按相反順序輸出例:072=7*8+2=58

7整型字面值常量的表示

正號+可以缺省,負(fù)號-必須要有符號位制式前綴該進(jìn)制數(shù)字(字母)序列后綴十進(jìn)制數(shù)無前綴八進(jìn)制數(shù)有前綴0十六進(jìn)制數(shù)有前綴0x(0X)十進(jìn)制數(shù)字:0~9八進(jìn)制數(shù)字:0~7十六進(jìn)制數(shù)字加字母:0~9、A~F(或a~f)長整型后綴L(或l)無符號數(shù)后綴U(或u)所以:58=07258870282023/7/2417剛才講到的三種進(jìn)制表示整型值是在C源程序中的,無論何種制式經(jīng)編譯后都以二進(jìn)制數(shù)的形式存在于內(nèi)存中整數(shù)的二進(jìn)制數(shù)有3種編碼方式:原碼、反碼、補碼,為了將減法統(tǒng)一到加法運算中,一般用補碼形式。正數(shù):原碼、反碼、補碼形式統(tǒng)一,最高位為0表示是正數(shù),余下的二進(jìn)制碼是其等效二進(jìn)制表示例:short型常量97轉(zhuǎn)換為二進(jìn)制數(shù)為:1100001,則其原碼、反碼、補碼為:負(fù)數(shù)的原碼:最高位為1,其余位與其相反數(shù)相同

負(fù)數(shù)的反碼:最高位為1,其余位是其原碼各位取反負(fù)數(shù)的補碼:最高位為1,其余位是其反碼最低位加1整型數(shù)據(jù)在內(nèi)存中的存儲格式-97的原碼1000000001100001-97的反碼1111111110011110-97的補碼100000000011000010的原碼有兩種形式:000000000000000010000000000000000的反碼有兩種形式:000000000000000011111111111111110的補碼只有一種形式:00000000000000002023/7/2418同一個二進(jìn)制序列,當(dāng)表示的整數(shù)是有符號數(shù)時,最高位代表正負(fù)性質(zhì),而不作為值計算;當(dāng)表示的整數(shù)是無符號數(shù)時,最高位就是數(shù)值本身,這時沒有負(fù)數(shù)。例:1000000000000000不同整數(shù)類型的數(shù)據(jù)范圍由數(shù)據(jù)所占的字節(jié)數(shù)以及是否為有符號數(shù)來決定。例:short的范圍:-215~215-1,1000000000000000~0111111111111111unsignedshort的范圍:0~216-1,0000000000000000~1111111111111111整型數(shù)據(jù)在內(nèi)存中的存儲格式當(dāng)表示無符號數(shù)時,此位代表數(shù)值本身,即215=32768當(dāng)表示有符號數(shù)時,此位代表負(fù)數(shù)。其絕對值為后面各位取反再加1,得到:1000000000000000,即215=32768,因此該數(shù)的值為:-327682023/7/2419整型變量的定義及值的獲取變量定義實質(zhì)上是為數(shù)據(jù)創(chuàng)建變量空間,需要指明類型和空間的名稱即變量名。C語言通過定義語句來完成這項工作。例:inta,b;shortc;unsignedlongx,y;變量值的獲取仍是通過三種方式之一:初始化、賦值、讀入。前兩種已介紹過,讀入方式可以使變量在運行時根據(jù)用戶的需要獲得相應(yīng)的值,比較靈活。scanf的調(diào)用:scanf(格式控制字符串,地址1[,地址2,…]);例:scanf(“%d%d”,&a,&b);scanf("%2d%3d%4d",&a,&b,&c);

scanf("%d,%d,%d",&a,&b,&c);

需熟悉的格式轉(zhuǎn)換說明符:%d(%i)、%c、%f(%e)、%lf、%s該函數(shù)原型定義在頭文件stdio.h中,因此要作文件包含:#include<stdio.h>究竟有幾個地址取決于格式控制串中有幾個格式轉(zhuǎn)換說明符,依從左到右順序一一對應(yīng)控制格式控制字符串包含格式轉(zhuǎn)換說明符和輸入分隔符,格式轉(zhuǎn)換說明符的意思和用法與printf函數(shù)中基本一致,輸入分隔符需要原樣輸入,建議用默認(rèn)的空白符來分隔,減少差錯使用空白符(空格、Tab、回車分隔數(shù)據(jù),輸入:1234<回車>,則a和b的值分別為12和34,建議使用這種形式輸入按指定寬度輸入數(shù)據(jù),輸入:123456789<回車>,則a、b、c的值分別為12、345、6789按指定分隔符輸入數(shù)據(jù),輸入:12,3456,78<回車>,則a、b、c的值分別為12、3456、782023/7/2420對整型數(shù)據(jù)的基本操作對整型數(shù)據(jù),C語言提供了多種運算:算術(shù)運算、關(guān)系運算、邏輯運算、位運算等,下一章詳細(xì)介紹算術(shù)運算中:%---取余,只能是兩個整數(shù)運算,結(jié)果為整數(shù)/---除法,如果兩個整數(shù)相除,得到整數(shù)商,正負(fù)號同被除數(shù)程序2.2

分別求出一個3位整數(shù)的各個數(shù)位上的值,然后按逆序輸出。分析:利用整數(shù)的取余運算和除法運算,求得3位數(shù)n的每1位上的數(shù)字,先求個位,再求十位,最后求百位。如果每求得一個數(shù)字就輸出1個,則只要用同一個變量存當(dāng)前位數(shù)字就可以了求百位:n/100求十位:n%100/10或n/10%10求個位:n%102023/7/2421對整型數(shù)據(jù)的基本操作#include<stdio.h>intmain(){ inti,n;//定義兩個整型變量i,n,變量先定義后使用n=578;//通過賦值語句使n獲得一個3位整數(shù)值

i=n%10; //對10取余求得個位數(shù)

printf("%d",i);//輸出個位數(shù)

i=n/10%10; //先整除10再對10取余求得十位數(shù)

printf("%d",i);//輸出十位數(shù)

i=n/100; //用整除100求得百位數(shù)

printf("%d\n",i);//輸出百位數(shù)

return0;} <運行結(jié)果>875動態(tài)演示過程2023/7/2422★對整型的總結(jié)整型有6種具體的類型:int、short、long、unsignedint、unsignedshort、unsignedlong,明確其長短及是否有符號.整型字面值常量在C源程序中有十進(jìn)制、八進(jìn)制、十六進(jìn)制表示在內(nèi)存中,整數(shù)的二進(jìn)制數(shù)以補碼形式存儲,注意最高位在表示無符號數(shù)和有符號數(shù)時的區(qū)別獲取整型變量值通過初始化、賦值、讀入3種方式之一讀入調(diào)用scanf函數(shù),注意格式轉(zhuǎn)換字符的正確使用,必須對變量取地址,盡量不用或少用分隔字符對整型數(shù)提供多種基本運算,注意除和取余的用法2023/7/2423字符型字面值常量的表示C語言中采用ASCII字符集中的字符表示字符型字面值常量,每個字符對應(yīng)一個唯一的整數(shù)編碼,占1字節(jié)在C語言源程序中,字符字面值常量需要用一對單引號作為定界符將字符值括起,有兩種表示方法:(1)用單引號括起的一個字符,例如:’A’、’9’、’%’。(2)用單引號括起的以反斜杠開頭的轉(zhuǎn)義字符,例如:’\n’、’\a’、’\t’、’\\’、’\’’、’\”’兩種通用的轉(zhuǎn)義字符表示:(1)’\ddd’:1到3位八進(jìn)制數(shù)所代表的字符(2)’\xhh’:1到2位十六進(jìn)制數(shù)所代表的字符例如字符A常量就有3種等效的表示:’A’、’\101’和’\x41’

例如換行符有3種等效的表示:’\n’、’\12’和’\xA’這種表示通常用于可見字符

這種表示通常用于控制字符。控制字符不可直接顯示,而是起特定的控制作用

可以用來表示任何字符,實際上是用該字符ASCII碼的八進(jìn)制和十六進(jìn)制數(shù)來表示

2023/7/2424字符型數(shù)據(jù)在內(nèi)存中的存儲格式128個標(biāo)準(zhǔn)字符和數(shù)值0~127一一對應(yīng),這種對應(yīng)使字符型數(shù)據(jù)在內(nèi)存中以1字節(jié)的整數(shù)二進(jìn)制形式存儲因此在C語言中,字符型數(shù)據(jù)可以當(dāng)作整型數(shù)據(jù)使用,而0~127之間的整數(shù)也可以當(dāng)作字符數(shù)據(jù)使用需要熟記的幾個字符的ASCII碼:‘A’----65,其他的大寫字母字符依序增加,例:‘E’---69‘a(chǎn)’----97,其他的小寫字母字符依序增加,例:‘f’---102‘0’----48,其他的數(shù)字字符依序增加,例:‘7’---55‘‘----32,空格字符的ASCII碼為32熟練掌握以下兩組轉(zhuǎn)換關(guān)系:對應(yīng)大小寫字母字符的轉(zhuǎn)換:小寫字母-32=大寫字母對應(yīng)數(shù)字字符與整數(shù)數(shù)字的轉(zhuǎn)換:數(shù)字字符-48=整數(shù)數(shù)字例:’B’+32=’b’’d’-32=’D’例:’8’-48=8或’8’-’0’=8;8+48=’8’或8+’0’=’8’2023/7/2425字符變量的定義及獲得值字符類型的關(guān)鍵字為:char,定義字符變量的格式:char字符變量名1[

,字符變量名2,…];字符變量也用初始化、賦值、讀入這3種方式獲得值初始化:charc1=‘A’,c2=98;賦值:charc3;c3=‘N’;

讀入:scanf(“%c”,&c3);//從鍵盤輸入時不能輸入定界符字符值的輸出:用printf輸出時,格式轉(zhuǎn)換字符如果是%c,則輸出字符形式,格式轉(zhuǎn)換符如果是%d,則輸出其對應(yīng)的ASCII碼(整數(shù))專用于字符型數(shù)據(jù)輸入輸出的兩個函數(shù):輸入單個字符:getchar();例:c3=getchar();getchar();輸出單個字符值:putchar(字符值);例:putchar(65);putchar(‘D’);putchar(‘\n’);putchar(‘A’+35);必須用%c作為格式轉(zhuǎn)換控制符必須對字符變量取地址調(diào)用形式1:字符變量=getchar();將鍵盤輸入的一個字符存入變量中調(diào)用形式2:getchar();從鍵盤輸入的一個字符不賦給任何變量可以用字符的ASCII碼作為參數(shù)可以用普通字符作為參數(shù)可以用轉(zhuǎn)義字符作為參數(shù)可以用字符表達(dá)式作為參數(shù)作為字面值常量的字符一定要用定界符,這是為了區(qū)別于標(biāo)識符或整數(shù)。例如:’A’與A,’9’與92023/7/2426字符處理程序舉例程序2.3:字符常量與字符變量的定義及賦值。#include<stdio.h>intmain(){ charch1,ch2,ch3,ch4,ch5,ch6; ch1='N'; //直接用字符常量賦值

ch2=78; //用字符N的十進(jìn)制代碼賦值

ch3=0x4e; //用字符N的十六進(jìn)制代碼賦值

ch4=0116; //用字符N的八進(jìn)制代碼賦值

ch5='\x4e'; //用十六進(jìn)制整數(shù)代表的轉(zhuǎn)義字符賦值

ch6='\116'; //用八進(jìn)制整數(shù)代表的轉(zhuǎn)義字符賦值

printf(“%c\t%c\t%c\t\n”,ch1,ch2,ch3);//按水平制表格式輸出字符

printf("\a"); //轉(zhuǎn)義字符\a代表一聲鈴響

printf(“%c\t%c\t%c\t\n”,ch4,ch5,ch6);//按平制表格式輸出字符

printf("\a"); //轉(zhuǎn)義字符\a代表一聲鈴響

return0;}<運行結(jié)果>NNNNNN動態(tài)演示過程2023/7/2427字符處理程序舉例程序2.4:大小寫字母的轉(zhuǎn)換、字符的輸入與輸出示例

#include<stdio.h>intmain(){ charch1,ch2; scanf(“%c”,&ch1);//從鍵盤上輸入一個大寫字符

ch2=ch1+32;

//ch2的值為小寫字符a

printf("%c,%c\n",ch1,ch2);//顯示字符輸出格式:%c按字符形式輸出printf("%d,%d\n",ch1,ch2);//顯示字符代碼%d按十進(jìn)制形式輸出ch1=102; //ch1的值賦值為fch2=ch1-32; //ch2的值賦值為Fprintf("%c,%c\n",ch1,ch2);//顯示字符 printf("%d,%d\n",ch1,ch2);//顯示字符代碼

return0;}如果從鍵盤輸入:A則輸出結(jié)果為:A,a65,97f,F102,70ch1=getchar();putchar(ch1);putchar(ch2);putchar(‘\n’);putchar(ch1);putchar(ch2);putchar(‘\n’);動態(tài)演示過程2023/7/2428實型的種類數(shù)據(jù)類型名稱類型全稱占字節(jié)有效數(shù)字絕對值范圍單精度浮點型float47位3.4E-38~3.4E+38雙精度浮點型double816位1.7E-308~1.7e+308長精度浮點型longdouble816位1.7E-308~1.7e+308實型:也稱浮點型,是C語言中常用的基本類型。根據(jù)實型數(shù)據(jù)精度以及所占字節(jié)數(shù)的不同,劃分為單精度浮點型、雙精度浮點型和長精度浮點型。如下表所示:在不同的編譯器中占用字節(jié)數(shù)不一定相同,不少于double類型是基本原則,在gcc中占12字節(jié)2023/7/2429在C語言源程序中,只能用十進(jìn)制實數(shù)來表示實型字面值常量具體有兩種形式:(1)小數(shù)形式的實數(shù),形式:(2)指數(shù)形式的實數(shù),形式:例:合法的實數(shù):0.0、.25、6.、0.23、-23.41、314.159F-123e3、.123e6、123.e-3、3.14159E2L

非法的實數(shù):1,23.4、-12、23.4D、E90、12E4.5、1E400

實型字面值常量的表示

正號+可以缺省,負(fù)號-必須要有符號位0~9數(shù)字序列小數(shù)點后綴十進(jìn)制整數(shù),可以缺省,但是小數(shù)點左右兩邊不能同時缺省float型后綴F(或f)Double型無后綴longdouble型后綴L(或l)0~9數(shù)字序列必須有,不可缺省十進(jìn)制整數(shù),可以缺省,但是小數(shù)點左右兩邊不能同時缺省十進(jìn)制整數(shù)或小數(shù)形式的實數(shù)E(或e)十進(jìn)制整數(shù)尾數(shù)部分,不可缺省必須有,不可缺省指數(shù)部分,不可缺省,注意范圍,只能是整數(shù),表示乘以10的多少次方后綴float型后綴F(或f)Double型無后綴longdouble型后綴L(或l)2023/7/2430剛才講到的小數(shù)形式和指數(shù)形式表示實型值是在C源程序中的,無論何種形式經(jīng)編譯后都以二進(jìn)制數(shù)的形式存在于內(nèi)存中。此時的二進(jìn)制序列必須包含有兩個信息——實數(shù)的尾數(shù)、指數(shù),也就是說,尾數(shù)和指數(shù)都需要占用一定的存儲空間。不同的實型所占存儲空間大小不同,分配給這兩部分的比例也不一樣,于是有了精度與范圍上的差別。實型數(shù)在內(nèi)存的存儲格式示意(忽略每一部分具體二進(jìn)制位數(shù))例:-111.1101B

在內(nèi)存中的存儲形式,先轉(zhuǎn)化成:-0.1111101B×211B(保證尾數(shù)的小數(shù)點后第一位非0)實型數(shù)據(jù)在內(nèi)存中的存儲格式階符階碼的數(shù)值尾符尾數(shù)的數(shù)值階碼(指數(shù))尾數(shù)01111111101階碼(指數(shù))尾數(shù)2023/7/2431實型變量的定義及獲得值實數(shù)類型的關(guān)鍵字為:float、double、longdouble,定義字符變量的格式:實數(shù)類型關(guān)鍵字

實型變量名1[

,字符變量名2,…];實型變量也用初始化、賦值、讀入這3種方式獲得值初始化:doubled1=23.3,d2=9.8E5;賦值:floatf;f=23.4F;

讀入:scanf(“%f”,&f);//float型變量用格式控制字符f

scanf(“%lf”,&d1);//double型變量用格式控制字符lf讀入時可以控制總寬度,但是不能控制精度實型值的輸出:用printf輸出時,無論何種實型均可以使用格式轉(zhuǎn)換字符%f,即使是double型的值也不必使用%lf,與讀入不同2023/7/2432對實型數(shù)據(jù)的基本操作對實型數(shù)據(jù),C語言提供了多種運算:算術(shù)運算、關(guān)系運算、邏輯運算等,下一章詳細(xì)介紹。算術(shù)運算中:%---取余,不能用于實型數(shù)求解/---除法,如果兩個相除的數(shù)中有一個實型數(shù),則得到實數(shù)商,正負(fù)號同被除數(shù)例:5/2=2、5.0/2.0=2.5、5.0/2=2.52023/7/2433基本類型數(shù)據(jù)的輸入/輸出示例

#include<stdio.h>intmain(void){ doubled; //定義一個double型的變量

floatf1=3.14F,f2;//初始化float型變量f1

intx;//定義一個int型的變量

charch;//定義一個char型的變量

f2=-90.5f;//用賦值的方法使變量f2

溫馨提示

  • 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

提交評論