解除对C学习恐惧感,那么如何学习C语言呢?

单片机系列2019-01-10 13:16:28
点击上方
“蓝色字”可关注我们

实用干货下载关注我们“单片机系列”,回复“资料”获取单片机相关资料一起走向智能工业革命时代,单片机DIY、基于c语言/汇编的编程。持续更新中······

    解除了自己对C语言学习的恐惧感后,那么如何学习C语言呢?

    下面是我在学习程序设计和教学中的一点心得体会(对程序设计语言都适用),并结合我开发的C语言软件,来介绍C语言的学习方法,希望对C语言初学者能够有所帮助。

      初学者遇到最多的困惑是:上课也能听懂,书上的例题也能看明白,可是到自己动手做编程时,却不知道如何下手。发生这种现象的原因有三个:
    一、所谓的看懂听明白,只是很肤浅的语法知识,而我们编写的程序或软件是要根据要解决问题的实际需要控制程序的流程,如果你没有深刻地理解C语言的语句的执行过程(或流程),你怎么会编写程序解决这些实际问题呢?
    二、用C语言编程解决实际问题,所需要的不仅仅是C语言的编程知识,还需要相关的专业知识。例如,如果你不知道长方形的面积公式,即使C语言学得再好你也编不出求长方形的面积的程序来。
    三、C语言程序设计是一门实践性很强的课程,“纸上谈兵”式的光学不练是学不好C语言的。例如,大家都看过精彩自行车杂技表演,假如,你从来没有骑过自行车,光听教练讲解相关的知识、规则、技巧,不要说上台表演、就是上路你恐怕都不行。
   
    
    出现问题原因清楚了,那么如何学习呢?请你看【C语言学习六步曲】  
    特别提醒:在使用本方法之前一定要先阅读C语言的相关内容,要初步掌握相关知识的要点,然后按下述方法学习,可以达到理解、巩固、提高C语言知识和提高程序调式能力的目的。

    
    第一步、验证性练习 

    在这一步要求按照教材上的程序实例进行原样输入,运行一下程序是否正确。在这一步基本掌握C语言编程软件的使用方法(包括新建、打开、保存、关闭C程序,熟练地输入、编辑C程序;初步记忆新学章节的知识点、养成良好的C语言编程风格)。

    

    使用《Turbo C/C++ for Windows 集成实验与学习环境》软件可以很方便地看着软件集成的《C语言入门教程》输入练习其中的程序例题。具体使用方法参见软件帮助部分。

      初学者最容易犯的错误是
    1、没有区分开教材上的数字1和字母l,字母o和数字0的区别,造成变量未定义的错误。另一个易错点是将英文状态下的逗号,分号;括号()双引号""输入出入成中文状态下的逗号,分号;括号(),双引号“”造成非法字符错误。 
    2、C语言初学者易犯语法错误:使用未定义的变量、标示符(变量、常量、数组、函数等)不区分大小写、漏掉“;”、“{”与“}”、“(”与“)”不匹配、控制语句(选择、分支、循环)的格式不正确、调用库函数却没有包含相应的头文件、调用未声明的自定义函数、调用函数时实参与形参不匹配、数组的边界超界等。
    3、修改C语言语法错误时要注意以下两点:
    (1)、由于C语言语法比较自由、灵活,因此错误信息定位不是特别精确。例如,当提示第10行发生错误时,如果在第10行没有发现错误,从第10行开始往前查找错误并修改之。

    (2)、一条语句错误可能会产生若干条错误信息只要修改了这条错误,其他错误会随之消失。特别提示:一般情况下,第一条错误信息最能反映错误的位置和类型,所以调试程序时务必根据第一条错误信息进行修改,修改后,立即运行程序,如果还有很多错误,要一个一个地修改,即,每修改一处错误要运行一次程序。

    第二步、照葫芦画瓢 

    在第一步输入的C程序的基础上进行试验性的修改,运行一下程序看一看程序结果发生了什么变化,分析结果变化的原因,加深新学知识点的理解。事实上这和第一步时同步进行的,实现“输入”加深知识的记忆,“修改”加深对知识的理解。记忆和理解是相辅相成的,相互促进。

   例如:将最简单的Hello World!程序
