正文内容
C语言专业教学探讨
来源:文库
作者:开心麻花
2025-09-19
1

C语言专业教学探讨(精选12篇)

C语言专业教学探讨 第1篇

关键词:电类专业,C语言,单片机编程,上机实践

1 教学现状分析

1.1 C语言为学生继续深造奠定坚实基础

我院电类专业的毕业生是具备从事电气工程初步设计、系统运行维护、技术管理等工作的高级工程技术应用型人才。C语言作为专业基础课,主要是为单片机编程服务,随着学习的深入,学生对应用软件的高级操作就需要了解程序的内核。基于此,C语言的教学不仅关注学生在校学习,而且应注重将来的继续深造。

1.2 C语言教学特点

C语言是一种应用广泛的计算机语言。它以其功能丰富、表达力强、目标程序效率高、可移植性强等特点、已经成为程序设计人员必须掌握的一种通用高级程序设计语言。C语言程序设计是理工科专业一门重要的专业基础课,C语言教学是让学生掌握人类为计算机设计的语言特征, 学会C语言程序设计技能,培养学生的创新能力。教学过程首先是让学生端正思想, 明确学习C语言的意义;其次是让学生明白学习C语言最终就是学会编写程序,为自己专业课编程打下基础。

1.3 学生特点

我院学生主要是由普高、中职和技校的学生组成,基础知识相对较差,学习能力有所欠缺。但通过深入学习《大学计算机文化基础》和《大学信息技术基础》,学生对计算机的组成原理、数制转换及软件工程思想已有一定的了解,在大二第一学期已经具备学习C语言的能力。

2 教学过程的统筹

根据一轮C语言教学所得经验,我觉得教师有必要在以下几个方面引起足够的重视,并在教学中加以改进。

2.1 制定完善且符合专业的教学大纲和教学计划

根据职校教学要求,突出学生技能实践性培养的特点,教师必须对教材进行处理,比如增删知识点,重点突出,难点内容简单化,使学生易于理解接受。教师备课要考虑到学生的认知水平,应侧重培养其自学能力,积极引导其主动学习,进而使其创新能力得到发挥。

2.2 备好第一堂课,激发学生的学习兴趣

C语言是语言,是为我所用的编程工具。在第一堂课,教师可以把汉语、英语等大家学过的语言和C语言进行类比说明。英语有语法、语义和词汇,同样C语言也有“语法”、“语义”和“词汇”,“语法”是对于新知识先给出一般格式,然后逐步讲解语法要点。C语言在“语义”上要简单得多。比如:单词词汇相对较少, 句子类型相对较少等等。但麻雀虽小,五脏俱全。C程序设计语言的结构体系如下:

“词汇”主要是指C语言的标识符、关键字和特定字等C语言内部定义的其他变量不可以使用的名字。同时把所有C语言定义的标识符、关键字和特定字打印在一张纸上,要求学生像记英语单词一样把他们记住。

然后我举了一个数学排列组合的问题,使用我们生活中的笨方法来解题,进而提出计算机算法,算法是解题的方法和步骤,算法(algorithm)就是对操作的具体描述,是计算机的解题过程。编制程序,就是根据算法,用具体的语言依据某种规则编写计算机执行的命令序列。比如说我国古代数学家提出的“百钱买百鸡”、“猴子分桃”、“鸡兔同笼”、“韩信点兵”等等生活中或数学计算方面的问题都可以用计算机算法描述并用C语言编程后计算。经过这样的简单说明,学生就会明白C语言程序设计的用途及基本框架。

2.3 课堂教学采用的方法和手段

C语言程序设计教学被认为是一种需要师生双方改进的一门课程,因为大多数C语言教材中通常先给出一般的语法格式,然后逐步讲解语法要点,再给出实例。这种顺序灌输会使学生失去学习的兴趣。所以我认为在课堂教学环节应采取以学生为主体,以教师为主导的教学模式,要求学生自己先看有关知识点,并识记,教师采取精讲实例,在这过程中引出相关知识点,然后再举一类似实例让学生自己分析,巩固知识点。教师应把主要精力放在算法的分析和各语句语法的具体应用上,同时培养学生自学能力,采取互动机制,迫使学生主动学习。

2.4 上机实验课的引导作用

因该专业学生已有上机实践能力,已能对照实验指导书进行程序输入然后验证结果的正确性,但是对于如何得出这一结果的计算步骤没有一定的概念,缺乏逻辑思维能力,即不知道程序的运行步骤。这就要求教师在上实验课前明确实验目的,让学生结合知识点读懂程序,分析其运行步骤。学生如果不能在上机前把程序分析透彻,教师可在上机时循序渐进地讲解Visual C++6.0软件的调试功能,教会学生自主使用此功能分析程序的运行过程。

随着上机实践的深入,如果学生产生是“来练习打字的”情绪,一方面证明学生已不满足于单一的输入,此时教师应安排分组教学,即把学生分成若干组,设置题目(一般是实验书中没有的题目,且有一定的趣味性和实用性),由一组学生讨论编写程序,上机验证,这样就能调动学生的积极性,主动性,进而培养学生分析问题解决问题的能力。

在上机实践的第一课,我通过教师机演示了使用Keil uVision3软件进行单片机C语言的编写,抛砖引玉指出学习C语言的最终目的是为单片机编程服务,大家打好基础才可以看懂,读懂,自己编写程序。至此,学生对C语言有了更进一步的深入。

3 结束语

针对电气技术应用专业的实际情况,我认为有必要对C语言程序设计课程的教学大纲、计划和教学内容进行深入探讨完善,教师也应该不断培养创新意识,提升自我的教育理念,积极探讨教学策略,因为只有教师的教学方向、培养方向明确严谨,才能更好的支持学生的学,进而学到可持续发展的知识。

参考文献

[1]沈军.C程序设计语言课程的教学新思路[J].电气电子教学学报, 2000 (4) .

[2]苗邯军.C语言程序设计的教学方法探索[J].电脑知识与技术, 2006 (4) .

《C语言程序设计》教学方法探讨 第2篇

【摘要】针对目前《C语言程序设计》教学效果不理想的问题,结合教学实际,分析教学过程中存在的问题,针对计算机专业新生的教学方法进行探讨,提出需要做好第一堂课的引导,启发式教学,理论课与实验课有机结合以及改革传统的考核方式等建议。

【关键词】C语言程序设计;计算机;教学方法;启发式教学

C语言是一种结构化的程序设计语言,是后续学习《数据结构》《操作系统》等专业课程的基础。它入门简单,特别适合于初学者学习。目前很多院校都将《C语言程序设计》课程作为计算机专业大一新生的第一门程序设计语言课程。

随着计算机的普及,目前刚入学的新生可以熟练的操作计算机,但对于计算机的原理等理论知识的了解几乎为零。《C语言程序设计》课程是他们接触到的第一门专业课,如何进行教学将直接影响学生的学习兴趣。目前C语言的教学没有得到很好的教学效果,学生往往是到了大

二、大三阶段,随着计算机专业知识的学习才慢慢理解程序设计的真谛,才真正学会使用C语言编写程序。

《C语言程序设计》课程教学效果不理想的状况普遍存在,很多专业课教师对其教学体系、教学方法等进行研究和讨论[1-4],期望找到提高教学质量的途径。C语言教学中存在的问题

笔者为《C语言程序设计》课程教师,主要针对计算机专业大一新生进行讲授。面临C语言教学效果不理想的问题,在教学过程中不断探索适合的教学方法和手段。首先结合教学实际,分析目前C语言教学中存在的主要问题。

1.1 教学过程中过分注重语法

大多数教师往往在简单介绍C语言特点后,就开始就讲解C语言的基本数据类型、基本运算符与表达式。对于初学者来说,接受这些内容很困难,即使是有些学生记住了,但也不是真正理解了这些内容在程序设计语言中的作用。这将导致初学者感觉C语言是很难学、很枯燥的一门课程,一开始就无法理解。同时也忽略了学生程序设计思维方式和编程能力的培养。

1.2 教学方法以教师讲解为主

C语言目前的教学方法主要是板书结合幻灯片演示,以教师的“教”为主体,主要讲授C语言的基本语法及基本编程思想。这种教学方式下,学生主要以听为主,被动学习,枯燥的内容无法吸引学生注意力,也无法调动学生积极性,得不到良好的教学效果。

1.3 教学课时少,教学内容多

C语言程序设计入门容易,深入难。三种基本程序设计之后还包括数组、指针、结构体等内容。而《C语言程序设计》的课程往往是32理论学时,在有限的学时内完成所有C语言程序设计的内容,就出现课时少、教学内容多的情况,无法定期的对前面内容进行总结和练习,令学生无法透彻理解所学内容。

1.4 课堂教学与实验教学脱离

由于教学条件的限制,大多数高等院校的C语言课程都是将理论课与实践课分开进行。理论课所讲的内容,学生听过之后,没有亲手实验,导致记忆不深,理解不到位。到实验课时,已记不清理论课所讲的内容和注意事项,教师需要在实验课上将关键知识点再重复一遍。这种情况减少了学生的练习时间、增加了教师工作量,也反映了这种教学方式的不合理,课堂教学没有起到应有的作用。

1.5 考试方式古板

目前的C语言考试方式主要是闭卷考试。考试题目通常包括选择、填空、阅读程序等题目,这些题目考核的只是C语言程序的基本语法,而忽略考核学生的程序设计思维方式和编程能力。C语言教学方式探讨

针对C语言教学中出现的问题,我们就如何对大一新生开展C语言程序教学进行探讨。使初学者能够真正理解程序设计的本质,认识到程序设计语言的重要性,提高学习积极性,主动学习,从而培养学生程序设计思维方式以及编程能力,为后续学习打下基础。

2.1第一堂课的引导

《C语言程序设计》是计算机专业新生接触到的第一门专业课,也是第一门程序设计语言课程。第一堂课的内容至关重要,它决定着学生是否对此门课程感兴趣,也决定着后续的学习质量。笔者在实际教学中发现,第一堂课的引导必不可少。引导的内容如表1所示,主要向学生介绍程序、程序设计语言、程序设计的概念,以及程序设计语言的发展历程。介绍三个概念时,从学生的角度出发,从他们熟悉的软件着手进行讲解。让学生从总体上了解到本门课程的大致作用以及意识到本门课程学习的必要性。

