當前位置:首頁 » 編程語言 » c語言程序教案

c語言程序教案

發布時間: 2022-06-15 01:26:52

1. 求c語言說課稿

《C語言程序設計》說課教案

授課班級:07應用電子

授課課時:2課時

授課地點:計算機實驗室

課題 製作數字電子時鍾―――循環嵌套

一、教學目標

1、通過本次課教學,學生能進一步理解順序、分支和循環三種基本結構,特別是While、Do-While、for三種循環循環語句的使用;

2、掌握循環嵌套概念;

3、掌握多種循環程序設計方法並根據任務要求 「製作數字電子時鍾」;

4、通過本次任務,了解gotoxy()和Clrscr()函數的作用,並掌握這兩個函數在實際應用程序中的使用方法。

5、技能目標:培養學生邏輯思維能力、綜合運用知識的能力和自主學習能力;

二、教材分析

選用教材為李志球、劉昊編著的《C語言程序設計教程》(第二版),該教材由電子工業出版社出版,教材特點如下:

1、在內容上體現科學性、時代性、實用性,編排上面向應用,理論與實踐有機結合;

2、採用任務驅動、項目教學等教學手段,全書圍繞項目「學生成績管理系統」作為案例,貫穿整個課程進行難點講解,以實際應用作為突破口,使學生能夠真實體驗到知識的實際應用,提高興趣,促進理解;教學與項目開發融為一體,淺顯易懂,符合高職學生認知規律。

3、實驗實訓環節結合教學內容,實驗項目豐富。課程設計中案例學生熟悉。

本節課教學內容參考教材第4章的4.4節:循環嵌套。

三、學生分析

07應用電子是普招類(高中畢業生)學生,它們高中期間文化基礎較扎實,但計算機專業知識薄弱,C語言程序設計是他們學習的第一門計算機語言類課程,開始學習時較困難,但入門提高較快。本次課的教學內容中循環嵌套概念他們很容易理解,簡單的多重循環編程對他們不難,但循環嵌套在實際應用中的編程較為困難,如本次課的任務「製作數字電子時鍾」牽涉許多知識,如屏幕定位、輸入初始時間等。

另外,高職學生對於上機實際操作要比學習理論知識更為有興趣;簡單的實驗項目都能完成,但解決實際應用問題的能力也較差。因此,在教學中通過演示讓學生有感性認識,提高學習興趣;通過提出問題讓學生討論議一議,主動思考如何解決;通過一個教學任務讓學生動手做一做。

四、教學重點、難點及解決辦法

1、本次課教學重點

1)循環嵌套概念;

2)gotoxy()和Clrscr()函數使用方法;

3)循環嵌套結構程序設計方法及實際應用。

在教學過程的敘述中,要抓住教學的重點、最能體現教學理念的內容和最能展示教學藝術的環節,作較為詳細的敘述。

2、本次課教學難點

1)循環嵌套編程

2)演算法分析及程序結構

3)編程完成「製作數字電子時鍾」

3、難點解決辦法

1)通過演示讓學生有感性認識,並從for語句基本語法入手,逐步引入循環嵌套概念,弱化實用性不強的細節;

2)圍繞任務「製作數字電子時鍾」程進行難點講解,以實際應用作為突破口,使學生能理解循環嵌套在實際中的應用,提高學習興趣;

3)針對難點設置上機實際操作內容,進一步掌握循環嵌套程序設計方法。

4)在實驗實訓過程中布置任務項目,通過實踐環節進一步理解和掌握重點難點,達到學習目的。

五、教學理念、方法及手段

本次課採用理(論)實(踐)一體化教學理念通過任務驅動(項目教學)、講練結合等教學手段。

1、任務驅動:通過「製作數字電子時鍾」這一任務,掌握循環嵌套程序設計認方法。並掌握相應知識點,突出重點,分解難點。

2、講練結合:授課地點為計算機實驗室,採用邊講邊練的教學互動形式。教學過程中,適當安排學生在計算機上進行進行實際程序設計,通過運行調試自己設計的程序,讓學生親自觀察和體驗程序設計的成功感受,加深知識的理解。

