在一个c语言程序中

2024-06-22

在一个c语言程序中(精选10篇)

在一个c语言程序中 篇1

C语言中如何定义一个结构能包含指向自己的指针

C 语言中的结构当然可以包含指向自己的指针;[K&R2, 第6.5 节] 的讨论和例子表明了这点。NODEPTR 例子的问题是在声明next 域的时候typedef 还没有定义。为了解决这个问题,首先赋予这个结构一个标签(“struct node”)。然后,声明“next” 域为“struct node *”, 或者分开typedef 定义和结构定义, 或者两者都采纳。以下是一个修改后的版本:

struct node{

char *item;

struct node *next;

};

typedef struct node *NODEPTR;

至少还有三种同样正确的方法解决这个问题。

在用typedef 定义互相引用的两个结构时也会产生类似的问题, 可以用同样的方法解决。

在一个c语言程序中 篇2

C语言是一门通用的、模块化、程序化的编程语言, 被广泛应用于操作系统和应用软件的开发。C语言是以函数作为程序设计的基本单位的, C语言对于输入和输出的处理也是通过函数调用来实现的。各种C语言编译器都会提供一个函数库, 其中包含有许多标准函数, 如各种数学函数、标准输入输出函数等。此外C语言还具有自定义函数的功能, 用户可以根据自己的需要编制满足某种特殊需要的自定义函数。实际上一个C语言源程序可以由一个或多个源文件组成, 每个源文件可由一个或多个函数组成。在开发大型复杂的程序时, 可以根据实际的需要, 把一个大的问题分解成若干个小问题, 每个小问题采用一个功能模块来实现。

2 运行一个多文件的程序

一个有实用价值的C语言应用程序往往较大, 需要划分成不同的文件, 那么如何把这些文件编译连接成一个统一的可执行文件并运行呢?介绍了以下两种方法。

2.1 用Turbo C集成环境的“Project”菜单

首先将一个大的源程序根据其功能合理地划分成若干个小的源程序, 每个小源程序均以程序文件 (.c) 的形式保存在磁盘上。并建立一个包括各个源程序模块的文件名的工程文件 (.prj) 。

然后用编译器进行编译, 将工程文件中指定的多个源程序文件进行编译, 生成多个目标文件和一个可执行文件。注意, 在分模块单独编译处理的各个程序模块中, 必须有且只有一个主函数main () 。

例如:假定从键盘上任意输入10个整数, 按从大到小的次序排列并输出。

程序如下:

在编译状态下, 建立一个“项目文件”, 它不包括任何程序语句, 而只包括组成程序的所有的文件名。即

扩展名.c可以省写, 3个文件顺序任意, 可以连续写在同一行上, 如:

将以上内容存盘, 文件名自定, 但扩展名必须为.prj (表示为project文件) 。现设文件名为f.prj。在Turbo C主菜单中选择Project菜单中的Project name, 输入项目文件名f.prj;按功能键F9, 进行编译连接, 系统先后将3个文件翻译成目标文件, 并把它们连接成一个可执行文件f.exe;按Ctrl+F9键, 即可运行可执行文件f.exe。

2.2 利用编译预处理的文件包含命令

在C语言的编译系统中存在预处理程序模块, 其功能是:在对一个源程序进行编译时, 预处理程序首先对源程序进行扫描, 对C语言中的几种预处理语句进行分析和处理。经过预处理之后, 才进行正式编译以形成目标代码。

书写源程序时, 一般将预处理语句置于开关部分, 每一条预处理语句以“#”开始。C语言提供了编译预处理#include命令来实现“文件包含”的操作, 它的特点是一个源文件可以将另外一个源文件的全部内容包含进来。预处理程序将#include语句所指的文件<源程序>代码完全嵌于被编译程序中#include所在的位置, 以参加正式编译形成目标代码。

其一般形式为:

#include"文件名"

#include<文件名>

对文件包含命令的说明如下:

(1) 包含命令中的文件名可以用双撇号括起来, 也可以用尖括号括起来。例如, 以下定法都是允许的:

但是这两种形式是有区别的:使用双撇号 (即〝stdio.h〞形式) 时, 系统首先在用户当前目录中寻找要包含的文件, 若未找到才到包含目录中去查找;使用尖括号 (即形式) 时, 表示在包含文件目录中去查找 (包含目录是由用户在设置环境时设置的) , 而不在源文件目录去查找。一般说, 如果为调用库函数而用#include命令来包含相关的头文件, 则用尖括号, 以节省查找时间。如果要包含的是用户自己编写的文件 (这种文件一般都在当前目录中) , 一般用双撇号。若文件不在当前目录中, 双撇号内可给出文件路径。

(2) 一个include命令只能指定一个被包含文件, 若有多个文件要包含则需用多个include命令。

(3) 如果文件1包含文件2, 而文件2中要用到文件3的内容, 则可在文件1中用两个include命令分别包含文件2和文件3, 而且文件3应出现在文件2之前, 即在file1.c中定义:

这样, file1和file2都可以用file3的内容。在file2中不必再用#include了 (以上是假设file2.h在本程序中只被file1.c包含, 而不出现在其他场合) 。

(4) 文件包含允许嵌套, 即在一个被包含的文件中又可以包含另一个文件。