在学生已经对本门课程有了大概的了解,对程序设计语言有了总体的认识之后,再去从计算机的发展历程和当时的实际需要出发介绍程序设计语言的发展,让学生了解C语言所处的位置及基本特点。理清学生思路,同时也激发了学生的学习兴趣。这时可以以学习外语的过程为类比,告诉学生接下来要学习“单词――数据类型”。

2.2有效选取教学内容,启发式教学

C语言课程,教师主要的教学目的是培养学生的编程思维以及编程能力,而不是将C语言的所有语法及知识点都传授给学生。所以教师应该选取基本的教学内容,采用启发式教学,这样既解决了课时少的问题,同时也培养了学生的自学能力。

以C语言中的构造数据类型为例,当给学生讲解数组时,启发学生自行思考,让学生掌握学习方法,并通过反复的练习培养思维方式和编程能力。学生在掌握数组使用方法的同时,也了解了整个学习过程。而后续的结构体内容将不在课堂上讲授,而是鼓励学生自行学习,抽出时间为学生答疑,培养学生自学能力。

2.3理论课与实验课的有机结合

理论课与实验课的分离导致理论课无法起到应有的效果。对于《C语言程序设计》课程最佳的上课方式应是将二者合二为一。老师讲解基本理论之后,学生可以马上对所学知识进行实验,加深理解。然而并不是所有的院校都具备这样的教学条件,当不具备条件时,教师应该在理论课上让学生自己动手写程序,调动学生积极性,打破被动学习的局面。而在实验课上,教师应重复理论课中的重要知识点,同时教师需要设计好实验方案,使学生循序渐进的对所学内容进行练习。实验课内容应以学生的创新为主,而不应该是让学生机械的验证教科书后的程序。

2.4改革期末考核方式

C语言的考核方式也不利于培养学生的思维方式以及编程能力。教学过程中无论是教师的“教”还是学生的“学”暂时还无法脱离最终的期末考核。而目前的考核方式往往会令学生,甚至包括教师偏离最终的教学目的。因此需要对目前C语言程序设计的考核方式进行变革,可以用上机考核代替笔试,这样可以充分体现学生的编程能力。或者将最终的期末考核变换为类似毕业设计的小型课程设计。我们最终的目的是为考核学生的思维方式和编程能力,具体形式还要根据各个院校的要求以及学生的特点决定。结语

作者针对目前C语言程序设计教学效果不理想的状况,分析了目前此门课程教学过程中存在的问题,并结合自身的教学经验,对计算机专业新生的《C语言程序设计》课程的教学方法提出了几点建议,作者将会在后续的工作中验证这些教学方法的效果,并不断进行改革和完善。

参考文献:

C语言教学中函数调用问题探讨 第3篇

关键词:函数调用 库函数 案例

1 函数调用问题的提出

本人在教学过程中,出现了多次这种问题。在讲授函数的概念、函数的定义和函数的调用之后,给学生出一道题目用函数来实现,通常情况下,该问题如果不用函数方法而用其他方法做的话,学生可能会做得出来,但让他们必须用自定义函数的方法来实现,他们就感觉无从下手,并不是这个问题本身很难,归根结底,学生对于怎么自定义函数,定义多少个参数,怎么在主调函数中调用自己定义的被调函数不知道如何做。从而导致了用函数解决的问题却用其他方法实现。在这里,我个人通过自己的反复思量,为了提高讲授函数调用的教学效果,自己总结了几条经验。

2 函数调用问题方法讨论

要知道函数怎么调用,首先得知道用户怎么定义函数。

2.1 函数定义的一般格式:

类型标识符[3] 函数名(形式参数列表)

{ 声明部分

语句部分

}

这个格式定义的函数为有参函数,“形式参数列表”中的参数被称为形参,有些函数是无参函数,则“形式参数列表”可以没有,但括弧不能省略,即无参函数。

函数在使用之前要先声明、定义,然后才能调用[1]。

2.2 函数调用的一般形式为:

函数名(实参表列)

函数在程序中出现的位置来分,可以有以下三种函数调用方式[2]:

①函数语句

把函数调用作为一个语句,这种方式不要求函数带回值,如打印图形、显示字符串等。只要函数完成一定的操作。

②函数表达式

函数出现在一个表达式中,这种表达式称为函数表达式。要求函数带回一个确定的值以参加表达式的运算。如:c=10*max(a,b),其中,函数max就是表达式的一部分。

③函数参数

函数调用作为一个函数的实参,如:printf(“%d”,max(a,b));是把max(a,b)作为printf函数的一个参数。

2.3 函数问题案例讲解

①首先从库函数的调用案例着手讲授,学生自然就很轻松上手。

众所周知,库函数中的数学函数学生从高中就经常接触到,在计算机教学的其他课程里面也会经常出现,如excel里面就有数学函数,学生们已经很熟悉了,如下面一道编程题就需要调用库函数解决。

用C语言求14+24+34+……94+104之和。

#include"math.h"

main()

{int n=10,k=4;

long y=0;

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

y=y+pow(i,k);

printf("%d",y);

}

其中,pow(i,k)就是系统自带的数学函数,i和k是它自带的两个参数,其功能是计算i的k次方。通过这个系统数学函数的调用程序的编写及调试,学生们很轻松就知道库函数怎么调用,即函数名加上函数括号里面的参数。

另外大家使用库函数的时候,一定要在本文件开头用#include命令,将调用有关库函数时所需用到的信息“包含”到本文件中来。该程序开头用语句# include"math.h",即可将数学库函数“包含”到主函数中来。

②用大家熟悉且简短的函数编程案例入手讲解。

典型小案例教学具有很强的启发性,既有利于学生学习,也有利于老师教授。

用C语言函数实现1+2+3+……+20之和。

long fnsum(int n)

{int i;

long y=0;

{for(i=1;i<=n;i++)

y=y+i;}

return y;

}

main()

{

int n=20;

printf("%d",fnsum(n));

}

在这个程序代码中,程序行long fnsum(int n)是自定义函数,fnsum是函数名,n是定义的一个形参,也仅需要一个,表示1+2+……+20共有多少个数求和。由于fnsum函数代码写在main()函数之前,可以不进行声明。反之,若fnsum函数代码写在main()函数之后,必须用代码long fnsum(int n);进行声明。fnsum函数功能即是题目要完成的功能实现,最后通过main()主函数定义一个实参n并赋值20,在printf函数中通过代码printf("%d",fnsum(n)),调用了自定义函数fnsum,并将实参n=20传递给自定义函数fnsum(int n)中的形参n,最终将结果打印输出。

在main()主函数中,fnsum这个函数调用也可以改成如下:

main()

{

int n=20,sum;

sum=fnsum(n);

printf("%d",sum);

}

這个是通过函数表达式的方法进行函数调用,通过这个自定义函数的简单案例讲解,学生很轻松能够理解函数怎么自定义并在main()主函数中调用。

3 结束语

本文分析了C语言函数调用学习过程中存在的问题,在今后的教学过程中,本人将进一步努力提升自己,希望能总结出更多更好的方法来改进函数教学方法,使学生能够更轻松地上手学习。

参考文献:

[1]汪明光.C++语言中函数指针的分析与应用[J].巢湖学院学报,2006,8(3):30-34.

[2]谭浩强.C语言程序设计(第三版)[M].北京:清华大学出版社,2005.143-150.

C语言中“链表”教学探讨 第4篇

1 链表的概念

链表如同一条铁链一样,环环相扣。可以将物理上不相邻的存储单元变成在逻辑上相邻的两个元素。而链表中最重要的要素就是“节点”,一个节点至少包括两个域:一个域用来存放需要运算的实际数据,称为数据域;另一个域中存放下一个节点的地址,称为指针域。一个链表一般还有一个头指针,存放第一个节点的地址,链表最后一个节点的指针域为空。图1表示单向链表的结构,图2是一个单链表实例。

2 链表的分类

单链表实现的功能是有限的,为了解决更多实际问题,链表还有循环链表和双向链表两种形式。

2.1 循环链表

单向链表中第一个节点,只能通过头指针来进行访问,这有一定的局限性。如果把单链表中的首节点和尾节点相连接,则从链表中任一结点出发,都能访问到链表中所有的结点,这就是循环链表。如图3。

2.2 双向链表

在某些情况下,我们不仅需要记录后继节点的地址,还需要记录前驱节点的地址,这就需要在定义链表的节点时定义两个指针域分别来存放前驱节点地址和后继节点地址,这样的链表称为双向链表。双向链表又分为简单双向链表和双向循环链表。简单双向链表的结构如图4。

3 链表的基本操作

链表的基本操作包括链表的建立、链表的输出、链表的插入、链表的删除等。

3.1 链表的插入

将一个节点插入到已有的链表中。假如要求在单向链表的第i个元素之后插入元素。

a)令q指向新开辟内存单元(链表新节点),读入数据存入新节点中。

b)找到欲插入节点X,令p=X->next,并令X->next=q,q->next=p;即完成节点插入操作。

3.2 链表的删除

删除链表中的某个节点。

a)从头结点开始,比较每个结点值是否等于要删除节点,找到后将该节点当一个节点地址存入p。

b)令p->next=p->next->next,并释放p指向的节点,即完成删除操作。

4 链表的应用用链表实现大数阶乘

使用链表可以解决很多实际问题。C语言中提供了多种数据类型和运算符,可以进行多种运算,但由于各种类型变量存放数据的范围是有限的,在进行一些比较大的数据的运算时可能导致计算结果不准确,甚至是出现溢出错误,所以在C语言中进行大数运算时使用普通数据类型和变量是无法完成的。此时我们可以考虑通过链表结构实现大数运算。下面本文以大数阶乘运算为例说明链表的应用。

C语言提供给的能够表示最大范围的整数类型是长整形,它最多也只能求12!,即使使用long double类型的变量存储某个数的阶乘值,它准确求得的阶乘也是有限的。想求一个大数的阶乘,仅使用C语言中的基本数据类型是实现不了的。我们可以用双向链表来解决这个问题。

