如何学好C语言?

如何学好C语言?

第1个回答  2010-02-02
对于书<<C程序设计>>(谭浩强) -> <<C与指针>> -> <<数据结构>>(严蔚敏)
-> <<算法导论>>

建议楼主把<<C程序设计>>(谭浩强)的习题重头到位做一遍(我就是这样子的),基础的却很重要,我一直认为学习C语言的目的: 为了更好的学习其他语言。不知道你为什么要把C语言学得很"精",难道想写操作系统、病毒?不需要太钻它,只要它使你锻炼得有严密的逻辑思维,较强解决问题的能力就行了,然后再好好学习你将来想要吃饭的语言,例如C++、Java、C#等...

如果你真的想以后能达到写操作系统内核的境界,那C语言得学得越精越好。

下面是转裁文章,写的比较好:

1、学好C语言,你可以很好地应付任何一种编程工具。

2、一定要多上机练习,通过程式了解相关知识。几经反复方得正果。

3、不要把学习C语言当成一种任务,更不要把它看成很难完成的任务。要充满自信,只要是一个智力正常的人都能学好C语言。始终保持游戏的心态,多发现其中的乐趣。当感到编程趣味无穷,那你在电脑方面将前程无量。

4、如果一个程式一时无法弄清楚最后暂时放在一边,过一段时间你可能会从其他的程式中悟出道理。

5、C语言是一个整体,各个方面是有机联系的,要从总体上把握它,不要把它割裂成互不关联的部件。

6、不要完全相信教材(包括本讲义),所有结论最好都上机验证。

谈及C语言,我想凡是学过它的朋友都有这样一种感觉,那就是“让我欢喜让我忧。”欢喜的是,C语言功能非常强大、应用广泛,一旦掌握了后,再自学其他语言就显得轻而易举了。忧虑的是,C语言犹如“少林武功”一般博大精深,太难学了。其实就笔者认为C语言并非是“difficult(困难)”的,只要你能理清思路,掌握它的精髓,那么自学C语言是一件非常容易且又其乐无穷的事。今天本人就与大家一起谈谈如何学习C语言或者说学习C语言应从哪几方面着手。

一、明确学习目的:
◆ C语言功能强大,本书涉及知识结构全面、合理。是一门非常好的编程语言基础语言。
◆ C是一门学习逻辑、程序算法、算法实现很好的教程。通过第一学期C语言的学习,从而可以了解程序的设计编码的过程。
◆ C是一单进程、单线程执行,从头到尾执行,学习难不小。但结构严谨的高级语言,可以很好学习编程规范和要求。
◆ C语言是为以后学习其它语言打下基础的语言。

二、好的学习方法:
基于上述学习目的并且也我们第一门编程语言。学习方法是:
◆ 课前预习,课后复习,认真做课堂、课后的作业,理解理论知识。
◆ 记住语法规则。
◆ 加强逻辑思维。
◆ 多动手,通过练习上机了解它的运行过程。
◆ 实践—>理论—>再实践,刚开始学习C语言时,按示例练习,并推动理论的学习,然后再自己多思考,多上机实践。

常见问题:

1、有同学听说C语言很难,刚学习到第二、三章时,于是说:老师,我不会呀!真的很难。我不知道如何学习?
分析:
1)心理作用,在没有学习之前都认为很难了。学不会也正常。
2)前三章是基础,对于没有学习过编程语言的同学来说,新的专业名词很多。
3)前三章是基础,还不能完整的写出一个C程序。于是,就不知道如何去用,在哪个时候用等很多的疑问。

问题的存在:过于着急,对新的事务领悟不够。
解决方法:学习是循序渐进和积累的过程,不要着急。这此知识都是为以后作铺垫的。

2、有同学学到数组时,说:听你上课时,我懂,但要我自己写,我不知道如何写?不知道如何开始?
分析:
1)逻辑性思想太乱。如果问:“如果班上有30个同学,要判断成绩是否及格,你将如何做?”;“当然先知道每个同学的成绩,然后一个一个和60比较,如果大于等60,则及格,否则不及格。”;“那么C语言来实现,如何做?”。声明30个变量存储成绩?不是一个好办法。如果声明一个30元素的数组,是不是更合理。另外,如果要写30个条件语句来判断,也太过于繁锁。如果用for循环是不是更加合理。
2)练习太少,有解决方法,但不能用C语言实现。

问题的存在:思路不清淅,练习太少。
解决方法:多上机练习,多思考,举一反三。了解程序的运行过程和编码。

