《C語(yǔ)言程序設(shè)計(jì)》講稿_第1頁(yè)
《C語(yǔ)言程序設(shè)計(jì)》講稿_第2頁(yè)
《C語(yǔ)言程序設(shè)計(jì)》講稿_第3頁(yè)
《C語(yǔ)言程序設(shè)計(jì)》講稿_第4頁(yè)
《C語(yǔ)言程序設(shè)計(jì)》講稿_第5頁(yè)
已閱讀5頁(yè),還剩49頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、00C語(yǔ)言程序設(shè)計(jì)講稿目錄第一講C語(yǔ)言概述 1第二講C語(yǔ)言程序介紹2第三講算法6第四講數(shù)據(jù)類(lèi)型(1) 17第五講數(shù)據(jù)類(lèi)型(2) 23第六講運(yùn)算符和表達(dá)式(1) 28第七講運(yùn)算符和表達(dá)式(2) 36第八講輸入輸出函數(shù)及順序結(jié)構(gòu) 38第九講選擇結(jié)構(gòu)程序設(shè)計(jì)(1) 46第十講選擇結(jié)構(gòu)程序設(shè)計(jì)(2) 56第H一講循環(huán)結(jié)構(gòu)(1) 61第十二講循環(huán)結(jié)構(gòu)(2) 68第十三講習(xí)題課72第十四講一維數(shù)組的定義和使用 79第十五講二維數(shù)組87第十六講字符數(shù)組和字符串92第十七講函數(shù)(1) 98第十八講函數(shù)(2) 106第十九講習(xí)題課&文彳牛107第二十講結(jié)構(gòu)體和共用體108第二十一講C語(yǔ)言屏幕操作函數(shù) 1

2、09第二十二講C語(yǔ)言實(shí)現(xiàn)圖形動(dòng)畫(huà)效果 11000第一講C語(yǔ)言概述學(xué)時(shí):2學(xué)時(shí)授課形式:多媒體講解+實(shí)例程序演示教學(xué)目標(biāo):對(duì)C程序有一個(gè)初步的認(rèn)識(shí);了解 C語(yǔ)言的發(fā) 展;掌握C語(yǔ)言的特點(diǎn)。主要內(nèi)容及時(shí)間安排(課堂90分鐘,80分鐘講課,10分 鐘總結(jié)):(1) C語(yǔ)言程序設(shè)計(jì)課程介紹:包括課程標(biāo)準(zhǔn)、課堂要求、 學(xué)習(xí)方法等(20分鐘);(2) 實(shí)例演示+編譯環(huán)境簡(jiǎn)介:4個(gè)實(shí)例(包括科學(xué)計(jì)算、 數(shù)據(jù)排序查找、小型應(yīng)用系統(tǒng)、圖形動(dòng)畫(huà)效果),每個(gè)實(shí)例使用 一種編譯環(huán)境,在觀看實(shí)例效果的同時(shí)簡(jiǎn)單了解 C語(yǔ)言編譯運(yùn) 行環(huán)境(20分鐘);(3) C語(yǔ)言發(fā)展簡(jiǎn)史(包括計(jì)算機(jī)語(yǔ)言的進(jìn)化、 C語(yǔ)言的 發(fā)展等)(10

3、分鐘);(4) C語(yǔ)言特點(diǎn)介紹:包括與其他語(yǔ)言相比的優(yōu)點(diǎn)、簡(jiǎn)單 介紹數(shù)據(jù)類(lèi)型、關(guān)鍵字、流控結(jié)構(gòu)等(30分鐘);(5) 總結(jié)本節(jié)課程的主要內(nèi)容,布置課后練習(xí)題。(10分 鐘);重點(diǎn):C語(yǔ)言特點(diǎn)中的數(shù)據(jù)類(lèi)型、關(guān)鍵字和流控語(yǔ)句簡(jiǎn)介教學(xué)內(nèi)容細(xì)節(jié):具體內(nèi)容參加幻燈片。第二講C語(yǔ)言程序介紹學(xué)時(shí):2學(xué)時(shí)授課形式:板書(shū)+多媒體+實(shí)例程序演示教學(xué)目標(biāo):了解C語(yǔ)言的語(yǔ)法及結(jié)構(gòu);掌握 C語(yǔ)言的編寫(xiě) 流程;熟悉C語(yǔ)言的編譯環(huán)境VC+6。主要內(nèi)容及時(shí)間安排(課堂90分鐘,80分鐘講課,5分鐘 復(fù)習(xí),5分鐘總結(jié)):(6) 以提問(wèn)的方式復(fù)習(xí)上節(jié)課的內(nèi)容(5分鐘);(7) 通過(guò)實(shí)例編寫(xiě)簡(jiǎn)單程序(先用多媒體展示第一個(gè)實(shí)例 程序

4、,要求學(xué)生了解一般 C程序的編寫(xiě)流程,然后在編譯環(huán)境 演示程序執(zhí)行過(guò)程,總結(jié) C語(yǔ)言程序的基本結(jié)構(gòu)和語(yǔ)法要求) (15分鐘);(8) 通過(guò)實(shí)例演示程序的運(yùn)算功能(先用多媒體展示編寫(xiě) 程序,一一講解給學(xué)生,要求學(xué)生具有變量需要先定義的理念, 然后在編譯環(huán)境進(jìn)行實(shí)例程序演示,掌握具有輸入函數(shù)的C語(yǔ)言程序的運(yùn)行過(guò)程)(15分鐘);(1) 通過(guò)上述實(shí)例,利用板式總結(jié)C語(yǔ)言的編寫(xiě)和編譯過(guò) 程(借助VC+6.0來(lái)展示C語(yǔ)言的編寫(xiě)和執(zhí)行過(guò)程)(10分鐘);(5) C語(yǔ)言結(jié)構(gòu)特點(diǎn)總結(jié)(C語(yǔ)言由函數(shù)構(gòu)成、書(shū)寫(xiě)格式 自由、輸入輸出由函數(shù)實(shí)現(xiàn)、語(yǔ)句結(jié)束要有分號(hào)、main函數(shù)是函數(shù)開(kāi)始和結(jié)束之處等)(20分鐘);(6

5、) C語(yǔ)言上機(jī)編譯環(huán)境介紹(主要介紹TC VC+ Rarnu_CV1.0三個(gè)編譯環(huán)境,主推 Rarnu_CV1.0編譯環(huán)境)(20分鐘);(7)總結(jié)本節(jié)課程的主要內(nèi)容并布置課后練習(xí)題 (5分鐘);重點(diǎn):C語(yǔ)言的程序結(jié)構(gòu)、C語(yǔ)言語(yǔ)法細(xì)節(jié)、C語(yǔ)言編譯過(guò) 程、C語(yǔ)言運(yùn)行環(huán)境等;難點(diǎn):C語(yǔ)言語(yǔ)法細(xì)節(jié)和程序結(jié)構(gòu)。教學(xué)內(nèi)容細(xì)節(jié):一、通過(guò)提問(wèn)的方式復(fù)習(xí)上節(jié)課程的主要內(nèi)容。二、實(shí)例演示(1)實(shí)例1-1簡(jiǎn)單輸出:#include <stdio.h> /*包含文件 */main() /*程序從函數(shù) main開(kāi)始執(zhí)行*/*在屏幕上輸出引號(hào)內(nèi)內(nèi)容*/printf("I am a programm

