c语言开发

2024-06-24

c语言开发(13篇)

1.c语言开发 篇一

1、数据结构

在二叉树中找出和为某一输入值的所有路径。

#include

void getPath(struct treeNode星符号 node, int sum, vector& stack, int currentSum) { //stack用来存放路径,sum为输入值

} if (node == NULL) return; currentSum += node->id; stack.push_back(node->id); if (node->lchild != NULL) getPath(node->lchild, sum, stack, currentSum); if (node->rchild != NULL) getPath(node->rchild, sum, stack, currentSum); if (node->lchild == NULL && node->rchild == NULL) { if (currentSum == sum) { vector::iterator it = stack.begin; for (; it != stack.end; ++it) printf(”%d “, 星符号it); printf(”/n“); } } stack.pop_back;

2、编写程序:如何获得一个整数的二进制表达中有多少个1?

2.c语言开发 篇二

进行编程语言教学的一线教师如果能够尽早了解学生编程存在的问题并能给出合理建议, 将会使初学者的编程能力得以很大程度的提高。就目前的教学方法而言, 多以改进教学方法、提供在线学习资源、自编教材、增加实验课时等方法来提高学生C语言编程水平[1,2]。本课题组通过跟踪编译信息的方法进行学生C语言编程能力提高方面的研究。同时, 在如何评价编程能力方面, 世界各国也展开了相关研究。一般而言, 通过学生的学习成绩及上机所编程序来评判学生的编程能力[3,4]。而这种方法无法掌握学生编程过程中所遇到的问题。随着教学方法的改进, 出现了依据学生所编程序风格的变化来掌握学生编程能力的方法。但此方法只能阶段性的评价学生的学习状况, 对于学生上机编程过程中遇到了哪类问题, 程序开发的进展情况无法掌握。本课题组使用的方法无须关心学生具体的编程内容, 只要利用学生编程过程中所出现的警告信息和错误信息, 来判断学生C语言的学习情况, 并及时给出学习建议, 提高学生的编程能力。

2 基本思路

本方法依据源代码行数、编译错误信息量、编译警告信息量的变化判断学生的C语言学习状态。本方法建立在以下几点经验基础上:

2.1程序在上机联系的过程中, 调试非常顺利的情况下, 源代码的行数会不断增加, 同时, 编译的警告信息和错误信息也会随之增多, 但没有程序结构上的错误。

2.2 编程经验不足的学生会把精力放在警告、错误的编译信息的消除上, 源代码行数的增加速度不高。

2.3程序流程发生变化时, 大面积的源代码会被删除或修改。当程序的解决方案还未成熟时, 源代码的删除或修改多为无效操作。基于以上几点经验, 通过对源代码行数、编译错误信息、警告信息的统计, 掌握学生的学习状况, 并能及时发现学生在编程过程中遇到的问题。

3 实验

3.1 实验方法

程序在开发的过程中, 每次修改源代码都将当前版本源代码的行数、编译错误信息数量和编译警告信息的量保存下来, 以供日后分析。

3.2 实验实施

本研究对14级自动化141班34名学生进行开发过程分析实验。34名学生中既有高中就具备编程经验的学生, 也包括完全没编过程序的学生, 因此, 实验样本非常具有代表性。利用VC6.0的开发环境, 学生按以下步骤实施C语言编程:a.教师提供模板程序。b.学生以模板为编程基点, 阶段性的追加相关功能。c.编程过程分4阶段实施, 学生必须不断在模板程序中追加功能, 前三阶段为教师指定任务, 最后阶段学生自由发挥。d.收集编程过程中出现的编译错误、警告等信息。

3.3 实验结果

在收集到的34份数据中, 有效数据30份, 具体内容如表1所示。表1中各栏的意义如下:学生ID:学生识别号。源代码行数:每次在VC6.0的环境下点击编译时源代码的行数。教师最先提供的模板源代码行数为25行。变化量:与前一版本代码相比有变化的源代码行数。编译信息量:点击编译后出现的编译错误数量与警告数量之和。版本数:每点击一次编译为源代码的一个版本, 版本数为源代码编译的次数。

3.4 实验结果图形化

将收集到的实验数据以学生为单位用图表表示出来即如图1所示。图中三条折线分别为源代码的行数、源代码的变化行数、编译信息量 (包括所有的错误信息和警告信息) 。横轴为版本号, 纵轴为各自的数量值。由图1可知, 编程过程中出现了如下所列的几个阶段:a.源代码追加期。学生在此阶段中以教师所提供代码为基础追加了个人所编代码。此阶段的特征为代码行数增加, 编译信息量也随之增加。b.修改期。在此阶段中, 学生检查源代码, 代码只做微调。此阶段特征为源代码函数变化不大, 编译信息量有减小的趋势。c.稳定期。在此阶段中代码行数、代码修改行数及编译信息量都变化不大。学生在此阶段中有可能处于最后的调试阶段, 也有可能处在不知如何处理的停滞阶段。d.改造期。在此阶段, 源代码的行数会急剧减少。学生一般是由于编程思路的改变或遇到无法修复的错误, 将现有程序恢复到原始状态, 重新调试代码。

4 分析

将所有学生的统计数据做成图表, 图表中会呈现出上述所说编程的各个阶段, 依据各个阶段交替出现的次序, 将不同学生归类为下述几个类型:a.标准I型。此类学生能够顺利完成上机程序编程练习。此类学生的特征为源代码追加期、修改期交替出现, 偶尔出现稳定期。b.标准II型。此类学生虽能够最终完成上机编程练习, 但完成状态不佳。此类学生的特征与标准I型相似, 但最终源代码行数和版本数不多。c.停滞型。此类学生因遇到无法解决困难致使不能完成上机练习的目的。特征表现为编译版本数少。d.混乱型。此类学生由于编程没有思路致使无法完成编程任务。特征表现为阶段4出现次数多。利用学生上机时的统计数据, 即可分析出学生的编程状态, 调整上机实验的授课方针, 达到因材施教的目的。

5 结论

本文阐述了利用学生上机时的统计数据, 分析学生的上机编程状态的方法。本方法无须详细查看学生的编程源代码, 即可掌握学生C语言知识的掌握情况, 对C语言的教学起到了积极的作用。

摘要:在C语言的教学过程中, 及时了解学生对C语言的掌握情况及其编程动手能力是培养工程应用型人才的重要环节。为了能够在教学中发现学生在编程过程中出现的问题并能对其进行针对性地指导, 本文提出了一种C语言开发过程分析方法。利用此方法, 教师可以在无须详读代码的情况下, 利用编译信息掌握学生的C语言学习状况。

关键词:C语言,实验,程序

参考文献

[1]张园园, 臧丽, 朱效丽.C语言教学模式的改革与应用[J].齐鲁工业大学学报 (自然科学版) , 2014, 04:40-42.

[2]董智勇.有关C语言教学方法优化的探讨[J].电子制作, 2015, 04:136-137.

[3]肖捷, 肖海容.《C语言程序设计》课程教学问题分析及对策研究[J].东莞理工学院学报, 2013, 05:111-115.

3.C语言在单片机开发中的重要性 篇三

关键词 单片机 C语言 汇编 电子

中图分类号:TP313文献标识码:A

电子行业飞速发展,单片机渗透到各个领域之中。如冰箱、空调、音响、手机等等,都用到单片机来做智能控制。因此单片机是电子技术对于很多行业的技术人员都是需要掌握的一门技术。而学习单片机除了需要掌握一定硬件知识,还需要掌握至少一门计算机语言。目前许多学习单片机的人都以汇编语言作为编程语言,因为汇编语言有其独特的优点。但是作为一种结构化的程序设计语言,C语言可以使你尽量少地对硬件进行操作,具有很强的功能性、结构性和可移植性,是一门非常实用的单片机系统的编程语言。也是单片机开发人员必学的一门语言。

计算机只能识别二进制数,所以计算机的指令均由二进制代码组成。为了阅读和书写的方便,常把它写成十六进制形式,通常称这样的指令为机器指令。一般的计算机指令都有几十到几百种。即便用十六进制去书写和记忆也是不容易的,为了便于记忆和使用,制造厂家对指令系统的每一条指令都给出了助记符。助记符是根据机器指令不同的功能和操作对象来描述指令的符号。由于助记符是用英文缩写来描述指令的特征,因此它不但便于记忆,也便于理解和分类。这种用助记符形式来表示的机器指令称为汇编语言指令。这种语言在单片机中使用有很大优点。但是它也存在着不足之处。首先,使用汇编语言编程比使用高级语言困难。因为汇编语言是面向计算机的,汇编语言的程序设计人员必须对计算机硬件有相当深入的了解。其次,汇编语言缺乏通用性,程序不易移植,各种计算机都有自己的汇编语言,不同计算机的汇编语言之间不能通用。而C语言编写的代码虽然不如汇编语言的执行效率高,但却更容易记忆,程序结构简单,而且具有可移植性。

