试谈C语言程序设计教学

  • 格式:pdf
  • 大小:149.11 KB
  • 文档页数:2

电脑编程技巧与维护 

试谈C语言程序设计教学 

周婧 (天津开发区职业技术学院,天津360457) 

摘要:C语言凭借其丰富的数据结构、优良的机构性灵活性为电脑编程工作的人推崇学习。C语言作为一门基础 课程,在高等院校计算机专业和很多的非计算机专业中开设,具有十分重要的作用和意义,它不仅能锻炼学生的思 

维逻辑能力,还为很多课程,如数据结构、单片机和其他程序设计语言打下良好的基础,具有引导性的作用。根据 

教学过程中学生常出现的问题,总结出了在C语言教学过程中的几点教学方法。 关键词:C语言’9算法:上机实践 

Discusses the C Programming Language Teaching 

ZHOU Jing (TEDA Polytechnic,Tianjin 360457) 

Abstract:C language,with its wealth of data structure,excellent institutional flexibility in computer programming work for each person respected learning.C language as a basic course in computer science colleges and a lot of non—computer professional in the creation of a very important role and significance,it is not only logical thinking ability of our students,but also for many courses such as data structures,SCM And other programming languages to lay a good foundation,with a leading role.This process of teaching students according to problems often summed up in the C language teaehing points in the process of teaching methods. Key words:C language;Algorithm;Hands 

30多年来,C语言凭借其丰富的数据结构、优良的机构 

性灵活性为每个从事电脑编程 l 作的人推崇学习。C语言作为 

一门基础课程,在高等院校计算机专业和很多的非计算机专 业中开设,具有十分重要的作用和意义,它不仅能锻炼学生 

的思维逻辑能力,还为很多课程如数据结构、单片机和其他 

程序设计语言打下良好的基础,具有引导性的作用。目前,c 

语言程序设计是高等院校多个专业的基础必修课程。 

学习C语言的学生往往都是初次接触程序设计,头脑中 

还没有学习程序语言的概念。而学习内容相却对枯燥、抽象, 

概念难以理解。在教学过程中,为丫打基础很多教师往往过 于注重数据结构、语法等细节的讲解,但是在实际教学中会 

反映出很多问题,比如学生只知道基本概念,但是不会运用 

到实际编程和习题中去;能够理解书上的例子,但不会举一 

反三;面对编程的题目感到无从下手,没有思路等。根据教 

学过程中学生常出现的问题,总结出在C语言教学过程中的 

教学方法: 

第一,形象的教学,开阔学生的思路。 

在高等院校,c语言都开设在大一学生中,这部分学生大 

部分计算机基础浅,没有系统的知识结构,如何让学生理解 这门学科的意义以及用途是任课教师首先要讲解的。在第一 

节c语言上课时,多使用举例法、对比法来介绍,学生反映 

效果很好。 

首先提到C语言这3个字,学生们没办法做到顾名思义, 

所以,上课时可以用“英语”来启发学生思路。从小学开始 

到大学,有一门学科一直伴随着学生们,那就是英语。学习 

英语这门课程,需要学习英语的“单词”和“语法”,学习的 用途是和外围友人交流,那么,学生很自然地就能理解,对 

1:6',2011 12孳与壤 于C语言这门学科,需要学习它的——“单词” (也就是数据 类型、运算符表达式)和“语法” (语法规则),它的作用是 

和一一计算机“交流”。 

如表i所示,这样能够在学生的大脑中有个比较的映像, 

不仅能够记得清楚,史能轻松地理解c语言的概念。接下来 

还要简单阐述计算机出现的原因,科学家之所以要发明计算 

机到底有什么用途,由此可以引出计算机语言的发展历史, 

与C语言的学习连接到一起,但是在早期教学过程中尽量不 

要满口术语、难懂的词汇,尽量用大量的例子来形象生动地 

启发他们的思维,南浅人深循序渐进地教学。 

表l 

学科 学习内容 用途 英语 单词 语法 外国人交流 c语言 数据结构, 语法规则 与计算机“交流” 运算符等 ——让计算机解决问题 

第二,记与背的重要环节。 

对大学学生很少会用到背诵这个词,似乎只有小学中学 才会出现这样的学习方法,但是学习C语言,记与背仍然非 

常的重要。在基础比较薄弱的时候,背诵能够解决很多问题。 

例如函数的格式,运算符与表达式的含义,还有一些通用的 

编程题,背记下来能够潜移默化地让学生理解C语言,例如if 

语句编程: 

main 0 

作者简介:周婧(1983一),女,助教,研究方向:C语言程序 

设计、计算机文化基础、Ps平面设计等。 

收稿日期:2011-04—16 STUDY 0F C0MPUTER APPLICAT10N IN EDUCAT10N 计算机应用教学研究 

