![[IT認證]C語言第二章_第1頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/21/2bc88006-e4e3-4354-a87f-25cfef8ea320/2bc88006-e4e3-4354-a87f-25cfef8ea3201.gif)
![[IT認證]C語言第二章_第2頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/21/2bc88006-e4e3-4354-a87f-25cfef8ea320/2bc88006-e4e3-4354-a87f-25cfef8ea3202.gif)
![[IT認證]C語言第二章_第3頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/21/2bc88006-e4e3-4354-a87f-25cfef8ea320/2bc88006-e4e3-4354-a87f-25cfef8ea3203.gif)
![[IT認證]C語言第二章_第4頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/21/2bc88006-e4e3-4354-a87f-25cfef8ea320/2bc88006-e4e3-4354-a87f-25cfef8ea3204.gif)
![[IT認證]C語言第二章_第5頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/21/2bc88006-e4e3-4354-a87f-25cfef8ea320/2bc88006-e4e3-4354-a87f-25cfef8ea3205.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、第二章 數(shù)據(jù)的類型與基本操作預備知識基本數(shù)據(jù)類型與常數(shù)的表示變量與內(nèi)存運算符與表達式輸入輸出函數(shù)2.0 預備知識計算機中數(shù)的表示及進制轉(zhuǎn)換v數(shù)碼、基與權l(xiāng)數(shù)碼:表示數(shù)的符號l基:數(shù)碼的個數(shù)l權:每一位所具有的值v數(shù)制語言程序設計 第二章數(shù)據(jù)描述Cv各種進制之間的轉(zhuǎn)換l二進制、八進制、十六進制轉(zhuǎn)換成十進制u方法:按權相加10012345259212120212121111011)()(例10012894868381136)()(例1001231679781610162161516121)()(例AF語言程序設計 第二章數(shù)據(jù)描述Cv各種進制之間的轉(zhuǎn)換(整數(shù))l二進制、八進制、十六進制轉(zhuǎn)換成十進制u
2、方法:按權相加l十進制轉(zhuǎn)換成二進制、八進制、十六進制u原理:的余數(shù)是2)2.22(222.22).(00012110011112011NaaaaaaaaaaaaaNnnnnnnnnnnu方法:連續(xù)除以基,從低到高記錄余數(shù),直至商為0例 把十進制數(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余1
3、2余 1語言程序設計 第二章數(shù)據(jù)描述Cl二進制與八進制之間的轉(zhuǎn)換u二進制轉(zhuǎn)換成八進制:從右向左,每3位一組(不足3位左補0),轉(zhuǎn)換成八進制u八進制轉(zhuǎn)換成二進制:用3位二進制數(shù)代替每一位八進制數(shù)例 (1101001)2=(001,101,001)2=(151)8例 (246)8=(010,100,110)2=(10100110)2000 0001 1010 2011 3100 4101 5110 6111 7語言程序設計 第二章數(shù)據(jù)描述Cl二進制與十六進制之間的轉(zhuǎn)換u二進制轉(zhuǎn)換成十六進制:從右向左,每4位一組(不足4位左補0),轉(zhuǎn)換成十六進制u十六進制轉(zhuǎn)換成二進制:用4位二進制數(shù)代替每一位十六進
4、制數(shù)例 (11010101111101)2=(0011,0101,0111,1101)2=(357D)16例 (4B9E)16=(0100,1011,1001,1110)2=(100101110011110)20000 00001 10010 20011 30100 40101 50110 60111 71000 81001 91010 A1011 B1100 C1101 D1110 E1111 F語言程序設計 第二章數(shù)據(jù)描述C字節(jié)和位v內(nèi)存以字節(jié)為單元組成v每個字節(jié)有一個地址v一個字節(jié)一般由8個二進制位組成v每個二進位的值是0或101234567012345678910.語言程序設計 第二章
5、數(shù)據(jù)描述C7643251數(shù)值的表示方法原碼、反碼和補碼v原碼:最高位為符號位,其余各位為數(shù)值本身的絕對值v反碼:l正數(shù):反碼與原碼相同l負數(shù):符號位為1,其余位對原碼取反v補碼:l正數(shù):原碼、反碼、補碼相同l負數(shù):最高位為1,其余位為原碼取反,再對整個數(shù)加13126912457810119-5=49+7=16=(14)12語言程序設計 第二章數(shù)據(jù)描述C原碼反碼補碼+7000001110000011100000111-7100001111111100011111001+0000000000000000000000000-0100000001111111100000000數(shù)的范圍011111111
6、1111111(-127+127)0111111110000000(-127+127)0111111110000000(-128+127)(用一字節(jié)表示數(shù))v負數(shù)補碼轉(zhuǎn)換成十進制數(shù):最高位不動,其余位取反加1例 補碼:11111001 取反:10000110 加1: 10000111=-7語言程序設計 第二章數(shù)據(jù)描述C2.1.1 基本數(shù)據(jù)類型數(shù)據(jù)類型總表C數(shù)據(jù)類型基本類型構(gòu)造類型指針類型空類型void定義類型typedef字符類型char枚舉類型enum整 型實型單精度型float雙精度型double數(shù)組結(jié)構(gòu)體struct共用體union短整型short長整型long整型int數(shù)據(jù)類型決定:1
7、. 數(shù)據(jù)占內(nèi)存字節(jié)數(shù)2. 數(shù)據(jù)取值范圍3. 其上可進行的操作語言程序設計 第二章數(shù)據(jù)描述C基本數(shù)據(jù)類型類型符號關鍵字數(shù)的表示范圍所占位數(shù)整型字符型實型有無(signed)int32-21474836482147483647(signed)short16-3276832767(signed)long32-2147483648214748364732unsigned int042949672953204294967295unsigned longunsigned short16065535有float323.4e-383.4e38有double641.7e-3081.7e308有char8-128
8、127無unsigned char80255說明:數(shù)據(jù)類型所占字節(jié)數(shù)在不同的編譯器會有所不同,上表以VC6機為例:語言程序設計 第二章數(shù)據(jù)描述Cu一般用大寫字母u是宏定義預處理命令,不是C語句l直接常量:u整型常量 u實型常量 u字符常量 u字符串常量如 #define PRICE 302.1.2 常數(shù)表示v定義:程序運行時其值不能改變的量(即常數(shù))v分類:l符號常量:用標識符代表常量u定義格式: #define 符號常量 常量例 符號常量舉例(ch2_1.c)#define PRICE 30main() int num,total; num=10; total=num*PRICE; prin
9、tf(total=%d,total);運行結(jié)果:total=300語言程序設計 第二章數(shù)據(jù)描述C&整型常量(整常數(shù))v三種形式:l十進制整數(shù):由數(shù)字09和正負號表示.如 123,-456,0l八進制整數(shù):由數(shù)字0開頭,后跟數(shù)字07表示.如0123,011l十六進制整數(shù):由0 x開頭,后跟09,af,AF表示. 如0 x123,0Xff例 12 與 12Lv整型常量的類型l根據(jù)其值所在范圍確定其數(shù)據(jù)類型l在整常量后加字母l或L,認為它是long int 型常量問題:0123 = ( )100 x123 = ( )100Xff = ( )1083291255問題:0123 = ( )100
10、 x123 = ( )100Xff = ( )10語言程序設計 第二章數(shù)據(jù)描述C&實型常量(實數(shù)或浮點數(shù))v表示形式:l十進制數(shù)形式:(必須有小數(shù)點) 如0.123, .123, 123.0, 0.0, 123.l指數(shù)形式:(e或E之前必須有數(shù)字;指數(shù)必須為整數(shù))如12.3e3 ,123E2, 1.23e4 , e-5 , 1.2E-3.5 v實型常量的類型l默認double型l在實型常量后加字母f或F,認為它是float 型語言程序設計 第二章數(shù)據(jù)描述C&字符常量v定義:用單引號括起來的單個普通字符或轉(zhuǎn)義字符. v字符常量的值:該字符的ASCII碼值轉(zhuǎn)義字符及其含義:轉(zhuǎn)義字符
11、含義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 101v轉(zhuǎn)義字符:反斜線后面跟一個字符或一個代碼值表示例 轉(zhuǎn)義字符舉例(ch2_001.c,ch2_004.c) main() printf(101 x42 Cn); printf(I say:How are you?n); printf(C Programn); printf(T
12、urbo C);運行結(jié)果:(屏幕顯示)A B CIsay:”How are you?”C ProgramTurbo C例 main() printf(“Yb=n”); 運行結(jié)果:屏幕顯示:=打印機輸出:b _above $123M.D.John3days#33char$123ab語言程序設計 第二章數(shù)據(jù)描述CC C語言內(nèi)部預先定義的標識符稱為關鍵字,關鍵字不能作為用語言內(nèi)部預先定義的標識符稱為關鍵字,關鍵字不能作為用戶標識符。戶標識符。編譯程序根據(jù)變量定義為其分配指定字節(jié)的內(nèi)存單元.地址int a=1, b=-3,c;abc4字節(jié)4字節(jié)4字節(jié)地址地址.內(nèi)存1-3隨機數(shù)2.2.2變量的定義與初始
13、化v概念:其值可以改變的量v變量名與變量值v變量定義的一般格式: 數(shù)據(jù)類型 變量1,變量2,變量n;v變量初始化:定義時賦初值 例: 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;v變量的使用:先定義,后使用例1 int student; stadent=19; /Undefined symbol statent in function main v變量定義位置:一般放在函數(shù)開頭main() int a,b=2
14、; 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);Ch2_005.c語言程序設計 第二章數(shù)據(jù)描述C&整型變量v占字節(jié)數(shù)隨機器不同而不同,一般占一個機器字vshortintlongv可用sizeof(類型標識符)測量&實型變量vfloat:占4字節(jié),提供7位有效數(shù)字vdouble:占8字節(jié),提供1516位有效數(shù)字&字符型變量v字符變量存放字
15、符ASCII碼vchar與int數(shù)據(jù)間可進行算術運算例 2.3 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; */沒有字符串變量,用字符數(shù)組存放語言程序設計 第二章數(shù)據(jù)描述C例 2.4 void main() char ch1,ch2; ch1=a; ch2=65;printf(“ch1=%c,ch1=%dn”,ch1,ch1);printf(“ch2=%c,ch2=%dn
16、”,ch2,ch2);例 2.5 將小寫字母a轉(zhuǎn)換成大寫字母后輸出 #include main() char ch1=b,ch2; int i; i=a-A; ch2=ch1-i; printf(“ch1=%c,ch2=%c,i=%dn”,ch1.ch2,i);宏定義變量定義輸出結(jié)果語言程序設計 第二章數(shù)據(jù)描述C2.3 運算符和表達式C運算符算術運算符:(+ - * / % + -)關系運算符:( = !=)邏輯運算符:(! & |)位運算符 :( | &)賦值運算符:(= 及其擴展)條件運算符:(?:)逗號運算符:(,)指針運算符:(* &)求字節(jié)數(shù) :(sizeof
17、)強制類型轉(zhuǎn)換:(類型)分量運算符:(. -)下標運算符:()其它 :(( ) -)語言程序設計 第二章數(shù)據(jù)描述C表達式:由運算符與運算對象(變量、常量、函數(shù)、表達式)組合而成。表達式:由運算符與運算對象(變量、常量、函數(shù)、表達式)組合而成。學習運算符應注意:v運算符功能v與運算量關系l要求運算量個數(shù)l要求運算量類型v運算符優(yōu)先級別v結(jié)合方向v結(jié)果的類型語言程序設計 第二章數(shù)據(jù)描述C2.3.1 算術運算符和表達式v基本算術運算符: + - * / %l結(jié)合方向:從左向右l優(yōu)先級: - -* / % - + - (2) (3) (4)說明:l“-”可為單目運算符時,右結(jié)合性l兩整數(shù)相除,結(jié)果為整
18、數(shù)l%要求兩側(cè)均為整型數(shù)據(jù)例 5/2 = -5/2.0 =例 5%2 = -5%2 = 1%10 = 5%1 = 5.5%2例 5/2 = 2 -5/2.0 = -2.5例 5%2 = 1 -5%2 = -1 1%10 = 1 5%1 = 0 5.5%2 ()語言程序設計 第二章數(shù)據(jù)描述C例 2.6 將一個三位整數(shù)365轉(zhuǎn)換為563,調(diào)換個位與百位數(shù)字 #includevoid main()int x=365,a,b,c,y;c=x%10;b=x/10%10;a=x/100;y=c*100+b*10+a;printf(x=%d,y=%dn,x,y);2.3.2 賦值運算符和表達式v簡單賦值運算
19、符l符號: =l格式: 變量標識符=表達式l作用:將一個數(shù)據(jù)(常量或表達式)賦給一個變量l賦值運算符的優(yōu)先級別很低l賦值運算符不同于數(shù)學中的符號v復合賦值運算符l種類:+= -= *= /= %= = = &= = |=l含義: exp1 op= exp2 exp1 = exp1 op exp2a+=3a=a+3x*=y+8x=x*(y+8)x%=3x=x%3例 a=3; a=b;b=a; a=a+1 d=func(); c=d+2; 語言程序設計 第二章數(shù)據(jù)描述Cv說明:l結(jié)合方向:自右向左l優(yōu)先級: 14l左側(cè)必須是變量,不能是常量或表達式l賦值表達式的值與變量值相等,且可嵌套l賦
20、值轉(zhuǎn)換規(guī)則:使賦值號右邊表達式值自動轉(zhuǎn)換成其左邊變量的類型例 3=x-2*y; a+b=3; 3=a;例 float f; int i; i=10; f=i;則 f=10.0例 int i; i=2.56; /結(jié)果i=2;例: a=b=c=5 a=(b=5) a=5+(c=6) a=(b=4)+(c=6) a=(b=10)/(c=2)/表達式值為5,a,b,c值為5/ b=5;a=5/表達式值11,c=6,a=11/表達式值10,a=10,b=4,c=6/表達式值5,a=5,b=10,c=2語言程序設計 第二章數(shù)據(jù)描述Cv說明:l結(jié)合方向:自右向左l優(yōu)先級: 14l左側(cè)必須是變量,不能是常量或
21、表達式l賦值表達式的值與變量值相等,且可嵌套l賦值轉(zhuǎn)換規(guī)則:使賦值號右邊表達式值自動轉(zhuǎn)換成其左邊變量的類型例: a=12; a+=a-=a*a例: int a=2; a%=4-1; a+=a*=a-=a*=3; /a=-264 等價于a=a+(a=a-(a*a)/a=0 等價于a=a+(a=a*(a=a-(a=a*3)語言程序設計 第二章數(shù)據(jù)描述C2.3.3數(shù)據(jù)類型的轉(zhuǎn)換隱式轉(zhuǎn)換v什么情況下發(fā)生l運算轉(zhuǎn)換-不同類型數(shù)據(jù)混合運算時l賦值轉(zhuǎn)換-把一個值賦給與其類型不同的變量時l輸出轉(zhuǎn)換-輸出時轉(zhuǎn)換成指定的輸出格式l函數(shù)調(diào)用轉(zhuǎn)換-實參與形參類型不一致時轉(zhuǎn)換v運算轉(zhuǎn)換規(guī)則:不同類型數(shù)據(jù)運算時先自動轉(zhuǎn)換
22、成同一類型語言程序設計 第二章數(shù)據(jù)描述Cdoublefloatlongunsignedintchar,short低高說明:必定的轉(zhuǎn)換運算對象類型不同時轉(zhuǎn)換例 char ch; int i; float f; double d;ch/i + f*d - (f+i)intintdoubledoubledoubledoubledoubledoubleintintdoubledoubledoubledoubledoubledouble10+a +i*f - d/l例 int i; float f; double d; long l;顯式轉(zhuǎn)換(強制轉(zhuǎn)換)v一般形式:(類型名)(表達式)例 (int)(x
23、+y) (int)x+y (double)(3/2) (int)3.6 v說明:強制轉(zhuǎn)換得到所需類型的中間變量,原變量類型不變 例 main() float x; int i; x=3.6; i=(int)x; printf(“x=%f,i=%d”,x,i); 結(jié)果:x=3.600000,i=3精度損失問題較高類型向較低類型轉(zhuǎn)換時可能發(fā)生語言程序設計 第二章數(shù)據(jù)描述C2.3.4 常用數(shù)學函數(shù)在表達式計算中,如果遇到一般的初等數(shù)學函數(shù),可以使用系統(tǒng)提供的標準庫函數(shù)來完成(1)頭文件包含 #include (2)函數(shù)原型 int abs(int x) double fabs(double x) d
24、ouble sqrt(double x) double pow(double x,double y)(3)參數(shù)的定義域 平方根函數(shù),三角函數(shù)sin(60*3.14/180)例 2.8 常用數(shù)學庫函數(shù)的用法 #include #includevoid main() printf(abs(-5)=%d,abs(5)=%dn,abs(-5),abs(5); printf(sqrt(2)=%20.16fn,sqrt(2); printf(pow(2,3)=%f,pow(2,0.5)=%fn,pow(2,3),pow(2,0.5); printf(exp(1)=%fn,exp(1); printf(si
25、n(x)=%fn,sin(30*3.14/180);v自增、自減運算符+ -l作用:使變量值加1或減1l種類:u前置 +i, -i (先執(zhí)行i+1或i-1,再使用i值)u后置 i+,i- (先使用i值,再執(zhí)行i+1或i-1)例 j=3; k=+j; j=3; k=j+; j=3; printf(“%d”,+j); j=3; printf(“%d”,j+); a=3;b=5;c=(+a)*b; a=3;b=5;c=(a+)*b; /k=4,j=4/k=3,j=4/4/3/c=20,a=4/c=15,a=4語言程序設計 第二章數(shù)據(jù)描述C2.3.5 幾個特殊的運算符v自增、自減運算符+ -l作用:使
26、變量值加1或減1l種類:u前置 +i, -i (先執(zhí)行i+1或i-1,再使用i值)u后置 i+,i- (先使用i值,再執(zhí)行i+1或i-1)l說明:u+ - 不能用于常量和表達式,如5+,(a+b)+u+ -結(jié)合方向: 自右向左u優(yōu)先級:- + - -* / % -+ - (2) (3) (4)例 -i+ -(i+) i=3; printf(“%d”,-i+); /-3 例 j+k; (j+)+k;例 -i+ i=3; printf(“%d”,-i+); 語言程序設計 第二章數(shù)據(jù)描述C逗號運算符和表達式v形式:表達式1,表達式2,表達式nv結(jié)合性:從左向右v優(yōu)先級: 15v逗號表達式的值:等于表
27、達式n的值v用途:常用于循環(huán)for語句中例 a=3*5,a*4 a=3*5,a*4,a+5例 x=(a=3,6*3) x=a=3,6*a例 a=1;b=2;c=3; printf(“%d,%d,%d”,a,b,c); printf(“%d,%d,%d”,(a,b,c),b,c); /a=15,表達式值60/a=15,表達式值20/賦值表達式,表達式值18,x=18/逗號表達式,表達式值18,x=3/1,2,3/3,2,3語言程序設計 第二章數(shù)據(jù)描述C逗號運算符和表達式v形式:表達式1,表達式2,表達式nv結(jié)合性:從左向右v優(yōu)先級: 15v逗號表達式的值:等于表達式n的值v用途:常用于循環(huán)for
28、語句中例:/*ch2_6.c*/#include main() int x,y=7; float z=4; x=(y=y+6,y/z); printf(x=%dn,x);運行結(jié)果:x=3語言程序設計 第二章數(shù)據(jù)描述C2.4 輸入輸出函數(shù)輸入:從計算機輸入設備向內(nèi)存?zhèn)魉蛿?shù)據(jù)的過程輸出:將主機中的數(shù)據(jù)傳送到計算機輸出設備5C語言無I/O語句,I/O操作由函數(shù)實現(xiàn)5 #include 2.4.1 數(shù)據(jù)輸出格式:格式:printf(“printf(“格式控制串格式控制串”,輸出項表,輸出項表) )功能:按指定格式向顯示器輸出數(shù)據(jù)功能:按指定格式向顯示器輸出數(shù)據(jù)返值:正常,返回輸出字節(jié)數(shù);出錯,返回返值
29、:正常,返回輸出字節(jié)數(shù);出錯,返回EOF(-1)EOF(-1)格式輸出函數(shù)v輸出項表:要輸出的數(shù)據(jù)(可以沒有,多個時以“,”分隔)常量,變量或表達式,個數(shù)與格式說明符的個數(shù)相同,類型一致v格式控制串:包含兩種信息l格式控制符: %修飾符格式描述字符 ,用于指定輸出格式l普通字符或轉(zhuǎn)義序列:原樣輸出v格式描述字符dx,Xoucse,Efg%格式字符:十六進制無符號整數(shù)不帶符號十進制整數(shù)十進制整數(shù)指數(shù)形式浮點小數(shù)單一字符字符串八進制無符號整數(shù)小數(shù)形式浮點小數(shù)e和f中較短一種百分號本身int a=567;printf ( “%d”,a);int a=255;printf(“%x”,a);int a=
30、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+02567.789000567.789%l說明u格式字符要用小寫u格式字符與輸出項個數(shù)應相同,按先后順序一一對應u輸出轉(zhuǎn)換:格式字符與輸出項類型不一致,自動按指定格式
31、輸出例 int a=3,b=4; printf(“%d %dn”,a,b); printf(“a=%d , b=%dn”,a,b); 例 int a=3,b=4; printf(“%d %dn”,a,b); printf(“a=%d , b=%dn”,a,b);輸出結(jié)果: 3 4 a=3, b=4v附加格式說明符(修飾符).n對實數(shù),指定小數(shù)點后位數(shù)(四舍五入)對字符串,指定實際輸出位數(shù)修飾符功 能m輸出數(shù)據(jù)域?qū)?數(shù)據(jù)長度m,左補空格;否則按實際輸出輸出數(shù)據(jù)在域內(nèi)左對齊(缺省右對齊)-指定在有符號數(shù)的正數(shù)前顯示正號(+)+輸出數(shù)值時指定左面不使用的空位置自動填00在八進制和十六進制數(shù)前顯示前導
32、0,0 x#在d,o,x,u前,指定輸出精度為long型在e,f,g前,指定輸出精度為double型l例 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,123.456000, 123.5,123.46,1.23e+02 a例 static char a=“Hello,world!” printf(“%sn%15sn%10.5sn%2.5
33、sn%.3sn”,a,a,a,a,a);運行結(jié)果:Hello,world! Hello,world! Hello Hello Hel 例 m.n2.4.2 格式輸入函數(shù)格式: scanf(“格式控制字符串”,地址表)功能:按指定格式從鍵盤讀入數(shù)據(jù),存入地址表指定的 存儲單元中,并按回車鍵結(jié)束返值:正常,返回輸入數(shù)據(jù)個數(shù)v地址表:變量的地址,常用取地址運算符&各項之間用逗號間隔 與格式說明符個數(shù)相同、一一對應v格式字符:d,i,o,x,u,c,s,f,e例 scanf(“%d%f”,&a,&b); 輸入:10 20 則 a=10 b=20例 scanf(“%x”,&
34、;a); 輸入:11 則 a=17v附加格式說明符(修飾符)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(“%2d%*3d%2d”,&a,&b); 輸入 1234567 則12a, 67b例 scanf(“%3d%2
35、d”,&a,&b); 輸入 5 8 則a=5, b=8當指定輸入數(shù)據(jù)寬度時,系統(tǒng)自動截取所需數(shù)據(jù)。當指定輸入數(shù)據(jù)寬度時,系統(tǒng)自動截取所需數(shù)據(jù)。為雙精度型變量輸入數(shù)據(jù),必須使用為雙精度型變量輸入數(shù)據(jù),必須使用%lf格式控制符格式控制符空格作為數(shù)據(jù)的間隔,指定寬度不起作用空格作為數(shù)據(jù)的間隔,指定寬度不起作用輸入實型數(shù)據(jù)時,不能限定輸入數(shù)據(jù)的寬度與小數(shù)位數(shù)輸入實型數(shù)據(jù)時,不能限定輸入數(shù)據(jù)的寬度與小數(shù)位數(shù)v輸入分隔符的指定l一般以空格、TAB或回車鍵作為分隔符l其它字符做分隔符:格式串中兩個格式符間字符例 scanf(“%d%o%x”,&a,&b,&c); pr
36、intf(“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 v說明:l用“%c”格式符時,空格和轉(zhuǎn)義字符作為有效字符輸入如 scanf(“%c%c%c”,&
37、c1,&c2,&c3); 若輸入abc 則ac1, c2, b c3l輸入數(shù)據(jù)時,遇以下情況認為該數(shù)據(jù)結(jié)束:u遇空格、TAB、或回車u遇寬度結(jié)束u遇非法輸入如 scanf(“%d%c%f”,&a,&b,&c); 若輸入1234a123o.26 則 1234 a, a b, 123 cl輸入項參數(shù)必須是變量的地址l格式符類型與輸入項按順序結(jié)合,類型要一一對應。如果類型不匹配,編譯程序不做類型檢查。l如果輸入數(shù)據(jù)少于輸入項時,必須繼續(xù)輸入,直到滿足要求。如果輸入數(shù)據(jù)多于輸入項個數(shù),多余的數(shù)據(jù)作為下一個輸入函數(shù)的輸入數(shù)據(jù)2.4.3 字符輸入輸出函數(shù)字符輸出函數(shù)
38、 putchar( )格式: putchar( c )參數(shù): c為字符常量、變量或表達式功能:把字符c輸出到顯示器上返值:正常,為顯示的代碼值;出錯,為EOF(-1)例2.14 字符輸出函數(shù)的用法格式:getchar( )功能:從鍵盤讀一字符返值:正常,返回讀取的代碼值;出錯,返回EOF(-1)字符輸入函數(shù) getchar()例 2.15 運行結(jié)果:輸入:as123輸出:as,123l輸入函數(shù)留下的“垃圾”:getchar()只能接收一個字符。當只有一個getchar()函數(shù)時,輸入一個字符并按回車鍵后,字符才能被接收。但是回車鍵仍保留在鍵盤緩沖區(qū)中。解決方法:(1)用getchar()清除(
39、2)用函數(shù)fflush(stdin)清除全部剩余內(nèi)容 (3) 用格式串中空格或“%*c”來“吃掉”例 int x; char ch; scanf(“%d”,&x); ch=getchar(); printf(“x=%d,ch=%dn”,x,ch);執(zhí)行:123輸出:x=123,ch=10例 int x; char ch; scanf(“%d”,&x); scanf(“%c”,&ch); printf(“x=%d,ch=%dn”,x,ch);執(zhí)行:123輸出:x=123,ch=10關系運算符和表達式v關系運算符l種類: = !=l結(jié)合方向:自左向右l優(yōu)先級別:= =!=優(yōu)
40、先級6(高)優(yōu)先級7(低)例 ca+b /c(a+b) ab!=c /(ab)!=c a=bc /a=(bc /a=(bc)l關系表達式的值:是邏輯值“真”或“假”,用1和0表示例 int a=3,b=2,c=1,d,f; ab (ab)=c b+cb f=abc/表達式值1/表達式值1/表達式值0/d=1/f=0語言程序設計 第二章數(shù)據(jù)描述Cl關系運算注意:例 若a=0; b=0.5; x=0.3; 則 a=x278在C中是允許的, 值為0例 int i=1, j=7,a; a=i+(j%4!=0); 則a=2例 a0 結(jié)果為 A100 結(jié)果為10語言程序設計 第二章數(shù)據(jù)描述Cl關系運算注意:例 注意區(qū)分“=”與“=” int a=0,b=1; if(a=b) printf(“a equal to b”); else printf(“a not equal to b”);例 應避免對實數(shù)作相等或不等的判斷如 1.0/3.0*3.0=1.0 結(jié)果為可改寫為:fabs(1.0/3.0*3.0-1.0)1e-60語言程序設計 第二章
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- UX 設計師崗位面試問題及答案
- 2025屆河北省秦皇島市一中高二下化學期末教學質(zhì)量檢測試題含解析
- 2025屆天津市靜海區(qū)獨流中學化學高二下期末調(diào)研試題含解析
- 村鎮(zhèn)園林項目管理辦法
- 華為運動啟動管理辦法
- 華潤燃氣績效管理辦法
- 農(nóng)村代理記賬管理辦法
- 公共綠化區(qū)域管理辦法
- 檢察檔案保密管理辦法
- 多功能復合創(chuàng)可貼-洞察及研究
- 新課標(水平三)體育與健康《籃球》大單元教學計劃及配套教案(18課時)
- GB/T 44910-2024琥珀分級
- 臨時施工出入口交通疏導方案
- 醫(yī)療設備器材供貨安裝、調(diào)試及售后服務方案
- 大學生創(chuàng)新創(chuàng)業(yè)基礎(創(chuàng)新創(chuàng)業(yè)課程)完整全套教學課件
- 部編版語文三年級上冊第四單元教材解讀大單元集體備課
- 《論語十二章》挖空練習及答案
- 一對一幫扶協(xié)議書范本
- 2024年江蘇省無錫市中考英語試卷真題(含答案解析)
- 網(wǎng)絡安全設備巡檢記錄表
- 反假幣題庫(484道)
評論
0/150
提交評論