版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第2章 數據類型與簡單輸入/輸出教學目的:掌握C語言基本數據類型掌握常量與變量的使用掌握簡單數據輸入/輸出函數的使用方法1教學內容:C語言基本數據類型常量與變量數據的輸出與輸入2沃思(N. Wirth)公式: 數據結構 + 算法 = 程序 數據是程序處理的對象,程序的主要任務就是對數據進行加工、處理,而計算機中的數據包括數值型數據和非數值型數據,如我們知道在數學中的整數、實數就是數值型的數據,計算機能夠處理的文字、聲音、圖像等就是非數值型數據。 數據類型是按照被說明量的性質、表示形式和占據存儲空間的多少以及構造特點來劃分的,包括基本數據類型、構造數據類型、指針類型和空類型四大數據類型。 3數據
2、類型決定:1. 數據占內存字節(jié)數2. 其上可進行的操作3. 其數據的取值范圍不同C數據類型基本類型構造類型指針類型(*)空類型(void)字符類型(char)枚舉類型(enum)整型實型單精度型(float)雙精度型(double)數組類型( )結構體(struct)共用體(union)短整型(short)長整型(long)整型(int)數值類型2.1C語言基本數據類型2.1.1 數據類型概述42.1.2 整數類型整型數據可分為一般整型、短整型和長整型三種,其中:(1)一般整型:用int表示;占2字節(jié)(2)短整型:用short int或short表示;占2字節(jié)(3)長整型:用long int或
3、long表示;占4字節(jié)整型又可分為有符號類型和無符號類型,無符號類型只在類型符號前面加上unsigned即可,如:用unsigned int表示無符號整型,用unsigned short表示無符號短整型,用unsigned long表示無符號長整型。對于無符號型數據,存儲單元中沒有符號位,所有二進制位用來存放數據本身。562.1.3實數類型實數類型的數據簡稱實型數據,有時又稱為浮點型數據,實型可分為單精度型和雙精度型兩種,其中:(1)單精度型:用float表示;(2)雙精度型:用double表示。在一般系統(tǒng)中,Turbo C所支持float型數據在內存中占4個字節(jié)(32位),double型數據
4、占8個字節(jié)(64位)。其中:float 型實數能接收7位有效數字(即精確到小數點后第7位) , double型實數能接收15位有效數字(即精確到小數點后第15位) 。72.1.4字符類型 其類型標識符為char,在內存中占一個字節(jié),字符型數據在內存中以ASCII碼存儲,其ASCII碼值為0127,如字符 a的ASCII碼值為97,用01100001表示。8符號關鍵字數的表示范圍所占位數整型有無(signed) int(signed) short (int)(signed) long (int)unsigned intunsigned shortunsigned long實型字符型有有有無flo
5、atdoublecharUnsigned char161632161632326488-3276832767065535-3276832767-2147483648214748364706553504294967295約3.4E-383.4E38約1.7E-3081.7E308-1281270255說明:數據類型所占字節(jié)數隨機器硬件不同而不同,上表以IBM PC機為例:92.2.1 常量 常量指在程序運行的整個過程中其值不能改變的量,可以有不同的類型,又可分為直接常量和符號常量。2.2 常量與變量101. 整型常量 十進制整型常量:與數學上的整數表示相同,由數字09和正負號表示,如 123,-
6、456,0,而024,25o錯誤。 八進制整型常量:以0為前綴,后跟數字07表示,如0123,011。 十六進制整型常量:由0 x或0X開頭,后跟09,af,AF表示.如0 x123,0Xff。注意: 在程序中是根據前綴來區(qū)分各種進制數的,一定要前綴正確; 八進制與十六進制一般只表示正數; 整型常數根據其值所在范圍確定其數據類型;而整型常數范圍有限,超出范圍時可用長整型數來表示,方法是加后綴”L”或”l”;11 無符號數也可用后綴”U”或”u”來表示; 常量的前后綴可同時使用以表示各種類型的數;如:98L,78u,017lu,0 xaau,0X1fL例 30000 為int型 65536 為l
7、ong int 型 12 與 12L ?122. 實型常量 C中實型常量只能用十進制形式表示,且有一般形式和指數形式兩種表示方式: 一般形式:由09的數字、正負號和小數點組成如2.1,.1,-1.45 指數形式:由十進制數加上階碼標志”e”或”E”以及階碼組成,可表示為aEn,其中a為十進制數,n為十進制整數且可以帶符號,其所表示的值為a*10n注意:小數點不能單獨出現如:.指數形式表示中”e”或”E”兩邊必須有數且后面必須為整數標準C浮點數默認為double型,并允許使用后綴”f”或”F”來表明為浮點數,如32f和32.0是等值的13定義:用單引號括起來的單個普通字符或轉義字符. 字符常量的
8、值:該字符的ASCII碼值如 101 -A 012 -n 376 - x61 -a 60 -0 483 -()例:A-101-x41-65如 A65, a97, 048 , n10如 a A ? n 101轉義字符:反斜線后面跟一個字符或一個代碼值表示例 轉義字符舉例(ch2_001.c,ch2_004.c) main() printf(101 x42 Cn); printf(I say:How are you?n); printf(C Programn); printf(Turbo C);運行結果:(屏幕顯示)A B CIsay:”How are you?”C ProgramTurbo C例
9、 main() printf(“Yb=n”); 運行結果:屏幕顯示:=打印機輸出:3. 字符常量轉義字符及其含義:轉義字符含義nvradddtbf“xhh轉義字符含義換行垂直制表回車響鈴單引號3位8進制數代表的字符水平制表退格換頁反斜線雙引號2位16進制數代表的字符注意:C語言字符集中任何一個字符均可用轉義字符來表示14可把一個字符常量賦值給一個字符變量,但不能把一個字符串常量賦值給一個字符變量。 例如: char m; m=“A”;4.字符串常量字符串常量是由一對雙撇號括起來的字符序列, 如“hello”,“a”,“19”,“”,“ ”,“0&$”。字符串常量的長度:字符串中的字符個數,如“
10、”長度為0。每個字符串串尾自動加一個0作為字符串結束標志。 如“hello”在內存中為 而空串“”在內存中為hello00注意:一個字符常量占1個字節(jié)的內存空間,而字符串常量所占內存字節(jié)數等于其長度加1。a a 0例 a“a”155. 符號常量符號常量指用標識符定義一個直接常量,它的值在程序中不能更改。聲明形式:#define 標識符 直接常量 如:#define PI 3.14159其中:#define 是一條宏定義預處理命令,不是C語句; 符號常量一般用大寫字母; 符號常量在使用之前必須先聲明,定義后程序中遇到該常量處都用其定義的直接常量值代替。#define RATE 8.54 void
11、 main( void ) float result; result = 1000.0 * RATE; printf( “result is %f n”, result );161.變量的概念:程序執(zhí)行過程中其值可以改變的量變量名、變量值、變量地址2.變量的聲明: 數據類型 變量1 ,變量2,變量n ;3.變量的初始化:聲明時賦初值 例: int a, b, c; float data;決定分配字節(jié)數和數的表示范圍合法標識符例: int a=2,b,c=4; float data=3.67; char ch=A; int x=1,y=1,z=1; int x=y=z=1;變量的使用:先聲明,后
12、使用例1 int student; stadent=19; /Undefined symbol stadent in function main 例2 float a,b,c;c=a%b; /Illegal use of floating point in function main 變量聲明位置:一般放在函數開頭main() int a,b=2; float data; a=1; data=(a+b)*1.2; printf(“data=%fn”,data);變量定義可執(zhí)行語句main() int a,b=2; a=1; float data; data=(a+b)*1.2; printf(
13、“data=%fn”,data);2.2.2 變量編譯程序根據變量定義為其分配指定字節(jié)的內存單元.地址int a=1, b=-3,c;abc2字節(jié)2字節(jié)2字節(jié)地址地址.內存1-3隨機數17例2.2: main( ) char ch1,ch2; ch1=a;ch2=b; ch1=ch1-32;ch2=ch2-32; printf(“ch1=%c,ch2=%cn”,ch1,ch2); 注意:1、字符型數據和整形數據是通用的。但字符數據只能存放0255范圍內的整數。 2、字符數據與整數可以直接進行算術運算。 3、字符數據與整型數據可以相互賦值。 4、Turbo C將字符數據處理成帶符號的整數,如果不
14、想按有符號處理,可將字符變量定義為unsigned char類型。4. 變量的賦值可以用賦值運算符“=”將一個表達式的值賦給一個變量。182.3 數據的輸出與輸入2.3.1 數據的輸出1. 字符輸出函數格 式:putchar( c )參 數:c為字符常量、變量或表達式;功 能:把字符c輸出到標準輸出設備上(一般指顯示器);返回值:正常時返回所輸出字符的ASCII值;出錯,則返回-1。19例2.3:#include main( ) int c; char a; c=65; a=B; putchar(c); putchar(n); putchar(a);運行結果:AB202. 格式輸出函數格 式:
15、printf(“格式控制字符串”, 輸出項列表 );功 能:按指定格式向輸出設備(一般為顯示器)輸出數據;返回值:正常,返回實際輸出的字符數;出錯,則返回-1 。輸出項列表可以有零個或多個輸出項,每個輸出項之間用逗號分割,輸出的數據可以是整數、實數、字符和字符串;格式控制字符串必須用英文的雙引號括起來,它的作用是控制輸出項的格式和輸出一些提示信息 。21格式控制字符串包含兩種信息格式說明:% 修飾符 格式字符普通字符或轉義字符:普通字符原樣輸出,轉義字符表示特定的含義,如n表示換行,t表示水平制作等式字符格式字符格式字符輸出形式格式字符輸出形式d或i十進制整數o八進制整數x或X十六進制整數u無
16、符號十進制整數c輸出一個字符s輸出字符串f小數形式的浮點數e或E指數形式的浮點數g或Ge和f中較短的一種輸出百分號說明:格式字符要用小寫格式字符與輸出項個數應相同,按先后順序一一對應輸出轉換:格式字符與輸出項類型不一致,自動按指定的格式輸出22修飾符也就是附加格式說明符,這些修飾符可以聯合使用,其一般形式為: % flag m .n h|l type修飾符 功能m輸出數據域寬,數據長度m,左補空格,否則按實際輸出.n對實數,制定小數點后位數,多則舍入對字符串,指定實際輸出位數-輸出數據在域內左對齊,缺省為右對齊+指定在有符號數的正數前顯示正號“+”0輸出數值時指定左面不使用的空位置自動添0#在
17、八進制和十六進制數前顯示前導0或者0 xl在d、o、x、u前,指定輸出精度為long型在e、f、g前,指定輸出精度為double型h輸出短整型數據的值23例 int a=1234; float f=123.456; printf(“%08dn”,a); printf(“%010.2fn”,f); printf(“%+08dn”,a); printf(“%+010.2fn”,f); 例:0 、+例 int a=123; printf( “%o,%#o,%X,%#Xn”, a, a, a, a ); 例: #例long a=65536; printf(“%d,%8ldn”,a, a); 例: l0
18、0 00 00 00 00 00 00 0100 00 00 00 00 00 00 00 /00001234 /0000123.46/+ /+000123.46/173,0173,7B,0X7B/0, 65536242.3.2 數據的輸入1. 字符輸入函數格式:getchar()功能:從輸入設備(一般為鍵盤)上輸入一個字符;返回值:正常時是該字符的ASCII編碼值,出錯則返回-1。#include main( ) char ch; printf(Enter a character:); ch=getchar( ); printf(“%c,%c”,ch,ch+2);運行結果: Enter a
19、character:輸入: A輸出: A,C25注意:(1)執(zhí)行getchar()輸入字符時,鍵入字符后需要敲回車鍵,回車后,程序才會響應輸入,繼續(xù)執(zhí)行后續(xù)語句;(2)getchar()也將回車鍵作為一個回車符讀入。因此,在用getchar()連續(xù)輸入兩個字符時要注意回車符;(3)getchar()只能接受單個字符,輸入數字也按字符處理,輸入多于一個字符時,只接收第一個字符;(4)使用本函數前必須包含文件“stdio.h”;(5)在程序運行過程中遇到時getchar()時,將進入黑屏狀態(tài),等待用戶輸入,輸入完畢返回TC界面,程序繼續(xù)向下運行。262、 格式輸入函數格式:scanf( “格式控制
20、字符串”, 地址列表 )功能:按指定格式從鍵盤讀入數據,存入地址列表指定的存儲單元中,并按回車鍵結束。返回值:正常時返回輸入數據的個數,遇文件結束返回EOF,出錯則返回0。地址列表:由若干變量的地址組成,各地址間以逗號間隔,其中常用取地址運算符&。格式控制字符串:由格式控制字符和普通字符構成;其中格式控制字符的作用與printf函數相似,只不過變成了輸入,其一般形式為:% * m h|l type27l修飾符功 能hm*用于d,o,x前,指定輸入為short型整數用于d,o,x前,指定輸入為long型整數用于e,f前,指定輸入為double型實數指定輸入數據寬度,遇空格或不可轉換字符則結束抑制
21、符,指定輸入項讀入后不賦給變量例 scanf(“%4d%2d%2d”,&yy,&mm,&dd); 輸入 19991015 則1999yy, 10 mm, 15 dd附加格式說明符(修飾符)功能:28一般以空格、TAB或回車鍵作為分隔符其它字符做分隔符:格式串中兩個格式字符間的字符例 scanf(“%d%o%x”, &a, &b, &c); printf(“a=%d,b=%d,c=%dn”, a, b, c); 輸入 123 123 123 輸出 a=123,b=83,c=291例 scanf(“%d:%d:%d”,&h,&m,&s); 輸入 12:30:45 則12 h, 30 m, 45 s
22、例 scanf(“%d,%d”,&a,&b) 輸入 3,4 則3a, 4 b輸入分隔符的指定:例 scanf(“a=%d,b=%d,c=%d”, &a, &b, &c); 輸入 a=12,b=24,c=36 29說明:用“%c”格式符時,空格和轉義字符作為有效字符輸入。如 scanf(“%c%c%c”,&c1,&c2,&c3); 若輸入abc 則ac1, c2, b c3輸入數據時,遇以下情況認為該數據結束:遇空格、TAB、或回車。遇寬度結束。如“3d”,只取3列。遇非法輸入。如 scanf(“%d%c%f”,&a,&b,&c); 若輸入1234a123o.26 則 1234 a, a b, 123 c輸入函數留下的“垃圾”:例 int x; char ch; scanf
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版文化創(chuàng)意產業(yè)投資合作協議書模板3篇
- 綠色農業(yè)科技與生態(tài)旅游融合
- 科技發(fā)展對現代安保工作提出的新挑戰(zhàn)及應對策略
- 2025年度個人房屋抵押貸款利率調整合同
- 二零二五年度豪華度假村客房預訂與銷售合作協議3篇
- 2025年度個人汽車轉讓及二手車鑒定評估及維修服務合同3篇
- 遠程教育環(huán)境下的學生安全保障措施
- 二零二五年度車輛捐贈服務贈與合同(公益車輛捐贈)3篇
- 2025版智慧小區(qū)物業(yè)服務與社區(qū)養(yǎng)老合作合同3篇
- 2025年度鋼材進出口貿易代理合同2篇
- 文化沖突與民族認同建構-洞察分析
- 《疥瘡的防治及治療》課件
- 學校對口幫扶計劃
- 腫瘤全程管理
- 《3-6歲兒童學習與發(fā)展指南》專題培訓
- 導尿及留置導尿技術
- 寒假作業(yè)一年級上冊《數學每日一練》30次打卡
- 2024-2025學年九年級化學上冊 第二單元 單元測試卷(人教版)
- 2024年公共衛(wèi)生基本知識考試題庫(附含答案)
- GB/T 4706.10-2024家用和類似用途電器的安全第10部分:按摩器具的特殊要求
- 2024年江蘇省蘇州市中考英語試題卷(含標準答案及解析)
評論
0/150
提交評論