2022年如何学习C语言 .pdf
《2022年如何学习C语言 .pdf》由会员分享,可在线阅读,更多相关《2022年如何学习C语言 .pdf(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1 怎样学习C 语言.1几点建议.2编程者说c 语言.3亲密接触C 语言.4初学者的困惑.6C 语言常见错误.7怎样学习 C 语言很多人对学习C 语言感到无从下手,经常问我同一个问题:究竟怎样学习C 语言?我是一个教师,已经开发了很多年的程序,和很多刚刚起步的人一样,学习的第一个计算机语言就是 C 语言。经过这些年的开发,我深深的体会到C 语言对于一个程序设计人员多么的重要,如果不懂C 语言,你想写底层程序这几乎听起来很可笑,不懂C 语言,你想写出优秀高效的程序,这简直就是天方夜谭。为什么C 语言如此重要呢?第一:C 语言语法结构很简洁精妙,写出的程序也很高效,很便于描述算法,大多数的程序员愿
2、意使用C 语言去描述算法本身,所以,如果你想在程序设计方面有所建树,就必须去学它。第二:C 语言能够让你深入系统底层,你知道的操作系统,哪一个不是C 语言写的?所有的 windows,Unix,Linux,Mac,os/2,没有一个里外的,如果你不懂C 语言,怎么可能深入到这些操作系统当中去呢?更不要说你去写它们的内核程序了。第三:很多新型的语言都是衍生自C 语言,C+,Java,C#,J#,perl.哪个不是呢?掌握了C语言,可以说你就掌握了很多门语言,经过简单的学习,你就可以用这些新型的语言去开发了,这个再一次验证了C 语言是程序设计的重要基础。还有啊,多说一点:即使现在招聘程序员,考试都
3、是考C 语言,你想加入it 行业,那么就一定要掌握好C 语言。那么究竟怎样学习C 语言呢?1:工欲善其事,必先利其器这里介绍几个学习C 语言必备的东东:一个开发环境,例如 turbo C 2.0,这个曾经占据了DOS 时代开发程序的大半个江山。但是现在 windows 时代,用turbo C 有感觉不方面,编辑程序起来很吃力,并且拖放,更没有函数变量自动感应功能,查询参考资料也不方便。建议使用Visual C+,这个东西虽然比较大块头,但是一旦安装好了,用起来很方便。一本学习教程,现在 C 语言教材多如牛毛,但推荐大家使用C 语言程序设计谭浩强主编 第二版清华大学出版社,此书编写的很适合初学者
4、,并且内容也很精到。除此以外,现在有很多辅助学习的软件,毕竟现在是Window 时代了,学习软件多如牛毛,不象我们当初学习,只有读书做题这么老套。我向大家推荐一个“集成学习环境(C 语言)”,里边的知识点总结和例程讲解都非常好,还有题库测试环境,据说有好几千题,甚至还有一个windows 下的 trubo C,初学者甚至不用装其它的编译器,就可以练习编程了,非常适合初学者。还有一个“C 语言学习系统”软件,不过感觉只是一个题库系统,如果你觉得题做的不够,不妨也可以试试。名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 11 页 -2 2:葵花宝典学习计算机语言最好的方法是什么?答曰
5、:读程序。没错,读程序是学习C 语言入门最快,也是最好的方法。如同我,现在学习新的J#,C#等其他语言,不再是抱着书本逐行啃,而是学习它们的例程。当然,对于没有学过任何计算机语言的初学者,最好还是先阅读教程,学习完每一章,都要认真体会这一章的所有概念,然后不放过这一章中提到的所有例程,然后仔细研读程序,直到每一行都理解了,然后找几个编程题目,最好是和例程类似的或一样的,自己试图写出这段已经读懂的程序,不要以为例程你已经读懂了,你就可以写出和它一样的程序,绝对不一定,不相信你就试一试吧,如果写不出来,也不要着急,回过头来再继续研究例程,想想自己为什么写不出来,然后再去写这段程序,反反复复,直到你
6、手到擒来为止,祝贺你,你快入门了。3:登峰造极写程序的最高境界其实就是掌握各种解决问题的手段(数据结构)和解决问题的方法(算法)。是不是写出底层程序就是程序设计高手呢?非也,写底层程序,无非是掌握了硬件的结构,况且硬件和硬件还不一样,要给一个芯片写驱动程序,无非就是掌握这块芯片的各种寄存器及其组合,然后写值读值,仅此而已。这不过是熟悉一些io 函数罢了。那么怎样才算精通程序设计呢?怎样才能精通程序设计呢?举个例子:你面前有 10 个人,找出一个叫“张三”的人,你该怎么办?第一种方法:直接对这10 个人问:“谁叫张三”。第 2 种方法:你挨个去问“你是不是张三?”,直到问到的这个人就是张三。第三
7、种方法:你去挨个问一个人“你认不认识张三,指给我看”。不要小看这个问题,你说当然会选第一种方法,没错恭喜你答对了,因为这个方法最快,效率最高,但是在程序设计中找到解决问题的最优方法和你用的手段却是考验一个程序员程序设计水平的重要标志,而且是不容易达到的。刚才这个问题类似于数据结构和算法中的:Map 数据结构,穷举查找和折半查找。所以掌握好数据结构和一些常用算法,是登峰造极的必然之路。最后给大家推荐严尉敏的数据结构清华大学出版社,希望每一个想成为程序设计高手的人研读此书。几点建议初学 C 语言的同学应该首先了解C 语言关键的核心概念(结构化、三个执行流程、优先级、指针、文件、共用体、函数、作用域
8、、重载等),只有弄明白了这些才能在今后的学习中游刃有余的把握C 语言的精髓。这几个概念就像逻辑线一样,把整个C 语言的体系贯穿起来,给人一种“结构化”的思想体系。下面我简要谈一下这几个核心概念。1、从宏观角度来看,结构化是C 语言的编程思想基础,就是说C 语言每一个功能模块就是一个结构,每一个结构实现一个运算或一个算法,这个结构就用大括号表示“”,大括号里面的就是算法。尤其注意的是大括号的“”括在那里,就决定在哪里结束算法功能。这些是初学者经常犯的错误,往往会把算法功能的结束点弄错。2、三个执行流程就是顺序流程、条件流程、循环流程。三个流程都是计算机通用的执行流程,是必须了解的流程,每一个算法
9、都基于这三个流程执行顺序。3、优先级是对多个函数并列时候优先算法的特权,没有注意优先级的顺序就会把算法出错,这些优先级是必须记住的。4、指针是C 语言的重要特点,是对运算速度加快运算的重要精髓。它是对数据地址的操作,而不是对数据的操作。5、文件和共用体是很简单的概念,不用多说了。文件顾名思义和日常概念一样,学过名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 11 页 -3 数据软件的都对共用体了解不是太难。6、从微观角度来看,函数是C 语言的驱动机制,所有的语句都由函数驱动来实现的。记住函数命令和相关的配置参数,就能好好的利用C 的优势。注意的是,函数不能记错,不然你将得出错的结
10、果。如果能学会调试,那就会更深一层了解函数功能的作用。7、作用域就像使用期限一样,说明从那里到那里所起的作用,在这之外的就不起作用了(过期的东西就不值钱一样)。把握好作用域的使用方式,就能明确函数的关系,不会在巨大的函数名里面迷失方向。8、重载就是为了方便用户,使用类似于调用的机制给用户减少写入时间的功能。就像查字典一样,你不懂一个字,就要去查字典(相当于调用别的工具来实现你要做的事),而查字典是你已经学会的东西,就可以做这件事了。学习 C 语言从大体上了解还不够,要把各种原理在脑海里模拟一遍,实现把计算机C的功能在人脑里运作,就能从宏观上把握C 的步骤。编程者说 c 语言谈及 C 语言,我想
11、凡是学过它的朋友都有这样一种感觉,那就是“让我欢喜让我忧。”欢喜的是,C 语言功能非常强大、应用广泛,一旦掌握了后,你就可以理直气壮地对他人说“我是电脑高手!”,而且以后若是再自学其他语言就显得轻而易举了。忧虑的是,C 语言犹如“少林武功”一般博大精深,太难学了。其实就笔者认为C 语言并非是“difficult(困难)”的,只要你能理清思路,掌握它的精髓,那么自学C 语言是一件非常容易且又其乐无穷的事。今天本人就与大家一起谈谈如何学习C 语言或者说学习C 语言应从哪几方面着手。了解一些基本知识一 C 语言的背景就个人感触,无论学习哪门语言首先应该了解一下自己所学语言的背景,也可以说它的发展史。
12、C 语言属于高级程序语言的一种,它的前身是“ALGOL”。其创始人是布朗W卡尼汉和丹尼斯 M利奇。C 语言问世时是带有很大的局限性,因为它只能用于UNIX系统上。然而随着科学技术的进步,计算机工业的发展,C 语言逐渐脱离UNIX。1987 年美国标准化协会制定了C 语言的国际标准,简称“ANSI C”,从此以后它便成为一种广泛使用的程序语言。C 语言的优点很多,主要的有如下四点:1兼备高级语言与低级语言的优点,属于一种中间语言。2它是一种结构化程序设计语言,非常适合结构化程序设计。3有较丰富的数据类型、运算符以及函数供以选用。4直接与内存打交道,使修改、编辑其他程序与文档变得轻松,简单。二二大
13、语系二种不同的学习方法笔者学习过很多程序语言,例如:C,C(C 语言的扩展),QBASIC,VB(BASIC的可视化),JAVASCRIPT,JSCRIPT,VBSCRIPT,JAVA,ASP,FOXPRO,PERL 等等,就本人实践所得,其实高级程序语言分为两大语系。一路是以C 为主的程序语言,例如:JAVASCRIPT,JAVA 等,这类语言在函数的调用,程序语句的书写,循环的控制都极为相似。另一路是以BASIC 为首的程序语言,例如:FOXPRO,VBSCRIPT 等,此类语言同样具有相似的函数调用,程序语句书写以及循环控制,但与C 语系是不同的。因此若是您以前是从 QBASIC 起家的
14、,那么在学习C 语言前最好是先洗洗脑,千万不要把学习BASIC 的方法以及思路用在C 身上。讲到这里,我想大家对C 语言一定有了感性认识吧!下面让我们再升华一下,全方位名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 11 页 -4 亲密接触它。学习C 语言必须从以下四点入手,也就是说,只要你能掌握这四点的内容,那么基本上就大功告成了。亲密接触 C 语言一输入输出C 语言的输入输出是非常严格的,或许在其他程序语言中我们可以不关心这个问题,但在 C 语言中,我们必须要彻底了解它。由于篇幅有限,因此笔者不能详谈,有兴趣的朋友可以参考由著名程序语言教授谭浩强先生主编,由清华大学出版社出版
15、的C 程序设计第二版。不过这里笔者还是有几点要谈一下。1二维浮点数数组的输入二维浮点数数组的输入(即:通过键盘给二维浮点数数组赋值)在很多专业书中都没有详细讲过这个问题。在给二维浮点数数组赋值时一定要先声明一个变量,接着把数值赋予这个变量,最后把变量数值赋予二维浮点数数组赋值。实例如下:#include stdio.hmain()float a23,x;int i,j;for(i=0;i2;i+)for(j=0;j3;j+)scanf(%f,&x);aij=x;不能写成:#include stdio.hmain()float a23;int i,j;for(i=0;i2;i+)for(j=0;
16、j3;j+)scanf(%f,&aij);同样道理,在结构性浮点数组变量中也一定要按照这种格式输入。实例如下:#include stdio.hstruct student float b3;int x;a2;main()float x;int i,j;for(i=0;i2;i+)for(j=0;j3;j+)scanf(%f,&x);ai.bj=x;2注意输出格式中“”后的字符C 语言的输出说复杂不复杂,因为常用的都很简单。可说不复杂也未必,记得曾在一次等级考前辅导我们C 语言的教授讲道:“如果 C 语言要考得很难的话,根本不用考什么指针,只要专考输出格式,我想百分之九十九的学生都不及格。”当时
17、我们无不认同。从这则事例中可以看出C 语言的输出格式之复杂程度。因此大家在学习它时千万要学会辨别输出格式中“”后的字符,每个字符都有其意义,也都有其作用。二优先级说道优先级,有很多朋友都不是很了解或说很模糊。为此笔者想先通过一个例子让各位有个概念。什么叫优先级?比方说,我们在公交车终点站排座队时总会遇到70 岁以上的老人不需要排队就能上车的情景,这就是优先级的涵义。C 程序在运行时也象排队坐车一样,首先照顾那些优先级高的运算符,若是优先级相同,那么就象遇到两位(或两位以上)70岁以上的老人那样,让他们依次上车。但是C 语言中的优先级的运算并不是千篇一律的,只能说是在大多数情况下,有些运算符的优
18、先级有其自己的特点,因此这点大家要注意。例如条件表达式:条件?结果1:结果 2,这种表达式很多朋友都知道,它的作用与IF,ELSE,名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 11 页 -5 条件判断语句很雷同,它运算时的优先级就不是按照C 语言的规则来完成的。所以说对于优先级各位编程爱好者一定灵活掌握,不要死记硬背。三指针就个人认为,C 语言中的指针是最有特色的,当然也是最难学的。指针说穿了,其实是变量的一种表现形式,只不过这种变量记载的不是数值而是地址。就象一个人可以用姓名来表示自己,也可以用身份证号码来表示自己一样。笔者涉足编程已经有三年多了,在这期间曾经收到过很多网友
19、的电子邮件询问学习指针的方法。就本人感触,学习指针最好是先学些计算机硬件工作的原理,例如:直接寻址,间接寻址等,只有了解了这些内容以后,你再学指针就比较容易理会,毕竟C 语言是一门介于机器语言与高级语言中间的语言,没有一些硬件工作知识是很难领悟它的真谛的。然而事事并非绝对,如果你没有这些知识也不要紧,只要清楚知道以下笔者总结的二点再加上多练习便可:1指针是地址变量:它的值有两种:其一是地址,其二是内容。不同的表达方式可以取不同的值,这有点象一个家庭地址在不同的场合标识的人物也不同。例如:父母亲在他们的单位所登记的家庭地址就代表他们自己,而你在学校中登记的同样的家庭地址就代表你自己。2指针是可以
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年如何学习C语言 2022 如何 学习 语言
限制150内