版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
C語言概述
主要內(nèi)容:
C語言的特點
C語言的開發(fā)流程簡單的C語言程式
Win-TC的基本操作教學(xué)目的及要求:
通過對本章的學(xué)習(xí),要求掌握C語言的特點及其發(fā)展歷史;初步認(rèn)識C語言編譯軟體Win-TC的使用,基本瞭解C語言程式開發(fā)的設(shè)計流程。第一章C語言概述本章重點:
C語言的特點
C語言程式的開發(fā)流程
Win-TC的基本操作本章難點:
Win-TC的基本操作第一章C語言概述
1.C語言的誕生與發(fā)展(1)在C語言誕生以前,系統(tǒng)軟體主要是用組合語言編寫的。由於組合語言程式依賴於電腦硬體,其可讀性和可移植性都很差;但一般的高級語言又難以實現(xiàn)對電腦硬體的直接操作(這正是組合語言的優(yōu)勢),於是人們盼望有一種兼有組合語言和高級語言特性的新語言。(2)C語言是貝爾實驗室於70年代初研製出來的,後來又被多次改進(jìn),並出現(xiàn)了多種版本。80年代初,美國國家標(biāo)準(zhǔn)化協(xié)會(ANSI),根據(jù)C語言問世以來各種版本對C語言的發(fā)展和擴(kuò)充,制定了ANSIC標(biāo)準(zhǔn)(1989年再次做了修訂)。*本書以ANSIC新標(biāo)準(zhǔn)來介紹。1.1C語言的特點(3)目前,在微機(jī)上廣泛使用的C語言編譯系統(tǒng)有MicrosoftC、TurboC、BorlandC等。雖然它們的基本部分都是相同的,但還是有一些差異,所以請大家注意自己所使用的C編譯系統(tǒng)的特點和規(guī)定(參閱相應(yīng)的手冊)。本書選定的上機(jī)環(huán)境是Win-TC(Windows操作系統(tǒng))。2.C語言的特點
C語言同時具有組合語言和高級語言的優(yōu)勢。(1)語言簡潔、緊湊,使用方便、靈活。(2)運算符極其豐富。(3)生成的目標(biāo)代碼品質(zhì)高,程式執(zhí)行效率高。(4)可移植性好(較之組合語言)。(5)可以直接操縱硬體。3.在C語言中,除實現(xiàn)順序、選擇和迴圈三種基本結(jié)構(gòu)等的9條控制語句外,輸入輸出操作均由標(biāo)準(zhǔn)庫函數(shù)(不是C語言的組成部分)來實現(xiàn)。所以學(xué)習(xí)C語言,不僅要學(xué)習(xí)這9條控制語句和各種運算符,而且要學(xué)習(xí)並掌握常用標(biāo)準(zhǔn)庫函數(shù)的使用。1.2C語言程式的開發(fā)過程1.編輯編輯C語言根源程式,以.C為擴(kuò)展名。2.編譯將C語言根源程式編譯成目標(biāo)程式。擴(kuò)展名為.OBJ。3.連接將目標(biāo)程式連接生成可執(zhí)行的代碼??蓤?zhí)行檔的擴(kuò)展名為.EXE。4.執(zhí)行執(zhí)行可執(zhí)行檔。1.3簡單的C語言程式1.3.1C語言程式的總體結(jié)構(gòu)一個完整的C語言程式,是由一個main()函數(shù)(又稱主函數(shù))和若干個其他函數(shù)結(jié)合而成的,或僅由一個main()函數(shù)構(gòu)成。[案例1.1]僅由main()函數(shù)構(gòu)成的C語言程式。/*案例代碼檔案名:AL1_1.C*//*功能:僅由main()函數(shù)構(gòu)成的C語言程式示例*/main(){printf(“ThisisaCprogram.\n”);}程式運行結(jié)果:
ThisisaCprogram.1.3.2C語言程式規(guī)定
一個C語言程式可由多個函數(shù)組成,但必須包含一個且只能包含一個名為main的函數(shù),程式總是從main函數(shù)開始執(zhí)行。
由一對{}擴(kuò)起來的部分是函數(shù)體,其中語句實現(xiàn)程式的預(yù)定功能。
C語言的每個基本語句都以“;”結(jié)束。
C語言程式書寫格式較自由,一行可寫一個或多個語句。
所有的變數(shù)必須“先定義、後使用”。
/*……*/中的內(nèi)容是程式的注釋部分
#include語句是編譯預(yù)處理語句。1.4Win-TC軟體的使用本章小結(jié):
本章系統(tǒng)介紹了C語言的特點及其C語言程式設(shè)計開發(fā)流程,讓學(xué)生對C語言有個感性的認(rèn)識,初步接觸了簡單易學(xué)的C語言編譯軟體——Win-TC。第一章C語言概述
常量和變數(shù)
基本數(shù)據(jù)類型及其常量
算術(shù)運算符、賦值運算符及其運算式
關(guān)係運算符、邏輯運算符及其運算式
逗號運算符、條件運算符及其運算式
變數(shù)的初始化
不同類型數(shù)據(jù)之間的轉(zhuǎn)換
類型定義第二章數(shù)據(jù)類型、運算符及其表達(dá)式主要內(nèi)容:本章授課理論課:
4學(xué)時實踐課:4學(xué)時第二章數(shù)據(jù)類型、運算符及其表達(dá)式教學(xué)目的及要求:
通過對本章的學(xué)習(xí),要求掌握C語言程式設(shè)計的基礎(chǔ)知識,能夠?qū)ψ償?shù)和常量進(jìn)行定義及使用,對常用的運算符及其運算式能夠熟練應(yīng)用?;静t解C語言不同類型數(shù)據(jù)間的轉(zhuǎn)換和類型定義。本章重點:
變數(shù)定義和應(yīng)用基本類型及其常量定義和應(yīng)用算術(shù)運算符、賦值運算符及其運算式關(guān)係運算符、邏輯運算符及其運算式本章難點:
逗號運算符、條件運算符及其運算式類型定義第二章數(shù)據(jù)類型、運算符及其表達(dá)式2.1常量和變數(shù)
常量
即在程式運行過程中其值不會改變的量。
變數(shù)
即在程式運行過程中其值可以改變的量。
識別字
用以標(biāo)識程式中用到的變數(shù)名、函數(shù)名、類型名、數(shù)組名、檔案名、符號常量名等的有效字元序列。識別字的命名規(guī)則:由字母(大、小寫均可)、數(shù)字及下劃線組成,且第一個字元必須是字母或下劃線。變數(shù)名
合法變數(shù)名:Year,Day,ATOK,x1,_CWS,_change,_to
不合法變數(shù)名:#123,.CUM,$100,1996Y,1-2-3-大,小寫字母有區(qū)別,一般變數(shù)名用小寫,組成變數(shù)名的有效字元數(shù)隨C語言的編譯系統(tǒng)而定,同一個函數(shù)內(nèi)所定義的變數(shù)不能同名。最基本的數(shù)據(jù)類型有四種:整型:int字元型:char單精確度型:float雙精度型:double2.2基本數(shù)據(jù)類型及其常量浮點型2.2.1整型變數(shù)及其常量
整型變數(shù)用以存放整型數(shù)據(jù).
一般定義形式:inti1,i2;
整型常量
C語言中可用三種數(shù)製錶示:
十進(jìn)位:
如250,23,-10等十六進(jìn)制:
以0X或0x開頭,如0X61(相當(dāng)97)
八進(jìn)制:以0開頭,如0141(相當(dāng)97)2.2.2浮點型變數(shù)及其常量
帶有小數(shù)點的數(shù)稱為浮點數(shù)或?qū)嵭蛿?shù)。浮點型變數(shù)分單精確度浮點型變數(shù)和雙精度浮點型變數(shù)。單精確度浮點型變數(shù)的定義方式:floatf1,f2;雙精度浮點型變數(shù)的定義方式:doubled1,d2;不同系統(tǒng)中,float型數(shù)據(jù)和double型數(shù)據(jù)所能提供的精度是有差異的。浮點型常量一般不分float型和double型,根據(jù)變數(shù)的類型來截取相應(yīng)的有效位數(shù)。兩種表示形式:(1)十進(jìn)位形式:由數(shù)字和小數(shù)點組成。如,21.34567,-4,30等。(2)指數(shù)形式:即用科學(xué)計數(shù)法。字母E和e之前必須有數(shù)字,且e後面的指數(shù)部分必須是整數(shù)。2.2.3字元型變數(shù)及其常量字元型變數(shù)用於存放一個字元。一般定義形式:charc1,c2;字元型常量用一對單引號括起來的一個字元。如‘A’,‘3’,‘#’等。轉(zhuǎn)義字元以‘\’開頭的特殊字元型常量?!甛n’換行字元‘\r’回車字元‘\b’退格字元‘\t’跳格字元‘\’’單引號字元‘\“’雙引號字元
2.2.4長整型、短整型和無符號型
長整型變數(shù)定義的一般形式:longintX;能表示的數(shù)值範(fàn)圍與電腦系統(tǒng)有關(guān),是int的兩倍。長整型常量:在整型常量的末尾加上字母L或l。例:x=9876543L;
短整型變數(shù)定義的一般形式:shortintx;能表示的數(shù)值範(fàn)圍與電腦系統(tǒng)有關(guān),有的與int相同,有的小於int。
無符號整型變數(shù)定義的一般形式:unsignedintx;用於存放非負(fù)整型數(shù)。與int型變數(shù)占相同的記憶體空間。
注:C語言只要求long型數(shù)據(jù)長度不短於int型,short型數(shù)據(jù)長度不長於int型,各數(shù)據(jù)類型所占存儲位元組數(shù)具體所使用系統(tǒng)及編譯器。2.2.5sizeof運算符
用於瞭解一個變數(shù)或某種數(shù)據(jù)類型的量在內(nèi)存中所占位元組數(shù)。Sizeof有兩種使用方法:
sizeof運算式如:當(dāng)x是整形變數(shù)的時候,sizeofx=2;
sizeof(類型名)
如:sizeof(float)=42.3算術(shù)運算符、賦值運算符及其運算式運算符的優(yōu)先順序及結(jié)合性優(yōu)先順序:一個運算式中,多個運算符運算的先後順序。結(jié)合性:一個運算對象的兩側(cè)的運算符的優(yōu)先順序相同時,進(jìn)行運算的結(jié)合方向。算術(shù)運算符和算術(shù)運算式
1.加、減、乘、除及取模運算符(自左至右)
+、-、*、/(運算符兩側(cè)是整數(shù),則其結(jié)果為整數(shù))、%(取兩個整型數(shù)相除的餘數(shù))。
2.增1、減1運算符(自右至左)運算對象只能是整型或字元型變數(shù)。
i++;先使用變數(shù)i的值,再使i的值加1。
++i;先使i的值加1,再先使用變數(shù)i的值。
i--;先使用變數(shù)i的值,再使i的值減1。
--i;先使i的值減1,再先使用變數(shù)i的值。賦值運算符和賦值運算式
1.賦值運算符(自右至左)
=
功能:將賦值運算符右邊的運算式的值賦給左邊的變數(shù)。例:x=23;f=23.5;h=‘A’;
2.複合賦值運算符(自右至左)
+=,-=,*=,/=,%=
例:x+=10;y*=20;舉例#include"stdio.h"voidmain(){inti,j;i=3;j=-i++;printf("%d,%d\n",j,i);system(“pause”)}#include"stdio.h"voidmain(){inta;a=12;a+=a-=a*a;printf("%d\n",a);system(“pause”)}a+=a-=a*a=>1.a-=a*a
即:a=a-a*a
2.a+=a
即:a=a+a
a+=a-=a*a=>a=(a-a*a)+(a-a*a)2.4關(guān)係運算符、邏輯運算符及其運算式關(guān)係運算符和關(guān)係運算式
1.關(guān)係運算符(自左至右)
共6種:
<、<=、>、>=、==、!=
後兩種運算符的優(yōu)先順序低於前4種。關(guān)係運算符的優(yōu)先順序低於算術(shù)運算符。
2.關(guān)係運算式用關(guān)係運算符將兩個運算量連接起來的有意義的式子。例:X>Y,A+B<=C+D。關(guān)係運算式是一個邏輯值“真”(用1表示)或“假”(用0表示)。邏輯運算符和邏輯運算式
1.邏輯運算符有三種:!、&&、||
優(yōu)先順序依次降低,“!”優(yōu)先順序高於算術(shù)運算符和關(guān)係運算符;&&、||優(yōu)先順序低於算術(shù)運算符和關(guān)係運算符。結(jié)合性:!自右至左。
&&、||自左至右。
2.邏輯運算式用邏輯運算符將關(guān)係運算式或邏輯量連接起來的式子。邏輯運算式結(jié)果是一個邏輯值“真”(用1表示)或“假”(用0表示)。但判斷一個量是否為“真”時,以非0表示“真”,以0表示“假”。#include"stdio.h"voidmain(void){inta=10,b=20,c=30;charx='a',y='b';printf("%d\n",a>b||b<c);printf("%d\n",!(x<y));system(“pause”);}舉例#include"stdio.h"voidmain(void){inta=10,b=20,c=30;charx='a',y='b';printf("%d,%d\n",a>b,b<c);printf("%d\n",x<y);system(“pause”);}2.5逗號運算符、條件運算符及其運算式
逗號運算符和逗號運算式
1.逗號運算符:,(自左至右)
優(yōu)先順序最低。
2.逗號運算式:一般形式:運算式1,運算式2,…,運算式n
求解過程:先求解運算式1,再求解運算式2,最後求解運算式n,逗號運算式的值為最右邊運算式n的值。例:a=6,a*3
條件運算符和條件運算式
1.條件運算符:?:(自右至左)唯一的三目運算符。
2.條件運算式一般形式:運算式1?運算式2:運算式3
功能:當(dāng)運算式1的值為“真”時,條件運算式的值取運算式2的值,當(dāng)運算式1的值為“假”時,條件運算式的值取運算式3的值。例:c=(a>b)?a:b;舉例#include"stdio.h"voidmain(void){inta=10,b=20,c=30,x;x=(a,b,c);printf("%d\n",x);}#include"stdio.h"voidmain(void){inta,b,max;scanf("%d,%d",&a,&b);max=(a>b)?a:b;printf("max=%d\n",max);}2.6變數(shù)的初始化
即在對變數(shù)進(jìn)行定義的同時,為其賦初值。例:int age=20;
char letter=‘A’;
int convert=‘b’-‘B’;
float average=3.2*9.8;int x=10,y=20,z=30;2.7不同類型數(shù)據(jù)之間的轉(zhuǎn)換
不同類型數(shù)據(jù)在進(jìn)行混合運算時,需進(jìn)行類型轉(zhuǎn)換,有兩種方式:1.自動類型轉(zhuǎn)換
2.強(qiáng)制類型轉(zhuǎn)換
C語言允許字元型數(shù)據(jù)和整型數(shù)據(jù)之間通用。2.7.1自動類型轉(zhuǎn)換自動類型轉(zhuǎn)換規(guī)則:當(dāng)單、雙精度浮點型數(shù)據(jù)賦給整型變數(shù)時,浮點數(shù)的小數(shù)部分將被捨棄,且需進(jìn)行相應(yīng)有效位數(shù)的截取。當(dāng)整型數(shù)據(jù)賦給浮點型變數(shù)時,數(shù)值上不發(fā)生任何變化。只要某個算術(shù)運算符的兩個運算對象中有一個是浮點數(shù),則運算將按浮點型格式來進(jìn)行。2.7.2強(qiáng)制類型轉(zhuǎn)換自動類型轉(zhuǎn)換達(dá)不到目的時,可以利用強(qiáng)制類型轉(zhuǎn)換。一般形式:(類型名)(運算式)例:(float)x/y說明:強(qiáng)制類型轉(zhuǎn)換後,得到的是一個所需類型的中間變數(shù),原來變數(shù)的類型沒有發(fā)生任何變化。舉例#include"stdio.h"voidmain(void){ inti='a'; charc=97; printf("%d,%c\n",c,c); printf("%d,%c\n",i,i);}#include"stdio.h"voidmain(void){ inti=20,j; floatf; j=i/40; f=(float)i/40; printf("%d\n",j); printf("%f\n",f);}2.8類型定義
C語言允許使用typedef語句定義新的類型名,以代替已有的類型名。例:typedefintcounter;
counterx,y;=>intx,y;說明: 1.typedef不能創(chuàng)建新的類型
2.typedef不能用以定義變數(shù).第二章數(shù)據(jù)類型、運算符及其表達(dá)式本章小結(jié):
本章主要介紹C語言程式設(shè)計中的常用數(shù)據(jù)類型,對變數(shù)和常量的定義和引用,對常用的運算符及其運算式應(yīng)用方法。簡單介紹C語言不同類型數(shù)據(jù)間的轉(zhuǎn)換方法和類型定義方法。
基本語句
數(shù)據(jù)的輸入
數(shù)據(jù)的輸出
第三章基本語句主要內(nèi)容:本章授課理論課:
2學(xué)時實踐課:2學(xué)時
第三章基本語句教學(xué)目的及要求:
通過對本章的學(xué)習(xí),要求掌握C語言程式設(shè)計中常用的基本語句和複合語句,熟悉數(shù)據(jù)的輸入和輸出方法。能夠調(diào)用常用的數(shù)據(jù)輸入和輸出函數(shù)。本章重點:
基本語句複合語句數(shù)據(jù)的輸入數(shù)據(jù)的輸出本章難點:數(shù)據(jù)的輸入數(shù)據(jù)的輸出
第三章基本語句語句和複合語句數(shù)據(jù)的輸入數(shù)據(jù)的輸出第三章基本語句3.1語句和複合語句
一個運算式的後面跟一個分號構(gòu)成語句。用左、右花括弧括起來的語句稱為複合語句。
一個複合語句在語法上等同於一個語句。例: x=a+b;
if(1)
{a=3;b=4;x=a*b;}第三章基本語句
字元輸入函數(shù)格式:getchar()
功能:接收從鍵盤輸入的一個字元。例:#include"stdio.h"voidmain(void){ charc;
c=getchar(); }3.2數(shù)據(jù)的輸入第三章基本語句格式輸入函數(shù)格式:scanf(格式控制,地址表);
功能:用以接收從鍵盤上輸入的多個任何類型的數(shù)據(jù)。1.格式控制由%和格式字元組成。作用是將輸入的數(shù)據(jù)轉(zhuǎn)換成指定的格式後存入到由地址表所指向的相應(yīng)的變數(shù)中。例:%c,%d,%f2.地址表由變數(shù)地址組成。變數(shù)地址由&和變數(shù)名組成。例:&a,&b3.2數(shù)據(jù)的輸入第三章基本語句格式字元d輸入十進(jìn)位整數(shù)(長整型用ld;短整型用hd)o輸入八進(jìn)制整數(shù)(長整型用lo;短整型用ho)x輸入十六進(jìn)制整數(shù)(長整型用lx;短整型用hx)c輸入單個字元f輸入浮點數(shù)e輸入浮點數(shù),作用與f相同.s輸入以‘\0’為結(jié)束標(biāo)緻的字串3.2數(shù)據(jù)的輸入第三章基本語句舉例#include"stdio.h"voidmain(void){ inti; floatf; charc; scanf("%d%f%c",&i,&f,&c); printf("%d,%f,%c\n",i,f,c);}3.2數(shù)據(jù)的輸入第三章基本語句字元輸出函數(shù) 格式:putchar(變數(shù)名)
功能:將變數(shù)中的字元輸出到螢?zāi)划?dāng)前游標(biāo)位置。 例:#include"stdio.h" voidmain(void) { charc; c=getchar(); putchar(c); }3.3數(shù)據(jù)的輸出第三章基本語句格式輸出函數(shù) 格式:printf(格式控制,輸出表); 功能:用以輸出多個任何類型的數(shù)據(jù)。
1.格式控制 由%和格式字元組成,作用是將要輸出的數(shù)據(jù)轉(zhuǎn)換為指定的格式後輸出。 例:%d,%f,%c 2.輸出表 由變數(shù)名組成。變數(shù)名間用逗號隔開。 例:a,b,c第三章基本語句3.3數(shù)據(jù)的輸出格式字元d 輸出十進(jìn)位整數(shù)(長整型用ld)o 輸出八進(jìn)制整數(shù)(長整型用lo)x 輸出十六進(jìn)制整數(shù)(長整型用lx)c 輸出單個字元f 輸出浮點數(shù)e 以科學(xué)計數(shù)法輸出浮點數(shù)s 輸出以‘\0’為結(jié)束標(biāo)緻的字串第三章基本語句3.3數(shù)據(jù)的輸出#include"stdio.h"voidmain(void){ charc1,c2; scanf("%c%c",&c1,&c2); ++c1; --c2;
printf("C1=%c,C2=%c",c1,c2);}第三章基本語句3.3數(shù)據(jù)的輸出舉例
第三章基本語句本章小結(jié):
本章在闡述C語言程式設(shè)計中常用的基本語句和複合語句基礎(chǔ)上,詳細(xì)介紹了數(shù)據(jù)的輸入和輸出的常用函數(shù)及其使用方法。第四章選擇結(jié)構(gòu)
主要內(nèi)容:
結(jié)構(gòu)化程式設(shè)計的三種基本結(jié)構(gòu)
IF-else選擇結(jié)構(gòu)多分支Switch選擇結(jié)構(gòu)本章授課理論課:
2學(xué)時實踐課:2學(xué)時教學(xué)目的及要求:
通過對本章的學(xué)習(xí),要求掌握C語言程式設(shè)計中的三種基本結(jié)構(gòu),把握選擇結(jié)構(gòu)的兩種常用語句結(jié)構(gòu)。基本瞭解C語言程式開發(fā)的選擇流程設(shè)計。第四章選擇結(jié)構(gòu)本章重點:
C語言程式設(shè)計的三種基本結(jié)構(gòu)
IF-else選擇語句結(jié)構(gòu)多分支Switch選擇語句結(jié)構(gòu)本章難點:
Switch多分支選擇結(jié)構(gòu)第四章選擇結(jié)構(gòu)
結(jié)構(gòu)化程式設(shè)計的三種基本結(jié)構(gòu)
1.順序結(jié)構(gòu)按語句的書寫順序依此執(zhí)行。
2.選擇結(jié)構(gòu)通過對特定條件的判斷,選擇一個分支執(zhí)行。
3.迴圈結(jié)構(gòu)在給定條件下,重複執(zhí)行某段程式,直到條件不滿足為止。AB第四章選擇結(jié)構(gòu)格式:if(運算式)
語句1else
語句2
功能:先計算運算式的值,若運算式的值為“真”(非0),則執(zhí)行語句1,否則,若運算式的值為“假”(為0),則執(zhí)行語句2。
說明:
1、語句1、語句2可以是單個語句,也可是複合語句。
2、if語句可以嵌套。(else總是與它前面的離它最近的if配對)。非0?YNAB4.1IF條件選擇語句第四章選擇結(jié)構(gòu)if語句舉例#include"stdio.h"main(){ charc1,c2; c1=getchar(); c2=getchar(); if(c1>c2) printf("%c\n",c1); else printf("%c\n",c2);}#include<stdio.h>main(){ inta,b,c,max; printf("Inputa,b,c:");scanf("%d,%d,%d",&a,&b,&c); if(a>b&&a>c) max=a; else if(b>c) max=b; else max=c;printf("max=%d\n",max);}4.1IF條件選擇語句第四章選擇結(jié)構(gòu)格式:switch(運算式){ case常量運算式1:
語句1 case常量運算式2:
語句2 …… case常量運算式n:
語句n [default: 語句n+1] }功能:先計算switch後面運算式的值,若此值等於某個case後面的常量運算式的值,則轉(zhuǎn)去執(zhí)行該case後面的語句去執(zhí)行;否則執(zhí)行default後面的語句。4.2多分支選擇語句第四章選擇結(jié)構(gòu)說明:
1.“運算式”及“常量運算式”的值,必須是整型或字元型。
2.case後面的常量運算式的值必須互不相同。
3.執(zhí)行完某個case後面的語句後,將自動轉(zhuǎn)到該語句後面的語句去執(zhí)行,直到遇到switch語句結(jié)束或“break”語句為止。
4.case後面的多個語句可以不用花括弧括起。
5.多個case後面的語句可以共用一組執(zhí)行語句。4.2多分支選擇語句第四章選擇結(jié)構(gòu) case4: case6: case9: case11:days=30;break; case2:if(year%4==0&&year%100!=0||year%400==0) days=29; else days=28;break; default: printf("Dataerror!");break; } printf("Days=%d",days);}4.3Switch語句舉例第四章選擇結(jié)構(gòu)#include<stdio.h>main(){ intyear,month,days; printf("Inputyearandmonth:"); scanf("%d%d",&year,&month); switch(month) { case1: case3: case5: case7: case8: case10: case12:days=31;break;本章小結(jié):
本章簡單介紹了C語言程式設(shè)計中的三種基本結(jié)構(gòu),重點系統(tǒng)介紹了選擇結(jié)構(gòu)的兩種常用語句結(jié)構(gòu)及其使用方法。第四章選擇結(jié)構(gòu)第五章迴圈結(jié)構(gòu)
主要內(nèi)容:
while迴圈語句
do-while迴圈語句
for迴圈語句
break和continue語句空操作語句和goto語句本章授課理論課:
4學(xué)時實踐課:4學(xué)時教學(xué)目的及要求:
通過對本章的學(xué)習(xí),要求熟悉C語言程式設(shè)計中常用的迴圈語句,包括while、do-while和for語句結(jié)構(gòu),並能夠熟練應(yīng)用它們?nèi)ピO(shè)計程式;掌握迴圈語句結(jié)構(gòu)配套使用的break和continue的用法;瞭解空操作語句和goto語句的用法;第五章迴圈結(jié)構(gòu)本章重點:
while、do-while和for迴圈語句
break和continue語句空操作和goto語句本章難點:
for迴圈語句
break和continue的用法區(qū)別第五章迴圈結(jié)構(gòu)while迴圈語句do-while迴圈語句for迴圈語句break語句和continue語句空操作語句和goto語句第五章迴圈結(jié)構(gòu)格式:while(運算式){
循環(huán)體
}功能:先計算運算式的值,若運算式的值為真,則執(zhí)行循環(huán)體,否則,執(zhí)行循環(huán)體後面的語句。運算式真假循環(huán)體第五章迴圈結(jié)構(gòu)5.1while迴圈語句While迴圈舉例#include"stdio.h"voidmain(){ inti=1,sum=0;
while(i<=100) { sum+=i; i=i+1; } printf("%d\n",sum);}第五章迴圈結(jié)構(gòu)5.1while迴圈語句格式:do{循環(huán)體}while(運算式);功能:先執(zhí)行一次循環(huán)體,再判斷運算式的值是否為“真”,若為“真”,繼續(xù)執(zhí)行循環(huán)體,直到運算式的值為“假”,退出迴圈。循環(huán)體運算式真假第五章迴圈結(jié)構(gòu)5.2do-while迴圈語句do-while迴圈語句舉例#include"stdio.h"voidmain(){ inti=1,sum=0;
do {sum+=i; i=i+1;} while(i<=100); printf("%d\n",sum);}第五章迴圈結(jié)構(gòu)5.2do-while迴圈語句格式:for(運算式1;運算式2;運算式3)
{循環(huán)體}執(zhí)行過程:1、先求解運算式1,2、再求解運算式2,若運算式2的值為“真”,則執(zhí)行循環(huán)體中的語句,接著求解運算式3,3、重複執(zhí)行步驟2),直到運算式2的值為“假”,退出迴圈。
求解運算式1運算式2執(zhí)行循環(huán)體求解運算式3退出迴圈真假第五章迴圈結(jié)構(gòu)5.3for迴圈語句for迴圈說明for語句中的任何一個運算式都可以省略,但其中分號不能省略。省略運算式2,相當(dāng)於死迴圈。此時應(yīng)在循環(huán)體中設(shè)置相應(yīng)語句結(jié)束迴圈。如循環(huán)體由多個語句組成,則必須用花括弧括起。運算式1和運算式3都可是逗號運算式。第五章迴圈結(jié)構(gòu)5.3for迴圈語句for迴圈舉例#include"stdio.h"voidmain(){ inti,sum;
for(i=1,sum=0;i<=100;i++) sum+=i; printf("%d\n",sum);}第五章迴圈結(jié)構(gòu)5.3for迴圈語句break語句格式:break;功能:終止switch語句或迴圈語句的執(zhí)行。continue語句格式:continue;功能:終止本次迴圈。第五章迴圈結(jié)構(gòu)5.4break和continueBreak、continue語句舉例#include"stdio.h"voidmain(){ inti,sum; for(i=1,sum=0;i<=100;i++){ if(sum>2000) break; sum+=i;} printf("%d\n",sum);}第五章迴圈結(jié)構(gòu)5.4break和continue#include"stdio.h"voidmain(){ intsum,i; charch; sum=0; for(i=0;i<10;i++){ ch=getchar(); if(ch<'0'||ch>'9') continue; sum++;} printf("sum=%d",sum);}第五章迴圈結(jié)構(gòu)Break、continue語句比較舉例#include"stdio.h"voidmain(){ intsum,i; charch; sum=0; for(i=0;i<10;i++){ ch=getchar(); if(ch<'0'||ch>'9') continue; sum++;} printf("sum=%d",sum);}#include"stdio.h"voidmain(){ intsum,i; charch; sum=0; for(i=0;i<10;i++){ ch=getchar(); if(ch<'0'||ch>'9') break; sum++;} printf("sum=%d",sum);}空操作語句 僅由一個分號組成,不進(jìn)行任何操作。goto語句 格式:goto標(biāo)號;
……
標(biāo)號:語句; 功能:將執(zhí)行流程轉(zhuǎn)到以該標(biāo)號為首碼的語句去執(zhí)行。 說明:標(biāo)號的命名規(guī)則與變數(shù)完全相同。第五章迴圈結(jié)構(gòu)5.5空操作和goto語句舉例#include"stdio.h"voidmain(){ intsum,i; charch; for(sum=0,i=1;i<=100;sum+=i,i++) ; printf("sum=%d\n",sum);}#include"stdio.h"voidmain(){ inti; floatsum; sum=1; i=2;L1:sum+=1/(float)i; i+=2; if(i<=50) gotoL1; printf("sum=%f\n",sum);}第五章迴圈結(jié)構(gòu)5.5空操作和goto語句本章小結(jié):
本章重點介紹了C語言程式設(shè)計中常用的迴圈語句及其使用方法,包括while、do-while和for語句結(jié)構(gòu),並通過例子說明了它們的使用方法;同時介紹了迴圈語句結(jié)構(gòu)配套使用的break和continue的用法;最後,對空操作語句和goto語句的用法作了簡單介紹;第五章迴圈結(jié)構(gòu)第六章數(shù)組
主要內(nèi)容:
一維數(shù)組定義、引用、初始化和舉例二維數(shù)組定義、引用、初始化和舉例字元數(shù)組定義、引用、初始化和舉例字串函數(shù)的應(yīng)用本章授課理論課:
4學(xué)時實踐課:4學(xué)時教學(xué)目的及要求:
通過對本章的學(xué)習(xí),要求掌握C語言一維數(shù)組、二維數(shù)組和字元數(shù)組的定義、引用及其初始化方法;初步認(rèn)識數(shù)組的應(yīng)用舉例使用,瞭解常用的字串處理函數(shù)。第六章數(shù)組本章重點:
一維數(shù)組的定義、引用、舉例和初始化二維數(shù)組的定義、引用、舉例和初始化字元數(shù)組的定義、引用、舉例和初始化字串處理函數(shù)本章難點:
一維數(shù)組、二維數(shù)組和字元數(shù)組的初始化第六章數(shù)組
一維數(shù)組
二維數(shù)組
字元數(shù)組和字串第六章數(shù)組一維數(shù)組的定義和引用 定義:類型說明符數(shù)組名[常量運算式]; 例:intage[10];
floata[10],f,b[20]; 說明:不允許動態(tài)定義數(shù)組。 如:inti;i=15;intdata[i]; 引用:數(shù)組名[下標(biāo)運算式]
例:a[0]=10;a[5]=2*a[0]; 說明:下標(biāo)從0開始,不允許一次引用整個數(shù)組,只能逐個引用每個數(shù)組元素。一維數(shù)組元素的初始化
staticinta[5]={1,2,3,4,5}; staticintdata[5]={5,4,3}; staticintdata[5]; staticintdata[]={1,2,3,4,5};第六章數(shù)組6.1一維數(shù)組舉例#include"stdio.h"voidmain(){ inti;
staticintx[]={10,8,7,6,5}; staticinty[]={-3,9,-10,-2,4}; intz[5]; for(i=0;i<5;i++) z[i]=x[i]+y[i]; for(i=0;i<5;i++) printf("%d\n",z[i]);}第六章數(shù)組6.1一維數(shù)組二維數(shù)組的定義和引用 定義:類型說明符數(shù)組名[常量運算式][常量運算式]; 例:int x[3][2];
float a[2][3],f,b[20]; 說明:數(shù)組元素的排列順序按行進(jìn)行。 引用:數(shù)組名[下標(biāo)運算式][下標(biāo)運算式]
例:a[0][1]=10;a[1][1]=2*a[0][1]; 說明:每個下標(biāo)從0開始,不允許一次引用整個數(shù)組,只能逐個引用每個數(shù)組元素。一維數(shù)組元素的初始化
staticinta[3][2]={1,2,3,4,5,6}; staticintdata[2][3]={5,4,3}; staticintdata[3][2]={{1},{2},{3}}; staticintdata[][2]={{1},{2,3},{4}};第六章數(shù)組6.2二維數(shù)組舉例#include"stdio.h"voidmain(){ intyear,month,day,days,i,leap; staticintmtable[][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},{0,31,29,31,30,31,30,31,31,30,31,30,31}}; printf("inputyear,month,day:"); scanf("%d%d%d",&year,&month,&day); leap=0; if(year%4==0&&year%100!=0||year%400==0) leap=1; days=day; for(i=1;i<month;i++) days+=mtable[leap][i]; printf("Days=%d",days);}第六章數(shù)組6.2二維數(shù)組字元數(shù)組
一維數(shù)組定義: char數(shù)組名[常量運算式];
二維數(shù)組定義: char數(shù)組名[常量運算式][常量運算式];
字元數(shù)組元素的引用: c[5]=‘B’;ch[1][2]=‘k’;
字元數(shù)組初始化: staticcharch[5]={‘G’,’O’,’O’,’D’,’!’}
說明:初值個數(shù)可以少於數(shù)組元素的個數(shù),不可多於。
第六章數(shù)組6.3字元數(shù)組和字串字元數(shù)組舉例#include"stdio.h"voidmain(){
staticchartext[]={'h','e','l','l','o'}; charbuff[5]; inti,flag; for(i=0;i<5;i++) buff[i]=getchar(); flag=0; for(i=0;i<5;i++) if(buff[i]!=text[i]) {flag=1; break;} if(flag) printf("Thiswordisnothello"); else printf("Thiswordishello");}第六章數(shù)組6.3字元數(shù)組和字串字串字串及其結(jié)束標(biāo)誌 字串是用雙引號括起來的字元序列。 字串利用字元數(shù)組存放。 字串結(jié)束標(biāo)誌:‘\0’
字串常量初始化數(shù)組: staticcharstr[]={“Happy”};
或:staticcharstr[]=“Happy”;字串的輸入和輸出 “%c”格式符:每次輸入或輸出一個字元。 “%s”格式符:每次輸入或輸出一個字串。第六章數(shù)組6.3字元數(shù)組和字串字串輸入輸出舉例#include"stdio.h"voidmain(){ charstr[10]; inti; printf("Inputastring:"); scanf("%s",str); i=0; while(str[i]!='\0') { printf("%c",str[i]); i++; }}第六章數(shù)組6.3字元數(shù)組和字串常用的字串處理函數(shù)
輸入字串函數(shù)
輸出字串函數(shù)
字串比較函數(shù)
字串拷貝函數(shù)
字串連接函數(shù)
字串測試長度函數(shù)第六章數(shù)組6.3字元數(shù)組和字串輸入字串函數(shù)格式:gets(字元數(shù)組名)功能:輸入一個字串。說明:
1.要用#include命令將“stdio.h”頭檔包含到檔中。
2.返回字元數(shù)組的首地址。例:charp[20];
……gets(p);第六章數(shù)組輸入字串函數(shù)舉例#include"stdio.h"main(){ charp[20]; gets(p); printf("%s\n",p);}第六章數(shù)組輸出字串函數(shù)格式:puts(字元數(shù)組名)功能:輸出以‘\0’結(jié)尾的字串。說明: 要用#include命令將“stdio.h”頭檔包含到檔中。 例: charp[20];
…… puts(p);第六章數(shù)組輸出字串函數(shù)舉例#include"stdio.h"main(){ charp[20]; gets(p); puts(p);}第六章數(shù)組字串比較函數(shù)格式:strcmp(字串1,字串2)功能:比較兩個字串。說明: R<0字串1<字串2 R=0字串1=字串2 R>0字串1>字串2例: intR; R=strcmp(“Good”,”Happy”)第六章數(shù)組字串比較函數(shù)舉例#include"stdio.h"#include"string.h"voidmain(){ charstr1[]={"abcde"},p[20]; intr; gets(p); r=strcmp(str1,p); printf("%d",r);}第六章數(shù)組字串拷貝函數(shù)格式: strcpy(字元數(shù)組1,字元數(shù)組2)功能:
將字元數(shù)組2(以‘\0’結(jié)尾)拷貝到字元數(shù)組1中。例: staticcharstr2[]=“string” charstr1[7];
…… strcpy(str1,str2);第六章數(shù)組字串拷貝函數(shù)舉例#include"stdio.h"#include"string.h"voidmain(){ charstr1[20],p[20]; gets(p); strcpy(str1,p); printf("%s\n",str1);}第六章數(shù)組字串連接函數(shù)格式:strcat(字串1,字串2)功能:連接兩個以‘\0’結(jié)尾的字串。說明: 字元數(shù)組1必須足夠長,以便容納字串2。例: staticcharstr1[20]=“Happy”staticcharstr2[10]=“NewYear” ……strcat(str1,str2);第六章數(shù)組字串連接函數(shù)舉例#include"stdio.h"#include"string.h"voidmain(){ charp1[]="abcde",p2[]="12345"; strcat(p1,p2); printf("%s\n",p1);}第六章數(shù)組字串測試長度函數(shù)格式:strlen(字串)功能:測試字串長度(不包括‘\0’)。例: strlencharstr[10]={“China”};printf(“%d”,strlen(str));第六章數(shù)組字串測試長度函數(shù)舉例#include"stdio.h"#include"string.h"voidmain(){ charp1[]="abcde"; inti,j; i=strlen(p1); j=strlen("1234567890"); printf("%d,%d\n",i,j);}第六章數(shù)組本章小結(jié):
本章主要介紹了C語言一維數(shù)組、二維數(shù)組和字元數(shù)組的定義、引用及其初始化方法;闡述了數(shù)組的應(yīng)用方法,並介紹了跟數(shù)組相關(guān)的常用的字串處理函數(shù)的用法。第六章數(shù)組第七章函數(shù)
主要內(nèi)容:
函數(shù)的概念和定義函數(shù)的常用調(diào)用方法函數(shù)的參數(shù)傳遞方式函數(shù)變數(shù)的作用域函數(shù)的作用域本章授課理論課:
6學(xué)時實踐課:6學(xué)時教學(xué)目的及要求:
通過對本章的學(xué)習(xí),要求掌握構(gòu)成C語言程式模組的單元--函數(shù)的特點及其定義和調(diào)用的方法;初步認(rèn)識C語言變數(shù)的作用範(fàn)圍,區(qū)分函數(shù)的作用域。第七章函數(shù)本章重點:
函數(shù)的定義
函數(shù)的調(diào)用方法函數(shù)的參數(shù)傳遞方式函數(shù)的作用域函數(shù)變數(shù)的作用域本章難點:
函數(shù)的調(diào)用方法及其參數(shù)傳遞方式第七章函數(shù)
函數(shù)的概念
函數(shù)的定義和調(diào)用
函數(shù)的返回值及其類型
函數(shù)的參數(shù)及其傳遞方式
函數(shù)的嵌套調(diào)用和遞歸調(diào)用
變數(shù)的作用域及存儲類型
內(nèi)部函數(shù)和外部函數(shù)第七章函數(shù)和變數(shù)一個C程式由一個或多個函數(shù)組成,必須有且僅有一個主函數(shù)(main())。函數(shù)之間沒有從屬關(guān)係。函數(shù)通過調(diào)用執(zhí)行,從main函數(shù)開始,main函數(shù)可以調(diào)用任何一個函數(shù),其他函數(shù)不能調(diào)用main函數(shù)。函數(shù)包括:標(biāo)準(zhǔn)庫函數(shù)和用戶自定義函數(shù)。第七章函數(shù)和變數(shù)7.1函數(shù)的概念函數(shù)的定義格式:類型說明符函數(shù)名(形參表)形參類型說明
{
說明部分語句部分(函數(shù)體部分)
}函數(shù)的調(diào)用格式:函數(shù)名(實參表);例第七章函數(shù)和變數(shù)7.2函數(shù)的定義和調(diào)用函數(shù)的定義和調(diào)用舉例#include"stdio.h"intmax(inta,intb){inti;i=(a>b)?a:b;return(i);}main(){intx=10,y=20,temp;
temp=max(x,y);printf("Themaxis%d\n",temp);system("pause");}第七章函數(shù)和變數(shù)7.2函數(shù)的定義和調(diào)用返回語句 格式: return[(運算式)]; 或: return[運算式];返回值類型
C語言規(guī)定第七章函數(shù)和變數(shù)7.3函數(shù)返回值與類型C語言規(guī)定在調(diào)用函數(shù)中,通常應(yīng)對被調(diào)用函數(shù)的返回值類型進(jìn)行說明例: main()
{ floatcount();
floats;
…… s=count(20);
…… }第七章函數(shù)和變數(shù)7.3函數(shù)返回值與類型當(dāng)被調(diào)用函數(shù)的定義位於調(diào)用函數(shù)之前時可不必說明例: floatcount(n)
intn;
{ floats;
…… return(s);
} main()
{ floats;
…… s=count(10);
…… }第七章函數(shù)和變數(shù)7.3函數(shù)返回值與類型允許在所有函數(shù)的外面、檔的開頭對函數(shù)的類型進(jìn)行說明,而在調(diào)用函數(shù)中便可以不對被調(diào)用函數(shù)的類型進(jìn)行說明。例: floatcount();
main()
{ floats;
…… s=count(10);
…… }
floatcount(n)
intn;
{ floats;
…… return(s);
}第七章函數(shù)和變數(shù)7.3函數(shù)返回值與類型當(dāng)函數(shù)的返回值為int型時,在函數(shù)定義時,返回值的類型說明可以省略。當(dāng)函數(shù)沒有返回值時,函數(shù)的返回值類型可說明為void型。例: #include"stdio.h" voidabc() { printf("good!"); } main() { abc(); }第七章函數(shù)和變數(shù)7.3函數(shù)返回值與類型函數(shù)返回值類型一般應(yīng)與return語句中的運算式的值的類型一致,若不同,則以函數(shù)定義時的返回值類型說明為準(zhǔn)。允許在沒有返回值的函數(shù)中使用return語句,以結(jié)束函數(shù)的執(zhí)行,返回主調(diào)函數(shù)。
格式:return第七章函數(shù)和變數(shù)7.3函數(shù)返回值與類型實參和形參
實參:函數(shù)調(diào)用時,函數(shù)名後面的參數(shù) 形參:函數(shù)定義時,函數(shù)名後面的參數(shù)。一般變數(shù)(包括數(shù)組元素)作函數(shù)參數(shù)
實參—>形參 (單向)值傳遞 形參值改變不影響實參。數(shù)組名作函數(shù)參數(shù)
實參和形參共占一段存儲單元 (雙向)地址傳遞 形參值的改變將影響實參。第七章函數(shù)和變數(shù)7.4參數(shù)及傳遞方式一般變數(shù)(包括數(shù)組元素)作函數(shù)參數(shù)#include"stdio.h"intmult10(intn){ n*=10; return(n);}main(){ intnum; intresult; num=5; result=mult10(num); printf("result=%d\n",result); printf("num=%d\n",num);}第七章函數(shù)和變數(shù)7.4參數(shù)及傳遞方式數(shù)組名作函數(shù)參數(shù)#include"stdio.h"voidADD1(inta[],intn){ inti; for(i=0;i<n;i++) a[i]++;}main(){ staticintarray[]={0,1,2,3,4,5,6,7,8,9}; inti; ADD1(array,10); for(i=0;i<10;i++) printf("%d",array[i]);}第七章函數(shù)和變數(shù)7.4參數(shù)及傳遞方式函數(shù)的嵌套調(diào)用 即一個函數(shù)可以被其他函數(shù)調(diào)用,也可調(diào)用其他函數(shù)。函數(shù)的遞歸調(diào)用
直接遞歸調(diào)用: 一個函數(shù)可直接調(diào)用該函數(shù)本身。
間接遞歸調(diào)用: 一個函數(shù)可間接調(diào)用該函數(shù)本身。第七章函數(shù)和變數(shù)7.5嵌套和遞歸調(diào)用函數(shù)的嵌套調(diào)用#include"stdio.h"intSADD(intn){ inti,sum=0; for(i=1;i<=n;i++) sum+=i; return(sum);}intsmul(intn){ intm,d;
m=SADD(n); d=2*m-1; eturn(d);}main(){ inti,n,d; intflag; printf("Inputanumber:"); scanf("%d",&n);
d=smul(n); flag=0; for(i=0;i<n;i++) { printf("%d",d); d-=2; flag++; if(flag==5) { printf("\n");flag=0; } }}第七章函數(shù)和變數(shù)7.5嵌套和遞歸調(diào)用直接遞歸調(diào)用floatfunc(n)intn;{ intm;
floatf;
…… f=func(m);
……}第七章函數(shù)和變數(shù)7.5嵌套和遞歸調(diào)用間接遞歸調(diào)用func1(n)intn;{ intm;
…… func2(m);
……}func2(x)intx;{ int
y;
…… func1(y);
……}第七章函數(shù)和變數(shù)7.5嵌套和遞歸調(diào)用函數(shù)的遞歸調(diào)用#include"stdio.h"main(){ intn; longintresult; longintfact(int); while(1) { printf("Inputanumber:"); scanf("%d",&n); if(n>=0) break; } result=fact(n); printf("Result=%ld",result);}longintfact(intn){ longintf; if(n==0) f=1; else f=n*fact(n-1); return(f);}第七章函數(shù)和變數(shù)7.5嵌套和遞歸調(diào)用
一般概念
局部變數(shù)及存儲類型
全局變數(shù)及存儲類型第七章函數(shù)和變數(shù)7.6變數(shù)作用域及存儲類型一般概念C語言所占存儲空間分為: 程式區(qū):存放可執(zhí)行的程式的機(jī)器指令。 靜態(tài)存儲區(qū):存放需佔用固定存儲單元的變數(shù)。 動態(tài)存儲區(qū):存放不需佔用固定存儲單元的變數(shù)。變數(shù)的定義包含三個方面: 變數(shù)的數(shù)據(jù)類型 變數(shù)的作用域:一個變數(shù)能夠起作用的程式範(fàn)圍。 變數(shù)的存儲類型:變數(shù)在內(nèi)存中的存儲方法。第七章函數(shù)和變數(shù)7.6變數(shù)作用域及存儲類型局部變數(shù)及存儲類型局部變數(shù): 在函數(shù)內(nèi)部定義的變數(shù)。局部變數(shù)的作用域:僅限於定義它的函數(shù)。局部變數(shù)的三種存儲類型:
自動類(auto)
靜態(tài)類(static)
寄存器類(register)第七章函數(shù)和變數(shù)7.6變數(shù)作用域及存儲類型自動類(auto)變數(shù)
在函數(shù)內(nèi)部定義的,沒有指定其他存儲類型的變數(shù)。格式:[auto]類型說明符變數(shù)表在動態(tài)存儲區(qū)分配存儲單元,函數(shù)調(diào)用結(jié)束時,其中的數(shù)據(jù)被釋放,每調(diào)用一次函數(shù)都需重新賦初值一次。#include"stdio.h"voidtest_auto(){ intva=0; printf("auto=%d\n",va); ++va;}main(){ inti; for(i=0;i<4;i++) test_auto();}第七章函數(shù)和變數(shù)7.6變數(shù)作用域及存儲類型靜態(tài)類(static)變數(shù)
在函數(shù)內(nèi)用static定義的變數(shù)。格式:static類型說明符變數(shù)表在靜態(tài)存儲區(qū)分配存儲單元,函數(shù)調(diào)用結(jié)束後其中數(shù)據(jù)並不釋放。#include"stdio.h"voidtest_static(){
staticintvs=0; printf("static=%d\n",vs); ++vs;}main(){ inti; for(i=0;i<4;i++) test_static();}第七章函數(shù)和變數(shù)7.6變數(shù)作用域及存儲類型寄存器類(register)變數(shù)用寄存器存放值的變數(shù)。格式:
register類型說明符變數(shù)表能被說明為寄存器類變數(shù)的數(shù)據(jù)類型只有char、shortint、unsignedint、int和指針類型。第七章函數(shù)和變數(shù)7.6變數(shù)作用域及存儲類型全局變數(shù)及存儲類型全局變數(shù):
在函數(shù)外定義的變數(shù)。作用域:
從定義位置開始到本源檔結(jié)束。所有全局變數(shù)都在靜態(tài)存儲區(qū)分配存儲單元。默認(rèn)初值為0。全局變數(shù)的兩種存儲類型:
外部的(extern)
靜態(tài)的(static)第七章函數(shù)和變數(shù)7.6變數(shù)作用域及存儲類型外部變數(shù)
沒有說明為static的全局變數(shù)稱外部變數(shù)。一個C語言程式可由多個原始檔案組成,如果一個檔要引用另一個檔中定義的外部變數(shù),需用extern關(guān)鍵字說明,一般應(yīng)在檔的開頭且位於所有函數(shù)的外面。如在同一個檔中的全局變數(shù)的定義位於使用它的函數(shù)後面,可在要使用該全局變數(shù)的函數(shù)中,用extern說明,再使用它(見例)。格式:
extern數(shù)據(jù)類型變數(shù)名檔f1.c的內(nèi)容:#include"stdio.h"intx;main(){ intsum,y; scanf("%d",&y); store(); sum=x+y; printf("sum=%d",sum);}檔f2.c的內(nèi)容:externintx;voidstore(){ x=10;}第七章函數(shù)和變數(shù)7.6變數(shù)作用域及存儲類型例#include"stdio.h"main(){
externintx,y; intm; scanf("%d%d",&x,&y); m=(x<y)?x:y; printf("Min=%d",m);}
intx,y;第七章函數(shù)和變數(shù)7.6變數(shù)作用域及存儲類型靜態(tài)(static)外部變數(shù)
若希望在一個檔中定義的全局變數(shù)的作用域僅限於此檔中,則可在定義全局變數(shù)的類型說明符的前面使用static關(guān)鍵字。格式:
static類型說明符變數(shù)名作用域:從定義位置開始到該檔結(jié)束。file1.cstaticinta;main(){……}file2.cexterninta;fun(n)intn;{ …… a=a*n; ……}第七章函數(shù)和變數(shù)7.6變數(shù)作用域及存儲類型
內(nèi)部函數(shù)只能在定義它的檔中被調(diào)用,不能被其他檔中的函數(shù)所調(diào)用。定義格式:
static類型說明符函數(shù)名(參數(shù)表)
外部函數(shù)可以被其他檔中的函數(shù)所調(diào)用。可在定義和調(diào)用函數(shù)時使用extern說明。定義函數(shù)時extern可以省略。第七章函數(shù)和變數(shù)7.7內(nèi)部函數(shù)和外部函數(shù)外部函數(shù)file1.cmain(){
externvoidinput(); charbuff[100]; ...... input(buff); ......}file2.cexternvoidinput(b)charb[100];{ ......}第七章函數(shù)和變數(shù)7.7內(nèi)部函數(shù)和外部函數(shù)本章小結(jié):
本章系統(tǒng)介紹了函數(shù)的特點及其定義和調(diào)用的方法;簡單介紹了C語言變數(shù)的作用域和函數(shù)的作用域。第七章函數(shù)第八章結(jié)構(gòu)和聯(lián)合
主要內(nèi)容:
結(jié)構(gòu)體的定義、引用及其初始化結(jié)構(gòu)體數(shù)組結(jié)構(gòu)體的嵌套聯(lián)合枚舉本章授課理論課:
4學(xué)時實踐課:4學(xué)時教學(xué)目的及要求:
通過對本章的學(xué)習(xí),要求掌握C語言結(jié)構(gòu)體的特點及其定義、引用和初始化方法;在此基礎(chǔ)上,初步認(rèn)識結(jié)構(gòu)體數(shù)組,結(jié)構(gòu)體的嵌套方法;瞭解聯(lián)合和枚舉的定義、引用的方法。第八章結(jié)構(gòu)和聯(lián)合本章重點:
結(jié)構(gòu)體的定義、引用和初始化
結(jié)構(gòu)體數(shù)組結(jié)構(gòu)體的嵌套聯(lián)合的定義、引用枚舉的定義、引用本章難點:
結(jié)構(gòu)體數(shù)組的定義和引用第八章結(jié)構(gòu)和聯(lián)合結(jié)構(gòu)類型變數(shù)的定義結(jié)構(gòu)類型變數(shù)的引用結(jié)構(gòu)的初始化結(jié)構(gòu)和函數(shù)結(jié)構(gòu)和數(shù)組結(jié)構(gòu)的嵌套聯(lián)合枚舉第八章結(jié)構(gòu)和聯(lián)合先定義結(jié)構(gòu)類型,再定義結(jié)構(gòu)變數(shù)在定義結(jié)構(gòu)類型的同時定義結(jié)構(gòu)變數(shù)直接定義結(jié)構(gòu)變數(shù)定義結(jié)構(gòu)類型名8.1
結(jié)構(gòu)類型變數(shù)的定義第八章結(jié)構(gòu)和聯(lián)合先定義結(jié)構(gòu)類型,再定義結(jié)構(gòu)變數(shù)定義結(jié)構(gòu)格式:
struct結(jié)構(gòu)名
{
成員表
};定義結(jié)構(gòu)變數(shù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 智能物聯(lián)網(wǎng)面試題目及答案
- 運行協(xié)同制度
- 2026年及未來5年市場數(shù)據(jù)中國甘肅省文旅行業(yè)市場深度分析及發(fā)展趨勢預(yù)測報告
- 路燈管護(hù)制度
- 試論我國離婚經(jīng)濟(jì)補(bǔ)償制度
- 行政處罰案件預(yù)警制度
- 2025年泰安下半年事業(yè)編考試及答案
- 2025年建行24年校招筆試及答案
- 2025年豪森PV筆試及答案
- 2025年天津文職考試筆試題及答案
- 員工解除競業(yè)協(xié)議通知書
- 【語文】太原市小學(xué)一年級上冊期末試題(含答案)
- 儲能電站員工轉(zhuǎn)正述職報告
- 靜脈炎處理方法
- 醫(yī)院網(wǎng)絡(luò)安全建設(shè)規(guī)劃
- 不銹鋼護(hù)欄施工方案范文
- 商業(yè)地產(chǎn)物業(yè)管理運營手冊
- 2025及未來5年中國天然植物粉市場調(diào)查、數(shù)據(jù)監(jiān)測研究報告
- 焦?fàn)t安全生產(chǎn)規(guī)程講解
- 關(guān)鍵崗位人員風(fēng)險管控與預(yù)警體系
- 加班工時管控改善方案
評論
0/150
提交評論