山東理工大學史上最全C語言PPTC程序設計(2基本數(shù)據(jù)與運算)_第1頁
山東理工大學史上最全C語言PPTC程序設計(2基本數(shù)據(jù)與運算)_第2頁
山東理工大學史上最全C語言PPTC程序設計(2基本數(shù)據(jù)與運算)_第3頁
山東理工大學史上最全C語言PPTC程序設計(2基本數(shù)據(jù)與運算)_第4頁
山東理工大學史上最全C語言PPTC程序設計(2基本數(shù)據(jù)與運算)_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、主講:王立香E-mail:Tel2章 基本數(shù)據(jù)與運算 2數(shù)據(jù)在計算機中表示C語言常量C語言變量及其定義C語言基本輸入與輸出函數(shù)3導引1: 數(shù)據(jù)在計算機中的表示 計算機中數(shù)的表示及進制轉(zhuǎn)換數(shù)制 十進制十進制 十二進制十二進制 六十進制六十進制數(shù)碼、基與權(quán) 數(shù)碼:表示數(shù)的符號 基:數(shù)碼的個數(shù)1. 權(quán):每一位所具有的值 各種進制之間的轉(zhuǎn)換二進制、八進制、十六進制轉(zhuǎn)換成十進制方法:按權(quán)相加410012345259212120212121111011)()(例10012894868381136)()(例1001231679781610162161516121)()(例AF5 各

2、種進制之間的轉(zhuǎn)換 十進制轉(zhuǎn)換成二進制、八進制、十六進制 方法:整數(shù)部分方法:整數(shù)部分-除基逆序取余除基逆序取余 小數(shù)部分小數(shù)部分-乘基順序取整乘基順序取整例 把十進制數(shù)59轉(zhuǎn)換成二進制數(shù)5922921427232120(59)10=(111011)21101111 1 1 0 1 1余余余余余余例 把十進制數(shù)159轉(zhuǎn)換成八進制數(shù)1598198280(159)10=(237)82 3 7 余 7余 3余 2例 把十進制數(shù)459轉(zhuǎn)換成十六進制數(shù)4591628161160(459)10=(1CB)161 C B 余11余12余 16二進制與八進制之間的轉(zhuǎn)換二進制與八進制之間的轉(zhuǎn)換 二二-八八 三位合

3、一位三位合一位 八八-二二 一位拆三位一位拆三位例 (1101001)2=(001,101,001)2=(151)8例 (246)8=(010,100,110)2=(10100110)2000 0001 1010 2011 3100 4101 5110 6111 7二進制與十六進制之間的轉(zhuǎn)換二進制與十六進制之間的轉(zhuǎn)換二二-十六十六 四位合一位四位合一位十六十六-二二 一位拆四位一位拆四位例 (11010101111101)2=(0011,0101,0111,1101)2=(357D)16例 (4B9E)16=(0100,1011,1001,1110)2=(100101110011110)27導

4、引2: 數(shù)據(jù)在計算機中的表示 計算機中數(shù)的表示(存儲)正負數(shù)的表示 原碼 反碼 補碼 偏移碼(補碼的符號位取反)舉例:33D-50D定點數(shù) 定點整數(shù) +76 定點小數(shù) +0.6252. 浮點數(shù) 尾數(shù)S 階碼N舉例: (-125.75)D82.1 常量、變量與標識符C C數(shù)數(shù)據(jù)據(jù)類類型型基本類型基本類型構(gòu)造類型構(gòu)造類型指針類型指針類型空類型空類型void定義類型定義類型typedef字符類型字符類型char枚舉類型枚舉類型enum整整 型型實型實型單精度型單精度型float雙精度型雙精度型double數(shù)組數(shù)組結(jié)構(gòu)體結(jié)構(gòu)體struct共用體共用體union短整型短整型short長整型長整型long

5、整型整型int數(shù)據(jù)類型決定:數(shù)據(jù)類型決定:1. 數(shù)據(jù)占內(nèi)存字節(jié)數(shù)數(shù)據(jù)占內(nèi)存字節(jié)數(shù)2. 數(shù)據(jù)取值范圍數(shù)據(jù)取值范圍3. 其上可進行的操作其上可進行的操作92.1.1 標識符 定義:用來標識變量、常量、函數(shù)等的字符序列 組成: 只能由字母、數(shù)字、下劃線組成,且第一個字母必須是字母或下劃線 大小寫敏感 標識符分:關(guān)鍵字、預定義的標識符 和 用戶標識符 長度:最長32個字符 命名原則: 見名知意 不宜混淆 如l與I, o與0例:判斷下列標識符號合法性sum Sum M.D.John day Date 3days student_name #33 lotus_1_2_3 char ab _above $1

6、23M.D.John3days#33char$123ab10 一般用大寫字母 是宏定義預處理命令,不是C語句直接常量: 整型常量 實型常量 字符常量 字符串常量如 #define PI 3.142.1.2 2.1.2 常量常量 定義:程序運行時其值不能改變的量(即常數(shù)) 分類:符號常量:用標識符代表常量 定義格式: #define#define 符號常量符號常量 常量常量#define PI 3.14 main() float r,circle,area; r=2.4; circle=2*PI*r; area=PI*r*r; printf(circle=%f,area=%fn,circle,a

7、rea);程序中用#define命令行定義PI代表常量3.14,此后凡在本文件中出現(xiàn)的PI都代表3.14,可以和常量一樣進行運算。 注意此處無 “ = ” 11&整型常量(整常數(shù))整型常量(整常數(shù)) 三種形式:十進制整數(shù):由數(shù)字09和正負號表示.如 123,-456,0八進制整數(shù):由數(shù)字0開頭,后跟數(shù)字07表示.如0123,011十六進制整數(shù):由0 x開頭,后跟09,af,AF表示. 如0 x123,0Xff例 12 與 12L例 30000 為int型 65536 為long int 型 整型常量的類型根據(jù)其值所在范圍確定其數(shù)據(jù)類型在整常量后加字母l或L,認為它是long int 型常量問題