6、erlike C!");/*函數(shù)main結(jié)束*/程序說(shuō)明:main函數(shù)表示主函數(shù),每個(gè)程序必須有且只能有一個(gè)main函數(shù),函數(shù)體(功能語(yǔ)句)放在內(nèi)。printf是C語(yǔ)言的輸出函數(shù),它的作用是將中的內(nèi)容原樣輸出。其中“n”是換行符。以/*和*/括起來(lái)的是注釋?zhuān)绦蜻\(yùn)行期間是不執(zhí)行的只是增加程序的可讀性。400(2)實(shí)例1-2簡(jiǎn)單計(jì)算:/*求兩個(gè)數(shù)的和*/#include<stdio.h> /*main() /*int a,b,sum; /*scanf("%d,%d",&a,&b);/*量中*/sum=a+b; /*printf("

7、;sum=%d",sum); /*程序說(shuō)明:包含文件*/主函數(shù)*/定義局部變量*/輸入兩個(gè)整數(shù)值放到a、b變將ab的和送入sum中*/輸出ab的和sum*/本實(shí)例的功能是實(shí)現(xiàn)兩個(gè)數(shù)相加;scanf函數(shù)的作用是輸入兩個(gè)整數(shù);具有變量定義的C語(yǔ)言函數(shù)的書(shū)寫(xiě)順序應(yīng)該是:先寫(xiě)預(yù)處理命令,然后是函數(shù)名;然后是函數(shù)體,函數(shù)體中應(yīng)先寫(xiě)變量定義,在寫(xiě)功能語(yǔ)句。為了增加程序的可讀性應(yīng)適當(dāng)加上注釋?zhuān)蚿rintf提示三、C語(yǔ)言的編寫(xiě)流程00四、C語(yǔ)言結(jié)構(gòu)特點(diǎn)總結(jié)(1) 一個(gè)C程序可以由多個(gè)函數(shù)構(gòu)成,但是只能有一個(gè) main函數(shù),程序從 main函數(shù)開(kāi)始,然后通過(guò)函數(shù)調(diào)用完成部 分功能,最后以main函數(shù)

8、結(jié)束;(2) 主函數(shù)或子函數(shù)的函數(shù)體必須用一對(duì)括起來(lái),函數(shù) 體中主要是程序的功能語(yǔ)句,這種功能語(yǔ)句由兩部分組成:聲 明部分和執(zhí)行部分;(3) 每一條語(yǔ)句由分號(hào)結(jié)束,程序書(shū)寫(xiě)格式自由,一行可 以寫(xiě)多句,一句可以寫(xiě)多行,但分行時(shí)注意不能將字符串整體 分開(kāi);(4) C語(yǔ)言大小寫(xiě)敏感,大小寫(xiě)不能混用;一般程序語(yǔ)句 用小寫(xiě)字母,符號(hào)常量用大寫(xiě) ;程序要有適當(dāng)?shù)淖⑨屨Z(yǔ)句,提高程序的可讀性,注意注釋 語(yǔ)句不能嵌套;(5) C語(yǔ)言中的變量必須先定義后使用;(6) #include 是預(yù)處理命令,用于將 <>或” ”中包括的文件中的內(nèi)容讀到命令所在處;每個(gè)include的后面只能跟一 個(gè)文件,如果想

9、將多個(gè)文件包含到指定位置,可以通過(guò)多個(gè) include 實(shí)現(xiàn)。五、優(yōu)秀的程序員應(yīng)具備的基本素質(zhì)(7) 具有良好的編程習(xí)慣(8) 使用TAB縮進(jìn)(9) 對(duì)齊(10) 足夠的注釋(11) 合適的空行六、上機(jī)環(huán)境使用介紹重點(diǎn)介紹上機(jī)環(huán)境VC+6.0的使用方法,包括:程序編輯、 程序編譯、程序改錯(cuò)、程序保存、程序運(yùn)行等。第三講算法學(xué)時(shí):2學(xué)時(shí)授課形式:板書(shū)+多媒體講解教學(xué)目標(biāo):掌握算法的概念、掌握典型算法的設(shè)計(jì)、熟練掌握算法表示方法中程序流程圖和 N-S圖。主要內(nèi)容及時(shí)間安排(課堂90分鐘,80分鐘講課,5分鐘復(fù)習(xí),5分鐘總結(jié)):(12) 習(xí)上節(jié)課的主要知識(shí)點(diǎn)(5分鐘);(13) 法和程序的關(guān)系(5分

10、鐘);(3)算法的概念及算法優(yōu)劣比較舉例(什么是算法,連加 算法優(yōu)劣比較、算法的分類(lèi))(10分鐘);(4)簡(jiǎn)單算法舉例(設(shè)計(jì)5個(gè)例子,從易到難)(40分鐘);(5)算法的特性(有窮性、確定性、有零個(gè)或多個(gè)輸入、有一個(gè)或多個(gè)輸出、有效性)(10分鐘);(6)算法的表示方法(重點(diǎn)介紹流程圖和 N-S圖)(10分 鐘);(7)結(jié)構(gòu)化程序設(shè)計(jì)方法(簡(jiǎn)單介紹結(jié)構(gòu)化程序設(shè)計(jì)方法的基本思路)(5分鐘);(8)總結(jié)和布置課后練習(xí)題(課后題 2.4、2.5,下一節(jié) 講解數(shù)據(jù)類(lèi)型相關(guān)知識(shí))(5分鐘)重點(diǎn):算法的概念、算法的特性、設(shè)計(jì)算法的意義、算法 的表水方法難點(diǎn):算法的表示方法教學(xué)內(nèi)容細(xì)節(jié):一、以提問(wèn)的方式復(fù)習(xí)

11、上節(jié)課的主要知識(shí)點(diǎn)。二、算法和程序的關(guān)系程序=數(shù)據(jù)2構(gòu)+ 算法數(shù)據(jù)結(jié)構(gòu)一一對(duì)數(shù)據(jù)的描述;算法一一對(duì)操作的描述。簡(jiǎn)單舉例進(jìn)行說(shuō)明。三、算法概念及算法優(yōu)劣比較算法:解決問(wèn)題的步驟。不是只有數(shù)值運(yùn)算問(wèn)題才有算法, 好多非數(shù)值運(yùn)算問(wèn)題也是有算法的。數(shù)值運(yùn)算問(wèn)題的算法主要是求數(shù)值的結(jié),比如求連加和,非數(shù)值算法主要應(yīng)用在事務(wù)管理領(lǐng)域(圖書(shū)檢索、人事管理等)。在進(jìn)行數(shù)值運(yùn)算或解決非數(shù)值算法時(shí)有時(shí)需要考慮算法的優(yōu)劣,比如連加和,可以從1 一直加到100,也可以采用首尾 相加,在相乘的形式。當(dāng)然所用的步驟是不同的。對(duì)于數(shù)學(xué)中的一些常用算法,比如求絕對(duì)值,求平方根,等等經(jīng)常用到,人們就把它們寫(xiě)成程序模塊的形式,用

12、戶(hù)什么 時(shí)候需要就可以進(jìn)行調(diào)用了,非常方便,常用的數(shù)值運(yùn)算函數(shù) 都包含在math.h文件中。例3-1 :計(jì)算輸入整數(shù)的平方根,如果輸入的是負(fù)數(shù),則 先求它的絕對(duì)值,在求平方根:#include <stdio.h>#include <math.h>void main()int a;double s;printf("input the a:");scanf("%d",&a);a=fabs(a);/*如果a是負(fù)數(shù),求a的絕對(duì)值,再放到a中,fabs是求 絕對(duì)值的函數(shù),是將小括號(hào)中的數(shù)的絕對(duì)值求出來(lái)*/s=sqrt(a); /*s