C语言由于其功能强、使用灵活、可移植性好、目标程序质量好而受到广泛的欢迎。具体而言C语言的主要有如下这些特点:(1)语言简洁、紧凑,使用方便、灵活。C语言一共只有32个关键字,9种控制语句,程序书写形式自由,主要用小写字母表示,压缩了一切不必要的成分。(2)运算符丰富,灵活使用各种运算符可以实现在其他高级语言中难以实现的运算。(3)数据结构丰富。C的数据类型有整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据结构的运算。(4)具有结构化的控制语句。用函数作为程序的模块单位,便于实现程序的模块化。(5)语法限制不太严格,程序设计自由度大。使用时会出现一些“副作用”。(6)C语言允许直接访问物理地址,能进行位操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。 C语言兼有高级和低级语言的特点。(7)生成目标代码质量高,程序执行效率高。一般只比汇编程序生成的目标代码效率低10%-20%。(8)用C语言写的程序可移植性比汇编语言好。

总之,C语言是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能,常把其成为中级语言。C语言有功能丰富的库函数、运算速度快、编译效率高、有良好的可移植性, 可以直接实现对系统硬件的控制。C语言是一种结构化程序设计语言,它支持当前程序设计中广泛采用的由顶向下结构化程序设计技术。此外,C语言程序具有完善的模块程序结构,从而为软件开发中采用模块化程序设计方法提供了有力的保障。因此,使用C语言进行程序设计已成为软件开发的一个主流。用C语言来编写目标系统软件,会大大缩短开发周期,且明显地增加软件的可读性,便于改进和扩充,从而研制出规模更大、性能更完备的系统。

在单片机中使用C语言进行编程,还有许多突出优点。不懂得单片机的指令集,也能够编写完美的单片机程序;不懂得单片机的具体硬件,也能够编出符合硬件实际的专业水平的程序;中断服务程序的现场保护和恢复,中断向量表的填写,是直接与单片机相关的,都由C编译器代办;提供常用的标准函数库,以供用户直接使用;头文件中定义宏、说明复杂数据类型和函数原型,有利于程序的移植和支持单片机的系列化产品的开发;有严格的句法检查,错误很少,可容易地在高级语言的水平上迅速地被排掉;可方便地接受多种实用程序的服务:如片上资源的初始化有专门的实用程序自动生成;再如,有实时多任务操作系统可调度多道任务,简化用户编程,提高运行的安全性;提供auto、static、const等存储类型,自动为变量合理地分配地址等等。

因此,用C语言进行单片机程序设计是单片机开发与应用的必然趋势。所以作为一个涉足较大规模的软件系统开发的单片机开发人员除了掌握汇编语言之外,还需要握基本的C语言编程。

参考文献

[1] 王平,邢建春,王林.一种快速有效拦截弹飞的单片机程序新方法.微计算机信息,1997.4(13):80~81.

[2] 马忠梅,籍顺心,张凯,马岩.单片机的C语言应用程序设计.北京:北京航空航天大学出版社,1999.

4.c语言开发 篇四

学习C语言不是一朝一夕的事情,但也不需要花费十年时间才能精通。如何以最小的代价学习并精通C语言是本文的主题。请注意,即使是“最小的代价”,也绝不是什么捷径,而是以最短的时间取得最多的收获,同时也意味着你需要经历艰苦的过程。

一、要读就读好书,否则不如不读

所有初学者面临的第一个问题便是:如何选择教材。好的开始是成功的一半,选择一本优秀的教材是事半功倍的关键因素。不幸的是,学校通常会帮你指定一本很差劲的C语言课本;而幸运的是,你还可以再次选择。

大名鼎鼎的谭浩强教授出了一本《C语言程序设计》,据说发行量有超过400万,据我所知,很多学校都会推荐这本书作为C语言课本。虽然本人的名字(谭浩宇)跟教授仅仅一字之差,但我是无比坚定地黑他这本书的。这本书不是写给计算机专业的学生的,而是给那些需要考计算机等级考试的其它专业学生看的。这本书的主要缺点是:例子程序非常不专业,不能教给你程序设计应该掌握的思考方式;程序风格相当地不好,会让你养成乱写代码的恶习;错误太多,曾经有人指出过这本书的上百个错误,其中不乏关键的概念性错误。好了,这本书我也不想说太多了,有兴趣大家可以百度一下:)

Kernighan和Ritchie的《The C Programming Language》(中译名《C程序设计语言》)堪称经典中的经典,不过旧版的很多内容都已过时,和现在的标准C语言相去甚远,大家一定要看最新的版本,否则不如不看。另外,即使是最经典最权威的书,也没有办法面面俱到,所以手边常备一本《C语言参考手册》是十分必要的。《C语言参考手册》就是《C Reference Manual》,是C语言标准的详细描述,包括绝大多数C标准库函数的细节,算得上是最好的标准C语言的工具书。顺便提一句,最新的《C程序设计语言》是根据C89标准修订的,而《C语言参考手册》描述的是C99标准,二者可能会有些出入,建议按照C99标准学习。还有一本《C和指针》,写得也是相当地不错,英文名是《Pointers on C》,特别地强调指针的重要性,算是本书的一个特点吧。不过这本书并不十分适合初学者,如果你曾经学过C语言,有那么一些C语言的基础但又不是很扎实,那么你可以尝试一下这本书。我相信,只要你理解了指针,C语言便不再神秘。

如果你已经啃完了一本C语言教材,想要更进一步,那么有两本书你一定要看。首先是《C Traps and Pitfalls》(中译名《C陷井与缺陷》),很薄的一本小册子,内容非常非常地有趣。要注意一点,这本书是二十多年前写成的,里面提到的很多C语言的缺陷都已被改进,不过能够了解一些历史也不是什么坏事。然后你可以挑战一下《Expert C Programming》(中译名《C专家编程》),书如其名,这本书颇具难度,一旦你仔细读完并能透彻理解,你便可以放心大胆地在简历上写“精通C语言”了。

切记一个原则,不要读自己目前还看不懂的书,那是浪费生命。如果你看不懂,那你一定是缺失了某些必需基础知识。此时,你要仔细分析自己需要补充哪些内容,然后再去书店寻找讲述的这些内容的书籍。把基础知识补充完毕再回头来学习,才会真正的事半功倍。

二、Unix/Linux还是Windows,这是个很大的问题

不同的编程环境会造就出不同思维的程序员。Windows的程序员大多依赖集成开发环境,比如Visual Studio,而Unix程序员更加钟爱Makefile与控制台。显而易见,集成开发环境更容易上手,在Windows上学习C语言,只需要会按几个基本的Visutal C++工具栏按钮就可以开始写Hello, World!了,而在Unix下,你需要一些控制台操作的基本知识。有人也许认为Unix的环境更简洁,但习惯的力量是很大的,大家都很熟悉Windows的基本操作,而为了学习C语言去专门装一个Unix系统,似乎有点不划算。

对于一个只懂得Windows基本操作、连DOS是什么都不知道的新手而言,尽快做一些有趣而有意义的事情才是最重要的。用C语言写一个小程序远比学习ls、cat等命令有趣,况且我们要专注于C语言本身,就不得不暂时忽略一些东西,比如编译链接的过程、Makefile的写法等等等等。

所以我建议初学者应该以Visual C++ 6.0(不是VisualC++.NET)或者Dev C++作为主要的学习环境,而且千万不要在IDE的使用技巧上过多纠缠,因为今后你一定要转向Unix环境的。Visual C++ 6.0使用很方便,调试也很直观,但其默认的编译器对C标准的支持并不好,而Dev C++使用gcc编译器,对C99的标准都支持良好。使用顺带提一下,很多大学的C语言课程还在使用Turbo C 2.0作为实验环境,这是相当不可取的,原因其一是TC 2.0对C标准几乎没有支持,其二是TC 2.0编译得到的程序是16位的,这对今后理解32位的程序会造成极大的困扰(当然,用djgpp之类的东西可以使TC 2.0编译出32位程序,不过那过于复杂了)。

等你学完一本C语言的教材,你一定要转向Unix平台继续学习,几乎所有的C语言高级教程都是基于Unix平台的(比如《C专家编程》)。转变的过程是痛苦的,你需要面对的是各种纷繁复杂的命令,完全不同于Windows平台的思考方式,但是这种痛苦是值得的。Unix与C是共生的,Unix的思考方式和习惯更加符合C语言的思考方式和习惯。在Unix下,你可以找到无数优秀的源代码供你尽情阅读,你可以方便地查看某个库函数的联机手册,还可以看到最优秀的代码风格

归结起来就是一句话:初学C语言,建议使用Windows系统和集成开发环境,在准备向“高手”方向努力时,请先转向Unix平台。

三、万事俱备,你就是东风