#include "stdio.h"
int main()
{
    printf("Hello World!\n");
    return 0;
}
中的

printf("Hello World!\n");

中的Hello World!改成你的姓名,运行一下程序,看有什么变化?

再如求1+2+3...+100的和的程序

#include <stdio.h>

main()

{

    int i,sum=0;

    for(i=1;i<=100;i++)
        {
            sum=sum+i;
         }
         printf("sum=%d\n",sum);
    }



第1次将for(i=1;i<=100;i++)中的100改成50,运行一下程序,看有什么变化?

第2次将for(i=1;i<=100;i++)中的i++改成i=i+2,运行一下程序,看有什么变化? 

找出程序结果变化的原因,就加深了对C语句的理解。


    第三步、不看教材看是否能将前两步的程序进行正确地输入并运行。

    在这一步要求不看教材,即使程序不能运行,看能否将其改正,使其能正确运行。目的是对前两步的记忆、理解进一步强化。


    第四步、增强程序的调试能力

    在《Turbo C/C++ for Windows 集成实验与学习环境》集成的教材中每章都有C语言初学者易犯的错误,按照易出错的类型,将教材中的正确的程序改成错误的程序,运行一下程序,看出现的错误信息提示,并记下错误信息,再将程序改成正确的,运行一下程序。这样反复修改,就能够学习C语言程序发生错误的原因和修改错误的能力。
      注意:每次只改错一个地方,目的是显示发生该错误的真正原因,避免一次改动多个地方,搞清发生错误的真正原因,切记!!!!

      注意:上机调试程序时要带一个记录本,记下英文错误提示信息和解决该错误问题的方法,积累程序调试经验,避免在编程犯同样的错误,切记!!!!。

例如,将Hello World程序中语句

printf("Hello World!\n");

中的;改成中文的分号;

运行一下程序,看有什么结果?

C语言的错误信息的形式:(下面例子是的Turobo C2.0错误信息,如图1)

错误   文件名                  行号     冒号           错误内容
 
↓      ↓                     ↓       ↓              ↓
 
Error E:\WinTc\WinTc\frist.c   5        :   Function call missing) in function main
 

C语言的错误信息的形式:(下面例子是Visual C++6.0 错误信息,如图2)

文件名                  行号 冒号 错误代码  冒号     错误内容
  
↓                      ↓   ↓      ↓     ↓         ↓
 