13、qrt為求平方根函數(shù)*/printf("%d the sqrt=%f",a,s);四、算法舉例(將算法的各種表示方法放到算法舉例中,學(xué)生接受起來(lái)效果會(huì)好一些)介紹幾個(gè)典型算法:每一個(gè)算法都有多種描述方式,下面主要介紹自然語(yǔ)言表 不法、流程圖表不法、N-S圖表不法。流程圖的基本符號(hào)及含義:()起止框/輸入輸出框|處理框判斷框;或流程線(xiàn)連接點(diǎn)(1)計(jì)算 1*2*3*4*5自然語(yǔ)言表示法繁瑣的算法 將第二個(gè)數(shù)與第一個(gè)數(shù)相乘,得到的積與第三 個(gè)數(shù)相乘,依此方法一直乘到5。當(dāng)要進(jìn)行連乘的數(shù)比較多時(shí), 這種方法顯然不適用。改進(jìn)的算法開(kāi)辟兩個(gè)空間p和i, 一個(gè)放計(jì)算之后的積, 一個(gè)放被乘

14、數(shù),上面的算法進(jìn)行改造后如下:(S1表示第一步,S2表示第二步,依此類(lèi)推)S1: 1=>p,2=>iS2:計(jì)算p*i的積,結(jié)果仍然放在p中,即p*i=>pS3:i的值增1,即i+1=>iS4:如果i沒(méi)有超過(guò)5,則繼續(xù)執(zhí)行S2、S3、S5,否則,算法結(jié)束,11N-S圖表本法:p中的數(shù)據(jù)就是連乘積。流程圖表示法:習(xí)題:計(jì)算1+3+5+7+9的和,用流程圖和N-S圖表本此算 法。(2)有50個(gè)學(xué)生,輸出80分以上的學(xué)生學(xué)號(hào)和成績(jī)?yōu)榱吮硎痉奖悖胣表示學(xué)生學(xué)號(hào),小表示第i個(gè)學(xué)生學(xué) 號(hào),用g表示學(xué)生成績(jī),g表示第i個(gè)學(xué)生成績(jī),則算法如下:自然語(yǔ)言表不法:S1: 1=>iS2

15、:如果gi>80,則輸出ni和g,否則不輸出;00S3: i+1=>IS4:如果i<=50 ,返回至Q S2,繼續(xù)執(zhí)行S2、S3 S4;否則,ii算法結(jié)束。流程圖表示法:N-S圖表本法:習(xí)題:有50個(gè)學(xué)生,找出50個(gè)學(xué)生中分?jǐn)?shù)為90的學(xué)生學(xué) 號(hào)。用流程圖和N-S表示此算法。(3)判斷某一年份是否是閏年判斷某一年份是閏年的條件是:(1)能被4整除,但是不 能被100整除,則這一年份是閏年;(2)能被100整除,又能 被400整除的,則這一年份是閏年;其他的年份都不是閏年, 假設(shè)用一個(gè)空間y來(lái)存放被校驗(yàn)的年份,則算法描述如下:自然語(yǔ)言表不法:S1:輸入年份=>y00S2:若

16、y能被4整除,但不能被100整除,則輸出y是閏年,算法結(jié)束;否則,執(zhí)行S3;S3:若y能被100整除,也能被400整除,則輸出y是閏年,算法結(jié)束;否則,執(zhí)行S4;S4:輸出y不是閏年,算法結(jié)束。流程圖表示法:輸入年份=>y開(kāi)始Jy不能被 、4整除NYy不能被 、100整除輸出y 是閏年輸出y 是閏年y不能被400整除輸出y不是閏年輸出y不是閏年N-S圖表本法:輸入年份=>yy/40Y一 N12輸出 y不 是閏習(xí)題:輸出某一年份段內(nèi)(比如1000-3000之間,包括1000 和3000)的所有閏年。(4)求一個(gè)數(shù)列的值1-1/2+1/3-1/4+1/5+ +1/99-1/100注意數(shù)

17、列的規(guī)律,分子都是1,分母是從1開(kāi)始,每次遞增1, 一直到100,第一項(xiàng)符號(hào)位正,第二位符號(hào)位負(fù),依此規(guī) 律交替正負(fù),首先必須開(kāi)辟兩個(gè)空間,一個(gè)為sum放計(jì)算結(jié)果, 然后是i ,每次被加數(shù)的分母;其次為了表示符號(hào)位交替變化,在開(kāi)辟一個(gè)空間t存放符號(hào),如果是正號(hào)則t為1,符號(hào)t為-1。算法表示如下:自然語(yǔ)言表不法:S1: 0.0=>sum,1.0=>i;1=>t;S2: t*1/i+sum=>sumS3: -t=>t;i+1=>iS4:如果i<=100,則返回S2,繼續(xù)執(zhí)行S2、S3、S4,否則, 算法結(jié)束,sum中的值就是所求。流程圖表示法:N-S圖表

18、示法:習(xí)題:計(jì)算1, 1/2 , 2/3 , 3/5 , 5/8 , 8/13這個(gè)數(shù)列 前20項(xiàng)的和。(5)判斷一個(gè)大于3的數(shù)是不是素?cái)?shù)一個(gè)數(shù)是不是素?cái)?shù)主要看它除了 1和它本身之外不能被其 他任何整數(shù)整除,則它是素?cái)?shù),否則就不是素?cái)?shù),首先需要開(kāi) 辟一個(gè)空間n存放待判斷的數(shù),其次開(kāi)辟一個(gè)除數(shù)的空間i (i 從2開(kāi)始),利用n除以這個(gè)i,看能否整除,具體算法如下:自然語(yǔ)言表不法:S1:輸入待判斷的數(shù)=>nS2: 2=>iS4: n除以i ,得余數(shù)rS5:如果r不為0,則i+1=>i ,否則,輸出n不是素?cái)?shù), 算法結(jié)束S6:如果i<n ,則返回S4,否則,輸出n是素?cái)?shù),算法結(jié)

19、 束??紤]是否非要做到i=n-1 ,是不是可以做到i<=sqrt(n)。流程圖表示法:流程圖表示法:(改進(jìn))00N-S圖表本法:輸入待判斷數(shù)=>n0=>w,2=>in/i的余數(shù)=>rV"r=0 N1=>wi+1=>i直到i> Un或w=1w=0NN輸出n是素?cái)?shù)輸出n不是素?cái)?shù)18習(xí)題:輸出100-200之間的所有素?cái)?shù)。五、總結(jié)三種程序流程結(jié)構(gòu)(順序、選擇和循環(huán),給出圖 形表示)通過(guò)上面幾個(gè)例子,我們可以看到,算法在執(zhí)行的過(guò)程中基本只有三種模式,(1)從上到下依次執(zhí)行下來(lái),中間沒(méi)有任 何分叉,(2)在執(zhí)行過(guò)程中,根據(jù)條件成立與否產(chǎn)生了不同的