书已选定,环境配置完成,正所谓万事俱备,只欠你自己的努力了。请从书的前言开始,仔细地阅读手头的教材,很多人看书喜欢直接从第一章开始看,这是错误的做法。前言是作者对整本书的大体介绍,作者一般会告诉你需要什么基础才能够顺利阅读本书,这可以帮助你检验自己的基础知识是否已经具备。看完前言,还要浏览一下目录,了解一下书的整体结构,顺便给自己安排一下学习计划。

学习C语言,必需注意每一个细节,书上的例子代码一定要自己亲自敲一遍,编译执行输出都跟书上说的一致才能算是学完了一个例子,如果不一致,就要仔细找原因。出了书本上有的例子,自己还要“创造”一些例子,比如学习运算符优先级的时候,可以写几个相同的表达式,在不同的位置加上括号,看看有哪些不同的行为,比如*p++和(*p)++,又比如a = b == c、(a = b)== c和a =(b == c)等等。自己抄的书上的例子以及改造之后的例子,还有自己“创造”的例子,都应该仔细地归类保存,并且要在源代码中写上简短的注释,阐述这个例子的意图。

例子之后就是习题了,我建议初学者把所有的习题都独立做一遍,然后对照答案的代码,看看自己的代码有那些不足,再试着修改自己的代码。很多人不重视习题,这是极大的错误,因为作者通常会在习题中说明一些重要的道理,而不是单纯地检验前面的知识。

也许你认为这样学习太慢,其实不然。学得细致就不用走回头路,等你学到后面才发现自己前面没搞清楚,那才是真的得不偿失。一般说来,整本书读完,你应该完成数千行乃至上万行的代码,无论是原封不动照抄书上的,还是自己心血来潮写就的,都是今后继续学习的一笔财富。以我自己举例,阅读《Windows核心编程》时(我只阅读了3/4的内容),除了抄书上的代码,还自己写了很多例子,一共有5574行(用unix下的wc工具统计),时隔多日,我早已记不清Windows的系统编程了,但只要花几分钟翻出以前的代码看看,便会重新了然于胸。所谓好记性不如烂笔头,就是这个道理。

仔细读书、认真抄写源代码、独立完成习题外加更进一步的实验,最后将所有的代码留下,成为自己的经验和财富,绝对的辛苦,也绝对的事半功倍。当然,这种方式只适合学习需要精通的技术,如果不是学习C语言,你还要具体情况具体分析。

5.c语言 篇五

姓 名: 李文丽 学 号:034108048 班 级:083411 指导老师:张印

2009年12月

学C语言有感

第1页

学C语言有感

摘要:C语言既有高级语言的特点,又具有汇编语言的特点;既能用来编写不依赖计算机硬件的应用程序,又能用来编写各种系统程序;是一种受欢迎、应用广泛的程序设计语言C语言版本。首先按照学习C语言的顺序分别介绍了我在学习C语言过程中所遇到的问题,叙述了在C语言学习过程,学习C语言的重点,难点,以及易出错的地方,并且用具体的案例做解释。然后阐述了学习C语言的体会:C语言的语法部分是学好C语言的基础,学习c语言不能停留在学习它的语法规则,只有通过上机才能检验自己是否掌握c语言、自己编写的程序是否能够正确地解题。最后总结学习c语言,既是件有趣的事情,又是件艰苦的事情。静下心来学习,我们会有所收获,更会其乐无穷的。

关键词:运算符 表达式 优先级 语句 变量

一、C语言的学习中的问题

在这个学期里,我们工商管理专业的学生在专业老师张印的带领下进行了实用c语言简明教程的学习。经过这一个学期的学习,我们已经对c语言这门课程有了一定的了解。C语言是一门最基础的语言,也是一门广泛使用的语言。所以学习C语言义不容辞

首先,在学习的最初几节课,老是主要向我们讲述了C语言的特点,学习C语言的意义,以及学习C语言能给我们所带来的方便优越之处。

C语言是一种结构化语言。它层次清晰,简洁紧凑、灵活方便,便于按模块化方式组织程序,易于调试和维护。C语言的表现能力和处理能力极强,语法限制不太严格、程序设计自由度大。它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。它还可以直接访问内存的物理地址,进行位(bit)一级的操作,适用范围大,可移植性好。总之,C语言既有高级语言的特点,又具有汇编语言的特点;既是一个成功的系统设计语言,有是一个使用的程序设计语言;既能用来编写不依赖计算机硬件的应用程序,又能用来编写各种系统程序;是一种受欢迎、应用广泛的程序设计语言C语言版本。

当然,C语言也有自身的不足,比如:C语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数族下标越界不作检查等。从应用的角度,C语言比其他高级语

学C语言有感

第2页

言较难掌握。

下面我给大家说一说我在学习C语言过程中所遇到的问题。

在第二章,我们学习的是数据描述与基本操作。在这一章,我们主要讲了数据类型,运算符与表达式,和不同类型数据间的混合运算。其中比较难以理解和掌握的是自加、自减运算符。

自加、自减运算符作用是使变量的值增1或减1;当符号在前,变量在后,++i/--i 变量的值先加1或先减1,然后再参与其它运算。当符号在后,变量在前,++i/--i 变量的值先参与其它运算,然后再加1或先减1。例如: # include int main(){ int i,j;i=3;j=++i;printf(“i=%d j=%dn”,i,j);return 0;} 运行结果:i=4 j=4 在进行自加、自减运算中我们应该注意一下几点:

1.自加运算符(++)和自减运算符(--)只能用于变量,而不能用于常量或表达式,如6++或(a+b)++都是不合法的。因为5是常量,常量的值是不能改变的。(a+b)++也不可能实现,假如a+b的值为5,那么自加后得到的6放在什么地方?

2.++和--的结合方向是“自右向左”。负号运算符和++运算符同优先级,而结合方向为“自右向左”,即它相当于-(i++),如果有printf(“%d”,-i++),则先取出i的值3,输出-i的值-3,然后i增值为4。注意-(i++)是先用i的原值3加上负号输出-3,再对i加1,不要认为加完1后再加负号,输出-4,这是不对的。

例如,x=a*b+c%d 无所谓;

例如,a=3;y=a*++a;不同的编译系统有两种处理方式,结果不同:

A)按从左到右的顺序处理为:先取a的值3,再计算++a,a的值 自增为4,子表达式++a的值也为4,所以相乘的结果为12;

学C语言有感

第3页

B)按从右到左的顺序处理为:先计算++a,a的值自增为4,子表达式++a的值也为4,再取a的值为4,所以相乘的结果为16。

在第三章我们讲的是顺序结构程序设计,其中所涉及的主要问题说优先级。

说到优先级什么叫优先级?比方说,我们在公交车终点站排座队时总会遇到70岁以上的老人不需要排队就能上车的情景,这就是优先级的涵义。C程序在运行时也象排队坐车一样,首先照顾那些优先级高的运算符,若是优先级相同,那么就象遇到两位(或两位以上)70岁以上的老人那样,让他们依次上车。

下面我们通过几个例子来说明:

(1)3*20/4%10 这个表达式中出现3种运算符,是同级运算符,运算顺序按从左至右结合,因此先计算3 * 20=60,然后被4除,结果为15,最后是%(求余数)运算,所以表达式的最终结果为15%10 = 5(2)a = 3;b = 5;c =++ a* b ;d =a + +* b;

例子中的“;”是C语言的语句分隔符,执行顺序为从左到右,第1条语句执行后a的值为3,第2条语句执行后b的值为5,第3条语句中有两个运算符前置+ +和*,按表中所列顺序,+ +先执行,*后执行,所以+ + a执行后,a的值为4,由于+ +为前置运算,所以a的值4参与运算,C的值为20,最后执行第4条语句,由于a + +为后置运算,所以a值为4参与运算,使得d的值仍为20,而a参与运算后其值加1,值为5。这个例子执行后,a的值为5,b的值为5,c的值为20,d的值也是20。(3)a = 3,b = 5,b+ = a,c = b* 5

例子中的“,”是逗号结合运算,上式称为逗号表达式,自左向右结合,最后一个表达式的结果值就是逗号表达式的结果,所以上面的逗号表达式结果为40,a的值为3,b的值为8,c的值为40。

但是C语言中的优先级的运算并不是千篇一律的,只能说是在大多数情况下,有些运算符的优先级有其自己的特点,因此这点大家要注意。例如条件表达式:条件?结果1:结果2,这种表达式很多朋友都知道,它的作用与IF…ELSE…条件判断语句很雷同,它运算时的优先级就不是按照C语言的规则来完成的。所以说对于优先级各位编程爱好者一定灵活掌握,不要死记硬背。

第三四章的选择结构程序设计和循环结构设计说我们这学期所学内容的重点。在这里,学者结构程序设计比较简单,我们就不多说了,主要谈一下循结构环程序设计。

学C语言有感

第4页