e:\wintc\wintc\frist.c ( 5 ) : error C2143 : syntax error : missing ')' before ';'


      软件集成了高校教学用的最多的两个编译器Visual C++6.0和Turbo c 2.0,支持C、标准C、C++、标准C++、WINDOWS C程序的编辑、编译、和调试。软件根据用户输入程序的类型智能选择编译器,不用使用者干涉。
 


      调试程序是一种实践性很强的事,光纸上谈兵是是没用的,就像游泳运动员只听教练讲解示范,而不亲自下水练习,是永远学不会游泳的。
    即使在优秀的程序员编写程序也会犯错误的,可能事最低级的语法错误,但他能快速发现错误并改正错误,而我们C语言初学者面对错误提示,不知道发生了什么错误,如何改正,这就是差别。



     第五步、研究典型的C语言程序,提高程序设计能力

        经过上述过程的学习,我们已经学会了C语言各种语句的流程(即计算机是如何执行这些语句的过程),然后就可以研读别人编写C语言经典程序,看懂别人是如何解决问题的,学习解决问题的方法和程序设计技巧,提高自己的程序设计能力。
    
    在软件中有50多个典型的源程序,研究它的实现方法,提高自己的程序设计能力。


    第六步、研究课程设计源成序,提高C语言程序设计能力和调试较大程序的能力。
 
    C语言课程设计的目的:是让学生综合利用所学的C语言知识,解决一些接近实际问题题目,提高程序设计和调试较大程序的能力,为进一步进行软件开发打下坚实的基础。
    软件中有4个注释详细的课程设计源程序

     摘自《Turbo C/C++ for windows 集成实验与学习环境》的《C语言入门教程》


      C语言好学吗?
    C语言好学吗?初学者常常问这个问题。答案很简单,对C语言感兴趣,有强烈的学习欲望,就容易学。如果不感兴趣,再简单的知识也学不会。
    试想一下,现在有几个学校教学生打游戏呢?答案是否定的,可是很多学生都会打游戏,而且还经常交流打游戏的心得体会。
    如果你对C语言感兴趣,为什么不把学习打游戏的经验用到学习C语言呢?如果这样的话,C语言还难学吗?
     最后送C语言初学者一句话来共勉:首先要相信自己是有能力学好C语言的,然后不惜一切代价把这种能力表现出来,你就成功了。做任何事,何尝不是这样呢?

     兴趣是学习C语言的最大动力,学习方法给你指明努力的方向,让你事半功倍。如果你感觉对你有帮助的话,请回帖支持,让更多的朋友知道它,谢谢支持!!!


____________________________________________________________________________

     

成为编程高手的二十二条军规【转载】



    作者:Froth  
  1.大学生活丰富多彩,会令你一生都难忘,但难忘有很多种,你可以学了很多东西而难忘,也会因为什么都没学到而难忘!

  2.计算机专业是一个很枯燥的专业,但即来之、则安之,只要你努力学,也会发现其中的乐趣的。

  3.记住:万丈高楼平地起!基础很重要,尤其是专业基础课,只有打好基础才能学得更深。

4.C语言是基础,很重要,如果你不学好C语言,那么什么高级语言你都学不好

  5.C语言与C++语言是两回事。就像大熊猫和小熊猫一样,只是名字很像。

  6.请先学习专业课《数据结构》、《计算机组成原理》,不要刚开始就拿着一本VC在看,你连面向对象都搞不清楚,看VC没有任何用处。

  7.对编程有一定的认识后,就可以学习C++了。(是C++而不是VC,这两个也是两码事。C++是一门语言,而VC教程则是讲解如何使用MFC

类库,学习VC应建立在充分了解C++的基础之上。看VC的书,是学不了C++语言的。)

  8.学习编程的秘诀是:编程,编程,再编程;

  9.认真学习每一门专业课,那是你今后的饭碗。

  10.在学校的实验室就算你做错一万次程序都不会有人骂你,如果在公司你试试看!所以多去实验室上机,现在错得多了,毕业后就错得少

了。

  11.从现在开始,在写程序时就要养成良好的习惯。

  12.不要漏掉书中任何一个练习题——请全部做完并记录下解题思路。

  13.你会买好多参考书,那么请把书上的程序例子亲手输入到电脑上实践,即使配套光盘中有源代码。

  14.VC、C#、.NET这些东西都会过时,不会过时的是数据结构和优秀的算法!

  15.记住:书到用时方恨少。不要让这种事发生在你身上,在学校你有充足的时间和条件读书,多读书,如果有条件多读原版书,你要知道

,当一个翻译者翻译一本书时,他会不知不觉把他的理念写进书中,那本书就会变得像鸡肋!

  16.我还是强调认真听专业课,因为有些课像《数据结构》、《编译原理》、《操作系统》等等,这种课老师讲一分钟能让你明白的内容,

你自己看要看好几个月,有的甚至看了好几年都看不明白。 

  17.抓住在学校里的各种实践的机会,要为自己积累经验,就业时经验比什么都有用。

  18.多去图书馆,每个学校的图书馆都有很多好书等你去看!

  19.编程不是技术活,而是体力活。

  20.如果你决定了要当一个好的程序员,那么请你放弃游戏,除非你是那种每天只要玩游戏就能写出好程序的天才!

  21.你要有足够的韧性和毅力!有个高手出一一道题测试你的韧性和毅力:找个10000以内的素数表,把它们全都抄下来,然后再检查三遍