三、学习要点和重点:
◆ 第一章至第四章的:基础知识和理论知识必须要求能理解、领悟。也是学习其它语言的基础。
◆ 第二章、第三章提到很多的专业名词,如数据类型,变量与常量的区别,标识符的命名规则,表达式及各种运算符及输入输出函数基础
◆ 五章和第六章:程序的基本结构,学习完前六章,要求能理解程序运行和编码的过程。
◆ 将我们的算法用编程语言来实现,主要是学习程序设计的逻辑性。也是学习其它语言的基础
◆ 第七章到第十一章:学习C语言的特色,更深入了解C语言。本章让学员加强空间的想象力。
◆ 第十二章:是文件的操作。考虑的是如何将程序的输出结果及相关信息用文件记录下来。

四、学习难度:
◆ 与日常的自然语言的表达不完全相同,所有结果要通过计算才能得。计算机没有想像能力和空间思维能力。计算机能运行,依靠程序员的严谨的命令来驱动。
◆ 语法格式多,知识点全面。应用时,要将零散的知识点有效有序的组合。
很多问题的解决方法是需要经验的。
第2个回答  2020-02-13
C语言是一种编程语言.
1.英语不好
数学不好
这是个不利因素
但就编程来讲这并不是最重要的,重要的是你的逻辑思维和坚持学习的恒心,学编程特别是语言就要多看,多思考,多练,也就是多敲代码.
2.就C语言来说,是编程者应该好好学的一门语言,因为它是你日后要学的其他一些更高级的面向对象的编程语言的基础,学好了C语言,日后学高端语言就相对容易一些,而且在学习C语言的同时你的逻辑思维也开始形成.总之他是你经常听到的VB
C++
JAVA
.NET等等语言的一个基础.
3.你说的那本书是在学校里用的比较多的书,还可以.但主要看你们那讲师的水平了,有实际软件开发经验的老师会让你听的很轻松就理解了,要是只会照本喧照的老师那就会把其实不是太复杂的问题将的很复杂并难以理解(在传统学校里是很常见的).其实C语言也别不是非常难学.如果你认真去学把该理解的东西理解了学好C是没有问题的,3个月也够了.
但是这种水平也只是说你把C语言基本学会了,对以后的学习打了个不错的基础,这其实也就够了.因为你说:"将来想凭这几个月学的C语言出去找分工作".其实可以看出你对现在实际的软件开发工作不太了解,凭C去找工作的话,那你至少要学上几年而不是短短的几个月,因为纯搞C语言就是将来作低层开发或向嵌入式开发发展,这个方向不是一日之功,而且就业面不是很宽!
4.如果你想找编程的工作向软件开发的方向努力的话,那么你应该有一个正确的明确的方向规划..
3
4个月把C语言的核心语法和指针
数组等学好
理解了,会用,然后对做些小的程序练习加以巩固.这也就够了(因为不是非要向3中说的那个方向做的话,C语言就是打个语言的基础).
然后随着你学习的接触你会学VB
SQL数据库
ORACLE
C++
JAVA
JSP
ASP.NET
.NET等等现代所用的高级语言,工作中大都也是用这些高级的面向对象的语言在编程.
总之 编程,编程,再编程...这就是诀窍!
对于初学者来说,自己写程序有点儿困难,那就先按书上的例子来,一定要上机亲手实践,不管这个程序有多么的简单..
第3个回答  2015-10-11
学精c语言,不是一蹴而就的。

C语言是不需要任何基础的,只要是学过或自学过计算机基础就行了,说通俗一点就是你会用电脑就行了,然后买一本C语言的书,照着学就可以了,当然最好有老师,毕竟很多算法还是别人指点一下为好的。

我们大一的时候用的好像是清华大学谭浩强编的《C语言教程》,很不错的,基本上那本书你能吃透,什么C啊,FORTUAN啊都不成问题了,反正当时我们般几乎都过了C语言二级
我觉得学习编程最重要的是入门,如果你入门的时候有一个好的方 法和思路,打下比较扎实的基础,对今后的编程工作是很有益处的。即使在学习新的编程语言也无所谓,因为它们有很多相通之处,可以相互借鉴。

之本知识只是一个方面,当然,书本知识还是要掌握好的。但是要学好计算机方面的只是特别是计算机语言类,最重要的是编程能力,所以,经常上机实验锻炼是非常重要的,你可以使用Microsoft VC6.0软件(网上可下)进行编程,它可大大提高你的C语言编程能力,切记,不能只是纸上谈兵。

我当时学习pascal和C语言的时候是将书后的习题都做了一遍,感觉效果很好。
当然了,学习什么语言也要看你具体准备从事什么行业。例如你要进行嵌入式开发,C就是很好的选择,如果是Windows开发,那么VC就不错。还有数据库方面的开发、网络开发等等。不同的语言适合不同的方面。要看自己的选择的,呵呵 。

