




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
程序設(shè)計(jì)基礎(chǔ)——C語言程序設(shè)計(jì)
2023翻轉(zhuǎn)課堂實(shí)用教程01編程相關(guān)基礎(chǔ)知識(shí)
02C語言初印象
03變量、數(shù)據(jù)類型和表達(dá)式
04輸入輸出函數(shù)
05分支結(jié)構(gòu)
06循環(huán)結(jié)構(gòu)
07數(shù)組
08函數(shù)
09指針
10結(jié)構(gòu)體
11文件
全套可編輯PPT課件
本課件是可編輯的正常PPT課件第1章什么是編程語言1.1二進(jìn)制、八進(jìn)制和十六進(jìn)制1.2數(shù)據(jù)在內(nèi)存中怎樣存儲(chǔ)1.3計(jì)算機(jī)的編碼問題1.4數(shù)據(jù)、內(nèi)存和程序的關(guān)系1.5本課件是可編輯的正常PPT課件1.1什么是編程語言本課件是可編輯的正常PPT課件人與計(jì)算機(jī)怎樣交流?人與人之間通過“自然語言”交流人與計(jì)算機(jī)之間怎么交流?編程語言本課件是可編輯的正常PPT課件常用編程語言及主要用途編程語言主要用途C/C++C/C++主要用于PC軟件開發(fā)、Linux開發(fā)、游戲開發(fā)、單片機(jī)和嵌入式系統(tǒng)Java用于網(wǎng)站后臺(tái)開發(fā)、Android
開發(fā)、PC軟件開發(fā),近年來又涉足了大數(shù)據(jù)領(lǐng)域(歸功于Hadoop框架的流行)C#用于Windows平臺(tái)的軟件開發(fā),以及少量的網(wǎng)站后臺(tái)開發(fā)。Python用于系統(tǒng)運(yùn)維、網(wǎng)站后臺(tái)開發(fā)、數(shù)據(jù)分析、人工智能、云計(jì)算等領(lǐng)域PHPPHP主要用來開發(fā)網(wǎng)站后臺(tái)程序。JavaScript最初只能用于網(wǎng)站前端開發(fā),近年來由于Node.js的流行,JavaScript在網(wǎng)站后臺(tái)開發(fā)中也占有了一席之地Go語言主要用于服務(wù)器端的編程,對(duì)C/C++、Java都形成了不小的挑戰(zhàn)。Objective-C和SwiftObjective-C和Swift都只能用于蘋果產(chǎn)品的開發(fā),包括Mac、MacBook、iPhone、iPad、iWatch等匯編語言在對(duì)效率和實(shí)時(shí)性要求極高的關(guān)鍵模塊才會(huì)考慮匯編語言,例如操作系統(tǒng)內(nèi)核、驅(qū)動(dòng)、儀器儀表、工業(yè)控制等本課件是可編輯的正常PPT課件C語言什么樣子?1C語言的格式和詞匯(語法、語義)養(yǎng)成編程思維2例子1-1-1,代碼如下:/*在屏幕上顯示“我愛編程”*/#include<stdio.h>intmain(){printf(“我愛編程\n”);return0;}例子1-1-1,運(yùn)行結(jié)果:我愛編程本課件是可編輯的正常PPT課件1.2二進(jìn)制、八進(jìn)制和十六進(jìn)制本課件是可編輯的正常PPT課件八進(jìn)制數(shù)一位八進(jìn)制數(shù)可以表示三位二進(jìn)制數(shù)23=8一位十六進(jìn)制數(shù)可以表示四位二進(jìn)制數(shù)24=16十六進(jìn)制為什么使用八進(jìn)制和十六進(jìn)制?方便、簡(jiǎn)單二進(jìn)制數(shù)001111111111111111八進(jìn)制177777二進(jìn)制數(shù)1111111111111111十六進(jìn)制FFFF本課件是可編輯的正常PPT課件1.2.1二進(jìn)制PK逢2進(jìn)1二進(jìn)制加法借1當(dāng)2二進(jìn)制減法0111100
-=011
-=1101100101
-=011
-=0110111111000-1不夠減,向高位借1,當(dāng)作2使用,2-1為1被低位借走1后,當(dāng)前位就不夠減了,還得再向高位借1,當(dāng)作2使用,1+2-1-1為1被低位借走1后,當(dāng)前位剩下0,0-0為0當(dāng)前位本來就不夠減,還被低位借走1,所以得向高位借1,借到之后當(dāng)作2使用,2-1-1為0本課件是可編輯的正常PPT課件1.2.2八進(jìn)制PK逢8進(jìn)1八進(jìn)制加法借1當(dāng)8八進(jìn)制減法本課件是可編輯的正常PPT課件1.2.3十六進(jìn)制PK逢16進(jìn)1十六進(jìn)制加法借1當(dāng)16十六進(jìn)制減法本課件是可編輯的正常PPT課件1.3數(shù)據(jù)在內(nèi)存中怎樣存儲(chǔ)本課件是可編輯的正常PPT課件位和字節(jié)8個(gè)元器件看做一個(gè)存儲(chǔ)單位,例如1,用00000001表示1個(gè)元器件稱為1比特(Bit)或1位8個(gè)元器件稱為1字節(jié)(Byte)單位換算:1Byte=8Bit8×1024個(gè)元器件就是1024Byte,簡(jiǎn)寫為1KB1KB=1024Byte=210Byte1MB=1024KB=220Byte1GB=1024MB=230Byte1TB=1024GB=240Byte1PB=1024TB=250Byte1EB=1024PB=260Byte22=4,23=8,24=16,25=32,26=64,27=128,28=256存儲(chǔ)單位數(shù)據(jù)的存儲(chǔ)一個(gè)元器件有2種狀態(tài),0或者1內(nèi)存條是一個(gè)非常精密的部件,包含了上億個(gè)電子元器件8個(gè)元器件有28=256種不同的組合16個(gè)元器件有216=65536種不同的組合本課件是可編輯的正常PPT課件1.4數(shù)據(jù)、內(nèi)存和程序的關(guān)系本課件是可編輯的正常PPT課件數(shù)據(jù)和內(nèi)存的關(guān)系從硬盤->內(nèi)存由CPU處理數(shù)據(jù)調(diào)用過程存在內(nèi)存,斷電消失存在硬盤,永久保存數(shù)據(jù)存儲(chǔ)想一下打開word應(yīng)用程序之后,數(shù)據(jù)的調(diào)用和存儲(chǔ)是怎樣的?本課件是可編輯的正常PPT課件什么是虛擬內(nèi)存?如果內(nèi)存小,一部分?jǐn)?shù)據(jù)就要放回硬盤,用時(shí)在調(diào)入內(nèi)存硬盤的讀寫速度比內(nèi)存慢很多,反復(fù)交換數(shù)據(jù)會(huì)消耗很多時(shí)間虛擬內(nèi)存買大內(nèi)存,一般4G以上本課件是可編輯的正常PPT課件1.5計(jì)算機(jī)的編碼問題本課件是可編輯的正常PPT課件1.5.1ASCII編碼-英文的字符集怎樣將文字與二進(jìn)制對(duì)應(yīng)起來呢?字符集(CharacterSet)或者字符編碼(CharacterEncoding)字符集為每個(gè)字符分配一個(gè)唯一的編號(hào),類似于學(xué)生的學(xué)號(hào),通過編號(hào)就能夠找到對(duì)應(yīng)的字符。ASCII是“AmericanStandardCodeforInformationInterchange”的縮寫,中文是“美國(guó)信息交換標(biāo)準(zhǔn)代碼”本課件是可編輯的正常PPT課件1.5.2GB2312編碼和GBK編碼對(duì)于中國(guó)的字符,使用兩個(gè)字節(jié)存儲(chǔ),并且規(guī)定每個(gè)字節(jié)的最高位都是11、GB2312和GBK的編碼中文版Windows都將GBK作為默認(rèn)的中文編碼方案2、GBK編碼為了容納更多的字符,并且要區(qū)分兩個(gè)字節(jié)和四個(gè)字節(jié)3、GB18030編碼GB2312-->GBK-->GB18030是中文編碼的三套方案例如:字母和漢字在內(nèi)存中存儲(chǔ)的區(qū)別(1)對(duì)于字母A,它在內(nèi)存中存儲(chǔ)為
01000001;(2)對(duì)于漢字中,它在內(nèi)存中存儲(chǔ)為
11010110
11010000。用記事本程序創(chuàng)建一個(gè)txt文檔、在cmd或者控制臺(tái)程序(最常見的C語言程序)中顯示漢字、用VisualStudio創(chuàng)建的源文件等,使用的都是GBK編碼。例如:對(duì)于常用的中文字符,使用兩個(gè)字節(jié)存儲(chǔ),并且規(guī)定第一個(gè)字節(jié)的最高位是1,第二個(gè)字節(jié)的高位最多只能有一個(gè)連續(xù)的0(第二個(gè)字節(jié)的最高位可以是1也可以是0,但是當(dāng)它是0時(shí),次高位就不能是0了)對(duì)于罕見的字符,使用四個(gè)字節(jié)存儲(chǔ),并且規(guī)定第一個(gè)和第三個(gè)字節(jié)的最高位是1,第二個(gè)和第四個(gè)字節(jié)的高位必須有兩個(gè)連續(xù)的0。本課件是可編輯的正常PPT課件3、GB18030編碼例如字母A的藏文存儲(chǔ)對(duì)于藏文,A在內(nèi)存中的存儲(chǔ)為
10000001
00110010
11101111
00110000怎么判斷占用了幾個(gè)字節(jié)呢?字符處理軟件在處理文本時(shí),從左往右依次掃描每個(gè)字節(jié):如果遇到的字節(jié)的最高位是0,那么就會(huì)斷定該字符只占用了一個(gè)字節(jié);如果遇到的字節(jié)的最高位是1,那么該字符可能占用了兩個(gè)字節(jié),也可能占用了四個(gè)字節(jié),所以還要繼續(xù)往后掃描才能確定;如果第二個(gè)字節(jié)的高位有兩個(gè)連續(xù)的0,那么就會(huì)斷定該字符占用了四個(gè)字節(jié);如果第二個(gè)字節(jié)的高位沒有連續(xù)的0,那么就會(huì)斷定該字符占用了兩個(gè)字節(jié)。當(dāng)字符占用兩個(gè)或者四個(gè)字節(jié)時(shí),GB18030編碼要檢測(cè)兩次,處理效率比GB2312和GBK都低本課件是可編輯的正常PPT課件1.5.3Unicode字符集一種變長(zhǎng)的編碼方案,使用1~6個(gè)字節(jié)來存儲(chǔ)1、UTF-8一種固定長(zhǎng)度的編碼方案,不管字符編號(hào)大小,始終使用4個(gè)字節(jié)來存儲(chǔ)2、UTF-32介于UTF-8和UTF-32之間,使用2個(gè)或者4個(gè)字節(jié)來存儲(chǔ),長(zhǎng)度既固定又可變3、UTF-16Unicode也稱為統(tǒng)一碼、萬國(guó)碼,是能統(tǒng)一所有國(guó)家的字符編碼,定義了全球文字的唯一編號(hào)。需要UTF-8、UTF-16、UTF-32這幾種編碼方案將Unicode存儲(chǔ)到計(jì)算機(jī)中UTF是UnicodeTransformationFormat的縮寫,意思是“Unicode轉(zhuǎn)換格式”1.UTF-8的編碼規(guī)則是:(1)如果只有一個(gè)字節(jié),那么最高的比特位為0,這樣可以兼容ASCII;(2)如果有多個(gè)字節(jié),那么第一個(gè)字節(jié)從最高位開始,連續(xù)有幾個(gè)比特位的值為1,就使用幾個(gè)字節(jié)編碼,剩下的字節(jié)均以10開頭。具體的表現(xiàn)形式為:(1)0xxxxxxx:?jiǎn)巫止?jié)編碼形式,這和ASCII編碼完全一樣,因此UTF-8是兼容ASCII的;(2)110xxxxx10xxxxxx:雙字節(jié)編碼形式(第一個(gè)字節(jié)有兩個(gè)連續(xù)的1);(3)1110xxxx10xxxxxx10xxxxxx:三字節(jié)編碼形式(第一個(gè)字節(jié)有三個(gè)連續(xù)的1);(4)11110xxx10xxxxxx10xxxxxx10xxxxxx:四字節(jié)編碼形式(第一個(gè)字節(jié)有四個(gè)連續(xù)的1)。xxx就用來存儲(chǔ)Unicode中的字符編號(hào)本課件是可編輯的正常PPT課件1.5.3Unicode字符集2.UTF-32UTF-32是固定長(zhǎng)度的編碼,始終占用4個(gè)字節(jié),足以容納所有的Unicode字符,所以直接存儲(chǔ)Unicode編號(hào)即可,不需要任何編碼轉(zhuǎn)換。浪費(fèi)了空間,提高了效率。3.UTF-16UFT-16使用2個(gè)或者4個(gè)字節(jié)來存儲(chǔ)。對(duì)于Unicode編號(hào)范圍在0~FFFF之間的字符,UTF-16使用兩個(gè)字節(jié)存儲(chǔ),并且直接存儲(chǔ)Unicode編號(hào),不用進(jìn)行編碼轉(zhuǎn)換。對(duì)于Unicode編號(hào)范圍在10000~10FFFF之間的字符,UTF-16使用四個(gè)字節(jié)存儲(chǔ),具體來說就是:將字符編號(hào)的所有比特位分成兩部分,較高的一些比特位用一個(gè)值介于D800~DBFF之間的雙字節(jié)存儲(chǔ),較低的一些比特位(剩下的比特位)用一個(gè)值介于DC00~DFFF之間的雙字節(jié)存儲(chǔ)。4.Unicode編碼方案的比較只有UTF-8兼容ASCII,UTF-32和UTF-16都不兼容ASCII(1)
優(yōu)點(diǎn):UTF-8使用盡量少的字節(jié)來存儲(chǔ)字符,節(jié)省存儲(chǔ)空間,省流量。
缺點(diǎn):效率低,不但在存儲(chǔ)和讀取時(shí)都要經(jīng)過轉(zhuǎn)換,而且在處理字符串時(shí)也非常麻煩。字符定位(2)優(yōu)點(diǎn):UTF-32效率高缺點(diǎn):占用存儲(chǔ)空間,網(wǎng)絡(luò)傳輸時(shí)消耗流量多(3)優(yōu)點(diǎn):UTF-16平衡了存儲(chǔ)空間和處理效率的矛盾啟示:從Unicode字符集想到的(1)無論國(guó)家還是個(gè)人只有遵守統(tǒng)一的規(guī)則,才能有序地交流和發(fā)展;(2)做事情都要在遵守基本規(guī)則的基礎(chǔ)上,進(jìn)行創(chuàng)新和發(fā)展;(3)字符編碼是非常嚴(yán)謹(jǐn)?shù)墓ぷ?,一點(diǎn)差錯(cuò)會(huì)導(dǎo)致嚴(yán)重的后果,因此,我們做事要具有工匠精神,精益求精。本課件是可編輯的正常PPT課件1.5.4課堂練習(xí)題已知大寫字母A的ASCII碼是65,小寫字母a的ASCII碼是97,則用八進(jìn)制表示的字符常量'\101'是______。字符A B)字符a C)字符e D)非法的常量2.設(shè)有說明語句:chara='\72';則變量aA)包含1個(gè)字符 B)包含2個(gè)字符 C)包含3個(gè)字符 D)說明不合法【微視頻】進(jìn)制轉(zhuǎn)換及字符編碼本課件是可編輯的正常PPT課件課堂練習(xí)-進(jìn)制轉(zhuǎn)換計(jì)算29.6875(10)對(duì)應(yīng)的二進(jìn)制數(shù)
=11101.1011B觀看微視頻——十進(jìn)制轉(zhuǎn)R進(jìn)制:連除法+連乘法
本課件是可編輯的正常PPT課件課堂練習(xí)-進(jìn)制轉(zhuǎn)換計(jì)算26.3(8)對(duì)應(yīng)的十進(jìn)制數(shù)
R進(jìn)制轉(zhuǎn)十進(jìn)制2160.3-1=2*81+6*80+3*8-1=16+6+0.375=22.375=22.375本課件是可編輯的正常PPT課件謝謝觀看本課件是可編輯的正常PPT課件程序設(shè)計(jì)基礎(chǔ)——C語言程序設(shè)計(jì)
2023翻轉(zhuǎn)課堂實(shí)用教程本課件是可編輯的正常PPT課件第2章C語言初印象解剖一個(gè)程序2.1C程序設(shè)計(jì)方法2.2C語言程序的運(yùn)行過程2.3本課件是可編輯的正常PPT課件2.1解剖一個(gè)程序本課件是可編輯的正常PPT課件案例2.1.1案例2.1.1計(jì)算話費(fèi)請(qǐng)編寫計(jì)算小明第8個(gè)月話費(fèi)的程序:假定月話費(fèi)=話費(fèi)+網(wǎng)絡(luò)流量*流量費(fèi),假設(shè)小明每月的話費(fèi)是固定的29元,使用網(wǎng)絡(luò)流量的費(fèi)用是3.5元/M,如果小明第8個(gè)月使用了25.6M的流量,請(qǐng)計(jì)算出小明第8個(gè)月的總話費(fèi)(要求從鍵盤接收第8個(gè)月的流量,結(jié)果顯示在屏幕上)。案例2.1.1程序代碼:#include<stdio.h>intmain(){ //sum總話費(fèi),telbill是基礎(chǔ)話費(fèi)、traffic是第8個(gè)月使用的流量
doublesum=0,telbill=29,traffic; //從鍵盤接收第8個(gè)月流量存入變量traffic中
scanf("%lf",&traffic); sum=telbill+traffic*3.5; printf("小明第8個(gè)月總話費(fèi)=%f",sum); return0;}案例2.1.1運(yùn)行結(jié)果:25.6↙小明第8個(gè)月總話費(fèi)=121.750000本課件是可編輯的正常PPT課件案例2.1.1代碼講解#include<stdio.h>intmain(){doublesum=0,telbill=29,traffic;
scanf("%lf",&traffic);
sum=telbill+traffic*3.5;
printf("小明第8個(gè)月總話費(fèi)=%f",sum);return0;}stdio.h是程序中scanf()和printf()函數(shù)所在的頭文件每個(gè)C語言程序都需要有一個(gè)main()函數(shù)變量定義部分輸入:從鍵盤接收數(shù)據(jù)計(jì)算:根據(jù)題意計(jì)算輸出:把結(jié)果顯示在屏幕上main()函數(shù)返回值為0,此句也可以不寫本課件是可編輯的正常PPT課件(1)C程序的基本框架你需要編寫的代碼放在這里;#include<stdio.h>intmain(){
}本課件是可編輯的正常PPT課件(2)C程序的組成部分#include<stdio.h>intmain(){
}變量定義部分;輸入部分(有些程序不需要主體計(jì)算或算法實(shí)現(xiàn)部分;輸出部分;本課件是可編輯的正常PPT課件2.2C程序設(shè)計(jì)方法本課件是可編輯的正常PPT課件2.2.1問題分析PK分析以下幾個(gè)方面:四個(gè)步驟:?jiǎn)栴}分析——》算法設(shè)計(jì)——》編寫程序——》運(yùn)行調(diào)試案例2.2.1:讀入學(xué)生成績(jī),判斷是否及格(大于等于60分為及格)功能:程序需要完成哪些功能?輸入:如果程序有輸入,分析程序需要接收什么樣的數(shù)據(jù),數(shù)據(jù)類型是什么,接收多少個(gè)等等?處理:對(duì)輸入數(shù)據(jù)做什么處理?輸出:如果有輸出,輸出什么類型、數(shù)據(jù)的格式等功能:判斷成績(jī)是否及格輸入:學(xué)生成績(jī)(一個(gè)整數(shù))處理:成績(jī)大于等于60分為及格,否則為沒及格輸出:及格輸出“及格”,否則輸出“沒及格”案例2.2.1:?jiǎn)栴}分析本課件是可編輯的正常PPT課件2.2.2算法設(shè)計(jì)PK1、半結(jié)構(gòu)化語言2、結(jié)構(gòu)化圖形(流程圖)算法:設(shè)計(jì)解決問題的具體方案(步驟)。解決問題需要按照一定的步驟來完成一系列動(dòng)作,這些解決問題的步驟(動(dòng)作及動(dòng)作間的順序)稱為算法。read學(xué)生成績(jī)值if成績(jī)>=60Print“及格”elsePrint“沒及格”成績(jī)>=60?開始讀入學(xué)生成績(jī)輸出“沒及格”輸出“及格”結(jié)束NY本課件是可編輯的正常PPT課件2.2.3程序編寫2.2.4運(yùn)行調(diào)試PK程序編寫運(yùn)行調(diào)試本課件是可編輯的正常PPT課件2.2.5課堂練習(xí)課堂練習(xí)題2.4.1編寫一個(gè)顯示“我是中國(guó)人!”的簡(jiǎn)單程序。課堂練習(xí)題2.4.2編寫一個(gè)計(jì)算兩個(gè)數(shù)的和、差、乘積的程序。
要求:從鍵盤接收3個(gè)整數(shù),計(jì)算它們的和、差、乘積,把結(jié)果顯示在屏幕上。本課件是可編輯的正常PPT課件2.3C語言程序的運(yùn)行過程編輯.c文件編譯.obj文件連接.exe文件運(yùn)行程序結(jié)果1、編輯源程序:C語言源程序的錄入和修改,文件擴(kuò)展名必須為“.c”。2、編譯源程序:像翻譯一樣,將已編輯好的源程序翻譯成二進(jìn)制的目標(biāo)代碼,并產(chǎn)生以“.obj”為擴(kuò)展名的目標(biāo)程序。3、連接目標(biāo)程序:編譯后產(chǎn)生的目標(biāo)程序和庫(kù)函數(shù)進(jìn)行連接才能運(yùn)行,連接后,產(chǎn)生以“.exe”為擴(kuò)展名的可執(zhí)行程序。4、運(yùn)行:可執(zhí)行程序生成后,就可以在操作系統(tǒng)的支持下運(yùn)行,輸出結(jié)果。本課件是可編輯的正常PPT課件謝謝觀看本課件是可編輯的正常PPT課件程序設(shè)計(jì)基礎(chǔ)——C語言程序設(shè)計(jì)
2023翻轉(zhuǎn)課堂實(shí)用教程本課件是可編輯的正常PPT課件第3章變量、數(shù)據(jù)類型和表達(dá)式C語言的基本元素3.1C語言的運(yùn)算符和表達(dá)式3.33.2C語言的數(shù)據(jù)類型本課件是可編輯的正常PPT課件3.1C語言的基本元素本課件是可編輯的正常PPT課件五類元素1)關(guān)鍵字2)標(biāo)識(shí)符3)運(yùn)算符5)標(biāo)點(diǎn)符號(hào)有優(yōu)先級(jí)與漢語標(biāo)點(diǎn)符號(hào)含義一樣,如;,:等4)分隔符系統(tǒng)預(yù)定義由程序員按照命名規(guī)則自行定義的分隔符是用來分隔其他的詞法符號(hào),如空格、tab鍵等本課件是可編輯的正常PPT課件1)關(guān)鍵字分類名稱數(shù)據(jù)類型定義typedef數(shù)據(jù)類型char,double,enum,float,int,long,short,struct,union,unsigned,void,signed,volatile,auto,extern,register,static,const運(yùn)算符sizeof語句break,case,continue,default,do,else,for,goto,if,return,
switch,while基本關(guān)鍵字表(32)系統(tǒng)預(yù)定義的詞法符號(hào),有特定的含義,不允許用戶重新定義本課件是可編輯的正常PPT課件2)標(biāo)識(shí)符C語言的命名規(guī)則如下:字母(a-z,A-Z),數(shù)字(0-9),下劃線(_);開頭不能是數(shù)字;不能和系統(tǒng)的關(guān)鍵字重名。用于定義宏名、變量名、函數(shù)名和自定義類型名等注意(1)標(biāo)識(shí)符區(qū)分大小寫;(2)標(biāo)識(shí)符的有效長(zhǎng)度取決于具體的C編譯系統(tǒng);(3)標(biāo)識(shí)符的書寫一般采用具有一定實(shí)際含義的單詞,這樣可提高程序的可讀性;(4)標(biāo)識(shí)符不能與C語言的關(guān)鍵字同名,也不能與自定義函數(shù)或C語言庫(kù)函數(shù)同名。本課件是可編輯的正常PPT課件3)運(yùn)算符算術(shù)運(yùn)算符>關(guān)系運(yùn)算符>邏輯運(yùn)算符>
位運(yùn)算符>賦值運(yùn)算符>優(yōu)先級(jí)的先后順序:+,-,*,/
>
>,>=,<,<=,==,!=
>&&,||,!
>&,|,->
=,
+=,-=
>遞增遞減運(yùn)算符>地址運(yùn)算符>逗號(hào)運(yùn)算符>sizeof運(yùn)算符
++,--
>&>,
>
sizeof()本課件是可編輯的正常PPT課件4)分隔符5)標(biāo)點(diǎn)符號(hào)名稱空格符制表符換行符號(hào)注釋鍵盤上的鍵或?qū)懛崭矜ItabEnter(回車)//單行注釋/**/多行注釋分隔符標(biāo)點(diǎn)符號(hào)逗號(hào)、分號(hào)、冒號(hào)、花括號(hào)、圓括號(hào)一句話沒結(jié)束:使用逗號(hào)“,”,一句話結(jié)束:使用分號(hào)“;”{}表示包含的意思()給定較高的優(yōu)先順序如(x+y)*5,先計(jì)算小括號(hào)里的本課件是可編輯的正常PPT課件3.2C語言數(shù)據(jù)類型本課件是可編輯的正常PPT課件數(shù)據(jù)類型分類1基本類型構(gòu)造類型2指針類型3空類型4本課件是可編輯的正常PPT課件3.2.1常量PK整型常量實(shí)型常量(實(shí)數(shù)或浮點(diǎn)數(shù))(1)十進(jìn)制整數(shù):每個(gè)數(shù)字位是0~9,不能含有非十進(jìn)制數(shù);(2)八進(jìn)制整數(shù):最高位為0,每個(gè)數(shù)字位是0~7;
(3)十六進(jìn)制整數(shù):以0x或0X開頭,每個(gè)數(shù)字位可以是0~9,A~F,其中A代表10,B代表11,C代表12,D代表13,E代表14,F(xiàn)代表15.(1)十進(jìn)制數(shù)形式:必須有小數(shù)點(diǎn),如0.123、.123、123.0、0.0。(2)指數(shù)形式:e或E之前必須有數(shù)字,指數(shù)必須為整數(shù)。如12.3e3、123E2、1.23e4屬于合法的;
而e-5、1.2E-3.5屬于不合法的。在C語言中,實(shí)數(shù)只用十進(jìn)制表示本課件是可編輯的正常PPT課件3.2.1常量PK字符常量符號(hào)常量(1)字符常量只能用單引號(hào)括起來,不能用雙引號(hào)或其它括號(hào)。
如‘a(chǎn)’、‘b’、‘=’、‘+’、‘?’(2)字符常量只能是單個(gè)字符,不能是字符串。(3)字符可以是字符集中任意字符。但數(shù)字被定義為字符型之后就不能參與數(shù)值運(yùn)算。
如'5'和5是不同的。一般形式:#define標(biāo)識(shí)符常量案例3-2-1已知圓的半徑為1.5,求圓的面積。案例3-2-1運(yùn)行結(jié)果:area=7.065#include"stdio.h"#definePI3.14//符號(hào)常量
main(){ doubler,area; area=PI*r*r; printf("area=%f",area); }本課件是可編輯的正常PPT課件符號(hào)常量注意事項(xiàng)1宏定義必須以#define開頭,標(biāo)識(shí)符和常量之間不加等于號(hào),行末不加分號(hào)。宏定義#define應(yīng)該放在函數(shù)外部,這樣可以控制到程序結(jié)束。23符號(hào)常量的標(biāo)識(shí)符用大寫字母,變量標(biāo)識(shí)符用小寫字母,以示區(qū)別。本課件是可編輯的正常PPT課件為什么要定義變量數(shù)據(jù)類型表3.2.2變量定義變量就是要說明變量的數(shù)據(jù)類型,確定數(shù)據(jù)的解釋方式,讓計(jì)算機(jī)和程序員不會(huì)產(chǎn)生歧義。數(shù)據(jù)是放在內(nèi)存中的,變量是給這塊內(nèi)存起的名字說
明字符型短整型整型長(zhǎng)整型單精度浮點(diǎn)型雙精度浮點(diǎn)型無類型數(shù)據(jù)類型charshortintlongfloatdoublevoidC語言自帶的本課件是可編輯的正常PPT課件例子:變量定義基本數(shù)據(jù)類型的長(zhǎng)度表數(shù)據(jù)長(zhǎng)度inta,b,c;floatm=7.9,n=15.45charh,q='#'例如:怎樣更改變量的值?說
明字符型短整型整型長(zhǎng)整型單精度浮點(diǎn)型雙精度浮點(diǎn)型數(shù)據(jù)類型charshortintlongfloatdouble長(zhǎng)
度124448類別名稱類型名取值范圍整型[有符號(hào)]整型int-2147483648~2147483647(-231~231-1)[有符號(hào)]短整型shot[int]-32768~32767(-215~215-1)[有符號(hào)]長(zhǎng)整型long[int]-2147483648~2147483647(-231~231-1)無符號(hào)整型unsigned[int]0~4294967295(0
~232-1)無符號(hào)短整型unsignedshort[int]0~65535(0
~216-1)無符號(hào)長(zhǎng)整型unsignedlong[int]0~4294967295(0
~232-1)字符型字符型char0~255實(shí)型(浮點(diǎn)型)單精度浮點(diǎn)型float約
(10-38~1038)雙精度浮點(diǎn)型double約(10-308~10308)基本數(shù)據(jù)類型及取值范圍表本課件是可編輯的正常PPT課件(1)整型變量的分類(2)整型變量的定義1.整型變量基本型:類型說明符為int,在內(nèi)存中占4個(gè)字節(jié)。短整型:類型說明符為shortint或者short,在內(nèi)存中占2個(gè)字節(jié)。長(zhǎng)整型:類型說明符為longint或者long,在內(nèi)存中占4個(gè)字節(jié)。無符號(hào)型:類型說明符為unsigned。整型變量的定義一般形式為:
類型說明符變量1[=值1],變量2[=值2],…;例如:inta,b;//a,b為整型變量longx,y;//x,y為長(zhǎng)整型變量注意:類型說明符與變量名之間至少要有一個(gè)空格間隔在一個(gè)類型說明符后,可定義多個(gè)相同類型的變量,但變量間要用逗號(hào)間隔;最后一個(gè)變量名后必須用分號(hào)“;”結(jié)束[]內(nèi)的為可選項(xiàng),即為變量的初始化。案例3-2-2運(yùn)行結(jié)果a+b=10案例3-2-2輸出格式驗(yàn)證案例3-2-2程序代碼main(){inta,b,c;a=4;b=6;c=a+b;printf("a+b=%d\n",c);}本課件是可編輯的正常PPT課件(1)實(shí)型變量的分類(2)實(shí)型變量的定義2.實(shí)型變量單精度:類型說明符為float,在內(nèi)存中占4個(gè)字節(jié)。雙精度:類型說明符為double,在內(nèi)存中占8個(gè)字節(jié)。實(shí)型變量的定義一般形式為:
類型說明符變量1[=值1],變量2[=值2],…例如:floata,b,c;//a,b,c為單精度實(shí)型變量doublex,y,z;//x,y,z為雙精度實(shí)型變量注意:實(shí)型變量由有限的存儲(chǔ)單元組成,能提供的有效數(shù)字有限,這樣就存在舍入誤差;一個(gè)單精度實(shí)型變量只能保證7-8位有效數(shù)字,后面的數(shù)字是無意義的,并不準(zhǔn)確地表示該數(shù)。應(yīng)當(dāng)避免將一個(gè)很大的數(shù)和一個(gè)很小的數(shù)直接相加或相減,否則就會(huì)“丟失”小的數(shù)。案例3-2-3運(yùn)行結(jié)果area=19.625000案例3-2-3已知圓的半徑,求圓的面積案例3-2-3程序代碼main(){floatr=2.5,pi,area;pi=3.14;area=pi*r*r;printf("area=%f\n",area);}本課件是可編輯的正常PPT課件PK單精度實(shí)數(shù)float雙精度實(shí)數(shù)double在內(nèi)存中占用4個(gè)字節(jié)。取值范圍:約(10-38~1038)表示精度:一般7-8位有效數(shù)字2.實(shí)型變量float和double類型的區(qū)別Win10、64位、32G內(nèi)存devC++中的運(yùn)行結(jié)果為例在內(nèi)存中占用8個(gè)字節(jié)。取值范圍:約(10-308~10308)表示精度:一般15-17位有效數(shù)字較float型數(shù)據(jù),double型數(shù)據(jù)的取值范圍更大、表示精度更高!本課件是可編輯的正常PPT課件字符變量的定義3.字符變量字符變量的定義一般形式為:
類型說明符變量1[=值1],變量2[=值2],…例如:chara,b;//a,b為字符變量注意:字符變量用來存放字符常量,只能放一個(gè)字符;C語言允許對(duì)整型變量賦以字符值,也允許對(duì)字符變量賦以整型值;允許把字符變量按整型量輸出,也允許把整型量按字符量輸出。案例3-2-4運(yùn)行結(jié)果A,65B,66案例3-2-4字符變量應(yīng)用案例3-2-3程序代碼main(){inta;charm;a='A';//字符賦值給整型變量m=66;//整數(shù)賦值給字符變量printf("%c,%d\n",a,a);printf("%c,%d\n",m,m);}本課件是可編輯的正常PPT課件4.轉(zhuǎn)義字符(控制字符)字符形式
含
義
ASCII代碼值
\n換行,將當(dāng)前位置移到下一行開頭10\t水平制表(跳到下—個(gè)tab位置)9\b退格,將當(dāng)前位置移到前一列8\r回車,將當(dāng)前位置移到本行開頭13\f換頁(yè),將當(dāng)前位置移到下頁(yè)開頭12\\反斜杠字符“\”92\’單引號(hào)字符39\”雙引號(hào)字符34\ddd1到3位8進(jìn)制數(shù)所代表的字符
\xhh1到2位16進(jìn)制數(shù)所代表的字符
轉(zhuǎn)義字符及其含義本課件是可編輯的正常PPT課件(1)自動(dòng)類型轉(zhuǎn)換5.數(shù)據(jù)類型轉(zhuǎn)換1+a+1.5是合法的嗎?若參與運(yùn)算量的類型不同,則先轉(zhuǎn)換成同一類型,然后進(jìn)行運(yùn)算;轉(zhuǎn)換按數(shù)據(jù)長(zhǎng)度增加的方向進(jìn)行,以保證精度不降低。如int型和long型運(yùn)算時(shí),先把int量轉(zhuǎn)成long型后再進(jìn)行運(yùn)算;所有的浮點(diǎn)運(yùn)算都是以雙精度進(jìn)行的,即使僅含float單精度量運(yùn)算的表達(dá)式,也要先轉(zhuǎn)換成double型,再作運(yùn)算;char型和short型參與運(yùn)算時(shí),必須先轉(zhuǎn)換成int型;在賦值運(yùn)算中,兩邊的數(shù)據(jù)類型不同時(shí),賦值號(hào)右邊量的類型將轉(zhuǎn)換為左邊量的類型。轉(zhuǎn)換規(guī)則如下整型、實(shí)型、字符型可以混合運(yùn)算,為什么?例如:
假設(shè)已指定i為整型變量,f為float型變量,d為double型變量,e為long型變量,表達(dá)式為:10+'a'+i*f-d/e,則表達(dá)式的運(yùn)行次序是怎樣的?運(yùn)行次序:第一步運(yùn)行:i*f第二步運(yùn)行:d/e第三步運(yùn)行:10+'a'第四步運(yùn)行:10+'a'+i*f第五步運(yùn)行:10+'a'+i*f-d/e本課件是可編輯的正常PPT課件案例3-2-5運(yùn)行結(jié)果案例3-2-5程序代碼main(){inti=2;floatf=1.5;doubled=4.0;longe=2;printf(“i*f=%f,i轉(zhuǎn)化為float類型參與運(yùn)算\n",i*f);printf("d/e=%lf,e轉(zhuǎn)化為double類型參與運(yùn)算\n",d/e);printf("10+'a'=%d,'a'轉(zhuǎn)化為int類型參與運(yùn)算\n",10+'a');printf("10+'a'+i*f=%f,int轉(zhuǎn)化為float類型\n",10+'a'+i*f);printf("10+'a'+i*f-d/e=%lf,float轉(zhuǎn)化為double類型\n",10+'a'+i*f-d/e);}案例3-2-5自動(dòng)類型轉(zhuǎn)換i*f=3.000000,i轉(zhuǎn)化為float類型參與運(yùn)算d/e=2.000000,e轉(zhuǎn)化為double類型參與運(yùn)算10+'a'=107,'a'轉(zhuǎn)化為int類型參與運(yùn)算10+'a'+i*f=110.000000,int轉(zhuǎn)化為float類型10+'a'+i*f-d/e=108.000000,float轉(zhuǎn)化為double類型本課件是可編輯的正常PPT課件(2)強(qiáng)制類型轉(zhuǎn)換5.數(shù)據(jù)類型轉(zhuǎn)換一般形式:(類型說明符)(表達(dá)式)例如:
(double)a將變量a強(qiáng)制轉(zhuǎn)換為double類型(int)(x+y)將x+y的值強(qiáng)制轉(zhuǎn)換為int類型(float)(7%3)將7%3的值強(qiáng)制轉(zhuǎn)換為float類型(float)x/y將x強(qiáng)制轉(zhuǎn)換成float類型后,再參與運(yùn)算
注意:
表達(dá)式應(yīng)該用括號(hào)括起來。進(jìn)行強(qiáng)制類型轉(zhuǎn)換時(shí),得到的是一個(gè)所需類型的中間變量,原來變量的類型并未發(fā)生改變案例3-2-6強(qiáng)制類型轉(zhuǎn)換main(){ floatf; f=7.8; printf("(int)f=%d,f=%f\n",(int)f,f);}案例3-2-6,運(yùn)行結(jié)果(int)f=7,f=7.800000本課件是可編輯的正常PPT課件3.2.3課堂練習(xí)題1.D)default2.B)'\x43‘3.C)2.04.A)8,16,105.B)3,E6.A)構(gòu)成C程序的基本單位是函數(shù)7.C).2E0 8.B)_2Test9.D)double10.D)1113本課件是可編輯的正常PPT課件3.3C語言的運(yùn)算符和表達(dá)式本課件是可編輯的正常PPT課件1.算術(shù)運(yùn)算符分類3.3.1算術(shù)運(yùn)算符和算術(shù)表達(dá)式(1)加法“+”;(2)減法“–”,或負(fù)值運(yùn)算符;(3)乘法“
”;(4)除法“/”,如7/2=3,整除結(jié)果為整數(shù),舍去小數(shù),只取商。(5)求?!?”,或稱求余運(yùn)算符,要求兩側(cè)均為整數(shù),如9%2=1。2.算術(shù)運(yùn)算符優(yōu)先級(jí)從高到低順序:()>
、/、%>+、
–,單目運(yùn)算符的優(yōu)先級(jí)高于雙目運(yùn)算3.自增自減運(yùn)算符(1)作用:自增運(yùn)算使單個(gè)變量的值增1,自減運(yùn)算使單個(gè)變量的值減1(2)運(yùn)算規(guī)則:前置運(yùn)算:運(yùn)算符放在變量之前:++a、--a,先使變量的值增(或減)1,然后再以變化后的值參與其它運(yùn)算,即先增減、后運(yùn)算。后置運(yùn)算:運(yùn)算符放在變量之后:a++、a--,變量先參與其它運(yùn)算,然后再使變量的值增(或減)1,即先運(yùn)算、后增減。本課件是可編輯的正常PPT課件例如:3.3.1算術(shù)運(yùn)算符和算術(shù)表達(dá)式inti=3,j;j=++i; i的值先加1后變成4,再賦給j,j的值為4j=i++; 先將i的值3賦給j,j的值為3,然后i加1后
變?yōu)?注意:(1)++和--只能用于變量,而不能用于常量或表達(dá)式。如:(i+j)++或5--合法嗎?(2)++和--的結(jié)合方向是“自右至左”。如:i=4,則-i--相當(dāng)于-(i--)結(jié)果為-4,而i的值為3。(3)運(yùn)算符的組合原則是自左而右。如:a+++b等價(jià)于(a++)+b,而不是a+(++b)。(4)++和--常用于循環(huán)語句中,使循環(huán)控制變量加(或減)1,指針變量中,使指針上移(或下移)一個(gè)位置。案例3-3-1自增自減驗(yàn)證案例3-3-1程序代碼:main(){ inti=3,j; j=i++; printf("i=%d,j=%d\n",i++,j); j=++i; printf("i=%d,j=%d\n",++i,j); j=--i; printf("i=%d,j=%d\n",i--,j); j=i--; printf("i=%d,j=%d\n",--i,j);}案例3-3-1,運(yùn)行結(jié)果:i=4,j=3i=7,j=6i=6,j=6i=3,j=5本課件是可編輯的正常PPT課件例如:3.3.1算術(shù)運(yùn)算符和算術(shù)表達(dá)式a*b/c-1.5+’a’注意:4.算術(shù)表達(dá)式(1)與數(shù)學(xué)表達(dá)式的書寫形式的區(qū)別:C語言算術(shù)表達(dá)式的乘號(hào)(*)不能省略。例如:b2-4ac,應(yīng)該寫成b*b-4*a*c。C語言表達(dá)式中只能出現(xiàn)字符集允許的字符。例如:πr2應(yīng)該寫成PI*r*r。C語言算術(shù)表達(dá)式不允許有分子分母的形式。例如:(a+b)/(c+d)不等于a+b/c+d。C語言算術(shù)表達(dá)式只使用圓括號(hào)改變運(yùn)算的優(yōu)先順序(不能用{}[])。(2)各運(yùn)算符的“優(yōu)先級(jí)”和“結(jié)合性”:在表達(dá)式求值時(shí),按運(yùn)算符的優(yōu)先級(jí)高低次序執(zhí)行,如:a-b*c等價(jià)于a-(b*c)。如果優(yōu)先級(jí)別相同,則按規(guī)定的“結(jié)合方向”,如表達(dá)式:a-b+c結(jié)合性為“自左向右”,所以等價(jià)于(a-b)+c。C對(duì)于復(fù)雜表達(dá)式為了清晰起見可以加圓括號(hào)“()”強(qiáng)制規(guī)定計(jì)算順序。本課件是可編輯的正常PPT課件1.賦值運(yùn)算符3.3.2賦值運(yùn)算符和賦值表達(dá)式符號(hào):“=”為賦值運(yùn)算符作用:將賦值運(yùn)算符右邊的表達(dá)式的值賦給其左邊的變量。2.復(fù)合賦值運(yùn)算符在賦值符“=”之前加上其它二目運(yùn)算符可構(gòu)成復(fù)合賦值符如:+=,-=,*=,/=,%=,<<=,>>=,&=,^=,|=x=y=12注意:在賦值號(hào)“=”的左邊只能是變量,而不能是常量或表達(dá)式2=x?x+y=a+b?一般形式:變量
復(fù)合賦值符=表達(dá)式
變量=變量
運(yùn)算符
表達(dá)式例如:a+=5等價(jià)于a=a+5x*=y+7等價(jià)于x=x*(y+7)r%=p等價(jià)于r=r%p本課件是可編輯的正常PPT課件(1)
定義賦值表達(dá)式由賦值運(yùn)算符組成的表達(dá)式稱為賦值表達(dá)式一般形式:變量=表達(dá)式(2)功能計(jì)算表達(dá)式的值再賦予左邊的變量例如:x=5x=7%2+(y=5)a=(b=6)或a=b=6a+=a*(a=5) a+=a-=a*a如果a的初值為4,此賦值表達(dá)式的求解步驟?(1)賦值表達(dá)式加上一個(gè)分號(hào)則可構(gòu)成賦值語句,即:變量=表達(dá)式;(2)賦值語句不是表達(dá)式,表達(dá)式可以用在其它語句或表達(dá)式中,而賦值語句只能作為一個(gè)單獨(dú)的語句使用;(3)C語言規(guī)定:可以在定義變量的同時(shí)給變量賦值,也叫給變量初始化。例如:intx=5;(4)賦值運(yùn)算時(shí),當(dāng)賦值運(yùn)算符兩邊數(shù)據(jù)類型不同時(shí),系統(tǒng)自動(dòng)進(jìn)行類型轉(zhuǎn)換,轉(zhuǎn)換原則是:先將賦值號(hào)右邊表達(dá)式類型轉(zhuǎn)換為左邊變量的類型,然后賦值。注意:多個(gè),運(yùn)算次序:先右后左本課件是可編輯的正常PPT課件構(gòu)成3.3.3逗號(hào)運(yùn)算符與逗號(hào)表達(dá)式用逗號(hào)“,”運(yùn)算符,逗號(hào)運(yùn)算符又稱順序求值運(yùn)算符。
表達(dá)式一般形式:表達(dá)式1,表達(dá)式2,……,表達(dá)式n注意:(1)逗號(hào)表達(dá)式的求解過程為:先求解表達(dá)式1,再求解表達(dá)式2,依次類推。結(jié)合性自左向右。(2)表達(dá)式n的值就是整個(gè)逗號(hào)表達(dá)式的值。
(3)
逗號(hào)運(yùn)算符的優(yōu)先級(jí)是所有運(yùn)算符中最低的。案例3-3-2逗號(hào)表達(dá)式使用案例3-3-2程序代碼:main(){ inta=2,b=3,c=4,x,y; y=(x=a+b,b+c,x+c); printf("x=%d,y=%d\n",x,y);}案例3-3-2,運(yùn)行結(jié)果:x=5,y=9本課件是可編輯的正常PPT課件構(gòu)成3.3.4條件表達(dá)式條件運(yùn)算符“?:”,三目運(yùn)算符條件表達(dá)式的一般形式是:<表達(dá)式1>?<表達(dá)式2>:<表達(dá)式3>max=(a>b)?a:bif(a>b){m=a;}elsem=b;}m=(a>b)?a:b;等價(jià)于本課件是可編輯的正常PPT課件3.3.5運(yùn)算符的優(yōu)先級(jí)和結(jié)合性括號(hào)
單目運(yùn)算符
算術(shù)運(yùn)算符
關(guān)系運(yùn)算符
邏輯運(yùn)算符
三目運(yùn)算符
賦值運(yùn)算符
逗號(hào)運(yùn)算符單目:+-++--雙目:+-*/%算術(shù)運(yùn)算符中:*、/、%的優(yōu)先級(jí)比+、-高,++、--是單目運(yùn)算符;關(guān)系運(yùn)算符中:>、>=、<、<=的優(yōu)先級(jí)比==、!=高;
邏輯運(yùn)算符中:&&的優(yōu)先級(jí)比||高,!是單目運(yùn)算符()!+-
++--(類型名)sizeof* /% + -<<=>>===!=&&||?:=+=-=*=/=%=,低高運(yùn)算次序本課件是可編輯的正常PPT課件3.3.6課堂練習(xí)題(一)選擇題A)(X<=Y)&&(Y<=Z) 2,1 C)32 A)a+=a-=(b=4)*(a=3)
D)(x%=k)-(k%=5)B)2D)a*b>0A)3 C)0 B)1 (二)填空題設(shè)x和y均為int型變量,且x=1,y=2,則表達(dá)式1.0+x/y的值為【1.0】。若x為int類型,請(qǐng)以最簡(jiǎn)單的形式寫出與邏輯表達(dá)式!x等價(jià)的C語言關(guān)系表達(dá)式【(x!=0?0:1)】。表示"整數(shù)x的絕對(duì)值大于5"時(shí)值為"真"的C語言表達(dá)式是【x>5||x<-5】。語句:x++;++x;x=x+1;x=l+x;,執(zhí)行后都使變量x中的值增1,請(qǐng)寫出一條同一功能的賦值語句(不得與列舉的相同)【x+=1;】。設(shè)y是int型變量,請(qǐng)寫出判斷y為奇數(shù)的關(guān)系表達(dá)【(y%2)==1】。本課件是可編輯的正常PPT課件謝謝觀看本課件是可編輯的正常PPT課件C語言程序設(shè)計(jì)
2023翻轉(zhuǎn)課堂實(shí)用教程本課件是可編輯的正常PPT課件第4章輸入輸出函數(shù)格式化輸入函數(shù)scanf()和格式化輸出函數(shù)printf()4.1字符/字符串輸入輸出函數(shù)4.2本課件是可編輯的正常PPT課件
4.1格式化輸入函數(shù)scanf()和
格式化輸出函數(shù)printf()本課件是可編輯的正常PPT課件情形一情形二情形三從標(biāo)準(zhǔn)輸入設(shè)備(一般是鍵盤)輸入數(shù)據(jù)(包含整數(shù)、實(shí)數(shù)、字符等),并把結(jié)果輸出到終端(一般是屏幕)上從標(biāo)準(zhǔn)輸入設(shè)備輸入字符或字符串,并把結(jié)果顯示在終端上,建議使用字符輸入函數(shù)getchar()和字符串輸入函數(shù)gets()從文件中讀取數(shù)據(jù)(包含整數(shù)、實(shí)數(shù)、字符等),并把結(jié)果輸出到文件中使用格式化輸入函數(shù)scanf()和格式化輸出函數(shù)printf()使用字符輸出函數(shù)putchar()和字符串輸出函數(shù)puts()使用文件輸入函數(shù)fscanf()和文件輸出函數(shù)fprintf()選擇使用哪個(gè)函數(shù)?放到文件一章講解本課件是可編輯的正常PPT課件4.1.1格式化輸入函數(shù)scanf()scanf(格式控制字符串,變量地址列表)函數(shù)格式:函數(shù)功能:通過標(biāo)準(zhǔn)輸入設(shè)備(鍵盤、寫字板等),按照格式控制字符串中的格式要求為變量地址列表中的變量輸入數(shù)據(jù)變量地址列表串:變量地址列表由輸入項(xiàng)組成,兩個(gè)輸入項(xiàng)之間用逗號(hào)分隔,輸入項(xiàng)一般由地址符&和變量名組成,即:&變量名格式轉(zhuǎn)換說明符功能描述%d輸入一個(gè)十進(jìn)制整數(shù)%u輸入一個(gè)無符號(hào)十進(jìn)制整數(shù)%f輸入一個(gè)單精度實(shí)數(shù)%lf輸入一個(gè)雙精度實(shí)數(shù)%e,%E,%g,%G輸入一個(gè)輸入實(shí)數(shù),可以用小數(shù)形式或指數(shù)形式輸入%c輸入一個(gè)字符%s輸入一個(gè)字符串%o輸入一個(gè)八進(jìn)制整數(shù)%x,%X輸入一個(gè)十六進(jìn)制整數(shù)%*表示本輸入項(xiàng)只是讀入,但不賦給相應(yīng)變量本課件是可編輯的正常PPT課件例子例如:從鍵盤接收整數(shù)或?qū)崝?shù)inta=0,b=0,c=0;floatd=0,e=0;1、scanf("%d%d",&a,&b);//兩個(gè)%d之間無空格,輸入2個(gè)整數(shù),并賦值給變量a和b
如輸入:862、scanf("%d%d",&b,&c);//輸入兩個(gè)整數(shù)并分別賦值給b、c
如輸入:893、scanf("%dissmallerthan%d",&a,&b);//輸入兩個(gè)整數(shù),中間加入"issmallerthan"
如輸入:8issmallerthan94、scanf("%f,%f",&d,&e);//輸入兩個(gè)整數(shù),中間用逗號(hào)分隔,并分別賦值給d、e
如輸入:3.5,5.65、scanf("%f+%f",&d,&e);//輸入兩個(gè)整數(shù),中間用加好分隔,并分
別賦值給d、e
如輸入:3.5+5.6本課件是可編輯的正常PPT課件輸入函數(shù)scanf()注意(1)格式控制字符串中多個(gè)格式轉(zhuǎn)換說明符之間沒有逗號(hào),輸入數(shù)據(jù)時(shí),通常使用空格鍵或者回車鍵來分隔數(shù)據(jù);格式轉(zhuǎn)換說明符之間有逗號(hào),輸入數(shù)據(jù)時(shí),一定要用逗號(hào)來分隔數(shù)據(jù)。(2)格式轉(zhuǎn)換說明符個(gè)數(shù)和類型必須與變量地址列表一一對(duì)應(yīng)。(3)*(抑制字符):表示本輸入項(xiàng)只是讀入,但不賦給相應(yīng)變量。(4)對(duì)于scanf(),輸入數(shù)據(jù)的格式要和控制字符串的格式保持一致,但對(duì)輸入數(shù)據(jù)之間的空格的處理比較寬松,并不要求空格數(shù)嚴(yán)格對(duì)應(yīng),多幾個(gè)少幾個(gè)無所謂,只要有空格就行。本課件是可編輯的正常PPT課件*抑制字符的用法案例4-1-1*(抑制字符)的用法案例4-1-1程序代碼:main(){ inta,b; scanf("%d%*d%d",&a,&b); printf("a=%d,b=%d\n",a,b);}案例4-1-1,運(yùn)行結(jié)果:123456↙a=12,b=56第二個(gè)數(shù)對(duì)應(yīng)%*d,沒有賦值給變量例如:從鍵盤接收字符或字符串charm,n;charurl[30];//定義一個(gè)字符數(shù)組用來存儲(chǔ)字符串scanf("%c%c",&m,&n);//輸入2個(gè)字符(中間不分隔),并分別賦值給變量m和n。
輸入fk↙和fk↙,兩者結(jié)果是不一樣的。2.scanf("%s",url);//輸入一個(gè)字符串,并賦值給變量url
輸入一個(gè)不含有空格的字符串,以回車結(jié)束。若帶有空格,如Iamateacher,只會(huì)讀到"I"到url變量中。注意:1.scanf()讀取字符串時(shí)以空格、tab、換行符為分隔,遇到空格、tab、換行符就認(rèn)為當(dāng)前字符串結(jié)束了,所以無法讀取含有空格的字符串,解決辦法需要用到后面要講的gets()函數(shù)。2.一個(gè)%c只能接收一個(gè)字符,"%c%c"格式控制時(shí),在鍵盤輸入兩個(gè)連續(xù)的字符時(shí)不能有任何分隔符,否則,分隔符本身會(huì)被認(rèn)為是一個(gè)字符。本課件是可編輯的正常PPT課件4.1.2格式化輸出函數(shù)printf()printf(<格式控制字符串>,<參數(shù)列表>)例如:printf(“i=%d,c=%c\n”,i,c)函數(shù)格式:函數(shù)功能:將輸出列表中的各個(gè)表達(dá)式的值按照格式控制字符串中對(duì)應(yīng)的格式輸出到標(biāo)準(zhǔn)輸出設(shè)備(顯示屏)格式說明的一般形式:%[標(biāo)志][輸出最小寬度m][.精度n][長(zhǎng)度]類型格式字符,其中方括號(hào)[]中的項(xiàng)為可選項(xiàng):(1)類型格式字符符號(hào)作用符號(hào)作用d十進(jìn)制有符號(hào)整數(shù)X、x無符號(hào)以十六進(jìn)制表示的整數(shù)u十進(jìn)制無符號(hào)整數(shù)o無符號(hào)以八進(jìn)制表示的整數(shù)f浮點(diǎn)數(shù)e指數(shù)形式的浮點(diǎn)數(shù)c單個(gè)字符g浮點(diǎn)數(shù),選用f或e格式中輸出寬度較短的一種格式s字符串p指針的值(2)標(biāo)志標(biāo)志意義標(biāo)志意義-結(jié)果左對(duì)齊,右邊填空格0指定數(shù)字前的空格用0填補(bǔ)+輸出符號(hào)(正號(hào)和負(fù)號(hào))
#對(duì)c、s、d、u類無影響對(duì)o類,輸出是時(shí)加前綴o
空格輸出值為正值,冠以空格,為負(fù)值冠以負(fù)號(hào)對(duì)x類,輸出是時(shí)加前綴0X對(duì)e、g、f類,當(dāng)結(jié)果有小數(shù)時(shí)才給出小數(shù)點(diǎn)本課件是可編輯的正常PPT課件4.1.2格式化輸出函數(shù)printf()用十進(jìn)制整數(shù)來表示輸出的最少位數(shù)。若實(shí)際位數(shù)多于寬度,則按實(shí)際位數(shù)輸出,若實(shí)際位數(shù)少于定義的寬度則補(bǔ)以空格或0。(3)最小輸出寬度:(4)精度以“.”開頭,后跟十進(jìn)制整數(shù)若實(shí)際位數(shù)大于所定義的精度位數(shù),則截去超過的部分。(5)長(zhǎng)度長(zhǎng)度格式符為h、l兩種h表示按短整型量輸出l表示按長(zhǎng)整型量輸出注意:(1)格式轉(zhuǎn)換說明符個(gè)數(shù)和類型必須與輸出列表一一對(duì)應(yīng)
。
(2)格式控制字符串中可以有轉(zhuǎn)義字符和普通字符。轉(zhuǎn)義字符根據(jù)具體作用實(shí)現(xiàn)操作,普通字符原樣輸出。(3)修飾符m(正整數(shù)):指定輸出項(xiàng)所占的寬度,當(dāng)指定寬度小于實(shí)際寬度時(shí)按實(shí)際寬度輸出,當(dāng)指定寬度大于實(shí)際寬度時(shí)在前面用空格補(bǔ)足。(4)修飾符.n(正整數(shù)):指定輸出的實(shí)型數(shù)據(jù)的小數(shù)位數(shù)(四舍五入),系統(tǒng)默認(rèn)小數(shù)位數(shù)為6。(5)修飾符0(數(shù)字):指定數(shù)字前的空格用0填補(bǔ)。(6)修飾符-:指定輸出項(xiàng)的對(duì)齊方式,表示左對(duì)齊。本課件是可編輯的正常PPT課件案例案例4-1-2輸出類型格式符使用案例4-1-2程序代碼:main(){ floatc=12.44; inta=12,b=1234; printf("%.1f,%.2f,%.6f\n",c,c,c); printf("%4d,%4d\n",a,b); printf("%-4d,%-6d\n",a,b); printf("%04d,%06d\n",a,b);}案例4-1-2,運(yùn)行結(jié)果:12.4,12.44,12.44000012,123412,12340012,001234本課件是可編輯的正常PPT課件
4.2字符/字符串輸入輸出函數(shù)本課件是可編輯的正常PPT課件4.2.1getchar函數(shù)getchar();函數(shù)格式:函數(shù)功能:從標(biāo)準(zhǔn)輸入設(shè)備輸入一個(gè)字符注意:(1)該函數(shù)沒有參數(shù),函數(shù)的返回值是從輸入設(shè)備得到的字符。(2)從鍵盤上輸入數(shù)據(jù)通過回車鍵結(jié)束,送入緩沖區(qū),該函數(shù)從緩沖區(qū)中讀入一個(gè)字符賦給字符變量。(3)該函數(shù)也可以接收回車符。案例4-2-1無參數(shù)函數(shù)使用案例4-2-1程序代碼:main(){ charch1,ch2,ch; ch1=getchar(); ch2=getchar(); ch=getchar(); printf("ch1=%c,ch2=%c\n",ch1,ch2);printf("ch=%c\n",ch);}案例4-2-1,運(yùn)行結(jié)果輸入:x↙
y↙輸出:ch1=x,ch2=
ch=y為什么?本課件是可編輯的正常PPT課件4.2.2putchar函數(shù)putchar(ch);函數(shù)格式:函數(shù)功能:向標(biāo)準(zhǔn)輸出設(shè)備輸出一個(gè)字符注意:(1)輸出字符型變量(2)輸出字符型或者整型常量(3)輸出轉(zhuǎn)義字符案例4-2-2putchar(ch)函數(shù)使用案例4-2-2程序代碼:main(){ putchar('\n'); putchar('\007');}案例4-2-2,運(yùn)行結(jié)果字符型、整型、轉(zhuǎn)義字符換行響鈴本課件是可編輯的正常PPT課件4.2.3getche()和getch()
函數(shù)getche()沒有緩沖區(qū),輸入一個(gè)字符后會(huì)立即讀取,不用等待用戶按下回車鍵。1、getche()函數(shù)2、getch()
函數(shù)getch()沒有緩沖區(qū),輸入一個(gè)字符后會(huì)立即讀取,但它沒有回顯。3、getchar()、getche()和getch()的比較案例4-2-3getche()和getch()函數(shù)使用案例4-2-3程序代碼:#include<conio.h>main(){ charc=getch(); printf("c:%c\n",c); chard=getche(); printf("d:%c\n",d);}案例4-2-3,運(yùn)行結(jié)果函數(shù)緩沖區(qū)頭文件回顯適用平臺(tái)getchar()有stdio.h有Windows、Linux、MacOS等所有平臺(tái)getche()無conio.h有Windowsgetch()無conio.h無Windows輸入:@輸出:c:@輸入f↙輸出:fd:f沒有顯示@,而是直接輸出先顯示輸入的f,然后執(zhí)行輸出本課件是可編輯的正常PPT課件4.2.4輸入字符串gets()是專用的字符串輸入函數(shù),它擁有scanf()不具備的特性1、gets()函數(shù)2、gets()和scanf()的主要區(qū)別案例4-2-4gets()函數(shù)使用案例4-2-4程序代碼:main(){ charname[20]={0},add[20]={0}; gets(name); printf("name:%s\n",name); gets(add); printf("add:%s\n",add);}案例4-2-4,運(yùn)行結(jié)果(1)scanf()讀取字符串時(shí)以空格、tab、換行符為分隔,遇到空格、tab、換行符就認(rèn)為當(dāng)前字符串結(jié)束了,所以無法讀取含有空格的字符串。(2)gets()認(rèn)為空格也是字符串的一部分,只有遇到換行符時(shí)才認(rèn)為字符串輸入結(jié)束,所以,不管輸入了多少個(gè)空格,只要不按下回車鍵,對(duì)gets()來說就是一個(gè)完整的字符串。也就是說,gets()能讀取含有空格的字符串,而scanf()不能。xiaoming↙name:xiaomingcenter↙add:center本課件是可編輯的正常PPT課件從控制臺(tái)讀取數(shù)據(jù)函數(shù)的比較注意(1)scanf()、getchar()、gets()是標(biāo)準(zhǔn)函數(shù),適用于所有平臺(tái);getche()和getch()不是標(biāo)準(zhǔn)函數(shù),只能用于Windows。scanf()是通用的輸入函數(shù),它可以讀取多種類型的數(shù)據(jù)。(2)getchar()、getche()和getch()是專用的字符輸入函數(shù),它們?cè)诰彌_區(qū)和回顯方面與scanf()有著不同的特性,是scanf()不能替代的。(3)gets()是專用的字符串輸入函數(shù),與scanf()相比,gets()的主要優(yōu)勢(shì)是可以讀取含有空格的字符串。(4)scanf()可以一次性讀取多種類型相同或者不同的數(shù)據(jù),getchar()、getche()、getch()和gets()每次只能讀取一份特定類型的數(shù)據(jù),不能一次性讀取多份數(shù)據(jù)。本課件是可編輯的正常PPT課件4.2.5課堂練習(xí)題(一)選擇題D)當(dāng)輸入數(shù)據(jù)時(shí),必須指明變量地址,例如:scanf(“%f”,&f);B)10.0,22.0,33.0<回車>B)scanf("%d%d%d",&x,&y,&z);A)scanf("%d%d%d",&a,&b,d);D)a=4000L*10L;(二)填空題若想通過以下輸入語句使a=5.0,b=4,c=3,則輸入數(shù)據(jù)的形式應(yīng)該是【5.0,4,c=3】。intb,c;floata;scanf("%f,%d,c=%d",&a,&b,&c);2.以下程序的輸出結(jié)果是【2,1】。main(){inta=1,b=2;a=a+b;b=a-b;a=a-b;printf("%d,%d\n",a,b);}3.下列程序的輸出結(jié)果是16.00,請(qǐng)?zhí)羁?。main(){inta=9,b=2;
floatx=【6.6】,y=1.1,z;
z=a/2+b*x/y+1/2;
printf("%5.2f\n",z);
}
本課件是可編輯的正常PPT課件謝謝觀看本課件是可編輯的正常PPT課件程序設(shè)計(jì)基礎(chǔ)——C語言程序設(shè)計(jì)
2023翻轉(zhuǎn)課堂實(shí)用教程本課件是可編輯的正常PPT課件第5章分支結(jié)構(gòu)條件判斷表達(dá)式5.1多分支結(jié)構(gòu)5.45.2單分支結(jié)構(gòu)5.3雙分支結(jié)構(gòu)本課件是可編輯的正常PPT課件
5.1條件判斷表達(dá)式本課件是可編輯的正常PPT課件5.1.1關(guān)系表達(dá)式設(shè)計(jì)1、關(guān)系運(yùn)算符注意:(1)前4種關(guān)系運(yùn)算符的優(yōu)先級(jí)別相同,后兩種也相同,但前4種高于后2種。
(2)關(guān)系運(yùn)算符的優(yōu)先級(jí)低于算術(shù)運(yùn)算符。
(3)關(guān)系運(yùn)算符的優(yōu)先級(jí)高于賦值運(yùn)算符。
例如a=b>c的計(jì)算步驟:應(yīng)該先b和c進(jìn)行比較,然后再將結(jié)果賦值給a。C語言中提供6種關(guān)系運(yùn)算符:
序號(hào)關(guān)系運(yùn)算符含義1<小于2<=小于等于3>大于4>=大于等于5==等于6!=不等于優(yōu)先級(jí)低優(yōu)先級(jí)高本課件是可編輯的正常PPT課件5.1.1關(guān)系表達(dá)式設(shè)計(jì)2、關(guān)系表達(dá)式例如定義:用關(guān)系運(yùn)算符將兩個(gè)表達(dá)式(可以是算術(shù)表達(dá)式、關(guān)系表達(dá)式、邏輯表達(dá)式、賦值表達(dá)式等)連接起來的式子,稱為關(guān)系表達(dá)式。結(jié)果描述:關(guān)系表達(dá)式的值有兩個(gè)1和0;當(dāng)關(guān)系表達(dá)式成立時(shí),為真,其值為1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 商務(wù)活動(dòng)策劃的重點(diǎn)要素試題及答案
- 化學(xué)元素分類及屬性解讀試題及答案
- 2025年大學(xué)物理數(shù)理推導(dǎo)試題及答案
- 2025年大學(xué)化學(xué)考試化學(xué)與環(huán)境試題及答案
- 企業(yè)文化與價(jià)值觀考察試題及答案
- 2025年化學(xué)實(shí)驗(yàn)數(shù)據(jù)分析試題及答案
- 中國(guó)緩沖包裝材料行業(yè)市場(chǎng)發(fā)展前景及發(fā)展趨勢(shì)與投資戰(zhàn)略研究報(bào)告2025-2028版
- 2024年西安經(jīng)開第七小學(xué)招聘數(shù)學(xué)教師筆試真題
- 2024年嘉興市秀拓燃?xì)庥邢薰菊衅刚骖}
- 中國(guó)硅膠加熱片行業(yè)發(fā)展分析及投資風(fēng)險(xiǎn)預(yù)測(cè)分析報(bào)告2025-2028版
- 《影視藝術(shù)鑒賞》課件
- 動(dòng)態(tài)血糖管理-動(dòng)態(tài)血糖監(jiān)測(cè)CGM
- 屋面高空作業(yè)安全施工方案
- PE管道井房首部工程施工方案(完美格式)
- 2023年陜西省中考道德與法治試卷真題及答案詳解(精校版)
- 職業(yè)衛(wèi)生評(píng)價(jià)考試計(jì)算題匯總
- 三一掘進(jìn)機(jī)技術(shù)維修方案-新疆永寧煤業(yè)
- 全新版大學(xué)進(jìn)階英語第二冊(cè)-Unit-4-Study-Abroad
- 2023年江蘇無錫市初中學(xué)業(yè)水平考試地理試卷真題(答案詳解)
- 愚公移山英文 -中國(guó)故事英文版課件
- 標(biāo)準(zhǔn)編寫常見錯(cuò)誤
評(píng)論
0/150
提交評(píng)論