20、 操作;(3)當(dāng)某一條件成立時(shí),反復(fù)做相同的操作。這就是我們結(jié)構(gòu)化程序設(shè)計(jì)的三種基本流控結(jié)構(gòu):順序,分支和循環(huán),F面給出這三種基本流控結(jié)構(gòu)的流程圖和N-S圖表不。流程圖順序結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)六、算法的特性算法共有五個(gè)特性:有窮性、確定性、有零個(gè)或多個(gè)輸入、 有一個(gè)或多個(gè)輸出、有效性;有窮性:一個(gè)算法的步驟必須是有限的;確定性:算法中的每個(gè)步驟必須是確定的,不能是含糊不 清的,不能有歧義;輸入:算法運(yùn)行時(shí)有時(shí)需要外部輸入的信息;輸出:算法的最終目的是求解和輸出;有效性:算法的每個(gè)步驟都能有效的執(zhí)行,并得到確定的 結(jié)果。七、結(jié)構(gòu)化程序設(shè)計(jì)思想結(jié)構(gòu)化程序設(shè)計(jì)強(qiáng)調(diào)的是程序設(shè)計(jì)風(fēng)格和程序結(jié)構(gòu)的規(guī)范 化

21、,提倡清晰的結(jié)構(gòu),編程的基本要求是“清晰第一、效率第 二”。結(jié)構(gòu)化程序設(shè)計(jì)風(fēng)格需要經(jīng)過(guò)以下幾個(gè)步驟進(jìn)行:(1)自頂向下(2)逐步細(xì)化(3)模塊化設(shè)計(jì)(4)結(jié)構(gòu)化編碼(利用現(xiàn)有的流控語(yǔ)句進(jìn)行編碼設(shè)計(jì))八、總結(jié)和布置課后練習(xí)題(5分鐘)第四講數(shù)據(jù)類(lèi)型(1)學(xué)時(shí):2學(xué)時(shí)授課形式:板書(shū)+多媒體講解+實(shí)例程序演示教學(xué)目標(biāo):掌握各種數(shù)據(jù)類(lèi)型的關(guān)鍵字,掌握各種數(shù)據(jù)類(lèi) 型在計(jì)算機(jī)中所占的存儲(chǔ)空間,常量及變量的定義形式,針對(duì) 各種數(shù)據(jù)類(lèi)型printf的格式控制輸出。00主要內(nèi)容及時(shí)間安排(課堂90分鐘,80分鐘講課,5分鐘 復(fù)習(xí),5分鐘總結(jié)):(1)以提問(wèn)的方式復(fù)習(xí)上節(jié)課的主要知識(shí)點(diǎn)(5分鐘);(2) C語(yǔ)言的

22、各種數(shù)據(jù)類(lèi)型簡(jiǎn)介(基本類(lèi)型和構(gòu)造類(lèi)型,各種數(shù)據(jù)類(lèi)型的關(guān)鍵字及所占字節(jié)等)(10分鐘);(3)針對(duì)不同格式的printf輸出格式介紹及舉例(printf格式介紹,各種類(lèi)型格式控制符介紹,以例子說(shuō)明)(20分鐘);(4)常量(包括整型常量、實(shí)型常量、字符型常量、符號(hào)常量、舉例)(20分鐘)(5)整型變量的概念及舉例(整型變量的定義及舉例)(20 分鐘)(6)課堂練習(xí)(針對(duì)所講知識(shí)進(jìn)行相關(guān)習(xí)題練習(xí))(10分 鐘)(7)總結(jié)及新一講內(nèi)容提要(下一講實(shí)型變量、字符型變量、指針變量的定義和使用)(5分鐘)重點(diǎn):C語(yǔ)言各種數(shù)據(jù)類(lèi)型的關(guān)鍵字、各種類(lèi)型的常量表示法、整型變量的定義和操作等;難點(diǎn):整型變量的表示范

23、圍。教學(xué)內(nèi)容細(xì)節(jié):、C語(yǔ)言各種數(shù)據(jù)類(lèi)型介紹數(shù)據(jù)類(lèi)型J00各種數(shù)據(jù)類(lèi)型的關(guān)鍵字,及在計(jì)算機(jī)內(nèi)存中所占大?。ㄒ愿鞣N不同的編譯環(huán)境為例)類(lèi)型名關(guān)鍵字所占字節(jié)(B)TCRarnu_cVC+整型int224短整型short int222長(zhǎng)整形long int444無(wú)符號(hào)整型unsigned int224無(wú)符號(hào)長(zhǎng)整形unsigned long444無(wú)符號(hào)短整型unsigned short222單精度f(wàn)loat444雙精度double888字符型char111指針類(lèi)型*244二、以printf輸出各種數(shù)據(jù)類(lèi)型printf 基本格式說(shuō)明printf (格式控制,輸出表列);格式控制:用雙引號(hào)括起來(lái)的字符串,這