4.1 大数阶乘算法思想

通常阶乘计算的方法是利用循环,代码如下:for(i=1,p=1;i<=n,i++)p*=i;

p中即可得到阶乘结果。

但变量p能够表示的范围有限,无法计算大数阶乘,可以用链表实现。计算过程中将每一步计算结果存入链表中,并且规定每个节点内存放的数据范围,超出该范围的需要进位并创建新的节点来存放。

计算大数阶乘时每一步乘法运算都得到一个计算结果,我们将此结果存入链表中,若该结果大于999则存入链表的两个节点中,若小于999则存入链表的一个节点中。当进行到第i步运算时,假设此时链表中有m个节点,计算方法为:首先计算i与第一个节点相乘得x,若x大于999则产生进位,并将x与第二个节点相乘结果加上该进位,再次判断处理,直到所有节点都与i计算完毕,链表中即存放了第i步阶乘计算结果。

4.2 定义相关数据结构

本文中所用链表中的数据域中存放阶乘结果的部分数据,所以数据域定义为整型。当计算完毕后还要按顺序输出每个节点中的数据,即链表需要正反两个方向使用,所以采用双向链表实现。结构体定义如下:

其中指针变量pre是指向前驱节点的指针,指针变量next是指向后继节点的指针,data是节点中存储的数据。链表中每个节点用以表示0~999之间的三位数(可以理解成每个节点用以存放1000进制数,超过这个数,则需要进位)。

4.3 大数阶乘算法实现步骤

假设已定义n,要求用户输入n值,求解n阶乘。并将结果存入head指向的双向链表中。

1)根据程序要求,输入数据n。

2)计算n阶乘

a)建立一个节点来存放阶乘值的初值1。其前驱指针和后继指针都设置为NULL。并使head指向该节点。代码为:

b)i从0到n循环计算n阶乘。当计算至第i步时,假定此时有m个节点。

从1到m节点,i乘第j个节点得x,若x<999,x存入j节点,否则将x%1000存入j节点并将x/1000作为进位存入第j+1节点。

例如:在循环过程中,计算至7*6!时,6!值为720,占用一个节点,当计算7*720时得5040,大于999,超出范围,需要进位,进位为5040/1000=5,即进位为5存入新开辟节点,余数40存入本节点中。

反复执行上述过程,当最高位的节点值需要产生进位时,则开辟新节点来存储进位,否则不需要重新开辟节点。并将head指向新开辟节点。

c)把链表的头指针head返回给主调函数。

3)输出计算结果。

计算完成后要计算得到的阶乘值,此时输出结果应为链表中各个节点值的顺序排列(按产生顺序的逆序输出)。根据主调函数传递过来的头指针找到链表,输出节点数据域中的数据,并判断next指针域是否为空,若空链表输出结束,非空时指向下一个节点。

结果输出过程中需注意,链表中每个节点值范围为0-999,高位如果为0,在用函数print(“%d”,p->data);输出时,无法显示0,只显示有效数字。所以输出时应注意在高位为0的节点中填充0。可以根据节点中的数据大小来确定填充0的个数。

例如if(p->data/10<0)printf("00%u",p->data);。

4.4 主要实现代码

其中,指针变量q指向新建节点。flag为标记变量,标记是否有前驱节点,如果有flag==1,即表示还有高位节点等待计算,如果有flag==0,则表示此节点即为最高位的节点。

5 总结

本文介绍了C语言中链表的概念,并介绍了链表分类及基本操作,此部分内容在教学中比较枯燥,属教学难点,本文给出了链表在实际问题中的应用实例,利用双向链表解决了大数阶乘运算问题,在此基础上我们可以将链表应用于大数的其他运算。

参考文献

[1]谭浩强.C语言程序设计[M]3版).北京:清华大学出版社,2005.

[2]曾联明.用C语言链表解决大整数运算的精度问题[J].电脑学习,2002.

[3]闫冰一,李晔,郑丽萍.C语言多重指针在二叉链表操作中的应用[J].郑州工业高等专科学校学报,2002.

[4]落常明.多维链表的实现及操作算法研究[J].科技情报开发与经济,2007.

探讨高职计算机C语言实验教学方法 第5篇

一、实验教师的准备工作

1.教师需要对计算机C语言的教学大纲有一个全面的了解

由于教学大纲能够指导计算机C语言的实验教学,教师的教学和学生的学习都应当在教学大纲的指导下进行,教师对教学大纲的熟悉是进行实验教学的前提。教师只有对教学大纲中的所有知识点都熟练掌握了,才可以在实验教学中更好地体现出来。教师不仅要使实验题目具有新鲜感,能够激发学生的学习兴趣,还要跟教大纲相符合。C语言的编程是比较枯燥的事情,因此,应当使用适当的方法以提高学生的学习兴趣。可以按照C语言理论课程把C语言实验教学分成几个模块,比如,对于教授C语言的三种基本结构来讲,可以根据每一模块的知识设计实验教学的内容。

2.在实验教学之前,教师需要把准备工作做好,教学的目的应当明确和便于理解;设计实验内容应当突出难点和重点知识,使学生知道自己需要学习的内容

教师需要在上实验课之前把所有的实验题目都练习一遍,及时发现存在的问题,并加以解决,以避免在课堂教学时解决这些问题,以节省课堂的时间。教师还需要维护和调试实验机器,及时地维修存在故障的机器,以避免在实验时出现一些不必要的麻烦。

3.对学生的状态有一个全面的了解

学生的基础都是不一样的,有的学生了解一些计算机编程的知识,而有的学生却一无所知。倘若教师只是单纯地讲解,而不考虑学生的实际情况,就不可能取得比较好的教学效果。教师在教学的过程中,不可以使用填鸭式的教学方法,而要不断地启发和引导学生,教授学生应当怎样解决在学习计算机C语言时碰到的各种问题。依据学生层次的不同,进行分层次的教学,对基础较好的学生适当地增加一些难度,对缺少基础的学生需要进行耐心的指导和讲解。为了使教学效果更加理想,需要学生在上计算机C语言实验课之前,先复习理论知识,然后预习实验题目,并把各种疑难问题列出来。学生进行了预习,教师的讲解也变得通俗易懂,学生的学习效率也会得以提高。

二、教师的实验教学方法

对于初次学习计算机C语言的学生来讲,会显得比较难理解,学生不具备编程的模式与理论,一切都是新的。因此,教师在讲解的过程中,需要帮助学生建立编程的模型和思想,这要比学生在计算机中机械的输入程序更加重要。首先,教师要让学生复习跟试验课程有关联地理论知识,以使学生进一步理解C语言的难点和重

点知识,学生只有在学好理论知识的基础上,才可以上好试验课。其次,教师再讲解实验课。在C语言的实验课堂上,教师需要演示与讲解一些重点知识,每一次讲解的时间不可过长,需要把大部分的时间交给学生去练习,并注重操作要点的讲解,让学生能够独立地完成实验题目。

目前,计算机C语言的实验教学基本上都是借助多媒体进行

的,应用投影仪与大屏幕更加有效地展示给学生,这样,学生的印象加深了,在实际操作中会变得更加自信,取得理想的教学效果。设计实验内容也是非常关键的,倘若教师所设计的.实验内容跟教学实际不符合,比较单调,那么就失去了现实意义,不能够激发学生的学习热情,学生对所学的内容也不会有深刻的印象。比如,教师在讲解计算机C语言中循环这一问题编程的时候,倘若使用简单的程序与方法进行讲解,学生就不会有比较深刻的印象,相反

地,把循环当中“富翁和陌生人”的例题在实验课上进行讲解,就能够激发学生的学习热情。学生就会想方设法地编写程序,学生很想知道问题的答案是什么。学生只有在仔细思考这个问题的基础上,才能够比较自然地建立编程思想,从而取得理想的实验教学效果。

三、学生的实际操作

学生在对操作步骤与实验内容充分地了解之后,就可以上机进行操作。学生在上机进行操作的过程中,难免会有一些疑问,因此,需要教师不断地巡视,对学生的各种疑问,教师需要及时地解答,对一些共性的问题,在课堂上及时地进行说明。对学生的各种疑问,教师需要认真地对待,不可以瞧不起基础比较差的学生,不可以打击学生。与此同时,应用适当的方法启发学生的创新性思维和创造性思维。只有这样,才可以达到实验教学的目的,培养出对社会有用的人才。

总之,在计算机C语言实验教学的过程中,教师需要做好充分的准备工作,并不断地启发学生进行思考,提高学生的编程意识。当然,计算机C语言实验教学方法正在不断地改进,只有探索出一套跟本校学生实际情况相适应的教学方法,才能够真正地使学生学好计算机C语言。

参考文献:

[1]谢志英,王静,陈静。C语言课程中学生问题求解能力的培养[J]。计算机教育,(03)。

[2]王荣。基于Ch平台的C语言程序设计教学方法的探讨[J]。渭南师范学院学报,(05)。

[3]王创伟,汤克明,蔡长安。C语言程序设计:教学改革方案与实践[J]。现代计算机:专业版,(11)。

高职高专C语言教学改革探讨 第6篇

【关键词】C语言;教学改革;模块化教学;项目化教学

0.前言

C语言是一种通用性计算机程序设计语言。它兼有汇编语言和高级语言的双重优点,运用它既能编写操作系统软件,又能开发各个领域的应用软件。本课程是计算机专业的计算机基础课,是学生今后学好后继课程的基础,学好了C语言,再进一步学习C++、VC++、JAVA等语言,就有了坚实的基础。

C语言教学的主要任务是培养学生程序设计的思想,并奠定学习其它计算机课程的理论基础。要求学生通过C语言的学习,了解语言课的基础知识、基本技能和编程的基本思想,同时需要学生有一定的软件和硬件的的基础知识和一定的高等数学基础,能运用C语言进行程序设计,解决显示生活中的一些实际问题。了解一般的应用程序和系统程序的编程知识 。

1.C语言教学现状

1.1理论和实践脱节