(5) 被包含文件与所在的文件 (即用#include命令的源文件) , 在预编译后成为同一个文件。

例如将上例程序 (假定从键盘上任意输入10个整数, 按从大到小的次序排列并输出。) 用文件包含命令运行的方法:

把file2.c文件和file3.c文件包括到file1.c文件中, 可在file1.c中的开头加2行:

这时, 在编译时, 系统自动将这2个文件放到main函数的前头, 作为一个整体编译, 而不是分3个文件编译。这些函数被认为是在同一文件中, 最后形成一个文件名为file1.exe的可执行文件。

3 结语

利用Turbo C集成环境, 在编译时, 系统会分别对项目文件中的每个文件进行编译, 然后再将所得到的目标文件合成为一个整体, 再与系统的有关资源连接, 生成一个可执行文件, 最后执行这个文件, 可以方便多个文件的单个调试和发现问题。从结构化程序设计的方法上看, 可以按功能划分模块, 使结构清晰。当然, 在程序设计中, 文件包含也是很有用的。比如, 一个大的程序可以分为多个模块, 由多个程序员分别编程;有些公用的符号常量或宏定义等可单独组成一个文件, 在其他文件的开头用包含命令包含该文件即可使用, 这样, 可避免在每个文件开头都去书写那些公用量, 从而节省时间, 并减少出错。在实际应用中, 可根据具体情况采用不同的方法。

摘要:介绍了C语言在处理多个文件时采用的两种方法:利用Turbo C提供的“Project”菜单和编译预处理的文件包含命令把多文件的处理转化为单文件处理的方法。通过实例介绍了它们在程序设计中的应用。

关键词:C语言,文件,编译,文件包含

参考文献

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

[2]李文杰.C语言程序设计.北京:清华大学出版社, 2010.

[3]王继贤.C语言程序设计实用指南[M].北京:清华大学出版社, 1994.

[4]胡元义, 吕林涛.C语言与程序设计.西安:西安交通大学出版, 2010.

在一个c语言程序中 篇3

关键词:C语言;编程技巧;应用

中图分类号:G642 文献标识码:B 文章编号:1002-7661(2014)24-002-01

C语言属于一种程序设计类语言,其使用在数据处理方面有突出作用,在很多的学习工作领域都有大规模的应用,像是软件开发、科研建设等都离不开C语言的利用。C语言编程,就是用C语言进行相应计算机代码的编写,C语言的学习,需要掌握一定的技巧,不然没有头绪的学习是得不到良好学习效果的,掌握了C语言的学习技巧,才能够更好的促进C语言的学习[1]。

一、C语言与C语言的优势

当下世界上使用范围最广,流行度最高的计算机编程语言便是C语言,要想良好的学习和使用C语言,必须加深对C语言的了解。C语言发源于上个世纪60年代,成熟在70年代,最近半个世纪的使用过程中,C语言表现了如下几种优势:第一,C语言简洁紧凑,使用方式灵活方便,且语法运用宽松不受限制,书写方式自由随意,结合了高级编程语言的结构性与实用性的特点,组成了一种全新式的有强大使用功能的编程语言;第二,C语言有广泛的应用层面,且可植性强,C语言在各种系统中都能够被兼容使用;第三,C语言的运算符丰富多样,各种数据结构类型的使用,除了C语言可以将各种复杂的数据运算完成外,还具有强大的图形功能;第四,结构式的语言特点分割了代码和数据,其中的程序表现层次条理清楚,后期的使用和维护工作便利,使用C语言可以访问物理地址[2]。从中可知,C语言具有强大的功能,因此在信息技术的领域中,C语言所占据的地位是非常高的。

二、C语言学习难度大的原因

因为C语言所具备的各种强大功能,因此人们对其的关注程度也越来越高,想要学会并且全面掌握C语言技术的人也越来越多。可是大部分在刚刚接触C语言的时候,觉得C语言过于枯燥乏味,学习了一段时间后都没有掌握到多少知识,也没有一个清楚全面的认识对于C语言,觉得十分的茫然。出现这种情况的原因还是因为C语言是一种高级语言,这种语言和面向对象的语言之间存在较大的差别,在C语言的学习过程中,学习者难以从中看到形象的画面,只能够在编程程序成功后,经过调试才可以看到效果。在编程的过程中,只要出现一点粗心错误,就会让整个编程无法成功调试,出现一些错误的现象,除此之外,C语言的使用过程中,包含了大量的算法与数据组成结构,这些没有任何的技巧,就是要死记硬背,所以很多学习者在遇到这些枯燥晦涩的问题时,就会丧失学习兴趣,降低学习效率和学习质量。

三、C语言编程技巧的应用

1、用空间换时间

例如对字符串进行赋值,方法有以下几种:

(1)基础方法:

#define LEN 32

Char string I[LEN];

memset(string 1,0,LEN);

ctrcpy(string 1,“this is a example”) ;

(2)方法2:

const char string2[LEN]=“this is a example”;

char*cp;

cp=string2;

从这个案例中可以发现,方法(1)与方法(2)在电脑上的执行效率是不一样的,第一种方法必须使用两个字符函数才可以完成,而第二种方法直接使用指针就可以完成了。但是第二种方法相比第一种方法灵活性欠缺,如果这个字符串有不断变化的要求,那么第一种方法就有很大的使用优势了,第二种方法要占用较大的内存,但是效率比第一种更高[3]。

2、位运算掌握

在利用位运算的时候,能够让代码变得更加的简洁,提升运算效率,让问题得到顺利解决。在所有的计算机程序之中,最小的数据单位就是位,无特殊情况的话,所有的数据运算和操作都可以使用“位运算”方式完成,从这里就就可以看出,在编程语言之中,“位”有多么重要了。“位”使用在C语言的运算过程中,可以提升工作效率,顺利的将更多难度大的问题解决。

3、C语言特有函数掌握

很多时候进行编程,都需要使用C语言的特有函数,函数不是一种数据,而是一种功能,每一个函数都能够执行一定的功能建设,而相对应的函数名称中也将函数的功能反映了出来。开展函数定义的时候,要求操作者包含名字、参数名、类型和函数返回类型的数据,编译过程中,数据库系统是之前被定义好了的,使用过程中只要通过#include这项指令,把各种相关的头文件包含在本文件当中就可以了。

但是不管在C语言编程过程中使用怎样的技巧,还是需要做到具体问题具体分析,以上各种技巧使用起来因人而异,整体是能够提升编程效率,在学习过程中使用会获得一定的成效,而降低学习的枯燥感,拓宽C语言的使用范围。

C语言的学习过程中,每一位学习者都应该对C语言的特性有充分的了解,学习并且掌握每一种编程技巧,学习好了C语言的编程技巧,可以帮助学生提升C语言的学习兴趣,让学生的学习目的性更强,提升学生的C语言学习效率与学习质量。

参考文献:

[1] 余 勍.王 捷.浅谈C语言编程技巧在C语言学习中的应用[J].信息通信,2013,07:108.

[2] 赵 黎.范君君.C语言编程技巧在C语言学习中的应用研究[J]. 信息与电脑(理论版),2014,09:252.

在一个c语言程序中 篇4

程序:

#includeint leap_year(int year)//leap year 闰年{if ((year % 4 == 0 && year / 100 != 0) || (year % 400 == 0)){return 1;}else{return 0;}}int main(){int year;int ret = 0;printf(“请输入年份:”);scanf(“%d”, &year);ret=leap_year(year);if (ret==1){printf(“%d年是闰年n”, year);}else{printf(“%d年非闰年n”, year);}return 0;}

结果一:

请输入年份:

是闰年

请按任意键继续. . .

结果二:

请输入年份:1995

1995年非闰年

在一个c语言程序中 篇5

摘 要:通过对中医药院校C语言程序设计课程开设的现状分析,针对学生程序编写的困难、兴趣不浓,学习积极性不高这一学情,根据自身教学经验的归纳与总结,受“模式”这一概念的启发,创新地提出了将“模式化”教学方法应用于C语言程序设计课程的教学实践中,使抽象的程序设计变得有章可循。结果表明:将“模式化”方法运用于C语言程序设计课程教学中不仅激发了学生的学习兴趣,使学生更轻松、快捷的掌握了程序设计的思想与方法,还提升了教学效果,是行之有效的教学创新实践。

关键词:模式化 C语言程序设计 中医药院校 教学方法

中图分类号:G4 文献标识码:A 文章编号:1674-098X(2015)05(b)-0100-02

2009年医药类计算机基础教学指导委员会颁布了“医药类院校的计算机基础教学的课程设置和基本要求”的指导性纲要文件,提出2+X的课程设置体系,其中“2”代表大学计算机基础(医药类)和程序设计基础两门必修课[1]。目前,大多数高校程序设计基础课开设为《C语言程序设计》。

C语言是一门功能强大、应用广泛的高级程序设计语言。但由于C语言中涉及的概念比较抽象、语法规则繁多,因此不少初学者感到学习困难、兴趣不浓,积极性不高。如何激发学生兴趣,提高教学质量,使学生能轻松快速的入门,培养学生的逻辑思维以及抽象思维能力,是教学中需要思考、值得探讨的问题。我校开设《C语言程序设计》的目的与现状

随着计算机技术在中医药领域的广泛、深入应用,例如医院信息管理、远程医疗、智能仪器设备、计算机医疗仿真等,都离不开程序设计技术的支持。可见,程序设计技术的基础性和重要性。我校在非计算机专业学生本科阶段开设《C语言程序设计》课程,旨在通过对课程的学习,使学生掌握程序设计的基本方法和技巧,培养学生的逻辑思维能力,训练学生严谨的治学态度,为其更深入、灵活的利用计算机技术解决行业中的实际问题奠定基础。

对于中医药院校的学生而言,本课程内容相对比较抽象、枯燥,理解、掌握起来比较困难,无法快速从“形象思维”到“逻辑思维”的转变;加之中医药院校大部分专业属于文、理生兼招的专业,考生生源的数学功底以及逻辑思维能力相对理工科院校而言较差,而C语程序设计是一门逻辑性很强的课程,这为教师的授课带来很大的阻力;此外,部分医药类专业的学生采用“背书式”的方式来学习程序设计,将概念、例题等背诵记忆下来,而并非真正理解,从而导致“上课能听懂,练习不会做”的现象比比皆是;还有部分学生片面的认为编程是程序员的事情,跟他们所学的专业以及将来的工作就业没什么直接或必然联系,因此重视程度不高,也缺乏兴趣。

针对上述问题,笔者通过几年的教学实践、总结与反思,在教学方法上进行如下研究与实践尝试,以促进中医药院校信息化人才的培养与教学效果的改善。“模式化”理论教学方法研究与实践

《C语言程序设计》课程内容较多,主要包括:程序的简单算法,语句基础,选择结构、循环结构程序设计,数组,函数,指针,构造数据类型,文件等。我校开设该课程的课时数为48学时,其中理论课时24学时,实验课时24学时。由于课时极其有限,为了更有利于非计算机专业的本科生理解程序设计的思想,且能进行简单的程序编写,而不是一味地灌输所有知识点不考虑学生是否能够接受,故我校选取了最为基础、易于掌握的部分内容进行课堂讲授,包括:程序的简单算法,语句基础,选择结构、循环结构程序设计,数组,函数。如何将各章节零散的知识点关联在一起,来进行C语言程序设计,以实现某一功能需求,是本课程理论教学的核心,而教会学生分析和解决问题的思路和方法是关键。模式其实就是解决某一类问题的方法论,即把解决某类问题的方法总结归纳到理论高度。受到“模式”这一概念的启发,笔者经过教学观察和研究发现:将“模式化”方法运用于程序设计的教学中,能为学生提供更清晰、便捷的分析问题解决问题的思路与方法,而尽量减少学生对于程序编写感觉无从下手的状态出现。

2.1 宏观上分析问题,设计程序

面对一个编程需求(即题目要求),首先要学会分析问题:即看懂题目意思。仔细研读并分析编程需求中的每一句话,从宏观上明确需要解决哪几个问题,各个问题采用何种程序设计结构,解决各个问题的关键点或关键步骤是什么。宏观分析阶段,可以用自然语言、流程图、N-S图等方法将解决问题的关键步骤进行描述,即算法描述。宏观分析“模式化”为表1宏观分析“模式化”表。

说明:表1中的第三列关于“程序设计结构”的确定,需要根据待解决的问题选择合适的C语言句型。若为有条件执行,则采用选择结构,其中单分支结构选用if句型,双分支选用if…else…句型,多分支选择if…else if…else if…else…句型或switch句型;若为反复执行,则采用循环结构,其中明确循环次数多选择for句型,明确条件限制多选择while或do…while句型;若编程需求中涉及到多个待解决的问题或功能较复杂,在分析时可以功能模块的细化,将其划分为一个个独立的子功能模块,则采用函数解决。

2.2 微观上解决问题,编写程序

在对问题进行分析并作简要描述后(即填写好表1的内容),接着进行微观上的程序编写。笔者根据“一个简单C语言程序的结构,分为预处理命令和主函数两部分”这一特点,将微观程序设计模板设计如表2微观程序设计模板。

说明:表2中的预处理部分通常包含三类语句的书写,若用到C语言系统所提供的库函数通常要书写包含头文件语句(例如,要使用标准的输入/输出函数需包含头文件#include,要使用数学函数需包含头文件#include,要使用字符串处理函数需包含头文件#include);若程序中不涉及到宏定义则宏定义语句可以省略不写;若程序中不涉及到子函数的定义则函数声明语句可以省略不写,同时子函数实现部分也可以省略不写。

按照微观程序设计模板设计好后,学生最终只需按照C语言语法格式的要求将模板中每一部分或步骤“翻译”(即转化)成C语言的语句,即可完成程序的编写。在Visual C++6.0的开发环境下将编写好的文件保存为后缀名为.C的源文件,经过编译、链接、运行,验证程序设计的结果。

2.3 C语言程序设计案例分析

编程需求:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=13+53+33。

建立水仙花数宏观分析模块化表。(见表3)

建立水仙花数微观程序设计模板。(见表4)

将水仙花数微观程序设计模板转化为C语言的源程序,代码如下所示:

#include

main()

{

int n,gw,sw,bw;

for(n=100;n<=999;n++)

{

gw=n%10; //分离出数n的个位

sw=n/10%10; //分离出数n的十位

bw=n/100; //分离出数n的百位

if(n==gw*gw*gw+sw*sw*sw+bw*bw*bw)//满足水仙花数的条件判断

printf(“%-5d”,n);

}

}

结语

笔者通过对学生的学习观察以及自身的教学经验总结,将“模式化”教学方法应用于C语言程序设计课程的教学实践中,取得了良好的教学效果。使学生再不会感觉程序编写无从下手或是深不可测,激发了学生的学习兴趣;培养了学生独立分析问题、解决问题的能力;使学生更轻松、快捷的掌握了程序设计的思想与方法。

参考文献

在一个c语言程序中 篇6

摘要:多维度教学方法作?橐恢钟判愕慕萄Х椒ǎ?在职业教育领域有着广泛的应用前景。该文通过对C语言教学中的研究,对C语言教学中如何运用好多维度教学法进行了深入的研究与实践。

关键词:多维度教学;C语言教学

中图分类号:G424 文献标识码:A 文章编号:1009-3044(2018)13-0097-03

目前国内高校都将C语言作为计算机相关专业的必学语言,也是基础语言。虽然,作为一个优秀的程序师,C语言可以运用到任何软件的开发,被认为是最受欢迎的语言。但是,在实际的教学过程中,许多C语言老师只是片面的教一些理论知识,而并未将其与软件开发结合起来。由此许多同学在学完这门课程后,似懂非懂,只知道语法知识,对于实际的应用并不那么熟练。这就是C语言教学中存在的问题,我们应尽力去认识并解决它。多维度教学

1.1 什么是多维度教学

多维度教学就是从多个方面对一个对象进行研究。而在教学中多维度教学目标是知识与技能,过程与方法,情感态度与价值观。其中知识技能是核心目标,技能方法是伴随性目标,情感态度是深层性目标。也就是说,在教学过程中,不仅仅是简单地传授书本知识,更要教学生独立去思考去探究,知道学习的过程与方法,并要引导学生主动愿意学习,让学习成为他们的兴趣,如此而来,他们在学习中的情感态度才是积极乐观向上的。这样也达到了培养情感态度的目标。

1.2 多维度教学的特点

1)多维度教学的主体是学生。利用案例式教学时,其难度具有渐进性。从不同的层面,不同方向来进行教学。我上文所提到的多维度教学的第一个目标就是知识与技能。老师在课堂上运用不同方法来教授书本知识,并举一反三,拓展课外相关知识。在学到基础知识的同时,教会学生查找例题,并利用已知知识论证例题的技能。第二个目标是过程与方法。这就要求老师在教学过程中,注重整个过程,要求学生积极参与进来,一起享受过程的乐趣。老师可以提出一个问题,然后学生互相讨论,找到解决问题的多重方法,在寻找的过程中对知识印象加深。学生不仅参与了这个实践过程,还找到了学习的方法。知道了自主学习的必要性,自主探究的重要性。最后是情感态度。不是每一个学生都对学习有足够的兴趣,也不是所有学生都有学习的天赋。有些学生喜欢学习,将学习当作自己的一个兴趣,因此会乐意为此付出时间与精力;而有些学生,并不太擅长学习领域,或者并不喜欢这个领域,由此会对学习产生厌恶,时间一长,就会对学习完全丧失信心。多维度教学可以针对不一样的学生,采取不一样的方法,难度适宜。比如对于学习能力强的同学,可以多扩展一些课外知识,或者多鼓励他们去探索;而对于不太理想的同学,其首要前提是不能让他失去学习的信心,可以教些基础知识。这样每个人都学到了东西,每个人都能投入到学习中。老师的深层教育目标就是要时刻关住每个人的心里状态,当有人心理发生波动时,老师需要作为过来人,作为一个朋友的身份,来开导,让其态度回归正轨。

2)多维度教学顾名思义,从多个角度来教学。狭义一点来说,就是教学方法有多种,并不局限于一两种。比如对于高中语文古文《出师表》的学习,我们都知道出师表篇幅很长,里面的古今异义词很多,是块难啃的骨头。因为高中时间很紧迫,学生学习的主要目的就是应付高考,因此,对于《出师表》的学习,不会用多种方法来教学。很多老师可能只是让同学听会录音,然后让学生背诵写来就好。那么问题来了:一篇现代文要是不理解,想背下来都难,更何况是古文呢?这时候老师的教学方法需要多维度来维持。比如,老师可以借助计算机网络,播放一段相关视频,或者让全班同学一起诵读,再可以让几个同学分角色朗读。在读的同时,引导学生体会诸葛亮当时的心理状态,临表涕零是种怎样的状态。这虽然只是方法的多重性,也是多维度的一个反应。在这个过程中,不仅调动了全班同学的积极性,而且还让学生一改以往的学习模式,了解到多种方法,找到适合自己的,才能学习得更好。