24、個(gè)字符串包括兩 部分,格式說(shuō)明和普通字符,格式說(shuō)明以%F頭。輸出表列:與格式說(shuō)明對(duì)應(yīng)的輸出表列。在格式控制符中,除了格式說(shuō)明去后邊對(duì)應(yīng)輸出表列之外 其他字符原樣原位置輸出,輸出表列為帶輸出的內(nèi)容。比如:printf(“abcd");/* 輸出 abcd 字符串*/int x=8 , y=9;printf("abcd%defg%d ,x,y);/* 輸出 abcd8efg9*/具體格式說(shuō)明符有:%d/*輸出短整型和整數(shù)*/%o/*以八進(jìn)制無(wú)符號(hào)形式輸出整數(shù)*/%誡X/*以十六進(jìn)制無(wú)符號(hào)形式輸出整數(shù)*/%u /*以無(wú)符號(hào)十進(jìn)制形式輸出整數(shù)*/比如int a=-1;printf(

25、"d,%u,%o,%x6 ,a,a,a,a);輸出內(nèi)容分別是:-1,65535,177777,ffff所以原反補(bǔ)碼的含義大家一定要清楚,對(duì)為什么出現(xiàn)這樣 的情況加以分析。對(duì)于其他的數(shù)據(jù)類(lèi)型也要采取不同的輸出格式:%f/*以單精度形式輸出實(shí)數(shù)*/%lf /*以雙精度形式輸出實(shí)數(shù)*/%c/*以字符形式輸出,只輸出一個(gè)字符*/分析:int a=65 ;char c= ' B'printf("d,%d,%c,%cn',a,c,a,c);輸出結(jié)果:65,66,A,B當(dāng)整數(shù)不超過(guò)字符型的表示范圍時(shí),整數(shù)可以以字符型的 形式輸出,輸出的是它對(duì)應(yīng)的 ASCII碼,字

26、符型也可以以整數(shù) 的形式輸出,輸出的是它 ASCII碼對(duì)應(yīng)的值。單精度或雙精度不能利用字符型或整型格式輸出,否則會(huì) 產(chǎn)生錯(cuò)誤結(jié)果(語(yǔ)法不會(huì)出錯(cuò),但結(jié)果意想不到)。三、各種數(shù)據(jù)類(lèi)型常量1.整型常量(1)十進(jìn)制整型常量(2)八進(jìn)制整型常量(以0開(kāi)頭)(3)十六進(jìn)制整型常量(以0x開(kāi)頭)(4)后綴為u和U則表示無(wú)符號(hào)整型,后綴為L(zhǎng)或l ,表 示長(zhǎng)整型。如果將一個(gè)帶符號(hào)數(shù)后邊加了 u,則將其轉(zhuǎn)化為補(bǔ) 碼按無(wú)符號(hào)數(shù)賦給相應(yīng)變量。2 .實(shí)型常量(1)十進(jìn)制小數(shù)形式(2)科學(xué)計(jì)數(shù)法:XeYe前必須有數(shù)字,e后必須為整3 .字符型常量單引號(hào)括起來(lái)的為字符常量,轉(zhuǎn)義字符也可以作為一個(gè)字4 .字符串型常量雙引號(hào)括

27、起來(lái)的為字符串常量,字符串常量系統(tǒng)默認(rèn)會(huì)在 最后加一個(gè)0 '。比較a'和"a”在內(nèi)存中的狀態(tài)。5 .符號(hào)型常量符號(hào)型常量往往是利用宏定義實(shí)現(xiàn)的,宏定義屬于預(yù)處理 范疇,與文件包含命令相同。#define X 12一般放在程序開(kāi)始,作用是定義一個(gè)符號(hào)為常量,在程序 運(yùn)行過(guò)程中不允許改變。四、整型變量的概念和舉例(1)標(biāo)示符的命名規(guī)則:由字母數(shù)字下劃線(xiàn),開(kāi)頭不能使數(shù)字。例:以下合法的用戶(hù)標(biāo)識(shí)符是()A al B 3er C _a# D if(2)各種類(lèi)型變量的定義:各種變量的定義方法為:類(lèi)型名 變量名列表;/*如果變量名多余1個(gè),用,分隔*/整型變量的定義方法:int a

28、,b;int a,b,c=12;int a=12 , b=12, c=12;不能寫(xiě)成 int a=b=c=12;可以在變量定義時(shí)給變量賦初值。第五講數(shù)據(jù)類(lèi)型(2)學(xué)時(shí):2學(xué)時(shí)授課形式:板書(shū)+多媒體講解+實(shí)例程序演示主要內(nèi)容及時(shí)間安排(課堂90分鐘,80分鐘講課,5分鐘 復(fù)習(xí),5分鐘總結(jié)):(1)以提問(wèn)的方式復(fù)習(xí)上節(jié)課的主要內(nèi)容(5分鐘);(2)實(shí)型變量(定義方法、表示范圍、使用舉例) (15分 鐘);(3)字符型變量(定義方法、表示范圍、使用舉例) (15 分鐘);(4)指針型變量(含義、定義方法、使用舉例)(15分鐘);(5)各種數(shù)據(jù)類(lèi)型間的混合運(yùn)算(類(lèi)型間的轉(zhuǎn)化、強(qiáng)制類(lèi)型轉(zhuǎn)化方法、舉例)(

29、20分鐘);(6)課堂習(xí)題(15分鐘);(7)總結(jié)及下一講知識(shí)提要(運(yùn)算符和表達(dá)式)(5分鐘)。重點(diǎn):實(shí)型變量的定義方法、表示范圍;字符型變量的定 義方法、表示范圍;指針和其他類(lèi)型變量的配合使用;數(shù)據(jù)類(lèi) 型間混合運(yùn)算時(shí)的轉(zhuǎn)化;難點(diǎn):指針和其他數(shù)據(jù)類(lèi)型的配合使用,數(shù)據(jù)間的轉(zhuǎn)化。教學(xué)內(nèi)容細(xì)節(jié):一、實(shí)型(浮點(diǎn)型)變量浮點(diǎn)型數(shù)據(jù)在計(jì)算機(jī)內(nèi)存中的存儲(chǔ)狀態(tài)分為三部分:數(shù)符、小數(shù)部分、指數(shù)部分。C語(yǔ)言的編譯環(huán)境不同,則給各個(gè)部分分配的位數(shù)不同,一般情況下,數(shù)符和小數(shù)部分分配 24位,指數(shù)部分非配8位。24位8位表示 3.14159浮點(diǎn)型變量定義的類(lèi)型包括:float、double、long double舉例

30、說(shuō)明浮點(diǎn)型數(shù)據(jù)是有誤差的:#include <stdio.h>void main()float a,b;a=123456.789e5;b=a+20;printf("%fn",b);如果將float改為double則結(jié)果不同。二、字符型變量字符型常量是以單引號(hào)括起來(lái)的單個(gè)字符。字符變量的定義使用的是關(guān)鍵字charchar a,b;a=,a,;b=97;整數(shù)和字符型可以互相賦值。一般編譯系統(tǒng)默認(rèn)字符型為 signed類(lèi)型,表示-128 127 之間的數(shù)字對(duì)應(yīng)的字符,如果想表示128-255之間的數(shù)字則字符需定義為unsigned char 。三、指針型變量指針型變量

31、往往是和其他變量的定義配合使用,表示不同 變量在內(nèi)存中的地址。指針變量定義是以*為標(biāo)識(shí)符的。比如:int *a,*b;char *c,*d;這時(shí)需要注意,在定義中出現(xiàn)的*與程序中出現(xiàn)的*是不同 的,定義時(shí)出現(xiàn)的*表示變量為指針類(lèi)型,程序中出現(xiàn)*表示取 出地址中的具體數(shù)值。*與&fe址運(yùn)算互逆。#include <stdio.h>2500void main() int *p;int c;p=&c;scanf("%d",p);printf("%d,%dn",c,*p);四、變量賦初值在前面的變量定義時(shí),有時(shí)在定義的同時(shí)就給變量賦了

32、初 值,有的是在定義好后,再利用賦值語(yǔ)句給變量賦初值,不管 利用哪種方式,都要注意兩點(diǎn):不能在定義時(shí)進(jìn)行連續(xù)賦值; 不能將不匹配的數(shù)據(jù)類(lèi)型互相賦值,否則會(huì)產(chǎn)生錯(cuò)誤。錯(cuò)誤的:int a=b=c=10;int a=3.56;正確的:int a,b,c;a=b=c=10;五、各類(lèi)數(shù)據(jù)類(lèi)型間混合運(yùn)算各種數(shù)據(jù)類(lèi)型可以進(jìn)行混合運(yùn)算,運(yùn)算結(jié)果為一種數(shù)據(jù)類(lèi) 型,具體規(guī)則如下:、doublefloatunsignedlong2600橫向的是必須轉(zhuǎn)化的,比如float型數(shù)據(jù)在進(jìn)行運(yùn)算時(shí), 其運(yùn)算記過(guò)統(tǒng)統(tǒng)要轉(zhuǎn)化為double類(lèi)型,不管參與運(yùn)算的是否有 double類(lèi)型;char或short類(lèi)型的數(shù)據(jù)在進(jìn)行運(yùn)算時(shí),結(jié)

33、果都 會(huì)轉(zhuǎn)化成int型??v向箭頭表示對(duì)象類(lèi)型不同時(shí)的轉(zhuǎn)換方向,當(dāng)參與運(yùn)算的 對(duì)象數(shù)據(jù)類(lèi)型不同時(shí),采用低級(jí)向高級(jí)轉(zhuǎn)化的規(guī)律。比如int型和long型進(jìn)行運(yùn)算時(shí),將int轉(zhuǎn)化為long類(lèi)型再進(jìn)行運(yùn)算。比如:10+' a' +1.5-8765.4321* ' b'結(jié)果為double類(lèi)型,轉(zhuǎn)化由系統(tǒng)自動(dòng)完成,無(wú)需用戶(hù)操作。如果在計(jì)算過(guò)程中不想按照上述轉(zhuǎn)化規(guī)則進(jìn)行轉(zhuǎn)化,則可以利用強(qiáng)制類(lèi)型轉(zhuǎn)換。具體方式為:(強(qiáng)制類(lèi)型名)變量或常量例如:#include <stdio.h>void main()int a;float b=3.67;a=(int)3.67;prin

34、tf("%d,%fn",a,b);六、總結(jié)及課堂練習(xí)課堂習(xí)題:3.2 , 3.3作業(yè):3.5, 3.6, 3.8第六講運(yùn)算符和表達(dá)式(1)學(xué)時(shí):2學(xué)時(shí)授課形式:板書(shū)+多媒體講解+實(shí)例程序演示主要內(nèi)容及時(shí)間安排(課堂90分鐘,80分鐘講課,5分鐘復(fù)習(xí),5分鐘總結(jié)):(1)以提問(wèn)的方式復(fù)習(xí)上節(jié)課的主要內(nèi)容(5分鐘);(2) C語(yǔ)言運(yùn)算符簡(jiǎn)介(各種運(yùn)算符作用介紹、優(yōu)先級(jí)介紹、結(jié)合性介紹)(15分鐘);(3)算術(shù)運(yùn)算符和表達(dá)式(算術(shù)運(yùn)算符的計(jì)算方法、優(yōu)先級(jí)等)(10分鐘);(4)自加自減運(yùn)算及舉例(15分鐘)(5)賦值運(yùn)算符和賦值表達(dá)式(簡(jiǎn)單賦值和符合賦值)(10分鐘)(6)逗號(hào)運(yùn)

35、算符和逗號(hào)表達(dá)式(與自加自減配合運(yùn)算)(10分鐘)(7)指針運(yùn)算符(10)(8)課堂習(xí)題(所講運(yùn)算符的使用和運(yùn)算方法)(10分鐘)(9)總結(jié)及下一節(jié)內(nèi)容提要(關(guān)系運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符、條件運(yùn)算符等)(5分鐘)重點(diǎn):C語(yǔ)言算術(shù)表達(dá)式的求值、算術(shù)運(yùn)算符的優(yōu)先級(jí)及 運(yùn)算方法、逗號(hào)運(yùn)算符的運(yùn)算方法、指針運(yùn)算符的運(yùn)算方法、 自減自加的運(yùn)算方法;難點(diǎn):自加自減運(yùn)算,各種運(yùn)算符的結(jié)合性。教學(xué)內(nèi)容細(xì)節(jié):一、C語(yǔ)言中各種運(yùn)算符1 .算術(shù)運(yùn)算符算術(shù)運(yùn)算符包括:+,-,*,/,%它們都屬于雙目運(yùn)算, 結(jié)合性自左至右。前三種運(yùn)算都很簡(jiǎn)單,對(duì)于/,如果操作數(shù)為整數(shù),則結(jié)果 也為整數(shù),運(yùn)算的操作數(shù)必須為整數(shù),其含

36、義是去兩個(gè)整數(shù)相 除的余數(shù)。2 .自加自減運(yùn)算符自加自減運(yùn)算符包括+和-,它屬于單目運(yùn)算,結(jié)合性自 右至左,操作數(shù)必須為整型的變量。3 .賦值運(yùn)算符賦值運(yùn)算符包括簡(jiǎn)單賦值運(yùn)算符=和復(fù)合的賦值運(yùn)算,復(fù)合 的賦值運(yùn)算符是其他運(yùn)算符和簡(jiǎn)單賦值運(yùn)算符組合在一起構(gòu)成 的,一般式位運(yùn)算符和算術(shù)運(yùn)算符,比如 +=, %= <<= >>=等。 它屬于雙目運(yùn)算,結(jié)合性自右至左。4 .逗號(hào)運(yùn)算符逗號(hào)運(yùn)算符,順序求值運(yùn)算,結(jié)合性自左至右。5 .位運(yùn)算符位運(yùn)算符包括 <<, >>,八,小彎彎,&, | ,按位運(yùn)算,雙目 運(yùn)算符,其中按位取反為單目運(yùn)算符(結(jié)合性自

37、右至左),雙目 位運(yùn)算結(jié)合性自左至右。6 .指針運(yùn)算符指針運(yùn)算符*,取地址運(yùn)算符&,單目運(yùn)算符,結(jié)合性自右 至左。7 .邏輯運(yùn)算符邏輯運(yùn)算符包括:!,&& | ,其中!為單目運(yùn)算符結(jié)合性 自右至左,&窗口 |為雙目運(yùn)算符結(jié)合性自左至右。8 .關(guān)系運(yùn)算符關(guān)系運(yùn)算符包括:>,<,>=,<=,=,!=, <>。結(jié)合性自 左至右,雙目運(yùn)算符。9 .條件運(yùn)算符條件運(yùn)算符;表達(dá)式?值1:值211 .分量運(yùn)算符分量運(yùn)算符:,和.,結(jié)合性為自左至右。12 .下標(biāo)運(yùn)算符下標(biāo)運(yùn)算符口,結(jié)合性自左至右。13 .求字節(jié)運(yùn)算符求字節(jié)運(yùn)算符sizeof

38、(操作數(shù)),結(jié)合性自右至左14 .強(qiáng)制類(lèi)型轉(zhuǎn)換運(yùn)算符強(qiáng)制類(lèi)型轉(zhuǎn)換:(類(lèi)型)操作數(shù),結(jié)合性自右至左。二、各種運(yùn)算符的優(yōu)先級(jí)(1)初等運(yùn)算符()、.(2)單目運(yùn)算符!、+、-、-、(類(lèi)型)、*、&、sizeof(3)算術(shù)運(yùn)算符(先乘除后加減)(4)位運(yùn)算符、(5)關(guān)系運(yùn)算符 、=、=、其中=手口!=級(jí)別低一級(jí)(6)位運(yùn)算符&、八、|、分先后(7)邏輯運(yùn)算符&& |、分先后(8)條件運(yùn)算符?:(9)賦值運(yùn)算符(10)逗號(hào)運(yùn)算符注意:在利用邏輯運(yùn)算符時(shí):|和&照具特殊性,如果前 表達(dá)式已經(jīng)可以確定整個(gè)表達(dá)式的值,則后表達(dá)式不再做。自 加+自減-運(yùn)算符,只能對(duì)整形

39、變量進(jìn)行。三、算術(shù)運(yùn)算符和算術(shù)表達(dá)式最終運(yùn)算為算術(shù)運(yùn)算的式子稱(chēng)為算術(shù)式。例:3/5,3%5,-3%5四、自加自減運(yùn)算注意:運(yùn)算對(duì)象只能是整型變量。main()int a=5;a+;printf( "d ,a);為學(xué)生描述內(nèi)存存儲(chǔ)狀態(tài)。計(jì)算:(a+)+(-a)-a+(+a) 表達(dá)式的值,a的初始值為4c五、賦值運(yùn)算1 .簡(jiǎn)單賦值運(yùn)算符二,運(yùn)算方法是將二號(hào)后的值賦給二號(hào)前的變量,二號(hào)前必須 為變量,不能給常量賦值。如:int a=5;2 .復(fù)合的賦值運(yùn)算比如:a+=5;等彳于a=a+5;前提是復(fù)合賦值運(yùn)算前的變量 必須有初值,否則無(wú)法運(yùn)算。3 .賦值運(yùn)算的規(guī)則賦值運(yùn)算符的賦值規(guī)則:(也就

40、是當(dāng)賦值運(yùn)算符前后類(lèi)型不 一致時(shí)如何賦值)(1)將浮點(diǎn)型賦給整型:舍棄小數(shù)部分。如:int i=3.56 則i的值為3。(2)將整型賦給浮點(diǎn)型:數(shù)值不變,但要以浮點(diǎn)型進(jìn)行存 儲(chǔ)。如:float a=23 ,則a為23.00000,補(bǔ)足有效位。(3)將double型賦給float型,截取其前面7位有效數(shù) 字,但要注意數(shù)值范圍不能溢出。如:float a ;double b=123.456789e100;a=b ;如果輸出a則會(huì)產(chǎn)生溢出錯(cuò)誤,因?yàn)閎超過(guò)了浮點(diǎn)型表示 范圍。如果將b改為123.456789e2,則a的值會(huì)有7個(gè)有效位是 和b完全相同的,其他位會(huì)產(chǎn)生誤差。(4)字符型賦給整型,如果將字