循环结构可以减少源程序重复书写的工作量,用来描述重复执行某段算法的问题,这是程序设计中最能发挥计算机特长的程序结构,C语言中提供四种循环,即goto循环、while循环、do –while循环和for循环。四种循环可以用来处理同一问题,一般情况下它们可以互相代替换,但一般不提昌用goto循环,所以下面我们重点讲解另外的三种循环。

用while和do—while循环时,循环变量的初始化的操作应在循环体之前,而for循环是在语句1中进行的;while 循环和for循环都是先判断表达式,后执行循环体,而do—while循环是先执行循环体后判断表达式,也就是说do—while的循环体最少被执行一次,而while 循环和for就不一定了。这三种循环都可以用break语句跳出循环,用continue语句结束本次循环,而goto语句与if构成的循环,不能用break和 continue语句进行控制。这三种结构并不是彼此孤立的,在循环中可能出现分支、顺序结构,分支中也可能出现循环、顺序结构而把循环、分支看成一个语句,它又是构成顺序结构的一个元素,因此这三种结构相互结合,就能实现各种算法,设计出解题程序,但若是很大的题目,这样编出的程序往往很长,重复结构多,并且可阅读性差,因此我们常将C程序设计成模块化结构。

二、C语言学习的重点、难点

针对我个人而言,在C语言学习过程,学习C语言的重点,难点,以及易出错的地方主要有以下几个方面: 如果对几个变量赋予同一个初值,应写成: int a=3,b=3,c=3;表示a、b、c的初值都是3。不能写成: int a=b=c=3;2 强制类型转换其一般形式为(类型名)(表达式)表达式应该用括号括起来。如(int)(x+y)表示将x+y的值转换成整形如果写成(int)x+y则表示将x转换成整形,然后与y相加。使用scanf函数注意的问题: ①“格式控制”后面应当是变量地址,而不应是变量名。如 scanf(“%d”,a)是不对的,应改为scanf(“%d”,&a);②scanf函数格式控制最后面不能有n否则将没有结果输出如scanf(“%dn”,&a);是不对的。③输入数据时不能规定精度,如scanf(“%7.2f”),&a);是不合法的 ④如果在%后有一个“*”附加说明符,表示跳过它指定的列数。

学C语言有感

第5页

三、学习c语言的体会

在经过了一个学期的学习之后,对于学习c语言心得体会也总结了一下:

1、既然是一门语言,他就汉语,英语一样,都有自己的语法规则,学习一门语言,就是要按照它的语法来编程。C语言的语法部分是学好C语言的基础,只有学好了这些语法,才会写程序,看程序。所以对一个初学者来说,加深对课堂讲授内容的理解,要扎实地熟悉每一个语法,并能根据这些语法来编程。

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

3、学习c语言不能停留在学习它的语法规则,而是利用学到的知识编写c语言程序,解决实际问题。即把c语言作为工具,描述解决实际问题的步骤,由计算机帮助我们解题。只有通过上机才能检验自己是否掌握c语言、自己编写的程序是否能够正确地解题。学习C语言是没有什么捷径的,打好基础,做好每章的练习才是关键。尤其是书本里的习题,不能因为简单就不去实践,学习C语言,乃至于学习所有的电脑知识都是一样的,实践练习永远处于最为重要的地位,须知电脑是要实际操作的,对于C语言,更是要是把这个程序自己编出来并且运行成功,知识点才记得最为深刻。

通过上机实验来验证自己编制的程序是否正确,恐怕是大多数同学在完成老师作业时的心态。但是在程序设计领域里这是一定要克服的传统的、错误的想法。因为在这种思想支配下,可能你会想办法去“掩盖”程序中的错误,而不是尽可能多地发现程序中存在的问题。自己编好程序上机调试运行时,可能有很多你想不到的情况发生,通过解决这些问题,可以逐步提高自己对c语言的理解和程序开发能力。学习c语言更为重要的是掌握编程的思想,如何用简捷的方法解决一个问题。同样做一个循环问题,可能有人要做300次循环,而有的人要做100次,这就是差距。平时,我们学习的时候要注意掌握每个概念,当然理论的学习是离不开实践的,尤其是c语言,需要你编写大量的程序,最初可以学着别人的程序打,慢慢就应该独立出来,把自己的想法用c语言描述出来,这是一件十分快乐的事情。建议初学者不要看高级编程,先勤写代码、多看代码、培

学C语言有感

第6页

养风格、熟悉语法、最关键的还是把握思想。当你能够信手拈来的时候,你的c语言才可以说学会了。一定要养成自己独立写完一个程序的能力,这样可以有一种成就感。不断培养这种成就感,循序渐进,进步是自然的事情。

四、总结

学习c语言,既是件有趣的事情,又是件艰苦的事情。说它有趣,是因为从中你能得到快乐,能使你的计算机整体水平上升一大步。说它艰苦,是因为学习它的过程比起学习其他计算机知识,要难得多

C语言只是一门计算机语言,说到底就是一种工具。它的用处就是可以让你用它编出能够运行的程序来,而这些程序可以实现某些人需要的功能。人通过学习c语言也可以更加深入的了解计算机,所以很多人都把c语言作为计算机入门的第一门语言来学习,因为他学习起来相对简单一些。至于实际的意义,无非是让你多学会一门技能,让你更加深入对计算机的了解,为学习其他计算机语言打下好的基础。

学习最好抱着一种踏踏实实的心态,老是想着有什么实际的好处并不会促进我们的学习,因为知识对人的影响是潜移默化的,静下心来学习吧,我相信我们会有收获的!而且如果你真的用心学习,会发现学起来越来越有意思,也会给你带来无穷的乐趣的!

学C语言有感

第7页

参考文献:

[1] 3 沈其益等编著,棉花病害——基础理论与防治,北京:科学出版社,1992.7 [2] 3 沈其益、张三等编著,棉花病害——基础理论与防治,北京:科学出版社,1992.7。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。参考文献(不少于10篇,中文参考文献不少于7篇,英文不少于3篇)

学C语言有感

第8页

学C语言有感

6.C语言体会 篇六

学习了也快一星期的C语言基础了……有一些自己的体会:

一:虽然以前学过一段C++,可是以前学习毕竟大多多是在看书,对真正的上级编程练得并不是太多……经过这几天的练习,我才发现原来实际编程并不是那么的轻松……以前以为自己懂的,其实不然;很多时候都有一种突然用到的时候才发现没掌握的感觉……让我充分的感到‚多练,勤练‛的重要性……

二:C语言编程对格式的要求非常严格……以前我对这个问题还没有充分的认识……知道现在我才发现格式规范对我们的重要性。一个好的程序格式不仅方便自己检查程序,也方便别人检查……而且通过编程的过程我发现有些时候编程发生错误,就是因为格式不规范而出错……由此,格式规范的重要性可见一斑……

三:刚开始上课时,朱老师就要求我们大家要互帮互助……通过大家之间的交流不断学习,这是非常重要的!大家之间的讨论,可以帮助我们很好的解决不懂或不太清楚的问题,并且印象更为深刻……每次,大家在一起解决一个问题后都会有一种很欣喜的感觉……让我们体会到了学习的乐趣……

以下是我这一段时间遇到的一些实际问题:

1:在用‚scanf‛,要特别注意‚%‛后跟的数据类型,有的时候经常会出错;还有就是‚scanf‛后‚&‛符号会出现忘加的情况,不过要注意的就是其后就是表示地址是不用加‚&‛,要灵活应用……还有就是输入时‚n‛的加否有时也会使我们执行时出现错误,一定要有清晰的理解……

2:对算法的不熟悉……一些常用简单算法;例如,最大值,排序,表示‚个,十,百,千位‛等还不能信手拈来…… 3:赋值‚=‛和判断‚==‛之间的区别,在使用时一定不要混淆,这从他们的字面实际可以直接地理解……

4:在学习函数时,要灵活的运用返回值‚return‛,对程序的精简度和可读度有很大提高……

5:在使用‚switch‛语句中,‚case‛后整型常量是字符时一定要加‘’,否则会发生错误……

6:‚break‛是跳出循环而不是跳出函数体,这点要注意,例如:if(select==0)break;这样是不对的,这就要求我们理解要透彻……

待解决问题:函数的引用传递还有一些不明白的地方……

7.c语言开发 篇七

1.1 背景

生命游戏 (Game of Life) 是英国数学家约翰·何顿·康威在1970年发明的一个数学游戏。该游戏最先在《科学美国人》杂志上被提出。生命游戏是一个零玩家游戏, 其原理是细胞自动机。

1.2 游戏规则

1) 当一个细胞周围的8个格子里正好有3个细胞生存, 则该细胞也能生存 (假如该细胞原来死亡, 现在就能生存, 假如该细胞原来生存, 现在继续生存) 。

2) 当一个细胞周围的8个格子里正好有2个细胞生存, 则该细胞保持不变 (假如该细胞原来死亡, 现在继续死亡, 假如该细胞原来生存, 现在继续生存) 。