{int a; printf(“input:”); scanf(“%d”,&a) 

if( ) printf(“Yse”); else printf(“No”); } 这个编程框架的使用率非常高,能够用这个框架做出很 

多分支结构的编程题,将这个框架在教学过程中总结出来, 

然后让学生们尽量地背下来,这样并不是死记硬背,而对于 

后面的学习有很大的帮助。 

第三,算法是程序设计的核心。 

在c语言程序设计中,算法+数据结构=程序,简单说 

算法就是解决问题的方法和步骤。在现今高校使用的C语言 程序设计教材往往用很少的篇幅去讲解介绍算法,一部分教 

师比较容易忽略对算法的讲解,虽然算法存在其不容易理解 

的地方,但是用通俗易懂的语言和生动的实例介绍算法的思 

路和方法,可以让C语言程序设计的学习起到的事半功倍的 

效果,对学生们本身的思路也有很大的启发。 在课上刚刚引入算法要用简单生动的例子,如高斯儿时 

计算1到100间加法的实例,既容易理解,又有意思。随着 课程推进,就可以介绍算法性更强的例子。如下而的一个经 

典的循环语句程序设计例子。 

例1:用100元钱买100只鸡,每只公鸡5元,每只母 

鸡3元,每3只小鸡1元,要求每种鸡至少买一只,而且必 

须是整只,问各种鸡各买多少只? 

算法1:设定i,i,k的取值范同:1≤i≤20(公鸡最多能买 

2O只);1≤j≤33(母鸡最多能买33只);1≤k≤100(小鸡 

最多能买100只);利用=三重循环来逐个搜索可行组合: 

for(i_1;i<=20;i++) for(j=l;j<=33;j++) 

for(k=1;k<=100;k++) 

{if( +k!=100)continue; 

if(ix5+jx3+k/3 1=100)continue; prinff C江%d, %d,k=%d”,i,j,k);} 在此程序中,循环体被执行20x33x100=66 000次。 

算法2:南于要求每种至少为一只,故i,j,k 3变量的取值 可调整为:1≤i≤19(公鸡最多能买19只);1≤j≤31(母鸡 

最多能买31只);k=100一i—j(因为所买鸡的总数为100), 

利用二重循环实现程序: 

for(i=1;i<=19;i++) 

for(_j=1;j<=3l;j++) 

{k=100一i—j; if(ix5+jx3+k/3 1=100)continue; printf C i=%d,j=%d,k=%d”,i,j,k);} 该程序循环体被执行19x31=589次,其计算工作量不及算 

法l的1%,大大提高了程序的执行效率。 算法3:由题意可得2个方程:i+j+k=lO0,5i+3j+k/3=lO0。 

去掉其中变量k,可得7i+4j=100,南于i和j都至少为1,故实 

际上i最大只能为13,i最大只能为23。可用二重循环实现: 

for(i=1;i<:13;i++) 

for(j=l;j<=23;j++) {k=lO0一i—j; 

if(ix5+jx3+k/3 1=100)continue; printf C i=%d,j=%d,k=%d”,i,j,k);} 该程序中,循环体只被执行13x23=229次,其计算:I:作量 

只及算法2的一半。 

算法4:由于7i+4j=100,故_j=(100—7i)/4,因此,可用单 

循环实现: 

for(i=l;i<=13;i++) 

{j=25—7xi/4 k=100一i—j; 

if(ix5叫x3+k/3 1=100)continue; printf C i:%d,j=%d,k=%d”,i,j,k);} 该程序循环体只执行了13次,其计算1l:作量不足算法3 

的5%。 上述4种程序运用不同的算法得到相同的运行结果,从执 

行次数来看就一目了然。由于搜索范围的不同,对循环T作量 

产生了极大的影响,程序的执行效率迥然不同。求解问题时, 

如果能从解题方法上人手,精心设计问题的算法,不仅可以大 

大提高程序的执行效率,增强程序的可理解性和可读性,同 时更有助于学生的思维能力的提高和创新意识的培养。 

第四,加强上机实践教学。 

想要更好地理解c语言的各种知识,一定要经常上机实 

践。讲课时布置一些有代表性而又容易理解的程序题,然后 

让学生们在机房练习,同时对一些经典例题,在黑板上和多 

媒体课件上分析这些程序的执行过程,让学生在上机实践中 

验证结果的正确性,并充分体验程序执行的流程。 除此之外,还要有一些具有挑战性的新颖有趣的题目, 

把这些题目作为额外加分的题目,这样可以充分调动学生们 

的积极性和创造性,提高对C语言学习的兴趣。 

参考文献 

【1]谭浩强.C程序设计.2版.清华大学出版社. 

【2]王海燕,韩萌.浅谈C语言程序设计教学. 

[3]乌云高娃.C语言程序设计.高等教育出版社 

 嚣矗譬