版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第2章C語言數(shù)據(jù)類型C
語言程序設(shè)計1第2章C語言數(shù)據(jù)類型C語言程序設(shè)計1本章介紹C語言的數(shù)據(jù)類型,包括:常量和變量數(shù)據(jù)類型均是程序設(shè)計的基本知識為什么討論這些知識?通常程序要對數(shù)據(jù)進(jìn)行操作處理:處理的對象是數(shù)據(jù)本章內(nèi)容2本章介紹C語言的數(shù)據(jù)類型,包括:通常程序要對數(shù)據(jù)進(jìn)行操作處理例如:【例2.1】計算圓的面積,半徑為5cm。
程序如下:#include"stdio.h"voidmain(){float
r,area;
r=5;
area=3.14*r*r;
printf("%f\n",
area);}運算結(jié)果是輸出圓的面積:78.500000程序中用到的數(shù)據(jù):r、area、5、3.14對數(shù)據(jù)進(jìn)行的運算:*、=3例如:【例2.1】計算圓的面積,半徑為5cm。#incl分析:計算機操作處理時,要完成以下工作:在內(nèi)存中給半徑r和運算結(jié)果area
開辟存儲空間,存放它們的值。應(yīng)該留多大的地方來存放它們的值?數(shù)據(jù)
5和3.14與r
、area
不同,它們是在編寫程序時就給出確定的值,在運算過程中不會改變。這樣的數(shù)計算機怎么處理?對整數(shù)5
和小數(shù)3.14,計算機存放時是否有區(qū)別?涉及數(shù)據(jù)類型的基本知識4分析:計算機操作處理時,要完成以下工作:涉及數(shù)據(jù)類型42.1常量與變量在計算機處理的程序中,我們不免經(jīng)常與數(shù)據(jù)打交道,根據(jù)數(shù)據(jù)的值是固定的,還是可變的,我們將數(shù)據(jù)分為兩大類:常量和變量。52.1常量與變量在計算機處理的程序中,2.1.1變量 在程序運行過程中其值可以改變的量稱為變量。變量有整型變量、實型變量、字符變量等。 程序中的變量由用戶標(biāo)識符來表示,在C語言中,所有變量必須遵循"先定義,后使用"的原則。變量的定義一般放在函數(shù)體的開頭,即聲明部分。1、編譯系統(tǒng)會根據(jù)定義為變量分配內(nèi)存空間,分配空間的大小與數(shù)據(jù)類型有關(guān)。2、編譯系統(tǒng)可以根據(jù)變量的類型檢查對該變量的運算是否合法。62.1.1變量 在程序運行過程中其值可以改變的量稱為變2.2.1變量變量定義語句的形式為:類型說明符變量名表;即:類型說明符變量名1,變量名2,…;其中:類型說明符由關(guān)鍵字表示,不同的關(guān)鍵字表示不同的數(shù)據(jù)類型,變量名是用戶標(biāo)識符,由用戶命名。通常,定義了一個變量而未賦初值時,一般變量中存放的是隨機值。因此,為使定義的變量有一確切的數(shù)值,需給定義的變量賦一初值。72.2.1變量變量定義語句的形式為:通常 一個變量代表著內(nèi)存中一個具體的存儲單元,用變量名來標(biāo)識。存儲單元中存放的數(shù)據(jù)稱為變量的值,變量的值可以通過賦值的方法獲得和改變。讀者一定要區(qū)分開變量名和變量值這兩個不同的概念。2.1.1變量8 一個變量代表著內(nèi)存中一個具體的存儲單元,用變2.1.2常量一般用大寫字母是宏定義預(yù)處理命令,不是C語句定義:程序運行時其值不能改變的量(即常數(shù))例如:5,3.1415926分類:符號常量:用標(biāo)識符代表常量定義格式:#define
符號常量常量例符號常量舉例#definePRICE30main(){intnum,total;num=10;total=num*PRICE;printf("total=%d",total);}運行結(jié)果:total=300如#definePRICE30⑴符號常量使常量數(shù)據(jù)意義明確。⑵符號常量使程序易于閱讀和修改。直接常量:整型常量實型常量字符常量字符串常量#define符號常量的原理使用#define定義的符號常量,相當(dāng)于為一個常量數(shù)據(jù)取了一個名字,當(dāng)編譯器開始編譯包含符號常量的C程序時,它將#define定義的實際常量數(shù)據(jù)替換這個符號常量,再編譯。常量的內(nèi)存表示常量是不占據(jù)任何內(nèi)存單元的,它是程序可執(zhí)行指令的一部分,處在代碼區(qū)中,運行時不可能改變。92.1.2常量一般用大寫字母定義:程序運行時其值不能改變2.2C語言的數(shù)據(jù)類型數(shù)組類型結(jié)構(gòu)體類型聯(lián)合體類型枚舉類型指針類型整型字符型實型(浮點型)空類型單精度型雙精度型基本類型復(fù)雜數(shù)據(jù)類型本章討論基本類型數(shù)據(jù)2.2.1C語言的數(shù)據(jù)類型C數(shù)據(jù)類型102.2C語言的數(shù)據(jù)類型數(shù)組類型整型單2.2.2基本數(shù)據(jù)類型2.2C語言的數(shù)據(jù)類型整型浮點型字符型單精度型float雙精度型double短整型shortint長整型longint普通整型intchar數(shù)據(jù)類型所占內(nèi)存字節(jié)數(shù),不同類型的計算機有不同的規(guī)定,見書上P10頁表2-2,表2-4,P16頁表2-7。112.2.2基本數(shù)據(jù)類型2.2C語言的數(shù)據(jù)類型整2.3整型數(shù)據(jù)2.3.1整型變量整型變量的數(shù)據(jù)類型根據(jù)存儲空間的大小分為:⑴基本型int⑵短整型shortint或short⑶長整型longint或
long
另外,整型變量還有指示的修飾符signed或unsigned,也即整型數(shù)據(jù)有正數(shù)/負(fù)數(shù)、無符號數(shù)之分.整型變量定義的語法:【修飾符】int
變量名表;122.3整型數(shù)據(jù)2.3.1整型變量整型變量定義的語類型符號關(guān)鍵字?jǐn)?shù)的表示范圍所占位數(shù)整型有無(signed)int16-32768~32767(signed)short16-32768~32767(signed)long32-2147483648~214748364716unsignedint0~65535320~4294967295unsignedlongunsignedshort160~65535類型符號關(guān)鍵字?jǐn)?shù)的表示范圍所占位數(shù)整型有無(signed)int16-32768~32767(signed)short16-32768~32767(signed)long32-2147483648~214748364716unsignedint0~65535320~4294967295unsignedlongunsignedshort160~65535表2-2整型數(shù)的取值范圍2.3整型數(shù)據(jù)13類型符號關(guān)鍵字?jǐn)?shù)的表示范圍所占位數(shù)整型有無(signed)i2.3整型數(shù)據(jù)
2.3.2整型常量(整常數(shù))在整常量后加字母u或U,認(rèn)為它是無符號整型常量在整常量后加字母l或L,認(rèn)為它是longint
型常量(可以加lu,表示unsignedlong常量整型常量的類型根據(jù)其值所在范圍確定其數(shù)據(jù)類型例30000為int型65536為longint
型問題:0123=()100x123=()100xff=()1083291255問題:0123=()100x123=()100xff=()10表示形式:十進(jìn)制整數(shù):由數(shù)字0~9和正負(fù)號表示.如123,-456,0八進(jìn)制整數(shù):由數(shù)字0開頭,后跟數(shù)字0~7表示.如0123,011十六進(jìn)制整數(shù):由0x開頭,后跟0~9,a~f或A~F表示.如0x123,0xff例12與12L142.3整型數(shù)據(jù)2.3.2整型常量(整常數(shù))在整2.3整型數(shù)據(jù)
2.3.3用printf顯示整型數(shù)據(jù)格式:printf("格式控制串",輸出表);輸出表:要輸出的數(shù)據(jù)(可以沒有,多個時以","分隔)格式控制串:包含兩種信息格式說明:%格式字符,用于指定輸出格式普通字符或轉(zhuǎn)義序列:原樣輸出格式字符:d,o,x,u格式字符不同對應(yīng)輸出數(shù)據(jù)表示的形式不同。152.3整型數(shù)據(jù)2.3.3用printf顯示整型2.3整型數(shù)據(jù)【例2.1】整型變量的表示方式和整型數(shù)據(jù)的輸出。#include"stdio.h"
voidmain(){intx,y,z;x=129,y=0127,z=0x128;printf("%d,%d,%d\n",x,y,z);printf("%o,%o,%o\n",x,y,z);printf("%x,%x,%x\n",x,y,z);}129,87,296201,127,45081,57,128運行結(jié)果:162.3整型數(shù)據(jù)【例2.1】整型變量的表示方式和整型數(shù)2.3整型數(shù)據(jù)【例2.2】整型變量的表示方式和整型數(shù)據(jù)的輸出。#include"stdio.h"
voidmain(){intx,y,z;x=-129,y=-0127,z=-0x128;printf("%d,%d,%d\n",x,y,z);printf("%o,%o,%o\n",x,y,z);printf("%x,%x,%x\n",x,y,z);}-129,-87,-296177577,177651,177330ff7f,ffa9,fed8運行結(jié)果:172.3整型數(shù)據(jù)【例2.2】整型變量的表示方式和整型數(shù)
129
8
7
96
201
127
45081
57
128
129
8
7
96
201
127
45081
57
128
2.3整型數(shù)據(jù)【例2.3】顯示整數(shù)時實現(xiàn)左對齊。#include"stdio.h"
voidmain(){intx,y,z;x=129,y=0127,z=0x128;printf("%6d%6d%6d\n",x,y,z);printf("%6o%6o%6o\n",x,y,z);printf("%-6x%-6x%-6x\n",x,y,z);}運行結(jié)果:1812987961298習(xí)題【例】判斷下面程序的執(zhí)行結(jié)果#include"stdio.h"voidmain(){inti=55,j=-77;
printf("octi=%o,j=0%o",i,j);printf("hexi=%x,j=0%x",i,j);}octi=67,j=0177663hexi=37,j=0ffb3(-77)10原碼1000000001001101(-77)10反碼1111111110110010+1(-77)10補碼11111111101100113667713bff19習(xí)題【例】判斷下面程序的執(zhí)行結(jié)果octi=67,j2.3整型數(shù)據(jù)
2.3.4用scanf輸入整型數(shù)據(jù)格式:scanf("格式控制串",地址表);地址表:變量的地址,常用取地址運算符&格式控制串:包含兩種信息格式說明:%格式字符,用于指定輸入格式普通字符:用戶原樣輸入格式字符:d,o,x,u例scanf("%d",&a);
輸入:10
則a=10例scanf("a=%x",&a);
輸入:a=11
則a=17202.3整型數(shù)據(jù)2.3.4用scanf輸入整型2.3整型數(shù)據(jù)【例2.4】用scanf輸入整型數(shù)。#include"stdio.h"
voidmain(){intx,y,z1;longz2;scanf("%d%o%x%ld",&x,&y,&z1,&z2);printf("\n%d,%d,%d,%ld\n",x,y,z1,z2);}10
1010
10000010,8,16,100000輸入數(shù)據(jù)時,遇以下情況認(rèn)為該數(shù)據(jù)結(jié)束:
遇空格、TAB、或回車若輸入:
212.3整型數(shù)據(jù)【例2.4】用scanf輸入整型數(shù)。102.3整型數(shù)據(jù)【例2.5】輸入格式與鍵盤輸入匹配。#include"stdio.h"
voidmain(){intx,y,z1,z2;scanf("x=%dy=%oz1=%xz2=%u",&x,&y,&z1,&z2);printf("%d,%d,%d,%d",x,y,z1,z2);}10
1010
100,484,2972,0x=10y=10z1=10z2=1010,8,16,10scanf函數(shù)中""內(nèi)的格式信息除了%開始的格式字符還有普通字符,而普通字符不是自動顯示在屏幕上,是要求使用者在輸入數(shù)據(jù)時在相應(yīng)的位置上輸入的。若輸入:必須輸入:
scanf("x=%dy=%oz1=%xz2=%u",&x,&y,&z1,&z2);222.3整型數(shù)據(jù)【例2.5】輸入格式與鍵盤輸入匹配。12.4實型數(shù)據(jù)
2.4.1實型變量float(單精度):占4字節(jié),提供7位有效數(shù)字double(雙精度):占8字節(jié),提供15位有效數(shù)字實型變量的語法:
<類型說明符>變量名例floata;doubleb;a=111111.111;/*a=111111.109375*/b=111111.111;/*b=111111.111000*/232.4實型數(shù)據(jù)2.4.1實型變量float(單精2.4實型數(shù)據(jù)
2.4.2實型常量實型常量數(shù)據(jù)在寫作時可以有兩種表示方法:1.十進(jìn)制小數(shù)形式:由數(shù)字和小數(shù)點組成(必須有小數(shù)點),例如:0.1234,1234.0,0.02.指數(shù)形式:使用e或E代表10的指數(shù),"E"前必須有數(shù)字(有效數(shù)據(jù));"E"后為指數(shù)且必須為整數(shù)。如0.1234e0,1.23e4,e-5,1.2E-3.5e-51.2E-3.5242.4實型數(shù)據(jù)2.4.2實型常量2.4實型數(shù)據(jù)
2.4.3用printf顯示實型數(shù)據(jù)格式:printf("格式控制串",輸出表);輸出表:要輸出的數(shù)據(jù)(可以沒有,多個時以","分隔)格式控制串:包含兩種信息格式說明:%[修飾字符]格式字符,用于指定輸出格式普通字符或轉(zhuǎn)義序列:原樣輸出格式字符:f,e,(lf,le)修飾字符:為數(shù)字,中間用小圓點分隔,左邊表示域?qū)?,右邊表示保留小?shù)點位數(shù)。格式字符不同對應(yīng)輸出數(shù)據(jù)表示的形式不同。252.4實型數(shù)據(jù)2.4.3用printf顯示實型數(shù)2.4實型數(shù)據(jù)
【例2.6】輸出實型數(shù)據(jù)。#include"stdio.h"
voidmain(){floatx;doubley;x=12.3456789;y=987654.321098;printf("%e,%le\n",x,y);printf("%f,%lf\n",x,y);printf("%.3f,%.3lf\n",x,y);printf("%14.3f,%14.3lf\n",x,y);printf("%-14.3f,%-14.3lf\n",x,y);printf("%8.3f,%8.3lf\n",x,y);printf("%14f,%14lf\n",x,y);}1.234568e+01,9.876543e+0512.345679,987654.32109812.346,987654.32112.346,987654.32112.346,987654.32112.346,987654.32112.345679,987654.321098運行結(jié)果:262.4實型數(shù)據(jù)【例2.6】輸出實型數(shù)據(jù)。1.234562.4實型數(shù)據(jù)
2.4.4用scanf輸入實型數(shù)據(jù)格式:scanf("格式控制串",地址表);地址表:變量的地址,常用取地址運算符&格式控制串:包含兩種信息格式說明:%格式字符,用于指定輸入格式普通字符:用戶原樣輸入格式字符:f,e,(lf,le)272.4實型數(shù)據(jù)2.4.4用scanf輸入實型數(shù)2.4實型數(shù)據(jù)【例2.7】輸入實型數(shù)據(jù)。#include"stdio.h"
voidmain(){doublex,y;scanf("%lf%le",x,y);printf("%lf,%lf\n",x,y);printf("%le,%le\n",x,y);}123.567891.2345678e17123.567890,123456780000000000.0000001.235679e+02,1.234567e+17若輸入:
282.4實型數(shù)據(jù)【例2.7】輸入實型數(shù)據(jù)。123.5672.5字符型數(shù)據(jù)
2.5.1字符變量字符型變量的數(shù)據(jù)類型為char,占1字節(jié)。字符型變量的分類字符型變量還有符號指示的修飾符signed或unsigned,也即字符型數(shù)據(jù)有正數(shù)/負(fù)數(shù)、無符號正數(shù)之分。字符變量存放字符ASCII碼字符型變量的數(shù)值范圍:unsignedchar
的數(shù)值范圍:0—255char的數(shù)值范圍:-128—+127292.5字符型數(shù)據(jù)2.5.1字符變量字符型變量的數(shù)轉(zhuǎn)義字符含義\n\r\'\ddd\t\b\f\xhh轉(zhuǎn)義字符含義換行回車單引號3位8進(jìn)制數(shù)代表的字符水平制表退格換頁2位16進(jìn)制數(shù)代表的字符轉(zhuǎn)義字符及其含義:\"雙引號反斜線\\2.5字符型數(shù)據(jù)
2.5.2字符常量轉(zhuǎn)義字符:反斜線后面跟一個字符或一個代碼值表示定義:用單引號括起來的單個普通字符或轉(zhuǎn)義字符。字符常量的值:該字符的ASCII碼值。見書上P278-279例轉(zhuǎn)義字符舉例#include"stdio.h"voidmain(){printf("\101\x42C\n");printf("Isay:\"Howareyou?\"\n");printf("\\CProgram\\\n");printf("Turbo\'C\'");}如'\101'-----------'A''\012'-----------'\n''\376'-----------'''\x61'-----------'a''\60'-----------'0''\483'----------(
)例:'A'-------'\101'-------'\x41'--------65如'A'——65,'a'——97,
'0'——48,'\n'——10例voidmain(){printf("Y\b=\n");}屏幕顯示:
=如'a''A''?''\n''\101'運行結(jié)果:(屏幕顯示)ABCIsay:"Howareyou?"\CProgram\Turbo'C'30轉(zhuǎn)義字符含義\n\r\'\ddd\t\b\f\xhh轉(zhuǎn)義字符2.5字符型數(shù)據(jù)注意:1、字符'3'和數(shù)字3是不同的。ASCII表規(guī)定'3'的值是51。2、盡管單引號、雙引號和\都可以直接輸入,但轉(zhuǎn)義字符用到了\,字符常量需要用單引號括起來,字符串要用雙引號括起來,因此,單引號、雙引號和\都需要用轉(zhuǎn)義字符表示。312.5字符型數(shù)據(jù)注意:312.5字符型數(shù)據(jù)
2.5.3用printf顯示字符格式:printf("格式控制串",輸出表);輸出表:要輸出的數(shù)據(jù)(可以沒有,多個時以","分隔)格式控制串:包含兩種信息格式說明:%格式字符,用于指定輸出格式普通字符或轉(zhuǎn)義序列:原樣輸出格式字符:c【例2.8】用printf顯示字符。#include"stdio.h"
voidmain(){charc='H',d='I',e='!';printf("%c%c%c",c,d,e);}運行結(jié)果:HI!322.5字符型數(shù)據(jù)2.5.3用printf顯示字符2.5字符型數(shù)據(jù)
2.5.4用scanf輸入字符格式:scanf("格式控制串",地址表);地址表:變量的地址,常用取地址運算符&格式控制串:包含兩種信息格式說明:%格式字符,用于指定輸入格式普通字符:用戶原樣輸入格式字符:c注意:使用%c作為格式字符,對于空白字符不會再忽略或看成分隔符,而作為有效的字符讀入。332.5字符型數(shù)據(jù)2.5.4用scanf輸入字符2.5字符型數(shù)據(jù)【例】輸入整型與字符數(shù)據(jù)。#include"stdio.h"
voidmain(){int
a;
charc;scanf("%d%c",&a,&c);printf("%d,%d",a,c);}100100,10100a100,32100a100,97運行結(jié)果:
342.5字符型數(shù)據(jù)【
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度高端商務(wù)區(qū)商鋪租賃管理協(xié)議4篇
- 專項工程項目監(jiān)管2024版委托協(xié)議版A版
- 2025年度高速公路服務(wù)區(qū)場標(biāo)準(zhǔn)化改造提升合同4篇
- 二零二五年度高壓直流變壓器采購及運輸合同3篇
- 2025年度圖書配送與圖書館管理系統(tǒng)承包合同4篇
- 2025年度拆遷安置補償房屋買賣合同范本(含維修)4篇
- 2024行政文員勞動合同范本:合同違約與賠償3篇
- 2024食堂食品安全與承包合同
- 2024講座教授聘任合同模板
- 2025年度城市老舊小區(qū)拆遷安置房買賣合同規(guī)范版4篇
- 物業(yè)民法典知識培訓(xùn)課件
- 2023年初中畢業(yè)生信息技術(shù)中考知識點詳解
- 2024-2025學(xué)年山東省德州市高中五校高二上學(xué)期期中考試地理試題(解析版)
- 《萬方數(shù)據(jù)資源介紹》課件
- 麻風(fēng)病病情分析
- 《急診科建設(shè)與設(shè)備配置標(biāo)準(zhǔn)》
- 第一章-地震工程學(xué)概論
- TSGD7002-2023-壓力管道元件型式試驗規(guī)則
- 2024年度家庭醫(yī)生簽約服務(wù)培訓(xùn)課件
- 建筑工地節(jié)前停工安全檢查表
- 了不起的狐貍爸爸-全文打印
評論
0/150
提交評論