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