3)多维度教学使课堂更具趣味性。传统教学模式局限于老师在讲堂上,对着黑板版书,照着课本讲解。学生就是被动接受知识的身份,整个课堂气氛沉闷。在传统模式下,对于老师这个身份,学生产生了敬畏之情,不敢向老师提出质疑。而多维度教学提倡多角度教学,比如可以改变传统模式,开展小组活动教学,课堂中引入趣味性的编程案例。这样一来,学生变成了学习的主体,主动参与学习中来。老师作为一个引导者,将大部分时间交给学生。学生分为四至六个人一组,在小组中进行自主预习,讨论。对于同一个问题,每个人都能提出不同见解,然后将所有人的想法进行汇总。在后期的小组展示中,可以采取竞争的模式,组与组之间进行比拼,回答问题者采取加分模式,直到下课,分出决胜小组。如此一来,有了竞争意识,每个人都不想做最后的那个小组,其积极学习意识在无形中提高,会让越来越多的同学主动参与到学习中。这恰恰是多维度教学中趣味性的体现。多维度教学在C语言教学中的实践

2.1 什么是C语言教学

C语言是一种面向过程的结构化程序设计语言,它的发展贯穿了整个计算机的发展历程。它蕴含了程序设计的基本原理,概括了程序设计的基本概念。所以,许多高校都将C语言作为计算机教学的入门学科。