41、符型處理為無(wú)符號(hào)型,則 將字符型放到整型的低8位,高八位為0;如果將字符型處理 為有符號(hào)型,則字符型放到整型的低 8位,高位所補(bǔ)的是0還 是1,要看低八位的最高位,所補(bǔ)的為最高位的值。TC和維普C是把字符型當(dāng)做有符號(hào)數(shù)來(lái)處理的。比如main()int a;unsigned char c='376'a=c;printf("%d",a);輸出為254,如果去掉unsigned則輸出為為。(5)將帶符號(hào)int賦給long ,進(jìn)行符號(hào)為擴(kuò)展放到高十 六位,低十六位為int數(shù)據(jù);long型賦給int型時(shí),只將long 的低十六位放在int型中。(6)int、short

42、、long賦給char型只是將低八位賦給 char空間。(7)將unsigned int送到long int中,不存在符號(hào)擴(kuò)展,高位都補(bǔ)0。將unsigned類(lèi)型數(shù)據(jù)賦給一個(gè)占字節(jié)相同的數(shù)據(jù) 則直接將unsigned數(shù)據(jù)放到相應(yīng)類(lèi)型中即可,只不過(guò)超過(guò)表示 范圍會(huì)出現(xiàn)數(shù)據(jù)錯(cuò)誤。例如:main()unsigned int a=65535;int b;b=a;printf("%d",b);這時(shí)b=-1。(8)將signed數(shù)據(jù)賦給長(zhǎng)度相同的unsigned數(shù)據(jù)也是原 樣賦過(guò)去,只不過(guò)如果是負(fù)數(shù),是將其補(bǔ)碼作為一個(gè)無(wú)符號(hào)數(shù) 來(lái)處理。main()unsigned int a;int