8、:0123 = ( )100 x123 = ( )100Xff = ( )1083291255問題:0123 = ( )100 x123 = ( )100Xff = ( )10main() printf(%d,%d,%dn,0,32767,-32768); printf(%o,%o,%on,010,016,0376); printf(%d,%d,%dn,010,016,0376); printf(%x,%x,%xn,0 x10,0Xcd,0 x100); printf(%d,%d,%dn,0 x10,0Xcd,0 x100); %d控制十進制格式輸出 %x控制十六進制格式輸出%o控制八進制格式

9、輸出輸出結(jié)果是:0,32767,-3276810,16,376 8,14,254 10,cd,100 16,205,25612&實型常量(實數(shù)或浮點數(shù))實型常量(實數(shù)或浮點數(shù)) 表示形式:十進制數(shù)形式:(必須有小數(shù)點) 如0.123, .123, 123.0, 0.0, 123.指數(shù)形式:(e或E之前必須有數(shù)字;指數(shù)必須為整數(shù))如12.3e3 ,123E2, 1.23e4 , e-5 , 1.2E-3.5 實型常量的類型默認double型在實型常量后加字母f或F,認為它是float 型main()printf(%f,%f,%f,%fn,0.1234,.1234,-1234.,0.0); pri

10、ntf(%e,%e,%e,%en,3e6,-2.05e+03,-1.23456e-2,37.6e10); printf(%e,%e,%e,%en,123.456,12.3456e1,1.23456e2,0.0123456e4); 程序輸出結(jié)果是: 0.123400,0.123400,-1234.000000,0.000000 3.00000e+06,-2.05000e+03,-1.23456e-02,3.76000e+11 1.23456e+02,1.23456e+02,1.23456e+02,1.23456e+02 %e控制指數(shù)形式輸出 按規(guī)范化的指數(shù)形式輸出 aaa13&字符常量字符常量