2.2 C语言教学中存在的问题

1)无法调动学生学习的积极性。

C语言本身不具有趣味性,甚至还有些许无聊。刚进入大学的学生大都是第一次接触这种语言,以前基本没尝试过。因此其基础较差,一切都是从零开始。而C语言教学中灵活的语法,丰富的数据类型,众多的运算符,庞大的函数库,如果按照传统的教学方法,逐一讲解,不仅浪费时间,而且教学内容特别冗杂,十分不方便。而且对于一些基础好的学生,在讲解的同时,举一些连心算都能算出来的例子,会让那些同学觉得无聊,这根本不是他们所想学习的内容。而对于基础差的同学,其教学内容太多了,上一个知识还没消化,下一个知识点就来了,完全将其当作第二语言,这样一来,所有的知识点都似懂非懂,实践起来根本无从下手,而且根本调动不起来学习的积极性,会将这门语言当作学习的负担。

2)无法让学生理解软件工程的概念。

传统的教学方式,都是老师在黑板上照着书本讲,学生在下面被动地听。有些知识太过抽象,老师也只是一带而过,不举出实例加以方便理解。这就造成实际与知识点的脱节。在C语言教学中也同样存在这个问题,许多教C语言的老师教了十几年的C语言,都只是参照书本来给学生灌输相关概念,并不带入到实际中去。甚至一些教C语言的老师连一套程序都没写过,都没开发过一个软件,只是空有理论知识的基础,却不知道如何实践。那么学生也只是知道一个理论,四年大学学下来,不知道怎么运用于实践,在工作中一点作用都没有,想将C语言运用到今后的实际工作中,这样的教学显然是不成功的。因此要讲教学与实践结合起来,在学习理论知识的同时,学着将其运用到编程软件开发中。最开始,不需要太严密的软件开发,只当作一个练手,其主要目的就是将理论知识运用到实践中。