学校分别安排理论教学和实践教学的地点,甚至负责理论教学和实践教学的教师都不同。这样就导致理论和实践教学各自一条线进行。上实践课的时候可能还缺乏一些理论基础,也有可能上了很久的理论知识得不到实践机会,教学环节上的脱节,导致教师无法很好的掌控整个教学过程。

1.2学生缺乏兴趣

C语言从基本概念、语法规则,到较复杂的程序设计,要求掌握语言、算法、数据结构和程序设计等方面的知识,同时需要有一定的软件和硬件的基础知识和一定的高等数学知识。而高职高专的学生恰恰数学基础很差,面对C语言是概念性强、理论性强、内容丰富且抽象、严密的逻辑性这些,学习难度比较大,也就自然的失去了学习的积极性。尤其是单纯的理论课,到课率不高,实验课效果稍好些。

1.3课堂效果不好

高职高专学生基础较差,理解问题、掌握问题的速度较慢,需要指导老师非常耐心的教学,然而目前学校的情况是一个老师带四五十个学生,这样很难照顾好每个学生。有些学习不自觉的学生就干脆抄袭别人的作业,甚至不做作业,很难把当堂课内容掌握好。实践课的给部分同学提供了条件,一些自律性较差的学生在机房不学习,只顾玩游戏,很难扭转这种坏习惯。另外学生本身长期养成的不好的学习习惯,导致他们中的大部分听课效率都不高,老师上课讲授的内容很难听进,即使是实践课的问题,也是要讲很多遍才能解决,也就导致上课的效率不高,很难实现预期目标。

2.教学改革策略

2.1激发学生的学习兴趣

C语言本身是一门极其抽象难懂的学科,把抽象的问题形象化,使本来枯燥无味的程序代码变得充满魅力,让学习过程变得轻松有趣,是激发学生兴趣的关键所在。要激发学生的兴趣,首先要让学生明白C语言能做到很多事,利用它我们能编写各种软件,可以向学生展示很多程序结果,面对如此多的程序结果,学生应该很想自己动手试一试了,也就有了学习的兴趣和动力。

接下来让学生亲自动动手。C语言是一门实践性课程,要理论结合实践,加强学生的动手能力和解决问题的能力,教师可以举出几个简单的小程序演示给他们看,并逐一讲解,引导学生自己去发现程序中存在的缺陷以及改进的方式。让学生仿照所列举的几个程序模仿着编一个小程序。程序不用太多代码,也不要求能完成多强大的功能,哪怕完成一个简单的计算器也能让学生有强大的成就感,进而产生继续学习的动力和乐趣。

2.2 C语言理论教学方法

理论教学整体采用模块教学法,按照本课程难易层次组织教学内容。按照由浅及深的顺序大致把本课程分为三个模块:

(1)了解计算机语言的整体结构。主要内容如下:

C语言的概述。

数据类型、运算符与表达式简易部分。

三种基本结构(顺序结构、选择结构、循环结构)及相应的程序设计。

(2)掌握基本的语言规则和编程方法。主要内容如下:

函数概念及函数的简单调用。

数组的概念与简单应用。

指针的概念及指针的简单应用。

结构体与共用体的概念。

文件的概念及文件的简单读写。

(3)了解C语言的扩展功能,掌握C语言的编程技巧。主要内容如下。

复杂的选择、循环控制盒、带有一定算法的程序设计。

函数的复杂调用,内外部函数、存储类型等。

(4)掌握C语言高级编程技巧,进行综合的程序设计。

教师可以根据学生的学习情况,适当调整模块中的内容,比如讲述函数的简单应用,如学生掌握很好,且学习愿望强烈,可以适当添加复杂函数应用的实例。上课中可以采用问题启发式、引申法、框架法、求异法相结合方法授课。采用问题启发式即把很多难理解、难记忆的概念和规则变成一系列问题呈现在课堂教学中,把学习积极性调动起来,师生问答,达到师生互动的效果,增强学生自主探索的能力。引申法是由此及彼,在现有的已经解决的问题的基础上,引申出其他相关联的问题和应用,引导学生解决。这种方法可以培养学生自主解决问题的能力,毕竟程序设计过程中产生的问题是无法完全预料的,在实际编程工作中面对问题,自主解决的能力尤其重要。 框架法可培养学生的全局思维和算法的整体设计能力。通过框架法,可以使初学者有清晰的结构和思路,从全局角度设计问题,层次分明,突出算法设计的关键,利于培养学生的编程思路。求异法是指解决问题的方案可以设计多种,在多种方法中选择最优方法。这种方法能启发学生多角度、多侧面去寻求解决问题的办法,则可激发学生思考的积极性,提高其学习兴致。

3.C语言实践课的教学方法

C语言实践课采用项目化教学的策略。针对每个模块的学习内容,设计相应的程序设计要求,即项目要求。学生根据项目要求,写出设计方法及步骤,交与老师检查,进一步确定设计方案,然后在一定的时限内完成代码编写工作,并给出系统的分析、设计、实现报告。项目化教学方法类似于任务驱动式教学,只不过任务驱动是以课时为时限设计单一的任务,学生根据要求完成一个个分散的任务。而项目化教学没有那么严格的时限,是设计综合的实际应用,是完成可应用的功能,是综合型的。为了达到实践教学的目标以下事项须注意:

(1)学习C语言程序设计应当充分重视实践课。学生应多编写程序,多上机调试程序,积累编程经验。只有在实际的编程实践中,才能发现问题,解决问题,进而提高编程技巧和能力。

(2)加强机房管理,对学生严格考勤,并把考勤成绩记入期末成绩。对学生严格要求,杜绝在机房玩游戏、看电影等情况。

(3)在项目下设计小项目,争取在每个课时都能有所实现,达到课堂效果。

(4)每周编写一次实验报告,总结本周完成事项,记录解决问题的方案,这样可以帮助他们总结编程经验。

4.改革初见成效

C语言教学方法探讨 第7篇

《C语言》是一种目前比较流行的一门高级语言,C语言有以下一些主要特点[1]:1)语言简洁,紧凑,使用方便,灵活,C语言的运算符包含的范围很广泛,表达式类型多样,C语言提供了丰富的数据类型,包括整型,浮点型,字符型,数组类型,指针类型,C语言具有结构化的控制语句,用函数作为程序的模块单位,便于实现程序的模块化。2)C语言语法限制不太严格,程序设计自由度大,C语言允许程序编写者有较大的自由度,放宽了语法检查。C语言中具有大量的数据类型,并且可以使用指针来进行程序设计。通过学习本门课程,学生应该能够熟练的编写和调试C语言程序,熟悉一些算法的使用,掌握一些程序设计的思路和方法,能够使用C程序来解决一些问题。

C语言主要包括四个方面的内容,第一个是算法,也就是为了解决一个问题而采取的方法和步骤。第二个方面是程序设计的三种方法,顺序程序设计,选择结构的程序设计,循环结构的程序设计,顺序结构还包括数据类型和数据的输入输出。选择结构适用于需要进行判断和选择的情况,比如从北京出发上高速,就有2个选择,一个选择是去上海方向,一个选择是去沈阳方向,可以先进行判断再来进行选择。循环结构用于需要重复处理的问题,比如求从1到100这100个数的和,循环结构有多种形式,比如while ,do while ,for等,这些循环结构在处理同一问题时候,一般情况下它们可以互相代替。第三个是数组和函数,使用数组和函数可以把一些比较复杂的问题简单化,数组中的每一个元素都属于同一个数据类型,不能把不同类型的数据放在同一个数组中。每一个函数用来实现一个特定的功能,函数的名字应反映其代表的功能。第四个部分是指针,地址形象化地称为指针,通过它能找到以它为地址的内存单元[4]。

2 C语言教学方法

对于初学程序设计的学生来说,存在着不少困惑,可以从如下几个方面去提高C程序设计的教学效果:

2.1 开阔眼界,从基础学起

对于大多数学生来说,中学阶段都没有接触过程序设计,在最初学习C语言的过程中,很多概念,语法,数据类型让学生迷惑,前面的基础语法,数据类型没有搞懂,后面的程序结构设计等就更加不容易学好。有些学生在学习C语言的时候有好高骛远的情绪,认为现在应用的比较多的是面向对象的程序设计,对C语言的认识不够深刻,觉得C语言学习起来难度大,没有信心去学习。因此在教学的第一步应该让学生对学习这门语言树立信心,由于C语言对后续的课程起到一个打基础的作用,因此学好这门课程是很有必要的,学好了C语言,后续的很多专业课程学起来会轻松很多。

2.2 在教学中,应该注意理论和实践相结合

在教学过程中要注意教学内容和教学方法的使用,不能只是枯燥的讲授C语言的语法,而应该把教学内容进行有序的组织起来,否则学生会因为讲授的内容比较沉闷而提不起兴趣,如何激发学生的兴趣成了教学过程中的一个大问题。在课件的准备上也要下一些功夫,在课本的基础上可以加入一些自己的想法和见解,使学生更能接受。结合现在社会的需求,可以讲解现在企业,公司的需求和待遇,现在计算机程序人才的需求量还是比较大,而且薪水也比较客观,一方面让学生在课堂上就能了解社会工作的需求,更加坚定学生学习的信心,当学生想到自己通过学习程序设计语言,可以找到高薪的工作,有了学习的动力。

2.3 通过解决实际问题来组织教学

C语言是一门实验性很强的课程,教材上的例题以及课后的习题都需要通过实验来实现,设计合理的实验对整个教学有很重要的意义。刚刚接触程序设计的学生往往动手能力不强,对于程序设计很陌生。为了培养学生的动手能力和创新能力,我们采取循序渐进的方法,把一个复杂的程序分成几个小的程序来讲解,先做基本的实验,然后逐步提高,这样符合认知的习惯,通过一段时间的实验和学习,学生的动手能力和理解能力都会有不同程度的提高。采用启发式的教学方法,比如在讲解循环结构时,[2]举例s=1+2+3+4...+100,当学生了解程序设计方法后,再提出一个例题[3]s=1-1/2+1/3-1/4+...1/100,从而引导学生逐层深入的学习循环结构的程序设计思想。在程序设计中还可以通过一些趣味性的程序来调动学生的学习兴趣,比如猴子吃桃问题等,让学生通过编写这些程序来提高实际解决问题的能力,通过课堂上的讲解,课后的作业能很大程度的提高学生的程序能力。学生做实验时,如果通过程序设计能得出最后正确的结果,学生也会有一定的成就感。

