


下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第二章數(shù)據(jù)描述與根本操作教學(xué)目的:程序設(shè)計(jì)是對(duì)數(shù)據(jù)進(jìn)行不同的操作來(lái)解決實(shí)際問(wèn)題的,通過(guò)該章的學(xué)習(xí),使學(xué)生掌握程序中所用的數(shù)據(jù)類(lèi)型有哪些?對(duì)這些數(shù)據(jù)的操作有哪些?各種操作對(duì)不同的數(shù)據(jù)類(lèi) 型運(yùn)算后的結(jié)果是什么?為編程序中用到常量、變量、函數(shù)、表達(dá)式時(shí)打下一個(gè)好的根底, 能用表達(dá)式表示要解決的問(wèn)題。重點(diǎn)與難點(diǎn):變量定義,各種運(yùn)算符的操作結(jié)果, 輸入與輸出語(yǔ)句的合理使用,各種表達(dá)式值的判斷,用表達(dá)式處理具體問(wèn)題。數(shù)據(jù)與操作是構(gòu)成程序的兩個(gè)要素。 程序中所用的數(shù)據(jù)和對(duì)數(shù)據(jù)的操作是編程序的主要內(nèi)容,掌握了數(shù)據(jù)和對(duì)數(shù)據(jù)的根本操作,是編程序的根底,特別是求表達(dá)式的值,對(duì)程序執(zhí)行結(jié)果和程序流程起著決定的作用。2
2、.1數(shù)據(jù)類(lèi)型數(shù)據(jù)是程序的必要組成局部,也是程序處理的對(duì)象。程序中使用“數(shù)據(jù)類(lèi)型的概念,主要是數(shù)據(jù)的存儲(chǔ)形式和數(shù)據(jù)所參加的運(yùn)算不同,程序中所用到的數(shù)據(jù)和變量都要?dú)w屬于某一類(lèi)型。c語(yǔ)言中數(shù)據(jù)類(lèi)型介紹:1根本類(lèi)型整型、實(shí)型、字符型2構(gòu)造類(lèi)型數(shù)組、結(jié)構(gòu)體、共用體、文件3指針類(lèi)型 4空類(lèi)型數(shù)值的定點(diǎn)表示與浮點(diǎn)表示形式 浮點(diǎn)數(shù):看n的不同形式3.14159 X 1003.14159e00.314159 X 1010.314159e+1-131.4159 X 1031.4159e-10. 314159+1同一個(gè)n可用不同的形式表示,主要是小數(shù)點(diǎn)的位置在變化, 即一個(gè)實(shí)數(shù)可分“尾數(shù)和階碼兩局部來(lái)表示,稱(chēng)為浮點(diǎn)
3、數(shù)。即 是實(shí)數(shù)在內(nèi)存中的存儲(chǔ)形式。12、- 20, 10稱(chēng)為定點(diǎn)數(shù),在計(jì)算機(jī)中的存儲(chǔ)形式按字節(jié)用二進(jìn)制形式存儲(chǔ)。00 00 00 00 00 00 10 10左圖為10的16位存儲(chǔ)形式字符型數(shù)據(jù)的表示和存儲(chǔ)形式如:'A' , 9 為字符型數(shù)據(jù),在內(nèi)存中以 ASCII碼代碼存放字符的 ASCII代碼可查閱附錄1 ,例'a'的ASCII碼為97,那么存儲(chǔ)形式為:011 00001與存放整數(shù)97樣,即字符型的數(shù)據(jù)在 ASCII碼允許在范圍內(nèi)與整型數(shù)相同。以下程序運(yùn)行結(jié)果可說(shuō)明問(wèn)題:mai n()char ch;ch= ' a';printf(“%c ,
4、ch,ch);輸出結(jié)果為:97,a即字符型數(shù)據(jù)和整型數(shù)在一定范圍內(nèi)是通用的。2.1.3 數(shù)據(jù)的存儲(chǔ)空間長(zhǎng)度與取值范圍C 語(yǔ)言中不同的數(shù)據(jù)類(lèi)型分配不同的長(zhǎng)度 ( 以字節(jié)為單位 1字節(jié)存 8位二進(jìn)制 ) 的存儲(chǔ)空 間。分配如下:1 字節(jié) 字符型 (char) 2 字節(jié) 整型 (int)4 字節(jié)長(zhǎng)整型 (long)單精度型 (float )8 字節(jié)雙精度型 (double)由于存儲(chǔ)字節(jié)不同,所以取值范圍就不同:int - 32768 32767long- 21474836482147483647float和 double 取值范圍更大。2.1.4 帶符號(hào)的數(shù)據(jù)類(lèi)型與無(wú)符號(hào)的數(shù)據(jù)類(lèi)型 計(jì)算機(jī)內(nèi)存中的正
5、負(fù)數(shù)在存儲(chǔ)時(shí)是通過(guò)最高位來(lái)表示的,如 :( 以 8 位為例 ) 01101011表示正數(shù) 10710100111 表示負(fù)數(shù)(補(bǔ)碼) 89 即負(fù)數(shù)在內(nèi)存中以負(fù)數(shù)的補(bǔ)碼形式存放。正數(shù)的補(bǔ)碼就是該數(shù)本身化為二進(jìn)制數(shù)。 如何求負(fù)數(shù)的補(bǔ)碼:先求該數(shù)的絕對(duì)值,化為二進(jìn)制數(shù);按位取反 (1 變0, 0變1 ) ;再加 1;如|89|=89 89=( 01011001 ) 2取反后等于 10100110加1 后變?yōu)?10100111 為補(bǔ)碼。 有符號(hào)整型數(shù)的取值范圍:兩字節(jié)十六位二進(jìn)制數(shù)最大數(shù): 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1=32767最小數(shù): 1 0 0 0 0 0 0 0
6、 0 0 0 0 0 0 0 0= -32768 (為負(fù)數(shù)的存儲(chǔ)形式) 大家計(jì)算一下為什么是 -32768 ?無(wú)符號(hào)整型數(shù)的取值范圍: 對(duì)于無(wú)符號(hào)數(shù)來(lái)說(shuō), 高位不再來(lái)表示整數(shù)的符號(hào)位,1 6位的二進(jìn)制數(shù)全部用來(lái)存放整數(shù),因此無(wú)符號(hào)數(shù)不會(huì)是負(fù)數(shù)。這時(shí):最大數(shù): 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1=65535(不再代表 -1 ,而是 65535)最小數(shù): 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0=0程序舉例:main()main()char ch;int a=-1;ch=0362;/* 八進(jìn)制數(shù) */printf("%d,%un"
7、;,a,a) ;printf("%d n",ch);輸出結(jié)果為: -14-1, 655352.2 常量和變量不同的數(shù)據(jù)類(lèi)型既可以以常量形式出現(xiàn), 也可以以變量形式出現(xiàn)。 常量在程序執(zhí)行期 間不發(fā)生變化、具有固定值。變量那么其值可發(fā)生變化,其實(shí)變量對(duì)應(yīng)的是內(nèi)存中的某一 存儲(chǔ)單元。2.2.1 直接常量和符號(hào)常量 直接常量就是程序中直接書(shū)寫(xiě)的常數(shù):12 整型常量 12.0,13.56 實(shí)型常量 's','D', 'A' 字符型常量符號(hào)常量在程序中用名字代表的常量,需要由編譯預(yù)處理和說(shuō)明語(yǔ)句定義。例: #define PI 3.141
8、5926#define M 100PI與M就是符號(hào)常量。const float N 356; 說(shuō)明語(yǔ)句N(xiāo)是符號(hào)常量。在程序的其它語(yǔ)句中用到PI , M N它的值就是對(duì)應(yīng)的常數(shù)2.2.2 直接常量的書(shū)寫(xiě)格式整型常數(shù) 十進(jìn)制、八進(jìn)制、十六進(jìn)制 0 開(kāi)頭 八進(jìn)制 0x 0X 開(kāi)頭 十六進(jìn)制0254089 0x1FF 20af12與12L加L為長(zhǎng)整型,大小相同,但存儲(chǔ)所占空間不同實(shí)型常量 小數(shù)形式和指數(shù)形式 34.5 .345 1e2 1.5e-3e-3 1e-0.5字符常量 用單引號(hào)括起來(lái)的字符 'A', 'W', '' 代表字符 , '
9、9; 不正確轉(zhuǎn)義字符 以 開(kāi)頭后跟一個(gè)字符代表控制字符 'n' 表示回車(chē)換行 't'表示跳格'b' 表示退格 'ddd'表示3位8進(jìn)制數(shù)所對(duì)應(yīng)的字符'xhh' 表示2位16進(jìn)制數(shù)所對(duì)應(yīng)的字符 字符串常量 用雙引號(hào)括起來(lái)的多個(gè)字符 "hello","12345","A" 與'A'值相同,存儲(chǔ)形式不同,前者2字節(jié),后1字節(jié)。2.2.3 變量和對(duì)變量的賦值數(shù)據(jù)被存儲(chǔ)在一定的存儲(chǔ)空間中, 數(shù)據(jù)的加工就是在它們所在的存儲(chǔ)區(qū)與運(yùn)算器之間傳 送過(guò)程中實(shí)現(xiàn)
10、的。在高級(jí)語(yǔ)言程序中,數(shù)據(jù)連同存儲(chǔ)空間被抽象為變量。變量有名字標(biāo)識(shí), 即變量名, 用字母等來(lái)表示, 它代表某個(gè)存儲(chǔ)空和所存儲(chǔ)的數(shù)據(jù),存儲(chǔ)空間的數(shù)據(jù)就是變量的值。賦值運(yùn)算就是從運(yùn)算器向變量所對(duì)應(yīng)的存儲(chǔ)單元傳送數(shù)據(jù)。用“=表示賦值操作。C 語(yǔ)言中的“=符號(hào)稱(chēng)為賦值運(yùn)算,由賦值運(yùn)算符組成的表達(dá)式稱(chēng)為賦值表達(dá)式, 形式如下:變量名 =賦值表達(dá)式賦值號(hào)的左邊必須是變量名, 即代表一個(gè)存儲(chǔ)單元或是代表某個(gè)存儲(chǔ)單元的表達(dá)式; 賦值號(hào) 右邊必須是C語(yǔ)言中合法的表達(dá)式。它的作用是把右邊表達(dá)式的值計(jì)算出來(lái)后賦給左邊的變 量,即放入存儲(chǔ)單元。假設(shè)定義了 int a,b 那么a=10 b=a都是合法的賦值表達(dá)式。假設(shè)
11、一個(gè)變量經(jīng)過(guò)了屢次賦值,那么 最后一次才是它的值。賦值語(yǔ)句的考前須知:1. 和數(shù)學(xué)中的“等于號(hào)不是等同關(guān)系。2. 賦值運(yùn)算的執(zhí)行方向同右向左,執(zhí)行為先計(jì)算再賦值。3. 賦值號(hào)連接的式子稱(chēng)為賦值表達(dá)式,如 :a=3+5, 賦值表達(dá)式的值等于賦值后左邊變量中的值??蓪?xiě)成連續(xù)賦值表達(dá)式:b=a=3=5d=c=b=a=3+54. n=n+1數(shù)學(xué)式子無(wú)意義,但在程序中那么有用的,是把n的值增加1再放到n中,程序中可用來(lái)計(jì)數(shù)。2.2.4 變量的聲明變量聲明的意義C 程序中用到的變量都要聲明它們屬于哪一種類(lèi)型。 即要明確指定變量的類(lèi)型。 為什么 呢?不同變量所占存儲(chǔ)單元大小不同。不同數(shù)據(jù)類(lèi)型對(duì)應(yīng)不同的取值范
12、圍。不同數(shù)據(jù)類(lèi)型對(duì)應(yīng)一組允許的操作運(yùn)算。int 整型 float 單精度double 雙精度 char 字符型2.2.5 標(biāo)識(shí)符標(biāo)識(shí)符是給程序中處理的實(shí)體變量、常量、函數(shù)、數(shù)組、結(jié)構(gòu)體、文件等起名字的。 標(biāo)識(shí)符定義的規(guī)那么如下:由字母、數(shù)字及下劃線(xiàn)組成,且第一個(gè)字符必須是字母或下劃線(xiàn)。area ,PI ,_int, a_array,s1234,P101p都是合法的標(biāo)識(shí)符;456P、cade-y、w.w、a&b都是不合法的標(biāo)識(shí)符;C 語(yǔ)言中規(guī)定,大寫(xiě)字母和小寫(xiě)母是兩個(gè)不同的標(biāo)識(shí)符,因此page與Page, pl與P1都是不同的標(biāo)識(shí)符。對(duì)標(biāo)識(shí)符的長(zhǎng)度 含字母、 數(shù)字和下劃線(xiàn)的個(gè)數(shù)不同的系統(tǒng)
13、也有不同規(guī)定, 一般規(guī)定 只識(shí)別前 8個(gè),即前 8個(gè)字符相同就被認(rèn)為是同一個(gè)標(biāo)識(shí)符如: abcdefgh1 與 abcdefgh2 認(rèn) 為是同一個(gè)變量名。關(guān)鍵字是C語(yǔ)言中規(guī)定的一批專(zhuān)用標(biāo)識(shí)符,它們?cè)诔绦蛑性趯?zhuān)門(mén)的用處,不能用作它用,也就是用戶(hù)再不能對(duì)它們重新定義。這些關(guān)鍵字如下:case if for int double等。預(yù)定義標(biāo)識(shí)符這種標(biāo)識(shí)符在語(yǔ)言中也有規(guī)定,它是庫(kù)函數(shù)名或預(yù)編譯處理命令等。如: printf,define,scanf 等。這類(lèi)標(biāo)識(shí)符允許用戶(hù)另作它用,但將失去系統(tǒng)規(guī)定的原意,鑒于這種原因,建議用戶(hù)不要把這些預(yù)定義標(biāo)識(shí)符另作它用。主要是各種函數(shù)名數(shù)學(xué)、字符、文件函數(shù)。用戶(hù)標(biāo)
14、識(shí)符:由用戶(hù)根據(jù)需要定義的標(biāo)識(shí)符。 一般用來(lái)給變量、函數(shù)、 數(shù)組或文件命名,是用戶(hù)編程 的關(guān)鍵類(lèi)似與數(shù)學(xué)中列方程解應(yīng)用題時(shí):設(shè)XX是x; XX是y。用戶(hù)應(yīng)遵守標(biāo)識(shí)符命名的規(guī)那么, 盡量不要和關(guān)鍵字和預(yù)定義標(biāo)識(shí)符相同, 還應(yīng)做到“見(jiàn) 名知義, 增加程序的可讀性, 如果用戶(hù)定義的標(biāo)識(shí)符與關(guān)鍵字相同, 編譯時(shí)會(huì)給出錯(cuò)誤信 息;如果和預(yù)定義標(biāo)識(shí)符相同, 系統(tǒng)不報(bào)錯(cuò), 只是預(yù)定義標(biāo)識(shí)符失去原來(lái)的含義, 代之以用 戶(hù)確定的含義,也可能引起程序運(yùn)行時(shí)的錯(cuò)誤。2.3 運(yùn)算符與表達(dá)式運(yùn)算是對(duì)數(shù)據(jù)的加工,根本運(yùn)算符是用簡(jiǎn)潔的符號(hào)記述,參加運(yùn)算的對(duì)象稱(chēng)為操作數(shù)。 表達(dá)式描術(shù)了對(duì)哪些數(shù)據(jù),以什么順序以及施以什么樣的操
15、作,由運(yùn)算符與運(yùn)算量組成。C語(yǔ)言中提供了豐富的運(yùn)算符,能構(gòu)成多種表達(dá)式, 掌握了 C語(yǔ)言中的表達(dá)式,及表達(dá)式值的計(jì)算方法是必需的。C 語(yǔ)言中的運(yùn)算有 13種:算術(shù)運(yùn)算符 :+ ,-,*,/,%,+,-關(guān)系運(yùn)算符 :>,<,= =,>=,<=,!=邏輯運(yùn)算符 :! ,&&, |位運(yùn)算符:<<,» ,|,人,&賦值運(yùn)算符 : = 條件運(yùn)算符 :? :逗號(hào)運(yùn)算符 : ,指針運(yùn)算符 : &,*求字節(jié)數(shù)運(yùn)算符 :sizeof 強(qiáng)制類(lèi)型轉(zhuǎn)換運(yùn)算符 : 類(lèi)型說(shuō)明符 分量運(yùn)算符 : . ->下標(biāo)運(yùn)算符 學(xué)習(xí)運(yùn)算符應(yīng)注意以下幾點(diǎn)
16、:運(yùn)算符的功能是什么?與運(yùn)算量的關(guān)系 個(gè)數(shù)、類(lèi)型 。運(yùn)算的優(yōu)先級(jí) 多種運(yùn)算組成的表達(dá)式 。 結(jié)合方向。如: 3*5/6 與 a=3>5結(jié)果類(lèi)型,兩個(gè)一同類(lèi)型的數(shù)據(jù)參加運(yùn)算后產(chǎn)生結(jié)果的數(shù)據(jù)類(lèi)型是什么?如: 3/2 與3/2.0 的結(jié)果就不同。2.3.1 算術(shù)運(yùn)算與算術(shù)表達(dá)式根本算術(shù)運(yùn)算符在C語(yǔ)言中的算術(shù)運(yùn)算有+、-、*、/、%分別代表加、減、乘、除、求余運(yùn)算。其中求 余運(yùn)算的兩個(gè)數(shù)必須是整型數(shù),余數(shù)的符號(hào)與被除數(shù)相同。如:13%-3,結(jié)果為 2;-19%4結(jié)果為 -3由于 + 、 -號(hào)的特殊性,可作單目運(yùn)算。但必須出現(xiàn)在左邊。雙目運(yùn)算時(shí),數(shù)據(jù)類(lèi)型一致,才能進(jìn)行運(yùn)算,所得類(lèi)型與運(yùn)算數(shù)的類(lèi)型一
17、致,如1/2 結(jié)果為0;而1.0/2.0 結(jié)果為0.5,如數(shù)據(jù)類(lèi)型不一致 ,系統(tǒng)會(huì)自動(dòng)進(jìn)行轉(zhuǎn)換 ,轉(zhuǎn)換見(jiàn)附錄二。 所有實(shí)型數(shù)運(yùn)算均為以雙精度型方式進(jìn)行,假設(shè)是單精度那么在尾數(shù)補(bǔ)0,轉(zhuǎn)換為雙精度型。運(yùn)算符的優(yōu)先級(jí)在C語(yǔ)言中,常量、變量、函數(shù)調(diào)用及按C語(yǔ)言語(yǔ)法規(guī)那么用運(yùn)算符把運(yùn)算數(shù)連接起來(lái)的式子都 是合法的表達(dá)式。但凡表達(dá)式都 有一個(gè)值,即運(yùn)算結(jié)果。算術(shù)運(yùn)算符的優(yōu)選級(jí):、 +、 - 、 * 、 / 、 %、+、 -單目雙目同級(jí)同級(jí)同級(jí)高低算術(shù)運(yùn)算符和括號(hào)的結(jié)合性和四那么混合運(yùn)算法那么根本一致。 算術(shù)運(yùn)算符中只有單目運(yùn)算 “-和“+的結(jié)合性是從右到左,其余都是從左到右。如: 5+1 /2 結(jié)果為3;
18、 5+1/2結(jié)果為5; 5*-2結(jié)果為-10;等價(jià)于 5*-2的值。書(shū)中附錄三給出了 C語(yǔ)言運(yùn)算符優(yōu)先級(jí)和結(jié)合方向。算術(shù)表達(dá)式用算術(shù)運(yùn)算符和括號(hào)將運(yùn)算量操作數(shù)連接起來(lái)符合C語(yǔ)法的表達(dá)式稱(chēng)為算術(shù)表達(dá)式。 運(yùn)算對(duì)象可以是:常量、變量、函數(shù)等。如:x*y/a+b a+b*h/2復(fù)合的賦值表達(dá)式在賦值運(yùn)算符之前加上其它運(yùn)算就構(gòu)成了復(fù)合賦值運(yùn)算符,C語(yǔ)言中規(guī)定了 10復(fù)合運(yùn)算符,與算術(shù)有關(guān)是 +=、 -=、 *=、 /= 、 %=有5種,它的運(yùn)算優(yōu)先級(jí)與賦值運(yùn)算同級(jí)。 它們代表的賦值表達(dá)式是什么形式呢?n+=1代表n=n+1n-=m+3代表n=n-m+3n*=m+3代表n=n*(m+3)n/=m+3代表
19、n=n/(m+3)n%=(m+3) 代表 n=n%(m+3)舉例:已有變量 a, 其值為 9 計(jì)算表達(dá)式 a+=a-=a+a 的值。由賦值運(yùn)算與復(fù)合賦值運(yùn)算同級(jí), 運(yùn)算從右到左,所以 :a+a 值為 18 a-=18 值為 -9 a+=-9 值為 -18自加、自減運(yùn)算1 、自加運(yùn)算符 (+) 、和自減運(yùn)算符 (-) 的運(yùn)算結(jié)果是使運(yùn)算對(duì)象的值增1和減 1,如 :i+相等于 i=i+1,i-相等于 i=i-1 ,其實(shí)是一種賦值運(yùn)算。2 、+、 - 是單目運(yùn)算,運(yùn)算對(duì)象可以是整型和實(shí)型變量,不能是常量和表達(dá)式,如: +3、 (j+i)- 是不正確的,3、自加、 自減運(yùn)算可作為前綴運(yùn)算行, 也可作為
20、后綴運(yùn)算符, 所以: +i 、-i 、 i+ 、 i- 都是正確的。自加和自減運(yùn)算對(duì)變量本身來(lái)說(shuō)都是加1和減 1,但對(duì)表達(dá)式來(lái)說(shuō)值是不同的。假設(shè)i=5,那么+i的值為6;i的值為6; 假設(shè)i=4,那么-i的值為3;i的值為3;假設(shè)i=5,那么i+的值為5;i的值為6; 假設(shè)i=4,那么i-的值為4;i的值為3;4、 +和 - 運(yùn)算結(jié)合方向是“自右向左-i+ 相等于 -(i+)5、不要在一個(gè)表達(dá)式中對(duì)一個(gè)變量重復(fù)使用自加、自減運(yùn)算,由于編譯系統(tǒng)不同,可 能結(jié)果也不同。賦值類(lèi)運(yùn)算符的副作用及限制C語(yǔ)言允許在表達(dá)式中使用一個(gè)以上的賦值類(lèi)運(yùn)算符,但這種靈活性會(huì)給程序的理解困 難,也會(huì)引起副作用:1費(fèi)解
21、、易于誤解c=b*=a+2;容易理解為 b*=a,c=a+2x=i+j ;是 i+(+j) 還是 (i+)+j 應(yīng)為 (i+)+j2不定解j=3; i=(k=j+1)+(j=5);執(zhí)行以上語(yǔ)句,不同的系統(tǒng)得到的結(jié)果不同。關(guān)系運(yùn)算符和關(guān)系表達(dá)式C 語(yǔ)言的關(guān)系表達(dá)式和邏輯表達(dá)式,其運(yùn)算結(jié)果會(huì)得到一個(gè)邏輯值。邏輯值只有兩個(gè), 在其它高級(jí)語(yǔ)言中用“真、“假來(lái)表示。在C語(yǔ)言中沒(méi)有專(zhuān)門(mén)的“邏輯值,而是用非零值來(lái)表示“真,用零表示“假。因此,對(duì)任意一個(gè)表達(dá)式,假設(shè)它的值為0時(shí),就代表一個(gè)“假值,只要它的值是非零,無(wú)論是正數(shù)和負(fù)數(shù),都代表一個(gè)“真值。關(guān)系運(yùn)算是一種比擬運(yùn)算, 即將兩個(gè)運(yùn)算量進(jìn)行比擬, 判斷它們
22、的大小相等不等的關(guān)系。 關(guān)系運(yùn)算符; <,<=,>,>=,=,!= ;在兩個(gè)字符組成的關(guān)系運(yùn)算符中間不能加空格。關(guān)系運(yùn)算符是雙目運(yùn)算符, 具有自左向左的結(jié)合性。 運(yùn)算的優(yōu)先級(jí)前四種同級(jí), 后兩種 同級(jí), 前四種高于后兩種。如果一個(gè)表達(dá)式中既有算術(shù)運(yùn)算、 關(guān)系運(yùn)算和賦值運(yùn)算,那么優(yōu)先 級(jí)次序是:算術(shù)運(yùn)算;關(guān)系運(yùn)算;賦值運(yùn)算。關(guān)系表達(dá)式及關(guān)系表達(dá)式的值 由關(guān)系運(yùn)算符與運(yùn)算量組成的表達(dá)式稱(chēng)為關(guān)系表達(dá)式。 關(guān)系運(yùn)算符兩邊的運(yùn)算對(duì)象可是C語(yǔ)言中任意合法的表達(dá)式。如:a+b<c+d (a+b)<(c+d)a=x>y a=(x>y)判別式 b 2-4ac &g
23、t; 0 的C語(yǔ)言關(guān)系表達(dá)式為 b*b-4*a*c>=0關(guān)系運(yùn)算的結(jié)果得一個(gè)整數(shù)值0或者1,在C語(yǔ)言中沒(méi)有專(zhuān)門(mén)的邏輯值,而用0代表真,1代表假。分析:x 5,13關(guān)系表達(dá)式 5<x<13 當(dāng) x=3或x=6時(shí)的值當(dāng)關(guān)系運(yùn)算符兩邊的類(lèi)型不一致時(shí),一邊是整型,另一邊是實(shí)型,系統(tǒng)要自動(dòng)把不整型轉(zhuǎn)換為實(shí)型,然后進(jìn)行比擬轉(zhuǎn)換規(guī)那么見(jiàn)附錄二。假設(shè)兩個(gè)數(shù)x和y都是實(shí)數(shù),在進(jìn)行相等的 比擬時(shí),由于內(nèi)存中的實(shí)數(shù)表示有誤差,不可能精確相等,這將導(dǎo)致關(guān)系表達(dá)式x= =y的值總為0,即在程序設(shè)計(jì)時(shí)應(yīng)盡量防止兩個(gè)實(shí)型進(jìn)行相等的關(guān)系運(yùn)算。邏輯運(yùn)算符和邏輯表達(dá)式當(dāng)表示一些比擬復(fù)雜的關(guān)系時(shí),只有關(guān)系表達(dá)式是
24、不行的。如:要表示x a,b。三角形任意兩邊之和大于第三邊。坐標(biāo)x,y在單位圓內(nèi),且在第一象限。這些條件只用關(guān)系運(yùn)算是不能表達(dá)的。C語(yǔ)言中提供了三種邏輯運(yùn)算,可以表示這些復(fù)雜的條件。邏輯運(yùn)算符為:!、&&、II。x a,b表示為:x>=a&&x<=ba,b,c為三角形的三條邊,能組成三角形表示為:a+b>c&&b+c>a&&a+c>bx,y在單位圓內(nèi)且在第一象限表示為:x*x+y*y<1 &&x>0&&y>0邏輯運(yùn)算的優(yōu)先次序?yàn)?!?amp;&
25、、|。假設(shè)一個(gè)表達(dá)式中有前面介紹的所有運(yùn)算算術(shù)、賦值、關(guān)系、邏輯,它們之間的運(yùn)算優(yōu)先次序從高到低為:!、算術(shù)運(yùn)算、關(guān)系運(yùn)算、&& |、賦值邏輯表達(dá)式的值由邏輯運(yùn)算符和運(yùn)算對(duì)象組成的表達(dá)式稱(chēng)為邏輯表達(dá)式,運(yùn)算對(duì)象可以是C語(yǔ)言中任意合法的表達(dá)式,它們的值是什么呢?和關(guān)系表達(dá)式值一樣,邏輯表達(dá)式值運(yùn)算的結(jié)果只有真1假0值。x a,b當(dāng) x=2; a=1;b=4 x>=a&&x<=b值為 1真當(dāng) x=-2; a=1;b=4 x>=a&&x<=b值為 0假a,b,c為三角形的三條邊當(dāng) a=3;b=4;c=5 a+b>c&
26、;&b+c>a&&a+c>b 值為 1 真當(dāng) a=2;b=1;c=3 a+b>c&&b+c>a&&a+c>b 值為 0假當(dāng)x=2,a=1;b=4 x<a|x>b 的值為假當(dāng)x=-2,a=1;b=4 x<a|x>b 的值為真邏輯表達(dá)式的值可以通過(guò)以下運(yùn)算規(guī)那么表中查到:AB!AA&&BA|B00100100010110111011邏輯表達(dá)式考前須知數(shù)學(xué)式子和邏輯表達(dá)式, 如數(shù)學(xué)式子0<x<10如寫(xiě)成0<x<10雖然沒(méi)錯(cuò)誤,但是不能表示 x所滿(mǎn)足條件
27、,因?yàn)椴还躼是什么值,它的值永遠(yuǎn)是真值1為什么?。應(yīng)用0<x&&x<10表示。 注意是編程序,不是寫(xiě)數(shù)學(xué)式子 在由&&和 |組成的邏輯表達(dá)式中,在特定情況下會(huì)出現(xiàn)短路現(xiàn)象一旦可以確定邏輯表達(dá)式的真、假值 ) ,例如有如下邏輯表達(dá)式: a+&&b+假設(shè)a的值為0,此時(shí)的邏輯表達(dá)式的值已確定為假 0,就不對(duì)b進(jìn)行求值而跳過(guò),這時(shí) a的值發(fā) 生了變化(0變成1),而b的值不發(fā)生變化 。假設(shè)a的值不是0,此時(shí)邏輯表達(dá)式的值還需通過(guò) b 的值來(lái)確定,不管邏輯表達(dá)式的值是真假,a、b的值都要發(fā)生了變化。又如下邏輯表達(dá)式:a+|b+假設(shè)a的值為1,
28、此時(shí)的邏輯表達(dá)式的值已確定為真1,就不對(duì)b進(jìn)行求值而跳過(guò), 這時(shí)a的值發(fā)生了變化(1變成2),而b的值不發(fā)生變化 。假設(shè)a的值是0,此時(shí)邏輯表達(dá)式的值還需通過(guò)b的值來(lái)確定,不管邏輯表達(dá)式的值是真假,a、b的值都要發(fā)生了變化。關(guān)系表達(dá)式和邏輯表達(dá)式練習(xí)題:1. 假設(shè) a=4, 那么 !a 的值是什么?2. 假設(shè)a=4;b=5,那么a&&b的值是什么?3. a,b的值同前,那么a|b的值是什么?4. a,b的值同前,那么!a|b的值是什么?5. 4&&0|2 的值是什么?關(guān)系表達(dá)式和邏輯表達(dá)式舉例:6. 5>3&&2|8<4-!0 的值是
29、什么?7. 假設(shè)a=3,b=4,c=5;以下邏輯表達(dá)式的值是什么?a+b>c&&b= =c a|b+c&&b-c!(a>b)&&!c|1 !(x=a)&&(y=b)&&0!(a+b)+c-1&&b+c/28. 表示條件10<x<100或x<0的C語(yǔ)言表達(dá)式是什么?9. 判斷x能被2整除的關(guān)系表達(dá)式是什么?10. 分別判斷x是偶數(shù)或是奇數(shù)的關(guān)系表達(dá)式是什么?11. 判斷某年是否是閏年的邏輯表達(dá)式是什么? (能被4整除,但不能被 100整;能被 4整除, 又能被 400整除
30、 )條件運(yùn)算及條件表達(dá)式C 語(yǔ)言中還提供了一種特殊的運(yùn)算條件運(yùn)算符,由此構(gòu)成的表達(dá)式也可形成簡(jiǎn)單的選 擇結(jié)構(gòu), 這種選擇結(jié)構(gòu)以表達(dá)式的形式內(nèi)嵌在允許出現(xiàn)表達(dá)式的地方,使得可根據(jù)不同的條件使用不同的表達(dá)式。(類(lèi)似于Excel中的IF()函數(shù)) 條件運(yùn)算符: ? :是唯一的一個(gè)三目運(yùn)算符,要求三個(gè)對(duì)象。由條件運(yùn)算符構(gòu)成的條件表達(dá)式:表達(dá)式 1? 表達(dá)式 2 : 表達(dá)式 3 條件運(yùn)算及條件表達(dá)式條件表達(dá)式的運(yùn)算功能:表達(dá)式 1 的值為非 0時(shí),求出表達(dá)式 2的值,此時(shí)表達(dá)式 2的值就是整個(gè)條件表達(dá)式的值; 假設(shè)表達(dá)式 1的值為 0時(shí),求出表達(dá)式 3的值,此時(shí)表達(dá)式 3的值就是整個(gè)條件表達(dá)式的值。例如
31、:x=5,y=10,那么max=x>y?x:y的值max等于多少? 條件運(yùn)算的優(yōu)先級(jí)優(yōu)于賦值運(yùn)算,但低于邏輯、關(guān)系、算術(shù)運(yùn)算。y=x>10?100:200;printf(“ abs(x)=%nd,x>0 ?(-1 )*x:x)( 輸出 x 的絕對(duì)值 )程序舉例:用條件表達(dá)式 , 求三個(gè)數(shù)中的最大和最小數(shù)并輸出。main() int a,b,c,max,min;scanf("%d%d%d",&a,&b,&c); max=a>b?a:b;min=a<b?a:b; max=max>c?max:c;min=min<c
32、?min:c; printf("max=%d,min=%dn",max,min); 逗號(hào)運(yùn)算和逗號(hào)表達(dá)式“,是C語(yǔ)言提供的一種特殊運(yùn)算符,用逗號(hào)連起來(lái)的式子稱(chēng)為逗號(hào)表達(dá)式,一般 形式為:表達(dá)式1,表達(dá)式2,,表達(dá)式 N說(shuō)明:1 、逗號(hào)運(yùn)算結(jié)合從左到右,先計(jì)算表達(dá)式 1的值,最后計(jì)算表達(dá)式 N的值,最后一個(gè) 表達(dá)式的值是整個(gè)表達(dá)式的值。如 : (i=3,i+,+i,i+5) 執(zhí)行后, i 的值為 5,整個(gè)表達(dá) 式的值為 102 、在所有運(yùn)算符中,逗號(hào)運(yùn)算符優(yōu)先最低。2.4 不同類(lèi)型數(shù)據(jù)間的轉(zhuǎn)換2.4.1 幾個(gè)概念C語(yǔ)言允許數(shù)值從一種類(lèi)型轉(zhuǎn)換成另一種類(lèi)型(同一類(lèi)型但占字節(jié)數(shù)不同
33、、定點(diǎn)與浮點(diǎn)、有符號(hào)與無(wú)符號(hào) )提示與降格 ( 所占字節(jié)數(shù)的變?cè)谂c變小 ) 符號(hào)位擴(kuò)展與零擴(kuò)展 (字節(jié)數(shù)變高位補(bǔ)什么 ) 最高位失去符號(hào)功能與最高位變?yōu)榉?hào)位截去小數(shù)與四舍五入喪失精度結(jié)果不確定與截去高位(例 2.11 )2.4.2 不同類(lèi)型的隱式轉(zhuǎn)換 隱式轉(zhuǎn)換的發(fā)生:運(yùn)算時(shí)、賦值時(shí)、輸出時(shí)、函數(shù)返回值時(shí)。一般算術(shù)轉(zhuǎn)換。2*1.0 結(jié)果為 2.0賦值轉(zhuǎn)換。 int a=13.789 a 的值為 13輸出轉(zhuǎn)換。x=45; printf("%d%x%on",x,x,x);2.4.3 不同類(lèi)型的顯式轉(zhuǎn)換 提供強(qiáng)制類(lèi)型轉(zhuǎn)換,形式為:( 類(lèi)型說(shuō)明符 ) 表達(dá)式例如:char ch;i
34、nt a;double c; ch=(char)48.5;a=(int)35.9; 四舍五入c=(double)100;提高精度2.5數(shù)據(jù)的輸入輸出對(duì)數(shù)據(jù)的一種重要操作是輸入與輸出。沒(méi)有輸出的程序是沒(méi)有用的;沒(méi)有輸入的程序 缺乏靈活性。C語(yǔ)言中的輸入輸出由函數(shù)實(shí)現(xiàn),它包含在頭文件stdio.h中,在使用輸入輸出時(shí)最好在編譯預(yù)處理命令中包含。2.5.1 printf 函數(shù)一個(gè)完整的程序應(yīng)該由三局部組成:輸入、處理、輸出。輸出局部把數(shù)據(jù)從計(jì)算機(jī)內(nèi)部送到外部設(shè)備,如:在屏幕上顯示或打印在紙上。 printf 函數(shù)的一般形式該函數(shù)是C語(yǔ)言提供的標(biāo)準(zhǔn)輸出函數(shù),它的作用是在終端設(shè)備上按指定格式進(jìn)行輸出。p
35、rintf函數(shù)的使用格式(語(yǔ)法規(guī)那么)如下:printf(格式控制串,輸出項(xiàng)表)在它的后面加上“;號(hào)就構(gòu)成了輸出語(yǔ)句。格式控制必須用雙引號(hào)括起來(lái)。 例如:prin tf("a=%d,b=%dn",a,b); "a=%d,b=%dn"為格式控制字符串、a,b 是輸出項(xiàng)表。printf函數(shù)的一般調(diào)用形式完整的格式為:% - 0 m.n l或 h 格式字符(d,f,x,o,c,u,p )t y t y 廠匕指定輸出類(lèi)型|輸出長(zhǎng)度修正指定輸出域?qū)捄途戎付瘴谎a(bǔ)0指定左邊對(duì)齊輸出格式說(shuō)明起始符 格式控制符的作用:1. 為各輸出項(xiàng)提供格式轉(zhuǎn)換說(shuō)明:將要輸出的數(shù)據(jù)轉(zhuǎn)
36、換為指定的格式輸出,總是由 開(kāi)始,緊跟其后的是格式描述符。當(dāng)輸出項(xiàng)為int類(lèi)型時(shí),系統(tǒng)規(guī)定用d作為格式描述符,其形式為d假設(shè)輸出為float或double 時(shí),用f或e作為格式描述符,其形式為%f或 %e char類(lèi)型時(shí)用c作為格式描述符,其形式為%c>2. 提供原樣輸出文字或字符不在格式字符中間夾的字符原樣輸出。如:"a=%d,b=%d"希望輸出玄=和匕=字符。輸出項(xiàng)表中的輸出項(xiàng)應(yīng)用逗號(hào)分開(kāi),輸出項(xiàng)可以是合法的常量、變量、表達(dá)式。格式轉(zhuǎn)換說(shuō)明應(yīng)與輸出項(xiàng)的個(gè)數(shù)相同,格式描述也要與輸出項(xiàng)類(lèi)型匹配。請(qǐng)分析程序的輸出結(jié)果:#i nclude "stdio.h&qu
37、ot;main ()int i=2518;float a=3.1415;prin tf("i=%d,a=%f,a*10=%en",i,a,a*10);printf函數(shù)常用格式說(shuō)明:每個(gè)格式都必須用“ '開(kāi)頭,以一個(gè)格式字符結(jié)束,在它們中間可以根據(jù)需要加上“寬度說(shuō)明(其實(shí)是正整數(shù))、“長(zhǎng)度修飾、“左對(duì)齊、“前導(dǎo)零符號(hào)、“八進(jìn)制前加0、“十六進(jìn)制前加Ox等。在和格式符中夾上不同的字符,就能實(shí)現(xiàn)上述功能。1. 格式字符 :d 整型數(shù), c 字符型 ,f 實(shí)型數(shù) ,o 八進(jìn)制數(shù) ,x 十六進(jìn)制數(shù) ,p 變量地址 ,u 無(wú)符號(hào) 數(shù),% 輸出 %自己。2. 長(zhǎng)度修飾符 :長(zhǎng)度修
38、飾符在 %和格字符之間 , 長(zhǎng)整型用 l(long);h 用于短整型 ( short )或無(wú)符號(hào)整型數(shù) 的輸出。3. 輸出數(shù)據(jù)所占的寬度當(dāng)使用%d %c %f、%e格式說(shuō)明時(shí),可用以下二種方法人為控制輸出數(shù)據(jù)所占的寬 度。(1) 在%與格式字符之間插入一個(gè)整數(shù)來(lái)指定輸出寬度,寬度不夠不影響數(shù)據(jù)輸出,如果 比實(shí)際寬度大補(bǔ)空格。分析以下程序的運(yùn)行結(jié)果。main () printf("0123456789n");printf("%dn",42); printf("%5dn",42);printf("%fn",123.54
39、); printf("%12fn",123.54);printf("%en",123.54); printf("%gn",123.5);printf("%8gn",123.5);(2) 對(duì)于float或double類(lèi)型可用“整數(shù)1.整數(shù)2形式在指定寬度的同時(shí)指定小數(shù)位,整數(shù)1用以指定整個(gè)寬度 , 整數(shù)2稱(chēng)為精度 ,即小數(shù)位 ,不同的格式字符地不同含義 :e,E或f指定輸出數(shù)據(jù)所占的小數(shù)位,當(dāng)輸出數(shù)據(jù)的小數(shù)多于指定的寬度時(shí),要截去多余的小數(shù)位 , 并作四舍五入的處理 , 少于指定寬度時(shí) , 最右邊補(bǔ) 0當(dāng)輸出數(shù) 據(jù)寬
40、度大于整數(shù) 1時(shí), 小數(shù)局部作同樣處理 , 整數(shù)局部不變。也可用“ . 整數(shù)2的形式來(lái)指定小數(shù)位的輸出。這時(shí)輸出數(shù)據(jù)的寬度由系統(tǒng)決定。%.0表示不輸出小數(shù)點(diǎn)和小數(shù)局部。對(duì)于g或G用來(lái)指定輸出的有效數(shù)字。 對(duì)于整數(shù):用來(lái)指定必須輸出的數(shù)的個(gè)數(shù),假設(shè)輸出數(shù)據(jù)少于整數(shù)2指定的個(gè)數(shù),在數(shù)字前加 0,多于整數(shù) 2時(shí),按實(shí)際寬度輸出。對(duì)于字符串,用來(lái)指定最多輸出的字符個(gè)數(shù)。輸出的實(shí)際精度并不取決于域?qū)捄托?shù)位寬度,而是取決于數(shù)據(jù)在計(jì)算機(jī)中存儲(chǔ)的精度,通常float7位double15位或16位有效數(shù)字,格式中和域?qū)挷荒芨淖償?shù)據(jù)的精度。分析程序執(zhí)行結(jié)果main () printf("0123456
41、789n");printf("%.5dn",42);printf("%.0dn",42);printf("%8.3fn",123.55);printf("%8.1fn",123.55);printf("%8.0fn",123.55); printf("%gn",123.56789); printf("%.5sn","abcdefg");4. 輸出數(shù)據(jù)左對(duì)齊:輸出時(shí)如果不加說(shuō)明, 數(shù)據(jù)的輸出結(jié)果都是以右邊對(duì)齊, 假設(shè)要控制左邊對(duì)
42、齊, 就需在寬 度定義前加一個(gè)“ - 號(hào)來(lái)控制。查看程序執(zhí)行結(jié)果:#include "stdio.h" main()clrscr();printf("%6d#n",123); printf("%-6d#n",123);printf("%14.8lf#n",1.3455); printf("%-14.8lf#n",1.3455);getchar();5. 使輸出的數(shù)字前總是帶有+或-號(hào):可在 %和格式字符之間(或指定寬度前)加上一個(gè)“ +中與來(lái)實(shí)現(xiàn)。查看程序執(zhí)行結(jié) 果:#include "
43、;stdio.h" main()clrscr(); printf("%+d,%+dn",10,-10); getchar();6. 在輸出的數(shù)據(jù)前加上前導(dǎo)0:可在指定寬度前加上 0,使數(shù)據(jù)前的空格由 0填充。查看程序執(zhí)行結(jié)果: #include "stdio.h"main()clrscr();printf("%6dn",12); printf("%06dn",12);printf("%10.5fn",3.1415); printf("%014.5fn",3.1415
44、);getchar();7. 在輸出的 8進(jìn)制前添加 0 ,在輸出的 16進(jìn)制前添加 0x:通常由o和x控制按8進(jìn)制和16進(jìn)制整數(shù)形式輸出時(shí),數(shù)據(jù)前沒(méi)0和Ox,如果需要輸出的前面加上0和 Ox只需在格式字符o和x之間加上“ #即可。查看程序執(zhí)行結(jié)果: #include "stdio.h" main()clrscr(); printf("%o,%#o,%x,%#xn",10,10,10,10);getchar();在調(diào)用printf函數(shù)進(jìn)行輸出時(shí)需注意:1. 在格式控制串中,格式說(shuō)明與輸出項(xiàng)從左到右在類(lèi)型上必須一一對(duì)應(yīng)匹配,否那么將 導(dǎo)致數(shù)據(jù)不能正確輸出,
45、系統(tǒng)并不報(bào)錯(cuò)。輸出long型應(yīng)使用“ ld。2. 格式說(shuō)明和輸出項(xiàng)個(gè)數(shù)應(yīng)該相同,如說(shuō)明個(gè)數(shù)少,多余項(xiàng)不輸出,說(shuō)明個(gè)數(shù)多,多 余輸出不定值。#i nclude "stdio.h"#in elude "ctype.h"mai n()int c1,c2,c3,d1,d2,d3;clrscr();sca nf("%d%d%d",&c1,&c2,&c3);prin tf("%d,%dn",c1,c2,c3);sca nf("%d%d%d", &d1, &d2, &a
46、mp;d3);prin tf("%d,%d,%dn",d1,d2);3. 在格式串中除了合法的格式說(shuō)明外可包括任何的合法的字符串,輸出時(shí)“原樣照印。4. 輸出%那么在格式說(shuō)明中用連續(xù)兩個(gè)即可。5. 在輸出語(yǔ)句中改變輸出變量的值如:i=5;pri ntf("%d,%dn ,i,i+)的輸出結(jié)果將無(wú)法判斷。6. pri ntf函數(shù)返回的值通常是本次調(diào)時(shí)函數(shù)輸出字符的個(gè)數(shù)。2.5.2sca nf 函數(shù)一般調(diào)用形式如下:scanf(格式控制,輸入項(xiàng)表)在該數(shù)函后加上“;就構(gòu)成了輸入語(yǔ)句。例如:scanf( %d %d ",&a,&b);該語(yǔ)句的作
47、用是通過(guò)鍵盤(pán)給a和b輸入整型數(shù),%d%是格式控制串,& a,&b是輸入項(xiàng),表示a和b的存儲(chǔ)地址。格式控制串的作用是指定輸入時(shí)的數(shù)據(jù)轉(zhuǎn)換格式,即格式轉(zhuǎn)換說(shuō)明。由嘶始,其后是格式描述符。輸入項(xiàng)表中的各項(xiàng)用逗號(hào)分開(kāi), 各輸入項(xiàng)只能是合法地址表達(dá)式,即在輸入變量前加上“ &,&是C語(yǔ)言中求地址運(yùn)算。也就是說(shuō)輸入項(xiàng)必須是某個(gè)存儲(chǔ)單元的地址。格式說(shuō)明根本組成如下:每個(gè)格式說(shuō)明都必須用 開(kāi)始,以一個(gè)格式字符結(jié)束。允許使用的輸入格式字符和功能 如下所示:d整型數(shù),ld長(zhǎng)整型數(shù),c字符型,f 單精度數(shù),If 雙精度數(shù),o八進(jìn)制數(shù),x十六進(jìn)制數(shù),s字符串。這些格式字符只允許用小寫(xiě)字
48、母。 輸入格式符說(shuō)明: 輸入long型在d之間加上I;輸入double型在和f(e)之間也必須加I。(2) 格式說(shuō)明的類(lèi)型與輸入項(xiàng)的類(lèi)型應(yīng)一一對(duì)應(yīng)。類(lèi)型不一致,系統(tǒng)不給出錯(cuò)信息,但 得不到正確的數(shù)據(jù)。(3) 在格式說(shuō)明符前可用一個(gè)正整數(shù)指定輸入數(shù)所占寬度, 但不能對(duì)實(shí)型數(shù)指定小數(shù)位。(4) 格式說(shuō)明和輸入項(xiàng)的個(gè)數(shù)應(yīng)該相同。假設(shè)格式說(shuō)明個(gè)數(shù)少于輸入項(xiàng)個(gè)數(shù),該函數(shù)結(jié)束 輸入, 多余項(xiàng)并沒(méi)有從終端接受新的數(shù)據(jù)。 假設(shè)格式說(shuō)明個(gè)數(shù)多于輸入項(xiàng)個(gè)數(shù), 該函數(shù)同樣結(jié) 束輸入。(5) 當(dāng)輸入的數(shù)據(jù)個(gè)數(shù)少于輸入項(xiàng)時(shí),程序等待輸入,直到滿(mǎn)中為止,當(dāng)輸入的數(shù)據(jù)個(gè) 數(shù)多于輸入項(xiàng)時(shí),多余數(shù)據(jù)并不消失,而是留作下一個(gè)輸入
49、操作的輸入數(shù)據(jù)。(6) scanf 函數(shù)在調(diào)用結(jié)束后返回一個(gè)函數(shù)值,其值等于輸入值的輸入項(xiàng)的個(gè)數(shù)。 通過(guò) scanf 函數(shù)從鍵盤(pán)輸入數(shù)據(jù):當(dāng)調(diào)用 scanf 函數(shù)從鍵盤(pán)輸入數(shù)據(jù)時(shí),最一定要按回車(chē)鍵,該函數(shù)行能接受從鍵盤(pán)輸入 的數(shù)據(jù)。1. 輸入數(shù)值數(shù)據(jù):從鍵盤(pán)輸入數(shù)據(jù)時(shí),輸入的數(shù)據(jù)間用間隔字符(空格,Tab鍵或回車(chē)鍵)隔開(kāi),間隔數(shù)量不限。如人為指定寬度,也可用此方法輸入。例: a,b,c 為整型變量,有以下輸入語(yǔ)句:scanf(" %d%d%"d,&a,&b,&c); 要求給 a,b,c 分別賦 10,20,30 那么數(shù)據(jù)的輸入形式為 間隔符10間隔符
50、20間隔符30CR間隔符為以上介紹的。2. 指定輸入數(shù)據(jù)所占的寬度:一般編譯系統(tǒng)可要求用戶(hù)像未指定寬度一樣輸入數(shù)據(jù)。3. 跳過(guò)輸入數(shù)據(jù)方法:在格式符前加上一個(gè)“ * ,該數(shù)沒(méi)接受例如:int a1,a2,a3;scanf( %d%*d%d%d ,&a1,&a2,&a3);輸入數(shù)據(jù)為 10 20 30 40CR 那么 a1,a2,a3 的值為 10,30,404. 輸入數(shù)據(jù)少于 scanf 函數(shù)要求輸入的數(shù)據(jù) 這時(shí)將等待輸入,直到滿(mǎn)足為止。 當(dāng)程序運(yùn)行時(shí):黑屏幕回不到藍(lán)屏幕,有可能是數(shù)據(jù)的數(shù)量缺乏。5. 輸入數(shù)據(jù)多于 scanf 函數(shù)要求輸入的數(shù)據(jù): 多余數(shù)據(jù)將留在緩沖作
51、為下一次輸入操作的輸入數(shù)據(jù)。在調(diào)試程序時(shí), 可采用輸完所有的數(shù)據(jù)再回車(chē)。 這時(shí)當(dāng)程序輸出不正確時(shí), 修改完程序, 再次運(yùn)行程序時(shí),可以不重新輸入數(shù)據(jù) ,用右光標(biāo)健把上次輸入的數(shù)據(jù)重新顯示出來(lái)作為 程序的輸入數(shù)據(jù)。通過(guò) scanf 函數(shù)從鍵盤(pán)輸入數(shù)據(jù)6. 在格式控制中插入其它字符應(yīng)該首先明確: scanf 函數(shù)中的格式控制串是為輸入數(shù)據(jù)用的,其中的字符不能顯示在 屏幕上,因此想在屏幕上輸出字符串來(lái)提示輸入,應(yīng)該另外使用printf 函數(shù)。程序舉例(在scanf函數(shù)的格式中插入其它字符):此時(shí)在輸入時(shí),應(yīng)按一一對(duì)應(yīng)的位置原樣輸入這些字符。#include "stdio.h"main() int a1,a2,a3;clrscr();scanf("Input a1,a2,a3:%d%d%d",&a1,&a2,&a3);printf("%d,%d,%d",a1,a2,a3);程序舉例(用printf語(yǔ)句來(lái)顯示輸入提示):此時(shí)只需輸入seanf函數(shù)中輸入項(xiàng)所對(duì)應(yīng)的
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 青島市L區(qū)智慧養(yǎng)老服務(wù)問(wèn)題與對(duì)策研究
- 轉(zhuǎn)動(dòng)型雙階摩擦阻尼器力學(xué)性能研究
- 肝膽疾病超聲診斷
- 幼兒園大班健康禮儀下冊(cè)
- 呼吸機(jī)的使用及護(hù)理
- 創(chuàng)新養(yǎng)老服務(wù)模式與老年健康管理實(shí)踐
- 《機(jī)械設(shè)計(jì)基礎(chǔ)》課件-第12章 機(jī)械傳動(dòng)設(shè)計(jì)
- 學(xué)生心理疏通和輔導(dǎo)培訓(xùn)會(huì)
- 預(yù)防兒童流感課件
- 感染科主要診斷
- 2025年校長(zhǎng)職級(jí)考試題及答案
- 國(guó)家能源集團(tuán)采購(gòu)管理規(guī)定及實(shí)施辦法知識(shí)試卷
- 2023-2024學(xué)年四川省成都市高新區(qū)八年級(jí)(下)期末數(shù)學(xué)試卷
- 2025年廣西繼續(xù)教育公需科目考試試題和答案
- 2024年廣州市南沙區(qū)社區(qū)專(zhuān)職招聘考試真題
- 山東醫(yī)藥技師學(xué)院招聘筆試真題2024
- (高清版)DB13(J)∕T 8556-2023 建設(shè)工程消耗量標(biāo)準(zhǔn)及計(jì)算規(guī)則(園林綠化工程)
- JJF 1334-2012混凝土裂縫寬度及深度測(cè)量?jī)x校準(zhǔn)規(guī)范
- GB/T 3003-2017耐火纖維及制品
- GB/T 1094.1-2013電力變壓器第1部分:總則
- 經(jīng)濟(jì)責(zé)任審計(jì)報(bào)告
評(píng)論
0/150
提交評(píng)論