




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第3章最簡單的C程序設(shè)計3.1順序程序設(shè)計舉例3.2數(shù)據(jù)的表現(xiàn)形式及其運算3.3C語句3.4數(shù)據(jù)的輸入輸出3.1順序程序設(shè)計舉例
例3.2計算存款利息。有1000元,想存一年。有三種方法可選:(1)活期,年利率為r1(2)一年期定期,年利率為r2(3)存兩次半年定期,年利率為r3
請分別計算出一年后按三種方法所得到的本息和。3.1順序程序設(shè)計舉例解題思路:確定計算本息和的公式。從數(shù)學(xué)知識可知:若存款額為p0,則:活期存款一年后本息和為:
p1=p0(1+r1)一年期定期存款,一年后本息和為:
p2=p0(1+r2)兩次半年定期存款,一年后本息和為:
3.1順序程序設(shè)計舉例算法:輸入p0,r1,r2,r3的值計算p1=p0(1+r1)計算p2=p0(1+r2)計算p3=p0(1+)(1+)輸出p1,p2,p33.1順序程序設(shè)計舉例#include<stdio.h>intmain(){floatp0=1000,r1=0.0036,r2=0.0225,r3=0.0198,p1,p2,p3;p1=p0*(1+r1);p2=p0*(1+r2);p3=p0*(1+r3/2)*(1+r3/2);printf(”%f\n%f\n%f\n”,p1,p2,p3);return0;}定義變量同時賦予初值3.2數(shù)據(jù)的表現(xiàn)形式及其運算3.2.1常量和變量3.2.2數(shù)據(jù)類型3.2.3整型數(shù)據(jù)3.2.4字符型數(shù)據(jù)3.2.5浮點型數(shù)據(jù)3.2.6怎樣確定常量的類型3.2.7運算符和表達式4.標識符定義:用來標識變量、常量、函數(shù)等的字符序列組成:只能由字母、數(shù)字、下劃線組成,且第一個字母必須是字母或下劃線C語言的關(guān)鍵字不能用作變量名大小寫敏感長度:有效長度為32個字符。隨系統(tǒng)而異,但至少前8個字符有效命名原則:變量名和函數(shù)名中的英文字母一般用小寫,以增加可讀性
見名知意不宜混淆如l與l,o與0
在TC2.0及BC3.1中,變量名(標識符)的有效長度為1~32個字符,缺省值為32,但在VC中其長度可達到255例:判斷下列標識符號合法性sumSumM.D.JohndayDate3daysstudent_name#33lotus_1_2_3chara>b_above$123M.D.John3days#33char$123a>b
.字符非法
數(shù)字3不可作首字符
#字符非法
char是關(guān)鍵字
>字符非法
$不可作首字符3.2.1常量和變量1.常量:在程序運行過程中,不占據(jù)任何存儲空間,其值不能被改變的量。符號常量:#definePI3.1416直接常量整型常量:如1000,12345,0,-345實型常量十進制小數(shù)形式:如0.34-56.790.0指數(shù)形式:如12.34e3(代表12.34103)字符常量:如’?’轉(zhuǎn)義字符:如’\n’字符串常量:如”boy”宏定義
符號常量:用標識符來代表常量。 其定義格式為:
#define符號常量常量
#defineNUM20#definePI3.1415926
#include<stdio.h>#definePRICE30voidmain(){intnum,total;num=10;total=num*PRICE;printf("total=%d",total);}
運行結(jié)果:total=300
行尾不能有分號
define前面一定要有#
符號常量名最好使用大寫符號常量名最好有意義
不能被重新賦值
【例】符號常量舉例PRICE=10;變量1.變量的概念在程序運行過程中,其值可以被改變的量稱為變量。在內(nèi)存中占據(jù)一定的存儲空間。
2.變量的兩個要素(1)變量名。每個變量都必須有一個名字──變量名,變量命名遵循標識符命名規(guī)則。(2)變量值。在程序運行過程中,變量值存儲在內(nèi)存中。在程序中,通過變量名來引用變量的值。3.2常量和變量3.變量的定義與初始化及使用在C語言中,要求對所有用到的變量,必須先定義、后使用;聲明變量即定義了變量,意味著給變量分配了內(nèi)存空間。在定義變量的同時進行賦初值的操作為變量初始化。(1)變量定義的一般格式數(shù)據(jù)類型
[變量1,變量2,…,變量n];注意:在同一語句里不能混合定義不同類型的變量。變量定義位置:一般放在函數(shù)開頭例:inta,b,c;floatdata;例:inta,b,c,floatdata;例:inta,b,c;floatdata;決定分配字節(jié)數(shù)和數(shù)的表示范圍合法標識符一條語句聲明多個同一類型變量時,變量使用逗號分割例:inta=2,b,c=4;floatdata=3.67;charch=‘A’;intx=1,y=1,z=1;(2)變量初始化的一般格式數(shù)據(jù)類型變量名[=初值][,變量名2[=初值2]……];(3)變量的使用:先定義,后使用變量就是一個存儲對象,必須在聲明之后才能使用;聲明變量即定義了變量,意味著給變量分配了內(nèi)存空間;…...地址inta=1,b=-3,c;abc2字節(jié)2字節(jié)2字節(jié)地址地址…...內(nèi)存1-3隨機數(shù)編譯程序根據(jù)變量定義為其分配指定字節(jié)的內(nèi)存單元<>例1intstudent;stadent=19;//Undefinedsymbol‘statent’infunctionmain
main(){inta,b=2;floatdata;a=1;data=(a+b)*1.2;printf(“data=%f\n”,data);}變量定義可執(zhí)行語句main(){inta,b=2;a=1;floatdata;data=(a+b)*1.2;printf(“data=%f\n”,data);}3.2.2數(shù)據(jù)類型所謂類型,就是對數(shù)據(jù)分配存儲單元的安排,包括存儲單元的長度(占多少字節(jié))以及數(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.數(shù)據(jù)占內(nèi)存字節(jié)數(shù)2.數(shù)據(jù)取值范圍3.其上可進行的操作本章所介紹的數(shù)據(jù)類型3.2.2數(shù)據(jù)類型C語言允許使用的數(shù)據(jù)類型:基本類型枚舉類型空類型派生類型指針類型數(shù)組類型結(jié)構(gòu)體類型共用體類型函數(shù)類型算術(shù)類型純量類型3.2.3整型數(shù)據(jù)1.整型數(shù)據(jù)的分類最基本的整型類型基本整型(int型):占2個或4個字節(jié)短整型(shortint):VC++6.0中占2個字節(jié)長整型(longint):VC++6.0中占4個字節(jié)雙長整型(longlongint):C99新增的1.分類根據(jù)占用內(nèi)存字節(jié)數(shù)的不同,整型變量又分為4類:(1)基本整型(類型關(guān)鍵字為int)。(2)短整型(類型關(guān)鍵字為short[int])。(3)長整型(類型關(guān)鍵字為long[int])。(4)有符號雙長整型[signed]longlong[int];無符號整型。無符號型又可與上述四種類型匹配而構(gòu)成:無符號基本型:類型說明符為unsignedint或unsigned。無符號短整型:類型說明符為unsignedshort。無符號長整型:類型說明符為unsignedlong無符號雙長整型unsignedlonglong[int]注:各種無符號類型量所占的內(nèi)存空間字節(jié)數(shù)與相應(yīng)的有符號類型量相同。但由于省去了符號位,故不能表示負數(shù)。
基本數(shù)據(jù)類型<>類型符號關(guān)鍵字數(shù)的表示范圍所占位數(shù)整型字符型實型有無(signed)int16-32768~32767320~4294967295unsignedlongunsignedshort160~65535有float323.4e-38~3.4e38有double641.7e-308~1.7e308有char8-128~127無unsignedchar80~255說明:數(shù)據(jù)類型所占字節(jié)數(shù)隨機器硬件不同而不同,上表以IBMPC機為例:(signed)short16-32768~32767(signed)long32-2147483648~2147483647160~65535unsignedint3.3簡單數(shù)據(jù)類型與表示范圍3.3.1整型數(shù)據(jù)
1.整型常量
十進制整數(shù):由數(shù)字0~9和正負號表示
.
如:123,-456,0八進制整數(shù):由數(shù)字0開頭,后跟數(shù)字0~7表示.如:0123,011十六進制整數(shù):由0x或0X開頭,后跟0~9,a~f,A~F表示.如0x123,0Xff思考題:下列整型常量哪些是非法的?
012,oX7A,00,078,0x5Ac,-0xFFFF,0034,7B。首字符不能是字母o八進制數(shù)中不能有數(shù)字8
十進制數(shù)中不能有字母B
數(shù)值的表示方法——原碼、反碼和補碼原碼:最高位為符號位(0:正數(shù),1:負數(shù)),其余各位為數(shù)值本身的絕對值2原=00000010(-2)原=10000010反碼:正數(shù):反碼與原碼相同負數(shù):負數(shù)的反碼是其原碼的符號位不動,其它位取反(-2)反=11111101補碼:正數(shù):原碼、反碼、補碼相同負數(shù):負數(shù)的補碼是其反碼+1(-2)補=11111110<>例:用原碼、補碼分別計算7-6=?(用一字節(jié)表示數(shù))原碼結(jié)論:計算機中采用補碼形式存儲數(shù)據(jù)000001117-6結(jié)果=-1310000110100011
01000001117補碼-6補碼結(jié)果=111111010000000
01補碼7+(-6)=?3.3整型數(shù)據(jù)3.整型數(shù)據(jù)的溢出#include<stdio.h>main(){inta,b;a=32767;b=a+1;printf(“%d”,”%d”,a,b);}結(jié)果32767-327680111111111111111327671000000000000000-32768數(shù)據(jù)溢出運行不報錯3.3整型數(shù)據(jù)3.整型數(shù)據(jù)的溢出#include<stdio.h>main(){unsigneda,b;a=65535;b=a+1;printf(“%u”,”%d”,a,b);}結(jié)果655350655350最高位為數(shù)值111111111111111100000000000000004.整數(shù)常量的分類
根據(jù)其值所在范圍確定其數(shù)據(jù)類型。在TC2.0或BC3.1下,如果整型常量的值位于-32768~32767之間,C語言認為它是int型常量;如果整型常量的值位于-2147483648~2147483647之間,C語言認為它是long型常量。
整型常量后加字母l或L,認為它是longint型常量。比如123L、45l、0XAFL。
無符號數(shù)也可用后綴表示,整型常數(shù)的無符號數(shù)的后綴為U或u。例如:358u,0x38Au,235Lu均為無符號數(shù)。3.2.4字符型數(shù)據(jù)字符是按其代碼(整數(shù))形式存儲的C99把字符型數(shù)據(jù)作為整數(shù)類型的一種字符型數(shù)據(jù)在使用上有自己的特點數(shù)字化信息編碼
字符編碼:規(guī)定在計算機內(nèi)部,字符用怎樣的二進制碼來表示。標準ASCII碼:用7位二進制碼來表示字母、數(shù)字和專用符號。如:字母”A”在計算機內(nèi)部表示成01000001(字節(jié)的最高位為0)擴充ASCII碼:用8位二進制碼(稱為一個字節(jié))來表示符號,且最高位為1。常用字符的ASCII碼大寫字母A:65B:66C:67...Z:90小寫字母a:97b:98c:99...z:122數(shù)字0:481:492:50...9:57其它<空格>:32
注:存儲一個西文字符(字母、數(shù)字、標點及常用符號)
占用一個字節(jié)。存儲一個漢字占2個字節(jié)
3.2.4字符型數(shù)據(jù)1.字符與字符代碼大多數(shù)系統(tǒng)采用ASCII字符集字母:A~Z,a~z數(shù)字:0~9專門符號:29個:!”#&‘()*等空格符:空格、水平制表符、換行等不能顯示的字符:空(null)字符(以‘\0’表示)、警告(以‘\a’表示)、退格(以‘\b’表示)、回車(以‘\r’表示)等3.2.4字符型數(shù)據(jù)字符’1’和整數(shù)1是不同的概念:字符’1’只是代表一個形狀為’1’的符號,在需要時按原樣輸出,在內(nèi)存中以ASCII碼形式存儲,占1個字節(jié)整數(shù)1是以整數(shù)存儲方式(二進制補碼方式)存儲的,占2個或4個字節(jié)0011000100000000000000013.2.4字符型數(shù)據(jù)2.字符變量用類型符char定義字符變量charc=’?’;
系統(tǒng)把“?”的ASCII代碼63賦給變量cprintf(”%d%c\n”,c,c);輸出結(jié)果是:63?30字符常量定義:用單引號括起來的單個普通字符或轉(zhuǎn)義字符.
字符常量的值:該字符的ASCII碼值轉(zhuǎn)義字符:反斜線后面跟一個字符或一個代碼值表示如‘a(chǎn)’‘A’‘?’‘\n’‘\101’如‘A’——65,‘a(chǎn)’——97,
‘0’——48,‘\n’——10<轉(zhuǎn)義字符及其含義:轉(zhuǎn)義字符含義\n\v\r\a\‘\ddd\t\b\f\\\“\xhh轉(zhuǎn)義字符含義換行垂直制表回車響鈴單引號3位8進制數(shù)代表的字符水平制表退格換頁反斜線雙引號2位16進制數(shù)代表的字符例:‘A’-------’\101’-------’\x41’--------65【例3-4】轉(zhuǎn)義字符舉例
#include<stdio.h>voidmain(){printf("\101\x42C\n");printf("\\CProgram\\\n");printf("Visual\'C\'");}運行結(jié)果:(屏幕顯示)ABC\CProgram\Visual‘C’如‘\101’-----------‘A’‘\012’-----------’\n’‘\376’-----------’’‘\x61’-----------’a’‘\60’-----------’0’‘\483’----------()3.5字符型數(shù)據(jù)字符變量每個字符變量被分配一個字節(jié)的內(nèi)存空間,因此只能存放一個字符。字符值是以ASCII碼的形式存放在變量的內(nèi)存單元之中的。例:x的十進制ASCII碼是120,y的十進制ASCII碼是121。對字符變量a,b賦予'x'和'y'值:a='x';b='y';實際上是在a,b兩個單元內(nèi)存放120和121的二進制代碼:0111100001111000a:b:所以字符看成是整型量。整型變量也可以賦以字符值。字符串常量
定義:用雙引號(“”)括起來的字符序列
存儲:每個字符串尾自動加一個‘\0’作為字符串結(jié)束標志例1:字符串“HELLO”在內(nèi)存中0x480x450x4C0x4C0x4F0低地址高地址‘H’‘E’‘L’‘L’‘O’‘\0’字符串結(jié)束標志例2:空串“”\0
字符常量與字符串常量不同0x41
0x41\0例‘A’“A”例:charch;ch=“A”;例:charch;ch=‘A’;沒有字符串變量,用字符數(shù)組存放字符常量與字符串常量區(qū)別所占字節(jié)數(shù)不同存放內(nèi)容個數(shù)不同,字符常量只能放單個字符定義方式不同0x41
0x41\0例‘A’“A”‘a(chǎn)bc’“abc”例:charch;ch=“A”;例:charch;ch=‘A’;沒有字符串變量,用字符數(shù)組存放3.2.5浮點型數(shù)據(jù)浮點型數(shù)據(jù)是用來表示具有小數(shù)點的實數(shù)float型(單精度浮點型)編譯系統(tǒng)為float型變量分配4個字節(jié)數(shù)值以規(guī)范化的二進制數(shù)指數(shù)形式存放參見主教材圖3.11(1)浮點型常量也叫實數(shù)3.浮點型常量(2)它只有十進制形式,全部是有符號數(shù)(3)兩種表示形式①一般形式②指數(shù)形式
(規(guī)范化的指數(shù)形式)由整數(shù)部分、小數(shù)點和小數(shù)部分組成-123.45+1.33-0.150.234由尾數(shù)、字母e或E和指數(shù)部分(只能為整數(shù),可以帶符號)組成.其一般形式為:aEn其中:a為十進制數(shù),n為十進制整數(shù),都不可缺少。其可表示為a×10n0.25e+53.84E-23.浮點型常量(4)注意事項①采用一般格式時,若整數(shù)部分或小數(shù)部分為0,可以不寫②采用指數(shù)形式時,尾數(shù)必須有,指數(shù)必須是整數(shù)③實型常量的默認類型為double,可以在常量后面加f或F,指定為float型e4/*不合法,沒有尾數(shù)*/.e3/*不合法,沒有尾數(shù)*/8.7e3.9/*不合法,指數(shù)不是整數(shù)*/-.15/*合法的浮點型常量,整數(shù)部分為0*/172./*合法的浮點型常量,小數(shù)部分為0*/0./*double型常量0.0*/3.146f/*float型常量3.146*/3.實數(shù)類型的舍入誤差實型變量是用有限的存儲單元存儲的,因此能提供的有效數(shù)字是有限的,有效位外的數(shù)據(jù)將被舍去,由此產(chǎn)生舍入誤差。例1:main(){floata;doubleb;a=33333.33333;b=33333.33333333333333;printf("%f\n%f\n",a,b);例2:書例3.4輸出:33333.3333333.333333從本例可以看出,由于a是單精度浮點型,有效位數(shù)只有七位。而整數(shù)已占五位,故小數(shù)二位后之后均為無效數(shù)字。b是雙精度型,有效位為十六位。但TurboC規(guī)定小數(shù)后最多保留六位,其余部分四舍五入。3.2.6怎樣確定常量的類型字符常量:由單撇號括起來的單個普通字符或轉(zhuǎn)義字符整型常量:不帶小數(shù)點的數(shù)值系統(tǒng)根據(jù)數(shù)值的大小確定int型還是long型等浮點型常量:凡以小數(shù)形式或指數(shù)形式出現(xiàn)的實數(shù)C編譯系統(tǒng)把浮點型常量都按雙精度處理分配8個字節(jié)3.2.7C語言的運算符與表達式
變量用來存放數(shù)據(jù),運算符則用來處理數(shù)據(jù)。用運算符將變量和常量連接起來的符合C語法規(guī)則的式子被稱為表達式。運算符的分類:單目運算符:只帶一個操作數(shù)的運算符。如:++、--運算符。雙目運算符:帶兩個操作數(shù)的運算符。如:+、-運算符。三目運算符:帶三個操作數(shù)的運算符。如:?運算符。
學(xué)習運算符時應(yīng)注意:
運算符的功能:該運算符主要用于做什么運算。與運算量關(guān)系:要求運算量的個數(shù)及運算量的類型。運算符的優(yōu)先級:表達式中包含多個不同運算符時運算符運算的先后次序。運算符的結(jié)合性:同級別運算符的運算順序(指左結(jié)合性還是右結(jié)合性)。運算結(jié)果的類型:表達式運算后最終所得到的值的類型。C運算符算術(shù)運算符:(+-*/%++--)關(guān)系運算符:(<<===>>=!=)邏輯運算符:((!&&||)位運算符:(<<>>~|^&)賦值運算符:(=及其擴展)條件運算符:(?:)逗號運算符:(,)指針運算符:(*&)求字節(jié)數(shù):(sizeof)強制類型轉(zhuǎn)換:(類型)分量運算符:(.->)下標運算符:([])其它:(()-)運算符的優(yōu)先級與結(jié)合性(1)C語言規(guī)定了運算符的優(yōu)先級C語言中,運算符的運算優(yōu)先級共分為15級。1級最高,15級最低。在表達式中,優(yōu)先級較高的先于優(yōu)先級較低的進行運算。而在一個運算量兩側(cè)的運算符優(yōu)先級相同時,則按運算符的結(jié)合性所規(guī)定的結(jié)合方向處理。
(2)結(jié)合性它是指,當一個操作數(shù)兩側(cè)的運算符具有相同的優(yōu)先級時,該操作數(shù)是先與左邊的運算符結(jié)合,還是先與右邊的運算符結(jié)合。自左至右的結(jié)合方向,稱為左結(jié)合性。反之,稱為右結(jié)合性。結(jié)合性是C語言的獨有概念。除單目運算符、賦值運算符和條件
運算符是右結(jié)合性外,其它運算符都是左結(jié)合性?;舅阈g(shù)運算符:
+-*/%
結(jié)合方向:從左向右優(yōu)先級:----->*/%----->+-
(2)(3)(4)
說明:
“-”可為單目運算符時,右結(jié)合性兩整數(shù)相除,結(jié)果為整數(shù)
%要求兩側(cè)均為整型數(shù)據(jù)例:
5/2=-5/2.0=例:
5%2=-5%2=1%10=
5%1=5.5%23.4.3算術(shù)運算符、算術(shù)表達式
2-2.51-110()除法運算求余數(shù)運算3.2.7運算符和表達式說明兩個整數(shù)相除的結(jié)果為整數(shù)如5/3的結(jié)果值為1,舍去小數(shù)部分如果除數(shù)或被除數(shù)中有一個為負值,舍入方向不固定。例如,-5/3,有的系統(tǒng)中得到的結(jié)果為-1,在有的系統(tǒng)中則得到結(jié)果為-2VC++采取“向零取整”的方法
如5/3=1,-5/3=-1,取整后向零靠攏自增、自減運算符++--作用:使變量值加1或減1種類:前置++i,--i(先執(zhí)行i+1或i-1,再使用i值)后置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自增、自減運算符++--作用:使變量值加1或減1種類:前置++i,--i(先執(zhí)行i+1或i-1,再使用i值)后置i++,i--(先使用i值,再執(zhí)行i+1或i-1)說明:++--不能用于常量和表達式,如5++,(a+b)++++--結(jié)合方向:自右向左優(yōu)先級:-++-------->*/%----->+-(2)(3)(4)例j+++k;(j++)+k;j+(++k)賦值運算符和表達式簡單賦值運算符符號:=格式:變量標識符=表達式作用:將一個數(shù)據(jù)(常量或表達式)賦給一個變量復(fù)合賦值運算符種類:+=-=*=/=%=《=》=&=^=|=含義:exp1op=exp2
exp1=exp1opexp2a+=3a=a+3x*=y+8x=x*(y+8)<>例a=3;d=func();c=d+2;3.3.2
賦值運算符、賦值表達式
x=x*y+8×說明:結(jié)合方向:自右向左優(yōu)先級:14賦值轉(zhuǎn)換規(guī)則:使賦值號右邊表達式值自動轉(zhuǎn)換成其左邊變量的類型例floatf;inti;i=10;f=i;則f=10.0;例inti;i=2.56;//結(jié)果i=2;例:inta=2;a%=4-1;4-1=3a%=a%3=2%3=2即a=23.3.2
賦值運算符、賦值表達式
賦值語句“=”左邊必須是變量名,不能是常量或其它表達式。例如:30=a;b+2=5;都是錯誤的?!?”表示賦值
“==”表示相等,二者切勿混淆!例如:a=b;a==b;a=b=c=10;對inta=b=c=10;錯注意例2:a=12;a+=a-=a*a;//a=-264等價于a=a+(a=a-(a*a))a*a144從左到右2.a-=a*a從右到左
a=a-a*a
=12-144=-1323.a+=a-=a*a
a=a+(-132)
=-132-132=-264注意:a=-1323.3.2
賦值運算符、賦值表達式
逗號運算符和表達式形式:表達式1,表達式2,……表達式n結(jié)合性:從左向右優(yōu)先級:15逗號表達式的值:等于表達式n的值用途:常用于循環(huán)for語句中例a=3*5,a*4a=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ù)類型轉(zhuǎn)換強制轉(zhuǎn)換自動轉(zhuǎn)換輸出轉(zhuǎn)換------輸出時轉(zhuǎn)換成指定的輸出格式運算轉(zhuǎn)換------不同類型數(shù)據(jù)混合運算時不同類型數(shù)據(jù)運算時先自動轉(zhuǎn)換成同一類型賦值轉(zhuǎn)換------把一個值賦給與其類型不同的變量時發(fā)生函數(shù)調(diào)用轉(zhuǎn)換------實參與形參類型不一致時轉(zhuǎn)換3.4.2
強制類型轉(zhuǎn)換符
自動轉(zhuǎn)換
(1)短長度的數(shù)據(jù)類型→長長度的數(shù)據(jù)類型
方法:直接將無符號短長度的數(shù)據(jù)類型的數(shù)據(jù)作為長長度的數(shù)據(jù)類型數(shù)據(jù)的低位部分,長長度的數(shù)據(jù)類型數(shù)據(jù)的高位部分補零。
無符號短長度的數(shù)據(jù)類型→無符號或有符號長長度的數(shù)據(jù)類型xx………x無符號短長度的數(shù)據(jù)類型長長度的數(shù)據(jù)類型xx………x00.....0.....高位部分補03.4.2
強制類型轉(zhuǎn)換符
自動轉(zhuǎn)換
(1)短長度的數(shù)據(jù)類型→長長度的數(shù)據(jù)類型
方法:直接將有符號短長度的數(shù)據(jù)類型的數(shù)據(jù)作為長長度的數(shù)據(jù)類型數(shù)據(jù)的低位部分,然后將低位部分的最高位(即有符號短長度數(shù)據(jù)的符號位)向長長度的數(shù)據(jù)類型數(shù)據(jù)的高位部分擴展。
有符號短長度的數(shù)據(jù)類型→無符號或有符號長長度的數(shù)據(jù)類型zx………x有符號短長度的數(shù)據(jù)類型長長度的數(shù)據(jù)類型zx………xz符號位向高位部分擴展………zz符號位例如:
charch=2;inta=-2;intb;unsignedlongu;b=ch;
//b的值將是2
u=a;
//u的值將是0xfffffffe3.4.2強制類型轉(zhuǎn)換符
自動轉(zhuǎn)換
(2)長長度的數(shù)據(jù)類型→短長度的數(shù)據(jù)類型
方法:直接截取長長度的數(shù)據(jù)類型數(shù)據(jù)的低位部分(長度為短長度的數(shù)據(jù)類型的長度)作為短長度數(shù)據(jù)類型的數(shù)據(jù)。
xx………x短長度的數(shù)據(jù)類型長長度的數(shù)據(jù)類型yy………yxx………x例如:
inta=-32768;//假設(shè)int數(shù)據(jù)為16位
unsignedlongb=0xffffaa00;charch;intc;ch=a;
//ch的值將是0c=b;
//c的值將是0xaa00隱式轉(zhuǎn)換什么情況下發(fā)生運算轉(zhuǎn)換------不同類型數(shù)據(jù)混合運算時賦值轉(zhuǎn)換------把一個值賦給與其類型不同的變量時輸出轉(zhuǎn)換------輸出時轉(zhuǎn)換成指定的輸出格式函數(shù)調(diào)用轉(zhuǎn)換------實參與形參類型不一致時轉(zhuǎn)換運算轉(zhuǎn)換規(guī)則:不同類型數(shù)據(jù)運算時先自動轉(zhuǎn)換成同一類型<>顯式轉(zhuǎn)換(強制轉(zhuǎn)換)一般形式:(類型名)(表達式)例(int)(x+y)(int)x+y(double)(3/2)(int)3.6說明:強制轉(zhuǎn)換得到所需類型的中間變量,原變量類型不變例main(){floatx;inti;x=3.6;i=(int)x;printf(“x=%f,i=%d”,x,i);}結(jié)果:x=3.600000,i=3精度損失問題較高類型向較低類型轉(zhuǎn)換時可能發(fā)生<>x=2.8,y=3.1(int)(x+y)結(jié)果=5(int)x+y結(jié)果=5.13.4.5算術(shù)運算符中數(shù)據(jù)類型轉(zhuǎn)換規(guī)則
低高doublefloatlongunsignedintchar,shortlongdouble說明:必定的轉(zhuǎn)換運算對象類型不同時轉(zhuǎn)換例:
charch;inti;floatf;doubled;ch/i+f*d-(f+i)intintdoubledoubledoubledoubledoubledouble10+‘a(chǎn)’+i*f-d/l例:
inti;floatf;doubled;longl;intintdoubledoubledoubledoubledoubledouble【例3-8】不同類型數(shù)據(jù)間的算術(shù)運算#include<stdio.h>voidmain(){floata,b,c;a=7/2;//計算7/2得int型值3,因此a的值為3.0b=7/2*1.0;//計算7/2得int型值3,再與1.0相乘,因此b的值為3.0c=1.0*7/2;//先計算1.0*7得double型的結(jié)果7.0,然后再計算
7.0/2,因此c的值是3.5printf("a=%f,b=%f,c=%f",a,b,c);}a=3.000000,b=3.000000,c=3.5000003.2.7運算符和表達式4.不同類型數(shù)據(jù)間的混合運算:+、-、*、/運算的兩個數(shù)中有一個數(shù)為float或double型,結(jié)果是double型。系統(tǒng)將float型數(shù)據(jù)都先轉(zhuǎn)換為double型,然后進行運算(2)如果int型與float或double型數(shù)據(jù)進行運算,先把int型和float型數(shù)據(jù)轉(zhuǎn)換為double型,然后進行運算,結(jié)果是double型(3)字符型數(shù)據(jù)與整型數(shù)據(jù)進行運算,就是把字符的ASCII代碼與整型數(shù)據(jù)進行運算3.2.7運算符和表達式
例3.3給定一個大寫字母,要求用小寫字母輸出。解題思路:關(guān)鍵是找到大、小寫字母間的內(nèi)在聯(lián)系同一個字母,用小寫表示的字符的ASCII代碼比用大寫表示的字符的ASCII代碼大323.2.7運算符和表達式#include<stdio.h>intmain(){charc1,c2;c1=’A’;c2=c1+32;printf("%c\n",c2);printf(”%d\n”,c2);return0;}將字符‘A’的ASCII代碼65放到c1中將65+32的結(jié)果放到c2中用字符形式輸出用十進制形式輸出練習若有定義:int
x=3,y=2;float
a=2.5,b=3.5;則表達式
(x+y)%2+(int)a/(int)b的值為()
13.3C語句3.3.1C語句的作用和分類3.3.2最基本的語句----賦值語句C程序的執(zhí)行部分是由語句組成的。程序的功能也是由執(zhí)行語句實現(xiàn)的。C語句可分為以下五類:表達式語句函數(shù)調(diào)用語句控制語句復(fù)合語句空語句3.3.1 C語句的作用和分類1. 表達式語句:
表達式語句由表達式加上分號“;”組成。其一般形式為:表達式;執(zhí)行表達式語句就是計算表達式的值。
例如:
x=y+z;賦值語句;
y+z;加法運算語句,但計算結(jié)果不能保留,無實際意義;
i++;自增1語句,i值增1。函數(shù)調(diào)用語句:由函數(shù)名、實際參數(shù)加上分號“;”組成。其一般形式為:
函數(shù)名(實際參數(shù)表);執(zhí)行函數(shù)語句就是調(diào)用函數(shù)體并把實際參數(shù)賦予函數(shù)定義中的形式參數(shù),然后執(zhí)行被調(diào)函數(shù)體中的語句,求取函數(shù)值例如:printf(“CProgram”);調(diào)用庫函數(shù),輸出字符串。sum=add(x,y);調(diào)用add函數(shù)求兩數(shù)和。add為自定義函數(shù)。
/*example1.1calculatethesumofaandb*/#include<stdio.h>/*Thisisthemainprogram*/main(){inta,b,sum;a=10;b=24;sum=add(a,b);printf(”sum=%d\n",sum);}/*Thisfunctioncalculatesthesumofxandy*/intadd(intx,inty){intz;z=x+y;return(z);}控制語句:控制語句用于控制程序的流程,以實現(xiàn)程序的各種結(jié)構(gòu)方式。它們由特定的語句定義符組成。C語言有九種控制語句??煞殖梢韵氯悾?)條件判斷語句:if語句、switch語句;2)循環(huán)執(zhí)行語句:dowhile語句、while語句、for語句;3)轉(zhuǎn)向語句:break語句、goto語句、continue語句、
return語句。4.1C語句概述
復(fù)合語句:把多個語句用括號{}括起來組成的一個語句稱復(fù)合語句。例如:
{x=y+z;a=b+c;printf(“%d%d”,x,a);
}是一條復(fù)合語句。注意:在程序中應(yīng)把復(fù)合語句看成是單條語句,而不是多條語句。復(fù)合語句內(nèi)的各條語句都必須以分號“;”結(jié)尾,在括號“}”外不能加分號。4.1C語句概述
5.空語句:只有分號“;”組成的語句稱為空語句。空語句是什么也不執(zhí)行的語句。在程序中空語句可用來作空循環(huán)體。例如
while(getchar()!='\n')
;本語句的功能是:只要從鍵盤輸入的字符不是回車則重新輸入。這里的循環(huán)體為空語句。3.3.2最基本的語句----賦值語句
例3.4給出三角形的三邊長,求三角形面積。3.3.2最基本的語句----賦值語句解題思路:假設(shè)給定的三個邊符合構(gòu)成三角形的條件關(guān)鍵是找到求三角形面積的公式公式為:其中s=(a+b+c)/2#include<stdio.h>#include<math.h>intmain(){doublea,b,c,s,area;a=3.67;b=5.43;c=6.21;s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c));printf("a=%f\tb=%f\t%f\n",a,b,c);printf("area=%f\n",area);return0;}對邊長a、b、c賦值計算s計算area#include<stdio.h>#include<math.h>intmain(){doublea,b,c,s,area;a=3.67;b=5.43;c=6.21;s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c));printf("a=%f\tb=%f\t%f\n",a,b,c);printf("area=%f\n",area);return0;}數(shù)學(xué)函數(shù),計算平方根調(diào)用數(shù)學(xué)函數(shù)加此行#include<stdio.h>#include<math.h>intmain(){doublea,b,c,s,area;a=3.67;b=5.43;c=6.21;s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c));printf("a=%f\tb=%f\t%f\n",a,b,c);printf("area=%f\n",area);return0;}轉(zhuǎn)義字符,使輸出位置跳到下一個tab位置調(diào)用數(shù)學(xué)函數(shù)加此行3.4數(shù)據(jù)的輸入輸出3.4.1輸入輸出舉例3.4.2有關(guān)數(shù)據(jù)輸入輸出的概念3.4.3用printf函數(shù)輸出數(shù)據(jù)3.4.4用scanf函數(shù)輸入數(shù)據(jù)3.4.5字符數(shù)據(jù)的輸入輸出3.4.1輸入輸出舉例例3.5求
方程的根。a、b、c由鍵盤輸入
設(shè)
>03.4.1輸入輸出舉例解題思路:首先要知道求方程式的根的方法。由數(shù)學(xué)知識已知:如果
≥0,則一元二次方程有兩個實根:若記#include<stdio.h>#include<math.h>intmain(){doublea,b,c,disc,x1,x2,p,q;
scanf("%lf%lf%lf",&a,&b,&c);disc=b*b-4*a*c;p=-b/(2.0*a);q=sqrt(disc)/(2.0*a);x1=p+q;x2=p-q;
printf("x1=%7.2f\nx2=%7.2f\n",x1,x2);return0;}程序中調(diào)用數(shù)學(xué)函數(shù)sqrt輸入a,b,c的值#include<stdio.h>#include<math.h>intmain(){doublea,b,c,disc,x1,x2,p,q;
scanf("%lf%lf%lf",&a,&b,&c);disc=b*b-4*a*c;p=-b/(2.0*a);q=sqrt(disc)/(2.0*a);x1=p+q;x2=p-q;
printf("x1=%7.2f\nx2=%7.2f\n",x1,x2);return0;}輸入的是雙精度型實數(shù)#include<stdio.h>#include<math.h>intmain(){doublea,b,c,disc,x1,x2,p,q;
scanf("%lf%lf%lf",&a,&b,&c);disc=b*b-4*a*c;p=-b/(2.0*a);q=sqrt(disc)/(2.0*a);x1=p+q;x2=p-q;
printf("x1=%7.2f\nx2=%7.2f\n",x1,x2);return0;}要求輸入3個實數(shù)自動轉(zhuǎn)成實數(shù)后賦給a,b,c#include<stdio.h>#include<math.h>intmain(){doublea,b,c,disc,x1,x2,p,q;
scanf("%lf%lf%lf",&a,&b,&c);disc=b*b-4*a*c;p=-b/(2.0*a);q=sqrt(disc)/(2.0*a);x1=p+q;x2=p-q;
printf("x1=%7.2f\nx2=%7.2f\n",x1,x2);return0;}輸出數(shù)據(jù)占7列,其中小數(shù)占2列3.4.2有關(guān)數(shù)據(jù)輸入輸出的概念幾乎每一個C程序都包含輸入輸出輸入輸出是程序中最基本的操作之一3.4.2有關(guān)數(shù)據(jù)輸入輸出的概念(1)所謂輸入輸出是以計算機主機為主體而言的從計算機向輸出設(shè)備(如顯示器、打印機等)輸出數(shù)據(jù)稱為輸出從輸入設(shè)備(如鍵盤、磁盤、光盤、掃描儀等)向計算機輸入數(shù)據(jù)稱為輸入3.4.2有關(guān)數(shù)據(jù)輸入輸出的概念(2)C語言本身不提供輸入輸出語句輸入和輸出操作是由C標準函數(shù)庫中的函數(shù)來實現(xiàn)的printf和scanf不是C語言的關(guān)鍵字,而只是庫函數(shù)的名字putchar、getchar、puts、gets3.4.2有關(guān)數(shù)據(jù)輸入輸出的概念(3)在使用輸入輸出函數(shù)時,要在程序文件的開頭用預(yù)編譯指令#include<stdio.h>或#include″stdio.h″3.4.3用printf函數(shù)輸出數(shù)據(jù)在C程序中用來實現(xiàn)輸出和輸入的,主要是printf函數(shù)和scanf函數(shù)這兩個函數(shù)是格式輸入輸出函數(shù)用這兩個函數(shù)時,必須指定格式3.4.3用printf函數(shù)輸出數(shù)據(jù)1.printf函數(shù)的一般格式printf(格式控制,輸出表列)例如:printf(”i=%d,c=%c\n”,i,c);格式聲明3.4.3用printf函數(shù)輸出數(shù)據(jù)1.printf函數(shù)的一般格式printf(格式控制,輸出表列)例如:printf(”i=%d,c=%c\n”,i,c);普通字符3.4.3用printf函數(shù)輸出數(shù)據(jù)1.printf函數(shù)的一般格式printf(格式控制,輸出表列)例如:printf(”i=%d,c=%c\n”,i,c);可以是常量、變量或表達式一般格式printf("格式控制字符串",表達式1,表達式2,…,表達式n);功能按照“格式控制字符串”的要求,將表達式1,表達式2,…,表達式n的值顯示在計算機屏幕上。
說明格式控制字符串用于指定輸出格式。它包含兩類字符:
常規(guī)字符:包括可顯示字符和用轉(zhuǎn)義字符表示的字符。
格式控制符:以%開頭的一個或多個字符,以說明輸出數(shù)據(jù)的類型、形式、長度、小數(shù)位數(shù)等。其格式為:%[修飾符]格式轉(zhuǎn)換字符例:
longintx=0x8AB6;printf(“TheValueofxis%ld\n”,x);常規(guī)字符常規(guī)字符(轉(zhuǎn)義符)格式控制符(修飾符)格式控制符(格式轉(zhuǎn)換符)main(){inta=88,b=89;printf("%d%d\n",a,b);printf("%d□%d\n",a,b);printf("%d,%d\n",a,b);printf("%c,%c\n",a,b);printf("a=%d,b=%d",a,b);}88□89888988,89X,Ya=88,b=89
printf函數(shù)中的格式轉(zhuǎn)換字符及其含義
格式轉(zhuǎn)換符含義對應(yīng)的表達式數(shù)據(jù)類型%d或%i以十進制形式輸出一個整型數(shù)據(jù)。例如:inta=20;printf("%d",a);//輸出20有符號整型%x,%X以十六進制形式輸出一個無符號整型數(shù)據(jù)。例如:inta=164;printf("%x",a);//輸出a4printf("%X",a);//輸出A4無符號整型%o(字母o)以八進制形式輸出一個無符號整型數(shù)據(jù)。例如:inta=164;printf("%o",a);//輸出244無符號整型%u以十進制形式輸出一個無符號整型數(shù)據(jù)。例如:inta=-1;printf("%u",a);//BC下輸出65535,VC下4294967295無符號整型%c輸出一個字符型數(shù)據(jù)。例如:charch='A';printf("%c",ch);//輸出A字符型例2:inta=-1printf(“%d,%o”,a,a);1111111111111111177777輸出:-1,177777例3:unsignedintb=-1;printf(“b=%d,%o,%x,%u”,b,b,b,b);輸出:-1,177777,ffff,65535例4:unsignedintb=65535;
inta;
a=b:
printf(“%d”,a)輸出:-13.4.3用printf函數(shù)輸出數(shù)據(jù)2.常用格式字符c格式符。用來輸出一個字符charch=’a’;printf(”%c”,ch);或printf(”%5c”,ch);輸出字符:a3.4.3用printf函數(shù)輸出數(shù)據(jù)2.常用格式字符s格式符。用來輸出一個字符串printf(”%s”,”CHINA”);輸出字符串:CHINA3.4.3用printf函數(shù)輸出數(shù)據(jù)2.常用格式字符f格式符。用來輸出實數(shù),以小數(shù)形式輸出①不指定數(shù)據(jù)寬度和小數(shù)位數(shù),用%f
例3.6用%f輸出實數(shù),只能得到6位小數(shù)。doublea=1.0;printf(”%f\n”,a/3);dx,Xoucse,Efg%%1.格式字符:十六進制無符號整數(shù)不帶符號十進制整數(shù)十進制整數(shù)指數(shù)形式浮點小數(shù)單一字符字符串八進制無符號整數(shù)小數(shù)形式浮點小數(shù)e和f中較短一種百分號本身inta=567;printf(“%d”,a);inta=255;printf(“%x”,a);inta=65;printf(“%o”,a);inta=567;printf(“%u”,a);chara=65;printf(“%c”,a);printf(“%s”,“ABC”);floata=567.789;printf(“%e”,a);floata=567.789;printf(“%f”,a);floata=567.789;printf(“%g”,a);printf(“%%”);567ff101567AABC5.677890e+02567.789000567.789%此外,在使用printf函數(shù)時還要注意以下幾點:格式控制字符串后面表達式的個數(shù)一般要與格式控制字符串中的格式控制符的個數(shù)相等。格式轉(zhuǎn)換符中,除了X、E、G以外,其它均為小寫。表達式的實際數(shù)據(jù)類型要與格式轉(zhuǎn)換符所表示的類型相符,printf函數(shù)不會進行不同數(shù)據(jù)類型之間的自動轉(zhuǎn)換。象整型數(shù)據(jù)不可能自動轉(zhuǎn)換成浮點型數(shù)據(jù),浮點型數(shù)據(jù)也不可能自動轉(zhuǎn)換成型數(shù)數(shù)據(jù)
2.附加格式說明符(修飾符).n對實數(shù),指定小數(shù)點后位數(shù)(四舍五入)對字符串,指定實際輸出位數(shù)修飾符功能m輸出數(shù)據(jù)域?qū)?數(shù)據(jù)長度<m,左補空格;否則按實際輸出輸出數(shù)據(jù)在域內(nèi)左對齊(缺省右對齊)-指定在有符號數(shù)的正數(shù)前顯示正號(+)+輸出數(shù)值時指定左面不使用的空位置自動填00在八進制和十六進制數(shù)前顯示前導(dǎo)0,0x#在d,o,x,u前,指定輸出精度為long型l
類型轉(zhuǎn)換字符d──以帶符號的十進制整數(shù)形式輸出。
[例1]類型轉(zhuǎn)換字符d的使用。
main(){intnum1=123;longnum2=123456;/*用3種不同格式,輸出int型數(shù)據(jù)num1的值*/printf("num1=%d,num1=%5d,num1=%-5d,num1=%2d\n",num1,num1,num1,num1);/*用3種不同格式,輸出long型數(shù)據(jù)num2的值*/printf("num2=%ld,num2=%8ld,num2=%5ld\n",num2,num2,num2);
} num1=123,num1=□□123,num1=123□□,num1=123num2=123456,num2=□□123456,num2=1234563.4.3用printf函數(shù)輸出數(shù)據(jù)2.常用格式字符f格式符。用來輸出實數(shù),以小數(shù)形式輸出②指定數(shù)據(jù)寬度和小數(shù)位數(shù)。用%m.nf
printf("%20.15f\n",1/3);
printf("%.0f\n”,10000/3.0);3.4.3用printf函數(shù)輸出數(shù)據(jù)2.常用格式字符f格式符。用來輸出實數(shù),以小數(shù)形式輸出②指定數(shù)據(jù)寬度和小數(shù)位數(shù)。用%m.nffloata;a=10000/3.0;printf("%f\n",a);3.4.3用printf函數(shù)輸出數(shù)據(jù)2.常用格式字符f格式符。用來輸出實數(shù),以小數(shù)形式輸出③輸出的數(shù)據(jù)向左對齊,用%-m.nf3.4.3用printf函數(shù)輸出數(shù)據(jù)2.常用格式字符f格式符。用來輸出實數(shù),以小數(shù)形式輸出float型數(shù)據(jù)只能保證6位有效數(shù)字double型數(shù)據(jù)能保證15位有效數(shù)字計算機輸出的數(shù)字不都是絕對精確有效的
2)類型轉(zhuǎn)換字符f──以小數(shù)形式、按系統(tǒng)默認的寬度,輸出單精度和雙精度實數(shù)。main(){floatf=123.456;doubled1,d2;d1=1111111111111.111111111;d2=2222222222222.222222222;printf("%f,%12f,%12.2f,%-12.2f,%.2f\n",f,f,f,f,f);printf("d1+d2=%f\n",d1+d2);}
程序運行結(jié)果如下:
123.456001,□□123.456001,□□□□□□123.46,123.46□□□□□□,123.46d1+d2=3333333333333.333010 注意:%f不指定字段寬度,由系統(tǒng)使整數(shù)部分全部輸出,并輸出6位小數(shù)例5:charc=‘a(chǎn)’;
inti=97;
printf(“%c,%d,%3c”,c,c,c);
printf(“%c,%d”,i,i);
printf(“%s,%3s,%7.2s,%.4s,%-5.3s”,“china”,“china”,“china”,“china”,“china”,);a,97,□□aa,97china,china,□□□□□ch,chin,chi□□輸出占m列,但只取字符串左邊n個字符,這n個字符輸出在m列的右側(cè),左補空格(若前面有負號,n個字符數(shù)處在m列的左側(cè),右補空格)3.4.3用printf函數(shù)輸出數(shù)據(jù)2.常用格式字符e格式符。指定以指數(shù)形式輸出實數(shù)%e,VC++給出小數(shù)位數(shù)為6位
指數(shù)部分占5列
小數(shù)點前必須有而且只有1位非零數(shù)字printf(”%e”,123.456);
輸出:1.234560
e+0023.4.3用printf函數(shù)輸出數(shù)據(jù)2.常用格式字符e格式符。指定以指數(shù)形式輸出實數(shù)%m.neprintf(”%13.2e”,123.456);
輸出:1.23e+002(前面有4個空格)3.4.4用scanf函數(shù)輸入數(shù)據(jù)1.scanf函數(shù)的一般形式scanf(格式控制,地址表列)含義同printf函數(shù)3.4.4用scanf函數(shù)輸入數(shù)據(jù)1.scanf函數(shù)的一般形式scanf(格式控制,地址表列)可以是變量的地址,或字符串的首地址格式輸入函數(shù)格式:scanf(“格式控制串”,地址表)功能:按指定格式從鍵盤讀入數(shù)據(jù),存入地址表指定的存儲單元中,并按回車鍵結(jié)束返值:正常,返回輸入數(shù)據(jù)個數(shù)地址表:變量的地址,常用取地址運算符&格式字符:d,i,o,x,u,c,s,f,e例scanf(“%x”,&a);
輸入:11
則a=173.4.4用scanf函數(shù)輸入數(shù)據(jù)2.scanf函數(shù)中的格式聲明與printf函數(shù)中的格式聲明相似以%開始,以一個格式字符結(jié)束,中間可以插入附加的字符scanf("a=%f,b=%f,c=%f",&a,&b,&c);3.4.4用scanf函數(shù)輸入數(shù)據(jù)3.使用scanf函數(shù)時應(yīng)注意的問題scanf(”%f%f%f”,a,b,c);錯scanf(”%f%f%f”,&a,&b,&c);對對于scanf("a=%f,b=%f,c=%f",&a,&b,&c);
132↙
錯
a=1,b=3,c=2↙
對
a=1b=3c=2↙
錯scanf("%5.2f",&a);
scanf("%5f",&a);
附加格式說明符(修飾符)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
則19
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度文化場館物業(yè)管理承包合同
- 二零二五年度學(xué)校食堂承包與綠色環(huán)保經(jīng)營協(xié)議
- 二零二五年度不動產(chǎn)租賃轉(zhuǎn)售權(quán)轉(zhuǎn)讓合同
- 2025年度消毒餐具銷售渠道拓展代理合同
- 新生兒護理中應(yīng)避免的誤區(qū)試題及答案
- 2025年度智能制造公司高管崗位聘用合同
- 二零二五年度加油站合作協(xié)議解除通知模板
- 2025年度科技型企業(yè)虛擬股份協(xié)議書
- 計算機應(yīng)用程序的開發(fā)與優(yōu)化試題及答案
- 船舶工業(yè)事故案例分析
- 企業(yè)培訓(xùn)體系建設(shè)及效果評估
- 655檔案學(xué)概論-馮惠玲-筆記
- 2024年貴州省中考數(shù)學(xué)真題含解析
- 《鐵路軌道維護》課件-無縫線路脹軌跑道預(yù)防與處理
- 《預(yù)制裝配式混凝土綜合管廊工程技術(shù)規(guī)程》
- 2024年山東省(棗莊、菏澤、臨沂、聊城)中考語文試題含解析
- EHS部月度管理工作總結(jié)
- 人教版初中九年級全冊英語單詞表(完整版)
- 學(xué)校保安勞務(wù)派遣投標方案(技術(shù)方案)
- 2024年稅務(wù)系統(tǒng)職業(yè)技能競賽試題庫資料-企業(yè)所得稅管理
- 呼吸機霧化吸入療法護理實踐專家共識
評論
0/150
提交評論