2.4 采用多种教学方法来进行教学

要使教学达到比较好的效果,我们采用了灵活多变的教学方法,充分调动学生的学习积极性,把学生吸收到程序设计中来,我们通过下面两个方面来进行:

1)在做有些程序的时候,不一次性的把程序写出来,只写出程序的一部分,其余的部分让学生自己去补充,从而引导学生去思考这个程序,或者故意把程序的一部分内容写错,当运行出一个结果的时候,让学生去检查修改这个程序,对于在课堂上主动发言或者修改程序的学生给予一定的分数奖励,比如可以平时成绩加3分,学生通过上课修改程序可以提高自己的平时成绩。

2)针对上课时候有些学生开小差的问题,可以布置一些习题让学生去解答,如果学生能设计出正确的思路或者算法,给予学生每次2 分的奖励,让学生对后面的学习充满信心,这样学生的创造性也能激发出来,有些学生的思路是很开阔的,只要采用正确的教育方法,就能产生很好的教学效果。在实际教学中,我们发现有些学生能解答出很复杂的程序,通过这样的教学方法可以丰富教学手段[5]。

2.5 在教学实验过程中培养学生的程序能力

C语言这门课程比较强调实验,只有把C语言的实验做熟练了,才能更好的掌握c程序,理论和实践要结合起来学习,在考试的这个环节,也可以安排上机操作的环节,上机实验成绩占20%,在上机的过程中,每个学生做几道题目,让学生写出相应的代码,然后调试成功能运行才行。采用这种上机考核的方式,可以提高学生上机写代码的积极性,当程序出现错误的时候,能自己把错误找出来,并调试正确是程序设计的一种基本能力[6]。通过上机考试可以看出学生的程序能力,与理论考试想结合,能更好的了解学生的程序设计能力。如果要培养应用能力强,素质较高的学生,可以在平时的上机学习时,增加一些难度稍大的题目,让学生有更多思考的机会,最后通过自己独立编写程序来解答问题。

3结束语

C语言教学改革探讨与实践 第8篇

学生对学习该门课程没有明确的学习目的与兴趣。很多同学认为这门课就是介绍C语言的概念、语句、语法规则等内容;另外一些同学了解到现在流行的程序开发语言是Java和C#, 觉得C语言用处不大。C语言的教学仍停留在传统的教学模式上, 把授课重点放在程序设计语言的基本语法的讲授和掌握上, 这种灌输模式能较好地保证所讲授知识的系统性与完整性, 却忽略了程序设计能力与思维的培养, 造成学生学习的积极性不高, 教学效果较差。实验课环节效果差, 在上机过程中学生过分依赖书本, 多数学生上机就是拿书本上的例子来验证, 缺乏动手编写程序的训练。

在课后教师虽然布置了一些练习题目, 让学生重温教学内容以巩固所学的知识。但是由于缺乏有效的监督检查, 学生往往通过网络或者书本等其他途径来寻找答案, 而不是通过自己独立思考完成。C语言课程考核方式单一, 一般通过笔试手段来考核学生掌握C语言的情况, 学生通过最后几天时间背题库、背书本, 就可以轻松通过考试。

2 C语言教学改革探讨与实践

2.1 上好C语言教学的第一堂课

C语言教学的第一堂课很重要:第一要讲明C语言的重要性;第二可以结合一个生动的C语言编程实例, 使学生对C语言的学习产生兴趣;第三提出课程学习要求与方法, 给出平时作业、上机实验、考试方式等具体要求。

2.2 课堂上采用多种教学方法

可以考虑在课堂上采用多种教学方法。案例教学以程序设计为主线, 以编程应用为驱动, 通过案例和问题引出教材内容, 重点讲解程序设计的思想和方法, 穿插讲解相关的语法知识。这样教学效果既有深度又有广度, 学生实际动手能力大为增强。同时对于比较典型的问题, 可以安排少量课时实施“学生示范教学法”。在课堂的实践环节中, 教师可以让一个学生上讲台编程, 学生所有的操作会通过投影仪展现给全班同学。如果讲台上学生出现编程错误, 教师应以此为例加以更正和讲解, 并介绍一些可避免错误的编程技巧。

2.3 实验教学严格把关

在实验课环节中应严格把关。让学生课前认真准备, 每次进实验室时, 应写好完整代码。上机调试中发现问题的同时解决问题, 要求认真完成实验内容, 并在课后书写实验报告。鼓励学生多动手写程序, 多调试程序切实把握实验教学的质量。

2.4 精心安排课程设计

在课程设计阶段以软件公司的项目小组为模仿目标, 以3个学生为一个学习小组, 选出一个组长, 老师要求组长对自己的组员进行考核与具体的编程安排。课程设计的原则既要使学生有切入点动手又要使各章的内容之间有联系。课程设计选题可以以五子棋游戏、扫雷游戏、家庭财务管理、学生成绩管理系统等生活实际为例, 一方面易于理解, 另一方面可以激发学生对项目的兴趣。学生最终完成一个课程设计大作业, 以小组为单位不仅能使学生相互学习, 相互勉励, 能培养学生们的组织管理能力和团队合作能力。而且项目的完成可以帮助学生加深对书本理论知识的理解又可以让学生勇于实践、积极思考, 激发了学生的学习潜力。项目的成功使学生有成就感, 有效地调动了学生学习的积极性。课程设计以项目答辩结束, 要求项目小组成员在讲台上讲解他们的作品, 教师和其他项目小组成员在讲台下评分和提问, 所有的学生在一问一答间可以学到更多知识。

2.5 引入教学辅助平台