六、教學設計(時間分配)

1、任務提出,演示成果程序,明確目標,提出要求。(2分鍾)

(1)演示成果程序,在屏幕固定位置顯示「製作數字電子時鍾」。

(2)任務分析:完成本次課的任務所需知識―――三種基本程序設計結構。

2、知識回顧(2分鍾)

循環結構概念、三種循環語句(while、do-while、for)、當型和直到型循環、重點語句for語句應用、注意事項。

3、上機實訓1(2分鍾)

簡單程序:用for語句編程,實現在屏幕上顯示0、1、2……59。

(上機技能訓練的操作、指導、輔導過程,以學生實際操作動手為主,教師進行輔導指導、師生共同探討完成,應充分體現學生的主體地位)

思考提問:如何讓0-59重復變化,以接近實際生活中秒的變化情況。

4、導入新課(6分鍾)

(1)通過練習1,分析在屏幕上顯示秒的變化程序中存在的問題。一是數字「0-59」以滾動卷屏方式顯示;二是每個數字顯示速度太快,如何實現以實際一秒時間顯示一個數。

第一個問題使用gotoxy()函數或clrscr()函數解決;第二個問題在程序中每顯示一秒後都設置一個時間延遲,時間延遲用方法空循環結構實現,它的位置在循環內屏幕每顯示一個數值後。通過講解解決第二個問題的程序結構,引入本次課新知識―――循環嵌套概念。

for(s=0;s<=59;s++)

{printf("\%2d",s);

for (i=1;i<=200000000;i++); }

(2)循環嵌套概念、結構和程序設計時注意事項。

5、上機實訓2(5分鍾)

使用循環嵌套結構編程,在屏幕固定位置能以分秒變化的時鍾:

10:11

編程和上機操作時要理解兩點:一是gotoxy()函數的使用,二是空循環實現延時循環終值的調試,以接近實際生活中時間變化。

本部分內容所用到知識是本次課的核心,是基本的能力目標,所以教學時要以重點內容處理。

6、程序設計講解(4分鍾)

編程完成本次課任務,製作一個帶有時、分、秒變化的數字電子時鍾。(四重循環)。

(1)演算法分析

(2)定義變數及類型

(3)程序結構設計

(3)源程序核心結構編程

7、上機實訓3(5分鍾)

(1)調試程序時要注意觀察程序運行情況,調整空循環變數i的終值,盡量與實際運轉時間一致。計算機運行速度越快,則這個數值越大。

(2)本程序需運行24小時才能結束,如果要停止程序運行,可以按Ctrl-C或連續按兩次Ctrl-Break強制中斷程序運行。

(3)修改變數i類型,將它定義為整形後再次運行程序,觀察運行結果,分析程序出錯原因,提醒以後編程時注意。

8、提出問題,任務完善―――源程序提高與擴展 之一(4分鍾)

前面的程序每次運行都從0點0分0秒開始,不能從當前實際時間開始運行。解決問題的辦法可以在程序第一次循環開始時輸入一次當前實際時間。為了只在開始運行時設置一次初始時間,可以引入一個邏輯變數first,其初始值為0 ,輸入初始時間後,將其值置為非0。在後面程序運行中,通過if語句控制不再需要輸入初始時間。

9、上機實訓4(5分鍾)

上機修改程序,使數字電子鍾能從指定時間(輸入初始時間)開始運轉。

10、思考和作業(5分鍾)

(1)源程序提高與擴展 之二:本程序只能運行24小時,請同學們將程序進一步改進,使它能顯示年、月、日、星期、時、分、秒等數據的電子鍾。

(2)「九九乘法表」。

10、課堂小結及作業(5分鍾)

11、Question & Answer(1-2分鍾)

七、學法指導

1、鼓勵學生自主探索和合作交流。引導學生自主地從事觀察、分析、交流等活動,使學生形成對計算機語言知識有效的學習策略。

2、鼓勵與提倡解決問題的多樣性,引導學生在與他人的交流中去選擇合適的策略,豐富自己的思維方式,獲得成功的體驗和不同的發展。