,如果能够不间断地完成这一工作,你就可以满足这一条。

  22.找到只属于你自己的学习方法。不要盲目的追随别人的方法,适合自己的才是最好的!


_____________________________________________________________________________
   
     转摘于:《中国电脑教育报》   作者:未知 
    
    不知不觉做软件已经做了十年,有成功的喜悦,也有失败的痛苦,但总不敢称自己是高手,因为和我心目中真正的高手们比起来,还差得太远。世界上并没有成为高手的捷径,但一些基本原则是可以遵循的。 


    1、扎实的基础 

  数据结构、离散数学、编译原理,这些是所有计算机科学的基础,如果不掌握它们,很难写出高水平的程序。程序人人都会写,但当你发现写到一定程度很难再提高的时候,就应该想想是不是要回过头来学学这些最基本的理论。不要一开始就去学OOP,即使你再精通OOP,遇到一些基本算法的时候可能也会束手无策。因此多读一些计算机基础理论方面的书籍是非常有必要的。 

  2、丰富的想像力 

  不要拘泥于固定的思维方式,遇到问题的时候要多想几种解决问题的方案,试试别人从没想过的方法。丰富的想像力是建立在丰富的知识的基础上,除计算机以外,多涉猎其他的学科,比如天文、物理、数学等等。开阔的思维对程序员来说很重要。 

  3、最简单的是最好的 

  这也许是所有科学都遵循的一条准则,复杂的质能转换原理在爱因斯坦眼里不过是一个简单得不能再简单的公式:E=mc2。简单的方法更容易被人理解,更容易实现,也更容易维护。遇到问题时要优先考虑最简单的方案,只有简单方案不能满足要求时再考虑复杂的方案。 

  4、不钻牛角尖 

  当你遇到障碍的时候,不妨暂时远离电脑,看看窗外的风景,听听轻音乐,和朋友聊聊天。当我遇到难题的时候会去玩游戏,当负责游戏的那部分大脑细胞极度亢奋的时候,负责编程的那部分大脑细胞就得到了充分的休息。当重新开始工作的时候,我会发现那些难题现在竟然可以迎刃而解。 

  5、对答案的渴求 

  人类自然科学的发展史就是一个渴求得到答案的过程,即使只能知道答案的一小部分也值得我们去付出。只要你坚定信念,一定要找到问题的答案,你才会付出精力去探索,即使最后没有得到答案,在过程中你也会学到很多东西?

  6、多与别人交流 

  三人行必有我师,也许在一次和别人不经意的谈话中,就可以迸出灵感的火花。多上上网,看看别人对同一问题的看法,会给你很大的启发。 

  7、良好的编程风格 

  注意养成良好的习惯,代码的缩进编排,变量的命名规则要始终保持一致。大家都知道如何排除代码中错误,却往往忽视了对注释的排错。注释是程序的一个重要组成部分,它可以使你的代码更容易理解,而如果代码已经清楚地表达了你的思想,就不必再加注释了,如果注释和代码不一致,那就更加糟糕。 

  8、韧性和毅力 

  这也许是“高手”和一般程序员最大的区别。高手们并不是天才,他们是在无数个日日夜夜中磨炼出来的。成功能给我们带来无比的喜悦,但过程却是无比的枯燥乏味。你不妨做个测试,找个10000以内的素数表,把它们全都抄下来,然后再检查三遍,如果能够不间断地完成这一工作,你就可以满足这一条


 长按识别图中二维码关注我们

单片机系列

  看完的同时,请分享到朋友圈

  每天更新单片机各种知识,电子

  制作DIY及电子行业最新资讯

                   衷心的感谢您的支持