2.3 如何运用多维度教学进行C语言教学

1)改变以往单纯传授方式。

在课堂上多激发学生的学习积极性。老师针对不一样的知识点,可以首先简单做一个程序,让学生更直观地去了解到此节内容学下来之后,可以做什么。再有了大致了解后,老师在进行详细教学,多利用教学工具,比如数据模型,在枯燥的程序教学中 可以穿插计算机出现的相关故事。故事是具有情节性的,方便于理解,这样可以吸引学生注意力,也可以让学生暂时放松下飞速运作的大脑。毕竟,C语言的学习本身就不像古语言文学那般,有着基本的中国历史的了解,跟我们的距离也更近一些。如果在教学的过程中,还是枯燥无味,很难让同学一整节课下来,都集中注意力。而且现在科技的进步,社会上也有许多诱惑 大学生的思想体系本来就不太成熟,对于辨别是非的能力也不那么完善,就拿手机来说。大多数学生,在课上无聊时,会拿出手机打发时间。所以,必须采取多个角度来进行创新教学,尽可能把学生的注意力吸引到学习中来。

2)进行必要的解释和引导

虽然我在前面提到过,多维度教学将注意力从老师上转移到学生上。但毕竟学生的知识面有限,对于许多问题的看法知识浅显的,不能很深入。这时候就需要老师站出来加以引导和解释。对于同一问题,老师可以举一反三,扩展更多的知识面。让学生的知识更有严密性组织性。C语言不像其他学科,其知识很具有科学性,老师不做解释很难理解。其实,老师还是利用多维度教学,将同学分成几个小组,每个小组选一个小组长,这样一来,老师可以给每个小组都进行实际操作,学生少的条件下,每个人都能看得清楚明白。而且,就算再有不懂的,也可以请教同组同学,同学之间讲解起来会容易理解,因为同学之间不存在对老师的那种不敢提问的问题。

3)学会给予适当的鼓励和评价。

每个学生在学习过程中,都需要被鼓励。不论基础好的同学或是基础差的同学。一些适当的鼓励,会让基础好的同学有了学习的拼劲,会在现有基础上,更加努力,从而提升到另一个层次;而对于基础不太好的同学,适当的鼓励会让他们意识到,老师其实并未放弃他们,他们也是同样被老师重视的,如此,他们才会不丧失学习的主动性,虽然学习进度没那么快,理解力不那么强,他们也会一步一步,一点一点,慢慢弄懂。老师对于两类学生制定的目标也要因人而异,不能笼统要求所有学生考到多少分以上。这是极其不公平的,老师要根据每个人的能力,制定不一样的目标,只要每个人都能达到属于自己的目标,那就是进步,就是相对意义上的成功。多维度教学在C语言教学中的分析与研究

3.1 教学效果分析

在将多维度教学实施到C语言中的同时,可以得到以下效果:

1)学习氛围发生明显变化

在改变了方法之后,课堂上的学习氛围明显提高。传统课堂上,学生死气沉沉,全程只听到老师一个人在讲,有兴趣的同学会跟着老师的思维走,但不感兴趣的同学会默默地玩,根本不参与到学习中。如今上课已不再是老师一个人的独角戏,现在更多的同学主动参与,共同学习。遇到不懂的问题,也敢举手及时与老师沟通交流,能提出质疑就说明学生在思考。而且在老师提出一个问题后,同学们之间会相互讨论,会查找资料来印证自己所说的,在这一过程中,老师与学生的关系会变得更加亲密,同学之间的关系同样会更加亲密。这种氛围会促进学生学得越来越好。

2)学习能力得到提高

每个人都参与到学习中,或多或少都会在原有基础上得到提高。提高的不仅仅是成绩 还有学习的方法跟态度。态度与方法是十分重要的,端正了态度,才会想要学习,有了正确的学习方法,学起来才会少走许多弯路。每个人在积极参与课堂学习的过程中,自主学习能力提高,自我控制能力也加强。基础好的同学在给基础差的同学讲解时,一方面加深了自己对知识的印象,另一方面,口头表达能力也得到了提高。因为有许多成绩好的,只知道怎么做题,怎么分析题,却不知道怎么把自己知道的讲解出来。或者说讲解出来的过于混乱,这就是只能意会不能言传。这种学习方法得到改善后,表达不好的同学可以不断练习,其表达能力也在无形中得到了提高。

3)团队合作意识加强

我上文提到过的,多维度教学的一个小例子,可以进行小组活动学习。传统模式中,成绩好的在不断学习中还是成绩好,而成绩差的也还是成绩差。这样两极分化十分严重。但有了小组学习后,让所有同学都参与到学习中,同学之间有了交流,成绩好的也可以给成绩差的进行讲解。而且还采取小组评比的模式,??让小组里的每个人都团结起来,因为那时小组便是一个整体,代表着组内的每一个人,所有人都会为小组的荣誉努力,在这个过程中,同学之间的团队意识加强,两极分化也会得到改善。同学的关系也会出现前所未有的和谐美好。小结

与其他教育大国相比,我国的教育虽不那么完善,但我们会积极采取各种方法,想出各种对应策略,使教育在很大程度上散发光彩。多维度教学在C语言教学中就是一个改善教学方法的实例,而且这一实例也得到了很大的效果。所以,我们也相信,多维度教学法的成功应用可在更多的课程中开展。

参考文献:

在一个c语言程序中 篇7

目前,国内绝大多数教材在介绍C语言表达式时,都没有介绍C语言的一个重要概念———序列点(sequence point)。甚至不少教材作者自己本身也不了解这个概念,在教材中常常对表达式给出错误的分析和讲解。类似下面的错误分析和讲解在很多C语言教材中都出现过:

“赋值表达式也可以包括复合的赋值运算符。例如:

也是一个赋值表达式。如果a的初值为12,此赋值表达式的求解步骤如下:

(1)先进行“a-=a*a”的运算,它相当于a=a-a*a,a的值为12-144=-132。

(2)再进行“a+=-132”的运算,相当于a=a+(-132),a的值为-132-132=-264。”[4]

然而,“a+=a-=a*a”这个表达式本身就是错误的,上面对这个表达式的分析同样是错误的。错误的根源在于不了解序列点这个概念以及相关的C语言语法规则。

1 序列点及有关概念

根据最新的C语言国际标准(后面简称为C99)的定义,序列点就是执行序列中的一些特定点,在这些点上,前面求值的副效应(side effect)应彻底完成且其后求值的副效应均未发生。

