C语言学习报告

  • 格式:doc
  • 大小:28.00 KB
  • 文档页数:3

C语言学习报告 班级:0601班 姓名:王莹 学号:0601012 C语言作为本学期开设的一门专业课,其重要性不言而喻。经过为期几个月的学习,C语言给我最大的感受就是“让我欢喜,让我忧”。C语言的功能十分丰富,运算种类远远多于其它程序设计语言,一旦我们真正掌握了它的精髓,可以运用自如时,我们就能称得上是电脑高手了!这是很值得欢喜的。但大凡接触过它的人都知道,想要学好它是非常困难的,往往对C语言的学习感到无从下手,我当然也不例外,这着实让人很忧虑。尽管这样,在此我还是想说一下自己对C语言的一些见解,发表一下自己的愚见。 一.如何学习C语言 首先,我想无论学习哪门语言我们都应该先了解一下它的历史背景,这对往后的学习是很有帮助的。C语言是国际上广泛流行的计算机高级语言。它适合作为系统描述语言,既可以用来编写系统软件,也可以用来编写应用软件。C语言是在B语言的基础上发展起来的,其根源可以追溯到ALGOL60。20世纪70年代初C语言问世,1978年美国电话电报公司贝尔实验室正式发表了C语言。于此同时,B.W.Kernighan和D.M.Ritchit合著了著名的《The C Programming Language》一书,在该书中并没有定义一个完整的标准C语言,后来由美国国家标准协会在此基础上制定了一个C语言标准,于1983年发表,通常称为ANSI C。1987年,ANSI又公布了新标准——87 ANSI C。1994年,ISO修订了C语言标准。对于这段历史,很多书上都有详细的介绍,我们应该对此有所知晓。 说完了C语言的发展史,下面就来谈谈怎样学习C语言吧。 古话说的好“工欲善其事,必先利其器”。一本好的C语言教材是必不可少的。现在我们手上的教材为《C语言程序设计教程》,这本书我认为对于初学者来说是很好的了,上面对C语言的一些最基础的东西进行了介绍。但是如果要想更深一步的去学习它,看这本书是远远不够的。在此,我特意翻阅了相关资料,介绍有说最新版本的《The C Programming Language》(中译名《C程序设计语言》)是经典中的经典,具有权威性,对C语言的提高很有帮助。但是对于这本书,我还没有能力去读,不过我会努力的!在这,也希望大家切记一个原则,尽量读一些在自己能力范围内的书,否则就是浪费时间和精力。至于这些高层次的书籍,我们只有把一些必要的知识全部牢牢掌握,具有了一定的独立编程能力后再去学,这样才会事半功倍。 当然,在漫漫学习道路上,仅仅有本好书是不行的。更多的是要靠自身的努力和一个良好的学习方法。第一,学习C语言的一个非常重要的工作就是多读程序,多看代码。在平时的学习中,我们要注意书上的每一个细节,仔细研读每一个程序,直到每一行都理解了,要肯下苦工。如果碰到了困难,就去问些高手,不要放之任之。第二,要自己动手编写程序。编程是个实实在在的活,光说不练是不行的。很多人不重视习题,这是很错误的,因为习题中往往说明了一些重要的道理,而不只是单纯的做练习。在刚开始学的时候,我们可以多做书上的练习,做完后,最好自己亲自敲一边,直到运行结果和自己做的结果一致时才算是做完一题,如果不一致,就要找找原因了。第三,在自己动手的过程中要不断纠正自己不好的编程习惯和认知错误。第四,也是我认为最重要的一点就是要“温故而知新”。学习后面的知识,不要忘了加深理解前面的知识,这是我们很多人不易做到的,然而又是很关键的。你千万不要认为你看过的例子自己都懂了,你就可以写出和它一样的程序来,绝对不一定。学习C语言其实就是一个反复的过程,只有这样,才能更好的掌握。总结一下学习C语言就是要仔细读书、认真学习源代码、独立完成书后的习题、反复温故外加积极的上机调试,只要肯付出就肯定有收获,也许就在你还未发觉时,你的C语言就又上一个台阶了。 在此,对于C语言的学习我有一个和不少人持反意见的看法,就是学习C语言需要很好的英语水平吗?在C语言里确实都是字母组成的,但是字母组成的单词却不一定都是英语,比如scanf(),格式输入函数。而scanf在英语里是没有的。它只是计算机的语言,不是英语。所以我认为学习C语言不一定需要很高的英语水平。当然不可否认,里面也有英语,但是这些我们可以遇到了再去背,不用刻意去记,只要多多上机,用多了自然也就都懂了。以上只是我个人的愚见,还望老师可以忽视。 二.易错的C语言 学习C语言是项繁杂而枯燥的工作。在这漫长的道路上,障碍是不可避免的,弯路也是会走的。因此,我结合了一下自己的经历,小小的总结了下C语言学习中易犯的一些错误由于个人能力有限,不足之处希望老师可以给予批评、指正。 首先,我们要知道虽然C语言的使用非常灵活,放宽了对语法的限制,程序设计自由度大,但其对标识符的使用还是有很严格的规定的。C语言中标识符的命名规则是:以字母或下划线开头,后面可跟字母、数字、或下划线。值得注意的是,它是区分大小写的。如编译程序时把a和A混淆使用,就会出现出错信息,因为编译程序吧a和A认为是两个不同的变量。习惯上,符号常量名用大写,变量名用小写表示,以增加程序的可读性。 其次,要留心“=”与“==”的使用。我在平时写程序时就会犯这类错误,而往往是在上机调试时才发现问题。要知道,虽然在许多高级语言中,“=”表示等于,但在C语言中,“=”是赋值运算符,“==”是关系运算符。如下面这个语句,if(x==1) x=y+1; 在这里前面是表示x是否等于1,若等于,把y+1的值赋给x。这点看似简单,却很容易被忽视,最终导致错误的发生。 在这里我们还要清楚scanf函数的使用。scanf函数中的“格式控制”后面应当是变量地址,而不是变量名。例如,若a、b为整型变量,则scanf(“%d,%d”,a,b); 是错误的,应该将“a,b”改为“&a,&b”,许多人都会在这出错。还有一点要说明的是如果在“格式控制”字符串中除了格式说明以外还有其他字符,则在输入数据时则在对应位置应输入与这些字符相同的字符。如scanf(“%d,%d”,&a,&b); 输入时应输入3,4 ,注意的是,3后面是逗号,它与“格式控制”中的逗号对应。如果是scanf(“%d%d”,&a,&b); 由于在两个%d之间是空格,因此在输入数据时,两个数据之间应有相同个数的空格字符。 我们在平时使用C语言时一定要细心和专心,否则很容易由于自身的粗心大意而出现一些不应出现的错误。像对分号的使用。在编程的时候分号的使用可以说是关键,它是C语句中不可缺少的一部分。但很多时候我们不是多加就少忘了加。对于复合语句来说,最后一个语句中的最后的分号是必须写的,这是和PASCAL不同的,而复合语句的花括号后不应再加分号。要想把分号使用自如,不多多练习是不行的,同时我们也要善于进行总结。 你肯定做过这道题i=7/2,你的结果是多少呢?如果是3.5那就说明你对C语言中的运算符还不是理解的很透彻。C语言的运算符十分丰富,包含的范围也非常广泛,还具有不同的优先级,这就是C语言的功能更加完善。也正是因为这样,要求我们在运算过程中要非常小心,才能避免出错。对于上面这道题是关于除法运算的,结果应该是3。为什么呢?因为整数相除,结果为整数;若两个操作数中有一个是实型,结果就为实型。像10.0/3=3/3333„„,10/(5*3)=0。还有就是求余运算,关于这类运算要求其两个操作数必须为整数,符号与被除数相同,且在计算x%y时,y的值不能为0。如5%(-3)=2,5%2=1。在众多的运算符中,最让我难理解的就是逗号运算符。逗号运算符即“,”又称顺序求值运算符。“,”运算符的左边的表达式总不返回值,而最右边表达式的值才是整个逗号表达式的结果。例:(1) a=3*5,a*4,a+5;结果为20;(2)a=3,a=a*4,a+5;结果为65;在这里逗号表达式中没有赋值的中间表达式不会影响到逗号表达式的最终值,就想(1)中的a*4一样,是不会影响到结果的。 还要说明下的是优先级问题。C语言中优先级分为15级。在我们现在使用的课本后面附有“C语言运算符的优先级与结合性”,我觉得这张表很重要,需要我们认真掌握。 关于C语言的问题远远不只上述这些,我们在遇到困难时,要及时翻书或请教他人,不能让千里之堤,溃于蚁穴。到头来害了自己。 三.Turbo C及程序调试相关问题 学过C语言的人都有这种感受,好不容易编出的程序,上机时却调试不出来。这也说明了上机操作的重要性。现在我们使用的上机操作程序是Turbo C2.0,因此对于Turbo C我们自然要有一些认识。 Turbo C是在微机上广泛使用的编译程序。它具有方便、直观、易用的界面和丰富的库函数。它总共包括8个菜单项,也具有一些快捷键如F5(扩大编辑窗口),Ctrl+F9(系统执行已编译和连接好的目标文件),Alt+F5(查看运行结果),Ctrl+Y(删除光标所在的一行),Ctrl+T(删除光标所在处的一个词),Home(将光标移到所在行的开始),End(将光标移到所在行的结尾)等等。虽然现在Turbo C2.0使用的还比较多,但其是用于DOS环境的,不能用鼠标操作,主要通过键盘选择菜单,不大方便。因此不少人选择Turbo C++3.0,虽然它也是DOS环境下的集成环境,但是可以把启动启动Turbo C++3.0集成环境的DOS执行文件tc.exe生成快捷方式放在桌面上,此外,它可以用鼠标操作菜单,很方便。 基本了解完Turbo C后,可以上机调试了。“程序调试”这一工作的难度比较大。是否调试的成功我觉得受了以下几方面的影响:编程习惯、逻辑分析能力、和自身对编程的熟悉程度。 良好的编程习惯有助于程序的阅读和检查程序中的错误。这些好的习惯包括对程序加注释,注意语句的选择和嵌套等。好的习惯也为他人阅读程序提供了方便。与之相反,不好的编程习惯就会为程序的调试带来困难。虽然有时编程者可以花很少的时间写完程序,但也许他会花费很长的时间内来进行调试,有时甚至导致整个程序的调试失败,得不偿失。 个人的逻辑分析能力也是很重要的。程序调试时得到的出错信息可能是语法错误,也可能是逻辑错误造成的。对于语法错误,有时只要翻翻书,熟悉一下语法就能解决,而对于逻辑错误则没有这么简单了。这类错误只能靠我们自己的辑分析才能找出。而如果一开始我们就认定自己的逻辑是对的,那就不能快速认识到哪里出错了。在大多数情况下,要解决这些问题必须要反复多次,调整自己的逻辑思维,直到最终程序的调试通过。 总结: C语言的博大精深不是这区区4000多字能够说完的。在现在乃至今后的学习生涯中,对于C语言我们也许只能现在在课堂上学习它,而一旦毕业,就永远不会去碰了,又或许对C语言的探讨离校后还将继续下去。不管怎样,这学期的学习我想对于我们每个人人来说都是一份财富,分析问题的能力得到了锻炼,逻辑思维得到了开发。在这里也要对老师的辛勤教导给予我最衷心的感谢。由于自己本身的能力不高,对C语言的学习还不能很好的掌握,此报告有不恰当的地方,也希望老师能够谅解。 这学期就要结束了,但新的一学期很快又将来临,我会将学习C语言的热忱保持下去,完成学习,实现自己的目标! 附录:参考文献 周鸣争.C语言程序设计教程.成都:电子科技大学出版社,2005年8月 谭浩强.C程序设计(第三版).北京:清华大学出版社,2005年7月 2007年12月27日