‘壹’ c语言程序员
据调查,初中级C/C++软件开发工程师的年薪为5万-15万元,高级软件工程师则高达15万-30万元。市场最紧缺的C/C++技术总监或项目总监年薪更高。C/C++软件工程师的年薪与JAVA软件工程师和.NET软件工程师的年薪相比一般平均要高于2-3万。 据专家预测,C/C++软件工程师是未来几年最热门和最受欢迎的职业之一。
……………………………………………………
看你问的问题,应该是对c++很感兴趣,其实你可以自学c++。关于如何学习c++,我刚才看到一篇很不错的文章,是一个专科生介绍自己如何自学c++,并找到c++的工作,里面介绍了他的学习方法和学习过程,希望对你有帮助。
先做个自我介绍,我07年考上一所很烂专科民办的学校,学的是生物专业,具体的学校名称我就不说出来献丑了。09年我就辍学了,我在那样的学校,一年学费要1万多,但是根本没有人学习,我实在看不到希望,我就退学了。
退学后我也迷茫,大专都没有毕业,我真的不知道我能干什么,我在纠结着我能做什么。所以辍学后我一段时间,我想去找工作,因为我比较沉默寡言,不是很会说话,我不适合去应聘做业务。我想应聘做技术的,可是处处碰壁。
一次偶然的机会,我才听到c++这个行业。那天我去新华书店,在计算机分类那边想找本书学习。后来有个女孩子走过来,问我是不是读计算机的,有没有兴趣学习c++,然后给我介绍了一下c++现在的火热情况,告诉我学c++多么的有前景,给我了一份传单,c++培训的广告。听了她的介绍,我心里痒痒的,确实我很想去学会一门自己的技术,靠自己的双手吃饭。
回家后,我就上网查了下c++,确实是当今比较热门的行业,也是比较好找工作的,工资也是相对比较高。我就下决心想学c++了。于是我去找c++培训的相关信息,说真的,我也很迷茫,我不知道培训是否真的能像他们宣传的那样好,所以我就想了解一段时间再做打算。
后来,我在网络知道看到一篇让我很鼓舞的文章是一个c++高手介绍没有基础的朋友怎么自学入门学c++,文章写的很好,包含了如何学习,该怎么学习。他提到一个方法就是看视频,因为看书实在太枯燥和费解的,很多我们也看不懂。这点我真的很认同,我自己看书往往看不了几页。
我在想,为什么别人都能自学成才,我也可以的!我要相信自己,所以我就想自学,如果实在学不会我再去培训。
主意一定,我就去搜索c++的视频,虽然零星找到一些c++的视频,但是都不系统,我是想找一个能够告诉我该怎么学的视频,一套从入门到精通的视频,一个比较完整的资料,最好能有老师教,不懂可以请教的。
后来我又找到一份很好的视频,是在IT学习联盟推出的一份视频《零基础c++就业班》(喜欢《零基础c++就业班》的可以复制 sina.lt/ceFM 粘贴浏览器地址栏按回车键即打开)。里面的教程还不错,很完整。
下面介绍下我的学习流程,希望对和我一样完全没有基础的朋友有所帮助。
收到他们寄过来的光盘后,我就开始学习了,由于我没有什么基础,我就从最简单的C语言视频教程学起,话说简单,其实我还是很多不懂的,只要重复多看几遍,就能看懂。C语言我差不多学了一个礼拜,接下来我就学了c++和数据结构算法,差不多也就三个礼拜。我每天都在不停的写一些简单的代码,这样一月后我基本掌握了c++的全部基础。
接下来开始学习c++高级课程,老师幽默风趣而又轻松的课堂教课,使我发现原来学习c++并不是一件很难的事情。之前我把c++基础学得还不错,到了到了c++高级部分,我觉不又不是很难,可能老师太牛了,他能把复杂的问题讲的比较通俗易懂,有些难点的地方我还是连续看了五六次,把他弄懂。每天下午6点下班后,吃了饭,马上跑回家。看视频,买了几本笔记本。当时,为了编程还花几百元了台二手的台式电脑,配置一般,但编程是足够的。一边看视频,一边记笔记,把重点都记下来,还一边跟着老师敲代码,为了能尽早学会c++。每天都坚持学5-6个小时。经常学到晚上一点多才睡觉。星期六,日不用上班,每天7点多起床,学到晚上11,12点。那段时间特别辛苦,特别累。在学习c++的三个多月里,除了吃饭睡觉工作,剩余的时间都在学习,因为我知道自己的计算机基础不是很好,也没有学过什么计算机,相对于那些科班的人来说我要比他们付出更多的努力。我只能咬紧牙关,坚持下去,我不能放弃,我要完成我的梦想,我要让我的家人过上好日子。终于三个多月后我把c++教程里的内容和项目都学完了,在学项目的过程中我发现项目特别重要,他能把你学过的知识全部联系起来,能更好的理解你所学的知识。还有学习过程中,动手很重要,要经常跟着老师动手敲,动手吧,跟着做,一行一行的跟着敲,再试着加一些自己的功能,按照自己的思路敲一些代码,收获远比干听大的多。 如果遇到暂时对于一些思路不能理解的,动手写,先写代码,慢慢你就会懂了。
于是我就到51job疯狂的投简历,因为我学历的问题,专科没有毕业,说真的,大公司没有人会要我,所以我投的都是民营的小公司,我希望自己的努力有所回报。没有想过几天过后,就有面试了,但是第一次面试我失败了,虽然我自认为笔试很好,因为我之前做了准备,但是他们的要求比较严格,需要有一年的项目经验,所以我没有被选中。
后来陆续面试了几家公司,终于功夫不负有心人。我终于面试上的,是在闵行的一家民营的企业,公司规模比较小,我的职务是c++开发程序员,但我也比较满足,开的工资是3500一个月,虽然我知道在上海3500只能过温饱的生活,但是我想我足够了。我至少不用每天都要靠父母养,我自己也能养活自己的。我想只要我继续努力,我工资一定会翻倍的。
把本文写出来,希望能让和我一样的没有基础的朋友有信心,其实我们没有必要自卑,我们不比别人笨,只要我们肯努力,我们一样会成功。
…………………………………………
‘贰’ C语言在编程的时候应注意什么问题
1.先学习C语言的基础知识。现在正在学C语言的在校学生可以直接进入第2步学习。
2.按照《C语言程序设计入门学习六步曲》进行上机练习。
3.在上机练习时要养成良好的编程风格。点击查看C语言的编程风格
4.积极参加C、C++兴趣小组,养成和老师与同学交流习惯,从而相互收益。有时别人不经意的一句话可能使你茅塞顿开--“一句话点醒梦中人”。
5.及时总结自己的学习经验,养成写C语言日记的习惯。软件有编程日记功能。
6.从网上或教材上找一个自己感兴趣的题目(选题时根据自己的能力,可先易后难,培养自己的成就感,如果有了成就感,即使再苦再累还是感觉C语言学习是一件快乐的事,同学们喜欢打游戏,经常通宵达旦地玩游戏也乐而不疲就是这个道理)进行实战训练,提高自己的C语言综合应用能力。
7. 由于C语言灵活、强大,初学者要全面地掌握它是不可能的,因此在学习C语言的过程中,不要在细枝末节上浪费精力(比如++、--用于表达式的计算,实际上是没有意义的),但一定要熟练掌握C语言的流程控制语句、数组、函数、指针等基础知识的应用,为学习面向对象程序设计打下坚实的基础。如果这些知识你学不好,要后续学习好C++、可视化的程序设计Visual C++或C++Builder就像空中楼阁,是不现实的。
C语言程序设计入门学习六步曲
笔者在从事教学的过程中,听到同学抱怨最多的一句话是:老师,上课我也能听懂,书上的例题也能看明白,可是到自己动手做编程时,却不知道如何下手。发生这种现象的原因有三个:
一、所谓的看懂听明白,只是很肤浅的语法知识,而我们编写的程序或软件是要根据要解决问题的实际需要控制程序的流程,如果你没有深刻地理解C语言的语句的执行过程(或流程),你怎么会编写程序解决这些实际问题呢?
二、用C语言编程解决实际问题,所需要的不仅仅是C语言的编程知识,还需要相关的专业知识。例如,如果你不知道长方形的面积公式,即使C语言学得再好你也编不出求长方形的面积的程序来。
三、C语言程序设计是一门实践性很强的课程,“纸上谈兵”式的光学不练是学不好C语言的。例如,大家都看过精彩自行车杂技表演,假如,你从来没有骑过自行车,光听教练讲解相关的知识、规则、技巧,不要说上台表演、就是上路你恐怕都不行。
出现问题原因清楚了,那么如何学习呢?请你看【C语言学习六步曲】
在程序开发的过程中,上机调试程序是一个不可缺少的重要环节。“三分编程七分调试”,说明程序调试的工作量要比编程大得多。这里以如何上机调试C程序来说明C语言的学习方法。
第一步、验证性练习
在这一步要求按照教材上的程序实例进行原样输入,运行一下程序是否正确。在这一步基本掌握C语言编程软件的使用方法(包括新建、打开、保存、关闭C程序,熟练地输入、编辑C程序;初步记忆新学章节的知识点、养成良好的C语言编程风格)。
初学者最容易犯的错误是:
1、没有区分开教材上的数字1和字母l,字母o和数字0的区别,造成变量未定义的错误。另一个易错点是将英文状态下的逗号,分号;括号()双引号""输入出入成中文状态下的逗号,分号;括号(),双引号“”造成非法字符错误。
2、C语言初学者易犯语法错误:使用未定义的变量、标示符(变量、常量、数组、函数等)不区分大小写、漏掉“;”、“{”与“}”、“(”与“)”不匹、控制语句(选择、分支、循环)的格式不正确、调用库函数却没有包含相应的头文件、调用未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
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语句的理解。
第三步、不看教材看是否能将前两步的程序进行正确地输入并运行。
在这一步要求不看教材,即使程序不能运行,看能否将其改正,使其能正确运行。目的是对前两步的记忆、理解进一步强化。
第四步、增强程序的调试能力
在教材中每章都有C语言初学者易犯的错误,按照易出错的类型,将教材中的正确的程序改成错误的程序,运行一下程序,看出现的错误信息提示,并记下错误信息,再将程序改成正确的,运行一下程序。这样反复修改,就能够学习C语言程序发生错误的原因和修改错误的能力。
注意:每次只改错一个地方,目的是显示发生该错误的真正原因,避免一次改动多个地方,搞清发生错误的真正原因,切记!!!!
注意:上机调试程序时要带一个记录本,记下英文错误提示信息和解决该错误问题的方法,积累程序调试经验,避免在编程犯同样的错误,切记!!!!。
例如,将Hello World程序中语句
printf("Hello World!\n");
中的;改成中文的分号;
运行一下程序,看有什么结果?
调试程序是一种实践性很强的事,光纸上谈兵是是没用的,就像游泳运动员只听教练讲解示范,而不亲自下水练习,是永远学不会游泳的。
即使在优秀的程序员编写程序也会犯错误的,可能事最低级的语法错误,但他能快速发现错误并改正错误,而我们C语言初学者面对错误提示,不知道发生了什么错误,如何改正,这就事差别。
第五步、研究典型的C语言程序,提高程序设计能力
C语言初学者遇到最多的困惑是:上课也能听懂,书上的例题也能看明白,可是到自己动手做编程时,却不知道如何下手。发生这种现象的原因是:所谓的看懂听明白,只是很肤浅的语法知识,而没有深刻地理解C语言的语句的执行过程(或流程)。
计算机是按照人的指令(编写的程序)去执行的,如果不知道这些C语句在计算机中是如何执行的,你怎么回灵活运用这些知识去解决实际问题呢?
解决问题的方法是要先理解C语言各种语句的流程(即计算机是如何执行这些语句的过程),然后研读现成C语言经典程序,看懂别人事如何解决问题的,以提高自己的程序设计能力。
第六步、研究课程设计源成序,提高C语言的综合应用能力.
‘叁’ C语言编程问题
很多人对学习C语言感到无从下手,经常问我同一个问题:究竟怎样学习C语言?我是一个教师,已经开发了很多年的程序,和很多刚刚起步的人一样,学习的第一个计算机语言就是C语言。经过这些年的开发,我深深的体会到C语言对于一个程序设计人员多么的重要,如果不懂C语言,你想写底层程序这几乎听起来很可笑,不懂C语言,你想写出优秀高效的程序,这简直就是天方夜谭。为什么C语言如此重要呢?
第一:C语言语法结构很简洁精妙,写出的程序也很高效,很便于描述算法,大多数的程序员愿意使用C语言去描述算法本身,所以,如果你想在程序设计方面有所建树,就必须去学它。
第二:C语言能够让你深入系统底层,你知道的操作系统,哪一个不是C语言写的?所有的windows,Unix,Linux,Mac,os/2,没有一个里外的,如果你不懂C语言,怎么可能深入到这些操作系统当中去呢?更不要说你去写它们的内核程序了。
第三:很多新型的语言都是衍生自C语言,C++,Java,C#,J#,perl...哪个不是呢?掌握了C语言,可以说你就掌握了很多门语言,经过简单的学习,你就可以用这些新型的语言去开发了,这个再一次验证了C语言是程序设计的重要基础。还有啊,多说一点:即使现在招聘程序员,考试都是考C语言,你想加入it行业,那么就一定要掌握好C语言。
那么究竟怎样学习C语言呢?
1:工欲善其事,必先利其器
这里介绍几个学习C语言必备的东东:
一个开发环境,例如turbo?C?2.0,这个曾经占据了DOS时代开发程序的大半个江山。但是现在windows时代,用turbo?C有感觉不方面,编辑程序起来很吃力,并且拖放,更没有函数变量自动感应功能,查询参考资料也不方便。建议使用Visual C++,这个东西虽然比较大块头,但是一旦安装好了,用起来很方便。
一本学习教程,现在C语言教材多如牛毛,但推荐大家使用《C语言程序设计》谭浩强主编 第二版 清华大学出版社,此书编写的很适合初学者,并且内容也很精到。
除此以外,现在有很多辅助学习的软件,毕竟现在是Window时代了,学习软件多如牛毛,不象我们当初学习,只有读书做题这么老套。我向大家推荐一个“集成学习环境(C语言)”,里边的知识点总结和例程讲解都非常好,还有题库测试环境,据说有好几千题,甚至还有一个windows下的trubo?C,初学者甚至不用装其它的编译器,就可以练习编程了,非常适合初学者。还有一个“C语言学习系统”软件,不过感觉只是一个题库系统,如果你觉得题做的不够,不妨也可以试试。
2:葵花宝典
学习计算机语言最好的方法是什么?答曰:读程序。
没错,读程序是学习C语言入门最快,也是最好的方法。如同我,现在学习新的J#,C#等其他语言,不再是抱着书本逐行啃,而是学习它们的例程。当然,对于没有学过任何计算机语言的初学者,最好还是先阅读教程,学习完每一章,都要认真体会这一章的所有概念,然后不放过这一章中提到的所有例程,然后仔细研读程序,直到每一行都理解了,然后找几个编程题目,最好是和例程类似的或一样的,自己试图写出这段已经读懂的程序,不要以为例程你已经读懂了,你就可以写出和它一样的程序,绝对不一定,不相信你就试一试吧,如果写不出来,也不要着急,回过头来再继续研究例程,想想自己为什么写不出来,然后再去写这段程序,反反复复,直到你手到擒来为止,祝贺你,你快入门了。
3:登峰造极
写程序的最高境界其实就是掌握各种解决问题的手段(数据结构)和解决问题的方法(算法)。?
是不是写出底层程序就是程序设计高手呢?非也,写底层程序,无非是掌握了硬件的结构,况且硬件和硬件还不一样,要给一个芯片写驱动程序,无非就是掌握这块芯片的各种寄存器及其组合,然后写值读值,仅此而已。这不过是熟悉一些io函数罢了。
那么怎样才算精通程序设计呢?怎样才能精通程序设计呢?举个例子:你面前有10个人,找出一个叫“张三”的人,你该怎么办?第一种方法:直接对这10个人问:“谁叫张三”。第2种方法:你挨个去问“你是不是张三?”,直到问到的这个人就是张三。第三种方法:你去挨个问一个人“你认不认识张三,指给我看”。不要小看这个问题,你说当然会选第一种方法,没错恭喜你答对了,因为这个方法最快,效率最高,但是在程序设计中找到解决问题的最优方法和你用的手段却是考验一个程序员程序设计水平的重要标志,而且是不容易达到的。刚才这个问题类似于数据结构和算法中的:Map数据结构,穷举查找和折半查找。所以掌握好数据结构和一些常用算法,是登峰造极的必然之路。
‘肆’ 求助2个C语言编程题,给点思路也行
一、工欲善其事,必先利其器
这里介绍几个学习C语言必备的装置和书籍:
A)开发环境
例如turbo C 2.0,这个曾经占据了DOS时代开发程序的大半个江山。但是现在windows时代,用turbo C有感觉不方面,编辑程序起来很吃力,并且拖放,更没有函数变量自动感应功能,查询参考资料也不方便。建议使用Visual C++,这个平台虽然体积大,但是一旦安装好了,用起来很方便。
B)一本学习教程
现在C语言教材多如牛毛,推荐大家使用《C语言程序设计》第二版。此书很适合初学者,并且内容也很精到。
C)利用辅助学习软件
毕竟现在是Windows时代了,学习软件多如牛毛,这里向大家推荐一个“集成学习环境(C语言)”,里边的知识点总结和例程讲解都非常好,有好几千题的题库测试环境,包括一个windows下的trubo C,初学者甚至不用装其它的编译器,就可以练习编程了。还有一个“C语言学习系统”软件,不过感觉只是一个题库系统,如果你觉得题做的不够,不妨也可以试试。
二、葵花宝典
学习计算机语言最好的方法是什么?答曰:读程序。
没错,读程序是学习C语言入门最快,也是最好的方法。我们大家都应该有个体验——在最初学习windows系统操作或Microsoft words如果操作的过程中,刚开始总是正儿八经地买来教材,结果读来读去却云里雾里,而当我们将教材丢在一边,拿起鼠标反复地试,几个小时就搞定。包括学习J#,C#等其他语言,在今天的Windows时代,也不再提倡抱着书本逐行啃,而是学习它们的例程。
当然,对于没有学过任何计算机语言的初学者,多少要先阅读教程,认真体会所有概念,然后不放过这一章中提到的所有例程,仔细研读,直到每一行都理解了,再找几个编程题目,最好是和例程类似的或一样的,自己试图写出这段已经读懂的程序。如果写不出来,回过头来再继续研究例程,想想自己为什么写不出来,然后再去写这段程序,反反复复,直到你手到擒来为止。
三、登峰造极
写程序的最高境界其实就是掌握各种解决问题的手段(数据结构)和解决问题的方法(算法)。
是不是写出底层程序就是程序设计高手呢?非也,写底层程序,无非是掌握了硬件的结构,况且硬件和硬件还不一样,要给一个芯片写驱动程序,无非就是掌握这块芯片的各种寄存器及其组合,然后写值读值,仅此而已。这不过是熟悉一些I/O函数罢了。那么怎样才算精通程序设计呢?怎样才能精通程序设计呢?举个例子:
你面前有10个人,找出一个叫“张三”的人,你该怎么办?第一种方法:直接对这10个人问:“谁叫张三”。第2种方法:你挨个去问“你是不是张三?”,直到问到的这个人就是张三。第三种方法:你去问一个人“你认不认识张三,指给我看”。不要小看这个问题,你说当然会选第一种方法,那么恭喜你答对了,因为这个方法最快,效率最高,但是在程序设计中找到解决问题的最优方法和你用的手段却是考验一个程序员程序设计水平的重要标志,而且是不容易达到的。刚才这个问题类似于数据结构和算法中的:Map数据结构,穷举查找和折半查找。所以掌握好数据结构和一些常用算法,是登峰造极的必然之路。
‘伍’ c语言相关的几个问题
这些人回答的都很好,你仔细仔细再仔细的看下吧
回答者: dixnuits - 大魔法师 八级 2009-5-9 21:49
1.不过时,不会过时,如果过时了其他语言也过时了,c语言是基础,其他很多语言都是基于c语言开发的
2.肯定合适
3.c是面向过程的,c++是面向对象的。
回答者: znzhang - 门吏 三级 2009-5-9 21:50
1.没有。不会。除非人们不再用计算机编程。只要还在用计算机,就会有人用C语言编程的,虽然现在大部分人认为面向对象的JAVA或者其它的比C语言容易上手的,可是如果你学过了C语言,再去学其它的软件,就会发现有了C语言的基础,学什么都很简单的。但是如果你先学了其它的编程语言,再学C语言,发现C语言还是很基础的,它比一般的汇编要容易懂些,比面向对象的又相对简单,属于接口类型、承上启下,是不可多得的语言。
2.适合。现在大学里依然开的是C语言,用的依然是谭浩强的《C程序设计》,况且现在的二级还是以C语言作为考试内容。想要学习好语言,必需从基础的开始学起,所以从最基本的C语言开始是最适合不过了。不过要想学好它,必需要有耐心才行。
3. C是面向过程的程序设计语言。C++是面向对象的程序设计语言,不过C++语言保持了对C语言的兼容,也就说是在C++程序可以不用修改的插入C语言代码。不过最开始还是C语言适合入门。
回答者: 小马232 - 大魔法师 九级 2009-5-9 21:54
首先声明下 我也在学C语言 从C中感到乐趣 就像现在在网络知道回答问题 并不是为了那么点分数,我也要看题目,一旦遇到自己会作出来的,绝对不会再做,看到模棱两可的会拿出来做做,现在越来越对C感兴趣,下面回答你的问题,声明只是个人建议
1.C语言永远不会过时,它是所有编程的基础,着种算法,可以变成很多的程序,但是有一定的局限性,所有有了C++
2.完全可以的,C语言是基础,学好了C,学其他的语言就简单了,不过要有很大的耐心的,因为做程序设计的很累的
3.C是算法着重过程,而c++是面向对象的,两者不冲突,没有C也可以学C++,c可以编才程序c++也可以编
回答者: chenlg1102 - 初入江湖 二级 2009-5-9 21:57
1.c语言是最为基础的语言,可以说永远不会过时,而且现在的应用面非常之广,c语言在驱动,硬件方面有着不可动摇的地位.作为一个程序员,你可以不会Java,C#,但不可以不会C.
2.看看现在大学安排的课程就知道了,C语言基本都是第一学期就开的
3.C是一个结构化语言,如谭老爷子所说:它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制),而对于C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。
所以C与C++的最大区别在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为" 设计这个概念已经被融入到C++之中 ",而就语言本身而言,在C中更多的是算法的概念。那么是不是C就不重要了,错!算法是程序设计的基础,好的设计如果没有好的算法,一样不行。而且,"C加上好的设计"也能写出非常好的东西。
对语言本身而言,C是C++的子集,那么是什么样的一个子集?从上文可以看出, C实现了C++中过程化控制及其它相关功能,而在C++中的C(我称它为"C+"),相对于原来的C还有所加强,引入了重载、内联函数、异常处理等等玩艺儿,C++更是拓展了面向对象设计的内容,如类、继承、虚函数、模板和包容器类等等。
再提高一点,在C++中,数据封装、类型这些东东已不是什么新鲜事了,需要考虑的是诸如:对象粒度的选择、对象接口的设计和继承、组合与继承的使用等等问题。
所以相对于C,C++包含了更丰富的"设计"的概念,但C是C++的一个自洽子集,也具有强大的功能,同样值得学习。
回答者: imabeau - 助理 三级 2009-5-9 21:57
1. 在操作系统、 比较底层的编程、 嵌入式 等方面,除了C语言几乎没有其它选择。 所以相当长时间内不可能过时
2. 随便,哪种语言都有的学。 当然javascript之类的就别当回事了。。
3. 从本意上说,C++是C语言的面向对象的扩充。 但扩充的结果是失去了一些C语言原有的优势和特点, 所以所谓“C++是更好的C” 或者“C++是面向对象的C”这种幻想已经是破灭了。 现实情况是,在使用方向上C++和C语言已经分道扬镳, C++的优势在大型软件的快速开发
回答者: vbtraz - 高级魔法师 七级 2009-5-9 21:58
1.C没过时,也不会过时,C可以直接和硬件打交道,别的高级语言都做不到,所以别写操作系统就用它.
2.学C把,谁然C的现实用处不多,但是它是让你学个习惯,打基础的语言。
3.C++和C没关系的,发明C++的人 建议我们直接学C++
回答者: ijlynietg - 同进士出身 六级 2009-5-9 22:44
1.c语言过时了吗?回过时吗?如果会那什么时候回过时?如果不会 为什么?
绝对不会过时。因为涉及底层的开发c还是非常优秀的
2.可以,程序书写上还是多参考规范,c语言不够严谨
3.c++是c的超集,更灵活,在大规模程序上更易维护,但也注定了它与底层的结合不是很好
回答者: wanfustudio - 副总裁 十级 2009-5-9 22:55
1,c语言在本世纪还不会过时,c语言是比较基础的语言
2,最好从汇编开始,很多病毒,高级的程序都是汇编程序,
3,我同意c++是c语言的拓充(我是先学的C,c++几乎包含所有的C的内容)
回答者: chengjie_ - 江湖新秀 四级 2009-5-10 00:18
说实话,你的问题根本没人可以完整回答,再资深的人也不可能决定你的前途。
首先说过时问题,何谓“过时”,好,就算有你说的“过时”,那C不会是在世界各地一齐过时吧,总得慢慢过时吧。
其次适合从哪里学,得看你想以后做什么,也就是说得有个前提。
最后说区别,很多,多的我都罗列不出来,就算罗列出来了,你也未必看的明白,就算你最后费劲看明白了,那也估计你自己学的也差不多了,所以我就甭费劲复制粘贴了。
重要的是要抓紧一切时间开始做,问切实的问题,做的多了,自然就明白了,其实就那么点事,不要把别人说的看成是自己的。
回答者: 可咸 - 举人 四级 2009-5-10 00:20
我哥哥是驻日本软件工程师。天天逼着我学C 这不1个多月了 还真学了不少东西
C是基础 就像1+1 ,没C C++学起来就很困难 学了C C++就容易多了
回答者: 遇见′伏笔 - 试用期 一级 2009-5-10 00:57
C语言 不会过时的...可以把他当做一种基础来学习,你学习了他 再去学习别的语言如C++ 就会容易 好多...
我们就是学的C语言 C++ 可以看做C的拓展。C++支持面向对象功能的程序设计语言,而C语言是面向过程的程序设计语言,它不但具有C语言的短小精练,使用方便的特点,还在原来的基础上,使类型更严格,使用更方便。C++面向对象 C面向过程 。
我觉得 可以 从C开始学起,这样你学别的语言就会更容易了。
虽然语言不一样,只是换个单词 ,实际一个意思的。
有用的东西 怎么可能过时啊 是吧? 加油! 还有汇编语言等你学呢,嘿嘿..不过好难哦!希望你是 这类语言的奇才...努力吧!
回答者: 管管的面面 - 初入江湖 二级 2009-5-10 10:05
楼主,你好!
1、C不会过时。。简单说就是C是一种功能强大成熟的语言,小到单片机,大到几何级计算机都用可以用它。。而且在低层操作的除汇编之外,基本上没有比它更强的。。学C也是学其它语言的基础。。
2、学习C可以学习它的算法和数据结构。。这个是相当有用啊。。
3、C 和C++肯定有关系。。不是的话,那为什么C++不叫P++,Q++什么的。。C++的扩展名是cpp就是C Plus Plus的缩写。。
C是面向过程。C++是面向对向。
回答者: 资州纵寻 - 大魔导师 十二级 2009-5-10 10:50
回答:1:C语言不会过时,因为他是简单的入门语言程序,很普遍,新手必须学的,再高的手他也得会C语言。
回答:2:不一定,看个人爱好问题,但是有的东西也会涉及到C语言,你也可以从数据库学起,CF,CB啦之类,没有必须的开始位置。
回答:3:C语言也可以说是C++,但是版本不同一些命令和跳转语言也不一样,变化不太大,虽然方向不同,但是高点是一样的。
回答者: ctksmq520 - 初入江湖 二级 2009-5-10 18:01
1.C语言没过时,我不知道你是什么专业的,但在我专业里要学单片机(一种芯片,广泛用在日常生活和电子设备中,刷卡机,液晶显示,读卡器。。。等等中,只要你能看到的那些高级的设备都用到),就要求用C语言编程控制单片机实现功能的。不要以为C++等比他高级它就会过时,因为单片机高级语言只支持C语言。我参加全国的电子设计比赛,在产生正弦波,数模转化,液晶显示等方面,都用到单片机和C语言控制。全国电子设计大赛作为全国四大大学生比赛之一,学好单片机和C语言是必须的。你不要以为C语言只是用来做电脑软件的,那样的话是不实际的,C语言是用在硬件控制上。
2.如果你要学高级语言,我推荐你学C语言先,我现在都觉得C语言很实用,C语言的代码比较易懂,当我学了C语言再学c++和java,就觉得这两个只是在C上加了点东西。
3.C语言是面向过程的(注重过程的编写),C++是面向对象的(把过程分类,包装好,使用时直接调用),C语言就像制作的小零件,C++就像已经有了这些零件,把它组装成大机器,所以说c++功能强大。
回答者: 12121237 - 举人 四级 2009-5-11 16:23
可以的,任何一个开发语言都是独立的
回答者: 猪兵团 - 经理 四级 2009-5-12 08:44
1、C语言是学习其他高级语言的基础,所以不会过时
2、如果你是想学编程的,可以从c语言出发
3、如果你C语言学好了,学C++就会更容易,因为我现在就是在学计算机专业,第一个学期学的C语言,所以比较了解
还有什么不懂留言给我吧,呵呵`!
回答者: feng_liu0621 - 试用期 一级 2009-5-12 21:01
1如果你是初学者的话 绝对不过时!然而一切事物都有始终 但必须要有新事物替代 如果某天出现用自然语言编程的话 那它就过时了。
2 你作为初学者 如果真的想学好计算机语言的话 从c语言开始那是理所当然的
3 c和c++其实如果学了c后那它则是c的拓展 没学c则好像什么都不是 建议你慢慢来 ……
回答者: 锦阳之恋 - 试用期 一级 2009-5-13 00:41
首先楼主我接触C不到4个月,回答你这个问题不是为了拿分,只是不想楼主走弯路,C语言不会过时,当今很多人都在用C语言,因为C语言属于中高级语言,接近底层.当然汇编是另一种难以理解的语言,一个计算机爱好者可以看看C语言,了解数据结构,了解CPU,了解操作系统是最好不过的了.C语言和C++不相同,C语言用的是指针,而C++是面向对象,所以两者关系很小,有人说学习了C,然后学习C++就很好学,那是因为你明白了语言之间的逻辑,语言具有共通性,就像汉语跟外语有共同的地方.希望能给楼主一些好的想法.
61952645这是学习C语言的群,我们有自己的论坛www.6dtm.com专门学习各类关于电脑知识的论坛,欢迎你去看看
回答者: 冰冰_涛 - 助理 三级 2009-5-13 18:13
1、加法过时了吗? 所谓的过时是说你不能用它找到工作,但是编程初学者从它学起很好;
2、c与c++的区别,你学了自然有你自己的理解。
回答者: az12xc34 - 兵卒 一级 2009-5-13 18:44
1. C语言再过50年也不会过时,有些很底层(比如操作系统)很注重效率(比如关系数据库)都必须拿C语言写的,偶尔嵌点汇编。
2. C语言很适合入门,不过前提是要有必要的计算机体系架构的知识,毕竟C语言很贴近硬件层,完全不懂计算机硬件知识会很难理解一些概念比如指针。既然是爱好者,推荐看一些大学计算机组成原理课程的教材。
3. C语言跟C++,从语法上说C++是C的超级,或者说C++是几乎完全兼容C的。但从开发理念上说,C++是面向对象,C语言是面向过程,可以说是分别代表了两个时代!如果要刨根问底,建议阅读《C++编程思想》,里面详细解释了C++是怎样在C的基础上一步步发展起来的,C++的每个主要特性各是解决了C语言的哪些缺陷。
回答者: catmonkeyxu - 见习魔法师 二级 2009-5-14 09:49
要了解C与C++的不同首先要了解C与C++的发展史!
C是在B的基础上发基础上发展起来的。1972年至1973间,贝尔实验室的D.M.Ritchie在B的基础上设计出了C语言。C语言既保持了BCPL和B语言的优点(精练,接近硬件),又克服了它们的缺点(过于简单,数据无类型等)。
C语言的优点: 1:语言简单、紧凑,使用方便、灵活。 2:运算符丰富。 3:数据类型丰富,具有现代语言的各种结构。 4:有结构化的控制语句(if…else,while,for等)。 5:语法限制不太严格,程序设计自由度大。 6:可以直接对硬件操作。 7:生成目标代码质量高,程序执行效率高。 8:可移值好!
C++是在C的基础上发展起来的,所以C++对C具有兼容性,即用C写的程序可以在C++上运行。就是因为C++对C具有兼容性所以C++在面向对象的设计语言中就失去了很多优势。比如指针,在其他语言中(如Java)中是没有的,C++兼容C所以一定要有的。C++是介于C与Java之间的过度语言,并不是完全的面向对象的语言。
再打个简单的比喻来说明C与C++之间的关系。我们可以把C比作是自行车那么C++就是电动自行车。自行车时速要是10千米每小时的话,那么电动自行车就可以达到20千米每小时。也就是说C++比C具有更强的功能。再有就是我们完全可以按照骑自行车的办法去骑电动自行车,这说明C++对C具有兼容性。再有就是电动自行车在没有电的情况下完全可以按照骑自行车的方法去骑电动自行车。这一点说明了C++在C的基础上发展而来的。
说了这多么应该对C与C++有所了解了吧。希望对你学习有所帮助!
回答者: aimilin6688 - 助理 三级 2009-5-16 14:03
1.没过时。不会过时。因为它可以直接对硬件进行操作。是其他语言无法完全代替的。
2.适合从C开始学。
3.c++是c语言的拓充不错,但是C也有C++无法代替的地方有的
人认为C++ > C那会让人笑掉大牙,不妨你去打听一下,现在有几个操作系统内核是用C++写的,又有几个实时系统用的是C++,当然我也不是说C++不好,但是目前的内核和实时系统中C++还无法与C匹敌,不过C++适合做应用系统的开发。所以我的观点是不在于你用什么语言,而在于你干什么工作。你的设计体现了你的技术层次。
一个初学者可以从C学起,再学C++就简单多了
回答者: cyj78117520 - 见习魔法师 二级 2009-5-17 10:38
‘陆’ c语言编程问题如何解决
嗯,这是一个挺重要的问题。我们在写程序时要充分考虑用户的各种可能的输入,无论是常规的还是非常规的,确保程序在任何情况下不会意外出错或给出用户不能理解的结果。
这就需要我们对用户输入进行检查,如果输入合理,就按正常流程执行,如果不合理,不予计算,向用户给出输入不符合规范的提示,根据具体情况决定让用户重新输入还是退出程序。
比如你的这个例子,目测应该是控制台程序把?我们在调用scanf读取用户输入时会给出格式化字符串,如%d, %f, %s等等,用户的输入需要符合格式化字符串给出的对数据类型的要求,比如scanf("%d", &a);这时需要用户输入一个整数,否则不能对a正确赋值。scanf函数的返回值即为成功赋值的数据项数,比如scanf("%d", &a);如果用户输入了一个整数,返回1,如果输入了一个字符或字符串或其他什么东西,就会返回0。程序员就可据此判断用户输入是否合法,并决定下一步的反应动作。
‘柒’ C语言编程问题。
这个问题可以不用排序,直接解决:
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
#include<stdio.h>
#include<math.h>
int main()
{
int max, min;
float ave, suave;
int maxi, minj, avei;
int i;
int a[10];
int sum=0;
scanf("%d",&a[0]);
max = min = a[0];
sum += a[0];
avei = maxi = minj = 1;
for (i=1; i<10; i++)
{
scanf("%d",&a[i]);
sum += a[i];
if (max < a[i])
{
max = a[i];
maxi = i + 1;
}
else
{
min = a[i];
minj = i + 1;
}
}
ave = (sum - min - max) / 8.0;
suave = fabs(ave - a[0]);
avei = 1;
for (i=1; i<10; i++)
{
if (fabs(ave - a[i]) < suave)
{
suave = ave - a[i];
avei = i + 1;
}
}
printf("平均分是:%5.2f\n",ave);
printf("最公平的评委是:%d号评委\n",avei);
printf("最不公平的评委是:%d号评委\n",(max-ave>min-ave)?maxi:minj);
return 0;
}
‘捌’ C语言编程中的问题
1.先学习C语言的基础知识。现在正在学C语言的在校学生可以直接进入第2步学习。
2.按照《C语言程序设计入门学习六步曲》进行上机练习。
3.在上机练习时要养成良好的编程风格。点击查看C语言的编程风格
4.积极参加C、C++兴趣小组,养成和老师与同学交流习惯,从而相互收益。有时别人不经意的一句话可能使你茅塞顿开--“一句话点醒梦中人”。
5.及时总结自己的学习经验,养成写C语言日记的习惯。软件有编程日记功能。
6.从网上或教材上找一个自己感兴趣的题目(选题时根据自己的能力,可先易后难,培养自己的成就感,如果有了成就感,即使再苦再累还是感觉C语言学习是一件快乐的事,同学们喜欢打游戏,经常通宵达旦地玩游戏也乐而不疲就是这个道理)进行实战训练,提高自己的C语言综合应用能力。
7. 由于C语言灵活、强大,初学者要全面地掌握它是不可能的,因此在学习C语言的过程中,不要在细枝末节上浪费精力(比如++、--用于表达式的计算,实际上是没有意义的),但一定要熟练掌握C语言的流程控制语句、数组、函数、指针等基础知识的应用,为学习面向对象程序设计打下坚实的基础。如果这些知识你学不好,要后续学习好C++、可视化的程序设计Visual C++或C++Builder就像空中楼阁,是不现实的。
C语言程序设计入门学习六步曲
笔者在从事教学的过程中,听到同学抱怨最多的一句话是:老师,上课我也能听懂,书上的例题也能看明白,可是到自己动手做编程时,却不知道如何下手。发生这种现象的原因有三个:
一、所谓的看懂听明白,只是很肤浅的语法知识,而我们编写的程序或软件是要根据要解决问题的实际需要控制程序的流程,如果你没有深刻地理解C语言的语句的执行过程(或流程),你怎么会编写程序解决这些实际问题呢?
二、用C语言编程解决实际问题,所需要的不仅仅是C语言的编程知识,还需要相关的专业知识。例如,如果你不知道长方形的面积公式,即使C语言学得再好你也编不出求长方形的面积的程序来。
三、C语言程序设计是一门实践性很强的课程,“纸上谈兵”式的光学不练是学不好C语言的。例如,大家都看过精彩自行车杂技表演,假如,你从来没有骑过自行车,光听教练讲解相关的知识、规则、技巧,不要说上台表演、就是上路你恐怕都不行。
出现问题原因清楚了,那么如何学习呢?请你看【C语言学习六步曲】
在程序开发的过程中,上机调试程序是一个不可缺少的重要环节。“三分编程七分调试”,说明程序调试的工作量要比编程大得多。这里以如何上机调试C程序来说明C语言的学习方法。
第一步、验证性练习
在这一步要求按照教材上的程序实例进行原样输入,运行一下程序是否正确。在这一步基本掌握C语言编程软件的使用方法(包括新建、打开、保存、关闭C程序,熟练地输入、编辑C程序;初步记忆新学章节的知识点、养成良好的C语言编程风格)。
初学者最容易犯的错误是:
1、没有区分开教材上的数字1和字母l,字母o和数字0的区别,造成变量未定义的错误。另一个易错点是将英文状态下的逗号,分号;括号()双引号""输入出入成中文状态下的逗号,分号;括号(),双引号“”造成非法字符错误。
2、C语言初学者易犯语法错误:使用未定义的变量、标示符(变量、常量、数组、函数等)不区分大小写、漏掉“;”、“{”与“}”、“(”与“)”不匹、控制语句(选择、分支、循环)的格式不正确、调用库函数却没有包含相应的头文件、调用未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语句的理解。
第三步、不看教材看是否能将前两步的程序进行正确地输入并运行。
在这一步要求不看教材,即使程序不能运行,看能否将其改正,使其能正确运行。目的是对前两步的记忆、理解进一步强化。
第四步、增强程序的调试能力
在教材中每章都有C语言初学者易犯的错误,按照易出错的类型,将教材中的正确的程序改成错误的程序,运行一下程序,看出现的错误信息提示,并记下错误信息,再将程序改成正确的,运行一下程序。这样反复修改,就能够学习C语言程序发生错误的原因和修改错误的能力。
注意:每次只改错一个地方,目的是显示发生该错误的真正原因,避免一次改动多个地方,搞清发生错误的真正原因,切记!!!!
注意:上机调试程序时要带一个记录本,记下英文错误提示信息和解决该错误问题的方法,积累程序调试经验,避免在编程犯同样的错误,切记!!!!。
例如,将Hello World程序中语句
printf("Hello World!\n");
中的;改成中文的分号;
运行一下程序,看有什么结果?
调试程序是一种实践性很强的事,光纸上谈兵是是没用的,就像游泳运动员只听教练讲解示范,而不亲自下水练习,是永远学不会游泳的。
即使在优秀的程序员编写程序也会犯错误的,可能事最低级的语法错误,但他能快速发现错误并改正错误,而我们C语言初学者面对错误提示,不知道发生了什么错误,如何改正,这就事差别。
第五步、研究典型的C语言程序,提高程序设计能力
C语言初学者遇到最多的困惑是:上课也能听懂,书上的例题也能看明白,可是到自己动手做编程时,却不知道如何下手。发生这种现象的原因是:所谓的看懂听明白,只是很肤浅的语法知识,而没有深刻地理解C语言的语句的执行过程(或流程)。
计算机是按照人的指令(编写的程序)去执行的,如果不知道这些C语句在计算机中是如何执行的,你怎么回灵活运用这些知识去解决实际问题呢?
解决问题的方法是要先理解C语言各种语句的流程(即计算机是如何执行这些语句的过程),然后研读现成C语言经典程序,看懂别人事如何解决问题的,以提高自己的程序设计能力。
第六步、研究课程设计源成序,提高C语言的综合应用能力.
‘玖’ 关于C语言上的问题,还有些关于程序员的探讨
非常薄的booklet,可以说是程序员必读的指南。 第三本书,就应该是Bruce 语言或许本身有些难易,但是本质是差不多的。 C语言开始学起来可能有些困难
‘拾’ 求用C语言解决一个问题
小胖说的是真的。小明打破了玻璃。
bool qiang_po, ming_po, pang_po;
if (pang == true)
{
qiang_po = false; //根据小张说的
pang_po = false; //根据小强说的
ming_po = true; //根据小明说的
}