c语言教学工作总结

2024-06-17

c语言教学工作总结(11篇)

1.c语言教学工作总结 篇一

《C语言程序设计》教学总结

C语言是计算机专业的一门专业课,它以其处理功能丰富,表达能力强,使用方便灵活,执行效率高,既具有高级语言的特点,又具有汇编语言的特点,因而成为国内外使用较广泛的语言之一。本人于2002-2003第二学期担任本课程的教学,在教学中注重面向应用、重视实践、结合成人学生的特点由于此课程是该班开的第一门语言课,因此在讲授中按照循序渐进、逐步深入的原则来安排、难点分散使学生不会感到太困难,从而树立学习的自信心。经过一学期的教学实践,学生基本掌握了C语言的基本内容,会编写简单的C语言程序,为后续课程奠定了基础。

二零零三年六月

2.c语言教学工作总结 篇二

一、明确课程目标

C语言课程一般是为应用性教学而设置的, 强调实践性是计算机语言课程教学中特别要注意的问题。C语言的内容繁多, 在有限的课时内不可能也没必要面面俱到, 所以必须突出重点, 突出实用性, 关键在于教会学生正确运用C语言编写程序, 一些细节、具体规则和进一步的知识可以让学生在今后的应用中查阅有关书籍。教师应始终坚持以应用为中心, 以算法为基础, 以培养学生的实践能力为核心, 突出技术实用性和再学习能力的培养。

二、实施教学改革

1、培养学生正确的思维模式

《C语言程序设计》注重由设计算法到书写程序并进行调试的整个过程, 在整个教学过程中应该把“解题思路、方法和步骤”当作授课的重点, 从而让学生明白如何分析、解决实际问题, 逐渐培养学生进行程序设计的正确思维模式。

在讲课中, 应集中精力对章节的知识结构进行详细阐述、对所要解决的实际问题进行深入剖析, 不应花太多的时间放在对语句语法的过多讲解。当遇到实际编程时, 需积极引导学生把“要想干什么”的问题, 直接转化为“要解决什么”的问题。当问题确定以后, 选择正确的算法。

2、“项目驱动”教学

在理论教学中采用“项目驱动”教学法, 整个课程教学围绕一个“工程项目”进行, 通过逐步拓展的实训项目和设计, 将每一阶段的学习进行小结性的贯穿与能力提高。将C的知识点都溶化到一个个实训项目的程序编写中。在课程初期, 主要是进行单项的编程练习, 重在掌握C语言的基本语句、数据类型与程序结构等。在进入数组、函数、结构、指针和文件内容教学时, 开始实训项目的编程实践, 逐步组建“学生信息管理系统”, 并且添加文本菜单, 整合扩展记录添加、排序、查询、统计和记录浏览等内容形成课程设计。

3、授课过程中始终把握五个要点

突出特点:在实际授课中, 要一直向学生强调, C语言是一种函数式语言, 这种函数式的特点正是结构化程序设计思想的很好体现, 讲课时多使用函数, 要求大家也多用函数来编程实现。

侧重分析:分析是解决的第一步。把典型问题从不同角度分析, 再比较各种方法的优劣, 取得最佳方法, 这个过程强化了学生分析问题的能力。

抓住重点、化解难点:讲授重点内容时, 应放慢速度、加重语气, 从而吸引学生的注意力。遇到难点时, 善于化解, 把问题逐渐细化, 所有小问题解决了, 难点自然就解决了。

强化实践:计算机语言的实践就是上机编程, 是培养学生综合运用相关知识解决问题的重要途径, 也是我们掌握教学反馈信息的主要渠道。只有亲自动手、亲自实践, 才能真正体会到语言编程的乐趣。通过上机练习也可以进一步加深对理论知识的掌握, 有利于培养学生的创造思维、独立分析问题和解决问题的能力。

注重反馈:教学过程实际上是一个教师与学生互动的过程。为了获得良好的教学效果, 教师应注重及时从每一个环节获得有关学生掌握所学知识的情况、存在问题的反馈信息, 进行有针对性的辅导。

4、在例题上下功夫

一题多解, 注重算法是程序设计的灵魂, 是教学重点, 也是教学难点, 而语言只是表示形式。没有正确的算法, 计算机将解决不了任何问题。对于C语言所涉及到的算法, 应进行部分精讲多练。

对说明语法规则和语法现象的例子追求尽量简单, 对说明算法的例子追求尽量典型, 除了综合演练外, 所有例子都不要太过复杂;不但要举正面的例子, 而且要特别注意举反例;一个程序例材用后不要轻易抛弃, 可尽量变化使用, 例如每次改一点, 看看情况会如何变化, 加深学生对程序中各项参数和要素的理解;一个题目原型, 可采用多种办法来实现, 讲解时不一定要一次操作完, 例材可以重复使用, 这样可节省背景介绍, 加深学生的印象;对一些典型算法 (如排序) 要注意提取其轮廓框架, 进一步浓缩其算法要点;对使用频度高、容易掌握的算法或程序结构可多讲, 反之, 可少讲;对非结构化的语言来说, 结构化的手段和例子要多讲, 非结构化的可少讲或不讲。

5、一题多解 (分组讨论) 刺激学习积极性

为了调动学生编程的积极性, 我们可以采取分组比较方式, 培养他们合作和竞争意识, 从而达到提高学习兴趣的目的。比如求“素数”数这个例子, 先介绍一种常见算法, 其他方法把全班同学分组自主去解决, 最后比较哪组使用方法最多, 最巧, 同时把这些好方法介绍给大家, 鼓励大家去发现新思路、新方法, 培养他们创造性思维。实践证明这种分组讨论方式不但可以帮助学生掌握多种语句的使用方法, 还能培养他们多种角度分析问题的能力以及集体协作能力。

6、课程考核方式改革

(1) 平时上机训练时给学生留一些编程习题, 每次根据学生编写情况进行测评并占据期末总成绩30%。

(2) 期末前, 给学生留一个综合实训题考核学生综合解决问题的能力, 要求同学们在一定时间内完成, 占据期末总成绩30%。

(3) 期末进行理论考试, 占期末总成绩的40%。

以上是本人在C语言教学中的一些体会, 希望能对大家有所帮助。

参考文献

[1]郭琴:对高职高专计算机专业程序设计教学的思考中国科技信息2008[1]

3.c语言教学工作总结 篇三

另一方面,作为计算机基础教育课程的通用“C语言程序设计”,由于缺乏专业针对性且没有后续课程支撑,使得学生对课程的掌握程度较差。相比汇编语言,C语言具有丰富的库函数,可以实现复杂的控制算法,编译效率高。它采用的结构化程序设计,可读性、可移植性和可维护性较好,在目前的单片机开发中已得到较为广泛的应用,并且在许多高校的单片机教学中也逐步采取了C语言作为编程语言。因此,研究和探索在高职单片机课程中引入C语言的教学改革成为大势所趋。

一、教学设计基础

整个教学设计是紧紧围绕实现单片机应用开发能力的专业培养目标,为提高学生应用C语言进行单片机开发的工程实践能力。其前导课程为通用的C语言程序设计和单片机基础课程。在单片机基础课程里,应掌握单片机的硬件结构、最小应用系统、中断与定时、系统扩展等知识点,读懂并能理解例程所涉及的简单汇编指令。

对C51知识点的选取,考虑到其自身特殊性及与通用C语言不同,应重点选择与单片机应用紧密相关的内容,以体现适度、够用的原则。对不常使用的知识点,比如多维数组、指向指针的指针、链表等则不再涉及。确定的主要知识点有:数据(类型、定义等)与运算(包括位运算)、数组、函数、指针、模块化程序设计在51单片机程序设计中的应用等。

二、基于工作过程的教学模式设计

所谓工作过程是指在行业企业中为完成一件工作任务并获得工作成果而进行的一个完整的工作程序。长期以来,高职院校电子类专业的单片机课程常常采用理论加实践的教学模式,尽管学生获得了必要的专业知识和操作技能,但他们在面对实际工程问题时却不懂得从哪里下手、如何开展工作。实践证明,有效的职业学习只能通过实际工作来实现,即“做中学”。这就是目前我国职业教育课程改革中广泛推行的工学结合课程模式。它的主要教学形式,就是让学生亲自经历结构完整的工作过程,并完成一些在所学专业(职业)中最具典型意义的综合性的工作任务。

因此,按照工作过程系统化的思路对单片机C语言课程进行设计,就是以工作过程为主线,以工作任务为中心,按照工作过程的需要来选择、整合相关C51的理论知识与实践技能,通过教学模式的改革、教学方案的设计与实施,使得学生职业技能不断得到提升。

(一)递进式学习情境的设计

基于工作过程的C51教学模式的开展是以合理的学习情境的设计为基础的。

