c语言自学知乎
1. 关于计算机编程c语言,java,自学看哪些书比较浅显易懂
其中《Head First Java》被亚马逊评为十大好书之一。在京东计算机类书籍中热度排名第16位,在Java类书籍中排名第2位。豆瓣评分为8.8分,有百分之54.4%的读者给出了五星评价。在知乎社区中有来自无数位的大神做推荐。哪本书适合推荐给 Java 初学者? - 书籍推荐
密码:380p以上都是小编收集了大神的灵药,喜欢的拿走吧!喜欢小编就轻轻关注一下吧!
2. 现在还有学c语言的必要吗 知乎
1. 与其它高级语言比起来,C 语言对硬件亲和性差不多算最高,对硬件的利用率也最高(在会用的前提下)。 C 语言可以很方便地任意操作目前计算机内任何可以用地址来表示的东西——也就是说软件能直接操作到的东西中,只有 CPU 里边的寄存器不能直接操作(嵌到 C 里边的汇编或者编译器特殊处理的不算)。2. 比 C 更能全方位操作硬件的只有汇编,但是汇编对复杂程序设计实在是太不方便了。所以目前操作系统也只有很少的部分用汇编写。3. C 语言本身对于应用程序的开发在时间上并不会造成太大的障碍。很多其它语言的高级特性其实只是库的支持而已,如果有那些 library,C 语言在开发效率上并不会有太大的问题。并且发展了这么多年,其实常用的 library 基本上也都能找到。4. 由于计算机性能的增强,越来越多的功能可以仅通过脚本在宿主环境中完成。这是 C 语言做不到的。5. C 语言也是高级语言中最能体现目前计算机硬件工作方式的语言。综合前三点,如果计算机架构不改,C 语言必定还有很大的生存空间。诚然硬件资源和人力资源(编程时间)上的权衡,随着计算机硬件的发展,越来越偏向人力资源,所以C 语言的分额会萎缩。但是人的欲望膨胀得也不慢(对计算机硬件性能的需求膨胀),在这个条件下 C 语言的需求萎缩并不会太快。上面第四点可能是 C 语言需求萎缩的最大原因,不过第四点在一定程度上也拓展了编程人员的需求量。由于最后一点,如果真的要对其它编程语言有很深入的理解,那必须理解计算机的架构(计算机到底是怎么干活的),那么 C 语言是道迈不过的坎。只要涉及到操作系统就离不开 C 语言了(当然可以说有的操作系统用的 C++,但是如果 C 语言都没搞清楚,C++是不可能搞清楚的)。对于比较上层的开发者来说就算不常用C语言,至少要知道 它是怎么回事,就像写驱动的人可能并不常用汇编,但是一定要知道它是怎么回事,不然怎么解那些莫名其妙的 bug?学了C 语言,最不济的情况下,也是会让你有机会成为使用其它任何语言的高手。
说的非常好,转一下
作者:熊心源
链接:http://www.hu.com/question/21992679/answer/19991091
来源:知乎
着作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
3. 为什么知乎上大多数人不推荐C语言入门
我就是c入门,一开始很难理解,啃书啃的特别痛苦。不过克服了这个,后面学python,c++都是一帆风顺,因为c算是挺底层的高级语言,很多细节,掌握了这些其他的就不再话下了。所以用c入门可以认为是从较难的开始,打牢这个基础后面就容易了。
大多数人觉得c不适合入门也是这个原因,一开始入门太难太慢成效低,很容易打击学习积极性,尤其是自学的话更困难。所以建议自学还是从易到难深入,python就是公认的很简单的入门语言。有了c做基础一周内就能掌握。没有基础的话几个月也差不多
4. c语言好学吗
我感觉还行,如果你有足够的时间的话,或者你本身就是这个专业的话,C语言很快就能熟练的。不建议买国内出的书,如果英语水平太差的话,去买外国着的翻译本,如果想要精通和熟练,基本需要500页以上的书,因为他们讲的详细,最差也要选择300页以上的书,300页以下的书,都不建议购买,几乎都是缩编本,很多细节会给你省略掉,但是一般300页以上的书,都偏贵,可以到网上搜老版本的旧书的pdf。C语言方面的好书还是很多的,你可以根据你自己的选择去学,C语言是最基础的了,知乎上能搜到一大把C语言最好的教材名字。
这里推荐一本我看过的书吧,我觉得比较适合小白吧(因为我不确定是不是真的适合无基础的小白,因为我是在大学里有学过C语言的,但是大学里的书都是阉割版,所以学的一般,但是我看这本书的时候,感觉很详细,而且理解的更加透彻了,反正我感觉不难),这本书叫《C语言程序设计现代方法(第2版)》,吕秀芬 黄倩 翻译的译本,我觉得翻译的不错,挺通畅的,这本书在网上能找到pdf版本,我用的是621页的版本。
5. 零基础能自学c语言嘛
学习不要怕难,实在不行找我带你,我当初也是找人的,学习不怕难就怕不钻研。
1其实单纯的学一门编程语言,基础知识也不需要太多(我高一学的c语言,英语不太好的话就感觉有约单词记不住,不过用多了就记住了)。最好学过函数。编程语言只是一种控制电脑的工具,学会使用就行。我觉得初中生能有这种超前的意识是可喜了贵的(当时我都不知道有编程这回事)
2想清楚学c的目的。c的话嵌入式(就是控制处电脑手机之外不是很本的机器。例如,玩具车,洗衣机,无人机)用的,对电子设计感兴趣的话建议从c开始。如果只是单纯的好奇,那就开始学吧!在此过程中碰到一个不知道的专业术语推荐网络。如果是为以后的职业想,大可不必(好好学习,天天向上工作就不是问题了)。如过对这些都好奇,我也不知道改该怎么办。总结一下自己的问题在网络或者知乎上搜搜问问就行。
3《c语言程序设计》谭浩强这本书虽然在网上喷的很多,不过很适合初学者,还有这本是大学的教材。
4其实零基础学会了c,也编不了应用程序(当时我就想c都学完了,我这么还是只会写黑框框的程序)。就能解决自己会的数学问题。如果要用c写应用程序,需要相关的计算机知识。
5要想写出工能强大的程序,学python。python本身有很多库的支持(如numpy,thinker,django,matplotlib)。只要知道相关函数的用法,就能写程序了。还有现在是块状代码时代,本来就不太多对层代码的理解(这个函数的里面是怎么写的)。(补充)学html+css+js(web前端)的话就需要太多计算机知识,会用几个标签小学生都能搞,不过我也就是玩玩,因为没有美工知识,做出来的网页也不怎么好看,我过超有成就感。总结一下就是:买本c语言的书。多上机写代码。然后运行(很重要)。还有打字要会,打字太慢的话很浪费时间(打快有一种在飞的感觉...那是不可能的,慢的话先下个打字通练练,比较快提高速度的方法。我英文平均每分钟150个)。打字慢你也要上机的话,也行。
6. 学c语言,该怎么学,才能成c大神
学习C语言始终要记住“曙光在前头”和“千金难买回头看”,“千金难买回头看”是学习知识的重要方法,就是说,学习后面的知识,不要忘了回头弄清遗留下的问题和加深理解前面的知识,这是我们学生最不易做到的,然而却又是最重要的。学习C语言就是要经过几个反复,才能前后贯穿,积累应该掌握的C知识。
1.学好C语言的运算符和运算顺序
学好C语言的运算符和运算顺序
这是学好《C程序设计》的基础,C语言的运算非常灵活,功能十分丰富,运算种类远多于其它程序设计语言。在表达式方面较其它程序语言更为简洁,如自加、自减、逗号运算和三目运算使表达式更为简单,但初学者往往会觉的这种表达式难读,关键原因就是对运算符和运算顺序理解不透不全。当多种不同运算组成一个运算表达式,即一个运算式中出现多种运算符时,运算的优先顺序和结合规则显得十分重要。在学习中,只要我们对此合理进行分类,找出它们与我们在数学中所学到运算之间的不同点之后,记住这些运算也就不困难了,有些运算符在理解后更会牢记心中,将来用起来得心应手,而有些可暂时放弃不记,等用到时再记不迟。
先要明确运算符按优先级不同分类,《C程序设计》运算符可分为15种优先级,从高到低,优先级为1 ~ 15,除第2、3级和第14级为从右至左结合外,其它都是从左至右结合,它决定同级运算符的运算顺序.
END
二.学好C语言的四种程序结构
顺序结构
顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。
例如;a = 3,b = 5,现交换a,b的值,这个问题就好像交换两个杯子水,这当然要用到第三个杯子,假如第三个杯子是c,那么正确的程序为: c = a; a = b; b = c; 执行结果是a = 5,b = c = 3如果改变其顺序,写成:a = b; c = a; b = c; 则执行结果就变成a = b = c = 5,不能达到预期的目的,初学者最容易犯这种错误。 顺序结构可以独立使用构成一个简单的完整程序,常见的输入、计算,输出三步曲的程序就是顺序结构,例如计算圆的面积,其程序的语句顺序就是输入圆的半径r,计算s = 3.14159*r*r,输出圆的面积s。不过大多数情况下顺序结构都是作为程序的一部分,与其它结构一起构成一个复杂的程序,例如分支结构中的复合语句、循环结构中的循环体等。
分支结构
顺序结构的程序虽然能解决计算、输出等问题,但不能做判断再选择。对于要先做判断再选择的问题就要使用分支结构。分支结构的执行是依据一定的条件选择执行路径,而不是严格按照语句出现的物理顺序。分支结构的程序设计方法的关键在于构造合适的分支条件和分析程序流程,根据不同的程序流程选择适当的分支语句。分支结构适合于带有逻辑或关系比较等条件判断的计算,设计这类程序时往往都要先绘制其程序流程图,然后根据程序流程写出源程序,这样做把程序设计分析与语言分开,使得问题简单化,易于理解。程序流程图是根据解题分析所绘制的程序执行流程图。
学习分支结构不要被分支嵌套所迷惑,只要正确绘制出流程图,弄清各分支所要执行的功能,嵌套结构也就不难了。嵌套只不过是分支中又包括分支语句而已,不是新知识,只要对双分支的理解清楚,分支嵌套是不难的。下面我介绍几种基本的分支结构。
①if(条件)
{
分支体
}
这种分支结构中的分支体可以是一条语句,此时“{ }”可以省略,也可以是多条语句即复合语句。它有两条分支路径可选,一是当条件为真,执行分支体,否则跳过分支体,这时分支体就不会执行。如:要计算x的绝对值,根据绝对值定义,我们知道,当x>=0时,其绝对值不变,而x<0时其绝对值是为x的反号,因此程序段为:if(x<0) x=-x;
②if(条件)
{分支1}
else
{分支2}
这是典型的分支结构,如果条件成立,执行分支1,否则执行分支2,分支1和分支2都可以是1条或若干条语句构成。如:求ax^2+bx+c=0的根
分析:因为当b^2-4ac>=0时,方程有两个实根,否则(b^2-4ac<0)有两个共轭复根。其程序段如下:
d=b*b-4*a*c;
if(d>=0)
{x1=(-b+sqrt(d))/2a;
x1=(-b-sqrt(d))/2a;
printf(“x1=%8.4f,x2=%8.4f\n”,x1,x2);
}
else
{r=-b/(2*a);
i =sqrt(-d)/(2*a);
printf(“x1=%8.4f+%8.4fi\n”r, i);
printf(“x2=%8.4f-%8.4fi\n”r,i)
}
③嵌套分支语句:其语句格式为:
if(条件1) {分支1};
else if(条件2) {分支2}
else if(条件3) {分支3}
……
else if(条件n) {分支n}
else {分支n+1}
嵌套分支语句虽可解决多个入口和出口的问题,但超过3重嵌套后,语句结构变得非常复杂,对于程序的阅读和理解都极为不便,建议嵌套在3重以内,超过3重可以用下面的语句。
④switch开关语句:该语句也是多分支选择语句,到底执行哪一块,取决于开关设置,也就是表达式的值与常量表达式相匹配的那一路,它不同if…else 语句,它的所有分支都是并列的,程序执行时,由第一分支开始查找,如果相匹配,执行其后的块,接着执行第2分支,第3分支……的块,直到遇到break语句;如果不匹配,查找下一个分支是否匹配。这个语句在应用时要特别注意开关条件的合理设置以及break语句的合理应用。
循环结构
循环结构可以减少源程序重复书写的工作量,用来描述重复执行某段算法的问题,这是程序设计中最能发挥计算机特长的程序结构,C语言中提供四种循环,即goto循环、while循环、do –while循环和for循环。四种循环可以用来处理同一问题,一般情况下它们可以互相代替换,但一般不提倡用goto循环,因为强制改变程序的顺序经常会给程序的运行带来不可预料的错误,在学习中我们主要学习while、do…while、for三种循环。常用的三种循环结构学习的重点在于弄清它们相同与不同之处,以便在不同场合下使用,这就要清楚三种循环的格式和执行顺序,将每种循环的流程图理解透彻后就会明白如何替换使用,如把while循环的例题,用for语句重新编写一个程序,这样能更好地理解它们的作用。特别要注意在循环体内应包含趋于结束的语句(即循环变量值的改变),否则就可能成了一个死循环,这是初学者的一个常见错误。
在学完这三个循环后,应明确它们的异同点:用while和do…while循环时,循环变量的初始化的操作应在循环体之前,而for循环一般在语句1中进行的;while 循环和for循环都是先判断表达式,后执行循环体,而do…while循环是先执行循环体后判断表达式,也就是说do…while的循环体最少被执行一次,而while 循环和for就可能一次都不执行。另外还要注意的是这三种循环都可以用break语句跳出循环,用continue语句结束本次循环,而goto语句与if构成的循环,是不能用break和 continue语句进行控制的。
顺序结构、分支结构和循环结构并不彼此孤立的,在循环中可以有分支、顺序结构,分支中也可以有循环、顺序结构,其实不管哪种结构,我们均可广义的把它们看成一个语句。在实际编程过程中常将这三种结构相互结合以实现各种算法,设计出相应程序,但是要编程的问题较大,编写出的程序就往往很长、结构重复多,造成可读性差,难以理解,解决这个问题的方法是将C程序设计成模块化结构。
模块化程序结构
C语言的模块化程序结构用函数来实现,即将复杂的C程序分为若干模块,每个模块都编写成一个C函数,然后通过主函数调用函数及函数调用函数来实现一大型问题的C程序编写,因此常说:C程序=主函数+子函数。 因此,对函数的定义、调用、值的返回等中要尤其注重理解和应用,并通过上机调试加以巩固。
END
三.掌握一些简单的算法
1
编程其实一大部分工作就是分析问题,找到解决问题的方法,再以相应的编程语言写出代码。这就要求掌握算法,根据我们的《C程序设计》教学大纲中,只要求我们掌握一些简单的算法,在掌握这些基本算法后,要完成对问题的分析就容易了。如两个数的交换、三个数的比较、选择法排序和冒泡法排序,这就要求我们要清楚这些算法的内在含义。
结语:当我们把握好上述几方面后,只要大家能克服畏难、厌学、上课能专心听讲,做好练习与上机调试,其实C语言并不难学。
7. 自学编程从哪学起知乎
有一定计算机基础的话,随便一本编程书就可以。比如java之类。然后进阶还需要学习数据结构,其实不学数据结构单纯当普通的编程员也没问题。因为只要会一门语言,就可以编出软件。主要是看哪种更流行。c语言比较复杂。java简单好学一些。
8. 自学C语言需要注意些什么,看些什么书
C的基础部分总的来说不难,对于没有基础的人很快能够上手,学习的较快。也不需要其他方面的基础。现在大学里的课程设置基本上是从C到C++。学习C比较好的书是清华大学谭浩强教授的《C语言程序设计》,还有配套的习题解答《C程序设计题解与上机解答》。学C最重要一条:多动手,把书后面的每一道题都亲自写一遍。要学C++,必先学C。
学过C后再学C++上手比较快,因为C的一些规则、关键字、语法等,C++全部都包含了。我自己在大学里就是从C到C++学习的。至于书,很多人推荐《Thinking in C++》,我也看过。不过对于刚开始学习C++的话我认为还是选择一些基础点的书。例如清华大学的《OOP方法与技术》,很多大学用这个作课本。你在网上也可以找找看,相关资料很多。
当然,如果想学好C++,对于一些像《数据结构》《算法与设计》《计算机英语》等方面的书也要看看。