还有很多人说自己的基础很差,甚至中学毕业什么的。其实这个并不重要,比较说英语,在计算机语言里所用到的单词量很少,而且都是常用词,经常使用就记住了。当然,如果你要看原文资料或者帮助的话,专业词汇比较多,不过在金山词霸的帮助下,经常看,也是没什么大的问题的。至于数学什么的,其实数学只是培养你一个逻辑思维能力,在初学编程的时候影响不是很大。况且,作为一个基础编程人员来说,上面还有系统分析师、项目经理,他们会把需求分析、概要设计和详细设计做好的,你只要按照文档写代码就OK了。不过,要上更上一步的话,其他基础知识就非常重要了,毕竟你不能写一辈子代码。

在你学习好C语言以后,个人建议好好学习一下数据结构和软件工程。这两门对你的水平提高都是很有帮助的。特别是软件工程,它能够使你按照科学的工程方法进行软件开发,对今后的发展很有好处。

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
第4个回答  2010-02-02
1.现在写程序很少用到C了,但作为基础还是要好好的学习。所以首先必须要认真学习C的基本编程知识,与此同时必须用大量的时间去做练习,从基本的小的程序开始;然后等你到达一定程序的时候,你就需要去大量的阅读其他高手写的代码,其实只要是一个完整系统里的C代码也行,只要能从别人的代码里学到一个技巧或用法,我觉得就很值了;最后再就靠自己去研究了,多上网看看。
2.个人觉得必须把基础打好,“精通”这个说法,其实就是别人或自己对自己付出的认可而已,为了提到自己还是要多看看关于C的书籍,个人觉得国内和国外都要好的教材。(等你到达一定的程序,你只要看一些目录,应该就可以判断出来这本学你需不需要继续看)
3.只要肯下功夫学,没有什么难的。编程就是要多动手,少动口。
4.“我可以学会吗” ==》你对自己没有信心吗?
第5个回答  2010-02-05
1.从初学者到顶尖高手,没什么奇招秒路的,学编程就得脚踏实地一步一步,是会很枯燥的,不是传说中黑客的那个潇洒的样子,比你想像的要枯燥的多,形象的说其实就是个高级的打字员,所以贵在坚持,能坚持能忍受,你就离高手不远了。

2.基础的书就是清华大学谭浩强的那本,入门的,然后他会给你一些其他的进阶指导,你可以一点点的去理解,在结合工作需要去具体的深造,效率高而且会有成就感。

3.可以很肯定的告诉你,可以学,但是会比较累,在初始你可能感觉不到,因为算法都是一些简单的,为帮助理解的,若想学的精通必须有大学高数的基础,一些高级的算法是要用到高数中的算法公式的。

4.程序的算法是必学的,是需要你花大量的时间,去理解的,钻研的。
总之,想学你就要沉下心来,慢慢的向前滑翔,而不是飞翔。

不知道你会不会对C++感兴趣,这是我在学完C后转向C++的一些学习资料和心得.
1、继续学习完善C++基础知识,除了教材之外,推荐书籍:C++程序设计教程(钱能主编、清华大学出版社)
2、从语言本身继续深入学习C++语言本身的特点,对语言本身有更深入的认识,推荐书籍:C++Primer、The C++ Programming Language Special 3rd Edition、Thinking in C++、Effective C++、More Effective C++。
3、从算法和结构设计角度继续学习,在面向过程和面向对象的设计和应用深入学习,推荐书籍:数据结构C++版、设计模式、STL源码剖析。

其中,第1部分为基础知识的学习,2、3部分知识相通,为提高部分。
这是一般学习的渐进方法,语言都是通用的。你可以在使用编程软件时候利用些小技巧,帮助你理解程序运行的过程,加深记忆。
比如:首先保证整个程序可以编译通过,然后可以在编辑程序的状态下在你想运行中断的地方按 F9 打断点(再次按F9就可以取消)。运行程序的时候,按 F5 调试运行,这种状态下,可以看到内存中的存储状态,比如变量的值、函数的调用关系等,当程序运行到你曾经打的断点的时候就会暂时中断,你可以查看内存状态。

以下是所有学编程者要读懂的:
1.浮躁的人容易说:XX语言不行了,应该学YY;——是你自己不行了吧!?

2.浮躁的人容易问:我到底该学什么;——别问,学就对了;

3.浮躁的人容易问:XX有钱途吗;——建议你去抢银行;

4.浮躁的人容易说:我要中文版!我英文不行!——不行?学呀!

5.浮躁的人容易问:XX和YY哪个好;——告诉你吧,都好——只要你学就行;

16.浮躁的人分两种:a)只观望而不学的人;b)只学而不坚持的人;

7.把时髦的技术挂在嘴边,还不如把过时的技术记在心里;

8.学习编程最好的方法之一就是阅读源代码;

9.在任何时刻都不要认为自己手中的书已经足够了;

10.看得懂的书,请仔细看;看不懂的书,请硬着头皮看;

11.别指望看第一遍书就能记住和掌握什么——请看第二遍、第三遍;