最常见的序列点是语句结束符号“;”,它的含义是其前面的副效应到此必须完成,而其后面尚未发生。

如果不存在函数调用子表达式,表达式中的序列点只有4个:&&、||、,和运算符“?:”中的“?”。其余的运算符均非序列点。

副效应(side effect)0是与表达式求值有关的一个概念,是指在表达式计算过程中除了求值以外的各种行为或效果。例如,对于int i;

来说,表达式“i=5”的作用是求表达式的值(这个值是5),而变量i被赋值为5就是这个表达式的副效应。

2 写C语言表达式的一个基本原则

C99规定:在前后相邻两个序列点之间,数据对象所存储的值最多只能通过表达式求值改变一次,而且只能以先读对象的方式访问它以确当时存储的值0。

这是用C语言书写表达式的一个基本原则。通俗地说就是在两个序列点之间,绝对不容许改变同一数据对象的值两次或两次以上。

根据这个原则考察一下本文一开始引文中提到的表达式“a+=a-=a*a”。在“a+=a-=a*a”这个表达式中,由于在该表达式之中并不存在序列点,所以它必定是处于两个相邻序列点之间的一个表达式;然而由于赋值运算的副效应,a数据对象的值却被改变了两次。毫无疑问这违背了C语言写表达式的最基本原则,因而是错误的。

由于C语言规定两个相邻序列点之间同一数据对象的值不容许被改变两次或两次以上,但并没有对违背这个规则的情形编译器应该作出何种反应作出具体规定,因而“a+=a-=a*a”这种表达式属于未定义行为(undefined behavior)0的范畴。未定义行为的代码也是一种错误的代码,因为其运行结果得不到任何保证———无论是从C语言的定义还是编译器方面都没有任何保证。

3 对一些常见的错误看法的剖析

有一种错误的看法认为,只有编译器报错(或警告)的代码才是错误的代码,只要编译器没有报错的就是正确的代码。这种看法是由于根本不了解C语言的基本特点所致。

由于C语言的灵活性,必然有许多种代码形式的可能性,C99不可能对所有的可能都一一规定编译器应该做何种反应。同时,对编译器过多的要求和限制必然会导致编译器的高效实现———这从根本上违背了C语言的精神。因此在C语言中存在这样一种特殊的情况———未定义行为。

C语言没有规定未定义行为应该产生何种后果,这同时也意味着容许编译器可以不报错。编译器报错的代码属于一种“已定义”的错误“行为”。因此把编译器没报错就说成是正确行为是根本站不住脚的。整数运算的“溢出”就是一种编译器并不报错的未定义行为,难道能认为“溢出”得到的结果是正确的吗?显然不能。

还有一种错误的看法觉得,既然编译后的程序能给出“a+=a-=a*a”与分析一致的结果,为什么说这种代码是错误的呢?这种看法同样是由于不了解未定义行为的特点所产生的一种误解。未定义行为可能产生各种结果,其中一个与你设想的相同,并不表明你的设想是正确的。这只是一种“巧合”而已,是根本靠不住的。依赖这种巧合,就如同在程序中埋下一颗不定时炸弹。

一种似是而非的看法是,“a+=a-=a*a”的结果决定于编译器。这个看法是不准确的,因为对于编译器来说,并不需要对其使用者保证求值次序始终如一。

4“错误的分析”的错误

本文开头所引用的[4]对“a+=a-=a*a”这个表达式所做的分析的错误在于:把表达式(或子表达式)的求值与求值的副效应混为一谈,错误地以为这两种行为同时发生。

实际上,C标准并没有规定运算次序以及副效应产生的次序。在C语言中运算次序是一种实现定义行为(Implementation-defined behavior)。容许这种行为主要是为了C语言实现的效率———为实现者留下在具体硬件环境下充分发挥硬件优势的空间。因此只要不违背C语言的语义,实现者有任意安排计算次序的自由。

这种实现定义行为的另一个特点是并不需要在文档中对软件的使用者说明。因此[4]假设赋值运算求值与副效应同时发生是毫无依据的,那段分析是根本不成立的。

5 类似的一些常见错误

由于国内C语言教材中,序列点等概念的普遍缺失,这种错误绝非个例而是相当普遍。在各种计算机等级考试中,这样的错误也屡见不鲜。例如:

这样的表达式由于改变i变量的值两次以上,同样是未定义行为。再如

这样的函数调用表达式,由于在“x--,x-y”内并没有序列点,而且C语言也不保证先以读的方式访问x变量,因而也属于未定义行为,因而也是错误的。

6 结束语

需要说明的是,尽管本文的概念来自C99国际标准,但是这些并非是C99所新增加的新概念。在C89国际标准[2]和国家标准[3]中,均有这些概念。

也就是说,无论按照何种C语言标准,本文讨论的那些错误代码都是错误的。

该文所讨论的错误,在当今我国大专院校的教材和各种等级考试中相当普遍。甚至不少教师把那些错误的分析当作正确的东西讲授。其根本原因就在于对于序列点这样的C语言基本概念缺乏全面而准确的了解,这势必导致很多学生无法正确地理解使用C语言。这种状况已经持续多年,应该尽快改变这种局面。

参考文献

[1]International Orgnazation for Standardization.ISO/IEC 9899:1999.

[2]International Orgnazation for Standardization.ISO/IEC 9899:1990.

[3]国家技术监督局.GB/T 15272-94程序设计语言C.1994

在一个c语言程序中 篇8

【关键词】微课  C语言  程序设计

一、何谓微课

2008年美国的戴维·彭罗斯,运用建构主义理论,以在线学习或移动学习为目的,提炼课程要点,制成了十几分钟的微课并上传网络,从此微课被提出进入了大众视野。我国广东佛山教育局的胡铁生,率先在国内提出了以“微视频为中心”的新型教学资源这一理念。近年来随着翻转课堂的推行以及可汗学院在互联网上推出的系列微视频,微课在全球迅速走红成为教育界关注的热点话题。

“微课”是按照新课程标准及教学实践要求,以“微视频”为主要载体,针对某个知识点或教学环节而开展教与学活动,包括各种教学资源有机组合。

微视频是微课的核心,为了使教学更有效,基于学生的认知特点和视觉驻留规律,时间长度控制在5~10分钟左右。微视频可以无论是在课前、课内、课后都可以使用。学生可以在课前先预习,这样课堂上教师就可以把课内重点放在学生对知识的掌握吸收上,比如进行个性化的辅导、讨论来解决问题。如果课上有些同学还想复习或者上课没有听清,课后都能够继续使用视频、课件等资源进行学习。随着手机、平板电脑等终端的普及,碎片化移动学习逐渐成为人们学习生活方式的主流,微课适合学习者自主学习、按需学习、个性化学习,既可查缺补漏又能强化巩固知识,是传统课堂学习的一种重要补充和拓展资源,真正做到了以学位本。