3) 其余情况, 该细胞皆死亡。

1.3 指导思想与设计方法

系统模块由以下几个部分构成:核心算法与Ncurses图形化界面。其中核心算法部分包含了初始化, 更新状态, 计算存活邻居数目, 输出, 执行这五大模块。当程序运行时, 用户通过选择一种生命游戏的模式, 从而开始游戏。系统通过核心算法的计算检测每一个位置的状态, 之后在重新刷新时, 更新细胞的状态。

2. 关键模块设计

2.1 初始化模块的设计

初始化模块预先设置了6种初始模式, 用户可以选择其中的某一种模式开始模拟生命生长的过程。初始化模块按照选择的某一种模式设置初始存活的细胞, 其余的细胞皆设置为死亡状态。初始化模块主要通过initiate函数实现。

2.2 计算存活邻居模块的设计

该模块中, 对于每一个细胞, 系统计算出其周围8个细胞的状态, 并把统计出的状态存入cell类型的结构体中。其中cell结构体是由以下几部分构成:当前位置的横坐标, 纵坐标, 判断细胞是否存活的标志, 判断细胞下一时刻是否存活的标志, 以及该细胞周围的存活细胞个数。该模块通过实现count_neighbours函数实现。

2.3 更新状态模块的设计

该模块中, 当系统下一个时间点刷新界面时, 系统通过查看cell结构体内的邻居的状态来决定当前细胞是否存活, 并更新当前细胞的状态。该模块通过实现get_new_state函数实现。

2.4 输出模块的设计

输出模块主要是利用ncurses图形库进行绘制图形。该模块通过实现print函数实现。

2.5 执行模块的设计

执行模块是系统的重要组成部分, 该模块通过调用其他模块实现算法。该模块通过实现execute函数实现。

3. 图形化的实现

3.1 Ncurses图形库介绍

Ncurses是开源的图形库, 遵循GNU协议, 最早由美国伯克利大学的两人编写, 进行一个游戏的图形界面显示。之后贝尔实验室的工作人员又在此基础上重写了该图形库。Ncurses被广泛地运用在Linux图形编程。著名的Linux下的浏览器w3w就是采用ncurses图形库编写。另外, 在Windows环境中也有类似的图形库pcurses, 同样也是由贝尔实验室开发。

3.2 应用Ncurses

在该系统中, ncurses被运用来创建系统的图形界面, 包括供用户选择的选项, 可以切换的面板, 菜单项目, 和输出字符串。

3.2 关键函数说明

init_menu函数运用于初始化菜单, 即显示设置的几种模式以供用户选择模拟。于此对应的是clear_menu函数, 当程序需要销毁菜单时, 该函数即被调用。init_wins函数用于初始化窗口, 在本系统中, 由两个窗口, 分别是用户选择模式的窗口和模拟过程的窗口, 正如图2所示。在Ncurses中, 窗口的建立是通过调用newwin方法实现的。窗口的显示出了需要调用init_wins外还需要调用win_show函数, 该函数负责显示已经创建好的窗口。

在程序运行结束时, 需要调用clear_menu和endwin来清除菜单和窗口。

4. 总结

本文就一经典的数学游戏问题提出了程序的解决方案, 从构建模型到具体实现, 该系统成功地根据几个典型的模型, 模拟了细胞的发展变化。在技术方面, 本系统可运行在Linux系统中, 采用C语言编写程序, 运用Ncurses图形库实现可视化。

参考文献

[1]Programmer's guide to NCurses, Dan Gookin

8.c语言开发 篇八

关键词:记忆法;C程序设计语言;口诀记忆

中图分类号:H319文献标识码:A文章编号:1671-864X(2016)08-0190-01

计算机C语言具有设计特性、高效性、可移植性、灵活性、强大的功能等优势,学好C语言有非常重要的意义[1]。但由于初学者缺少先验知识,该课程学习难度大,知识掌握较困难。本文采用“口诀记忆法”,将一些较为复杂和零散的知识点进行编写串联,对促进学习者有效学习的发生,提供了一种较好的选择。

该课程新增知识点较少,教材内容变化不大,通过以下四个步骤(如图1),即可完成编写过程,后续只需在教材章节的基础上对知识点上进行细化。

一、分析环节

分析环节一般分为两个步骤,第一是对学习者的分析,第二是对知识点的分析。分析学习者应该着重分析学习者的一般特征、入门能力和学习风格。教师可以通过查看学生以前的学习成绩记录、直接向学生提问、与学生交谈、与教师交谈、标准化测试、教师自己出题等方式来了解教学对象的特征和入门能力[2]。学习风格可以选择问卷或量表进行测量。在此基础上,确定要进行记忆的重难点。教学者应重点关注那些理解力和思维能力较弱,但容易调动积极性的学习者,进行重点的教学辅导。

对于知识点的分析,一般应结合教材目录、前人总结、课后习题、题库试题等方面进行。以《第二章C程序设计的初步知识》[3]章节为例,首先借助教材对知识点进行初步细分。由目录可知,该章节包括“简单的C语言程序的格式”、“标识符、常量和变量”、“数据类型”、“算术表达式”、“赋值表达式”、“自加、自减运算符和逗号运算符”等小节。其次是对每小节具体知识点进行分析,教材一般都提供了课后习题,这些习题是专家教师经过长期实践总结出的,具有一定的代表性。教学者可以将其中一部分作为要点暂时列出。最后在结合对学习者分析的基础上,进一步筛选出要点知识,即编写知识点。

二、选择记忆方式

对于编写知识点,可以采用口诀记忆可以选择谐音、简化、对偶和综合等方式进行编写。谐音记忆就是把需要记忆的教学难点内容跟日常生活中的谐音结合起来,采用押韵、联想等方式进行记忆;简化是将复杂的知识点,突出重点后进行选择性的简化;对偶是用对称的字句加强语言的效果,但一般情况下在记忆法中,较难达到完整的对偶,只要求字数大概一致即可;综合的方式是指没有固定的格式,可以将几种方式结合运用(如表1所示)。初步完成编写的记忆法往往较为粗陋,还会存在混淆概念或知识点的可能,教学者需要在不断实践的基础上进行修改,同时最好配有口诀的解析说明,方便学习者理解记忆,避免产生歧义。

三、学习者参与编写

对编写的口诀而言,学习者参与编写,可以发挥群体智慧,逐步完善其解释和记忆功能。对学习者自身而言,积极参与会提高学习效果[2]。对教学者而言,可以减轻教学者编写负担。教学者可以定期组织学习者展示上交记忆法成果。

四、评价反馈与修改

评价反馈与修改在整个记忆法的编写过程中都在不断进行,包括判断学习者分析是否准确、对知识点的分析是否适当、对记忆方式是否有改进、对学习者学习和编写过程及结果是否有效。在此过程中,记录调查结果、原始口诀和改进口诀及其解释说明、学习者学习表现等都会为评价过程提供重要的数据依据。同时鼓励并组织学习者对学习中的重难点和学习中出现的问题进行反馈;最后,教学者要把握谨慎修改,修改必须记录说明的原则,逐步修改和完善记忆法。

参考文献:

[1]普拉塔.C Primer Plus(第五版)中文版[M].人民邮电出版社,2005.

[2]斯马尔迪诺.教学技术与媒体[M].高等教育出版社,2008.

[3]教育部考试中心.全国计算机等级考试二级教程——C语言程序设计[M].2010年版.北京:高等教育出版社,2010.

9.c语言总结 篇九

1.求一位数组a中(或若干整数)所有元素的平均值。

(注意数组作函数参数的情况)

2.求一位数组a中的最大/最小元素及下标。(例如p59,p85)

求二维数组a中的最小值/最大值。(例如p61)

3.判断m是否为素数。(例如课本p106)

求一位数组a中素数(非素数)之和/素数(非素数)个数。

将[m,n]之间的所有素数存放到以为数组a中,并输出这些素数。(例如p62)

4.求一位数组a中值为奇数(偶数)的元素的平均值(总和)。

5.输入一个百分制成绩,打印出五级积分成绩。考试成绩在90分或90分以上为优秀,80~89为良好,70~79为中等,60~69为及格,低于60分为不及格。(例如p39)

6.求给定正整数n的阶乘。(例如p75)

