C语言的读书心得(精选9篇)
1.C语言的读书心得 篇一
学习C语言的心得
还依稀记得刚刚涉足于C语言这门课程是在大二下学期。对于这门新的学科,在大一上学期学习VB时已经从任课老师那里有所了解,虽然在我们的等级考试中有要求必须得过VB的等级,但是之前有听过毕业了的学姐学长们说过,真正以后实时用到的还是C语言的比较多一点,所以于是乎我便对VB产生了一种抗体,而对C语言的学习有所期待。。。
起初学习VB时,我对那些所谓的关键字很不是理解,感觉用VB编写的程序代码又复杂又冗长,顿时对之失去了信心。但是随着科技的快速发展,计算机已经取代了人类,更快的改变世界、改变人类生活,它已经成为我们生活中不可缺少的一部分,因此学好计算机则刻不容缓。
在真正学习C语言之前,我已经通过上网搜索以及图书查阅得知关于C语言的一些基本特性,这为我以后的学习打下了结实的基础。以下就是本人通过图书查阅所获得的一些C语言的最基本的特性资料。
C语言是在国内外广泛使用的一种计算机语言,学习使用C语言进行程序设计是计算机工作者的一项基本功。自20世纪90年代以来,C语言在国内迅速普及,不仅为计算机专业工作者所使用,而且为广大计算机应用人员所喜爱和使用。
C语言起初只是为编写UNIX操作系统提供一种工作语言而设计的。后来,C语言多次做了改进,但主要还是在贝尔实验室内部使用。随着UNIX的日益广泛使用,C语言也迅速得到推广。C语言和UNIX可以说是一对孪生兄弟,在发展过程中相辅相成。1978年以后,C语言先后移植到大、中、小、微型计算机上。C语言很快风靡全世界,成为世界上应用最广泛的程序设计高级语言。C语言是在B语言的基础上发展起来的,它是一种计算机高级语言,它具有如下几个主要特点:1)语言简洁、紧凑,使用方便、灵活;2)运算符丰富;3)数据类型丰富;4)C语言是完全模块化和结构化的语言;5)语法限制不太严格,程序设计自由度大;6)C语言允许直接访问物理地址,可以直接对硬件进行操作;7)生成目标代码质量高,程序执行效率高;8)用C语言编写的程序可移植性好。
通过学习与了解如上特点,这便更加坚定了我学习C语言的信念。在学习C
语言的过程中,我发现在编写程序时更加的灵活,更加的简单易懂。用C语言编写的程序代码可实行性更高,更能便于开发应用。
虽然在C语言的学习过程中,有时也曾因为一时想不到或者搞不清楚而苦恼过,但是通过与同学之间的交流学习以及向老师请教和上网百度后,难题毅然很快速的解决。看到在自己苦思冥想中获得的程序能成功实现某一功能时,此时的喜悦之情难以言表。忽然感觉能将书中所学的理论很好的融入到实践中将是多么美好的一件事,这也为我以后的毕业设计及以后的工作打下结实的基础,我将更进一步的学习这门课程,更好的将之运用到实处。
2.C语言的读书心得 篇二
1 汇编语言和C语言的特点
1.1 汇编语言
汇编语言是人们基于初级计算机语言,也就是二进制语言的基础,将原本“0”和“1”组成的二进制字符串,换用较符合人类思维逻辑的符号来表达,比如,用“ADD”代表加法指令,用“ADC”代表加进位的加法指令,用“INC”代表加1指令,以更简明的方式来表达指令要求的符号化计算机语言。
由于符号化表达更符合人类思维逻辑的特征,也更易读易编写,汇编语言比二进制语言更易理解,人们在编程时更容易及时发现错误并修正错误,且后期的软件维护也变得相对简单。根据计算机的硬件系统来编制完成的汇编语言程序,可以将计算机不能识别的汇编语言翻译成计算机可以识别的二进制语言,从而完成信息指令的传输。用汇编语言进行编程时,数值运算比较复杂,数据处理的工作量大而繁琐。但汇编语言的优点在于编程效率高,可以充分发挥计算机硬件系统的功能,程序相对精准简练,软件质量比较高,所以汇编语言依旧是现在进行软件开发的重要工具。
1.2 C语言
C语言是面对过程的程序语言,摆脱了对计算机硬件系统的依赖,移植性比较强,在不同型号的计算机上都已成功移植,应用范围广且数据处理能力强。加上C语言处理数据的灵活性强,在各领域的实际软件应用编程时都普遍采用了C语言,例如单片机软件系统开发、三维图编写、动画编写等。
1.3 混合编程的意义
在进行程序设计时,C语言可以高效地生成目标代码,但是汇编语言生成的目标码质量更高,而且利用汇编语言完成对计算机硬件的特殊操作更快捷准确。利用汇编语言编程时,数据运算较繁琐,但C语言具有强大的库函数,可以高速完成对数据的处理。所以合理地混合使用两种语言进行程序设计,可以有效提高工作效率和工作质量。在混合编程时,C语言的主程序和汇编语言的主程序允许互相调用其子程序,也将汇编子程序插进C语言程序中,同时如何进行参数传递及确定调用关系非常重要,也要考虑到不同功能模块之间的连接问题。运用混合编程技术既可以发挥汇编语言的精确性优势及充分运用计算机硬件的功能,又可以利用C语言强大的数据处理能力,可以有效解决在大型程序设计中遇到的问题[1]。
2 混合编程的注意事项
2.1 注意保护堆栈和寄存器,以完成参数传递
汇编语言程序利用寄存器来完成参数信息的传递,C语言程序利用堆栈传递参数数据给汇编语言程序。C语言程序在调用汇编语言的变量和过程时,按下述的过程输送数据:C语言调用程序将参数按顺序压入堆栈→汇编语言用BP寄存器加上对应的偏移量来存取堆栈中C语言程序传递过来的参数→汇编语言进行程序转换→C语言从堆栈按顺序弹出的参数中获得操作数据。
所以在编程之前,应充分熟悉并掌握所用编程语言的多类别的堆栈的结构、生成和入栈模式。对汇编语言而言,应根据变量和过程的参数个数来选择合适的寄存器。当参数小于或等于4个时,将参数数据按次序一一传送到R0、R1、R2和R3寄存器;当子程序的参数个数大于4个时,将多出的参数数据按照原次序的反方向分别传送到数据栈[2]。
在C语言程序调入使用汇编变量和过程时要注意保护各种重要的寄存器,如DS、BP、SI、DI、AX和DX等,根据需要将数据用PUSH指令压入堆栈来保护,以保证参数的顺畅传递,否则会导致出现失误。
2.2 注意汇编子程序的返回值
返回值通过AX和DX寄存器来传递。少于16位二进制的返回值存放于AX,而32位的返回值中的低16位仍存放于AX,而其余的高16位则存放于DX寄存器中。大于32位(如浮点)的返回值存放于静态变量存储区[3]。
2.3 应统一两种语言的存储模式
汇编语言是使用Model来生成符合用户已选存储模式的段定义。而C语言则有6种存储模式可供选择,所选择的存储模式不同,其定义的代码段就不同。在混合编程时,汇编语言和C语言最好选择统一的存储模式,例如汇编语言选用Model Small模式来适应C语言的Small模式,以确保不同功能模块的准确衔接。
2.4 变量和函数的互相调用时命名方式的约定
在运用C语言进行程序设计的过程中,如需要使用汇编语言程序的过程和变量,汇编语言应加public标识,并在过程和变量名前加下划线,比如public_fun。
而汇编程序在调用C语言程序的函数或者变量时,应在调用部分的代码前添加下划线,并在汇编语言程序的命名时用extern加以说明,其格式分别是:extern_变量名:变量类型或者extern_函数名:函数类型[4]。
3 汇编语言和C语言混合编程方法
在完成功能复杂的软件的设计时,需首先将软件划分成不同的功能模块,每个功能模块以子程序或函数的形式存在,针对每个功能模块的不同特征,合理选用恰当的计算机语言来单独编程,而后将每个模块编译为相应的目标文件,所有文件组合后形成所需命令。
3.1 C语言程序直接插入单独汇编指令
C语言程序可执行汇编语言的ASM指令,故可运用ASM在C语言程序中嵌入所需汇编指令,不同的情况下,嵌入格式不同。
单个语句插入格式为:
“asm汇编语言指令代码”
如语句多,格式应为:
格式要求:(1)必须在对应的汇编程序代码前加入ASM;(2)必须按照C语言的环境要求使用分隔符“;”与注释分界符“/*”和“*/”。
这种混合编程方法虽然简单易行,但是直接插入的模式一旦出现细微偏差,就会影响原来的C语言环境,出现差错。所以此方法适用于需要汇编语言程序为程序实现一些特殊的硬件功能,且汇编程序简短时采用。此方法不适用于嵌入较复杂的汇编程序[5]。
3.2 以C语言为主,插入汇编语言
在运用C语言编程时,如果出现需要用汇编语言编程来实现特定功能的情况,且对应的汇编语言程序较为复杂,需要大量的汇编语言才能实现软件所需功能,则不应选择直接嵌入的方式,而应考虑将这部分软件程序划分为独立的功能模块,用汇编语言独立编制程序代码后,整体插入C程序对应位置。
在C语言主程序调入使用汇编语言的子程序的过程中,必须保证汇编源代码的正确性,才能确保调入使用过程的正确,最终顺利实现软件所需功能。因此,汇编源程序要严格依照系统要求来编制。
二者对照如表1所示。
必须用public和下划线来标明汇编子程序的外部函数属性,也就是严格按照下述格式:public_变量类型(或者变量名称),以保证C语言顺利地调入使用汇编子程序。
3.3 以汇编语言为主,C语言为辅
汇编语言具有在输入程序时能够直接采取二进制数据、控制硬件操作等C语言不具备的编程特长,因此汇编语言允许以主程序的方式调入使用C语言的函数和过程。
在调入使用时,要注意如下事项:(1)在被调用C语言函数前要加上extern标识,以表明其外来性质,以免跟原程序的代码弄混;(2)注意在调用时,要按照反向顺序依次将C语言函数的参数压入对应的任务堆栈,也就是保证最后子程序的最末位参数首先压入堆栈;(3)同时,在汇编主程序中用“call near ptr函数名”的形式完成调入使用C函数,不再加入原针对堆栈的指令[6]。
操作示例:
C子程序:
其过程为:前4个参数保存在r1-r4中→后两个参数留在堆栈用b1指令调用C程序模块→r0中得出结果。
4 结语
对于一些特殊领域的特殊应用需求的软件而言,混合编程可以解决很多难题。整个编程过程中交互使用两种语言,完成数据模型的搭建和数据的共享,以按照软件的功能需求,最终成功地完成程序编制。
摘要:C语言虽是高级计算机语言,但汇编语言可以高效率、高质量地发挥计算机硬件操作系统的功能,在程序编写时将二者有机结合并加以利用,可以事半功倍。
关键词:汇编语言,C语言,嵌入,相互调用,程序调试,混合编程
参考文献
[1]史斌.ARM汇编语言和C/C++语言混合编程的方法[J].电子测量技术,2006,(6).
[2]陈百良.单片机C语言与汇编语言的混合编程[J].科技信息,2008,(6).
[3]牟淑杰.C语言与汇编语言的混合编程[J].电大理工,2004,(1).
[4]杨加国.单片机C语言与汇编语言的混合编程[J].成都大学学报(自然科学版),2008,(3).
[5]左艳丽.C语言和汇编语言混合编程的方法和实现[J].职教与经济研究,2008,(3).
3.C语言的读书心得 篇三
一、选题
在讲解C语言第三章C程序的流程设计—算法—伪代码与逐步细化的程序设计方法这个部分时,笔者选择了百鸡百钱问题这个例子,这是我国古代数学家张丘建在《算经》中提出的问题:公鸡一只五钱,母鸡一只三钱,小鸡三只一钱,问用百钱买百只鸡,公鸡、母鸡、小鸡各能买几只?选择这个例子是因为这是一个C语言中非常典型的算法,而这个问题的复杂性超出了大脑直接思考和处理问题的能力范围,需要我们把其中的问题细化,逐步分析。用Flash把其中的过程制作成课件,并以动画的形式直接演示出来,学生会更容易接受一些。
二、分析
从整个问题来看,我们可以把问题列一个方程:公鸡数+母鸡数+小鸡数=100只;5元×公鸡数+3元×母鸡数+小鸡数÷3元=100元。显然,其解是不定的,但从实际情况分析,公鸡、母鸡和小鸡都应为整数,所以实际是求不定方程组的整数解。只有对公、母鸡、小鸡的可能只数逐一进行测试,直到全部可能只数都测试完毕为止。从问题中给出的条件,可以得出三个变量的取值范围:公鸡,0-19中的整数;母鸡,0-33中的整数;小鸡,0-100中的整数。这样,公鸡、母鸡、小鸡可能的组合方式有20×34×101=68680种,对每一种组合方式,再测试是否符合“百钱、百鸡”这两个条件,若符合则该组合就是问题的一个解。可以用循环程序设计中把复杂问题的求解过程转换为单一操作的多次重复。
三、设计
这一部分非常重要,要把课件分成具体的几部分,并对每一部分进行细化设计。具体可分为:片头—提出问题—分析问题—解决问题—片尾。片头部分:用flash制作一些效果,把本节课的课题演示出来。从提出问题到解决问题我们使用一个小故事来表现,这样可以更加吸引学生的注意力。提出问题:可以编成是老婆给老公拿百钱,让他去市场买百只鸡。到了市场,卖鸡的人告诉他公鸡五元一只、母鸡三元一只、小鸡一元三只,问他怎么买?通过两人对话把问题提出来。分析问题:在此部分中讲述老公不知道怎么买,来了一个有学问的人来帮他分析这个问题的故事,其中的分析过程,可以用公鸡、母鸡、小鸡分别爬三个有刻度的杆来解释其中的逻辑关系,每只鸡所对应杆上的刻度,就是相应的取值范围。用小鸡爬杆有趣的动作,不但可以降低了课堂内容的难度,还增加了趣味性。解决问题:在这一部分有学问的人给出了答案1:公鸡=0,母鸡=25,小鸡=75;2:公鸡=4,母鸡=18,小鸡=78;3:公鸡=8,母鸡=11,小鸡=81;4:公鸡=12,母鸡=4,小鸡=84。片尾:买鸡的人得到答案高兴地把鸡买回家去了,再用一些文字注明作者。
四、制作
1.准备制作课件所需要的素材
用画图工具画出故事中需要的人和物,如古代的两个人(一男一女,老公和老婆)、卖鸡的人、有学问的人、公鸡、母鸡和小鸡,把其中的人和物制作成元件,以方便在Flash中多次使用。还可以上网下载一些图片、背景音乐等。
2.分场景
根据前面的设计,在Flash中设置五个场景,在每个场景中制作相关的内容,在其中可以综合运用Flash中的形状补间动画、动作补间动画、引导动画、遮罩动画等。
3.设置按钮
在每个场景上制作向上、向下和返回主页的按钮,并在每个按钮上编写相应的程序,使按钮具有相应的功能。在分析问题的场景中,要制作一个“重播”按钮,在讲解的时候让分析问题的过程可以重复播放。
4.配音乐
为篇头篇尾加上背景音乐,背景音乐要舒缓,否则会喧宾夺主;为故事中的人物配音,可以用Windows中的录音机来录制。
讲课时,应用Flash课件以图文并茂、声像并行、动静结合的表现形式大大缩短了学生的思维领域中对抽象事物理解的距离。用大屏幕的演示详细讲解一下整个过程,并且尽量把问题的提出、分析、解决等内容都编成一段小故事,在轻松愉快的气氛中,在不增加学生负担的情况下,让学生更快、更清楚地掌握课堂内容,提高学生学习的积极性,也起到了优化教学过程、提高课堂效率的作用。
4.c语言课程设计的心得体会 篇四
通过这次c语言的课程设计,我明白了很多也知道了很多,更收获了很多。在课程设计的过程中出现过困难,三周的课程设计已经结束了。回想学习c语言的过程中,既有快乐又有烦恼,回顾这次课程设计,至今我仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,在整整一个星期的日子里,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论和知识是远远不够的,只有把所学的理论知识与实际相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考能力。在设计的过程中遇到的问题,这毕竟独立做的,难免会遇到各种各样的问题,同时在设计的过程中发现自己的不足之处,对以前所学的知识理解得不够深刻,掌握得不够牢固,比如说结构体……通过这次课程设计之后,一定把以前所学过的知识从新温故。这次课设终于顺利完成了,在设计中遇到了很多编程问题
做完这个课程设计,我们的自信一下子提高了,我们也会写程序了;尽管对于有些人这种程序会很简单,可对于我们c语言初学者来说,已经很不容易了。这次体验为以后的学习计算机的我们增强了信心。享受劳动成果的滋味实在美妙啊!
很感谢这次的课程设计,它使我更加地体会到多看专业书的重要性,只有掌握了一定量的专业知识才能得心应手地解决诸多问题;另外,在做任何事倒要有耐心,不要一遇到困难就退缩;在学习和工作中要时刻谨记“团结”二字,它好比通向成功的铺路石,不可或缺。
5.c语言学习心得 篇五
c语言学习心得
首先我要告诉大家的是:第一,学习无捷径!对于学习编程而言,你现在的付出将来都是有回报的。但是,学习C语言也需要方法。
我遇到过很多学习C语言的人,包括我以前的同学,很多人都是学到一半就放弃了。那么为什么那么多人学习C语言都半途而废呢?原因就是他们找不到正确的学习方法!在学习的过程中四处碰壁,兴趣和自信心逐渐被消耗殆尽。对他们来说学习C语言是一件很痛苦的事!
事实上学习编程是一件很好玩、很有趣、很有意思也很有前途的事情!那么学习C语言有什么好的方法呢?根据我自己多年的总结,以及很多编程前辈的经验,主要有以下几个方面:
1)分清主次
学习C语言最忌讳的就是不分主次,这是绝大多数学习C语言的同学都会犯的错误!我们刚开始学习的时候只需要将那些最重要的、最核心的学会就已经很好了!先将最精髓的东西提炼出来,再将整个C语言学一遍,从全局上把握C语言。对于那些次要的,有需要再学,没有需要也可以不学。
2)一定要多上机,多“敲”代码
编程是一门实践性的学科,绝对不是理论。如果不动手“敲”代码的话,永远都学不会编程。很多问题只有在“敲代码”的时候才能发现,才会有更加深刻的体会、领悟和理解。而不是靠死记硬背书中的注意点,那样真的很痛苦。我在学习编程的时候从来都不会刻意记忆什么注意点,这些知识点都是在不停“敲代码”的过程中,自然而然地融入我的身体中的。你们一定要记住一句话:“程序是写出来的,不是看书看出来的!”
3)要“敲代码”,必学盲打
盲打是学习编程最基本的技能。就算你C语言学得很好,达到了“思想在键盘上飞舞”的境界,但是如果你不会盲打,那你想“飞”也“飞”不起来!所以,不会盲打会非常影响你的学习效率。
4)要学会记笔记
编程需要不断地积累。我们一定要学会模仿别人优秀的代码、优秀的算法,然后将它记下来。一定要站在巨人的肩膀上学习。但是我们的记忆能力是有限的,时间长了难免会遗忘,所以一定要学会记笔记。一有心得、体会、感悟就写下来,这些都是很珍贵的。
我们在记笔记的时候,如果眼前没有计算机则可以先写在纸上,但事后一定要将它整理成电子版。整理成电子版看起来会很方便、舒适,还可以随意地增添和删改,保存时间也长。
c语言学习心得
说到我学习C语言时,真是用千言万语呀!抄程序是最笨的方法但我认为它是进步最快的方法,抄程序是积累经验的时候,而做项目才是真正把所学为所用的时候,可以说只有你做一个 大点的项目出来才能真正是说明你学到了东西,你会用所学的东西,要不然就算你学的再多,不会用也没用。
做学问特别是计算机一定要做的精准,比如说一个语句一个关键 字,你一定要把它几乎所有的用方法都能清楚明白,一句话要学精了,语法掌握住了,接下来就是写程序了,其实抄程序并不是说一直没有目的去抄,你会发现当你抄一段时间以后就不用再抄 了,因为大部分都是一样的你一看就知道怎么写了,当你一看到程序就知道它什么功能,那里有错的时候,那你的成绩可是进步不小啊,这并不需要太多的时间,只 要你用心一个月足够了。
跟大家说几点经验:
1.在学习的时候一定要注意这几点,不会的一定要问明白,不管谁能让他教会你知识就是你的了,要学会让知识为我所用。在看书的时候一定要做好标记,特别是不懂的地方一定要标明是什么意思。
2.在学习语言的时候一定要记住动手,不要只说不做,这样会行成眼高手低,不管什么样的程序都要亲手做过才能说会了,不要整天说我不会学不会,其实 是你不想学,只是你下决心抄一个月程序,我保证我能有大的进步,其实当你抄到一周到两周的时候你就会特想抄,因为你会发现程序你能看懂了,能帮别人调程序 了,有一种成就感呀!它会让你更加努力的去学习。
3.再一点是我建议大家在上课的时候少看课本,课本要在下课的时候看特别是上课前一定要先看看课本,上课的时候呢就不要看了,不要老师讲到那个问题 了你马上在书上找,这样不好,会影响你的注意力,其实还真不如注意听老师讲呢?因为你要是一边听一边看课本,你是看到了书上的答案但是老师的思路你没有听 到,而要是你不看的话,你听明白了思路,一定是想迫切的看到结果,这个时候看课本才是记的最死的时候,学习要的是就是个效率吗?
6.c语言学习心得 篇六
就我个人而言,上课听老师讲语法知识是最重要的,老师一节课下来要讲的内容很多,所以基本上没有时间记笔记,最好记笔记的方式就是课下边回忆边总结。你能回忆起多少,就说明你这节课学到了多少。
进过两个多月的学习,我发现C语言也不是很陌生的名词了。下面是我学习C语言的一些方法,希望你们有更好的方法一起分享。
(1).课下一定要整理笔记,因为课上的学习只是瞬时记忆,要把它转为长期记忆。笔记也要常看。
(2).代码一定要自己写,不能只是懂了,眼高手低是不行的。
(3).重视每一次编译时出现的错误,特别是频繁出现的更要注意。出现错误也不要着急,多交流。也许别人会看到你发现不了的漏洞。
(4).多去图书馆上上自习,图书馆真的很多关于计算机各个方面的书。相信会给你带来惊喜!
(5).课本不能丢,多看看运算符的优先级和常用字符与ASCII码对照表。
7.浅谈C语言的边界问题 篇七
数组下标超界是程序的一类常见错误, 几乎所有编译都无法静态检出这种只有在程序执行的某一时刻才发生的错误。偶尔也有人提出过, 用分析程序中变量的线性界办法山来静态检测, 但由于涉及谓词演算和循环不变式产生, 算法十分复杂, 仅分析线性界就已构成庞大的系统, 根本不实用。当运行到下标超界而中断时, 程序又执行了相当一段时间, 不易找出错误的确切位置。所以, 编程人员在编程时一定要注意此类问题。
1 差一错误 (off—by-one error)
在我们的日常生活中经常会犯“差一错误”, 而且也是我们程序设计中经常出错的地方。那么, 什么是差一错误 (或者栏杆错误) 呢?举个例子, 有一个问题:100米的围栏每隔10米需要一个支撑用的栏杆, 一共需要多少栏杆?如果不假思索, 最“显而易见”的答案就是把100除以10, 得到的答案就是10, 即需要10根栏杆。当然。这个答案是错误的, 正确答案是11根。
其实答案很简单, 关键是我们容易被定性的思维困惑, 要支撑10米的围栏需要两根栏杆, 支撑20米的围栏需要三根栏杆就足够了, 因为边界还需要一根栏杆, 那么100米的围栏就需要11根。差一错误的根本原因就是我们不考虑边界问题。
2 两个原则
实际上“差一错误”是可以避免的, 只要我们掌握了正确方法。其中有两个原则可以帮助我们:
2.1 原则一
找特例验证, 然后在一点一点往外推倒, 直至正确。这种方法对迅速查错很有帮助。
2.2 原则二
仔细推敲边界问题, 做到有备无患, 这对于编程人员养成良好的编程习惯很有帮助。将这两个原则熟记, 对边界问题的解决会事半功倍。在编程时, 会经常遇到整数范围的问题。例如:整数a>=2且a<=15, 那么在此范围中a的取值个数为多少?很显然, 答案并不是15-2=13。利用上述两个原则, 结果就不会错。根据原则一, 找个特例。假设a>=2且a<=2, 那么a的取值只能是2, 即a的个数为一。在考虑一般情况, 假设a>=1, 上届为大于1的任意正整数b, 那么从1到b的个数很显然为b, 计算公式为:b-1+1, 而不是b-1。所以a>=2且<=15的个数为:15-2+1=14。
很显然, 造成“差一错误”的根源正是“b-1+1”中的“+1”。对于字符串问题同样适应稍不注意就会犯错。
3 编程技巧
很自然, 人们会问, 有没有一些编程技巧, 能够减少边界问题的出现。其实, 有这样的技巧。概括的说, 就是用起点和终点来表示一个数值范围。具体的说, 前面的例子中, a>=2且a<=15, 边界条件为a>=2且a<16, 而不是a>=2且a<=15。注意:下届就是起点, 即包括在取值范围中;上届是终点, 但不包括在取值范围中。虽然不好理解, 但它起到的效果却不同凡响:
1) 取值范围的大小就是终点和起点之差。16-2=14, 就是2到15之间的所包括的元素数目。
2) 如果取值范围为空, 那么起点和终点重叠。
3) 即使取值范围为空, 起点也永远不可能小于终点。
4 c/c++中数组下标从0开始而非从1开始
在学习c语言的数组时, 数组的定义就是下标从零开始, 而且要特别注意。那么下标为什么从0开始, 为什么不从1开始呢?随着你遇到的问题种类越来越多, 你就会发现下标从0开始能给程序在细节上带来的优化效果了。其实从0开始是有一定道理的。数组是一段连续的空间, 要求a[i]就是求它的地址, 然后找到它。如果从0开始, 则a[i]的地址=首地址+i*每个数据所占的长度;如果从1开始, 则a[i]的地址=首地址+ (i-1) *每个数据所占的长度, 是不是前一种更好计算呢?如果是二维数组就更是这样了。除此之外, 这个特性是为了方便编译器设计者而设定的。偏移量在编译器设计者心目中根深蒂固, a[3]就是首地址为a+3的值。所以c语言被设计成这个样子。后来的c++, java也都遵循这个约定, 但并不是所有语言都是这样。比如:vb可以指定下标, 而关联数组则是用字符串做为下标的。
5 C语言中数组下标能否负数
我们所学的教科书上都是这样定义的:C语言数组的下标是从0开始的, 数组访问时下标不能为负数。但下标为负数运行会出错吗, 还是有运行结果的呢?让我们看看一段小程序:{for (i=-3;i<10;i++) printf (“%3d”, a[i]) ;}, 那么其运行结果又是什么呢?我们知道声明一个数组变量就是在内存中开辟一段连续的空间, 数组变量a[10]的首地址就是&a[0;]通过N次循环输出数组a时, 实际上就是输出了从数组a的首地址开始的N个内存存储单元的值。我们知道内存的分配是操作系统的重要组成部分, 用户的权限不同, 所以访问的权限也是不一样的。假如数组a之前的地址被用存放可以随意读的数据, 那么上式代码就会正确运行;如果数组a之前的地址被用存放不可以随意读的数据, 就是重要数据, 那么运行就会报错。所以, C语言中数组下标能是负数, 但不提倡用, 以防出现不必要的损失, 使系统崩溃。
6 结论
很多编程者在写程序时, 总会遇到边界问题, 总是犹豫不决, 害怕出错, 而有的程序员则本着“大无畏”精神, 最后还是出错了。确实, 像这样的代码技巧性很强, 如果对边界问题不了解是很容易出错的。所以, 通过介绍边界问题, 掌握问题出错的根源, 深入学习并消化, 对以后的编程会起到事半功倍的效果。
参考文献
[1]Andrew Koening.C Traps and Pitfalls.北京:人民邮电出版社, 2008, 02.
8.C语言中数组的元素 篇八
关键词:数组;元素;数据;类型
中图分类号:TP313文献标识码:A文章编号:1007-9599 (2010) 16-0000-02
Elements of the Array in C-language
Zhang Kexing
(Foreign Language Teachers College of Taiyuan University,Taiyuan030012,China)
Abstract:The array is the most commonly used programming data st-
ructure.Array can be divided into array of values(integer group,real array),a character array and pointer array and the array of structures.
This array will be examples of various types were analyzed and explained.
Keywords:Array;Element;Data;Type
一、引言
數组是相互关联的一批数据的序列,序列中的数据称为数组的元素,可按照排列顺序编号,起始编号一般为0,前后两个数据的编号有差异,通过编号可以唯一指定数组中的数据成员。数组中的元素可以是基本类型,也可以是构造类型。按照数组元素的不同可将数组分为数值数组、字符数组、指针数组、结构数组。
二、数值数组
数值数组是指数组元素是整型、实型、及其相关类型的数据,简单说,就是元素是数字的数组。
例1:
main()
{
int i,a[10];
for(i=0;i<=9;i++)
a[i]=i;
for(i=9;i>=0;i--)
printf("%d ",a[i]);
}
在该例中,第一个for语句给数组a中的10个元素赋值为整形数据0-9,赋值以后数组中数据如下:
第二个for语句将数组a中的10个数字反序输出,即9、8、7、6、5、4、3、2、1、0
数值数组是数组中使用率最高的数组,需要注意的是一个数组中的数据必须是同一种类型的数据,
{int a[3];
a[0]=3;
a[1]=2.5;
a[2]=3.0;}
是不合法的。
三、字符数组
C语言没有专门定义字符串数据类型(如其他语言中的string),它用以' '结尾的字符数组来表示一个逻辑意义上的字符串。
字符数组主要有两种用途,(1)存储字符串,(2)存储字符或字符变量。这两个是不同的,刚开始接触时很容易混淆。下面进一步分析这两者的不同。
首先初始化时不同,用于存储字符串,例如:char str[]="Hello"; 用于存储字符或字符变量,例如:char Chars[]={‘H‘‘e‘,‘1‘‘1‘,‘o‘}。这两者的存储方式是一样的,但是存储内容稍微有所不同,那就是第一种情况会在结尾加上‘ ’,存储情况类似于{‘H‘‘e‘,‘1‘‘1‘,‘o‘,‘ ‘},存储空间会比第二种情况大一点,但是这个存在空间并不被计算进字符串(其实只是字符数组)变量中。
C语言中提供的字符串操作函数其实是针对于结尾是‘ ‘的字符数组进行的。输出函数printf中的输出参数%s也是针对于结尾是‘ ‘的字符数组。
另外,还有一种方法可以定义字符串(其实也是字符数组),声明如下:
char * string = "this is a point charArray.";字符指针指向字符数据的第一个字符的位置。
最后,有两点特别说明。
(1)字符串常量给出的是地址值。如
char *p, s[10];
p="hello";//正确
(2)不能用赋值语句给字符数组整体赋一串字符,例:
char str[10];
str = "abc";//错误
例2:
char c[10]={‘c’, ‘’, ‘p’, ‘r’, ‘o’, ‘g’, ‘r’, ‘a’,’m’};
赋值后数组元素如下:
四、指针数组
在C语言中,一个数组的元素值为指针则是指针数组。 指针数组是一组有序的指针的集合。指针数组的所有元素都必须是具有相同存储类型和指向相同数据类型的指针变量。
指针数组说明的一般形式为:
类型说明符*数组名[数组长度]
其中类型说明符为指针值所指向的变量的类型。
例如:
int *pa[3]
表示pa是一个指针数组,它有三个数组元素,每个元素值都是一个指针,指向整型变量。
例3:
通常可用一个指针数组来指向一个二维数组。指针数组中的每个元素被赋予二维数组每一行的首地址,因此也可理解为指向一个一维数组。
main(){
int a[3][3]={1,2,3,4,5,6,7,8,9};
int *pa[3]={a[0],a[1],a[2]};
int *p=a[0];
int i;
for(i=0;i<3;i++)
printf("%d,%d,%dn",a[i][2-i],*a[i],*(*(a+i)+i));
for(i=0;i<3;i++)
printf("%d,%d,%dn",*pa[i],p[i],*(p+i));
}
本例程序中,pa是一个指针数组,三个元素分别指向二维数组a的各行。然后用循环语句输出指定的数组元素。其中*a[i]表示i行0列元素值;*(*(a+i)+i)表示i行i列的元素值;*pa[i]表示i行0列元素值;由于p与a[0]相同,故p[i]表示0行i列的值;*(p+i)表示0行i列的值。
在C语言中,数组元素全为指针的数组成为指针数组。
一维指针数组的定义形式为:“类型名*数组标识符[数组长度]”。
例如,一个一维指针数组的定义:int *ptr_array[10]。
指针数组的含义:
指针数组中的每一个元素均为指针,即有诸形如“*ptr_array[i]”的指针。
由于数组名本身也是一个指针,因此指针数组中的元素亦可以表示为“*(*(ptr_ayyry+i))”。又因为“()”的优先级较“*”高,且“*”是右结合的,因此可以写作**(ptr_array+i)。
五、结构数组
数组的元素也可以是结构类型的。因此可以构成结构型数组。结构数组的每一个元素都是具有相同结构类型的下标结构变量。在实际应用中,经常用结构数组来表示具有相同数据结构的一个群体。如一个班的学生档案,一个车间职工的工资表等。
方法和结构变量相似,只需说明它为数组类型即可。
例4:
struct stu
{
int num;
char *name;
char sex;
float score;
}boy[5];
定义了一个结构数组boy,共有5个元素,boy[0]~boy[4]。每个数组元素都具有struct stu的结构形式。
例5:计算学生的平均成绩和不及格的人数。
struct stu
{
int num;
char *name;
char sex;
float score;
}boy[5]={
{101,"Li ping",'M',45},
{102,"Zhang ping",'M',62.5},
{103,"He fang",'F',92.5},
{104,"Cheng ling",'F',87},
{105,"Wang ming",'M',58},
};
main()
{
int i,c=0;
float ave,s=0;
for(i=0;i<5;i++)
{
s+=boy[i].score;
if(boy[i].score<60) c+=1;
}
printf("s=%fn",s);
ave=s/5;
printf("average=%fncount=%dn",ave,c);
}
本例程序中定义了一个外部结构数组boy,共5个元素,并作了初始化赋值。在main函数中用for语句逐个累加各元素的score 成员值存于s之中,如score的值小于60(不及格)即计数器C加1,循环完毕后计算平均成绩,并输出全班总分,平均分及不及格人数。
六、总结
数组是程序设计中最常用的数据结构。数组可分为数值数组(整数组,实数组),字符数组以及指针数组和结构数组。数组可以是一维的,二维的或多维的。数组类型说明由类型说明符、数组名、数组长度(数组元素个数)三部分组成。要想将不同的数据用不同类型的数组存放,就需要深入了解每一种类型的数组及其特点,这样才能灵活运用,充分发挥每种数据类型的长处。
参考文献:
[1]谭浩强.C程序设计教程[M].北京:清华大学出版社,2007,7
[2]李岩.C语言程序设计基础与上机知道[M].北京:清华大学出版社,2006,3
[3]马秀丽等.C语言程序设计[M].北京:清华大学出版社,2008,3
[4]罗坚.C语言程序设计[M].北京:中国铁道出版社,2009,2
作者簡介:
张科星(1980-),女,山西太原人,研究生,太原大学外语师范学院,助教,研究方向:网络,计算机教育。
9.学习C语言心得体会 篇九
1、课前认真预习,把下一节要上的内容先自己看一遍,把不懂的地方打个标记,等上课的时候可以请教老师。理解书上的例子,搞懂每个语句的含义,用法。看完后尝试着不看例子自己编写程序,编完以后再跟书上进行比较,看自己的程序还有哪方面的不足,再进行改正。想要真正学好c语言光看书是不够的,一定要自己多动手。
2、上课认真听讲积极思考,提高上课效率。老师上课讲述的都是课程的重点和难点,听好课程可以达到事半功倍的目的。
3、课后复习。把每天的上课内容回家再温习一遍,独立完成课后的作业,如果有时间,最好能找点课外书籍、课外习题什么的来巩固所学的内容。
4、主动上机,多多实践,提高动手能力。通过上机实践来验证所学的理论,通过在机器上查找错误来巩固概念,通过提高上机能力来促进理论学习,开阔编程思路,提高反映速度,提高分析问题解决问题的能力,锻炼心理素质,提高心理承受能力。
学习c语言的初期重点要放在掌握语言的语法和规定上,一定要养成良好的编程习惯,平时写程序注意语法规范格式控制,格式规范了,出了错误也容易找到出错的地方,这是c语言的基础;后期的重点要转移到掌握编程的思路和基本算法上来。课后多做习题,找一些经典例子尝试自己编写,写程序切忌半途而费,想到一个思路,就要按自己思路把它写完,就算错了,也可以让自己了解为什么这样做会错?错在哪里?会出什么结果?以后自己也很难在这个地方犯同样的错误。当学到一个新的知识点,就试着把它运用到以前做的习题上,不但巩固了以前学的内容,也更加能加强新知识的理解。学习c语言就是要经过以上这样几个反复,才能前后融会贯通,积累所应该掌握的知识。c语言是这样,其他语言也是这样,从基本抓起,多动手,多动脑,不懂就问,注意平时积累。篇二:c语言心得体会作业 c语言心得体会
学习c语言已经一个学期了,刚开始学习的时候老是感觉力不从心。虽然认真听课了,但是并不能理解它。这种情况到了后来才有所改变。
之所以能有所改变,是因为本人找到了学习c语言的一些方法。由于c语言对于刚接触的学子,会感到很陌生。因为c语言所要用到的思维逻辑与我们平时的思维逻辑有所不一样。其显得更抽象。所以学习c语言,一定要打好基础。要把基础理解透彻。需要用到的语句要牢记,这样,在以后的运用当中,就能比较得心应手了。学习c语言的起步就是学习它的方法规则,如果把它学习得好在学习后面的时候就比较容易理。比如变量,首先要了解变量的定义方式(格式),其意义是什么(定义变量有什么用);其次就是要我要怎么去运用它(我要用什么型式去应用它)。在c语言的命令行中所有的语句都是有它自己的一定格式和形式出现在我们面前,所以在学习某种语句或命令时你首先要了解的就是它的规则是什么、有什么用、怎么实现等。这些都是语法基础,如果把它们都了解很好了,那么编起程序来就很得心应手。比如说if语句和switch语句,这两种条件语句都是用来执行判断功能的,那什么时侯用if什么时侯用switch,如果很好地了解它们的结构和作用的话那么就能灵活运用:若它的条件分支是多个而且条件的值是一个确定的值时就可以选用switch。反之,在大多数情况下就用if。掌握了语言法规则,不一定就能编出程序来,其实学习编程就是要学习一种思想,一种思维方法,首先要确定一种算法,如从1加到100,判断润年等,我认为这些算法都是一种思维方法。画流程图就是在构建编写程序思路的过程,当画好一个流程图时编程思想也就出来了,程序也差不多了,再结合掌握的语言的方法规则,在计算机里实现就可以了。任何程序只要有思维,有想法,那么实现程序时就不会觉得无从下手。而要学习这种思维方法就是多做题,多读程序,学习别人好的思维方法,多想想一个程序还可不可以有另外一种方法来实现它。这样久而久之,自然会形成一种自己的思维方法。因此我认为不管学什么语言都是这样。
另外,良好的编程习惯也是学好c语言的重要因素。例如编写程序时用缩进的方式、写注释、程序写到一定的阶段时要做一下测试等。这些工作可以帮我们在调试程序时有很大的帮助。程序代码实现后,错误是难免的,所以也要锻炼自 己的调试查错能力,而良好的编程习惯可以使我们在调试时减小工作量和提高调试效率,也有助于形成自己的编程风格。
在学习的时候,我遇到过这么个情况。觉得c语言学起来很枯燥,很闷。后来才发现学习语言,是要有目的性。如果没有目的,你会发现自己在学习的过程中会很枯燥,会渐渐失去对c语言的学习兴趣。所以我们要有一个远大而又容易实现的目的,我要用c语言来做什么?再把这个最终的目的分成部分,让我们慢慢的一点一点的来完成它,这样在学习c语言的过程中,我们就会始终陶醉在一个又一个成功的喜悦里,让我们的学习越来越有兴趣。有一天,我们会发现:原来学习c语言真的是一件很有意思的事儿,而且学好c语言也不是很难么!学习c语言只看书也是不够的,我们要一边看书,一边上机做练习,或者在你学习了c语言的基础知识以后就可以找一些别人的程序来看,遇到不明白的函数可以再翻一下书,如果查书也理解不了,我们可以把他的程序输入到计算机里,情况好的话能够顺利通过编译,如果不能顺利执行,我们也同样可以学习到一些c语言调试方面的知识。课堂上要讲授许多关于c语言的语法规则,听起来十分枯燥无味,也不容易记住。然而要使用c语言这个工具解决实际问题,又必须掌握它。通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c语言的语法规定。对于一些内容自己认为在课堂上听懂了,但上机实践中会发现原来理解的偏差,这是由于大部分学生是初次接触程序设计,缺乏程序设计的实践所致。学习c语言不能停留在学习它的语法规则,而是利用学到的知识编写c语言程序,解决实际问题。即把c语言作为工具,描述解决实际问题的步骤,由计算机帮助我们解题。只有通过上机才能检验自己是否掌握c语言、自己编写的程序是否能够正确地解题。通过上机实验来验证自己编制的程序是否正确,恐怕是大多数同学在完成老师作业时的心态。但是在程序设计领域里这是一定要克服的传统的、错误的想法。因为在这种思想支配下,可能你会想办法去掩盖程序中的错误,而不是尽可能多地发现程序中存在的问题。自己编好程序上机调试运行时,可能有很多你想不到的情况发生,通过解决这些问题,可以逐步提高自己对c语言的理解和程序开发能力。总之一句话,在学习c语言中,一定要多动手。不要老是钻牛角尖,不断的在那左思右想。用时候只要肯动手,编译错了再改。你会发现慢慢的就能够找到答案了。而且也能从中学习到很多东西,常言道失败是成功之母。只要不怕失败,不断的钻研、尝试,总会能够把困难解决的。
在学习c语言的过程中会遇到许多困难与挫折。但通过自己的努力,最终能克服种种的困难。所得到的成就感是无法用言语去形容的。从中学到的坚韧精神对于我今后的生活也有很大的影响。c语言是一种抽象的语言,相对于我们平时用的语言,所以学习起来会用点吃力。但是面向对象程序设计的基本要素是抽象,程序员是需要通过抽象来管理复杂性.管理抽象的有效方法是使用层次式的分类特性,这种方法允许用户根据物理含义分解一个复杂的系统,把它划分成更容易管理的块.例如,一个计算机系统是一个独立的对象.而在计算机系统内部由几个子系统组成:显示器,键盘,硬盘驱动器,dvd-rom,软盘,音响等,这些子系统每个又由专门的部件组成.关键是需要使用层次抽象来管理计算机系统(或其他任何复杂系统)的复杂性.面向对象程序设计的本质:这些抽象的对象可以被看作具体的实体,这些实体对用来告诉我们作什么的消息进行响应.学习c语言可以让我们更好的锻炼自己的逻辑思维能力,还可以让你掌握更好的计算机知识,在不断学习的过程中让自己真正的自信起来!学习c语言,对于以后的工作也是有所帮助的,它也可以结合其他的科目,来灵活运用。例如单片机的运用。用c语言去编辑单片机的主程序,会发现程序简洁多了。而且发现c语言的实用性很强。
虽然课程结束了,但在以后的学习过程中,我仍会不断的钻研,希望学得更多,能更好的在以后的工作中运用。篇三:c语言上机实验心得 c语言上机实验心得
在科技高度发展的今天,计算机在人们之中的作用越来越突出。而c语言作为一种计算机的语言,学习它将有助于我们更好的了解计算机,与计算机进行交流,因此,我们一定要学好c语言,这对我们以后的发展是十分重要的。
说到这,上机实验当然就是一个必不可少的环节了,c语言灵活、简洁的特点,只有通过编程实践才能真正了解,真正说懂。为了更好地学习语法规定、掌握程序设计方法、提高程序开发能力,我们必须实际上机、编写程序。
通过实验我也发现了自己不少的问题,这都是只看书上的程序而没有自己亲身上机编写程序而无法得知的,假如我们只因看熟书上的程序就以为自己已经掌握了c语言那就大错特错了。
我主要存在以下的这些缺点:
1、学习耐心与细心不足,如scanf(“%d”,&n);中的“&”有时候会忘了。而在最后
输出时又错写成printf(“%d”,&n);从而错误得输出了地址而不是我原来想要的答案。
2、编程思想不够发散,看着题目有时想不出解答的方法,更不用说编写程序来解
题了。
3、4、基本功不够,有些函数的表达不太精通,需要看书来核实,以致耗时较多。知识不够广,有些内容没有学好,不能要用到时及时反映出来,认识程度不够
深刻。
5、6、有时候不够精简,有一点用处不大或者说没有也可以的文字存在。英语水平较差,对错误的地方虽然电脑有说,但由于是英文,理解上还是存在一点问题。
为了能更好地学好c语言,在今后学习中我要更多的动脑,综合运用所学,多看相关东西,多上机练习,提高电脑水平,增强自学能力,把已会的东西掌握好。
实验中我深刻意识到完成程序的编写,决不意味着万事大吉。认为万无一失的程序,实际上机运行时可能会出现很多意想不到的问题。有时编译程序检测出一大堆错误,有时程序能够顺利运行,但是运行结果并不是你预期中想要的。因为开发环境所提供的编译系统无法发现程序逻辑错误,或者是你原来所设计时的理论错误,这就只能靠自己的上机经验来分析判断错误的所在了。所以程序的调试是一个技巧性很强的工作,它可能比编一个程序耗时更
多。由此可看出上机实践的重要性。
通过本次c语言上机实验,我对这个介于人类与非人类之间的计算机编程语言有了一定的体验。编程的时候有因为顺利编出程序而开心过、有因为做得比人家慢而郁闷过、有因为不知从何入手而无奈过、有因为不知错出在哪而彷徨过??但随着练习的增多,我对c语言比以前熟了很多,不再只是纸上谈兵,我都有能力独立做出一些程序,可能对于一些“高手来说这不算什么,或者他们早就会了,但我依然觉得很开心,因为我跟我自己比是进步了。
当然,我还得感谢老师的指导与帮助,如果没有老师和其他同学的指点,我可能对c语言还是一筹莫展,在实验中遇到的大大少少的问题与所犯过的错误将是我以后的要加以注意的地方与认真审查的部分,为我奠定坚固的基石。伴随着学习的深入,我发现高深的东西还有很多很多,不懂不熟的知识还有很多,所以我不能停步,对c语言,我以后会更加努力学习的。篇四:c语言学习体会
选修c语言期末感受
(电商1032 陈冰寒 ***)
这学期,我选择了c语言作为自己的选修课程。因为我一直都对计算机编程非常感兴趣,但是选择专业的时候选择了电子商务没有选择计算机专业,所以一直没有机会接触计算机编程。在选择选修课的时候,我看见有c语言的时候,我便毫不犹豫的选择了这门选修课。
刚刚开始的时候,我以为上选修课会和正式上课一模一样,除了上理论课外还会安排上机,并且每个星期的课程也会是4节左右。但是第一次开始上选修之后,我才知道原来选修和必修的差距是非常大的。c语言每个星期就两节课,而且还没安排上机。这便会让我们对每个星期上的课程印象不深,到了下个星期在上课的时候,可能已经把上个星期的内容忘记的差不多了。这便会让我们觉得选修课上的没什么感觉,一个星期就两节课,不容易学到很多知识。这就会使得我们在上选修的时候变得没上必修课的时候那么认真,并且容易出现逃课的心理,就是觉得选修课上不上对自己没什么影响。这样便会非常不利于选修课的开展。一方面是老师看见每次选修课上的人都不是很多,心情就会变得不好,那么很多知识老师就是准备了,但是到时候看到这种场景可能都没心情讲了;另一方面,来上选修课的同学看见其他同学都可以不来上选修,那么来上选修的同学下次可能也会选择不来,这样,上选修课的同学就会越来越少。便会成为一个恶性循环。使得大家对选修课越来越不感兴趣。
其实我一直认为c语言是一门非常有乐趣的学科,因为c语言不仅仅需要将语言掌握好,更重要的是把握每种程序的思路。我这次选择c语言就是因为我参加了去年的计算机二级的考试,我暑假在家自学了c语言。前面几章的内容勉强还能看懂,但是到了后面的指针、数组的知识点我就不懂了。我一直都觉得如果有一个老师能带着我学习c语言,那么我肯定有信心能把c语言学号。所以我才选择了c语言。但是,计划跟不上变化这学期的c语言的学习并没有我预期的这么顺利。首先是因为考iece电子商务工程师所以耽误了一次课程,后来又是因为清明节家里有急事,所以有耽误了两次课程。这样下来,我就耽误了三次课程,而这三次课程里面有两次课程是在讲循环结构和选择结构,这两个结构是我自学的时候没有怎么学懂的,但这次却又错过了,这便使我学习c语言的积极性受到了打击,因为选修课不像必修课,经常都可以见到老师,而且还是小班教学,有什么不懂的可以慢慢问,但是选修课是大班课,而且一个星期就一次,和老师也不熟悉,所以有问题也没时间问,只能自己慢慢摸索。这样,进度就越拖越慢,到了后来的知识就不容易弄清楚了。
所以,我觉得选修c语言我不后悔,因为这是我一次都渴望学会的,但是这次选修课没能将c语言学懂我只能表示遗憾,在以后的学习里,我也会慢慢地将c语言学会。这是我的目标,就算在困难我也会去做。篇五:c语言程序学习心得体会 c语言程序学习心得体会
通过一学期对c语言的学习,我感觉学习c语言是有一定难度却又是非常有趣的科目。也是很有帮助的,特别是对将要面对的计算机二级考试。这段时间的学习我知道了c语言的基本特点有以下几点:
1.语言简洁,使用灵活方便。2.运算符丰富,表达能力强。3.数计类型丰富。
4.目标程序质量高,具有面向硬件系统的特点。5.具有结构化的控制语句和模块化的程序结构。6.具有编译预处理功能。
7.程序设计自由度大,可移植性好。这段时间学习使我掌握了:
一、我学习了c语言的数据类型、常量与符号常量、变量、c语言的运
算符和表达式、赋值运算符和赋值表达式、自增自减运算符以及逗号表达式等。
二、这章介绍了结构化程序的三种基本结构、c语句概述、数据输出包
括字符输出函数putchar()和格式输出函数printf()、数据输入包括字符输入函数getchar()和格式输入函数scanf(),还有一些简单的c语程序设计举列等。前几天一直在看c++语法,所以对一些比较实际的例子总感到比较抽象,但是那也是一个必需阶段,可能大家和我的学习方式不一样,但从刚接触程序到现在来看,发现这样学习语言的方法挺不错的。
经过第一阶段对语法的学习,我觉得实例阶段应该是一个过渡阶段吧,通过前一阶段对语法的学习之后,可能有很多概念我们都比较模糊,或者说很多东西太抽象了,这就为我们第二个阶段的学习做好了实例化的准备,可以这样说吧,第一个阶段就我们为我们的学习一样东西而构建的一个类,里面讲了我们应该在这里面要做什么?第二阶,也就是本阶段,我们就应该去把前一段的东西具体化(实例化先前创建的类),那怎么个具体化呢,呵呵!说白了,去练习一些小例子,从网上下载的电子书上有很多这方面的例子的,如果有自己去书店买书的话,里面也应该提供了不少,里面的例子,我是每 次都打了一遍,也许有的人不会亲自去用手打一遍,什么copy等,当然这样也行,但我个人认为,对于初学者来说,最好还是自己动手打一遍比较好,毕竟这些东西对我们来说,都比较陌生,如果每个字都自己打完的话,有些代码你不想记住也难了,在这里,我们得弄懂练习的每一个例子,如果能把一些例子稍稍修改,弄懂里面精髓的东西,让自己知道为什么这样做,那么是最好不过的了,我平时练习时,这一步是少不了的,都习惯了,所以也就成了条件反射,想不这样都不行。最后,我们就应该汇一下总,把前面做过的例子里所用的技术理一下,再做一个比较大的例子,尽量把到目前为止所懂的知识全部应用到里面去,只是尽量,当然有些东西是不能集成到一起的,也是是代码之间的排斥性。
【C语言的读书心得】推荐阅读:
中学生语言故事读书笔记09-16
c语言实验数组的应用08-07
dsp的c语言编程10-13
C语言默认参数值的实现07-17
C语言与语言混合编程DSP设计08-23
c语言个人总结08-19
c语言要点总汇09-14
c语言模拟迷宫程序07-07
学生成绩系统c语言07-25
c语言课程设计题目09-25