引入教学辅助平台, 如北京大学程序在线评测系统 (网站地址:http://poj.org/) 、中国IT实验室 (网站地址:http://c.chinaitlab.com/) 等。为了真正提高学生的编程能力, 同时也为学生参加广东省程序设计大赛作准备。要充分利用北京大学程序在线评测系统来辅助教学, 该系统是为训练ACM/ICPC国际大学生程序设计竞赛而设计开发的。在培训过程中发现学生通过使用该系统, 编程能力与分析能力得到很大提高。该系统也能在其他程序设计类课程的教学中发挥重要作用, 革新了程序设计类课程的教学手段。

2.6 改变单一的考核方式

大多数高校仍采用笔试考试这一考核方式。其实可以采用平时考核、期末理论考试、上机考试、课程设计项目考察多种考核方式相结合。平时考核以布置作业、到课、听课情况为主, 考查学生的学习态度占20%;期末理论考试采取闭卷考试, 主要考查学生对基本知识的理解和阅读别人的程序的能力占40%;上机考试主要考查学生调试程序的能力占20%;课程设计项目主要考察学生实际动手能力和团队协作能力占20%。

3 教学改革中需注意的问题

3.1 选用适合的教材

目前, 大多数教材都是传统的编排模式, 先是入门总体介绍, 然后是基础语法知识、程序结构、数据类型、文件的读写。这种方法以知识点为主线, 容易陷于语法细节, 而忽视了程序本身的重要性。结果往往是学完了C语言, 也不能完整地解决一个具体编程问题。学院选用的是浙江省精品课程教材《C语言程序设计与实践》, 这本书是以程序设计为主线, 在阐述基本理论基础上, 结合实际教学和学科竞赛的实际情况, 充分激发学生的学习兴趣。通过大量经典实例讲解和实训, 培养和提高了学生的实际动手能力和创新协作精神。

3.2 案例选用的原则

采用案例教学, 一定要设计好案例, 好的案例是成功的关键。以知识线索和围绕教学内容来组织与设计案例, 对学生的知识和能力训练具有很强的针对性。处理好具体实例与思想方法的关系, 局部知识应用与综合应用的关系, 强调实用性, 培养应用能力。通过强化案例与实验教学, 加深学生对理论知识的理解与掌握。案例教学突出学习方式的转变, 以提高学生分析问题、解决问题的能力, 进而提高综合素质。在案例设计中要注意对案例难度的把握。如果太难, 学生通过努力还是没有什么进展, 编程通不过, 学生的学习兴趣和主动性就逐渐减退, 教学效果很难达到预期目标。如果太简单起不到培养学生掌握知识和应用知识的能力。

3.3 以鼓励为主评价学生

教师对学生平时作业与实验环节以及课程设计中多给学生鼓励, 多给学生积极正面的评价。对学生提出的问题要耐心地指出问题的根源, 引导学生自己去找出原因改正错误, 不要一开始就给出答案, 更不要刻意去批评学生。对学生学习效果的评价遵循如下原则:鼓励性原则, 即对学生有创意的程序设计思想和方法要多鼓励, 对学生在实验报告中深入分析和总结要在评语中给予特别肯定;及时性原则, 即对学生在实验过程中的一些闪光点, 当场给予口头表扬。需要特别强调的是, 对学生学习效果的评价, 不应该只对学生进行横向的比较, 更应关心学生学习过程中的点滴进步, 鼓励学生在原有基础上不断争取新的进步。

4 结束语

实施以上的改革措施后, 学生的程序设计思想和编程能力明显增强。为学生们后续课程的学习打下了坚实的基础。C语言教学改革不是一蹴而就的, 应该重视理论与实践相结合, 在今后的教学过程中不断地去完善。

参考文献

[1]张慎武, 金志伟, 李娟.高校C语言教学的探索和实践[J].北京:数字技术与应用, 2010 (7) :126.

[2]边海容.项目驱动教学法在《C语言程序设计》课程教学中的应用[J].合肥:科教文汇, 2007 (29) :30.

[3]杨景花, 李华中, 王玉芳.C语言教学中的几点改进建议[J].北京:计算机光盘软件与应用, 2010 (9) :181.

[4]凌云, 吴海燕, 谢满德.C语言程序设计与实践[M].北京:机械工业出版社, 2010.

[5]宋加涛, 王蔚, 杨忠秀, 等.任务驱动法在C语言实验教学中的应用研究[J].合肥:合肥工业大学学报 (社会科学版) , 2010, 24 (2) :5-8.

C语言程序设计实例教学探讨 第9篇

改变教学思想

1、由整体到具体, 培养学生对C语言的兴趣及正确的思维模式。《C语言程序设计》注重由设计算法到书写程序并进行调试的整个过程, 显得抽象、复杂.在教学过程中, 应该先介绍一个较完整的程序例子, 该例子包含了该语言中的主要语句, 目的是使学生先对程序有个初步的印象, 再简单介绍该例子中用到的语句, 让学生对该语言的学习有一个大概的了解, 也不会因为一大堆语句的出现, 而对学习语言望而生畏。这样的教学方法, 学生先对语言的学习有了整体的概念, 再具体介绍语句。整个教学过程中应该把解题思路、方法和步骤当作授课的重点, 从而让学生明白如何分析并解决实际问题, 逐渐培养学生进行程序设计的正确思维模式。

比如实例:输出由“*”构成的一个菱形。让同学们解答, 大多数同学都在想办法用for语句来实现。有些同学受前面例子的影响开始学着分析问题了, 最后有同学用7条printf语句实现。”即:

当然这种方法是正确的, 只是说与编写教材人的思想不能统一起来, 编教材人原本是想利用循环结构来实现。

2、一题多解, 注重算法是程序设计的灵魂, 是教学重点, 也是教学难点, 而语言只是形式。没有正确的算法, 计算机将解决不了任何问题。因此, 在教学中, 应先介绍如何分析问题、设计算法并将算法正确表示出来, 以保证更好地进行后面的教学。对于C语言所涉及到的算法, 应进行部分精讲多练, 同时还应注意这些算法之间的联系。

课后习题中有这样一道题:“编写程序, 求1-3+5-7+9--99+101的值”这道题:“用p/4=1-1/3+1/5-1/7+1/9公式求p的近似值, 直到最后一项的绝对值小于10-6为止”题目有些相似。学生自然而然会想到用例题的这种方法求这道题。程序如方法一:

这道题除以上的解法以外还有许多种。我尝试去扩展同学们的思维, 去试着用多种方法解决这个问题。大家争先恐后地讲出自已的想法。我将他们的想法一一归类, 并且告诉同学们这就是解决这个问题的算法, 同学们感觉有些不可思议, 课堂气氛顿时活跃起来, 我再让同学们冷静下来将这些想法转化为C语言形式, 同学们这时都来劲了, 同学们给出了许多个解决问题的思路。

方法二:将1-3+5-7+9--99+101= (1+5+9++101) - (3+7++99) , 经过这样的组合后, 先分别求和, 再作差。

方法三:根据“+”、“-”间隔的规律, 笼统地去求和, 只不过将数分为正数和负数。

方法四:利用求通项T= (-1) i-1* (2*i-1) .

这样下来, 扩展了同学们的思维, 效果不错。

总之, 通过C语言程序设计的学习, 重点是培养学生掌握程序设计的思想和方法。在教学中, 应当遵循“算法重于语法, 语法重于编码”的原则组织实施。实例教学方法正是符合上述原则, 并且将此法用于教学实践中, 尤其是在上机实践中, 让学生按照上述所讲的方法进行练习, 取得了良好的效果。

参考文献

[1]谭浩强:《C语言程序设计》[M].北京:清华大学出版社, 2005[1]谭浩强:《C语言程序设计》[M].北京:清华大学出版社, 2005

西藏班C语言教学改革探讨 第10篇

笔者通过多年的对西藏班学生的C语言实践教学,总结出C语言教学中存在的几点主要问题:

1 我校西藏班学生学习C语言存在的几点问题

1.1 西藏班学生学习C程序的基本情况

我校根据不同的专业,一般在大一第一学期或第二学期就开设C语言这门课程。对于西藏班的学生来说,这个时期,他们对计算机的基本操作还很不熟练,有很大一部分学生甚至还没有接触过计算机,更谈不上对计算机的结构有所了解。而C语言灵活的语法结构,繁琐的程序设计细节使他们头晕脑胀。在这种情况下,学习C语言对于他们来说难度非常大[1]。

1.2 目前教学方法及教学手段对学生学习C语言的影响

从目前我校的教学情况看,一般都是以多媒体教学为主。当然,这种教学方式在某些方面比起以前在黑板上讲授是有了很大的进步,但我们也应看到这里边仍然存在着一定的问题。首先,在整个教学过程中,教师仍是课堂上的主角,教师在台上讲授,学生在下面听的这种传统模式基本上没有改进,这种传统的教学方法实质上很难激发学生学习的热情。其次,课件的单调性也是影响教学效果的另一个重要原因。从现实情况看,大多数的课件都是直接使用网上的课件资源,内容上也只是代替了原来板书的功能。学生面对这些单调乏味的课件,仅有的一点学习热情也会消失得无影无踪。再者,C的DOS运行环境没有其他面向对象的语言那种可视化的界面,不能从感官上吸引学生。这些问题的存在使得学生很难对C语言产生学习的兴趣和热情。

另外,实验课教学也存在很多问题。例如,学生不明确上实验课的目的,没有实验要求等。面对C语言中严格的语法要求(缺少一个小的标点符号程序也无法运行),学生往往束手无策,急于向老师求救,缺乏自我探索的精神,这也导致老师上实验课忙的团团转,也无法排除所有学生的困难。

1.3 当前考试形式对学生学习态度的影响

当前,我校C语言程序设计的考试还是处在原来的传统阶段。对于C语言这种编程语言的考核存在的最大问题就是只考核学生的理论知识,而忽视了学生上机实践能力的考核。并且在理论知识的考核中,往往是对于语法细节考核的太多,而真正编程及算法设计的思路考得太少。这种考核方式,也使得大多数学生在学习C语言时仅仅是靠做题,背语法,而一般不太注意动手能力的培养。而实际上对于一门编程语言,动手能力才是能否编写和调试出高水平的程序来的关键所在,而且也只有在实际的编程锻炼中,才会加深对C语言中各个章节知识的理解,才能更好地掌握C语言。

2 课程教学改革的几点建议

针对以上存在的问题,我在教学过程中尝试转变了过去教学思想和教学方法,为了增加了课堂教学的信息量,杜绝满堂灌的单项式教学法,我制定以下一些方法。

2.1 利用C语言解决学生熟悉的问题,激发学习兴趣

为了激发学生对C语言的学习兴趣,我在初次上课时,找出一些学生所熟悉的数学方面的问题,通过编写C语言程序来实现求解,通过和传统求解方法的比较,使学生体会程序设计的用途。另外,我还介绍一些趣味性数学问题,如“九九乘法表的输出”、“百鸡问题”、“水仙花数”、“猴子吃桃问题”等等,以培养学生的学习兴趣,让大家在惊奇和赞叹中,对C语言产生浓厚的兴趣,从内心深处萌生了我要学会C语言的渴望,从而有效地调动了学生的学习热情,同时,学生们也明确了学习的目的和必要性。产生学习C语言的兴趣。然后整个教学过程中把解题思路、方法和算法当作授课的重点,从而让学生明白如何分析并解决实际问题,逐渐培养学生进行程序设计的正确思维模式。

2.2 重视实践环节,提高学生的动手能力

上机实验是掌握C语言程序设计的必要的也是非常有效的手段,实践教学对于本门课程教学起着举足轻重的作用,强调实践是学好程序设计语言的关键,通过上机操作和验证,可进一步加深各种语句的理解,提高学生的编程能力。

西藏学生虽然理论基础较差,但他们模仿能力十分强。针对学生的这一特点,我每次上机都布置相应的实验任务,首先让学生知道自己应该做什么。对于相对较难的题目,我先给学生演示相同类型题目的编程求解方法,使他们在对这种方法完全理解的基础上再去尝试新的题目。其次在上机答疑过程中,我对学生的实践水平在心中有一个大致了解,从而对学生存在问题较多的实验进行集中讲解,使学生的编程水平有了明显的提高。

2.3 将案例教学法引入课堂

案例教学法使为了培养学生综合运用所学知识解决实际问题的能力而引入的一种综合性的教学方法。由于环境以及语言的差别,我校区内班学生相对别的学校的学生来说,接触实际开发软件的机会就更少了,针对这个问题,我引入案例教学法,是学生适应并且能够配合教师教学,达到预期效果。具体做法:首先,教师针对一个实际的案例(如汉诺塔问题),从问题的提出、分析、方案的设计与实施,到最终问题的解决,给学生全面了解解决问题的全过程。然后,教师提出与之相似的案例,由学生当主角,让学生自己解决问题,锻炼他们综合运用知识的能力。对于在设计过程中一些错误的想法和做法,及时给予纠正。这样,学生不但在解决问题的全过程中锻炼了能力,而且更增加了他们学习的兴趣。

2.4 改革考核方式,实现教考分离

建立网上测验系统,把平时测验和期末考试有机地结合起来。我和几位老师正在制作C语言学习网站,建立网上测验系统,实时的掌握学生各个阶段的学习情况,并把学生存在问题较多的算法进行讲解,从而提高学生C语言的整体水平。在此之后我们准备按教学大纲要求建立了试题库,实现教考分离,并根据教学的发展积极探索考试内容和方法的改进,不断的充实和完善试题。

3 结束语

C语言课程的教学过程,是各院校培养高素质IT人才的必经之路,也是西藏自治区信息行业蓬勃发展的奠基石,而C语言的教学改革是一项长期的、不断完善、不断改进的教育实践,只有不断努力、不停探索,才能找到一条适合西藏班C语言学习的道路,实现我们最终的培养目标。

摘要:我校学生大部分来自西藏自治区,学习C语言存在很多实际问题,通过多年的C语言的实践教学工作,总结出我校学生学习C语言存在的问题,针对这些问题给出的自己的几点想法。

关键词:西藏自治区,C语言,教学方法,考核方式

参考文献

[1]张韬.西藏内地西藏班(校)办学20年成果丰硕[N].西藏日报,2005-08-08.

[2]谭浩强,C语言程序设计[M].2版.北京:清华大学出版社,1998.

高职C语言程序设计教学改革探讨 第11篇

关键词:C语言;教学改革

中图分类号:TP3 文献标识码:A 文章编号:1009-3044(2014)26-6122-02

C语言程序设计作为计算机类专业的核心基础课,在专业体系中占有重要的地位。学好C语言,不仅为后续C++、Java等课程奠定良好的基础,同时也是从事软件编程的必备能力。但是在实际教学中发现很多高职学生认为C语言界面灰暗、语法繁杂、枯燥无味,对C语言望而生畏,难以达到良好的教学效果。不少学生虽然学习了C语言,但是不会使用C语言进行编程,更不用说解决实际问题了。针对这种情况,结合多年教学经验,提出C语言程序设计教学改革的一些看法和建议。

1 高职C语言程序设计教学现状及存在问题

1.1 学生文化基础差,C语言学习入门难

高职生源广泛,既有普高生,也有职高生,还有中职对口升学上来的,当然还包括一部分自主招生录入的学生。不论以何种方式进入高职,他们总体文化基础比较差,对C语言学习起来比较困难。一方面,C语言的运行环境不论是Turbo C还是Visual C++都是纯英文运行环境,对英语能力要求较高,而我们的学生在英语方面恰恰是弱项。另一方面,编程能力的培养对学生的逻辑思维能力要求较高,我们的学生相反,形象思维能力好一点,逻辑思维能力大都较弱。所以基础差导致学生入学之初看到C语言的运行环境,还没有开始学习怯步了。

1.2 学生缺乏学习C语言的兴趣

C语言程序设计在教学中既有语法的学习,也有编程思想如程序结构、数据结构等的学习。C语言数据类型和运算符丰富,语法限制不太严格,程序设计的自由度很大,这本来是C语言的优点,但是对于初学者来说,这些恰恰都变成了缺点,增加了学生学习的难度,再加上部分教师在教学过程中从语法开始,按部就班,缺乏贴近生活的实例,导致学生学了很多语法,确写不出一个程序,久而久之,对C语言的学习便失去了兴趣。

1.3 缺乏良好的教学方式

在教学过程中,大部分教师和学生注重课本知识的学习。教师先在教室里讲解课本内容,然后在机房实践中学生将老师讲过的程序录入到机器中,运行出正确的结果就完事大吉了。这样的教学方式,学生没有明确的学习目标,老师的指挥棒指到哪里,学生执行到哪里,学生没有思考问题的习惯,完全忽略了学生的主动性、创造性。一旦遇到没有老师指导的情况,学生就会无从下手。

1.4 实践教学环节薄弱

C语言程序设计作为编程的入门基础课,不仅要求学生掌握一定的语法,最重要的是培养学生的逻辑思维能力从抽象思维转向C语言的计算思维,能用C语言的方式思考问题,掌握基本的编程方法。这些都需要在大量的实践中进行练习,实践教学的效果对C语言学习的成功与否至关重要。在我们的实践教学环节中,基本上还延续着几十年约定俗成习惯,理论课完毕后,老师布置与其相符的任务,学生通过上级来验证上课的内容是否正确,不论是教师还是学生都重视程序运行的结果,忽视程序设计的过程。其次在实践教学环节中选取的例子都是课本上的例题,这些题目往往更注重C语言本身的语法规则,离社会实际比较遥远,学习之后不能解决实际问题。再次在上课过程中,一位老师指导众多学生,无法详细的为每位学生进行辅导,学生遇到问题也是一知半解,实践课不能起到巩固理论课学习的作用。

1.5考核方式单一

大部分院校对C语言的考核都以考试为主,操作为辅,或者干脆不进行操作考核。这种单一的考核方式注重语法,忽视学生的动手能力和解决实际问题的能力,也导致学生在学习过程中极易出现重语法轻编程能力培养的现象,本末倒置,不能达到良好的教学效果。

2 高职C语言程序设计教学改革对策

2.1激发学生学习C语言的兴趣

C语言是程序设计的入门基础课,在此之前学生根本没有接触过程序,也不知道什么是算法,对C语言的一切都是陌生的。如果我们在教学中再照本宣科,按部就班,学生肯定会畏学,甚至厌学。因此在C语言学习过程中,激发、培养学生的兴趣至关重要。当学生从内心深处对所学课程感兴趣时,他们就会主动去学习,在学习C语言之初,我们要多准备一些用C语言编制的解决实际问题的例子演示给学生看,让学生直观的感觉到C语言是有用的,可以解决实际问题的。同时提供一些简单的验证性的实例让学生亲自上机操作运行,让学生感觉到他们也可以编程,逐渐培养学生的兴趣。

2.2 培养学生的编程思维——用C语言的方式进行思考

在C语言教学中一个难点是兴趣的培养,另一个就是编程思维的培养。我们早已习惯现有的思维方式,但是C语言使用的却是自己独有的机器思维方式。在刚学C语言的时候,大部分学生都不理解明明3+2一看就知道等于5,我们却在C语言中定义变量,进行运算再输出结果这样复杂而又陌生的方法来解决这个小学生都会的问题。学生们大感困惑与迷茫,实际上这就是C语言的处理方式,即输入à处理à输出。其中的处理过程最为关键,也就是算法,编程能力最核心的体现。我们要培养的就是学生的算法能力,在教学中,时刻让学生用C语言的方式来思考问题,解决问题。

2.3 灵活多样的教学方法

C语言程序设计主要培养学成的编程能力,这个学习的过程比较枯燥,不像Photoshop、Flash等课程形象、直观、生动,因此在教学过程中要使用多种教学方法,使学生易于接受。例如在讲到变量交换时很多学生不理解为什么要引入中间变量,引入中间变量进行交换后他们眼花缭乱,变量不知所踪。那么我们在教学中完全可以使用现实中的实例——两个人交换座位,来进行模拟变量交换,学生马上就理解为什么引入中间变量了。我们要善于从生活中发掘实例,是我们的学生更好的掌握C语言。

2.4 加强实践锻炼

要想成为一名合格的程序设计师,就必须在实践中锻炼,不断积累编程经验。在实践教学环节安排上,要既有验证型程序,巩固学生课堂所学知识,也要有扩展型程序,培养学生自主学习能力。二者缺一不可。只有验证型程序,学生学习没有动力,只要录入代码即可;如果只有扩展型程序,学生因为太难会无从下手,只有二者结合起来,循序渐进,才能不断提高学生的编程能力。

2.5 建立立体式教学,拓展学生学习空间

随着信息技术和教育技术的发展,网络、电脑和手机的便捷使用,我们的教学也应该与时俱进,结合这些高科技,建立全方位立体式教学环境,拓展学生学习的空间。我们建立了课程教学网站,学生可以在线编程,系统在线监测程序正确与否;教师也可以在线考试,检测学生对知识的掌握程度。只要有网络,学生就可以进行C语言的学习。同时积极鼓励同学参加各种程序设计大赛,如蓝桥杯、ACM程序设计大赛等,以赛促教,以赛促学,激发学生学习兴趣,形成良好的学习氛围。

3 结束语

高职院校C语言程序设计教学改革,不是一蹴而就的工作,需要我们长期坚持,不断在实践中总结,提升,在教学过程中以教师为主体,发挥学生的主导作用,辅之以行之有效的教学方法,一定可以提高教学效果。

参考文献:

[1] 方红琴,立体式C语言程序设计教学改革探讨[J].计算机教育,2012(12).

[2] 丁辉.高职C语言程序设计教学改革研究[J].计算机教育,2014(3).

[3] 屈喜琴,石卉,陈忠贵.高职高专C语言程序设计教学改革探索[J].软件导刊,2012(6).

关于C语言教学过程优化的探讨 第12篇

C语言的重要性不言而喻, 其应用长盛不衰。直至今天在实时控制, 操作系统, 网络底层的设计开发等重要领域都有其身影。同时作为相关专业后续课程的教学, C语言还可以作为教学语言使用。所以各级各类学校的相关教学单位都将其作为必修课安排。但因其具有指针类型及一些其他语言所不具备的特点, 比如兼有高低级语言能力, 运行效率高, 语法复杂多变, 教学难度大, 学习障碍多, 使不少学生在学习过程中穷于应付, 甚至中途放弃学习。所以如何降低教学过程的难度, 激发学生学习兴趣和积极性历来是从事C语言教学的各位同行长期不懈探讨的课题。

2 “内容详略”与“精讲多练”

“内容详略”首先是指对教材内容的再编排。即哪些内容需要讲, 而那些内容不需要讲, 哪些内容需要重点讲, 而哪些内容只需“一笔带过”, 作为教师需要做到心中有数。谭浩强先生的《C程序设计》很多教师依然在使用。这部教材在部分高校及及职业类院校中使用比较广泛, 其内容详实, 深入浅出, 特别适合自学者学习, 多年来使广大C语言爱好者受益匪浅。但非计算机专业课时安排相对较少, 如果完全按教材的内容和组织结构讲授, 课时方面一定会捉襟见肘。比如教材开篇《序言》一章中的很多内容基本上都是 “介绍性”的, 对学生编程能力的提高意义不大, 完全可以一语带过,而交由学生自己课下阅读理解。其实很多章节中都有类似的“介绍性”内容, 作为教师一定要仔细斟酌, 适当处理。

所谓“精讲多练”, 这是针对计算机语言这门课程的特点而言。其实纵观计算机相关课程, 实践性强是其最重要特点。作为“主导”的教师, 一定要让作为“主体”的学生在课堂上多挤出一些时间上手练习。现在的学生十有七八都有笔记本或台式机, 智能手机也基本人手一部。而且手机上安装合适的软件后也可以运行C语言平台, 从而可以实现移动编程练习。所有这些都是学好“语言”的物质保障。 在此基础上教师的“精讲”就会起到“东风” 的作用。比如“三结构”之一的选择结构一章中就有一个很典型的例子, 如果利用得好, 可以起到“举一反三”的作用。该例就是将a, b, c 3个变量按由小到大的顺序输出。教材中并没有提到排序这一概念, 而事实上就是一个排序问题。在这一问题中教师的教学语言设计就显得非常重要, 可以体现精讲的原则。首先要一定要提到排序这一概念, 并且一定要强调排序算法是计算机诸多算法研究中的重要课题之一这一关键问题。其次通过编程过程的分析, 归纳出排序过程就是从3个数中先拿出一个数与其余的两个数进行比对, 所以要比对两次, 也就是用if语句判断两次, 得到3个数中最小的。对剩余的两个数, 再从其中拿出一个数与其余的一个数进行比对, 这时只需比对一次。可以初步归纳得出3个数需要比对两轮, 共需比对3次, 也就是3个if语句。其中不难看出随着“剩余”的数越来越少, 比对的次数在递减, 而递减的规律根据if语句的行数就是: 两个数需要一轮比对, 比对1次, 3个数需要比对两轮, 比对2+1次, 4个数需要比对3轮, 比对4+3+1次, 所以随着变量 数目的增 加 , 语句行数 递增的规 律就是 :1,3,6,10,15,21...。这是比较容易理解与接受的讲述, 通过这样分析和归纳, 使学生可以大致了解该排序算法的基本要点。在此基础上可以继续趁热打铁, 给学生布置a, b, c, d 4个变量的情况, 让他们当堂上手练习。接着进一步提出问题,如果变量的个数是10个, 20个会怎么样? 显然以上算法不是排序问题的正解, 所以要告诉学生正解需要学习循环结构和数组的概念后才能解决, 从而进一步调动起学生继续探究的欲望。作为教师相当于在此打下一个“伏笔”, 到了真正学习排序算法时, 可以“旧事重提”, 温故而知新。更重要的是通过这样的处理, 既使学生掌握了if语句的初步用法, 又增加了师生互动的时间, 而更重要的是学习了用计算机研究算法的基本思路和方法, 提高了编程能力, 达到了“举一反三”的效果。

3 “课前预热”,“课间互动”与“课后温习”

“课前预热”,“课间互动”与“课后温习”, 是课堂教学的补充与自然延续。所谓“课前预热”与 “课后温习”是老生常谈, 指的是课前预习与课后练习。但在网络发达的今天以上过程也要做到与时俱进。可以充分利用学生“喜闻乐见”的即时通信技术手段, 比如微信, QQ等等。特别是课前课后这一过程必须在教师的主导下进行, 以激发学生学习兴趣与学习的主动性而避免盲目性。现在的高校学生在高中阶段学习过于紧张, 被动围着高考杠杆转, 学习主动性变差, 进高校后相当一部分学生又过于放松放任自己, 这种情况尤其在二三类高校中比较普遍。其在学习方面表现为惰性有余, 主动性却远远不够。针对这种情况, 作为教师应该主动求变求新, 将课堂教学这种传统平台, 加以拓展至网络, 在网络无处不在的今天, 将移动学习引入进来。这是一种全新的、非面对面的互动平台, 使人与人之间更容易拉近距离, 形成新的无拘无束的互动模式。在这方面QQ群就是一种值得推荐的互动平台。

在这个平台上, 学生可以提出与课程相关的各种问题,教师可以适时地进行释疑解惑。由于课堂教学过于“正式”和“章节化”, 而在网络中则可以摆脱这些约束, 从而淡化章节间的“界限”, 比如3个数的排序问题中打下的伏笔, 可以在循环结构一章结束后重新引入, 但需要非正式地介绍数组及数组的用法。而在介绍数组时不要过多涉及数组概念本身,只把侧重点放在“用”字上。实际上数组就是一组变量, 只不过给这些变量起了一个共用的名称, 即数组名, 而用下标标明不同的数组元素而已。具体讲解时可以用形象生动的比喻, 比如王姓一家生有5个男孩, 在家中父母亲只称呼他们的在家中的排行, 像老大, 老二, 老三等, 而外人则称呼他们的孩子为王老大, 王老二, 王老三等。其中的王字即相当于数组名, 而数字则相当于数组的下标。这样做的好处是尽量避免数组概念的缠绕, 而通过形象的比喻来理解并访问数组元素。这些做法所起的作用可以说是一箭三雕,(1) 解决了学生们想了解“谜底”的急切心情, 起到了趁热打铁的功效,(2) 解决了循环结构的嵌套应用问题, 进一步巩固了课堂教学成果,(3) 提前预习了数组的知识, 使学生们对数组的概念有了感性认识, 待到讲授数组一章时便有了“水到渠成”的效果。

4 布置难度梯度练习

C语言是实践性非常强的一门课程, 教学计划中安排了大量的上机实验课, 这也是学生最喜欢并成效显著的学习方式。但通过上机实验课要真正提高学生的编程能力, 掌握C语言的算法设计的基本要领, 教师必须精心设计实验内容, 使其体现由易到难, 由简到繁, 循序渐进的原则。这就要求所安排的实验题目要有一定的难度梯度, 门槛要低, 每个实验又必须是后续试验的铺垫。例如学籍管理问题就可以作为一个很好的题目, 通过安排4到5次的上机实验课使学生独立完成一个简单学籍管理软件的开发。以下就是一组实验的设计:

第一组实验可以先从软件的菜单入手, 该实验可以由几个小实验构成:

(1) 设计一个while (1) 循环, 当用户输入字符q或Q时该循环终止, 而其他字符时则保持循环状态。要求退出时在屏幕上显示循环次数。

(2) 利用上一题结果设计一个小软件 , 用于输入N个学生的成绩。每输入一个成绩给出一个评价, 分数与对应的评价为: 90以上为优, 80以上为良, 70以上为中, 60以上为及格, 60以下为不及格, 当输入成绩大于100时退出循环,程序运行结束。

(3) 在题1的基础上设计一个软件:

1) 程序运行后首先显示一个菜单如下:

2) 接下来输出一行提示:”Enter your choice I,P or Q”。

如果选择了I或i回车后, 在屏幕上输出一行”Yourchoice is key I”, 其他两个选择以此类推, 并且当选择了Q或q后程序退出 (提示: 用多分支结构实现)。

很明显这是由易到难的一组实验。在细节上第一个小实验需要用if语句配合break实现对while (1) 循环次数的控制。第二个小实验用于检验if语句的多层嵌套应用问题。第三个小实验进一步检验同学们对多分支结构的驾驭能力。

第二组实验主要用于检验同学们对数组特别是二维数组的驾驭能力、函数的编写能力及利用指针处理问题的能力,可以安排以下一组小实验:

(1) 编写一程序 , 输入5名学生的3门课程成绩的同时生成平均成绩 (提示: 用二维数组), 并根据平均成绩进行排序后再输出。

(2) 对上题及实验一 (3) 进行适当改造的基础上完成一个简单的学籍管理程序, 具体要求如下:

1) 编写函数create, 用二维数组完成5位同学的3门成绩的录入并计算每位同学的平均成绩。

2) 编写函数sort, 实现根据平均成绩的排序 (递增或递减)。

3) 编写函数print, 实现学生成绩的输出。

4) 编写函数search, 根据学生学号输出其成绩。