二、微课的具体应用

1.课程背景

C语言程序设计是高职计算机信息管理专业的一门专业基础课,也是许多非计算机专业的主要选修课,是一门实践性与应用性较强的课程,目的是培养学生算法设计的基本思想和程序设计的基本技能。但是根据笔者的实践,许多同学学习编写程序感到比较困难,上课也听不懂,因此害怕编写程序。通过与学生的交谈,同事的交流,以及教学实践,笔者发现主要原因是一方面是课程本身的逻辑性强,有一定的灵活性,课程本身有一定的难度,另一方面是学生在一开始学习的时候就不是很感兴趣,学习也没有成就感,就丧失了自信心。顺序结构、选择结构、循环结构是结构化程序的三种基本程序结构,其中编写顺序结构程序是后续学习编写选择结构、循环结构程序的基础,正式学习编写程序一般是从编写顺序结构程序开始的,很多同学由于一开始学编写顺序结构程序时学习不得法,不能真正理解如何来编写程序,入不了门,在心理上害怕编写程序,看到问题就无从下手,导致后续的学习没有兴趣,无法继续后续的学习。微课展示时时间段、主题鲜明、内容简洁,可以使学生在注意力较为集中的时期对教学重点和难点有一个较好的把握,也可以反复学习。针对以上这些情况,因此选取编写简单顺序结构程序为题作为微课的内容。

2.微课在C语言程序设计中的教学设计实例

【微课名称】

编写简单顺序结构程序

【教学背景】

本知识点是计算机信息管理专业高职二年级《C语言程序设计》课程中的一个知识点,在学习该知识点之前要求已经掌握C语言的书写格式和调试环境、常量和变量、数据类型、运算符表达式及输入输出函数。

【教学目标】

(1)了解顺序结构程序的特点;

(2)理解简单顺序结构程序的编写思路;

(3)学会编写简单的顺序结构程序。

【教学重点】

(1)顺序结构程序的特点;

(2)编写简单的顺序结构程序的思路。

【教学难点】

灵活编写简单的顺序结构程序。

【教学活动设计】

本微课采用演示法和讲授法,从具体简单的两个整数的加法为例,先提出生活中怎样完成求两个整数的和。这个问题学生在小学就学过,肯定都能回答出来,即一个加数加上另一个加数得出和。接下来引导学生思考,如果把这个任务交给计算机程序来自动完成应该如何实现,由于不知道两个整数具体是多少,也就是说这两个参与运算的整数是可变的,所以可以定义两个整型变量比如a和b来存放参与运算的两个加数,由于加数是可变的,那么最终计算出的和也是可变的,所以还需要定义一个变量比如sum来存放最终的和,接着通过一个赋值语句sum=a+b;可以让计算机自动把和求出来,最终为了让结果显示出来,还需要将结果输出。通过一步步进行分析,了解为什么要写这么一条语句,最终完成程序的编写。为了让学生对程序能进一步理解,我还对程序执行的过程进一步进行模拟,让学生在程序执行的过程中看到每个语句起的作用,进一步理解该程序。虽然针对不同的问题,编写程序的语句不同,但是顺序结构编写程序的思想还是一致的,通过编写完成两个整数的加法这个特殊的例子,最终归纳出一般顺序结构程序的步骤:(1)定义需要的变量,使部分变量有值,可以通过赋值的方法,也可以通过输入的方法。(2)根据具体的要求,让计算机完成相应的操作或运算。(3)将最终得到的结果输出,给出问题解决所需要的结果。

这是一个由特殊到一般、由简单到复杂的过程,符合学生的认知规律。为了检验或评价学习的效果并巩固所学内容,课后还安排了练习(微课学习任务单并附有答案),旨在引导学习者学会编写简单的顺序结构程序,达到触类旁通、举一反三的效果,在设计该微课任务单时,安排的练习也是从简单到复杂,在难易度上有一定的梯度,方便学生循序渐进的练习。该微课配套的学习资源主要有微视频、课件、微课学习任务单。

附:任务单

微课学习任务单

【教学反思】

1.收获

制作微课对于教师的个人专业化成长是有很大的帮助的。首先需要教师转变教学理念,在教学过程中教师是真正的主导者,学生是学习的主体,现在的学习必须具有更高的实效性。本微视频采用的是超级录屏软件结合power point 2007来制作的,实现起来比较简单。通过此次微课的制作与实践,笔者对于微课的概念有了进一步的理解,也熟悉了微课设计与制作的流程。在制作微课的过程中,为了制作微视频,我还熟悉了微课制作的几个小软件,比如:超级录屏、Camtasia Studio、屏幕录像专家等。另外,在选题时,需要仔细斟酌,要思考选取哪个知识点来作为微课程的内容,可以针对教学的难点,也可以针对教学的重点,在这个思考的过程中,又加深了教师对教材知识内容的进一步理解。

当然微课的受益者还是学生,由于选取的内容出发点门槛比较低,从简单的例子引到计算机程序,一定程度上帮助学生化解了学习的难度,提高对学习的自信心。另外本课程内容有一定的实践性,学生在学习的过程中也可以动手体验,一定程度上也能提高学习者学习的参与度。有了微视频、课件等教学资源,学生可以反复学习和使用,无论在课堂内外,都能学习,能帮助接受能力弱的同学慢慢学,学会“知新”;能帮助所有同学重新回顾课堂上所讲内容,学会“温故”。如果学生在课前提前预习,教师上课的时间就可以主要花在让学生对知识进行消化、吸收与促进上,课堂的形式可以有互动讨论、答疑解惑等多种形式,而不是纯粹的知识讲解,这能让学生的学习相对原来的传统学习更具有有效性,一定程度上也帮助学生慢慢养成自主学习的习惯,使课内学习与课外学习相互衔接,满足学生的个性学习和共性学习。

此次微课实施后,从学生的微课任务单以及学生的反映来看,效果相对于传统的教学都不错,对学生的帮助还是比较大的。

2.不足

本微课虽然通过简单通俗的例子把问题讲清楚了,但是由于学习的内容还不能直接作用于生产生活,在教学的实用性方面还有所欠缺。另外,内容在激发学生学习的兴趣方面还需要下功夫,还不能达到引人入胜的效果。

三、结束语

微课作为一种新型的学习形式和资源,无论对老师还是学生都是一种机遇,在C语言程序设计课程教学中,要真正做到增强学习效果,需要全面使用微课这种资源还需要开发系列化的微课程,形成本门课程的微课“资源库”,并在教学实践中逐步加以提高和完善,这也需要更多的时间和精力。本文是笔者在本门课程中的初次应用,还存在许多的不足,需要不断地完善和思考。

【参考文献】

[1] 汪琼. 微课关键在课不在微,《中国教育网络》,2013(10).