3、引導學生將所學計算機知識應用到其他學科中去,使學生覺得計算機有很用,同時也培養了學生邏輯思維能力。

2. 求冒泡排序C語言的教案,完整版!高分

#include<stdio.h>
void main()
{
int i,j,p,q,s,a[10];
printf("\n input 10 numbers:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++){
p=i;q=a[i];
for(j=i+1;j<10;j++)
if(q<a[j]) { p=j;q=a[j]; }
if(i!=p)
{s=a[i];
a[i]=a[p];
a[p]=s; }
printf("%d",a[i]);
}
}
______
本常式序中用了兩個並列的for循環語句,在第二個for 語句中又嵌套了一個循環語句。第一個for語句用於輸入10個元素的初值。第二個for語句用於排序。本程序的排序採用逐個比較的方法進行。在i次循環時,把第一個元素的下標i賦於p,而把該下標變數值a[i]賦於q。然後進入小循環,從a[i+1]起到最後一個元素止逐個與a[i]作比較,有比a[i]大者則將其下標送p,元素值送q。一次循環結束後,p即為最大元素的下標,q則為該元素值。若此時i≠p,說明p,q值均已不是進入小循環之前所賦之值,則交換a[i]和a[p]之值。 此時a[i]為已排序完畢的元素。輸出該值之後轉入下一次循環。對i+1以後各個元素排序。

3. C語言程序設計

5.3 if語句
用if語句可以構成分支結構。它根據給定的條件進行判斷,以決定執行某個分支程序段。C語言的if語句有三種基本形式。
5.3.1 if語句的三種形式
1. 第一種形式為基本形式:if
if(表達式) 語句
其語義是:如果表達式的值為真,則執行其後的語句, 否則不執行該語句。其過程可表示為下圖。

【例5.3】
main(){
int a,b,max;
printf("\n input two numbers: ");
scanf("%d%d",&a,&b);
max=a;
if (max<b) max=b;
printf("max=%d",max);
}

本常式序中,輸入兩個數a,b。把a先賦予變數max,再用if語句判別max和b的大小,如max小於b,則把b賦予max。因此max中總是大數,最後輸出max的值。
2. 第二種形式為: if-else
if(表達式)
語句1;
else
語句2;
其語義是:如果表達式的值為真,則執行語句1,否則執行語句2 。
其執行過程可表示為下圖。

【例5.4】
main(){
int a, b;
printf("input two numbers: ");
scanf("%d%d",&a,&b);
if(a>b)
printf("max=%d\n",a);
else
printf("max=%d\n",b);
}

輸入兩個整數,輸出其中的大數。
改用if-else語句判別a,b的大小,若a大,則輸出a,否則輸出b。
3. 第三種形式為if-else-if形式
前二種形式的if語句一般都用於兩個分支的情況。 當有多個分支選擇時,可採用if-else-if語句,其一般形式為:
if(表達式1)
語句1;
else if(表達式2)
語句2;
else if(表達式3)
語句3;

else if(表達式m)
語句m;
else
語句n;
其語義是:依次判斷表達式的值,當出現某個值為真時,則執行其對應的語句。然後跳到整個if語句之外繼續執行程序。 如果所有的表達式均為假,則執行語句n。然後繼續執行後續程序。 if-else-if語句的執行過程如圖3—3所示。

【例5.5】
#include"stdio.h"
main(){
char c;
printf("input a character: ");
c=getchar();
if(c<32)
printf("This is a control character\n");
elseif(c>='0'&&c<='9')
printf("This is a digit\n");
elseif(c>='A'&&c<='Z')
printf("This is a capital letter\n");
elseif(c>='a'&&c<='z')
printf("This is a small letter\n");
else
printf("This is an other character\n");
}