11、定義:用單引號單引號括起來的單個普通字符或普通字符或轉(zhuǎn)義字符轉(zhuǎn)義字符. 字符常量的值值:該字符的ASCIIASCII碼碼值值轉(zhuǎn)義字符及其含義:轉(zhuǎn)義字符含義nvradddtbf“xhh轉(zhuǎn)義字符含義換行垂直制表回車響鈴單引號3位8進制數(shù)代表的字符水平制表退格換頁反斜線雙引號2位16進制數(shù)代表的字符如 101 -A 012 -n 376 - x61 -a 60 -0 483 -()例:A-101-x41-65如 A65, a97, 048 , n10如 a A ? n 101 轉(zhuǎn)義字符轉(zhuǎn)義字符:反斜線后面跟一個字符或一個代碼值表示例 轉(zhuǎn)義字符舉例(2-1.c) main() printf(101 x

12、42 Cn); printf(I say:How are you?n); printf(C Programn); printf(Turbo Cn);運行結(jié)果:(屏幕顯示)A B CIsay:”How are you?”C ProgramTurbo C例 main() printf(“Yb=n”); 運行結(jié)果:屏幕顯示:=打印機輸出:main() printf(%c,%c,%c,%cn,a,A,1,#); printf(%d,%d,%d,%dn,a,A,1,#); printf(%c,%c,%c,%cn,a-32,A+1,97,98); %c控制字符形式輸出 %d整數(shù)格式輸出字符常量的ASCII

13、碼值程序輸出結(jié)果是: a,A,1,# 97,65,49,35 A,B,a,b 14 字符常量與字符串常量不同&字符串常量字符串常量 定義:用雙引號(“”)括起來的字符序列 存儲:每個字符串尾自動加一個 0 作為字符串結(jié)束標志h e l l o 0例 字符串“hello”在內(nèi)存中a a 0例 a“a”例 空串 “”0例: char ch; ch=“A”; 例: char ch; ch=A; main() printf(Computer); printf(nI am a boy!n); printf(%sn,STRING); 程序輸出結(jié)果是: Computer I am a boy! STRING

14、 15 2.1.3變量 概念:其值可以改變的量 變量名與變量值 變量定義的一般格式: 數(shù)據(jù)類型 變量1,變量2,變量n;編譯程序根據(jù)變量定義為其分配指定字節(jié)的內(nèi)存單元.地址int a=1, b=-3,c;abc2字節(jié)2字節(jié)2字節(jié)地址地址.內(nèi)存1-3隨機數(shù) 變量初始化:定義時賦初值 例: int a,b,c; float data;決定分配字節(jié)數(shù)和數(shù)的表示范圍合法標識符例: 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; 變量的使用:先定義,后使用例1 int student; stadent=19

15、; /Undefined symbol statent in function main 例2 float a,b,c; c=a%b; /Illegal use of floating point in function main 變量定義位置:一般放在函數(shù)開頭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(“data=%fn”,data);16&整型變

16、量 占字節(jié)數(shù)隨機器不同而不同,一般占一個機器字 shortintlong 可用sizeof(類型標識符)測量&實型變量實型變量 float:占4字節(jié),提供7位有效數(shù)字 double:占8字節(jié),提供1516位有效數(shù)字&字符型變量字符型變量 字符變量存放字符ASCII碼 char與int數(shù)據(jù)間可進行算術(shù)運算例 float a;a=111111.111; /* a=111111.1*/double b;b=111111.111; /* b=111111.111*/例 a=D; /* a=68; */ x=A+5; /* x=65+5; */ s=!+G /* s=33+71; */沒有字符串變量,用

17、字符數(shù)組存放溢出溢出運算運算精度精度大小大小寫準寫準換換溢出17#includemain() int x; /short int? unsigned y; long z; x=0 x7fffffff; x=x+1; y=0 xffffffff; z=0 x7fffffff; printf(x=%dn,x); printf(y=%un,y); printf(z=%dn,sizeof(z); 精度#include main() float ApplePrice=3.5; float BananaPrice=4.2; float AppleWeight=0.0; float BananaWeight

18、=0.0; float Total=0.0; printf(請輸入蘋果重量請輸入蘋果重量n); scanf(%f,AppleWeight); printf(請輸入香蕉重量請輸入香蕉重量n);scanf(%f,BananaWeight); Total=ApplePrice*AppleWeight+BananaPrice*BananaWeight;printf(應付款應付款,Total); return 0; 大小寫轉(zhuǎn)換#includemain() char x,c1,c2,c3; x=A; c1=x+32; c2=tolower(x); c3=x+a-A; printf(%c%c%c,c1,c2

19、,c3); 182. 2C語言中基本輸入與輸出函數(shù) 數(shù)據(jù)的輸入與輸出應包括以下幾項: 輸入(出)的設備 輸入(出)的格式 輸入(出)的內(nèi)容在C語言中,鍵盤是標準輸入設備,顯示器是標準輸出設備。5C C語言無語言無I/OI/O語句,語句,I/OI/O操作由函數(shù)實現(xiàn)操作由函數(shù)實現(xiàn)5 # #include include 19格式輸出函數(shù)格式:格式:printf(“printf(“格式控制串格式控制串”,輸出表輸出表) )功能:按指定格式向顯示器輸出數(shù)據(jù)功能:按指定格式向顯示器輸出數(shù)據(jù)返值:正常,返回輸出字節(jié)數(shù);出錯,返回返值:正常,返回輸出字節(jié)數(shù);出錯,返回EOF(-1)EOF(-1) 輸出表:要