学习情境是基于工作任务和行动过程的背景下,将所要学习的知识与技能以及所应达到的目标要求,进行教学论和方法论的转化后所构成的小型主题学习单元。因此,每个学习情境的设计都应选择具有单片机C语言典型应用意义的工作任务为载体,根据所需的职业能力要求不同设计不同难度等级的学习情境,并体现由浅入深、由简单到复杂、由局部到系统的递进式提升。

表1是学习情境设计表,表中共设置了3个学习情境、8个工作任务。每一个任务都是在前一任务完成的基础上进行了难度的叠加和深度、广度的拓展。

(二)基于行动导向的教学过程设计

教学过程的设计应体现以行动为导向的原则,按照一般工作过程“资讯、决策、计划、实施、检查、评价”的六个步骤来设计教学过程。 下面以学习情境3中的工作任务“直流电机恒速控制系统实现”为例来设计这一环节的教学过程,设计结果如表2所示。

三、建立科学的评价体系

科学、合理的评价对引导学生改变学习方式、提高学习兴趣、改善学习的主观能动性具有积极的意义。评价是对学生的职业能力以及职业素养的综合评价,是依据对每个学习情境完成情况的评价结果再按一定比例构成的。对每个学习情境的评价,需要既重视对最终结果的评价,更应注重对实践能力的检验,以及对工作态度、团队协作及表达能力的检验。评价采取以教师评价为主的方式。通过目前的教学尝试来看,自我评价方式的效果并不理想,这是今后应考虑的问题。

[参考文献]

[1] 赵志群.对工作过程的认识[J].职教论坛,2008,(14):3.

[2] 邵长友.高职应用电子专业“C语言程序设计”课程改革设想[J].计算机教育,2008,(4):103-105.

[3] 姜世芬.高职电子类专业《C语言程序设计》课程改革探究[J].科技创新导报,2009,(17):110-112.

[4] 周国运.单片机C语言教学探索[J].计算机教育,2009,(22):63-65.

[5] 姜大源.当代德国职业教育主流教学思想研究[M].北京:清华大学出版社,2007.

[6] 熊春如,彭小娟,刘世安.项目驱动在高职单片机C语言教学中的实践[J].职教论坛,2010,(32):32-36.

4.C语言总结 篇四

1.C语言程序的基本结构

1.1添加stdio.h的引用

1.2添加一个main函数

1.3main函数的形式应该是

voidmain

{

}

2.C语言程序的编译运行过程

2.1编写源代码(CPU是不能直接执行C语言的)

2.2编译:将C语言的源代码翻译为机器语言的源代码

编译完成的结果一般是个exe文件

2.3运行:在DOS命令行中直接写exe文件的名称,就可以直接运行C语言编写的程序(exe)。

3.数据类型

数据类型的定义:存放数据的容器。

基础的数据类型有:

int:整型,一般的会占4个字节,32位

float:浮点类型(单精度),一般的会占4个字节,32位存储的数据应该是带小数的数据1.213.57.0

char:字符类型,一般的会占1个字节,8位,会存储单个字符。A,B,a,b,.,+,-,(,),’A’,’X’,’ ’’ ’

扩展的数据类型:

long:长整型,存储的数据量要多一点一般的应该是4个字节

short:短整型,一般的应该是2个字节

double:双精度的浮点类型,8个字节。

1.测量数据类型在内存中占多大的空间

使用sizeof运算符来测量

可以接受一个变量,也可以接受一个类型。

2.给变量赋值的时候,某种数据类型的常量

int:1,2,45%d

long:12l%ld

short:12,23%d

float:12.3f%f

double:12.3%lf

char:’A’%c

4.变量

4.1变量的定义:

定义完一个变量,没有初始化,这个时候变量中的值可能是一堆垃圾。如果要使用这种变量的话,那么必须对变量进行初始化过程:其实就是为变量赋值的过程。

变量的数据类型变量的名称;

定义完一个变量,立即对这个变量用初始值给其进行初始化。

变量的数据类型变量的名称=初始值;

定义变量必须在函数一开始。

intx;

x=123;

inty;//放在这个地方时错误的,应该放到和x变量定义一个地方。

4.2变量的使用

对于有累计过程的变量,必须对其进行初始化。

对于累加的变量应该初始化为0

对于累积的变量应该初始化为1

在程序运行的过程中可以对变量进行多次赋值。

变量可以在函数中定义:叫局部变量,只在当前定义的函数中使用,超出这个范围,将不再可用。

变量可以在函数外部定义:叫全局变量,在所有的函数中都可以使用

4.3变量的名称

变量的名称应该有明确的含义。

变量的名称应该采用英文单词的组合。

变量的名称如果采用了多个英文单词,那么第一个单词的首字符要小写,后续的单词的首字母要大写。这种命名方式叫骆驼命名法。

Pascal命名法:每个单词的首字母都必须大写。

Camel命名法:应用在局部变量中。

Pascal命名法:应用在全局变量,函数的名称。

应该类似于:userInput,computerNumber,compareResult

5.标识符:

变量的名称,函数的名称这些都叫标识符。

标识符的规范:

可以使用的字符:字母,数字,下划线。

对于标识符来说,第一个字符不能是数字,可以是字母或下划线。

一个标识符在同一个范围中只能应用在一个变量或一个函数名中。

变量名称的小规范:

i,j,k,m,n可以作为循环变量的名称。

x,y,z可以作为普通的变量使用。

除此之外,尽量不要使用单个字母来做变量的名称。

一般来说,变量的名称应该是一组名词的组合,修饰的词应该在变量名称的最前面。

函数名称:一般应该是动宾结构;动词+名词的形式。

GetUserInput()

GetMonthDays()

EatFood();

DrinkWater();

6.控制结构

总的控制结构有三种。

6.1顺序结构

一句接一句的顺序执行。

写在上面的语言应该先执行。

写在下面的语句应该后执行。

是使用最多的结构,因为顺序结构中没有关键字。

6.2分支结构

ifelseif

主要做范围匹配

if(条件表达式或者逻辑表达式)

因为条件表达式和逻辑表达式的结构都是真或假

对于ifelseif结构来说,一次只能匹配一个范围,只要有一个范围匹配成功,那么其他的分支将不会被执行。

分支结构可以嵌套。

switchcase

主要做单值匹配

switch:需要匹配的变量的名称

case:单个值

default:啥都不写

break:是结束这个switch

switch后面的变量的数据类型应该是整型或字符类型,浮点类型不可以。

case:表明匹配上这个值应该做的工作。

case后面应该有个块。

在case块的最后,应该是break语句,用来跳出switch。

default:所有的case都没匹配上的时候,应该执行的语句块。default块中也应该有break。

当一个case块中没有任何内容的时候,可以不写break,那么这时候,将会匹配下一个case块中的内容。

switchcase结构可以转换为ifelseif结构。

ifelseif不一定可以转换为switchcase结构

6.3循环结构

for循环

for(循环变量的初始化;循环执行的条件;循环变量变化的过程)//不能有分号

{

//循环体

//可能会执行多次

//循环执行的次数和for中的三个语句都有关系。

}

循环:

循环的种类:

1.确定次数的循环。

2.次数不确定,但是由程序来决定循环次数。

3.次数不确定,但是由用户来决定循环次数。

4.死循环。

循环的形式:

1.for(循环变量的初始化;循环执行的条件;循环变量变化的过程)

2.循环变量的初始化;while(循环执行的条件){循环变量变化的过程;}

3.循环变量的初始化;dowhile(循环执行的条件){循环变量变化的过程;}

数组:一组在内存中连续存放的变量的集合。

定义:

1.数组中元素的类型数组的名称[数组的大小];

intary[5];

2.数组中元素的类型数组的名称[数组的大小]={数值1,数值2,.....};

大括号中的数值的个数,不能比数组的大小还多。

intary[4]={1,2,3,4};

intary[4]={1,2,3};

//错误的

intary[4]={1,2,3,4,5};

3.数组中元素的类型数组的名称[]={数值1,数值2,.....};

数组的大小是大括号中元素的个数。

使用:

1.赋值

数组的名称[数组元素的下标]=值;

