想问下c或c++高手们的真实学习心得...
楼上说话太绝了.现在给楼主一条参考的思路吧.
惯常的学习方法是先学C,接着学C++,最后于学JAVA,因为JAVA是建立在C++的基础上开发出不的,C++是C的一个超集,它支持与C语言的向后兼容能力.
Java是一种更纯粹的面向对象程序设计语言,Java程序内的一切都是对象,想要学习好JAVA,要先理解好对象的概念,但这对于绝大部分初学者来说都是一个很难搞清楚的概念.
一点可以肯定的.学起来肯定很吃力.如果是自学的话,建议找一本JAVA的教材,教材我就不推荐了,并且找一些视频来看.我看过觉得比较好的有"MLDN魔乐JAVA"李兴华老师的视频讲解,绝对是适合入门.上电驴还可以找到《Java开发实战经典》的附带光盘,也是他讲的,这是我比较推荐的.
学的过程不要太心急,一步一步来,重点是我巩固,想用两三个月来学好JAVA我觉得是比较不可取的想法.多看多写,不打代码的语言学习是没用的.
最后再说一点,光学程序设计语言是不够的,程序设计的重点是数据结构,所以,建议有时间的话边学数据结构.
以上纯属个人观点,个人经验.仅供借鉴参考.希望能对楼主学习JAVA有所帮助,并希望能坚持地学下去.
校报凡老师打电话给我,希望能对学生谈谈有关C语言的学习问题,帮助同学们学好该课程,我也希望如此。下面从三个方面来谈一谈。
一、 对编程语言的认识
C语言只是计算机编程语言中的一种语言,但不管是哪一种编程语言,它们都有一个共性和目的:编写程序(即针对要解决的问题(如1+2+……+100=?),用计算机思维提出问题解决方案,并最终用计算机语言编写程序来实施方案)。我们学习编程语言的目的就是学会用计算机思维程序编写,用程序告诉计算机该做些什么、该完成些什么任务。总体来说,不管哪种计算机语言,计算机编程思维是相通的、一致的,只要掌握了一门语言,其它语言就很容易触类旁通。各种编程语言不同的是:语法(根据其所面向的应用方向制定),所以学习不同语言,就是学习它的语法,把你的计算机编程思维用该语法的语句实现。从上述可以看出,学习计算机编程语言关键的是学会计算机的编程思维,同时采用哪种语言实现该思维,还需要学好这种语言的语法。
二、 如何建立计算机编程思维
计算机编程思维的形成不是一蹴而就的,来自于平时的学习积累,不可能靠学期期末突击产生。语言学习中,无论平时的例题、作业题或上机题都是计算机思维的实现,看的做的多了,自然而然地就会形成一种思维模式,也就是计算机中所说的算法思想,当然算法的好坏直接影响着所编写程序的质量,所以编程思维的形成对程序质量很重要。初学计算机语言的同学,要快速形成编程思维是有一定难度的,但要拥有该思维并不难(关键是你愿不愿意付出),多找些编程题来练习,熟能生巧,和做数学题一个道理。
特别注意一个误区,有好些同学大量做题,可是程序编写能力仍然上不去,为什么?看看他们做的习题集是一些诸如等级考试的选择题,而选择题、填空题带给大家更多的是关于语言语法的熟悉和了解,甚至有的题太钻牛角尖,对真正的目的——编程没有什么帮助。这个方法不可取!应该做的是编程题,而专门针对编程题的书很少,此外程序编写得对不对也不知道,再说一个题目要求可以有很多种编写答案,这可怎么办呢?我建议,找一些带有编程答案的题目进行编写,你先不看答案,根据题目先按自己的思维编写程序,之后再看答案(和答案不一样很正常,一道题有多种编写方法),重要的是从答案中体会答案的思路,反过来再从答案思路考察你编写的程序,看看能带来什么启发。另外,验证自己所编程序正确与否的最直接方法:上机运行。真正做到上述方法的话,读程序、写程序都不在话下。接下来的问题是,带有答案的题目上哪里去找?上课例题、教材例题、其他教材例题、等级考试编程题、网络上的C网站等等均可,实际上你只要能把上课例题、教材例题、作业题自己重新独立完成,也就掌握了相关的编程思想,若能一道题多考虑集中编程方法则更好。
三、 C语言学习中应注意的问题
语言学习中,上机调试也是重要的一环,调试能力的提高对编程能力的提高很有帮助。因为程序正确与否、存在什么问题上机调试并运行正确后就可以知道,编程能力的提高也正是在不断改正错误中提高的,再者程序最终也是在计算机上实现的,抛开计算机只做一些纸张上的编程很难提高编程能力。TC2.0上机调试的主要困难是:操作界面不熟悉,英文出错信息难理解,调试技巧欠缺。这些困难大家可以从《C程序设计题解与上机指导(第二版)》(谭浩强主编 清华大学出版社)书中第14章得到一定的解答。调试方法在该书中14.11章节已作相应的介绍,而调试技巧主要指程序编译连接通过后,运行结果不正确时如何查错的技巧,其也是靠平时上机积累经验产生。调试时,注意单步跟踪调试(快捷键F7或F8)应结合监测表达式(Watch)和程序中加入适当的输出函数实现,并且调试运行中随时可以到User Screen窗口观测运行到该步的输出结果和对Watch表达式进行增删改。需要观测整个数组时Watch内容为数组名即可,需要观测链表结点(p指针指向该结点)时Watch内容为*p即可。
C语言学习过程中,同学们感到特别困难的是循环和指针两部分的内容,其实难点不是在于语法,而是针对这些方面如何用相关语法的语句实现编程。解决的办法就是第二点所谈,并且需要通过上机调试深入掌握。要注意的是:循环部分正是计算机编程思维形成的重要一步,循环之后所学内容的编程实现都是建立在循环的基础上的,要学好C语言,首先得解决循环编程问题;指针部分一般都安排在教材较后的章节中,往往由于前面的内容没有学好或很浮躁,学习指针内容时,除了指针部分的难理解点外,还要加上前面部分的难理解点,越学越困难,结果成了问题积累,很难达到好的效果。
以上是我教学多年,对于同学们学习C语言的一些看法,希望对你们的学习有所帮助。
书上的成员函数的实现它不会全部写出来,只把当前所讲的一些重要的代码给出,基本上的数据结构书都是如此的,那些未给出的就要你自己去补充完整了,一般都不会太难,有问题可以请教老师。
我学数据结构的时候,还没有自己的电脑,所以我每个周末都会去学校的机房去调试书上的例子,有时候一调试就是一个下午。
书上的例子有很多都是一下子就给出了所有的成员函数的声明,但实现可能不会全部写出来,篇幅限制~~但你也不必把所有的成员函数都去一一实现,你可以一个一个来,解决一个再解决下一个,这也是编程的一般步骤。
总之:实践、实践、再实践~~
看不懂说明你C++没学好,最起码的基础估计你掌握的不怎么样,只要你掌握了C++的基础,数据结构上面都是对算法的描述,都是一些模板,通俗地说就是数学中的公式,你只要会C++的语法,套公式该会吧,只要你按照他的描述,用C++的语法写出来,程序就能完成所需要的功能。还有你对C++的语法和模板要有很清楚的理解,比如说数据结构中有个语句ElemType data;这个语句因为C++中不存在ElemType这种数据类型,所以你在使用的时候就应该将其改为你所需要的类型如int ,char等。说白了,数据结构就是公式,就是算法的描述。要想学好他,基础要扎实
多做一下课后习题,参考下严蔚敏的数据结构书籍
永远没有速成的方法,只有不懈的努力,才能学好一门语言
要是看不懂证明你基础还不行,
还是看基础吧.
一个类也足够说明问题了吧
求高手帮助阐释一下c 中类 里面 public 和 private 的用法。也就是说...
private和public的作用是让编译器帮你检查某些模块是否使用了他没权限使用的模块,也就是生成可执行代码的时候做权限检查。比如,公司里各个部门有自己私有的信息,财务部可以看所有员工工资,而销售部不可以,普通员工也不可以。可不可以访问都是认为规定的,而且在写代码的时候程序是不会执行的,因此需要...
C语言高手进!switch case语言问题给解释一下答案
输入2,switch(c-'2')结果是0,switch在没有遇到break和结束时会继续运行,所以要输出66.输入4,switch(c-'2')结果是2,然后直接运行 case 2:putchar(c+4);break; 即输出('4'+'4'):8 输入7,switch(c-'2')结果是5,因为没有case 5,所以执行缺省default:putchar(c+2);break;即输出('9'...
请c语言高手解释下
k--的结果是k,到下一条语句k值才变成k-1,--k是在当前语句k值就变成k-1。比如:k = 3;a = k--;(这里k值还没变,是3,所以a = 3)b = k;(这里k值变成2,所以a = 2)而如果是:k = 3;a = --k;(这里k值就已经变为2,所以a = 2)b = k;(这里b = 2)所以--k对k值...
C语言高手指导下,unsigned short j= -1;printf("j=%d",,j),最后输出j...
你首先就定义了J是无符号的变量,但是你又使J=负1,所以编译就会有问题咯。既然没有-1,可能就直接显示最大值吧。
C语言高手来一下帮我编个小程序
首先,我可以用字符串来做。我现在先把代码贴上:include <stdio.h> int main(){ char *str , *ch , *c[] = {"个位为:" , "十位为:" , "百位为:" , "千位为:" , "万位为:"};scanf("%s",str);int i = 0 ;\/\/要求1.求出它是几位数 printf("此数为%d位数\\n",(size...
下面一个C语言高手指教下,小弟看不懂!!
第一次循环:进while循环的时候,n=0,先拿0遇2比较,条件符合,n=n+1,n此时为1,到第一个打印语句,打印一个1和一个“\\t”,就是打印一定宽度的空格,此时因为while后面没带“{ }”,所以while的循环体就是while下面的第一个语句,也就是第一个打印语句,然后进行下一次循环,就是进while里...
如何自学C语言?高手进来传授一下学习经验
(有问题可以到我的博客:www.52vcc.com留言),网站的话我只推荐CSDN,虽然现在CSDN也水了,但是上面毕竟还是高手如云嘛。问题5、c和delphi哪种语言用得更多,这个就让我们用数据来说话吧 下面是权威网站给出的编程语言使用排名:http:\/\/www.tiobe.com\/index.php\/content\/paperinfo\/tpci\/index.html ...
c语言问题,请高手帮一下忙,谢了! 1、\\ddd有什么意义 2、65是不是字符...
补充一下,“\\xdd”代表1到2位十六进制数所代表的字符,x必须就是x,不能是字符,剩下的两个d都是可为0的数字,如“\\x41”代表ASCII码(十六进制数)为41(十进制为65)的字符'A'。不过要注意,“\\0”或“\\000”是代表ASCII码为0的控制字符,即空操作字符。2. 65是个数,一般认为是十...
高手指教下:在计算机C语言中
3 fprintf() : 按格式输入到流,其原型是int fprintf(FILE *stream, const char *format[, argument, ...]);其用法和printf()相同,不过不是写到控制台,而是写到流罢了。注意的是返回值为此次操作写入到文件的字节数。如int c = fprintf(fp, "%s %s %d %f", str1,str2, a, b) ;...
请问高手,c代表什么?c的上1下4,是什么意思?168又是怎么算的?_百度知 ...
回答:上面是几就乘几个数,倒着乘。
景芬虎黄: 我也不同意1楼的,C语言只是主要用来写内核或服务器程序,因为它运行速度够快,所以底层的东西都是用C语言编写的,而C++与JAVA就很难做到这一点,虽然C++与JAVA使用方便,但都没有C语言运行效率高,C语言编译成的程序在效率上能达到汇编语言的80%,JAVA敢来比么..? 如果系统内核用JAVA来写,那不是和手机一样了么(慢!).? 所以要针对你所从事的领域去选择,如是系统或服务器核心技术开发,那就是C,如是网络编程,那就是JAVA,如是普通的软件但又要求效率和可重用性,那就是C++. 各种语言都有各自的好处,不能盲目批判的.
黎平县13034883380: 求C++高手 - ?
景芬虎黄: 首先我还是比较钦佩你哪里跌倒哪里爬起的勇气的,但我想说的是学习C++,尤其是学好C++并不是一件容易的事情.希望我的学习C++的一点经验能给你提供一定的帮助.我从初中开始自学C++,到现在也有7,8年了,C++是一门语言,就像英...
黎平县13034883380: 怎样才能学好c++语言的精髓 - ?
景芬虎黄: 学一门计算机语言,首先必须有耐心,决心.还有必须动手去做,去尝试.c++是从c语言演变而来的,他们的不同就是c++有类的概念,别的差不多.从简单的去学习,如:输出Hello Word!.越简单的越出错,所以要从简单的牢牢地把握好,基础知识有,变量,常量,类型,字符串,数组,运算符,很多很多,基础有点烦躁,然后是条件语句,循环语句,函数,类,你学会了一门语言,其他的都差不多了.好好加油不会的问.别人,对你帮助很大,不要一直问,要自己动手
黎平县13034883380: C语言学习方法和心得 - ?
景芬虎黄: 1、学习C语言,要从入门到精通,需要读哪些书(从简单的到难的排序,越详细越好,最好都能注释下选择这本书的理由)? 入门阶段:还是老谭那本. 理由:虽然不能说它写得有多好,但是你现在要做的是入门,要快速的掌握c的基本语法...
黎平县13034883380: 编程心得 - ?
景芬虎黄: 编程 这是每个游戏编程FAQ里都有的问题.这个问题每星期都会在游戏开发论坛上被问上好几次.这是个很好的问题,但是,没人能给出简单的答案.在某些应用程序中,总有一些计算机语言优于其他语言.下面是几种用于编写游戏的主要编...
黎平县13034883380: 跪求精通C/C++的成长之路?
景芬虎黄: 楼主要精通C++.要从以下三个方面入手.第一:学好数学,没有强悍的数学功底,来着手C++是很乏力的.学习数学不是要求你把数学问题弄得怎么怎么样,而是要求你去琢磨那种数学的思维.C++主题就是数学的算法技巧.一个程序员最基...
黎平县13034883380: c++真的很难学吗? - ?
景芬虎黄: 基础很差..这点放开不说.. 学东西要从基础学起.. 基础再好的人也得从基础学起..想学C++就得先学C语言.. 所以先去学学C语言吧.. 这是编程的基础..学会了学其他的语言也都会容易上手的..C没学会的话想学C++我估计不怎么可能.. 何况还是没什么基础的..
黎平县13034883380: 就业我想深入学习一门编程语言,请高手们介绍一下,顺便问一下C++ ?
景芬虎黄: 补充上面的,java和c++将来的职业上有较大区别,总的来说java和c#在网络应用系统集成这方面比较多;而c++则在游戏,塞班手机,嵌入式等这些注重效率偏底层的方向...
黎平县13034883380: c++到底怎么学啊,怎么都不会.. - ?
景芬虎黄: 首先,我们必须承认,学习要讲究方法,有捷径.其次,我们还得承认,学习要下苦功,要务实.上小学的时候,书上有个故事,是关于王羲之学习书法的:王献之 问他父亲王羲之,学习书法的秘诀是什么,他父亲把他带到后院,指着18口大...
黎平县13034883380: 怎么学习C++?(C++高手进) - ?
景芬虎黄: 我们在学习C++的时候,有很多人不知怎样学习它、怎样学好它,也不知应先从那里开始学起,关于C++的入门其实很简单,你只要一步步按照你手中的那本C++教材来学就可以了,也许你把C++学的很烂,这时你千万不要认为我好像很精通C+...