求)(例如课本p111)n!(即求:1!+2!+3!+…..+20!

n=120

7.打印输出以下图形(图为每两个“*”之间有一个空格)(例如p54)

*

* * *

* * * * *

* * * * * * *

打印九九乘法表的一部分。(例如课本p104)

8.输出100~200之间(或以为数组a中)既不能杯3整除也不能被7整除的整数之和,并统计这些整数的个数。(例如p47)(注意数组作函数参数的情况)

9.求N*N矩阵的主对角线/副对角线元素的和并输出。(例如p71)

10.求字符串中大写字母/小写字母(空格和非空格的)个数并输出。(例如p71)

11.求字符串的长度并输出。(例如p71)

12.从键盘上输入两个正整数x,y,求它们的最大公约数(最小公倍数)。(例如p45)

13.按下面的公式求sum的值。(例如p51,p82)

Sum=1-2+3-4+5-6+……+99-100 1111+++......234100

11111......S=1+ 3*35*57*79*9n*nSum=1+

14.求指定字符在字符串中出现的次数并输出。(例如p72)

求指定字符在字符串中第一次出现的位置(该字符的下标)并输出。

15.判断m是否为素数。(例如课本p106)

判断m~n中素数(非素数)之和/素数(非素数)的个数。

16.计算1到M(M为偶数)之间的奇数之和及偶数之和。(例如p44)

17.求Cnmm!(例如课本p154)n!*(mn)!

18.打印出1至1000中满足其个位数字的立方等于其本身的所有整数。

19.计算正整数num的各位上的数字之积。(例如课本p117)

10.C语言实习 篇十

姓名:黄方成班级:天目计算机0

4一、课程设计题目:

《公司职工管理系统》

二、程序主要功能:

实现基本的学生的数据管理,如:创建新数据文件、添加数据记录、查找数据记录、删除数据记录、显示所有的数据记录,以及数据的排序等等。(分别使用了shuru()、insert()、found()、delete()、inputs()、list()、putin()、print()、resave()等函数)。其中数据的输入、插入、查找、数据的删除,输入又可通过不同的方式按姓名查找等进行操作。

三、函数实现说明:

主要函数:

1、shuru()

该函数主要用来创建新数据文件,当第一次使用该程序或者原创建的文件的内容无效,需建立一个新的文件的时候,可通过该函数来实现。

该函数实现过程中首先定义了两个变量i,初始化为0,用来存储学生的数量,它们均随着输入记录的增加而增大(每输入一条增加1),用变量i来抽象表示其中的任何一条记录,对该程序来讲即为通讯录中包含的学生人数。之后需使用户输入数据,这就需要设计时先在屏幕上显示有关输入数据性质提示信息(如学生号、姓名、电话、入学分数等等)。输入完一条记录进行保存。从而使数据在文件中得到保存,另外在输入姓名为空时,函数认为添加已经结束,自动关闭函数的输入记录功能,跳出该功能。

2、insert()

该函数可对文件的数据进行插入。在进行添加的时候需要首先打开原来的数据文件,在该函数中调用了load()函数将数据文件打开。再调用shuru()函数文件之后同shuru()中一样的形式输入数据,输入完之后进行保存,对插入的 1

数据进行保存前要先确定插入的地点,insert()函数在设计时将插入点放在了文件末尾,即将添加的数据加到文件的最后。Insert()函数与创建新数据文件的shuru()函数除保存及被功能上的使用时间不同外,其他功能基本相同。

3、found()

该函数调用了find()这个函数来实现不同方式的查找。具体使用什么方式查找需由用户自己选择,于是使用switch语句先设计一个选择过程。当选择按名字查找方式,就启用find()函数查找,过程为先要求用户输入所要查找的数据文件的名字(例如是毕业学校的文件保存名字),然后再将这个名字与以存数据名字逐个进行比较,当找到数据的时候就调用printin()函数将该数据的所有信息打印出来,否则显示“没有找到这个姓名!”以示没有找到。

4、delete()

该函数用来删除不需要的数据记录。实现过程为:首先输入需要删除的记录的名字,将该数据逐一与以存文件中的学号进行比较,在比较过程中定义了若干个指针变量*node,*before,*pt,并初始化为*before=NULL,接着就是对该记录的删除操作,将此记录及其后的每一条记录逐一用它们之后的那一条记录替换,即实现了对数据的删除。并且还调用了函数load(),用来对文件数据的删除。若没有找到需要删除的数据,before的值任为1,则屏幕显示“没有该学生的记录!”。在删除记录后需对操作结果进行保存,最后根据用户的选择来决定是否继续删除,为空时是离开。

5、print()

使用该函数可以显示所有的操作员自己输入的所有的学生数据记录。它只用到了简单的printf(“”)语句,但是它用了含有++i的变量来输出下一个记录,每打开一个记录就自己增加1。当需先打开数据文件时,读取其中的数据记录,然后将这些记录按一定的形式打印在屏幕上,为是打印的效果整齐、美观,则要对其输出的方式、格式进行设计,采用了t的对齐方式。

6、putin()

该函数可对数据文件中数据具体的存放顺序进行操作,主要是用来实现排序功能。设计的此程序对数据的存放顺序只按照姓名的长度进行排列。该功能用循环实现,并且包含了许多的字符函数,包括在头文件#include中。从数

据文件的开头起,将第一条记录的姓名与之后的每一条记录的姓名的字符长度进行比较,若前者大于后者,则交换它们的位置,这一循环完毕后,再类似对第二条、第三条„„直到倒数第二条为止进行比较,即实现了第二次循环。两次循环比较完之后便将数据文件中的数据按照姓名长度的顺序,从短到长排列起来。最后保存操作结果。

7、main()

一个程序主函数不能少。当以上的函数均编完之后,要实现各个功能操作的连接,还必须有主函数将它们联系起来,这样才能达到理想的结果。对以上函数的连接,此程序采用了switch语句,格式清晰、容易接受。至此班级通讯录管理的基本功能便基本实现。

8、在其他方面对界面的美观进行了改动,采用了许多符号的编排,和大量的对齐方式。

三、调试分析:

程序调试是指对程序的查错和排错。

为了便于查错、阅读,在设计该程序的时候我采用了结构化程序方法编辑,添加了尽可能多的注释,这为我后来的调试过程带来了很多方便。

为了方便,我先大量的阅读了许多优秀程序员的成功例子,觉得在使用变量时采用大量的指针形式是使功能能大量的进行,并且使程序运行的很快。

所以就写了一份草稿,进行对低级错误的修改,在修改过程中,发现很多都是因为在写完一个语句时,忘了加上分号(;),在用到scanf时,忘了写上取地址(&)符号。过分重视分号的重要性而在for、if、while语句中画蛇添足加分号;在使用文件的时候忘记将文件先打开,对打开的方式与使用的情况不太注意而造成不匹配;还有漏掉形参的定义是值不能传递等等。这些语法错误有信息框的提示一般是能够排除的。

等低级错误。

经过仔细检查之后进行上机调试。进行编译,如果在编译和连接过程中发现错误,屏幕上显示了出错信息,根据提示找到出错的位置,加以改正,再进行编译„„如此反复,直到顺利通过编译和连接为止。在本次实习过程中碰到的编译、连接的错误主要有:

1、定义变量时;

变量不容易联系起来,经常会写错变量名,但是在错误信息的提示下一般还是很容易找到。但是在写各个函数时,发现一个变量名,只要不是全局变量就可以无数次定义,只要分开在不同的函数中就可以了。不过需要注意的是在定义的时候有些函数使用同样的变量名而表示不同的作用,因而使用要很小心,定义及定义的位置要特别留意。因此,我都才用node做为一个结构体的指针变量。采用llink为头指针,从而减少这样的变量名过多出现的错误,结果引起的那些错误解决了。

在编写程序时要安静,才不会出现低级错误。

2、语法错误;

语法错误在通过书本参考下能够修改,并且在上机的错误提示中得到修改,但是由于书本是C语言。不是C++的,所以在使用时要注意在主函数和一些定义变量跟声明函数时有些不同,这不是语法的错误,而是作为一个程序员必须要注意到的,要体会两种语言的区别,由于平时看书不仔细、没有经过仔细的思考造成的。如没有注意具体数据使用是有一定的范围限定;

在本次调试过程中我还碰到了一些以前上机过程中从未碰到过的错误。逻辑上的错误机器不易检查出来,这时需要对数据结果进行分析。这种错误的查找是最难的,需要编程序的人有相当的耐心和细心去把问题找出来。这也是本次程序编辑过程中碰到的最大的难题。因此我使用的是一个一个函数的检查,并通过调试修改。

在调试时,碰到了许多平时没有的错误,如:开辟内存时,忘了加*号,使得检查的时候认为是指针的错误,还有是在类型转换时,发现在类型转换为时要加上teperdef,并且在调试时在学习时的有个强制转换比teperdef更有用,如(strect llist*)llink与teperdef llist struct nodeteperdefnode *llink,以上两句是一样的。

四、心得体会:

编程看起来似乎是一件很枯燥、乏味的事情,但是经历了这次大程序的编辑之后,发现其实里面还是充满乐趣的,一旦真的专研下去什么事情都可以放下,来认真研究。当这个自己编写的程序在计算机上实现自己想要的功能时,很有成就感,发现了许多原来的错误,使自己的水平上升了一个大台阶。

这个程序的成功对以后要学习的数据结构就更有信心了。

11.C语言的快乐教学之旅 篇十一

【关键词】C语言 快乐 教学模式

【中图分类号】TP3【文献标识码】A 【文章编号】2095-3089(2013)01-0156-01

“C语言程序设计”始终是高等学校的一门基础的计算机课程,程序设计教学是计算机教学的核心,它最能训练学生的思维品质,提高学生的信息处理能力。它注重由设计算法到书写程序并进行调试的整个过程,相对于其他基础课程中比较直观的基本操作和基础概念,它显得抽象、复杂,初学时编程较易出错、调试也不易掌握,很多学生因此失去了学习的兴趣,也缺乏学好的信心。即使有小部分学生学习成绩还可以,但似乎也未体验到编程的乐趣所在,没有分析问题,解决问题的冲动,更别说得出较优算法的成就感。

为何学生不能快乐地学习程序设计?再试问又有多少教师能快乐地教程序设计,在教学过程中与学生一起追寻程序设计的美?倘若教师不能快乐地教,奈何又怪学生不能快乐地学,这对于较难课程的教学提出了更高的要求,讲解清楚还不行,得快乐教学!让教师和学生同享教学之乐。

大家都知道兴趣是求知的内在动力,若能激发起学生的兴趣, 学习就会积极主动, 学得轻松而有成效。学生只要对所学课程有浓厚的兴趣,就会积极主动并充分发挥其主观能动性去思考、设计、去完成学习任务。目前游戏在青少年的娱乐生活中占据了重要位置,特别是眼下智能手机的免费体验和推广,使得学生们酷爱手机游戏,不可否认游戏对青少年有着巨大的吸引力。如果能将这种兴趣引导到对知识的学习中来,那么对于我们的教育事业将十分有益。

一、C语言快乐教学之旅第一部分:作品欣赏

演示历届学生作品,让学生明确学习C语言后,自己也能制作好玩的游戏,更大程度上提高了学生对本门课程的学习兴趣和热情。若能设计好的游戏,也就能灵活使用C语言,自然也能把C语言应用到专业领域。在作品欣赏的同时介绍一些游戏实现将要解决的共性问题,这些问题又是如何用C语言加以实现的。如俄罗斯方块游戏:每一个小方块就是一个结构体的实例,四个小方块组成的各种形状及变化即是结构体数组的应用。方块的移动方向可通过键盘控制,这即是选择控制语句的应用。当图形中方块堆满一行时,将会进行消行操作,此处则是使用循环语句来实现,再譬如常见的游戏退出操作,若中途退出.都会提示是否保存游戏状态,而在下一次游戏的时候会再次载入玩家的游戏进度,而这运用的是文件的写入与读取等等。如此分析,学生自觉凭己之力也可实现,自是信心满满。

二、C语言快乐教学之旅的第二部分:课堂游戏教学模式

以一個个生动有趣的、学生喜欢的游戏贯穿整个教学过程,把C语言的知识融入一个个新颖、好玩、简单的小游戏中,使学生感觉学习就像玩游戏,打消畏难情绪,提高学习动力、改善课堂气氛。课后还设计小游戏任务来激发学生的动手和自学能力,通过上机实验来培养学生综合应用C语言的能力。教学过程中及课后所选的游戏要注重以下几条原则:具有较强的趣味性,具有较成熟的游戏规则,具有较强的竞争性且输赢结果明确,参赛者有较大的发挥主观能力的空间。像打鱼还是晒网、抓交通肇事犯、人机猜数游戏、汉诺塔、贪吃蛇、黑白棋、俄罗斯方块、五子棋、扫地雷、买票找零。。。。。。,在组织游戏教学时,教师最好只提示一下思考方向,不给出题目的解决方法和思路,可让学生通过自己的能力来解决问题。学生们的学习热情告诉我们,轻松有趣的环境更有利于学习,凡感兴趣的东西都不再是负担。学生们会主动通过互联网和图书馆去查阅资料,相互讨论后制定好设计方案,再完成最后的设计,在此过程中享受到了学习的乐趣,在不断的修改改进中,体验到了编程之美,这对学生的能力发展帮助很大,一是使学过的内容得到了应用化的训练;二是没有学过的内容能通过看书,查资料,上网得到解决,学习不再是灌输式。学生在学习的过程中也慢慢有了成就感和自信心。我认为这种学习的快乐感觉和分析问题,解决问题的能力和乐趣正是当代大学教育应当注重培养的。

三、C语言快乐教学之旅的第三部分:分组教学,组内协作,组间竞争

这几年的教学经验告诉我们这个分组的形式最好不要随机分,教师可在教学两周后,通过观察,可按男生、女生尽量搭配以及学生能力强弱合理分布的原则来进行分组,最好由小组成员推荐产生小组负责人,该负责人要负责整个任务,从问题的分析和规划,到人员的工作分配,再到综合测试,以及最后的总结汇报。小组协作学习很重要,它贯穿整个课堂教学及课后自学,课堂上可设计些问题,让学生们以小组的形式讨论,教师再按组提问,根据小组的表现,以表扬一个小组的形式达到鼓励大多数学生的目的。课后教师分别布置小组作业和个人作业,每堂课都应分别对小组和个人的学习情况进行抽查,以督促懒惰学生的学习。我们发现小组成员之间的协作学习,便于形成宽松、民主、和谐的教学氛围,能减少学生的心理压力,可得到同伴的鼓励,亦可感受到成功的喜悦,加强了集体荣誉感及沟通协调能力,共同感受C语言编程之美。这种组内合作,组间竞争的形式能充分发挥学生的学习能动性,通过学生之间的自主学习,学生间、师生间的互助活动,从而促进全体学生主动发展,在教与学的快乐体验中完成学习任务和教学任务。

经过一段时间的学习,学生们学习C语言的兴趣愈来愈浓厚,团队合作也越来越愉快,设计思路越发严谨、新颖,这些都证明了C语言快乐教学方法取得了成功,让教师和学生同享教学之乐,同享编程之美!

参考文献:

[1]编程之美小组.编程之美-微软技术面试心得[M].北京:电子工业出版社 ,2008

12.c语言开发 篇十二

关键词:传统教学模式,MOOC,应用

《C语言程序设计》是一门典型的计算机程序设计类课程, 大多数理工类专业都将C语言作为基础课程, 其受众面大, 实用性强。通过该课程的学习, 使学生熟练掌握C语言程序设计的基本语法, 程序设计的基本方法和调试的常用方法。能够利用C语言编制程序解决实际问题, 为后续专业课程的学习打下坚实的基础。我院的《C语言程序设计》安排在大学一年级开设, 学生刚完成从高中到大学的转变, 在学习过程中感觉C语言很难理解, 学生在学习时普遍感到困难大, 部分学生出现听不懂、学不会的现象, 久而久之, 丧失对C语言的学习热情。目前, 《C语言程序设计》的教学过程中, 教师普遍反映学时少, 内容多, 理论课教学难度大, 上机课辅导压力大。针对《C语言程序设计》课程中出现的学生难学, 教师难教的问题, 开展了基于MOOC的C语言程序设计在线开发内化教学模式的研究, 以求提高课程教学效果, 提升学生程序设计能力。

1 传统教学模式及其缺点

传统的C语言教学分为理论课堂讲授和上机实验两个部分。理论课堂以教师讲授为主, 上机实验课上学生根据教师的要求完成课程实验。

1.1 由于C语言的内容较多, 如果学生没有进行课前预习, 课堂上很难跟上教学进度。教师必须在有限的时间内完成教学内容, 这给学生和老师都带来很大的挑战。C语言课程的学习是一个循序渐进的过程, 如果前面的知识没有掌握, 会影响后面的知识掌握。一段时间的课程教学积累下来, 学生会发现不懂的内容越来越多, 慢慢失去了学习动力和信心。

1.2 上机实验部分, 由于学生众多, 有时一个学生就有多个问题, 在有限的上机实验学时中, 难以解决所有学生的所有问题, 难以针对学生的差异性进行辅导, 学生的实际动手能力也参差不齐, 有的学生感觉难以动手写程序。

1.3 传统的C语言教学存在“重理论、轻实践”, “重语法, 轻算法”的问题, 面对复杂繁琐的语法规则和理论, 学生普遍感到困难重重, 迷失在语法和理论中, 实际编程能力差。

2 MOOC及其特点

MOOC (Massive Open Online Courses) , 即大规模在线开放课程, 是一种全新的网络教学模式, MOOC具有以下特点:

2.1 多样性:

MOOC平台上的教学资源丰富, 同一门课有多个学校开设的多个版本, 如在中国大学MOOC网站, 截止2016年10月, C语言程序设计有13门课程。开设这些MOOC课程的高校有浙江大学、哈尔滨工业大学、北京理工大学、中国农业大学、宁波城市职业技术学院等。这些课程各有特点, 教学方法有不同, 教学内容上有侧重, 教学重点有差异, 这些课程可以满足不同类型学生的需求, 学生可以选取合适自己的课程进行学习。

2.2 开放性:

目前, MOOC学习网站对学生免费开放, 只需要注册, 即可免费学习这些在线资源。

2.3 自主性:

MOOC课程的学习不受时间和空间的限制, 学生可以通过电脑、手机等终端在任何时间和地点进行自主学习, 可以做到随时随地学习, 学习的灵活性和自主性高。当一次学习没有学会时, 可以反复学习, 直至学会为止。

3 开发内化教学模式

武昌理工学院深入开展教学改革, 积极推行开发内化教学模式, 开发内化教学模式改变了传统的满堂灌的教学方法, 采用启迪式教学方法, 通过开启学生的智慧, 发掘学生的潜质、潜能, 激发学生的内在活力和动力, 调动学习的积极性、主动性和创造性, 有效促成学生的内化。开发内化教学模式主要分为教师引导、学生研习、课堂检验、释疑解惑、精讲提升五个环节。学生需要完成预习题、练习题、复习题 (简称三习题) 。通过三习题学会思考、善于思考、勤于思考, 促进内容。教师在教学中要发挥引导作用, 是学生学习的引路人。

4 基于MOOC的在线开发内化教学法在C语言程序教学中的应用

针对传统C语言课程教学中出现的问题, 结合MOOC的多样性、开放性和自主性, 利用在线教育方式, 形成在线开发内化教学法, 并在C语言课程中进行应用和实践, 取得了一定的效果。主要的做法如下:

4.1 设计和优化知识点。

基于MOOC的教学, 打破了传统的一堂课45分钟为一个教学单元的模式, 形成许多细分、独立的小知识点。为突出MOOC优势, 突显知识点, 将C语言课程分成一个个小知识点, 这些知识点的授课时间一般为10分钟左右, 个别复杂的知识点控制在15分钟以内。短小的视频讲解有利于学生集中注意力。在有限的时间内, 将每个问题尽量分割得具体, 便于讲解和理解。

4.2 课前预习。

课前预习是教学的重要环节, 学生在上课之前应自行观看相应的MOOC视频。这些MOOC视频可以是中国大学MOOC等网站提供的视频, 与可以是本校教师根据本校学生情况制作的MOOC视频。在观看MOOC视频时, 完成教师布置的预习题, 通过完成预习题, 对相应的知识进行预习, 对于通过预习暂不能理解的知识, 记录下来, 课堂上老师重点讲解。

4.3 在线学习。

学生根据课前预习的任务, 有计划地完成预习题和MOOC视频的学习, 课程答疑教师每周固定的时间在线答疑, 通过与学生的交流, 实时掌握学生的预习情况及其对知识的掌握情况。

4.4 课堂教授。

在课堂教授前, 先进行学生分组讨论, 通过讨论解决问题, 将讨论的结果和尚未解决的问题, 提交给老师。教师根据预习和讨论的情况, 精讲重点和难点, 通过提问、现场编制程序等方式检查学生的完成情况。教师通过具体的实例演示程序的编制、调试过程, 精选程序设计案例进行分析, 布置适量的练习题供学生训练。

4.5 课后交流。

通过MOOC等互动交互平台, 学生和教师在互动交互平台上学习、发言、探讨。学生可以对于上课没有解决的问题发起讨论, 进行研讨。老师和同学对该问题发言、提供解决方案, 建立基于互动交互平台的学习小组, 共同学习。在互动交互平台上提供一定数量的复习题, 供学习熟练掌握相应的知识。复习题主要是综合编程题, 可以以小组为单位协同完成, 也可以独立完成, 将完成的编程题发布在互动交互平台上, 通过学生间的相互学习, 激发学习兴趣, 提高学习效果。

4.6 课程测试。

改变以往期末考试一考定终身的方式, 重视对学习过程的评价, 课程测试注重学习过程, 平时成绩参考在线学习时长、讨论参与度、在线测试成绩、互动交互平台发帖、回帖数量和质量等综合评定。期末考试主要采用在线考试形式。结合平时成绩和期末考试成绩综合评定学生成绩。

结束语

MOOC是对传统教学模式的重要补充, 基于MOOC的在线开发教学模式充分利用MOOC等教学形式的优势, 改变了传统教学中的师生地位, 强化了“学生为主体”, 通过教师引导、学生自主学习, 借助在线教育平台, 线上教学与线下教学有机结合, 提高了学习效率和学习效果。在C语言程序设计的教学中, 充分应用基于MOOC的在线开发内化教学模式, 解决了学生难学, 教师难教的问题, 激发了学生的学习兴趣, 提高了学生的学习成绩。

参考文献

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

[2]孙承杰, 文齐.MOOC对提升教学效果的作用[J].计算机教育, 2014 (21) .

13.C语言课程设计 篇十三

让自己所学的知识应用于实际生活中,理论联系生活,学以致用,我们将更好服务于民。我们是新一代的年轻人,要想将来在社会上更好的立足,就必须让自己强大起来,努力的学习新东西,了解新事物,跟上时代的步伐,这样我们才能与时俱进,不被社会所淘汰。C语言在大学里是一门很重要的课程,也是一门很实用的课程,学好C语言在当今的信息时代是一个很好的敲门砖。而且,我们是电子信息工程专业的,更应该学好C语言,这对我们以后走向社会有很大的帮助,为我们以后大学毕业去求职提升竞争力。从C语言产生到现在,它已经成为最重要和最流行的编程语言之一。在各种流行编程语言中,都能看到C语言的影子,如Java的语法与C语言基本相同。学习、掌握C语言是每一个计算机技术人员的基本功之一。C语言具有高级语言的强大功能,却又有很多直接操作计算机硬件的功能(这些都是汇编语言的功能),因此,C语言通常又被称为中级语言。学习和掌握C语言,既可以增进对于计算机底层工作机制的了解,又为进一步学习其他高级语言打下了坚实的基础。需求分析

当今社会是信息社会,谁的信息越快速越准确,谁就会更好的生活在这个社会上,他的人生也将走向成功。信息业正在21世纪扮演着越来越重要的角色,也是中国十二五规划中的重要一环,因此,我们应该努力的去学习好这门课程,力争在以后的生活工作中大展身手。现在的社会日新月异,各种信息在不断的传递交流,谁最先获取了信息谁就会成功。所以,作为我们这类专业的人才,在毕业以后一定会大显身手,实现自己的人生价值。

2.1 课程设计目的

本课程设计为信息类公共课《计算方法与程序设计》配套的课程设计。是该课程的理论学习的延伸。通过本课程设计有助于锻炼综合运用C语言相关知识设

为1;若n大于1,则开始循环运算(见图3.22流程图),直到i小于n不成立时结束循环。在循环运算的过程中,要调用两个函数即函数pit1和函数pit2(见图3.23流程图)。在调用函数pit1和函数pit2中,这两个函数进行相互递归调用。最后将调用函数pit1和pit2的值返回主函数main函数中,再输出高能质子数目t3和低能质子数目t4。

3.1 系统流程图

程序一系统流程图(如图3.11所示):

开始输入nt1=3,t2=1,i=1否n==0否是n==1是否i

3.2主要模块的流程图

程序一模块流程图如图3.21所示:

否i

图3.21流程图

程序二模块流程图如图3.22和图3.23所示:

i=1否i

图3.22流程图

} {t3=3*t1+2*t2;t4=t1+t2;t1=t3;t2=t4;} printf(“n the high=%d the low=%dn”,t3,t4);