43、b=-1;a=b;printf("%u",a);這時(shí) a=65535。各種賦值形式雖然看起來(lái)復(fù)雜,但是都是它們都是:按存儲(chǔ)單元中的存儲(chǔ)形式直接傳送。要求學(xué)生必須對(duì)補(bǔ)碼只是熟練 掌握。六、逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式逗號(hào)運(yùn)算符的運(yùn)算規(guī)則是自左至右。整個(gè)表達(dá)式的值是逗號(hào)表達(dá)式最后一個(gè)表達(dá)式的值。例如:int a , b, c;a=b=5;c=(a+3,b+a,a=a+b,b+a)c輸出的值應(yīng)該為15。例如:a=3*4, a+5;要注意賦值運(yùn)算符的優(yōu)先級(jí)高于逗號(hào)運(yùn)算符,所以先算a=3*4,在算a+5。所以整個(gè)表達(dá)式為逗號(hào)表達(dá)式,值為60。注意:printf和scanf中出現(xiàn)的逗號(hào)是作為

44、分隔參數(shù)用的, 并不是逗號(hào)表達(dá)式。七、指針運(yùn)算指針運(yùn)算符的作用是取指針地址中對(duì)應(yīng)的具體數(shù)值,它與取地址符為互逆運(yùn)算。例:int *p,a;a=5;p=&a;則*p的值為5。這個(gè)思想我們?cè)谇懊娴木毩?xí)中也給大家說(shuō)八、強(qiáng)制類(lèi)型轉(zhuǎn)換和測(cè)字節(jié)函數(shù)這兩個(gè)運(yùn)算我們?cè)谇懊嬷v過(guò),這里就不再說(shuō)了九、總結(jié)及課堂練習(xí)教材 3.9 , 3.10作業(yè):3.11 , 3.12。第七講運(yùn)算符和表達(dá)式(2)學(xué)時(shí):2學(xué)時(shí)授課形式:板書(shū)+多媒體講解+實(shí)例程序演示主要內(nèi)容及時(shí)間安排(課堂90分鐘,80分鐘講課,5分鐘 復(fù)習(xí),5分鐘總結(jié)):(1)復(fù)習(xí)上節(jié)課的主要知識(shí)點(diǎn)(5分鐘);(2)關(guān)系運(yùn)算符和關(guān)系表達(dá)式(15分鐘);(3)

45、邏輯運(yùn)算符和邏輯表達(dá)式(20分鐘);(4)位運(yùn)算符(20分鐘);(5)課堂練習(xí)(30分鐘)。重點(diǎn):關(guān)系運(yùn)算符,邏輯運(yùn)算符,位運(yùn)算符的操作方法。難點(diǎn):各種運(yùn)算符的混合運(yùn)算,需要考慮算符的優(yōu)先級(jí)和結(jié)合性等因素。教學(xué)內(nèi)容細(xì)節(jié):一、關(guān)系運(yùn)算符和關(guān)系表達(dá)式關(guān)系運(yùn)算符表示的是前后兩個(gè)表達(dá)式的關(guān)系,表達(dá)式的值 為邏輯值“真”或“假”,如果關(guān)系正確則表達(dá)式的值為“真”, 否則為"假"由于C語(yǔ)言不提供邏輯類(lèi)型值,所以如果表達(dá)式的值為“真”,則用1表示,表達(dá)式的值為“假”則用 0表示。例:int a=3,b=4,c=5;則c!=a>b的值為1。二、邏輯運(yùn)算符和邏輯表達(dá)式邏輯運(yùn)算符表示兩個(gè)

46、操作數(shù)的邏輯關(guān)系,邏輯運(yùn)算的結(jié)果!a&&b|x>y&& (c+),運(yùn)算級(jí)別!最高,然后是算術(shù),然后是關(guān)系、然后是邏輯、然后是賦值;a=1,b=0,c=3,x=7,y=10;則表達(dá)式的值為0, c的值為3。注意:&解叩 的運(yùn)算規(guī)則。三、位運(yùn)算符和表達(dá)式位運(yùn)算符的前提示首先將數(shù)據(jù)轉(zhuǎn)化為二進(jìn)制在進(jìn)行相應(yīng)的 操作。運(yùn)算符含義運(yùn)算符含義&按位與取反|按位或<<左移八按位異或>>右移例如:64<<1;左移1位相當(dāng)于乘以2,所以一些C語(yǔ)言系統(tǒng)將2n 處理為左移n位。如果a的值為八進(jìn)制113755,則a:10010111

