第一篇:C教案第69-104課時
第69課時
教學課題: while循環(huán)
教學目標:讓學生掌握循環(huán)結構中的while循環(huán) 教學內容: while循環(huán) 教學重點、難點: while循環(huán) 教學過程:
新課導入:
循環(huán)結構是程序中一種很重要的結構。其特點是,在給定條件成立時,反復執(zhí)行某程序段,直到條件不成立為止。給定的條件稱為循環(huán)條件,反復執(zhí)行的程序段稱為循環(huán)體。C語言提供了多種循環(huán)語句,可以組成各種不同形式的循環(huán)結構。
1)用goto語句和if語句構成循環(huán); 2)用while語句; 3)用do-while語句; 4)用for語句;
新課講授:
1. while語句的一般形式為: while(表達式)語句
其中表達式是循環(huán)條件,語句為循環(huán)體。2.while語句的語義是:
計算表達式的值,當值為真(非0)時,執(zhí)行循環(huán)體語句。其執(zhí)行過程可用下圖表示。
例題講解:
100【例】用while語句求n?1。畫出流程圖:(如右圖)main(){ int i,sum=0;i=1;while(i<=100){ sum=sum+i;i++;} printf(“%dn”,sum);} 課堂練習:
編程求1+3+?+9的值。main(){ int i,sum=0;i=1;while(i<10){ sum=sum+i;i=i+2;} printf(“%dn”,sum);} 布置作業(yè):
編程求2+4+?+10的值。
課后小結:
學生才剛接觸循環(huán)語句,感覺學起來有些吃力,需要多給例題做。讓他們在題目中理解循環(huán)語句。
?n第70課時
教學課題: while循環(huán)
教學目標:讓學生掌握循環(huán)結構中的while循環(huán) 教學內容: while循環(huán) 教學重點、難點: while循環(huán) 教學過程:
新課導入:
上節(jié)課我們學了while循環(huán),那么這節(jié)課我們來做幾道題目。
新課講解:
【例 1】統(tǒng)計從鍵盤輸入一行字符的個數(shù)。#include
使用while語句應注意以下幾點:
1)while語句中的表達式一般是關系表達或邏輯表達式,只要表達式的值為真(非0)即可繼續(xù)循環(huán)?!纠?2】 main(){ int a=0,n;printf(“n input n: ”);scanf(“%d”,&n);while(n--)printf(“%d ”,a++*2);} 本例程序將執(zhí)行n次循環(huán),每執(zhí)行一次,n值減1。循環(huán)體輸出表達式a++*2的值。該表達式等效于(a*2;a++)。
2)循環(huán)體如包括有一個以上的語句,則必須用{}括起來,組成復合語句。
課堂小結:
1while語句中的表達式一般是關系表達或邏輯表達式,只要表○達式的值為真(非0)即可繼續(xù)循環(huán)。
2循環(huán)體如包括有一個以上的語句,則必須用{}括起來,組成復○合語句。
課后小結:
學生才剛接觸循環(huán)語句,感覺學起來有些吃力,需要多給例題做。讓他們在題目中理解循環(huán)語句。
第71課時
教學課題: while循環(huán)
教學目標:讓學生熟練掌握循環(huán)結構中的while循環(huán) 教學內容: while循環(huán) 教學重點、難點: while循環(huán) 教學過程:
新課導入:
上節(jié)課我們學了while循環(huán),那么這節(jié)課我們來做幾道題目。
新課講解:
【例 1】求1-2+3-4+?+99-100的值。方法一: 方法二: main()main(){ { int i=1,sum=0;int i=1,sum1=0,sum2=0;while(i<=100)while(i++<=100){ { if(i%2==0)if(i%2==0)sum-=i;sum2+=i;else else sum+=i;sum1+=i;i++;} } printf(“%d”,sum1-sum2);printf(“%d”,sum);}
【例2】求1×2×3×4×5的值。main(){ int i=1,t=1;while(i<=10){ t*=i;i++;} printf(“%d”,t);}
第72課時
教學課題: while循環(huán)
教學目標:讓學生熟練掌握循環(huán)結構中的while循環(huán) 教學內容: while循環(huán) 教學重點、難點: while循環(huán) 教學過程:
新課導入:
上節(jié)課我們學了while循環(huán),那么這節(jié)課我們來做幾道題目。
新課講解:
【例 1】求1+1/2+1/3+1/4+?+1/50的值。main(){ int i=1,sum=0;while(i<50){ sum+=1.0/i;i++;} printf(“%fn”,sum);getch();} 【例 2】求100!的值。main(){ double i=1,t=1;/ *100!太大了,必須定義為double*/ while(i<=100){ t*=i;i++;} printf(“%lf”,t);}
課后小結:
因為才開始接觸循環(huán)語句大部分的學生還需提示才能大概寫出程序,需要加強指導。
第73課時
實驗課題:循環(huán)結構程序設計 實驗地點:科教樓 實驗時間:
實驗目的:熟練掌握while循環(huán)程序設計 實驗內容: 任務一:
從鍵盤上輸入數(shù)據(jù),統(tǒng)計其中大于0的整數(shù)和小于0的整數(shù),分別用變量x,y進行統(tǒng)計,用整數(shù)0結束循環(huán)。main(){
int n,x,y;
x=y=0;
scanf(“%d”,&n);
while(n!=0)
{
if(n>0)____________
else if(n<0)____________
scanf(“%d”,&n);
}
printf(“x=%5d,y=%5d”,x,y);
} 任務二:從鍵盤上輸入10個數(shù),輸出其中的正數(shù)。并畫出流程圖。main(){ int n,i=1;while(i<=10){
scanf(“%d”,&n);
if(n>0)
printf(“%d ”,n);
i++;
} }
第74課時
實驗課題:循環(huán)結構程序設計 實驗地點:科教樓 實驗時間:
實驗目的:熟練掌握while循環(huán)程序設計 實驗內容: 任務一:
編寫程序,對輸入的一行字符,分別統(tǒng)計其中英文字母、數(shù)字和其它字符的個數(shù)。#include
char ch;
int letter,number,other;
letter=number=other=0;
printf(“input a string:n”);
while((ch=getchar())!='n')
{
if(ch>='A'&&ch<='Z'||ch>='a'&&ch<='z')
letter++;
else if(ch>='0'&&ch<='9')
number++;
else
other++;
}
printf(“%d,%d,%d”,letter,number,other);
getch();} 任務二:求1+1/2+1/4+1/6+?+1/50 課后小結:
通過這節(jié)課的學習,學生對while語句的循環(huán)有了很好的理解。
第75課時
教學課題: while循環(huán)
教學目標:讓學生進一步掌握循環(huán)結構中的while循環(huán) 教學內容: while循環(huán) 教學重點、難點: while循環(huán) 教學過程:
新課講解:
【例 1】閱讀如下程序,根據(jù)程序說出其實現(xiàn)的功能。
/*翻譯密碼。原文中的密碼變成該字母后的每四個,其他字符不變。請輸入一個字符串,輸出其密碼。*/ #include
if(c>'Z'&&c<'a'||c>'z')c=c-26;
}
putchar(c);} putchar('n');getch();} 布置作業(yè):
一個數(shù)列是:3/5+5/7+7/9+9/11?求這個數(shù)列前20項的和。
第76課時
教學課題: while循環(huán)
教學目標:讓學生進一步掌握循環(huán)結構中的while循環(huán) 教學內容: while循環(huán) 教學重點、難點: while循環(huán) 教學過程:
新課講解:
【例 2】求1-1/2+1/4-1/8 main(){ int i=2,n,sign=1;float sum=1;while(i<=8)
{sum-=1.0/(sign*i);
sign=-sign;
i+=2;}
printf(“sum is %fn”,sum);
getch();} 課堂練習:
求1+1/2-1/4+1/8?求這個數(shù)列前50項的和。
課后小結:
通過這幾節(jié)課的學習,大部分的學生能讀懂while循環(huán)的程序,但只有小部分的學生能用while進行編程,還得在后繼的教學中,對這部分的知識進行加強。
第77-78課時
教學課題: 第三次月考 教學目標:查漏補缺 試卷如下:
09第三次月考
一、選擇題(20*2)
1.在C語言中下列那個不屬于基本類型()
A.整型
B.數(shù)組
C.字符
D.實型 D.2_int_ 2.下列選項中,不能用作標識符的是_____。
A._1234_
B._1_2
C.int_2_ 為:
A.3.5
B.4.5
C.5.5
D.6.5 4.執(zhí)行語句printf(“%un”,-32767)的輸出結果是: _____。A.0 B.32769
5、執(zhí)行下列語句后,輸出結果是: int a;long int b=65536;a=b;printf(“%dn”,a);A)65536 B)0 正確答案是: B
6、閱讀下面的程序 main(){ int i,j;scanf(“%2d %*3d %2d”,&i,&j);printf(“%d%4d”,i,j);} 如果從鍵盤上輸入 12 345 67<回車> 則程序的運行結果是:
C)-1 D)1 C.-1 D.32767 3.已知變量a=4,b=13,c=3.5;表達式c+b%3*(int)(a+c)/4的值A)12 67 B)12 345 C)12345 D)程序語法出錯 正確答案是: A
7、請讀程序: #include
A)a=98,b=765,c=4321 B)a=10,b=432,c=8765 C)a=98,b=765.000000,c=4321.000000 D)a=98,b=765.0,c=4321.0 正確答案是: C
8、以下程序的輸出結果是 main(){ int x=10,y=10;printf(“%d %dn”,x--,--y);} A)10 10 B)9 9 C)9 10 D)10 9 正確答案是: D
9、請選出以下語句的輸出結果
printf(“%dn”,strlen(“t”