数组元素的下标从0开始,到数组的`大小-1结束。

2.取值

变量的名称=数组的名称[数组元素的下标];

算法

1.查找(在数组中查找最大数)

首先假设数组中的第一个元素是最大的;

将数组中的其他元素挨个与最大数进行比较。

2.查找(在数组中查找指定的元素)

返回的结果是指定的元素在数组中的位置(下标或索引)

3.排序(冒泡)

核心思想:大数下沉,小数上浮。

需要用到循环嵌套

外层循环的次数是数组的大小-1轮。

里层循环的次数是数组的大小-1-轮索引

在里层循环中要做比较,比较完成后,需要做两个数的交换。

进制的转换

10-10

应用的算法是碾除法。

核心思想是:每次都取一个数的个位,直到原始数变成零,就结束了。

项目:证明6174。

1.拆分

2.排序

3.组最大数,组最小数

4.用最大数-最小数,查看差值是否是6174

5.如果不是,那么将差值重新作为新的可拆分的数,回到1.

函数:

程序执行过程中的特定功能的块。

printf()//stdio.h

main():必须有,且仅有一个。

自定义的函数:

按返回类型分:

1.没返回值的函数

返回类型一律是void

在调用的时候,不需要一个变量来接受函数的返回值。

2.有返回值的函数

返回类型是除void之外的其他的类型。

intSum(intx,i以用一个变量来接受函数的返回值。

按函数的参数来分:

1.有参数的函数

voidSum(intx,inty);

intSum(intx,inty);

在调用的时候,必须传递参数。

2.无参数的函数

5.C语言之精华总结 篇五

对于程序语言我喜欢的是C++,它能带给你别的语言无法给予你的无上的智力快感,当然也会给你一门语言所能给你的魔鬼般的折磨。其实Java,C#,Python语言也非常的不错,我也极为喜欢。它们都是非常成功的语言,我从来就不愿意做某一种语言的盲目信仰者,每种语言都有它成功的地方,失败的地方,都有它适合的地方,不如意的地方。所以每一次看到评价语言的文章,我看看,但从来不会发言。

C++的前世是C,而且C所留下的神秘以及精简在C++中是青出于蓝而胜于蓝!C所带给人的困惑以及灵活太多,即使一个有几年经验的高段C程序员仍然有可能在C语言的小水沟里翻船。不过其实C语言真的不难,下面我想指出C语言中最神秘而又诡谲多变的四个地方,它们也继续在C++语言中变幻莫测。指针,数组,类型的识别,参数可变的函数。一.指针。

它的本质是地址的类型。在许多语言中根本就没有这个概念。但是它却正是C灵活,高效,在面向过程的时代所向披靡的原因所在。因为C的内存模型基本上对应了现在von Neumann(冯·诺伊曼)计算机的机器模型,很好的达到了对机器的映射。不过有些人似乎永远也不能理解指针【注1】。

注1:Joel Spolsky就是这样认为的,他认为对指针的理解是一种aptitude,不是通过训练就可以达到的

http:///wiki/APL_programming_language

下面有一段是这样的: APL is renowned for using a set of non-ASCII symbols that are an extension of traditional arithmetic and algebraic notation.These cryptic symbols, some have joked, make it possible to construct an entire air traffic control system in two lines of code.Because of its condensed nature and non-standard characters, APL has sometimes been termed a “write-only language”, and reading an APL program can feel like decoding an alien tongue.Because of the unusual character-set, many programmers used special APL keyboards in the production of APL code.Nowadays there are various ways to write APL code using only ASCII characters.在C++中有函数重载(overload)可以用来区别不同函数参数的调用,但它还是不能表示任意数量的函数参数。

在标准C语言中定义了一个头文件专门用来对付可变参数列表,它包含了一组宏,和一个va_list的typedef声明。一个典型实现如下【注14】: typedef char* va_list;#define va_start(list)list =(char*)&va_alist #define va_end(list)#define va_arg(list, mode)((mode*)(list += sizeof(mode)))[-1] 注14:你可以查看C99标准7.15节获得详细而权威的说明。也可以参考Andrew Konig的《C陷阱与缺陷》的附录A。ANSI C还提供了vprintf函数,它和对应的printf函数行为方式上完全相同,只不过用va_list替换了格式字符串后的参数序列。至于它是如何实现的,你在认真读完《The C Programming Language》后,我相信你一定可以do it yourself!使用这些工具,我们就可以实现自己的可变参数函数,比如实现一个系统化的错误处理函数error。它和printf函数的使用差不多。只不过将stream重新定向到stderr。在这里我借鉴了《C陷阱与缺陷》的附录A的例子。实现如下: #include #include

void error(char* format, …){ va_list ap;va_start(ap, format);fprintf(stderr, ―error: ―);vfprintf(stderr, format, ap);va_end(ap);fprintf(stderr, ―n‖);exit(1);} 你还可以自己实现printf: #include

int printf(char* format, …){ va_list ap;va_start(ap, format);int n = vprintf(format, ap);va_end(ap);return n;} 我还专门找到了VC7.1的头文件看了一下,发现各个宏的具体实现还是有区别的,跟很多预处理(preprocessor)相关。其中va_list就不一定是char*的别名。typedef struct { char *a0;/* pointer to first homed integer argument */ int offset;/* byte offset of next parameter */ } va_list;其它的定义类似。

经常在Windows进行系统编程的人一定知道函数调用有好几种不同的形式,比如__stdcall,__pascal,__cdecl。在Windows下_stdcall,__pascal是一样的,所以我只说一下__stdcall和__cdecl的区别。

(1)__stdcall表示被调用端自身负责函数引数的压栈和出栈。函数参数个数一定的函数都是这种调用形式。

例如:int fun(char c, double d),我们在main函数中使用它,这个函数就只管本身函数体的运行,参数怎么来的,怎么去的,它一概不管。自然有main负责。不过,不同的编译器的实现可能将参数从右向左压栈,也可能从左向右压栈,这个顺序我们是不能加于利用的【注15】。

注15:你可以在Herb Sutter的《More Exceptional C++》中的条款20:An Unmanaged Pointer Problem, Part 1:Parameter Evaluation找到相关的细节论述。

(2)__cdecl表示调用端负责被调用端引数的压栈和出栈。参数可变的函数采用的是这种调用形式。

为什么这种函数要采用不同于前面的调用形式呢?那是因为__stdcall调用形式对它没有作用,被调用端根本就无法知道调用端的引数个数,它怎么可能正确工作?所以这种调用方式是必须的,不过由于参数参数可变的函数本身不多,所以用的地方比较少。

对于这两种方式,你可以编制一些简单的程序,然后反汇编,在汇编代码下面你就可以看到实际的区别,很好理解的!重载函数有很多匹配(match)规则调用。参数为―…‖的函数是匹配最低的,这一点在Andrei Alexandrescu的惊才绝艳之作《Modern C++ Design》中就有用到,参看Page34-35,2.7―编译期间侦测可转换性和继承性‖。后记:

C语言的细节肯定不会只有这么多,但是这几个出现的比较频繁,而且在C语言中也是很重要的几个语言特征。如果把这几个细节彻底弄清楚了,C语言本身的神秘就不会太多了。C语言本身就像一把异常锋利的剪刀,你可以用它做出非常精致优雅的艺术品,也可以剪出一些乱七八糟的废纸片。能够将一件武器用到出神入化那是需要时间的,需要多长时间?不多,请你拿出一万个小时来,英国Exter大学心理学教授麦克.侯威专门研究神童和天才,他的结论很有意思:―一般人以为天才是自然而生、流畅而不受阻的闪亮才华,其实,天才也必须耗费至少十年光阴来学习他们的特殊技能,绝无例外。要成为专家,需要拥有顽固的个性和坚持的能力……每一行的专业人士,都投注大量心血,培养自己的专业才能。‖【注16】

注16:台湾女作家、电视节目主持人吴淡如《拿出一万个小时来》。《读者》2003.1期。―不用太努力,只要持续下去。想拥有一辈子的专长或兴趣,就像一个人跑马拉松赛一样,最重要的是跑完,而不是前头跑得有多快。‖ 推荐两本书:

K&R的《The C Programming language》,Second Edition。Andrew Konig的《C陷阱与缺陷》。本文从中引用了好几个例子,一本高段程序员的经验之谈。

6.C语言常用语句总结 篇六

一:常用函数

1、putchar函数:

putchar函数(字符输出函数):向终端输出一个字符。一般形式为:

putchar(c)

//

输出字符变量c的值。

==

printf(“%c”,c)

2、getchar函数

getchar函数(字符输入函数):从终端输入一个字符。getchar函数没有参数,一般形式为:

c=getchar()

//将输入的字符赋值给c

3、printf函数

printf函数(格式输入函数):向终端输出若干个任意类型的数据。printf的一般格式为:

printf(“格式控制”,对应变量名)

//

例如:printf(”%d,%cn”,i,c)

4、scanf函数

scanf(格式输入函数):从终端输入若干个任意类型的数据。一般形式为:

scanf(“格式控制”,&变量名)

二:基本语句(除if语句外,switch和三种循环语句都需要{大括号}的支持)

(1)条件语句if和switch

1、if语句: ********************* if(表达式)语句1;

语句2;

// if下的各独立语句用分号分隔。********************* if(表达式)语句1; else 语句2;

********************* if(表达式1)

语句1;

else if(表达式2)

//

每一个if与他最近的一个else对应。

语句2;

....else if(表达式n)

语句n;

else

语句n+1; ********************* If语句的嵌套 if(表达式)

if(表达式)语句1

else语句2 else

if(表达式)语句3

else语句4

2、switch语句

switch(表达式){ case 常量表达式1:

语句1

case常量表达式2:

语句2

//

每一个case表达式后都需要加上break跳出,否则

case常量表达式n:

将依次执行下去。

语句n default :

//

大括号划分switch内语句

语句n+1 }

(2)三种循环语句

1、while语句

while语句用来实现“当型”循环结构。一般形式如下: while(表达式)

//

当表达式非0值时(逻辑表达式),执行while语句中的内嵌套语句,{

先判断后执行。

语句1;

//

分号间隔每一个独立语句。

语句2;

//

大括号划分出while内语句。}

2、do… while 语句

do… while 语句 先执行循环体,然后判断循环条件是否成立。一般形式为: do { 循环体语句1;

//

分号间隔每一个独立语句。循环体语句2;

//

大括号划分do内语句。} while(表达式)//

当表达式非0值时(逻辑表达式),执行while语句中的内嵌套语句,先判断后执行。

3、for语句

for语句不仅可以用于循环次数已经确定的循环,而且可以用于循环次数不确定的循环而只给出循环结束条件。

for(循环变量赋初值;循环终止条件;循环变量增值){

语句1;

//

分号间隔每一个独立语句。

语句2;

//

大括号划分for内语句。}

它的执行过程如下:

(1)、先求解表达式1。

(2)、求解表达式2,若其值为真(值非0),则执行for循环中指定的内嵌语句,然后执行下面的(3)。若表达式2为假(值为0),则结束循环,转到第(5)步。(3)、求解表达式3。

(4)、转回上面第(2)步继续执行。

(5)、循环结束,执行for语句下面的一个语句。

(3)其他语句:

1、break语句

break语句可以是流程跳出switch结构,继续执行switch下面的语句。

break语句也可以用来从循环体内跳出循环体,提前结束循环,接着执行循环体下面的语句。

break语句的一般形式为:break;

说明:break语句不能用于循环语句和switch语句之外的任何其他语句。

2、continue语句

在循环体中遇到continue语句,程序将跳过continue语句后面尚未执行的语句,开始下一次循环,即只结束本次循环的执行,并不终止整个循环的执行。

三:其他语句

1.唯一的三元运算符:条件运算符

表达式:

判断表达式1?表达式2:表达式3

//

例如:a>b?a:b

(条件成立取表达式2的值,否则取表达式3的 2.宏定义:#define 标识符 字符串

//

例如:#define N 300

定义N为300 3.结构体:

一般形式如下: struct 结构体名 { 类型名1 结构成员名1; 类型名2 结构成员名2; …

类型名n 结构成员名n;

}s;

//

属于该结构体的变量名(类似于 int a 中a的角色);

引用结构体变量中的数据:(对结构体成员变量的引用)

1)结构体变量名.成员名 // s.成员名1(引用后即可当普通变量操作)2)指针变量名->成员名 3)(*指针变量名).成员名 4.共同体

一般形式如下:

union 共用体标识名 {

类型名1 共用体成员名1; 类型名2 共用体成员名2。。

类型名n 共用体成员名n;}

共用体变量中成员的引用:

共用体变量名.成员名 指针变量名->成员名(*指针变量名).成员名

三:文件的操作:文件指针实际上是批向一个结构体类型的指针。

(1)

文件的打开,关闭:

FILE *指针变量名; // 定义文件指针

fopen(“文件名”,“文件使用方式”); //(打开文件)例如:fopen(“c:file_a”,”r”);fclose(文件指针)

//(关闭文件)

例如:fclose(fpout);

判断文件是否能打开,需写入: FILE * fp;if((fp=fopen(“文件名”,“打开方式”))==NULL)//

打开文件出错的话 { printf(“cannot open filen”);

exit(0);

//

exit(1)出错退出。exit(0)正常退出 }

文件打开方式说明:

1.r,凡用“r”打开一个文件时,该文件必须已经存在,且只能从该文件读出

2.w,用“w”打开的文件只能向该文件写入。若打开的文件不存在,则以指定的文件名建立该文件,若打开的文件已经存在,则将该文件删去,重建一个新文件。

3.a,要向一个已存在的文件追加新的信息,只能用“a ”方式打开文件。但此时该文件必须是存在的,否则将会出错。

4.+,与上面的字符串组合,以读和写的方式打开文件

(2).文件的读写

读写数据将通过调用标准输入输出函数来完成。这些函数主要包括: 1).fgetc()和getc():从制定文件中一次读取一个字符 fputc()和putc():一次输出一个字符到指定文件 2).fgets():从指定文件中一次读取一个字符串 fputs():一次输出一个字符串到指定文件 3).fread():从指定文件中一次读取一个数据块 fwrite():一次输出一个数据块到指定文件 4).fscanf():从指定文件中按格式读取数据

fprintf():按指定格式将数据输出到指定文件中

详细介绍:

1.读写字符fgetc和fputc:字符读写函数是以字符(字节)为单位的读写函数。每次可从文件读出或向文件写入一个字符。

形式: 字符变量=fgetc(文件指针)例如:ch=fgetc(fp);// 从打开的文件fp中读取一个字符并送入ch中。

形式: fputc(变量名,文件指针); 例如:

fputc(a,fp)// 把变量a的值写入fp所指向的文件中。

判断是否出错,需写入:

while((ch=fgetc(fp))!=EOF)// 当文件内容没有执行错误时,顺利执行下一句

2.读写字符串fgets和fouts:从指定的文件中读写一个字符串到字符数组中。

形式: fgets(字符数组名,n,文件指针)其中的n是一个正整数。表示从文件中读出的字符串不超过 n-1个字符。在读入的最后一个字符后加上串结束标志'。例如:

fgets(str,n,fp)//从fp所指的文件中读出n-1个字符送入字符数组str中。

形式: fputs(字符串,文件指针);其中字符串可以是字符串常量,也可以是字符数组名,或指针变量。例如:

fputs(“abcd“,fp)// 其意义是把字符串“abcd”写入fp所指的文件之中。

3.数据块读写函数fread和frite:用来读写一组数据。

读数据块函数调用的一般形式为: fread(buffer,size,count,fp);写数据块函数调用的一般形式为: fwrite(buffer,size,count,fp);其中: buffer 是一个指针,在fread函数中,它表示存放输入数据的首地址。在fwrite函

数中,它表示存放输出数据的首地址。size 表示数据块的字节数。count 表示要读写的数据块块数。fp 表示文件指针。例如:

fread(fa,4,5,*fp);其意义是从fp所指的文件中,每次读4个字节(一个实数)送入实数组fa中,连续读5次,即读5个实数到fa中。

fread(&stu[i],sizeof(struct 结构体名),1,fp);其意义是从fp所指的文件中,每次读结构体的一个变量名送入数组stu[i]中,连续读1次,即读1个结构体到stu[i]中。

3.格式化读写函数fscanf和fprintf: 函数的读写对象不是键盘和显示器,而是文件.函数的调用格式为:

fscanf(文件指针,格式字符串,输入表列);// fscanf(fp,“%d%s”,&i,s);fprintf(文件指针,格式字符串,输出表列);// fprintf(fp,“%d%c”,j,ch);

(3).文件定位

使“读写位置指针”直接指向指定的读写位置。函数包括: fseek():可移动位置指针到指定位置上 ftell():可获得当前位置指针的位置

rewind():“反绕”函数,可使位置指针回到文件的开头

详细介绍:

1.fseek()函数:

一般形式:

fseek(fp, offset, origin)fp是文件指针,offset是以字节为单位的位移量,为长整型数;origin是起始点,用以指定位移量是以哪个位置为基准的,起始点既可用标识符来表示,也可用数字来代表。

标识符 数字 代表的起始点 SEEK_SET 0 文件开始 SEEK_END 2 文件末尾

SEEK_CUR 1 文件当前位置 例如:

fp已指向一个二进制文件,能使位置指针从文件的开头向文件尾部移动20个字节的fseek()函数的

调用形式如下:

fseek(fp, 20L, SEEK_SET)例如:

fp已指向一个二进制文件,能使位置指针从文件尾部向文件开头移动10个sizeof(int)的函数的调

用形式如下:

fseek(fp,-10L*sizeof(int), SEEK_END)

对于文本文件,位移量必须为0。

例如:fp已指向一个文本文件,能使位置指针移到文件起始位置的fseek()函数形式如下: fseek(fp, 0L, SEEK_SET)例如:fp以指向一个文本文件,能使位置指针移到文件末尾的fseek()函数的调用形式如下: fseek(fp, 0L, SEEK_END)

2.ftell()函数:

调用ftell()函数可以得到当前位置指针相对于文件起始位置的字节数。函数调用出错时,返回-1L.例如:当打开一个文件时,通常并不知道该文件的长度,通过以下程序段可以求出该文件的字节数:

fseek(fp, 0L, SEEK_END);//把位置指针移到文件末尾 t = ftell(fp);//求出文件的总字节数

再例如:某二进制文件中存放的struct st结构体类型数据,可以通过以下程序,可求出该结构体类型

数据块的个数:

fseek(fp, 0L, SEEK_END);t = ftell(fp);n = t/sizeof(struct st);

3.rewind()函数:

7.C语言教学方法探讨 篇七

现针对几年来C语言课程的教学经验, 从如何提高C语言课程教学质量、增强教学效果、培养和提高学生分析问题、解决问题能力和创新能力等方面, 谈谈在教学上的一些经验和体会。

一、调整教学内容, 改革教学思路

针对信息工程系学生的实际情况, 对C语言教学内容做调整和整合。首先, 对输入输出格式、程序的三种控制结构、函数、结构体等内容, 采用讲、练结合的方法让学生掌握精华部分, 对枚举、共用体等内容采用以学生自学为主、辅以答疑的方式。其次, 在重点内容的教学上辅以大量的课内习题课和课外练习方式, 让学生充分掌握基本内容。再次, 让学生组成小组做针对性很强的练习来加强学生的理解、掌握。最后, 对学生在作业过程中暴露的主要问题集中解决、个别问题单独解决的方法来弥补个体差异, 同时兼顾到大多数同学的利益。

二、改进教学方法和教学手段

C语言这门课程低年级开设, 学生对程序设计没有完整的概念, 学习C语言的目的不清楚, 加上在以往的教学中大多数都是灌输式教学模式, 学生处于被动的学习状态, 课堂气氛沉闷, 久而久之学生就会感到厌烦, 对学习失去热情。要改变这种状况, 在教学中就应明确教学目的, 加强师生交流, 充分发挥教师和学生的主观能动性, 激发学生学习的热情, 使学生能独立思考, 勇于创新, 善于解决实际问题。

1. 改变教学方法, 培养学生兴趣

恩格斯说“兴趣与爱好是最好的老师”。在课程讲授过程中, 要特别注意培养学生的学习兴趣。教师在讲课前应先介绍C语言的用途, 例如, 可用C语言编写各种系统软件 (如操作系统) 和应用软件 (数控行业、自动化、虚拟仪表、管理软件) 以及一些小游戏;C语言是专业课的基础等, 使学生明白学习C语言的目的和作用。

C语言一开始就介绍了一些程序代码和函数使用规则, 而学生生对对语语法法、、函函数一无所知。如果按照书本顺序进行讲解, 学生一开始始理理解解起起来来很吃力, 就失去了对C语言的学习兴趣。而学生一般对对上上机机比比较较感兴趣, 开始可以先介绍C语言的上机步骤, 然后用CC程程序序调调试试一些在数学中已学的问题, 用C语言来求解, 使学生体体会会程程序序设设计的用途和一种全新的解决问题的方法, 以激发其强烈烈的的求求知知欲欲。如数学中常解的一道题:已知三角形的三边, 求三角形形的的面面积积。。针对这个问题, 可以先写出一个三角形三边固定程序 ( (三三边边在在程程序序中已给出) , 从运行过程让学生看出这个程序只能求一一个个固固定定三三角形的面积, 不具备通用性, 因此提出程序应能够允许用用户户输输入入三三角形的三边, 这样引入输入函数, 之后又会发现, 这样的的程程序序只只能能求正常条件下 (能构成三角形的三边) 三角形的面积, 面面对对非非法法数数据就会出现异常, 此时我们引入分支语句……一直到引引入入循循环环结结构, 求任意个三角形的面积。让学生体会到设计程序考虑虑问问题题要要从从用户的角度出发, 全面、客观, 从而使其对程序设计产生生浓浓厚厚兴兴趣趣。让大家积极主动、自觉独立地获取知识, 打好学习程序序设设计计语语言言的基础。整个教学过程中应该把解题思路、方法和步骤 ( (即即““算算法法””) ) 当做授课的重点, 从而让学生明白如何分析并解决实际际问问题题, , 逐逐渐渐培养学生进行程序设计的正确思维模式。

22..利利用用多种教学手段, 提高教学效果

制制作作课课件的目的是为了提高教学质量, 如何制作课件可从以下下几几个个方方面面考虑。首先, 在形式上要朴实大方而不花哨。其次, 在内容容上上要要充充分分利用课件的优点, 化抽象为具体。在演示课件的同时要凭凭借借自自身身的的丰富教学经验和生动的讲解, 来调动学生的积极性。因为为现现代代多多媒媒体教学方式并不能完全取代传统的教学方式, 应该将二二者者恰恰当当地地结合起来, 发挥各自的优势, 这样才会收到令人满意的教学效果。

33..培培养养学生好的编程思想和方法

语语言言只只是程序设计的形式, 而编程思想才是灵魂。没有正确的思思想想, , 计计算算机机解决不了任何问题, 因此, 要将编程思想作为教学重点点。。有有一一些些学生对C语言的语法和句式掌握得很好, 但一面对问题题就就一一片片空空白, 不知如何运用所学知识来解决, 这就要求教师在讲程程序序设设计计前前要先介绍如何分析问题、设计算法并将算法正确表示出来。

顺应医学终身教育发展需求, 提高医学生自主学习能力, 为其终身学习和发展奠定基础, 是当前医学教育人才培养的主要目标之一。为了让以学生更为有效地学习医学课程, 提高专业学习能力, 作为基础课教师, 笔者始终积极探索不同的教学模式, 开展多元教学方法改革实践, 在教学成果上有了显著提高, 学生的成绩也得到了同步提升。

对于任何学科而言, 一种单调的教学模式显然无法满足现代教育理念的要求。因此, 我们应针对不同教学内容, 不同层次的学生, 不同基础的班级, 灵活组合运用多种教学方法, 以达到理想的教学效果。

一、各种教学方法的应用比较

1.互动式和参与式教学法的应用, 充分调动了学生参与教学过程的积极性, 使学生的参与成为主导。值得注意的是, 这种方法的使用可能会流于形式。因为在课堂上, 教师提出一个问题后, 举手的学生人数很多, 但并不一定培养了他们的主动思考意识。所以, 让学生的主动探索精神内化, 才是该教学方法使用的

2. 在从传统教学模式向现代教学模式的转变过程中, 启发式和讨论式教学方法尤为重要。

通过这种方法的应用, 充分显示了学生的主体地位, 教师则发挥了其主导作用。问题是如何对学生进行适当的启发, 启发到什么程度, 才能将学生引领上正确的轨道。安排学生讨论时, 如果话题选择上不合适, 会造成教学组织的混乱, 结果适得其反, 教学效果下降。

3. 在个体的学习过程中, 发现问题要比解决问题更重要。

因为, 发现问题是培养创新精神的关键一步, 也是第一步。以问题为中心的教学法, 培养了学生发现问题的能力, 让探究探索成为学生追求真理的习惯。该方法使用的关键在于, 如何让学生在学习过程里发现问题, 并且让学生品尝到成功的快乐。因为, 对于理论性较强的细胞生物学和医学遗传学课程, 操作性较弱, 所以帮助学生找到解决所发现问题的方案, 是实现学生发现问题习惯可持续的保证。

4. 由于我们国家的传统教学模式沿用太久, 所以, 教师的权威在课堂上始终让学生感到神圣不可侵犯。

由此, 在高职高专的教学过程中, 学生始终处于被动的地位;在课堂上, 教师的话就成了圣旨, 学生无法真正发挥在学习过程中的主体地位。角色置换教学法能够在一定程度上弥补这种不足。让学生走上讲台, 一

三、注重学生动手能力培养

计算机专业是一门实践性很强的专业, C程序设计的学习也不例外, 要把学生在课堂上所学的知识在计算机上用程序设计反映出来, 必须加强实验环节的教学, 强化实验能力、学生的动手能力及创新能力。

1. 明确上机任务, 培养学生动手能力

对学生而言, 在每一次上机前应作好充分准备, 编写好上机内容。学生只有反复上机操作, 才能对C语言有更深、更全面的认识和理解, 逐步提高实际操作和学习的能力, 上机实验除了能提高学生的动手能力, 还能加强学生对C语言中细节性问题的理解。对一些有疑惑的问题, 也可以通过上机得到验证, 让学生体会到“计算机是最好的老师”这句话的真谛。

2. 合理分配学时, 增强学生的综合运用能力

在C语言课程中, 每次理论课都对应着一次实践课, 也称为课内实践, 到学期末再安排一个阶段的课程设计, 目的是提高学生则可以从直观上了解学生对于教学内容的掌握程度;二则可以锻炼学生的语言表达能力;三则可以弱化学生骨子里的“奴性”意识, 调动其主观能动性。角色置换教学法的不足就是, 不能满足所有学生

5. 在教学辅助措施方面, 加强多媒体教学。

本教研室教师一起制作电子课件, 同时借鉴引进其他高校优秀课件进行多媒体教学。具有直观性、互动性和形象的特点, 将各种细胞的亚微结构和抽象的知识形象展示出来, 有利于学生的理解、接受, 且有利于学生的素质培养。但是使用多媒体只是一种教学辅助手段, 不能过分依赖, 否则, 学生将养成视觉惯性, 使其思考意识麻痹。

6. 以问题为基础的学习 (problem-based learning, PBL) 是以学生为中心、基于问题的、学科交叉的教学方法。

成功的PBL是学生通过自主讨论过程获得多学科融合的知识, 同时培养分析和解决问题的能力以及交流能力等多种能力。PBL教学成功的一个关键因素是案例编写的严密。案例包括学生指南和教师指南两部分。一个真实翔实、循序渐进的案例学生指南, 有利于学生围绕案例层层剥茧似地慢慢接近真相, 同样, 教师指南应该将案例所涉及的问题预先提出来, 以便指导教师掌握讨论的进程。我国医学院校当前的课程计划基本上是以学科为基础的课程计划, 在实施PBL教学中, 尤其是基础医学教学阶段, 有一定困难, 或者效果不够理想。因此, 如果采用PBL作为基本的教学方法之一, 就应当将课程计划变革为以系

二、实施教学方法多元化需要多方面的支持

教学改革实验虽然不同于自然科学实验, 但需要对各种主观因素进行积极引导, 尤其需要争取赢得多方面的政策和人力支持, 使其成为教学实验改革研究的积极影响因素。首先, 必须赢得学校领导的支持, 给教学改革研究工作提供自由的氛围;其次, 要赢得教学和学生管理部门的支持, 充分利用课堂资源, 合理安排改革进程, 保证教学方法改革按期按程序进行;最后, 也是最关键的, 是要得到教

在教学上, 任何教学模式都不是放之何处皆有效的。所以, 我们每一位教师都应该采用多元化的教学方法和教学模式, 使各种不同的教学方法优势互补, 从而达到我们想要的教学效果。另外, 在使用诸种教学方法和教学模式的同时, 要根据时代的发展要求和学生的个体差异, 随时调整、总结, 实现教学改革的可持续性。

(沧州医学高等专科学校)

在程序设计方面的能力。实现“实践———理论———实践”的循环, 使理论与实践达到紧密的结合。

课程设计是对整个课程内容的总结和运用, 题目应与现实生活相贴近, 也容易激发学生的设计兴趣。如通讯录系统、学籍管理系统、工资管理系统等。从开始的流程图到最后的编码调试, 设计的每一段, 学生不仅可以将所学的知识运用于实际, 而且可以提高他们分析问题和解决问题的能力, 激发学习兴趣。课程设计阶段学生可以自愿结组, 组内再分工合作, 以培养他们自主学习能力、分析解决问题的能力和团队合作精神。

四、结束语

良好的C语言教学效果不仅可为学生学习后续专业课作好准备, 还能为学生学习其他高级语言奠定良好的基础。在实际教学中还有很多问题需要注意, 这要求教师不断探索积累, 总结出更好的教学方法, 提高C语言的教学质量。

8.C语言教学改革探索 篇八

关键词:c语言 程序设计能力 教学改革

C语言程序设计课程是白城师范学院计算机科学与技术、计算机应用和软件工程等专业的一门专业基础课,是数据结构、操作系统等专业课程的先导课程,因此占有举足轻重的地位。C语言程序设计课程的教学目标是以C语言为平台,使学生全面了解程序设计的总体思路、程序设计的基本算法、并能使用C语言进行构化程序设计,为今后使用C语言解决实际问题打下良好的基础。由于C语言比较灵活,而且是学生学习的第一门程序设计课程,所以如何让学生在较短的时间内迅速掌握新知识,真正有效培养学生的实际编程能力、分析和解决问题的能力并能够加以应用,是当前迫切需要解决的问题。

1 C语言教学中存在的问题分析

目前,传统的C语言教学普遍存在着以老师理论讲授为主,先介绍语法规则,再举例验证和说明,仅从语言的使用进行教学,忽视了知识的综合运用,缺乏对学生学习兴趣的培养,学生容易感到枯燥乏味,不能充分调动学习的积极性和动力,很多学生上课能够听得懂,自己编程时却无从下手,造成学生由于不能独立完成教师布置的任务,而使学生产生恐惧和厌学心理。C语言教学中还普遍存在重理论,对课程的实践性重视不够的现象。以往学生的实验内容大部分是验证性的,较死板和枯燥,实际知识运用的训练较少,学生兴趣不大,实践项目的设计没有充分考虑能力目标的培养而过多关注程序语言本身。针对C语言教学中存在的问题和现象,作者积极进行教学改革和探索,以求提高学生的编程能力和分析、解决问题的能力。

2 C语言教学改革措施探讨

2.1 C语言理论教学改革措施

由于传统的教学内容和方法枯燥,学生学习没有兴趣,缺乏主动性,如何激发学生的学习热情呢?

兴趣是最好的老师,创造一个学生乐学的环境。首先要建立良好的师生关系,学生喜欢老师,做学生的知心朋友,与学生建立起信任、友爱关系,学生会从心理上愿意学习老师讲授的课程。其次,教师应精心设计教学内容,改变过去单一的“满堂灌”的注入式教学。在课堂中引入大量经典的、趣味性浓的、联系生活实际的案例,在教学过程中,注意设置疑难问题,通过耐心的引导使学生渐入佳境,设置问题让学生自主探讨解体之道,让他们的思想活跃起来,并提高其学习编程的兴趣,从而更深入地展开学习。同时,各章节教学案例的设计兼顾知识结构的连贯性,由前一个实训项目为基础开展下一个实训项目的研究。各项目的实训内容接续紧密,循序渐进,知识结构螺旋式上升,教师主导课堂进度,真正突出学生的主体作用,使学生在轻松活跃的教学氛围中拓展思维,自主探索。这套教学相长的教学模式突出了学生的主体地位,极大的激发了学生的主观能动性,教学氛围非常活跃。在教学过程中不断对学生强化学习算法是为了解决实际问题,并引导学生进行算法分析和设计实践,真正做到学以致用。第三,将多媒体教学与传统教学有机结合,能给传统教学方式注入新的活力。现代化多媒体教学手段是基于传统讲学模式发展而来,多媒体在课堂教学中的应用,使刻板的讲学变得生动形象。并不是所有教学内容都适合采用多媒体,教师可以有选择地进行融合和重组,进行多媒体课程设计时,注意将多媒体与板书两种教学手段相互融合,使教学节奏更加紧凑。通过图文、声像与板书的融合运用,使讲学内容更加形象、具体,以活跃学生的思维,激发其求知欲望,从而形成学习动机。

2.2 C语言实验教学改革措施

实践课程是C语言程序设计教学中的重要组成部分。单向灌输式理论讲学只能丰富学生的理论知识,但无法培养其实践技能。这恰恰与C语言课堂的教学目标背道而驰。实践教学需要辅以有效的上机操作。在C语言实验教学中,普遍存在实验题目枯燥单一,且与实际脱节现象。造成实验教学课程机械,学生没有兴趣,学习主动性差,学生写程序能力不能得到实际提高。所以在实验教学过程中,我们应该多设计一些跟实际生活相关的实验。设置必做与选做题,以满足各个层次学生的需要。上机操作前,教师须明确教学内容和上机任务,课前要求学生编好要调试的程序,为上机做好准备。程序的调试是一个技巧性很强的工作,对于初学者来说,尽快掌握程序调试方法是非常重要的。上机内容除了调试程序外,还要要求学生分析程序算法结构。调试成功后,逐步引导学生基于理论知识进一步优化算法,锻炼其实际应用能力,课后要求学生完成实验报告。本课程结束后安排一次综合性实验,旨在要求学生综合利用所学的程序设计知识,编程解决实际问题,提高分析、解决问题的能力。

2.3 C语言课程组全体教师共同设计和开发了C语言网络课程平台,该平台为学生提供了课程简介、课程教案、教学大纲、考试大纲、实验教学大纲、教学日历、习题、开放实验项目、在线测试、在线交流等网络教学资源,为教师和学生开辟了一个开放式的辅助教学空间,能引导学生自主性学习,为开展教学和课程辅导提供了有利条件,弥补了课堂和实验教学的不足,大大活跃和丰富了教学活动。实践证明可以进一步调动学生的学习积极性,培养学生的自主学习能力和问题求解能力。

2.4 以ACM竞赛为依托,开发在线评测系统(简称OJ),培养学生实际动手能力与团结协作精神。ACM国际大学生程序设计竞赛已经成为最具影响力的大学生计算机竞赛。旨在使大学生运用计算机来充分展示自己分析问题和解决问题的能力。白城师范学院计算机科学学院学生每年都组建几支队伍参加省大学生程序设计竞赛的选拔。为此,我系教师共同研制开发了在线评测系统,学生可以在在线评测系统上挑选各种题目,挑战自我,提高自我,学习各种数据结构和算法;同时还可以模拟比赛的环境,培养学生团结合作能力,真正实现“以任务为驱动,教师为主导,学生为主体,强调自主学习,客观评价,培养协作能力,创新能力和探究能力”的实验教学新平台。

3 结束语

程序设计能力是理论和实践相结合的具体表现,作者根据多年的教学经验,对C语言理论和实验教学的改革措施进行了深入探讨,并通过开发网络课程平台和ACM在线评测系统,进一步提高了学生学习的积极性和主动性,增强了学生的实际编程和问题求解能力,真正实现了C语言程序设计课程的教学目标。

参考文献:

[1]李豫颖.C语言教学改革浅见[J].贵州教育学院学报,2008(09).

[2]张敬.关于C语言教学改革的若干思考[J].电脑知识与技术,2012(09).

[3]李玺,李亭升.大学C语言教学改革探索[J].中小企业管理与科技(下旬刊),2012(03).

9.c语言学习总结 篇九

1。加深对课堂讲授内容的理解

课堂上要讲授许多关于c语言的语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。然而要使用c语言这个工具解决实际问题,又必须掌握它。通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c语言的语法规定。对于一些内容自己认为在课堂上听懂了,但上机实践中会发现

原来理解的偏差,这是由于大部分学生是初次接触程序设计,缺乏程序设计的实践所致。

学习c语言不能停留在学习它的语法规则,而是利用学到的知识编写c语言程序,解决实际问题。即把c语言作为工具,描述解决实际问题的步骤,由计算机帮助我们解题。只有通过上机才能检验自己是否掌握c语言、自己编写的程序是否能够正确地解题。

通过上机实验来验证自己编制的程序是否正确,恐怕是大多数同学在完成老师作业时的心态。但是在程序设计领域里这是一定要克服的传统的、错误的想法。因为在这种思想支配下,可能你会想办法去“掩盖”程序中的错误,而不是尽可能多地发现程序中存在的问题。自己编好程序上机调试运行时,可能有很多你想不到的情况发生,通过解决这些问题,可以逐步提高自己对c语言的理解和程序开发能力。

2。熟悉程序开发环境、学习计算机系统的操作方法

一个c语言程序从编辑、编译、连接到运行,都要在一定的外部操作环境下才能进行。所谓“环境”就是所用的计算机系统硬件、软件条件,只有学会使用这些环境,才能进行程序开发工作。通过上机实验,熟练地掌握c语言开发环境,为以后真正编写计算机程序解决实际问题打下基础。同时,在今后遇到其它开发环境时就会触类旁通,很快掌握新系统的使用。

3。学习上机调试程序

完成程序的编写,决不意味着万事大吉。你认为万无一失的程序,实际上机运行时可能不断出现麻烦。如编译程序检测出一大堆错误。有时程序本身不存在语法错误,也能够顺利运行,但是运行结果显然是错误的。开发环境所提供的编译系统无法发现这种程序逻辑错误,只能靠自己的上机经验分析判断错误所在。程序的调试是一个技巧性很强的工作,对于初学者来说,尽快掌握程序调试方法是非常重要的。有时候一个消耗你几个小时时间的小小错误,调试高手一眼就看出错误所在。

通过这次为数不多的几天计算机实践学习,我们了解了一些关于c语言的知识,理解巩固了我们c语言的理论知识,着对我们将来到社会工作将会有莫大的帮助。同时它让我知道,只要你努力,任何东西都不会太难。

10.期末C语言课程总结报告 篇十

报告人情况:

班级:自控1102姓名:赵铎学号:2011010807理论课老师姓名:李文杰实验课老师姓名:张红霞

学习到了以下内容:1、2、3、4、5、6、7、8、9、掌握C语言中,基本的输入输出函数的使用方法。掌握printf中转义字符’t’,’n’的用法。掌握赋值语句的用法。掌握算术表达式、赋值表达式的计算。掌握数学函数的使用。掌握关系运算及其表达式。掌握逻辑运算及其表达式。掌握条件运算符。掌握if语句。

10、掌握switch语句。

11、掌握for,while语句的使用方法。

12、掌握直到型循环do-while的用法。

13、掌握break,continue的用法。

14、掌握函数的分类。

15、掌握自定义函数的方法。

16、掌握自定义函数的调用用法。

17、掌握函数参数的传递。

18、掌握全局变量,局部变量,静态变量的使用。

19、掌握数组的定义。

20、掌握数组的引用,使用方法。

21、掌握字符串的储存与操作。

22、掌握字符串作为特殊的一维数组。

23、更加娴熟使用数组解决问题。

24、掌握二维数组的使用方法。

25、更加熟悉字符串解决问题的方法。

26、增强了数组中排列顺序的逻辑关系。

27、掌握指针的概念。

28、掌握指针定义,赋值,引用的方法。

29、掌握指针访问一维数组的方法。

30、掌握指针作为参数的使用。

31、掌握指向数组的指针作为函数参数。

掌握了以下:

1、掌握C语言中,基本的输入输出函数的使用方法。

2、掌握printf中转义字符’t’,’n’的用法。

3、掌握赋值语句的用法。

4、掌握算术表达式、赋值表达式的计算。

5、掌握数学函数的使用。

6、掌握关系运算及其表达式。

7、掌握逻辑运算及其表达式。

8、掌握条件运算符。

9、掌握if语句。

10、掌握switch语句。

11、掌握for,while语句的使用方法。

12、掌握直到型循环do-while的用法。

13、掌握指针的概念。

14、掌握指针定义,赋值,引用的方法。

15、掌握指针访问一维数组的方法。

自己的经验

学习C语言绝不是听懂就可以的,而是必须自己动手去实践,从自己的实践中找到不足和缺点,及时发现和改正能使自己记得更加牢固,使以后编写程序更加流畅和严谨!

对老师的意见

11.C语言实验教学改革初探 篇十一

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

作者简介:吕风杰(1973-),男,山东沾化人,滨州学院计算机科学技术系,讲师;马士明(1983-),男,山东滨州人,滨州学院计算机科学技术系,助教。(山东滨州256600)

基金项目:本文系滨州学院教学研究资助项目(项目编号:BZXYJYXM200737)的研究成果。

中图分类号:G642.423     文献标识码:A     文章编号:1007-0079(2012)10-0118-02

C语言以其结构化、灵活性好、可移植性强、效率高等优点被广大院校理工科专业选为程序设计的入门课程。[1]随着应用型人才培养改革的不断深入,学生培养目标和教育教学理念也不断更新,但自进入高校课堂20余年来,受传统应试教育的引导,大都将授课重点放在C语言的基本语法的理论讲授上,而实验教学大多用于C语言的语法规则的验证和说明,这种教学模式仅从语言的使用这个单一的角度进行教学而使得大多数学生在学完之后吃不透、用不活所学语言知识。面对这种形势,原先的实验教学计划已远不能满足要求,如何从培养学生能力的角度出发优化实验教学内容,使实验教学与理论教学形成一个目标明确、由浅入深、紧密联系的有机整体已成为当前C语言教学中的迫切性问题。本文从C语言的特点出发,对如何在当前课时、实验资源有限的情况下,通过实验教学促进、完善课堂教学效果,培养学生实践能力、创新能力和应用能力进行了深入的探讨与实践。

一、改革实验教学内容

在应用型人才培养模式下,实验教学的组织要兼顾实践性与创新性。我们在原有教学大纲的基础上,根据电子信息类专业的特点重新修订了实验大纲,教学内容中提高了设计性和综合性实验的比例。

1.改革实验内容组织结构

为了不影响专业教学计划,又能保证实验教学改革的顺利进行,我们结合理论教学进度,编写了相对开放的实验教学大纲和讲义,将实验分为基础性实验、设计性实验和综合性实验三个层次,又将每个层次的实验内容分为必做和选做两类,以供不同专业按要求进行灵活选择。根据理论教学进度安排基础性实验,让学生熟悉编程、调试环境,掌握基本指令并学会简单编程,加深对课堂理论教学内容的理解;在单元章节之后安排设计型实验,采用任务驱动教学法,验证性与应用性实验相结合,在完成基础性实验的基础上,逐步丰富功能要求,并要求学生在实验报告中加以总结归纳,培养学生的综合思维能力;综合型实验其实是一个开放性试验,安排于每个知识单元或模块(从知识的角度出发,独立于理论教材编排)完成之后,每一个项目只给出具体的功能及性能要求,对具体方法不作要求和指导,并将一个实验课题分为设计、调试、总结、改进等几个进程,先由学生根据题目要求完成功能设计并通过调试,再由教师根据学生的设计从功能及性能方面进行有针对性的分析讲解,进而提出设计建议,然后由学生完成设计改进并写出实验报告及分析总结,以达到实践性与创新性的同步提高。

2.创新实验内容

目前,高校教學过程中所用教材及参考书大都以普教为目标,极少有针对专业或行业的例题和习题出现,而各高校开设的C语言实验教学内容恰恰大多为所用教材或参考书的习题。这类经典习题专业针对性差,对学生来说缺乏趣味性,用以进行功能验证尚可,但对于能力提高或创新教育的确是勉为其难了。而且随着网络等学习资源的普及使得问题的解决极为简单,学生仅需上网搜索一下即可得到完整答案,于是实验课程就成了简单的验证,很难起到锻炼和提高的作用。

为此,我们专门针对电子信息类专业的特点精心设计了实验内容,基础性实验采用经典案例,针对性强,利于学生的入门学习;设计型和综合型实验尽量选择与学生专业相关的项目,如数字滤波的实现、数据分析与验证等。这样一方面能够贴近学生所学专业,使学生不但学会了C语言,而且使得C语言有了“用武之地”;另一方面,在实际学习过程中,能够将学过的其他专业知识融入进来,提高了学生的兴趣及学习积极性,对其他专业课程的学习以至学生的学习风貌与学习态度起到了积极的推动作用。

二、改革实验教学模式

随着各高校对高等教育应用型人才培养改革的不断深入,各专业的教学内容有了较大幅度的修改和增加,在实际教学安排中“C语言程序设计”的理论与实践课时都进行了一定程度的压缩,为保证实践教学效果,在组织教学时进行了一些改革。

1.推行任务推动教学

随着计算机技术的应用与发展,C语言作为各理工科专业的程序设计入门课程,其培养方向应该是掌握程序设计及调试的一般方法,所以在实验教学组织中应以程序设计为主线,有意识地淡化C语言本身语句、语法的介绍,并积极推行典型算法与案例教学相结合的方法,通过精心设计与编排,将复杂枯燥的语法知识分解到每个生动、有趣、实用的程序实例中,把软件工程学的思想贯穿于算法分析和程序设计的过程中。例如,在每个知识单元开始之前先提出一个典型问题,如“业绩提成计算”、“数据排序”等,从问题入手,然后循循善诱,通过任务的分解、解决、综合逐步加以解决,这样不但使学生在程序分析与解决中掌握了相关语法,而且程序设计和解决问题的能力也得到了极大的提高。[2-3]

2.突出结构化程序设计特点

结构化程序设计是C语言程序设计的一大特点,而在当前的教材中却极少涉及到相关的实例,从而使得结构化程序设计在C语言教学中成了一句实实在在的空话。有些学生平时学得很认真,对语法、语句等细节也很熟悉,但碰到稍微复杂一点的编程则无从下手。在教学中,教师应该将现代程序设计的相关理念传授给学生:一般来讲,一个较复杂的软件常可以按功能分割为若干个典型的小模块,每个小模块最终都成为功能单一、结构清晰、接口简单、容易理解和编写的小程序,而加工对象——“数据流”就是将这些模块串接起来的“主线”,只要让学生掌握了典型的算法就可将这些算法变成像搭积木一样组装成相应软件的算法。

如在学过数组部分后,教师给出一个由计时函数GetTickCount()、格式输出函数printf()函数、格式输入函数scanf()一起构成的能够测试人的反应时间的“反应计时器”函数。在此基础之上布置学生设计主函数和相关函数,通过调用“反应计时器”函数完成两个个体各一组样本的采集(如各采集并存储10个独立的反应时间),并计算各自平均值、标准差等指标;进而进行t检验,对个体差别进行分析验证。这样不但使学生学会了相应的算法实现,而且对结构化程序的灵活性和易于扩展等特点及工程应用中的程序设计方法有了较为深刻的理解,同时对工程数学中较为“死板”的统计与检验内容的实际应用有了一个感性的认识,达到了实践能力与创新能力共同提高的培养目标。

另外,在教学过程中,教师还应有意识地总结归纳一些典型算法,并作为验证型实验内容,要求学生熟练掌握,如累加、累乘、查找、排序等,在后续设计型和综合型实验中将相关内容加入,使得学生能够用会、用活,为以后的程序设计奠定基础。同时,典型算法的熟练掌握也可增加学生学习计算机语言的信心,并提高学习兴趣。[4]

3.充分利用多媒体及网络教学平台

多媒体课件具有演示直观、动态性强等特点,易于被学生所接受和理解,尤其对于实践教学,多媒体课件能够进行直观的演示与模拟,满足了实验教学的要求,把难以理解的内容或不容易观察到的事物用多媒体充分显示出来,调动学生的视觉直观功能,为突破难点创造出良好的氛围,有效地弥补传统教学的不足。

運用网络教学平台进行课后习题的布置与讨论,引导学生提出问题并找寻解决方案。一方面,充分节约了课堂教学时间,缓解了课时不足带来的影响;另一方面,能够将更多的学生吸引到问题的分析与讨论中,“讨论出真知”——相对课堂教学而言,网络讨论扩大了讨论的参与面,能够最大限度地穷尽并纠正学生在问题理解过程中可能出现的问题,极大地提高了学生的学习积极性与学习效果。

4.强化实验教学过程管理

C语言是一门实践性很强的课程,除了要把理论知识学好外,上机实践也是相当重要的一个关键环节。学习中存在的疑点或难点,学生可通过上机调试得到明确解答,同时也加深对学习内容的理解。对学生而言,在每一次的上机前应做好充分准备,编写好上机内容;对上机中出现的问题应能调试分析,编写实验报告,分析程序结果。学生只有反复上机操作才能对C语言有更深、更全面的认识和理解,逐步提高实际操作和学习的能力。对教师而言,应精心设计上机实验内容。设计上机内容时,尽量把所学的内容综合起来,达到知识的系统化。同时,也可布置一些趣味性较浓的内容,以提高学生的学习兴趣,变学生的被动学习为主动学习。另外,上机内容尽量结合学生专业,让学生觉得学有所用。

三、改革实验教学评价模式

注意综合素质的培养与评价,在“C语言程序设计”期末考核中采用实验与理论考核相结合、平时成绩与期终考核成绩相结合的综合考核评价方式,并采用实验教学成绩一票否决的形式,从而改变学生在以往课程学习中“重理论,轻实践”的思想,激发学生学习的积极性与自主性,尤其在创新性培养上。具体做法是摒弃原先那种以对错判分的一刀切的评价方式,在平时教学中对学生实验完成的成绩评判要采用个案分析的方法,在充分理解学生设计意图的基础上因势利导,对设计中的创新之处或闪光点要给予充分的肯定;对不足和错误之处要帮助学生仔细分析,然后由学生自己总结改正,以提高学生的自信心,保护其学习兴趣,最后根据学生的完成情况及钻研态度进行综合评判。

四、总结

任何一种程序设计语言都有其独有的语法特点,作为程序设计入门课程的“C语言程序设计”也不例外,但是,应该认识到在高校C语言教学中,学习语法不是学习程序设计语言的真正目的,而是应该在掌握语法的基础上,通过学习与实践,真正地学会使用C语言来解决各种实际问题,进而使学生掌握程序设计思想,真正成为学生进入程序设计领域的“敲门砖”、“导航灯”。通过对近两年的学生期终理论考试成绩对比分析发现,改革前后对于语法部分的得分率没有明显变化,而综合编程题的得分率比以前有了大约25%的提高,且学生学习的积极性比以前有较大的提高,课程结束后不少学生又通过计算机等级考试等各种形式进行了进一步的学习与提高,C语言实践教学改革取得了理想的效果。

参考文献:

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

[2]郑人杰,马素霞,殷人昆,等.软件工程概论[M].北京:机械工业出版社,2001.

[3]敖志广,吕振辽,高克宁.非计算机专业本科生C语言的教学实践[J].计算机教育,2007,(1):53-54.

[4]林向宝.C语言教学探讨[J].黑龙江交通科技,2007,(4):120-121.

(责任编辑:王祝萍)

上一篇:公务员编制与事业单位编制有什么区别?下一篇:如何描写坚持就是胜利的作文