本例要求判別鍵盤輸入字元的類別。可以根據輸入字元的ASCII碼來判別類型。由ASCII碼表可知ASCII值小於32的為控制字元。 在「0」和「9」之間的為數字,在「A」和「Z」之間為大寫字母, 在「a」和「z」之間為小寫字母,其餘則為其它字元。 這是一個多分
支選擇的問題,用if-else-if語句編程,判斷輸入字元ASCII碼所在的范圍,分別給出不同的輸出。例如輸入為「g」,輸出顯示它為小寫字元。
4. 在使用if語句中還應注意以下問題:
1) 在三種形式的if語句中,在if關鍵字之後均為表達式。 該表達式通常是邏輯表達式或關系表達式, 但也可以是其它表達式,如賦值表達式等,甚至也可以是一個變數。
例如:
if(a=5) 語句;
if(b) 語句;
都是允許的。只要表達式的值為非0,即為「真」。
如在:
if(a=5)…;
中表達式的值永遠為非0,所以其後的語句總是要執行的,當然這種情況在程序中不一定會出現,但在語法上是合法的。
又如,有程序段:
if(a=b)
printf("%d",a);
else
printf("a=0");
本語句的語義是,把b值賦予a,如為非0則輸出該值,否則輸出「a=0」字元串。這種用法在程序中是經常出現的。
2) 在if語句中,條件判斷表達式必須用括弧括起來,在語句之後必須加分號。
3) 在if語句的三種形式中,所有的語句應為單個語句,如果要想在滿足條件時執行一組(多個)語句,則必須把這一組語句用{}括起來組成一個復合語句。但要注意的是在}之後不能再加分號。
例如:
if(a>b)
{a++;
b++;}
else
{a=0;
b=10;}
5.3.2 if語句的嵌套
當if語句中的執行語句又是if語句時,則構成了if 語句嵌套的情形。
其一般形式可表示如下:
if(表達式)
if語句;
或者為
if(表達式)
if語句;
else
if語句;
在嵌套內的if語句可能又是if-else型的,這將會出現多個if和多個else重疊的情況,這時要特別注意if和else的配對問題。
例如:
if(表達式1)
if(表達式2)
語句1;
else
語句2;
其中的else究竟是與哪一個if配對呢?
應該理解為:
if(表達式1)
if(表達式2)
語句1;
else
語句2;
還是應理解為:
if(表達式1)
if(表達式2)
語句1;
else
語句2;
為了避免這種二義性,C語言規定,else 總是與它前面最近的if配對,因此對上述例子應按前一種情況理解。
【例5.6】
main(){
int a,b;
printf("please input A,B: ");
scanf("%d%d",&a,&b);
if(a!=b)
if(a>b) printf("A>B\n");
else printf("A<B\n");
else printf("A=B\n");
}

比較兩個數的大小關系。
本例中用了if語句的嵌套結構。採用嵌套結構實質上是為了進行多分支選擇,實際上有三種選擇即A>B、A<B或A=B。這種問題用if-else-if語句也可以完成。而且程序更加清晰。因此,在一般情況下較少使用if語句的嵌套結構。以使程序更便於閱讀理解。
【例5.7】
main(){
int a,b;
printf("please input A,B: ");
scanf("%d%d",&a,&b);
if(a==b) printf("A=B\n");
else if(a>b) printf("A>B\n");
else printf("A<B\n");
}

4. C語言求編程教學

先貼代碼,有興趣的話可以看看下面的原理。

#include<reg52.h>

#defineCO_12_MHZ
/*
*Timing50milliseconds
*/
#defineTH_VALUE(0x3c)
#defineTL_VALUE(0xb0)

#if(definedCO_12_MHZ)
#defineTIME_3_SECOND(60)
#elif(definedCO_6_MHZ)
#defineTIME_3_SECOND(30)
#endif

sbitled=P0^0;
intflag=0;

voidtime_3_second(void)interrupt1{

TH0=TH_VALUE;/**/
TL0=TL_VALUE;/**/
if(++flag==TIME_3_SECOND){
led=~led;
flag=0;
}
}

intmain(void){

led=1;
TMOD=0x01;/*Selectionmode1*/
TH0=TH_VALUE;/*Settimeconstantforhigh8bit*/
TL0=TL_VALUE;/*Settimeconstantforlow8bit*/
TR0=1;/*StartupT0*/
ET0=1;/*EnableT0interrupt*/
EA=1;/*EnableCPUinterrupt*/

while(1);

return0;
}