程序代码4.1

程序二代码如下所示:

#include “stdio.h” int pit1(int a){ if(a==1)

} int pit2(int b){ if(b==1)

} main(){ int n,i,t3,t4;printf(“n input n”);scanf(“%d”,&n);if(n==0){ return(1);return(pit1(b-1)+pit2(b-1));else return(3);return(3*pit1(a-1)+2*pit2(a-1));else

图5.11 程序二运行结果:如图5.12(程序运行时,当输入时间变量n是3时,输出高能粒子是41,低能粒子是15。)

图5.12

参考文献

[1 ]张福祥.C语言程序设计[M].辽宁大学出版社,2008.[2] 张福祥,王萌.C语言程序设计习题解答与实验实训.沈阳:辽宁大学出版社,2008. [3] 牛莉,刘远军等.计算机等级考试辅导教程[M].北京:中国铁道出版社,2008. [4]李勇帆,谢兵.大学计算机应用教程.北京:中国铁道出版社,2009. [5]田淑清.全国计算机等级考试二级教程.北京:高等教育出版社,2011. [6]杨振山,龚沛曾.大学计算机基础.北京:高等教育出版社,2006. [7]卢湘鸿.信息技术应用基础.北京:高等教育出版社,2004.

致 谢

上一篇:禁毒观后感600字下一篇:高一必修一数学教案