47、1101101a>>1: 010010111110110 (邏輯右移)a>>1: 110010111110110 (算術(shù)右移)四、條件運(yùn)算符例如:int a=5,b=3;a>b?a:b;五、總結(jié)及課堂練習(xí)1、教材:1、2、3、4、52、自設(shè)題目:a=45;求2©>>2©<<2;a&0000000011111111;a|0000000011111111第八講輸入輸由函數(shù)及順序結(jié)構(gòu)學(xué)時(shí):2學(xué)時(shí)授課形式:板書(shū)+多媒體講解+實(shí)例程序演示3800主要內(nèi)容及時(shí)間安排(課堂90分鐘,80分鐘講課,5分鐘 復(fù)習(xí),5分鐘總結(jié)):(

48、1) C語(yǔ)言的基本語(yǔ)句(分為五類(lèi):表達(dá)式語(yǔ)句、函數(shù)調(diào) 用語(yǔ)句、控制語(yǔ)句、復(fù)合語(yǔ)句、空語(yǔ)句,各種語(yǔ)句舉例,賦值 語(yǔ)句的使用)(10分鐘)(2) 常用輸入函數(shù)介紹(5分鐘);(3) scanf函數(shù)的使用方法(包括各種格式的輸入、顯性 分隔符和隱形分隔符的使用、舉例)(20分鐘);(4) getchar函數(shù)的使用方法(getchar的使用、字符輸 入與scanf的區(qū)別)(10分鐘)(5) printf 使用方法復(fù)習(xí)(10分鐘)(6) putchar輸入函數(shù)的使用(5分鐘)(7) 程序舉例(10分鐘)(8) 課堂練習(xí)(15分鐘)(9)總結(jié)及下一節(jié)內(nèi)容提要(5分鐘)重點(diǎn):C語(yǔ)言各種輸入輸出函數(shù)的使用難點(diǎn)

49、:scanf函數(shù)隱形分隔符和顯性分隔符的使用教學(xué)內(nèi)容細(xì)節(jié):一、C語(yǔ)言的基本語(yǔ)句1、語(yǔ)句的概念C語(yǔ)言中的語(yǔ)句是以分號(hào)結(jié)束的,以分號(hào)結(jié)束的就可以稱(chēng) 為語(yǔ)句,它用來(lái)想計(jì)算機(jī)發(fā)出指令。003、各種基本語(yǔ)句(1)流控語(yǔ)句if ()- else條件語(yǔ)句for () 循環(huán)語(yǔ)句while() 循環(huán)語(yǔ)句dowhile()循環(huán)語(yǔ)句continue結(jié)束本次循環(huán)進(jìn)入下一次循環(huán)break終止所在循環(huán)或switch結(jié)構(gòu)switch() case 多分支選擇語(yǔ)句goto轉(zhuǎn)向語(yǔ)句return從函數(shù)返回語(yǔ)句(2)函數(shù)調(diào)用語(yǔ)句printf("d,%d ,a,b);c=max(a,b);(3)表達(dá)式語(yǔ)句a=3;a=c+b

50、;(4)空語(yǔ)句5(5)復(fù)合語(yǔ)句大括號(hào)括起來(lái)的語(yǔ)句組:z=x+y ;t=z/100;printf( "d,%d ,z,t);二、常用輸入函數(shù)介紹(1) scanf函數(shù)的使用方法(包括各種格式的輸入、顯性分隔符和隱形分隔符的使用、舉例)scanf( “格式說(shuō)明”,輸入表列);注意:格式說(shuō)明由格式說(shuō)明符和分隔符兩部分組成,輸入表列是由逗號(hào)分開(kāi)的變量地址列表。如:scanf ("a=%d,b=%d ,&a,&b);在運(yùn)行時(shí),為了讓ab得到正確的值,則應(yīng)輸入a=12,b=15回車(chē);這里a=,b=均為顯性分隔符,在輸入時(shí)除了格式控制符對(duì)應(yīng)變量類(lèi)型外,其他的顯性分隔符原樣

51、輸入。又如:scanf( "d%d ,&a,&b);在運(yùn)行時(shí),為了讓ab得到正確的賦值,則應(yīng)輸入12空格/tab/回車(chē)13回車(chē);這里空格、tab和回車(chē)都屬于隱形分隔符,當(dāng)兩個(gè)格式控 制符連在一起沒(méi)有任何分隔符時(shí),在輸入變量值時(shí)應(yīng)該用隱形分隔符格式控制符表如下:格式控制符含義%d %i帶符號(hào)十進(jìn)制整數(shù)%u無(wú)符號(hào)十進(jìn)制整數(shù)%o八進(jìn)制無(wú)符號(hào)整數(shù)%x %X十六進(jìn)制無(wú)符號(hào)整數(shù)%c字符型%s字符串型%f, %lf單精度、雙精度小數(shù)%e %e指數(shù)形式浮點(diǎn)型數(shù)據(jù)%g %G選用f或6中寬度較小的一種進(jìn)行輸出,不輸出無(wú)意義的0,用G時(shí)以指數(shù)形式輸出的E大寫(xiě)(2) getchar函數(shù)的使用

52、方法(getchar的使用、字符輸入與scanf的區(qū)別)(10分鐘)getchar ()函數(shù)的使用僅限于輸入字符型數(shù)據(jù),它與scanf利用碗入字符型時(shí)應(yīng)注意:%何以接收隱形分隔符,所以在使用時(shí)應(yīng)注意;getchar ()也可以接收所有字符型,包括隱形分隔符;例:#include <stdio.h>main()int a,b;char c,d;scanf("%d%d%c",&a,&b,&c);d=getchar();printf("%d,%d,%c,%cabc",a,b,c,d);如果想給a賦12, b賦13, c符字符

53、a, d賦字符b,在輸 入時(shí),如果輸入12回車(chē)13回車(chē)a,則編譯系統(tǒng)不會(huì)再讓你輸 入,因?yàn)檫@是它會(huì)將回車(chē)賦給c,將a賦給d。如果想得到正確 的賦值則在輸入時(shí)應(yīng)輸入12隱形分隔符13ab即可,系統(tǒng)會(huì)根 據(jù)數(shù)據(jù)類(lèi)型自動(dòng)將13和字符型分開(kāi),同時(shí)將a賦給c, b賦給 do三、輸出函數(shù)回顧及拓展(1) printf 使用方法復(fù)習(xí)printf我們?cè)谇懊鎽?yīng)經(jīng)講過(guò),在此我們做一下功能拓展。如果想輸出指定寬度的數(shù)據(jù)如何在格式控制符中加以控 制,比如,想輸出小數(shù),小數(shù)點(diǎn)后只保留兩位,怎么設(shè)計(jì)?解決:利用 %m.nf、%m.nlf,%-m.nf,%-m.nlf ,其中 m表示 具體的小數(shù)寬度小數(shù)點(diǎn)也算一位,n表示小數(shù)點(diǎn)后位數(shù);如果 小數(shù)的位數(shù)超過(guò)m則m失效,以正常的寬度輸出浮點(diǎn)數(shù),n在 進(jìn)行舍入時(shí)采取四舍五入;如果小數(shù)位數(shù)小于m則左補(bǔ)空格(右 對(duì)齊),如果m前有負(fù)號(hào)則右補(bǔ)空格(左對(duì)齊)。m,n的設(shè)計(jì)在d和%s中也使用,在整數(shù)中只使用 m在5 中使用m和n, m表示為字符串開(kāi)辟的輸出區(qū)寬度, 這個(gè)寬度也 要大于字符串長(zhǎng)度,否則 m失效,n表示截取的字符串字符個(gè)

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論