根據公式 t = Tc * (2^L - TC), t為需要定時的時間,L是計數長度,根據選擇定時的模式而定,Tc為機器周期,所以Tc=12/Fosc, Fosc為晶振頻率,TC是需要求的值;那麼就有:

TC = 2^L - (Fosc * t)/12;

我的板子晶振為12Mhz,所以選擇模式1定時方式,最長定時時間為65.536ms,那麼一次定時顯然不夠,所以每次定時到了之後flag加1,直到flag等於60(s = 60 * 50ms)。如果晶振是6Mhz,也是一樣的方法計算,但是6Mhz的晶振在模式1下的最長定時時間為131.072ms。這里為了方便,如果晶振為6Mhz,那麼選擇定時100ms,這樣剛好TC都為0x3cb0。如果你的板子為6Mhz,那麼只需要把 #define CO_12_MHZ 改成 #define CO_6_MHZ 即可。有用請點一下採納,為了回答這個問題我又重新去翻以前的書來看。

5. 求《C語言程序設計》(譚浩強主編 第三版 清華大學出版社)的教學視頻下載

鏈接:

提取碼: 58zn

C語言程序設計:

6. C語言全套教學視頻

C語言程序設計

提取碼:8uar復制這段內容後打開網路網盤手機APP,操作更方便哦!

若資源有問題歡迎追問~

7. c語言入門教學

樓主,你可以去編程入門網,那裡有挺多知識點的,很多語言都有,很適合初學者,你也可以去CSDN,那裡有很多源代碼提供下載,也有論壇,呵呵,你也不要忽視網路貼吧,知道,貼吧是學習很多課本沒有東西的地方,知道,你需要看解決答案,這樣很有收獲,你也可以去中國編程網,不過,我覺得一樓也是有道理的,看看書掌握知識點,網上我覺得主要還是提高的地方哦……呵呵……關於怎麼學,我是這么過來的,每看一節書,做一節課後習題,其實初學主要還是學習語法和演算法(解決問題的方法),多上機自己寫程序,寫不出來看答案的演算法,自己再寫一邊,關鍵這個階段還是積累為主,基本知識學好了,可以學深入編程,不過你需要有熟悉的語法,可以寫一些小程序:學生成績管理系統等等,就過關了,然後可以學習鏈表,圖像編程,等等高級編程……呵呵……努力一定有回報的……加油吧…

8. c語言程序設計(1) 小學生計算機輔助教學系統

right_prompt()
{
intx;

x=rand()%4+1;
switch(x){
case1:
printf("VeryGood! ");
break;
case2:
printf("Excellent! ");
break;
case3:
printf("Nicework! ");
break;
case4:
printf("Keepupthegoodwork! ");
break
}
}

wrong_prompt()
{
intx;

x=rand()%4+1;
switch(x){
case1:
printf("No.Pleasetryagain. ");
break;
case2:
printf("Wrong.Tryoncemore. ");
break;
case3:
printf("Don』tgiveup! ");
break;
case4:
printf("Notcorrect.Keeptrying. ");
break;
}
}

熱點內容
數字電路存儲器實驗 發布:2025-02-07 04:13:29 瀏覽:812
在什麼地方查qq密碼 發布:2025-02-07 04:01:51 瀏覽:11
買二手筆記本電腦看哪些配置 發布:2025-02-07 04:01:48 瀏覽:308
我的世界裡面什麼伺服器是建造的 發布:2025-02-07 03:51:48 瀏覽:189
不能連接到資料庫 發布:2025-02-07 03:47:00 瀏覽:45
安卓手機如何設置翻屏動畫 發布:2025-02-07 03:46:18 瀏覽:594
利基型存儲器什麼意思 發布:2025-02-07 03:43:58 瀏覽:556
安卓讀寫許可權在哪裡 發布:2025-02-07 03:29:21 瀏覽:36
釘郵怎麼找回密碼 發布:2025-02-07 03:16:40 瀏覽:81
比特幣錢包源碼 發布:2025-02-07 03:16:39 瀏覽:101