20、輸出的數(shù)據(jù)(可以沒有,多個時以“,”分隔) 格式控制串:包含兩種信息 格式說明: %修飾符修飾符格式字符格式字符 ,用于指定輸出格式 普通字符或轉(zhuǎn)義序列:原樣輸出 格式字符20d,ix,Xoucse,Efg%格式字符:格式字符:十六進制無符號整數(shù)十六進制無符號整數(shù)不帶符號十進制整數(shù)不帶符號十進制整數(shù)十進制整數(shù)十進制整數(shù)指數(shù)形式浮點小數(shù)指數(shù)形式浮點小數(shù)單一字符單一字符字符串字符串八進制無符號整數(shù)八進制無符號整數(shù)小數(shù)形式浮點小數(shù)小數(shù)形式浮點小數(shù)e e和和f f中較短一種中較短一種百分號本身百分號本身int a=567;printf ( “%d”,a);int a=255;printf(“%x”,a

21、);int a=65;printf(“%o”,a);int a=567;printf(“%u”,a);char a=65;printf(“%c”,a);printf(“%s”,“ABC”);float a=567.789;printf(“%e”,a);float a=567.789;printf(“%f”,a);float a=567.789;printf(“%g”,a);printf(“%”);567ff101567AABC5.677890e+002567.789000567.789% 說明說明 格式字符要用小寫格式字符要用小寫 格式字符與輸出項個數(shù)應相同,按先后順序一一對應格式字符與輸出項

22、個數(shù)應相同,按先后順序一一對應 輸出轉(zhuǎn)換輸出轉(zhuǎn)換:格式字符與輸出項類型不一致格式字符與輸出項類型不一致,自動按指定格式自動按指定格式輸出輸出例 int a=3,b=4; printf(“%d %dn”,a,b); printf(“a=%d , b=%dn”,a,b);輸出結(jié)果: 3 4 a=3, b=4例 main() unsigned int u=65535; printf(”u=%dn,u); 輸出結(jié)果:u=-111 11 11 11 11 11 11 116553521 附加格式說明符(修飾符).n對實數(shù),指定小數(shù)點后位數(shù)(四舍五入)對字符串,指定實際輸出位數(shù)修飾符功 能m輸出數(shù)據(jù)域?qū)?