5) 当不再需要时, 程序能够实时退出。

(3) 用指针变量重新实现上题 (提示 : 用指向一维数组的指针实现, 如指针 (*p) [4] 是指向长为4的一维数组等)。

(4) 第3题中的sort可能涉及大量的数据移动, 导致程序运行效率低下。如果定义一个指针数组指向每一行, 这样就可以通过交换各行的指针实现排序, 请尝试一下这种方法。

第三组实验要求继续完成、完善组一和组二的内容。

第四组实验可以检验同学们对结构体及链表的驾驭能力。

1) 用结构体重新实现第二组实验中的第3小实验的内容。结构体的成员包括: 学号、姓名、3门成绩和总分及平均成绩, 其中3门成绩和总分及平均成绩用长度为5的数组实现。

2) 尝试用动态链表实现上题。

以上4组实验可安排5次上机实验课, 累计10课时完成。

相关文章
2024中考体育考试安全预案

2024中考体育考试安全预案

2024中考体育考试安全预案(精选13篇)2024中考体育考试安全预案 第1篇清涧分部2014年初中毕业学业理科实验操作、体育考试安全工作预案为...

1
2025-09-19
2024国培总结

2024国培总结

2024国培总结(精选9篇)2024国培总结 第1篇2017教师国培学习总结当今社会,教事业迅猛发展,各类培训数不胜数,而“国培”对于我们教育发...

1
2025-09-19
2024年单位与单位的新年联欢会主持稿及串词

2024年单位与单位的新年联欢会主持稿及串词

2024年单位与单位的新年联欢会主持稿及串词(精选5篇)2024年单位与单位的新年联欢会主持稿及串词 第1篇2018年单位与单位的新年联欢会主持...

1
2025-09-19
2024年上海市崇明县中考一模语文试题及答案

2024年上海市崇明县中考一模语文试题及答案

2024年上海市崇明县中考一模语文试题及答案(精选6篇)2024年上海市崇明县中考一模语文试题及答案 第1篇2017年崇明区初三一模语文试题(一...

1
2025-09-19
2010—2011学年度第一学期六年级语文教学计划

2010—2011学年度第一学期六年级语文教学计划

2010—2011学年度第一学期六年级语文教学计划(精选13篇)2010—2011学年度第一学期六年级语文教学计划 第1篇2010—2011学年下学期六年级...

1
2025-09-19
2011《农业农村工作知识》高频考点

2011《农业农村工作知识》高频考点

2011《农业农村工作知识》高频考点(精选12篇)2011《农业农村工作知识》高频考点 第1篇2011公考备考:《农业农村工作知识》高频考点2011-0...

1
2025-09-19
以案促改主持词

以案促改主持词

以案促改主持词(精选4篇)以案促改主持词 第1篇主持词同志们:根据市委要求,今天我们在这里召开“××局开展案件剖析做好以案促改工作动...

1
2025-09-19
2024致自己的励志说说

2024致自己的励志说说

2024致自己的励志说说(精选5篇)2024致自己的励志说说 第1篇人生,说到底,活的是心情。人活得累,是因为能左右你心情的东西太多。以下是...

1
2025-09-19
付费阅读
确认删除?
回到顶部