《中等職業(yè)技術(shù)學(xué)校c語(yǔ)言電子教案.doc》由會(huì)員分享,可在線(xiàn)閱讀,更多相關(guān)《中等職業(yè)技術(shù)學(xué)校c語(yǔ)言電子教案.doc(63頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
______________________________________________________________________________________________________________
中等職業(yè)技術(shù)學(xué)校教案
?
?
????
教學(xué)單位:?京山縣中等職業(yè)技術(shù)學(xué)校
課程名稱(chēng):?C語(yǔ)言學(xué)習(xí)與應(yīng)用
任課班級(jí): 計(jì)算機(jī)應(yīng)用班
任課教師:?
教案書(shū)寫(xiě)說(shuō)明
教案又稱(chēng)課時(shí)授課計(jì)劃,是任課教師的教學(xué)實(shí)施方案。任課教師應(yīng)遵循專(zhuān)業(yè)教學(xué)計(jì)劃制訂的培養(yǎng)目標(biāo),以教學(xué)大綱為依據(jù)、教材為藍(lán)本,在熟悉教材,了解學(xué)生的基礎(chǔ)上,結(jié)合教學(xué)實(shí)踐經(jīng)驗(yàn),提前編寫(xiě)設(shè)計(jì)好每堂課的全部教學(xué)活動(dòng)。教案書(shū)寫(xiě)應(yīng)包括以下內(nèi)容:
⒈ 課題:授課題(章節(jié))名。
⒉ 課型:分理論講授課、實(shí)驗(yàn)(實(shí)訓(xùn))課、實(shí)習(xí)(見(jiàn)習(xí))課等。講授課又分新授課或復(fù)習(xí)課。
⒊ 教學(xué)目的:本課題教學(xué)應(yīng)達(dá)到的目的。
⒋ 教學(xué)重點(diǎn):本課題(章節(jié))的教學(xué)重點(diǎn)分別列出。
⒌ 教學(xué)難點(diǎn):本課題(章節(jié))的教學(xué)難點(diǎn)分別列出。
⒍ 教學(xué)方法:指本課題使用的教學(xué)方法和手段。
⒎ 課時(shí)安排:本課題(章節(jié))總計(jì)劃課時(shí)數(shù)。
⒏ 教學(xué)內(nèi)容:本課題(章節(jié))主要內(nèi)容。
⒐ 作業(yè)及實(shí)踐:包括思考題、討論題、實(shí)驗(yàn)題目、實(shí)訓(xùn)題目等。
⒑ 教學(xué)后記:授課結(jié)束后的教學(xué)小結(jié)、心得體會(huì)等。
京山縣中等職業(yè)技術(shù)學(xué)校備課用紙
授課年級(jí)
技能
授課班級(jí)
計(jì)算機(jī)應(yīng)用
授課日期
授課節(jié)次
教學(xué)課題
C語(yǔ)言概述
教 學(xué)
目 標(biāo)
了解C語(yǔ)言出現(xiàn)的歷史背景
正確理解C語(yǔ)言特點(diǎn)
熟悉簡(jiǎn)單C程序結(jié)構(gòu)、特點(diǎn)、執(zhí)行過(guò)程
掌握運(yùn)行C程序步驟與方法
重 點(diǎn)
難 點(diǎn)
正確理解C語(yǔ)言特點(diǎn)
熟悉簡(jiǎn)單C程序結(jié)構(gòu)、特點(diǎn)、執(zhí)行過(guò)程
教 學(xué) 資
源 準(zhǔn) 備
教案、實(shí)例
教 學(xué) 活 動(dòng) 流 程 設(shè) 計(jì)
旁 注
第1章 C語(yǔ)言概述
§1.1 C語(yǔ)言出現(xiàn)的歷史背景
1、 程序設(shè)計(jì)語(yǔ)言的發(fā)展
(1) 機(jī)器語(yǔ)言:計(jì)算機(jī)能直接識(shí)別的語(yǔ)言。
(2) 匯編語(yǔ)言:助記符編寫(xiě)的語(yǔ)言。
(3) 高級(jí)語(yǔ)言:面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言(如VB程序設(shè)計(jì)語(yǔ)言、JAVA程序設(shè)計(jì)語(yǔ)言)和面向過(guò)程程序設(shè)計(jì)語(yǔ)言。
2、C語(yǔ)言出現(xiàn)歷史背景
(1)時(shí)間:1972 –1973
(2)地點(diǎn):美國(guó)貝爾實(shí)驗(yàn)室
(3)目的:開(kāi)發(fā)UNIX操作系統(tǒng)
§1.2 C語(yǔ)言特點(diǎn)
1、 語(yǔ)言簡(jiǎn)潔、緊湊、靈活
2、 運(yùn)算符和數(shù)據(jù)類(lèi)型豐富
3、 程序設(shè)計(jì)結(jié)構(gòu)化、模塊化
4、 生成目標(biāo)代碼質(zhì)量高
5、 可移植性好
§1.3 簡(jiǎn)單C程序介紹
例1.1 第一個(gè)程序 Hello,World!
教 學(xué) 活 動(dòng) 流 程 設(shè) 計(jì)
旁 注
#include
main()
{
printf(“Hello,World!”);
}
說(shuō)明:
1、#include 是文件包含編譯預(yù)處理命令, stdio.h是標(biāo)準(zhǔn)輸入輸出頭文件
1、 main為主函數(shù),每個(gè)C程序有且必須有一個(gè)主函數(shù),無(wú)論其位置在哪,程序總是從main函數(shù)開(kāi)始執(zhí)行
2、 printf是C語(yǔ)言中的輸出函數(shù),雙引號(hào)中的字符串原樣輸出
3、 ;分號(hào)是C語(yǔ)言中的語(yǔ)句結(jié)束標(biāo)志
例1.2 求兩數(shù)之和
#include
main()
{
int a, b,sum; /* Definate three variables*/
a=123;
b=456;
sum=a+b;
printf(“Sum is %d”,sum);
}
說(shuō)明:
1、%d是輸出格式字符,控制輸出時(shí)的數(shù)據(jù)類(lèi)型和格式,表示十進(jìn)制整數(shù)
2、/* */為注釋
例1.3 求任意兩數(shù)之和
#include
main()
{ int a,b,sum;
scanf(“%d,%d”,&a,&b);
sum=add(a,b);
printf(“Sum= %d”,sum);
}
int add(int x, int y)
{ int z;
z=x+y;
return(z);
}
說(shuō)明:
1、scanf是C語(yǔ)言中的輸入函數(shù),從鍵盤(pán)讀入兩個(gè)十進(jìn)制整數(shù),分別放入變量a和b對(duì)應(yīng)的
地址單元中
2、調(diào)用函數(shù)add,定義函數(shù)add,函數(shù)返回值為整型,形參x和y為整型
3、return將z值返回,賦給sum
C語(yǔ)言的格式特點(diǎn):
v 習(xí)慣用小寫(xiě)字母,大小寫(xiě)敏感
v 不使用行號(hào),無(wú)程序行概念
v 可使用空行和空格
結(jié)構(gòu)特點(diǎn):
? C程序由函數(shù)構(gòu)成
? C程序由語(yǔ)句組成
? /* */為注釋?zhuān)划a(chǎn)生編譯代碼
教 學(xué) 活 動(dòng) 流 程 設(shè) 計(jì)
旁 注
§ 1.4 C程序的上機(jī)步驟
1、 C程序開(kāi)發(fā)步驟
(1) 編輯源程序:擴(kuò)展名為.c
(2) 編譯目標(biāo)程序:擴(kuò)展名為.obj
(3) 連接成可執(zhí)行程序:擴(kuò)展名為.exe
2、VC++6.0集成開(kāi)發(fā)環(huán)境的使用方法
(1)啟動(dòng)VC++6.0,建立一工作區(qū)
(2)在此工作區(qū)中建立一工程
(3)在此工程中建立一文件(注意擴(kuò)展名為.c)編輯后執(zhí)行程序
作業(yè)
1、簡(jiǎn)述C程序的特點(diǎn);
2、編寫(xiě)一個(gè)簡(jiǎn)單的C程序,在屏幕上顯示“I Study C Programming”
板
書(shū)
設(shè)
計(jì)
第一章 C語(yǔ)言設(shè)計(jì)概述
1、 C語(yǔ)言的歷史背景
2、 C語(yǔ)言的特點(diǎn)
3、 簡(jiǎn)單C程序介紹
4、 C程序的組成
5、 C程序的上機(jī)步驟
6、 作業(yè)
教
學(xué)
后
記
京山縣中等職業(yè)技術(shù)學(xué)校備課用紙
授課年級(jí)
技能
授課班級(jí)
計(jì)算機(jī)應(yīng)用
授課日期
授課節(jié)次
教學(xué)課題
算法1
教 學(xué)
目 標(biāo)
算法的表示形式-----流程圖
C中數(shù)據(jù)類(lèi)型的分類(lèi)
常量與變量
整型數(shù)據(jù)表示方法、存儲(chǔ)形式、分類(lèi)
重 點(diǎn)
難 點(diǎn)
整型數(shù)據(jù)在內(nèi)存中的存放形式
如何解決整數(shù)的溢出問(wèn)題
教 學(xué) 資
源 準(zhǔn) 備
教案、實(shí)例
教 學(xué) 活 動(dòng) 流 程 設(shè) 計(jì)
旁 注
算法的概念
1、 算法:為解決一個(gè)問(wèn)題而采取的方法和步驟。
2、 程序=算法+數(shù)據(jù)結(jié)構(gòu)
3、 算法是程序的靈魂
簡(jiǎn)單算法舉例
1、求 1×2 ×3 ×4 ×5
§2.3算法的特性
1)有窮性
2)確定性
3)有0個(gè)或多個(gè)輸入
4)有一個(gè)或多個(gè)輸出
5)有效性
怎樣表示一個(gè)算法
一、算法的表示形式
1、用自然語(yǔ)言表示
2、用流程圖表示
3、用偽代碼表示
4、用計(jì)算機(jī)語(yǔ)言表示
二、流程圖:傳統(tǒng)流程圖、N-S流程圖
1、傳統(tǒng)流程圖的表示方法
2、三種基本結(jié)構(gòu)傳統(tǒng)流程圖與N-S流程圖
教 學(xué) 活 動(dòng) 流 程 設(shè) 計(jì)
旁 注
一、數(shù)據(jù)與數(shù)據(jù)類(lèi)型
1、數(shù)據(jù):程序加工處理的對(duì)象。
2、數(shù)據(jù)類(lèi)型:具有某種性質(zhì)數(shù)據(jù)的集合。
二、C中數(shù)據(jù)類(lèi)型
整型
字符型 單精度型
基本類(lèi)型 浮點(diǎn)型 雙精度型
枚舉型
數(shù)組
C中數(shù)據(jù)類(lèi)型 構(gòu)造類(lèi)型 結(jié)構(gòu)體
共用體
指針類(lèi)型
空類(lèi)型
常量與變量
一、常量
1、定義:在程序運(yùn)行過(guò)程中其值保持不變的量。
2、常量類(lèi)型
? 數(shù)值型 整型(123)、實(shí)型(12.3)
? 字符型 字符型(‘a(chǎn)’)、字符串型(“a”)
? 符號(hào)常量:#define PAI 3.1415926
二、變量
1、定義:在程序運(yùn)行過(guò)程中其值可以改變的量。
2、變量在內(nèi)存中存放形式:一個(gè)變量有一個(gè)名字,并在內(nèi)存中占一定的存儲(chǔ)單元,用來(lái)存放變量的值。
4、變量的定義格式(變量必須先定義后使用)
類(lèi)型說(shuō)明符 變量名1,變量名2,………..,變量名n;
例:int a,b,c;
3整型數(shù)據(jù)
一、整型常量的表示方法
1、十進(jìn)制:123
2、八進(jìn)制:0123=(123)8
3、十六進(jìn)制:0x123=(123)16
二、 整型變量
1、整型數(shù)據(jù)在內(nèi)存中的存放形式
? 在內(nèi)存中以二進(jìn)制補(bǔ)碼的形式存放,占用2個(gè)字節(jié)的內(nèi)存空間
? 數(shù)的編碼:原碼、反碼、補(bǔ)碼
原碼:數(shù)的二進(jìn)制編碼。
反碼:正數(shù)等于原碼,負(fù)數(shù)將原碼逐位變反(符號(hào)位為1)
補(bǔ)碼:正數(shù)等于原碼,負(fù)數(shù)將原碼變反末位加1。
2、整型變量分類(lèi)
基本型:無(wú)符號(hào)unsigned int、有符號(hào)int
短整型:無(wú)符號(hào)unsigned short int、有符號(hào)short int
長(zhǎng)整型:無(wú)符號(hào)unsigned long int、有符號(hào)long int
教 學(xué) 活 動(dòng) 流 程 設(shè) 計(jì)
旁 注
3、例題(整型數(shù)據(jù)的溢出問(wèn)題)
main( )
{ int a,b;
a=32767;
b=a+1;
printf(“%d,%d”,a,b);
}
作業(yè)
1、簡(jiǎn)述C程序中有哪些常用的數(shù)據(jù)類(lèi)型;
2、P15/3,5
板
書(shū)
設(shè)
計(jì)
算 法
7、 算法的基本概念;
8、 C語(yǔ)言中的數(shù)據(jù)結(jié)構(gòu);
9、 常量;
10、 變量;
11、 變量的種類(lèi);
12、 例題分析
教
學(xué)
后
記
京山縣中等職業(yè)技術(shù)學(xué)校備課用紙
授課年級(jí)
技能
授課班級(jí)
計(jì)算機(jī)應(yīng)用
授課日期
授課節(jié)次
教學(xué)課題
浮點(diǎn)型數(shù)據(jù)
教 學(xué)
目 標(biāo)
浮點(diǎn)型數(shù)據(jù)與字符型數(shù)據(jù)的分類(lèi)、表示方法與存儲(chǔ)形式
變量的賦值形式
各種類(lèi)數(shù)值型數(shù)據(jù)間相互轉(zhuǎn)換的規(guī)則與方法
重 點(diǎn)
難 點(diǎn)
靈活掌握各種數(shù)據(jù)的存儲(chǔ)形式
教 學(xué) 資
源 準(zhǔn) 備
教案、實(shí)例
教 學(xué) 活 動(dòng) 流 程 設(shè) 計(jì)
旁 注
一、浮點(diǎn)型常量的表示方法
1、十進(jìn)制小數(shù):數(shù)字+小數(shù)點(diǎn)
例:0.123,123.0,.456
2、指數(shù)形式:123×102=123e2=1.23e4
要求:E前必須有數(shù)字,E后數(shù)字必須為整數(shù)。
規(guī)范化指數(shù)形式:小數(shù)點(diǎn)左側(cè)有且僅有一位非零數(shù)字。
二、浮點(diǎn)型變量
1、浮點(diǎn)型數(shù)據(jù)在內(nèi)存中存放形式
指數(shù)形式存放,占用4個(gè)字節(jié),如圖所示
小數(shù)符號(hào)
小數(shù)
指數(shù)符號(hào)
指數(shù)
例:1.23e4
+
1.23
+
4
結(jié)論:小數(shù)位數(shù)越多,精度越高;指數(shù)位數(shù)越多,范圍越大。
2、浮點(diǎn)型變量分類(lèi)
單精度:float
雙精度:double
長(zhǎng)雙精度:long double
3、舍入誤差:見(jiàn)書(shū)中例題。
教 學(xué) 活 動(dòng) 流 程 設(shè) 計(jì)
旁 注
字符型數(shù)據(jù)
一、字符常量
1、定義:用一對(duì)單引號(hào)括起來(lái)的一個(gè)字符或以\開(kāi)頭的字符序列。
‘ a ‘ , \n (又稱(chēng)轉(zhuǎn)義字符)
2、轉(zhuǎn)義字符(見(jiàn)書(shū)中表)
例:\101=1*80+1*82=65即表示字母A
二、字符變量
1、定義格式:char c1,c2;
2、作用:存放一個(gè)字符
4、字符串常量
v 定義:用一對(duì)雙引號(hào)括起來(lái)的字符序列
v 在內(nèi)存中存放形式:末尾加串結(jié)束標(biāo)志\0(系統(tǒng)自動(dòng)加)
例:“HELLO”
H
E
L
L
O
\0
v 字符串常量不能賦給一個(gè)字符變量。
例:char c1; /*字符變量*/
c1=”hello” /*賦值錯(cuò)誤*/
變量賦初值
一、賦值形式
1、定義變量時(shí)賦值
int a=3;
float f=3.56;
char c=’a ’;
2、部分賦值
int a,b,c=5;
3、賦同一個(gè)初值
int a=3,b=3,c=3;
教 學(xué) 活 動(dòng) 流 程 設(shè) 計(jì)
旁 注
浮點(diǎn)型數(shù)據(jù)與字符型數(shù)據(jù)的分類(lèi)、表示方法與存儲(chǔ)形式
變量的賦值形式
各種類(lèi)數(shù)值型數(shù)據(jù)間相互轉(zhuǎn)換的規(guī)則與方法
作業(yè)
1、P17/1,2
2、P18/3
板
書(shū)
設(shè)
計(jì)
浮點(diǎn)型數(shù)據(jù)
13、 浮點(diǎn)型常量的表示方法;
14、 浮點(diǎn)型變量的分類(lèi)(單精度、雙精度、長(zhǎng)雙精度);
15、 常量;
16、 變量;
17、 字符常量;
18、 字符變量;
19、 例題分析;
教
學(xué)
后
記
京山縣中等職業(yè)技術(shù)學(xué)校備課用紙
授課年級(jí)
技能
授課班級(jí)
計(jì)算機(jī)應(yīng)用
授課日期
授課節(jié)次
教學(xué)課題
簡(jiǎn)單程序的調(diào)試及數(shù)學(xué)運(yùn)算符
教 學(xué)
目 標(biāo)
通過(guò)上機(jī)調(diào)試程序掌握各種數(shù)據(jù)類(lèi)型的表示方法、存儲(chǔ)形式
掌握各種不同數(shù)據(jù)間混合運(yùn)算的運(yùn)算規(guī)則
掌握各種運(yùn)算符的使用方法
通過(guò)程序調(diào)試正確理解各種表達(dá)式的運(yùn)算結(jié)果
重 點(diǎn)
難 點(diǎn)
掌握各種運(yùn)算符的使用方法
教 學(xué) 資
源 準(zhǔn) 備
教案、實(shí)例、上機(jī)操作
教 學(xué) 活 動(dòng) 流 程 設(shè) 計(jì)
旁 注
上機(jī)按要求調(diào)試下程序
1、 輸入并運(yùn)行下程序
main()
{int a,b;
a=32767; b=a+1;
printf(“%d,%d\n”,a,b);
}
2、 輸入并運(yùn)行下程序
main()
{char c1,c2;
c1=’a’; c2=’b’;
printf(“%c,%c\n”,c1,c2);
}
1) 將上面printf語(yǔ)句改成printf(“%d,%d\n”,c1,c2);結(jié)果?
2) 將char c1,c2;改成int c1,c2;結(jié)果?
3) 將c1=’a’; c2=’b’;改成c1=“a”; c2=“b”;結(jié)果?
4) 將c1=’a’; c2=’b’;改成將c1=300; c2=400;改成結(jié)果?
3、輸入并運(yùn)行下程序
main()
{char c1=’a’,c2=’b’,c3=’c’,c4=’\101’,c5=’\116’;
printf(“a%cb%c\tc%c\tabc\n”,c1,c2,c3);
printf(“%c%c\n”,c4,c5);
}
教 學(xué) 活 動(dòng) 流 程 設(shè) 計(jì)
旁 注
4、 輸入并運(yùn)行下程序
main()
{int i,j,m,n;
i=8; j=10;
m=++i; n=j++;
printf(“%d,%d,%d,%d\n”,i,j,m,n);
}
1) 將m=++i; n=j++;改成m=i++; n=++j;結(jié)果?
2) 將m=++i; n=j++;刪除并將printf(“%d,%d,%d,%d\n”,i,j,m,n);改為printf(“%d,%d,%d,%d\n”,i,j,i++,j++);結(jié)果?
算術(shù)運(yùn)算符和算術(shù)表達(dá)式
一、算術(shù)運(yùn)算符和算術(shù)表達(dá)式
1、基本算術(shù)運(yùn)算符
+(加法或正值運(yùn)算)1+2 , +100
-(減法或負(fù)值運(yùn)算)1-2 , -100
*(乘法運(yùn)算符)1*2
/(除法運(yùn)算符)1/2兩整數(shù)相除結(jié)果為整數(shù)。 ?=0
%(?;蛉∮噙\(yùn)算符)要求運(yùn)算符兩側(cè)均為整數(shù)如5/3=1
2、算術(shù)表達(dá)式和運(yùn)算符的優(yōu)先級(jí)與結(jié)合性
1)算術(shù)表達(dá)式的定義:由算術(shù)運(yùn)算符、括號(hào)將操作數(shù)連接起來(lái) 符合C語(yǔ)法規(guī)則的式子。
2)優(yōu)先級(jí)與結(jié)合性
* / % 高(左至右結(jié)合)
+ - 低(左至右結(jié)合)
例題:X/(67-(12+Y)*A)判斷計(jì)算先后順序?
3、強(qiáng)制類(lèi)型轉(zhuǎn)換運(yùn)算符
1)轉(zhuǎn)換格式:(類(lèi)型名)(表達(dá)式)
作用:將表達(dá)式轉(zhuǎn)換成所需的格式。
main()
{ float x;int I;
x=3.6;
I=(int)x;
printf(“x=%f,I=%d”,x,I);
}
4、自增、自減運(yùn)算符
1)++i,- -i(先使i的值加1或減1,再使用i)
2)i++,i--(先使用i,再使i加1或減1)
3)++與- -只能用于變量,不能用于常量或表達(dá)式
例:5++ ,(3*8)++錯(cuò)誤
4)++與- -結(jié)合方向自右向左。
-I++=-(I++)
I=3;printf(“%d,%d”,I,I++);
教 學(xué) 活 動(dòng) 流 程 設(shè) 計(jì)
旁 注
賦值運(yùn)算符和賦值表達(dá)式
一、賦值運(yùn)算符
1、運(yùn)算符:為等號(hào)“=”
2、與數(shù)學(xué)運(yùn)算的區(qū)別
? 數(shù)學(xué)運(yùn)算符是判斷等號(hào)兩側(cè)的數(shù)值是否相等。
? 賦值運(yùn)算符是將等號(hào)右側(cè)的數(shù)值賦給左側(cè)。
3、類(lèi)型轉(zhuǎn)換
1)將實(shí)數(shù)賦給整數(shù),舍去小數(shù)部分。
2) 將整數(shù)賦給單雙精度變量時(shí),數(shù)值不變,但以浮點(diǎn)形式存儲(chǔ)到變量中。
3)將一個(gè)double賦給float時(shí),截取前7位有效數(shù)字。
4)將字符型賦給整型時(shí),無(wú)符號(hào)時(shí)高8位補(bǔ)零,有符號(hào)時(shí),高8位補(bǔ)1
5)將一個(gè)int short long賦給一個(gè)char時(shí),只將低8位賦給char
4、復(fù)合賦值運(yùn)算符
定義:在賦值運(yùn)算符前加其他運(yùn)算符
a+=b等價(jià)a=a+b
x%=y+3等價(jià)x=x%(y+3)
5、賦值表達(dá)式
格式:<變量> <賦值運(yùn)算符> <表達(dá)式>
作業(yè)
1、上機(jī)調(diào)試課堂上所學(xué)的實(shí)例;
2、寫(xiě)出上機(jī)調(diào)試程序時(shí)出現(xiàn)的錯(cuò)誤及解決方法;
3、P19/4,5
板
書(shū)
設(shè)
計(jì)
程序調(diào)試及算術(shù)、關(guān)系運(yùn)算符
20、 上機(jī)調(diào)試課件中的程序;
21、 上機(jī)調(diào)試?yán)?及例2;
22、 算術(shù)運(yùn)算符和算術(shù)表達(dá)式;
23、 關(guān)系運(yùn)算符及關(guān)系表達(dá)式;
24、 理解賦值號(hào)與數(shù)學(xué)中等于號(hào)的區(qū)別;
教
學(xué)
后
記
京山縣中等職業(yè)技術(shù)學(xué)校備課用紙
授課年級(jí)
技能
授課班級(jí)
計(jì)算機(jī)應(yīng)用
授課日期
授課節(jié)次
教學(xué)課題
運(yùn)算符與表達(dá)式詳解
教 學(xué)
目 標(biāo)
運(yùn)算符的各類(lèi)
表達(dá)式的種類(lèi)
算術(shù)運(yùn)算符
自增自減運(yùn)算
重 點(diǎn)
難 點(diǎn)
算術(shù)運(yùn)算符
自增自減運(yùn)算
教 學(xué) 資
源 準(zhǔn) 備
教案、實(shí)例、上機(jī)操作
教 學(xué) 活 動(dòng) 流 程 設(shè) 計(jì)
旁 注
運(yùn)算符與表達(dá)式詳解
【問(wèn)題】日常生活中我們會(huì)進(jìn)行各種各樣的數(shù)據(jù)運(yùn)算。在C語(yǔ)言中將如何表示這些運(yùn)算呢?
C語(yǔ)言的運(yùn)算符非常豐富。除控制語(yǔ)句、輸入輸出語(yǔ)句以外的幾乎所有的基本操作都作為運(yùn)算符處理的。運(yùn)算符的使用方法也非常靈活,這是C語(yǔ)言的主要特點(diǎn)。C語(yǔ)言運(yùn)算符一般可分為以下幾類(lèi):
1.算術(shù)運(yùn)算符 + - * / %
2.關(guān)系運(yùn)算符 > >= < <= = = !=
3.邏輯運(yùn)算符 ! & ||
4.位運(yùn)算符 << >> ~ | ^ &
5.賦值運(yùn)算符 = 及其擴(kuò)展賦值運(yùn)算符
6.條件運(yùn)算符 ?:
7.逗號(hào)運(yùn)算符 ,
8.指針運(yùn)算符 * &
9.求字節(jié)數(shù)運(yùn)算符 sizeof
10.類(lèi)型轉(zhuǎn)換運(yùn)算符 (類(lèi)型)
教 學(xué) 活 動(dòng) 流 程 設(shè) 計(jì)
旁 注
11.分量運(yùn)算符 . ->
12.下標(biāo)運(yùn)算符 [ ]
13.其他 如函數(shù)調(diào)用運(yùn)算符 ( )
本節(jié)將重點(diǎn)介紹算術(shù)運(yùn)算符、賦值運(yùn)算符、逗號(hào)運(yùn)算符,其他運(yùn)算符將在以后各章中陸續(xù)介紹。詳細(xì)的運(yùn)算符列表見(jiàn)附錄。
算術(shù)運(yùn)算符與算術(shù)表達(dá)式
1.算術(shù)運(yùn)算符
C語(yǔ)言中基本的算術(shù)運(yùn)算符共有5種:
+ (加), - (減), * (乘), / (除),% (取模,或稱(chēng)求余運(yùn)算符)
C語(yǔ)言規(guī)定:
(1) %(取模運(yùn)算符),僅用于整型變量或整型常量的運(yùn)算,如:7%3,其值為1。
(2) / (除運(yùn)算符),當(dāng)對(duì)兩個(gè)整型的數(shù)據(jù)相除時(shí)結(jié)果為整數(shù),如:7/3,其值為2,舍去小數(shù)部分,相當(dāng)于整除操作。
2.算術(shù)表達(dá)式
(1) 算術(shù)表達(dá)式定義
由算術(shù)運(yùn)算符、括號(hào)以及操作對(duì)象組成的符合C語(yǔ)言語(yǔ)法規(guī)則的表達(dá)式稱(chēng)為算術(shù)表達(dá)式。如:a+b-c/d*(a-c) 。
(2) 優(yōu)先級(jí)
一個(gè)表達(dá)式中若有多個(gè)運(yùn)算符混合在一起,則計(jì)算的先后次序?yàn)橄人憷ㄌ?hào),再根據(jù)相應(yīng)運(yùn)算符的優(yōu)先級(jí),高的優(yōu)先。乘、除、取模運(yùn)算符的優(yōu)先級(jí)高于加、減運(yùn)算符的優(yōu)先級(jí),即先乘、除、取模,后加、減。算術(shù)運(yùn)算符的優(yōu)先級(jí)在所有運(yùn)算符中是較高的,僅次于括號(hào)、單目運(yùn)算符、類(lèi)型轉(zhuǎn)換運(yùn)算符和求字節(jié)數(shù)運(yùn)算符。
(3) 結(jié)合方向
當(dāng)一個(gè)運(yùn)算對(duì)象兩側(cè)的運(yùn)算符的優(yōu)先級(jí)別不同時(shí),應(yīng)遵循優(yōu)先級(jí)高的先處理的規(guī)則。當(dāng)一個(gè)運(yùn)算對(duì)象兩側(cè)的運(yùn)算符的優(yōu)先級(jí)別相同時(shí),應(yīng)遵循運(yùn)算符的結(jié)合方向。算術(shù)運(yùn)算符的結(jié)合方向是從左至右。
3.自增自減運(yùn)算符
C語(yǔ)言中,增1運(yùn)算也可以寫(xiě)為++運(yùn)算;減1運(yùn)算也可以寫(xiě)為--運(yùn)算。++和--運(yùn)算是C語(yǔ)言中兩個(gè)較為獨(dú)特的單目運(yùn)算符。它們既可以放在操作數(shù)前,也可以放在操作數(shù)后,并且操作對(duì)象只能是變量,不能是常量或表達(dá)式。自增自減運(yùn)算符的作用是將操作對(duì)象的值增加1或減去1。雖然自增自減運(yùn)算符既可用于前綴運(yùn)算,也可用于后綴運(yùn)算,但其意義不同。
i++,i-- /* 表示在使用i值之后將i的值加(減)1 */
++i,--i /* 表示在使用i值之前將i的值加(減)1 */
例如:設(shè)i的原值為5,則執(zhí)行下面的賦值語(yǔ)句:
j=i++; /*先將i的值賦給j,i再自增1,賦值語(yǔ)句執(zhí)行完后i的值為6,j的
教 學(xué) 活 動(dòng) 流 程 設(shè) 計(jì)
旁 注
值為5 */
j=++i; /*先將i的值自增1,再賦給j,賦值語(yǔ)句執(zhí)行完后i的值為6,j的值為6 */
【例】輸出下面程序中i的值
/* EX2-3.C */
main()
{
int i=5,j;
j=++i+i++;/*一個(gè)前增1使i變成6后才進(jìn)行加法運(yùn)算,實(shí)際是6+6 */
printf("%d %d\n",i,j);
j=(++i)+(++i)+(i++);
printf("%d %d\n",i,j);
printf("%d %d\n",i+j,j++);
}
運(yùn)行結(jié)果為:
7 12
10 27
38 27
作業(yè):P27/1,2,3 P29/3
板
書(shū)
設(shè)
計(jì)
運(yùn)算符與表達(dá)式詳解
25、 運(yùn)算符的種類(lèi);
26、 表達(dá)式的種類(lèi);
27、 常用的算術(shù)運(yùn)算符;
28、 自增與自減運(yùn)算
29、 習(xí)題分析
教
學(xué)
后
記
京山縣中等職業(yè)技術(shù)學(xué)校備課用紙
授課年級(jí)
技能
授課班級(jí)
計(jì)算機(jī)應(yīng)用
授課日期
授課節(jié)次
教學(xué)課題
賦值運(yùn)算符與逗號(hào)運(yùn)算符
教 學(xué)
目 標(biāo)
賦值運(yùn)算
逗號(hào)表達(dá)式
復(fù)合運(yùn)算
重 點(diǎn)
難 點(diǎn)
賦值運(yùn)算符與數(shù)學(xué)中等號(hào)的區(qū)別
逗號(hào)表達(dá)式
教 學(xué) 資
源 準(zhǔn) 備
教案、實(shí)例、上機(jī)操作
教 學(xué) 活 動(dòng) 流 程 設(shè) 計(jì)
旁 注
一、賦值運(yùn)算
1.賦值運(yùn)算符
C語(yǔ)言中賦值運(yùn)算符為“=”,它的作用是將賦值運(yùn)算符右邊表達(dá)式或常量的值賦給其左邊的變量。例如:
a=5; /* 表示把一個(gè)常量5賦給變量a */
x=a+5; /* 表示將表達(dá)式a+5的值賦給變量x */
【注意】如果賦值運(yùn)算符兩側(cè)的類(lèi)型不一致,在賦值時(shí)要進(jìn)行類(lèi)型轉(zhuǎn)換。我們將在下一節(jié)“賦值轉(zhuǎn)換”中給大家作說(shuō)明。
2.復(fù)合賦值運(yùn)算符
C語(yǔ)言允許在賦值運(yùn)算符“=”之前加上其他運(yùn)算符以構(gòu)成復(fù)合的賦值運(yùn)算符。凡是雙目運(yùn)算符,都可以和賦值運(yùn)算符一起組合成復(fù)合的賦值運(yùn)算符。在C語(yǔ)言中,可以使用的復(fù)合賦值運(yùn)算符有:
+=,-=,*=,/=,%=,<<=,>>=,&=,^=,|=
例如:
a+=5; 等價(jià)于 a=a+5;
教 學(xué) 活 動(dòng) 流 程 設(shè) 計(jì)
旁 注
a*=b+5; 等價(jià)于 a=a*(b+5);
a%=5; 等價(jià)于 a=a%8;
C語(yǔ)言中采用這種復(fù)合運(yùn)算符,一是為了簡(jiǎn)化程序,使程序精練;二是為了提高編譯效率,產(chǎn)生質(zhì)量較高的目標(biāo)代碼。
3.賦值表達(dá)式
(1) 賦值表達(dá)式的一般形式為:
(變量) (賦值運(yùn)算符) (表達(dá)式)
其功能是將賦值運(yùn)算符右邊的“表達(dá)式”的值賦給賦值符號(hào)左邊的變量。整個(gè)賦值表達(dá)式的值就是被賦值的變量的值。例如:
b=4; /* 表示把4賦值給變量b,整個(gè)賦值表達(dá)式的值為4 */
賦值表達(dá)式也可以包含復(fù)合的賦值運(yùn)算符,例如:
a+=a-=a*a;
設(shè)a的初值為5,其求解步驟為:
① 先計(jì)算表達(dá)式a-=a*a的值,它相當(dāng)于a=a-a*a=5-5*5= -20
② 再計(jì)算a+= -20的值,它相當(dāng)于a=a+(-20)= -20-20= -40
賦值表達(dá)式中的“表達(dá)式”又可以是一個(gè)賦值表達(dá)式,例如:
a = ( b = 5 );
括號(hào)內(nèi)的b=5表示一個(gè)賦值表達(dá)式,其值為5。整個(gè)賦值表達(dá)式相當(dāng)于是由b=5和a=b兩個(gè)賦值表達(dá)式組合而成的。因此a的值為變量b的值,也為5。這個(gè)賦值表達(dá)式的值為變量a的值,也為5。
(2) 優(yōu)先級(jí)
賦值運(yùn)算符的優(yōu)先級(jí)較低,在所有運(yùn)算符中,它的優(yōu)先級(jí)僅高于逗號(hào)運(yùn)算符。例如:
a=b+6; /* 由于賦值運(yùn)算符的優(yōu)先級(jí)低于算術(shù)運(yùn)算符,所以先算b+6再做賦值運(yùn)算*/
(3) 結(jié)合性
賦值表達(dá)式按照自右向左的順序結(jié)合,例如:
a = 5 + ( b = 6 );
先做表達(dá)式b=6,得到變量b的值為6,表達(dá)式的值為6;再做a=5+6,由于賦值運(yùn)算符的優(yōu)先級(jí)低于算術(shù)運(yùn)算符,所以先算5+6的結(jié)果為11,再做a=11的賦值運(yùn)算。
二、逗號(hào)運(yùn)算符與逗號(hào)表達(dá)式
1.逗號(hào)運(yùn)算符
C語(yǔ)言提供一種特殊的運(yùn)算符—逗號(hào)運(yùn)算符。逗號(hào)運(yùn)算符為“,”。用逗號(hào)運(yùn)算符可以將兩個(gè)表達(dá)式連接起來(lái)。如:
2+3,2+5
2.逗號(hào)表達(dá)式
(1) 逗號(hào)表達(dá)式就是用逗號(hào)運(yùn)算符把兩個(gè)表達(dá)式連接起來(lái)所形成的表達(dá)式。
其一般形式為:
教 學(xué) 活 動(dòng) 流 程 設(shè) 計(jì)
旁 注
(表達(dá)式1),(表達(dá)式2)
逗號(hào)表達(dá)式的求值過(guò)程是:先求表達(dá)式1的值,再求表達(dá)式2的值,表達(dá)式2的值就是整個(gè)逗號(hào)表達(dá)式的值。如上面的表達(dá)式先求2+3的值為5,再求2+5的值為7,最后整個(gè)逗號(hào)表達(dá)式的值為表達(dá)式2+5的值7。
【例】分析下面程序的運(yùn)行結(jié)果
/* EX2-4.C */
main()
{
int y=3,x=3,z=1;
printf("%d %d\n",(++x,y++),z+2);
}
運(yùn)行結(jié)果為:
作業(yè)
1、 P29/5,6,7,8
2、 上機(jī)調(diào)試程序運(yùn)行結(jié)果
板
書(shū)
設(shè)
計(jì)
賦值運(yùn)算符、逗號(hào)表達(dá)式
30、 賦值運(yùn)算符
31、 賦值運(yùn)算與數(shù)學(xué)中等號(hào)的區(qū)別
32、 逗號(hào)表達(dá)式
33、 復(fù)合運(yùn)算
34、 習(xí)題講解
教
學(xué)
后
記
京山縣中等職業(yè)技術(shù)學(xué)校備課用紙
授課年級(jí)
技能
授課班級(jí)
計(jì)算機(jī)應(yīng)用
授課日期
授課節(jié)次
教學(xué)課題
數(shù)據(jù)類(lèi)型轉(zhuǎn)換
教 學(xué)
目 標(biāo)
類(lèi)型的自動(dòng)轉(zhuǎn)換
賦值的轉(zhuǎn)換
強(qiáng)制類(lèi)型轉(zhuǎn)換
重 點(diǎn)
難 點(diǎn)
類(lèi)型自動(dòng)轉(zhuǎn)換的規(guī)則
教 學(xué) 資
源 準(zhǔn) 備
教案、實(shí)例、上機(jī)操作
教 學(xué) 活 動(dòng) 流 程 設(shè) 計(jì)
旁 注
數(shù)據(jù)類(lèi)型轉(zhuǎn)換
C語(yǔ)言中,各種類(lèi)型的數(shù)據(jù)可以混合運(yùn)算。字符型數(shù)據(jù)和整型數(shù)據(jù)之間可以通用。不同類(lèi)型的數(shù)據(jù)在進(jìn)行混合運(yùn)算時(shí),往往需要進(jìn)行類(lèi)型轉(zhuǎn)換,將不同類(lèi)型的數(shù)據(jù)轉(zhuǎn)換成同種類(lèi)型的然后進(jìn)行計(jì)算。類(lèi)型轉(zhuǎn)換有三種方式:類(lèi)型自動(dòng)轉(zhuǎn)換;賦值轉(zhuǎn)換和強(qiáng)制類(lèi)型轉(zhuǎn)換。
一、 類(lèi)型自動(dòng)轉(zhuǎn)換
不同類(lèi)型的數(shù)據(jù)可以進(jìn)行混合運(yùn)算,例如:
10+'a'+2.5*'b'
在進(jìn)行混合運(yùn)算時(shí),不同類(lèi)型的數(shù)據(jù)首先要轉(zhuǎn)換成同一類(lèi)型,然后才能進(jìn)行運(yùn)算。
自動(dòng)轉(zhuǎn)換規(guī)則為:
(1) 單精度浮點(diǎn)型數(shù)據(jù)(float)在運(yùn)算時(shí)自動(dòng)轉(zhuǎn)換成雙精度浮點(diǎn)型數(shù)據(jù)(double)。
(2) 字符型數(shù)據(jù)(char)和短整型數(shù)據(jù)(short)在運(yùn)算時(shí)自動(dòng)轉(zhuǎn)換成整型數(shù)據(jù)(int)。
(3) 整型數(shù)據(jù)(int)和無(wú)符號(hào)型數(shù)據(jù)(unsigned)混合運(yùn)算時(shí),將整型數(shù)據(jù)轉(zhuǎn)換成無(wú)符號(hào)型數(shù)據(jù)。
教 學(xué) 活 動(dòng) 流 程 設(shè) 計(jì)
旁 注
(4) 整型數(shù)據(jù)(int)或無(wú)符號(hào)型數(shù)據(jù)(unsigned)和長(zhǎng)整型數(shù)據(jù)(long)混合運(yùn)算時(shí),都轉(zhuǎn)換成長(zhǎng)整型數(shù)據(jù)。
(5) 整型數(shù)據(jù)(int)、無(wú)符號(hào)型數(shù)據(jù)(unsigned)、長(zhǎng)整型數(shù)據(jù)(long)和浮點(diǎn)型數(shù)據(jù)混合運(yùn)算時(shí),都轉(zhuǎn)換成浮點(diǎn)型數(shù)據(jù)。
依次方式類(lèi)推,轉(zhuǎn)換規(guī)則如圖2-2:
高 double float
long
unsigned
低 int char,short
圖2-2 自動(dòng)類(lèi)型轉(zhuǎn)換規(guī)則
總之,在自動(dòng)類(lèi)型轉(zhuǎn)換時(shí)總是按照精度不降低的原則從低級(jí)向高級(jí)進(jìn)行轉(zhuǎn)換的。
例如上面例子中給出的表達(dá)式10+'a'+2.5*'b',在運(yùn)算時(shí),先將所有的字符類(lèi)型數(shù)據(jù)'a'和'b'轉(zhuǎn)換成整型,再?gòu)淖笙蛴疫M(jìn)行運(yùn)算。遇到浮點(diǎn)型數(shù)據(jù)時(shí),將整型數(shù)據(jù)自動(dòng)轉(zhuǎn)換為浮點(diǎn)型數(shù)據(jù)。最后表達(dá)式的值為浮點(diǎn)型數(shù)據(jù),并且按照浮點(diǎn)型數(shù)據(jù)的運(yùn)算規(guī)則進(jìn)行運(yùn)算。
例如:
設(shè)有以下變量定義,并已賦確定的值
char w; int x; float y; double z;
則表達(dá)式:w+x+z/y值的數(shù)據(jù)類(lèi)型為double
說(shuō)明:此表達(dá)式中y為float類(lèi)型的數(shù)據(jù),所以所有數(shù)據(jù)都自動(dòng)轉(zhuǎn)換成浮點(diǎn)類(lèi)型,并且按照浮點(diǎn)型數(shù)據(jù)的運(yùn)算規(guī)則進(jìn)行運(yùn)算。
二、 賦值轉(zhuǎn)換
如果賦值運(yùn)算符兩側(cè)的類(lèi)型不一致(但都是數(shù)值型或字符型)時(shí),在賦值過(guò)程中會(huì)進(jìn)行類(lèi)型轉(zhuǎn)換。轉(zhuǎn)換的基本原則是:
(1) 當(dāng)整型數(shù)據(jù)賦給浮點(diǎn)型變量時(shí),數(shù)值上不發(fā)生任何變化,但有效位增加。如:
float f;
f=4; /* 內(nèi)存中變量f的值為4.000000 */
(2) 當(dāng)單、雙精度浮點(diǎn)型數(shù)據(jù)和整型變量混合運(yùn)算時(shí),浮點(diǎn)數(shù)的小數(shù)部分將被舍棄。如:
int x;
x=4.35; /* 內(nèi)存中變量x的值為4 */
(3) 將字符型數(shù)據(jù)賦給整型變量時(shí),由于字符型數(shù)據(jù)在運(yùn)算時(shí)根據(jù)其ASCII碼值自動(dòng)轉(zhuǎn)化為整型數(shù)據(jù),所以將字符型數(shù)據(jù)的ASCII碼值存儲(chǔ)到變量中。如:
int x;
x='a'; /* 內(nèi)存中變量x的值為65 */
(4) 將有符號(hào)的整型數(shù)據(jù)賦給長(zhǎng)整型數(shù)據(jù),要進(jìn)行符號(hào)擴(kuò)展。將無(wú)符號(hào)的整型數(shù)據(jù)賦給長(zhǎng)整型變量時(shí),只需將高位補(bǔ)0即可。
教 學(xué) 活 動(dòng) 流 程 設(shè) 計(jì)
旁 注
三、 強(qiáng)制類(lèi)型轉(zhuǎn)換
可以利用強(qiáng)制類(lèi)型轉(zhuǎn)換運(yùn)算符將一個(gè)表達(dá)式強(qiáng)制轉(zhuǎn)換成所需類(lèi)型。例如:
(int) a; /* 表示將變量a的類(lèi)型強(qiáng)制轉(zhuǎn)換為整型 */
(float) (a+b); /* 表示將表達(dá)式a+b結(jié)果的類(lèi)型強(qiáng)制轉(zhuǎn)換為浮點(diǎn)型 */
強(qiáng)制類(lèi)型轉(zhuǎn)換的一般形式如下:
(強(qiáng)制的類(lèi)型名)(表達(dá)式)
作業(yè)
P56/1,2,3,4
P58/6
板
書(shū)
設(shè)
計(jì)
數(shù)據(jù)轉(zhuǎn)換
35、 自動(dòng)類(lèi)型轉(zhuǎn)換
36、 賦值轉(zhuǎn)換
37、 強(qiáng)制類(lèi)型轉(zhuǎn)換
教
學(xué)
后
記
京山縣中等職業(yè)技術(shù)學(xué)校備課用紙
授課年級(jí)
技能
授課班級(jí)
計(jì)算機(jī)應(yīng)用
授課日期
授課節(jié)次
教學(xué)課題
習(xí)題講解及第二章知識(shí)總結(jié)
教 學(xué)
目 標(biāo)
通過(guò)習(xí)題的講解,使學(xué)生深入理解本章所學(xué)的內(nèi)容
對(duì)本章所學(xué)知識(shí)的總結(jié)
重 點(diǎn)
難 點(diǎn)
理解習(xí)題
教 學(xué) 資
源 準(zhǔn) 備
教案、實(shí)例、上機(jī)操作
教 學(xué) 活 動(dòng) 流 程 設(shè) 計(jì)
旁 注
習(xí)題講解及第二章知識(shí)總結(jié)
(1) 表達(dá)式應(yīng)該用括號(hào)括起來(lái)。例如:
(int)(a+b); /* 表示將表達(dá)式a+b結(jié)果的類(lèi)型強(qiáng)制轉(zhuǎn)換成int型 */
(int)a+b; /* 表示將變量a的類(lèi)型強(qiáng)制轉(zhuǎn)換成int型后,再進(jìn)行運(yùn)算 */
(2) 經(jīng)強(qiáng)制類(lèi)型轉(zhuǎn)換后,得到的是一個(gè)所需類(lèi)型的中間變量,原來(lái)變量的類(lèi)型并沒(méi)有發(fā)生任何變化。
【例1】分析下面程序的運(yùn)行結(jié)果
/* EX2-5.C */
main()
{
int a;
float b=2.5;
a=(int)b;
printf("a=%d,b=%f",a,b);
}
運(yùn)行結(jié)果為:
a=2, b=2.500000
教 學(xué) 活 動(dòng) 流 程 設(shè) 計(jì)
旁 注
【例2】分析下面程序的運(yùn)行結(jié)果
/* EX2-6.C */
main()
{
int x, y;
x=50;
y=(x=x-5, x/5);
printf("y=%d",y);
}
運(yùn)行結(jié)果為:
Y=9
【分析】因?yàn)閤的初始值為50,減5后變?yōu)?5,45除5為9賦給y。
【例3】寫(xiě)出下面程序的運(yùn)行結(jié)果。
/* EX2-7.C */
main()
{
int i=2,j=3,k,n,m;
k=i+j;printf("%d",k);
k=k+1;printf("%d",k);
n=k*3;printf("%d",n);
m=n%j;printf("%d",m);
m=m-i;printf("%d",m);
n=k/j;printf("%d",n);
}
運(yùn)行結(jié)果為:
56180-22
【分析】整型數(shù)據(jù)不管進(jìn)行什么樣的算術(shù)運(yùn)算得出的結(jié)果仍為整型數(shù)據(jù)。
【例4】分析下面程序的運(yùn)行結(jié)果。
/* EX2-8.C */
main( )
{
int m,n, k;
m=5; n=10;
k=(--m)+(--n);
printf("m=%d,n=%d,k=%d\n",m,n,k);
m=5, n=10;
k=(m--)+(n--);
教 學(xué) 活 動(dòng) 流 程 設(shè) 計(jì)
旁 注
printf("m=%d,n=%d,k=%d\n",m,n,k);
}
運(yùn)行結(jié)果為:
m=4, n=9, k=13
m=4, n=9, k=15
【本章小結(jié)】
本章主要介紹了C語(yǔ)言中有關(guān)數(shù)據(jù)與數(shù)據(jù)計(jì)算的基本概念和規(guī)則。重點(diǎn)講解了以下幾個(gè)方面的內(nèi)容:
(1)C語(yǔ)言的數(shù)據(jù)類(lèi)型有四類(lèi):基本類(lèi)型、構(gòu)造類(lèi)型、指針類(lèi)型和空類(lèi)型。
(2)基本數(shù)據(jù)類(lèi)型包括整型、實(shí)型、字符型三種。它們的表示方法、數(shù)據(jù)的取值范圍和數(shù)值的有效位各有特點(diǎn)。
作業(yè)
上機(jī)調(diào)試本次課所講的所有習(xí)題
板
書(shū)
設(shè)
計(jì)
習(xí)題講解及本章知識(shí)總結(jié)
38、 上機(jī)調(diào)試課件中的程序;
39、 上機(jī)調(diào)試?yán)?及例4;
3、深入理解習(xí)題中所講到的知識(shí)點(diǎn)
教
學(xué)
后
記
京山縣中等職業(yè)技術(shù)學(xué)校備課用紙
授課年級(jí)
技能
授課班級(jí)
計(jì)算機(jī)應(yīng)用
授課日期
授課節(jié)次
教學(xué)課題
C語(yǔ)言的基本語(yǔ)句
教 學(xué)
目 標(biāo)
表達(dá)式語(yǔ)句
函數(shù)語(yǔ)句
控制語(yǔ)句
復(fù)合語(yǔ)句
空語(yǔ)句
重 點(diǎn)
難 點(diǎn)
各種語(yǔ)句的結(jié)構(gòu)和特點(diǎn)
教 學(xué) 資
源 準(zhǔn) 備
教案、實(shí)例、上機(jī)操作
教 學(xué) 活 動(dòng) 流 程 設(shè) 計(jì)
旁 注
簡(jiǎn)單程序設(shè)計(jì)
在C語(yǔ)言中,程序結(jié)構(gòu)一般分為順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)。本章節(jié)主要介紹的是:順序程序結(jié)構(gòu)、賦值語(yǔ)句、基本的輸入/輸出函數(shù)、格式控制符等。
順序結(jié)構(gòu)是最簡(jiǎn)單的也是最基本的程序結(jié)構(gòu),其特點(diǎn)是語(yǔ)句按書(shū)寫(xiě)的順序依次執(zhí)行。順序結(jié)構(gòu)主要由簡(jiǎn)單語(yǔ)句、復(fù)合語(yǔ)句及簡(jiǎn)單輸入輸出函數(shù)構(gòu)成的語(yǔ)句組成。printf與putchar是輸出函數(shù),scanf與getchar是輸入函數(shù),它們既有相同點(diǎn)也有不同點(diǎn)。
一、C語(yǔ)言語(yǔ)句
C語(yǔ)言中語(yǔ)句的作用是向計(jì)算機(jī)系統(tǒng)發(fā)出操作命令,從而完成一定的操作任務(wù)。
C語(yǔ)句可分為以下5種類(lèi)型,下面我們進(jìn)行簡(jiǎn)單介紹。
教 學(xué) 活 動(dòng) 流 程 設(shè) 計(jì)
旁 注
1.表達(dá)式語(yǔ)句
由表達(dá)式組成的語(yǔ)句稱(chēng)為表達(dá)式語(yǔ)句,其作用是計(jì)算表達(dá)式值或改變變量值。它的一般形式是:
表達(dá)式;
即在表達(dá)式的末尾加上分號(hào),就變成了表達(dá)式語(yǔ)句。最典型的例子是,由賦值表達(dá)式構(gòu)成一個(gè)賦值語(yǔ)句。如:
x=5
是賦值表達(dá)式,而
x=5;
是一個(gè)賦值語(yǔ)句。注意:分號(hào)是C語(yǔ)言中語(yǔ)句的標(biāo)志,一個(gè)語(yǔ)句必須要有分號(hào),沒(méi)有分號(hào),則一定不是語(yǔ)句。表達(dá)式能構(gòu)成語(yǔ)句是C語(yǔ)言的一個(gè)重要特色。
2.函數(shù)調(diào)用語(yǔ)句
由一個(gè)函數(shù)調(diào)用加上一個(gè)分號(hào)構(gòu)成函數(shù)調(diào)用語(yǔ)句,其作用是完成特定的功能。它的一般形式是:
函數(shù)名(參數(shù)列表);
例如:
printf("goodby!\n"); /*調(diào)用庫(kù)函數(shù),輸出字符串*/
3.控制語(yǔ)句
控制語(yǔ)句用于完成一定的控制功能,以實(shí)現(xiàn)程序的各種結(jié)構(gòu)方式。C語(yǔ)言有9種控制語(yǔ)句,可分為三類(lèi):
(1) 條件判斷語(yǔ)句:
if語(yǔ)句、switch語(yǔ)句
(2) 轉(zhuǎn)向語(yǔ)句:
break語(yǔ)句、continue語(yǔ)句、goto語(yǔ)句、return語(yǔ)句
(3) 循環(huán)語(yǔ)句:
for語(yǔ)句、while語(yǔ)句、do-while語(yǔ)句
4.復(fù)合語(yǔ)句
復(fù)合語(yǔ)句是用花括號(hào)將若干語(yǔ)句組合在一起,又稱(chēng)分程序,在語(yǔ)法上相當(dāng)于一條語(yǔ)句。例如下面是一個(gè)復(fù)合語(yǔ)句:
{ i++;
printf("%d\n",i);
}
注意:復(fù)合語(yǔ)句中最后一個(gè)語(yǔ)句的分號(hào)不能省略不寫(xiě)。
5.空語(yǔ)句
只有一個(gè)分號(hào)的語(yǔ)句稱(chēng)為空語(yǔ)句。它的一般形式是:
;
空語(yǔ)句是什么也不執(zhí)行的語(yǔ)句,常用于循環(huán)語(yǔ)句中的循環(huán)體,表示循環(huán)體什么都不做。例如:
while (getchar()!='\n')
; /*空語(yǔ)句*/
教 學(xué) 活 動(dòng) 流 程 設(shè) 計(jì)
旁 注
該循環(huán)的功能是:直到從鍵盤(pán)上鍵入回車(chē)才退出循環(huán)。這里的循環(huán)體是空語(yǔ)句。
作業(yè)
1、 試列出C語(yǔ)言中常見(jiàn)的語(yǔ)句有哪些?
2、 P69/2,5,8
板
書(shū)
設(shè)
計(jì)
C程序中的各種語(yǔ)句
40、 表達(dá)式語(yǔ)句;
41、 函數(shù)語(yǔ)句;
42、 復(fù)合語(yǔ)句;
43、 空語(yǔ)句;
44、 控制語(yǔ)句
教
學(xué)
后
記
京山縣中等職業(yè)技術(shù)學(xué)校備課用紙
授課年級(jí)
技能
授課班級(jí)
計(jì)算機(jī)應(yīng)用
授課日期
授課節(jié)次
教學(xué)課題
程序結(jié)構(gòu)
教 學(xué)
目 標(biāo)
認(rèn)識(shí)程序設(shè)計(jì)的三種基本結(jié)構(gòu)
順序結(jié)構(gòu)
重 點(diǎn)
難 點(diǎn)
順序結(jié)構(gòu)
教 學(xué) 資
源 準(zhǔn) 備
教案、實(shí)例、上機(jī)操作
教 學(xué) 活 動(dòng) 流 程 設(shè) 計(jì)
旁 注
程序結(jié)構(gòu)
一、 程序結(jié)構(gòu)簡(jiǎn)介
在C語(yǔ)言中,程序結(jié)構(gòu)一般分為順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)。任何復(fù)雜的程序都是由這三種基本結(jié)構(gòu)組成。
【引例】簡(jiǎn)單的程序結(jié)構(gòu)。
main()
{
int x,y,z; /*定義三個(gè)整型變量,是C語(yǔ)言中的聲明部分*/
x=123;y=234; /*以下語(yǔ)句是C語(yǔ)言中的語(yǔ)句,是執(zhí)行部分*/
z=x-y;
printf("x-y=%d\n",z);
}
該程序的作用是求兩個(gè)整數(shù)x和y的差z。第3行是定義變量x、y、z是整型(int)變量。第4行是兩個(gè)賦值語(yǔ)句,使x、y的值分別為123和234。第5行也是賦值語(yǔ)句,使z的值等于x-y。第6行是進(jìn)行輸出,輸出變量z的值。因此該程序的輸出信息是:
x-y=-111
教 學(xué) 活 動(dòng) 流 程 設(shè) 計(jì)
旁 注
【引例】由多個(gè)函數(shù)構(gòu)成的程序結(jié)構(gòu)。
main() /*主函數(shù)*/
{
int x,y,z; /*聲明部分,定義變量的類(lèi)型*/
scanf("%d,%d",&x,&y); /*通過(guò)輸入函數(shù),給變量x、y賦值*/
z=min(x,y); /*調(diào)用min函數(shù),將函數(shù)值賦給變量z*/
printf("min=%d\n",z); /*輸出變量z的值*/
}
int min(int a,int b) /*定義一個(gè)min的函數(shù),函數(shù)值為整型,虛參a和b是整型*/
{
int c; /*函數(shù)min中的聲明部分*/
if(a>b) c=b;
else c=a;
return ( c ); /*將變量c的值通過(guò)返回語(yǔ)句帶回調(diào)用處*/
}
本程序包含兩個(gè)函數(shù):主函數(shù)main和被調(diào)用函數(shù)min。min函數(shù)的作用是將a和b中較小的數(shù)賦給變量c,并通過(guò)返回語(yǔ)句return將c的值返回給主函數(shù)main。程序運(yùn)行時(shí),先由scanf()函數(shù)從鍵盤(pán)上讀取兩個(gè)整型數(shù)據(jù),如從鍵盤(pán)上輸入2,7↙(↙表示回車(chē)鍵),此時(shí)x被賦值2,y被賦值7,然后執(zhí)行第5語(yǔ)句,對(duì)min函數(shù)進(jìn)行調(diào)用,調(diào)用的結(jié)果是將較小的數(shù)2賦給變量c,通過(guò)return語(yǔ)句將函數(shù)值賦給變量z。第6行語(yǔ)句輸出z的值2。因此程序輸出的信息是:
min=2
從上面的兩個(gè)例子看出:一個(gè)C程序可以由若干個(gè)源程序文件組成,其結(jié)構(gòu)如圖3-1所示。
二、 順序結(jié)構(gòu)
A
B
順序結(jié)構(gòu)是程序設(shè)計(jì)中最簡(jiǎn)單、最基本的結(jié)構(gòu),其特點(diǎn)是程序運(yùn)行時(shí),按語(yǔ)句書(shū)寫(xiě)的次序依次執(zhí)行,其結(jié)構(gòu)如圖3-2所示。
在圖中,執(zhí)行完A框所指定的操作后,必接著執(zhí)行B框所指定的操作。順序結(jié)構(gòu)通常是由簡(jiǎn)單語(yǔ)句、復(fù)合語(yǔ)句及輸入輸出函數(shù)語(yǔ)句組成。
【例】分析下面程序結(jié)構(gòu)
/* EX3-1.C */
#include
main()
{
int a,b,c;
scanf("%d,%d",&a,&b);
教 學(xué) 活 動(dòng) 流 程 設(shè) 計(jì)
旁 注
c=a+b;
預(yù)處理語(yǔ)句
變量a,b,c聲明
輸入變量a,b的值
賦值語(yǔ)句c=a+b
輸出變量c的值
printf("\nc=%d\n",c);
}
上述程序顯然是順序結(jié)構(gòu),其語(yǔ)句執(zhí)行的次序
如圖所示。
從例3-1可以看出,順序結(jié)構(gòu)的程序框架如下:
#開(kāi)頭的編譯預(yù)處理命令行
main()
{
局部變量聲明語(yǔ)句;
可執(zhí)行語(yǔ)句序列;
}
; /*空語(yǔ)句*/
作業(yè)
1、 程序設(shè)計(jì)一般有哪三種基本的結(jié)構(gòu)
2、 P62/3,4
板
書(shū)
設(shè)
計(jì)
程序設(shè)計(jì)的基本結(jié)構(gòu)
45、 程序設(shè)計(jì)的結(jié)構(gòu)
46、 順序結(jié)構(gòu)
例題講解
47、 選擇結(jié)構(gòu)
48、 循環(huán)結(jié)構(gòu)
教
學(xué)
后
記
京山縣中等職業(yè)技術(shù)學(xué)校備課用紙
授課年級(jí)
技能
授課班級(jí)
計(jì)算機(jī)應(yīng)用
授課日期
授課節(jié)次
教學(xué)課題
賦值語(yǔ)句與printf語(yǔ)句
教 學(xué)
目 標(biāo)
理解賦
鏈接地址:http://italysoccerbets.com/p-1262431.html