摘 要:作者多年從事計(jì)算機(jī)應(yīng)用技術(shù)研究和教學(xué),在C語(yǔ)言程序設(shè)計(jì)的教學(xué)過(guò)程中,作者一直在探索激發(fā)學(xué)生學(xué)習(xí)興趣、降低課程難度、提高學(xué)習(xí)成績(jī)的有效途徑,并提出自己的一些做法供同行們參考。
關(guān)鍵詞:C語(yǔ)言;教法;計(jì)算機(jī)
1 求100以?xún)?nèi)的所有素?cái)?shù)
#include
#include
int main(void)
{
system(“color 3f”);
system(“title 100以?xún)?nèi)的所有素?cái)?shù)");
system(“mode con cols=90 lines=30”);
int i=2,j=2,k=0;
for(i=2;i<=100;i++)
{
for(j=2;j
{
if(i%j==0)
break;
}
if(i==j)
{
printf(“\t%d\t”,i);
k++;
if(k%4==0)
printf(“\n”);
}
}
printf(“\n\n “);
}
程序說(shuō)明:
這個(gè)程序使用for語(yǔ)句,找出100以?xún)?nèi)的所有素?cái)?shù),教師可以通過(guò)這個(gè)程序給學(xué)生講解for語(yǔ)句和if語(yǔ)句的綜合使用。
教師講解這個(gè)程序的時(shí)候應(yīng)該多講解它的算法分析,培養(yǎng)學(xué)生的算法設(shè)計(jì)能力。
教師在使用這個(gè)程序時(shí)應(yīng)該多關(guān)注算法設(shè)計(jì),多給學(xué)生講解算法設(shè)計(jì),培養(yǎng)學(xué)生算法設(shè)計(jì)能力。
2 用1、2、3、4,能組成多少個(gè)互不相同且無(wú)重復(fù)數(shù)字的三位數(shù)?都是多少?
#include
#include
int main(void)
{
system(“color 3f”);
system(“title 用1--4組成的互不相同且無(wú)重復(fù)數(shù)字的三位數(shù)");
system(“mode con cols=90 lines=30”);
int i,j,k,m=0,n=0;
printf(“\n”);
for(i=1;i<5;i++) //以下為三重循環(huán)
for(j=1;j<5;j++)
for(k=1;k<5;k++)
{
if (i!=k&&i!=j&&j!=k) //確保i、
j、k三位互不相同
{
m++;
printf(“\t%d,%d,%d\t”,i,j,k);
n++;
if(n%4==0)
printf(“\n”);
}
}
printf(“\n 以上一共 %d 個(gè)。\n ",m);
}
程序說(shuō)明:
這個(gè)程序使用三層嵌套for語(yǔ)句,找出1、2、3、4組成的所有不同的并且沒(méi)有重復(fù)的三位數(shù),教師可以通過(guò)這個(gè)程序給學(xué)生講解for語(yǔ)句和if語(yǔ)句的綜合使用。
教師講解這個(gè)程序的時(shí)候應(yīng)該多講解它的算法分析,并且引導(dǎo)學(xué)生設(shè)計(jì)不同的算法,培養(yǎng)學(xué)生的算法設(shè)計(jì)能力。
教師應(yīng)該多講解它的算法分析,并且引導(dǎo)學(xué)生設(shè)計(jì)不同的算法,培養(yǎng)學(xué)生的算法設(shè)計(jì)能力。
3 計(jì)時(shí)器
#include
#include
void main()
{
int i;
for(i=1;i<=5;i++)
{
Sleep(1000);
printf(“ %d\n”,i);
}
ShellExecute(NULL, “open”, “wmplayer”, “F:\\C語(yǔ)言\\001.wav", NULL,SW_SHOW);
MessageBox(NULL,(“下課了!"),("系統(tǒng)提示"),MB_OK);
}
程序說(shuō)明:
這個(gè)程序通過(guò)循環(huán)和休眠的有序結(jié)合,實(shí)現(xiàn)計(jì)時(shí)器功能,計(jì)時(shí)結(jié)束彈出提示窗口,播放音效,教師可以一邊講解一邊修訂程序,在師生互動(dòng)中完成程序。
教師講解這個(gè)程序的時(shí)候應(yīng)該多講解它的算法分析,并且引導(dǎo)學(xué)生設(shè)計(jì)不同的算法,培養(yǎng)學(xué)生的算法設(shè)計(jì)能力。
教師應(yīng)該多講解它的算法分析,并且引導(dǎo)學(xué)生設(shè)計(jì)不同的算法,培養(yǎng)學(xué)生的算法設(shè)計(jì)能力。
4 數(shù)制變換
#include
#include
#include
void main()
{
system(“title 數(shù)制變換");
system(“color 3e”);
int i,j;
char c[255];
printf(“\n\n\n 請(qǐng)輸入一個(gè)十進(jìn)制數(shù):\n ");
scanf(“%d”,&i);
printf(“\n\n 您輸入的是:%d ",i);
printf(“\n\n 該數(shù)的八進(jìn)制是:%o ",i);
printf(“\n\n 該數(shù)的十六進(jìn)制是:%x ",i);
sprintf(c,”%o”,i);
printf(“\n\n 該數(shù)的二進(jìn)制是: ");
for(j=0;c[j]!=\0;j++)
{
switch(c[j])
{
case ‘0:printf(“000”);break;
case ‘1:printf(“001”);break;
case ‘2:printf(“010”);break;
case ‘3:printf(“011”);break;
case ‘4:printf(“100”);break;
case ‘5:printf(“101”);break;
case ‘6:printf(“110”);break;
case ‘7:printf(“111”);break;
}
}
printf(“\n\n “);
}
程序說(shuō)明:
這個(gè)程序使用了switch語(yǔ)句和sprintf語(yǔ)句,實(shí)現(xiàn)了數(shù)制變換,其算法較抽象難懂,講解應(yīng)該多和學(xué)生互動(dòng)??梢砸贿呏v解一邊修訂程序,在師生互動(dòng)中完成程序。
在學(xué)生完全理解的基礎(chǔ)上,可以引導(dǎo)學(xué)生設(shè)計(jì)由十六進(jìn)制轉(zhuǎn)二進(jìn)制的程序。
注意講解sprintf、switch等語(yǔ)句的用法。
5 輸入年、月、日,判斷這一天是這一年中的第幾天?
#include
#include
void main()
{
system(“color 3e”);
system(“title 輸入年、月、日,查看是一年中的第幾天");
int day,month,year,sum,leap;
printf(“\nplease input year,month,day\n”);
scanf(“%d,%d,%d”,&year,&month,&day);
switch(month)/*先計(jì)算某月以前月份的總天數(shù)*/
{
case 1:sum=0;break;
case 2:sum=31;break;
case 3:sum=59;break;
case 4:sum=90;break;
case 5:sum=120;break;
case 6:sum=151;break;
case 7:sum=181;break;
case 8:sum=212;break;
case 9:sum=243;break;
case 10:sum=273;break;
case 11:sum=304;break;
case 12:sum=334;break;
default:printf(“data error”);break;
}
sum=sum+day; /*再加上某天的天數(shù)*/
if(year%400==0||(year%4==0&&year%100!=0))/*判斷是不是閏年*/
leap=1;
else
leap=0;
if(leap==1&&month>2)/*如果是閏年且月份大于2,總天數(shù)應(yīng)該加一天*/
sum++;
printf(“It is the %dth day.\n”,sum);
}
程序說(shuō)明:
以3月5日為例,應(yīng)該先把前兩個(gè)月的加起來(lái),然后再加上5天即本年的第幾天,特殊情況,閏年且輸入月份大于3時(shí)需考慮多加一天。這個(gè)程序里包括switch語(yǔ)句的使用、閏年的判斷,算法分析需要認(rèn)真講解。這個(gè)程序處理好了很有趣,還增長(zhǎng)了知識(shí),處理不好就枯燥無(wú)味,所以老師在講這個(gè)程序時(shí)要格外注意和學(xué)生互動(dòng)。
在講解算法的基礎(chǔ)上,注意讓學(xué)生養(yǎng)成思考和創(chuàng)新的好習(xí)慣,鼓勵(lì)學(xué)生在編程過(guò)程中的大膽創(chuàng)新。
作者簡(jiǎn)介
楊英翔,副教授。