23、數(shù)據(jù)長度m,左補空格;否則按實際輸出輸出數(shù)據(jù)在域內(nèi)左對齊(缺省右對齊)-指定在有符號數(shù)的正數(shù)前顯示正號(+)+輸出數(shù)值時指定左面不使用的空位置自動填00在八進制和十六進制數(shù)前顯示前導0,0 x#在d,o,x,u前,指定輸出精度為long型在e,f,g前,指定輸出精度為double型l22例 int a=1234; float f=123.456; char ch=a; printf(“%8d,%2dn”,a,a); printf(“%f,%8f,%8.1f,%.2f,%.2en”,f,f,f,f,f); printf(“%3cn”,ch);運行 1234,1234結(jié)果: 123.456000,

24、123.456000, 123.5,123.46,1.23e+02 a例 static char a=“Hello,world!” printf(“%sn%15sn%10.5sn%2.5sn%.3sn”,a,a,a,a,a);運行結(jié)果:Hello,world! Hello,world! Hello Hello Hel 例例 m.n23例 int a=1234; float f=123.456; static char c=“Hello,world!”; printf(“%8d,%-8dn”,a,a); printf(“%10.2f,%-10.1fn”,f,f); printf(“%10.5s,

25、%-10.3sn”,c,c);運行結(jié)果: 1234,1234 123.46,123.5 Hello,Hel 例 -例 int a=123; printf(“%o,%#o,%X,%#Xn”,a,a,a,a); 例 #/173,0173,7B,0X7B24例 int a=1234; float f=123.456; printf(“%08dn”,a); printf(“%010.2fn”,f); printf(“%0+8dn”,a); printf(“0+10.2fn”,f); 例 0 、+例 long a=65536; printf(“%d,%8ldn”,a, a); 例 l00 00 00 0

26、0 00 00 00 01 00 00 00 00 00 00 00 00/00001234/0000123.46/000+1234/000+123.56/0, 65536格式輸入函數(shù)25格式: scanf(scanf(“格式控制串格式控制串”,地址表地址表)功能:按指定格式從鍵盤讀入數(shù)據(jù),存入地址表指定的 存儲單元中,并按回車鍵結(jié)束返值:正常,返回輸入數(shù)據(jù)個數(shù) 地址表:變量的地址,常用取地址運算符& 格式字符:d,i,o,x,u,c,s,f,e例 scanf(“%d”,&a); 輸入:10 則 a=10例 scanf(“%x”,&a); 輸入:11 則 a=1726 附加格式說明符(修飾符)

27、l修飾符功 能hm*用于d,o,x前,指定輸入為short型整數(shù)用于d,o,x前,指定輸入為long型整數(shù)用于e,f前,指定輸入為double型實數(shù)指定輸入數(shù)據(jù)寬度,遇空格或不可轉(zhuǎn)換字符則結(jié)束抑制符,指定輸入項讀入后不賦給變量例 scanf(“%4d%2d%2d”,&yy,&mm,&dd); 輸入 19991015 則1999yy, 10 mm, 15 dd例 scanf(“%3d%*4d%f”,&k,&f); 輸入 12345678765.43 則123k, 8765.43f例 scanf(“%2d%*3d%2d”,&a,&b); 輸入 1234567 則12a, 67b例 scanf(“%

28、3c%2c”,&c1,&c2); 輸入 abcde 則ac1, d c2 輸入分隔符的指定 一般以空格、TAB或回車鍵作為分隔符 其它字符做分隔符:格式串中兩個格式符間字符27例 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例 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 說明: 用“%c”格式符時,空格和轉(zhuǎn)義字符作為有效字符輸入28如 scanf(“%c%c%c”,&c1,&c2,&c3); 若輸入abc 則ac1, c2, b c3 輸

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論