[2] 黎加厚. 微课的含义与发展,《中小学信息技术教育》,2013(04).

[3] 陈磊、魏林. C语言课程中循环嵌套的微课教学设计与思考,《科教导刊》,2014(12).

[4] 相方莉.“微课”翻转课堂在高职C语言教学中的应用研究,《中国教育信息化》,2014(20).

C语言中变量的存储类别 篇9

(1)相对自动变量(即动态局部变量),在程序的运行期间都占用静态存储区,直到程序结束才释放该存储区。

(2)静态局部变量只是在程序编译时赋初值,以后每次调用时不再重新赋初值,而只是保留上次函数调用结束时的值。动态局部变量编译时不赋初值,直到程序调用时才给变量赋值,每次调用都要赋初值。(3)在定义局部变量时不赋初值的话,则对静态局部变量来说,编译时会自动赋初值0或空字符。而对动态局部变量,不赋初值则它的值是一个不确定的值,因为动态变量每次都要自动分配存储空间,存储空间的值是不固定的。

(4)静态局部变量在函数调用结束后不释放,但其他函数是不能调用的。3.寄存器的(register)为了提高程序的执行效率,对一些运算频繁的变量定义为寄存器变量可以节省每次程序执行时的内存读取,大大节省了时间,提高了效率。寄存器的一些特点:

(1)寄存器变量的特点程序运行时分配寄存器存储空间,结束时释放。这个特点限定了只能把局部自动变量和形式参数定义为寄存器变量。(2)局部静态变量不能定义为寄存器变量。4.外部的(extern)外部变量是在函数的外部定义的全局变量,他的作用是从变量的定义初开始,到本程序文件的末尾。编译时将外部变量分配在静态存储区。

在程序设计中常用到用extern声明外部变量,用来扩展外部变量的作用域。

常用到得方式有:

(1).在一个文件内声明外部变量

定义外部变量,作用域仅限制在从定义处到函数的结束,可以扩展作用范围,用extern声明定义的外部变量。

(2).再多文件的程序中声明外部变量

在程序设计中,可能包含不止一个文件,当两个或者两个以上的文件想共享一个外部变量时,可以在一个文件中定义这个外部变量,在其他文件中用extern声明这个变量,可以完成共享功能。

在程序中经常看到用static声明的外部变量,这种加上static声明的外部变量,只能用于本文件的外部变量。可以避免在不同文件中定义同一个标识符的外部变量出现错误,影响程序。

函数本质上是全局的,但在多文件程序中,可能不同文件包含相同函数标识符的函数,为了避免编译时出错,可以把函数定义为内部函数,尽在本文件中调用,static int fun(void)。

在一个c语言程序中 篇10

1微课特点概述

微课是一种现代信息化的数字资源,能根据学生的认知规律及发展特点不断地扩展素材结构,从而使学生更好地理解教学内容。主要通过制作课堂教学短视频,其中包括教学设计、教学课件及教学反思等内容。与传统的教学资源相比,微课具有明显的特点和优势:第一,时间较短。在使用微课教学的过程中,教学视频占有核心地位。通常微课视频的时间大约在5~8min,最长不超过10min。第二,内容较少。微课教学所涉及的教学内容并不多,与传统课堂相比,微课更加倾向突出主题,非常适合教师进行C语言程序设计教学。微课能明显突出整个教学过程中的重点知识内容。第三,容量较小。微课所涉及的辅助资源大约在几十兆,所采用的视频格式通常为flv、rm、wmv等流媒体格式,方便师生在线观看视频。第四,情境真实。通过微课视频进行教学,能创造真实的情境且资源丰富,所选主题明确。师生能在更加形象具体的.情境中实现自身的目标,大幅度提高课堂教学质量。

2以双重for循环嵌套程序为例进行分析

2.1C语言程序设计课程概述

在计算机教学过程中,涉及许多种类的编程语言,C语言就是其中之一。C语言发挥着重要作用,首先,C语言语法结构简单明了,不同于其他程序的复杂性,在写出程序时,也可达到高效的效果。同时,C语言语法程序更加容易描述算法,大部分工作人员愿意使用C语言。因此,想要提高学生程序设计的质量和水平,就必须全面掌握与C语言程序相关知识内容。其次,C语言能够让使用者进行更深入的研究,在对整个系统的底层进行分析时,可使用C语言编写操作系统。否则无法对操作系统进行更深入地研究,在编写程序的过程中将会遇到较大的阻碍。最后,C语言能够衍生出许多新类型的语言,例如java、C++等。因此,掌握好C语言才能掌握其他相关的知识,从而去开发和利用新型语言。

2.2微课在双重for循环嵌套程序教学中的应用设计

在C语言程序设计课程中,学生必须要掌握双重for循环嵌套程序的内容。但学生对此类型的阅读题极为抗拒,他们无法深入地理解整个执行过程,特别是在进入第二层循环后,学生面临的困难较大。为了帮助学生更加深入的理解双重for循环嵌套程序这个知识点,可通过微课视频动画的形式来展示。使整个执行过程更加生动形象地展现在学生眼前。同时,分别采用不同的形式记录整个过程的变化状况。为了使学生能够更加积极主动地参与到微课的教学过程中,教师应做好讲解工作,及时进行指导和分析,使程序结果更精确。首先,设置微课的教学目标。在进行设计教学目标时,应充分考虑到学生的认知状态及课程要求标准。将教学目标设置为学生能正确理解和分析的双重for循环嵌套程序,并且能通过自身努力得出正确的程序结果。其次,做好课前准备工作。课前准备工作包括两方面:教师准备工作及学生准备工作。教师应充分查阅资料并制作课件,必须保证课件中含有动画视频。此外,还要包含一些带有答案的习题,确保学习任务能够明确地展现在学生眼前。学生应完成简单的阅读任务,明确微课的学习形式,从而进行小组讨论和分析。再次,明确教学环节。教学环节主要包括三方面:引入任务、分析任务,实施任务。在引入任务方面,应保证微课视频中含有动画,通过展示时钟的不同指针转动状况来引入双重for循环嵌套程序。这样能引起学生注意力,激发学生的学习兴趣及好奇心,并且使其明确自身学习任务。在任务分析方面,应分析双重for循环嵌套程序的具体执行过程,主要分为两个循环层次:第一层次,教师展示动画视频。将整个程序看作一个整体。第二层次,循环分析过程。做好记录工作,教师分析几个程序后,学生自己分析剩余的过程。只有这样才能正确地写出程序结果,然后进行程序结果的验证,从而完成学习任务。最后,给学生布置相应学习任务。教师应注意布置的内容,这对于学生而言非常关键。调试程序的验证结果也不容忽视,这能有效加强学生对双重for循环嵌套程序的理解。

上一篇:蚱蜢作文800字下一篇:中4家长会发言稿