您当前的位置:首页 > 互联网教程

C程序员怎么学习

发布时间:2025-05-21 11:29:46    发布人:远客网络

C程序员怎么学习

一、C程序员怎么学习

1、strlen()函数的返回值是什么类型的?

2、字符串strlen()的值,是否和他占据的内存空间相同?

3、你是否知道strcpy函数存在的潜在风险?如何避免?

4、如果一个字符串没有字符串结束符,而调用str开头的库函数,会发生什么?

5、Strcpy(),strcat(),strcmp(),strncpy(),strncat(),strncmp()内部到底是如何运行的?这些函数到底对源字符串和目标字符串做了些什么?你是否观察过它们运行时两个字符串内存的变化?

6、上面这些函数使用时,各有哪些需要注意的地方?

8、c语言中有字符串这个数据类型吗?

9、对字符串进行操作的时候,是否为字符串结尾符预留存储位置?不然的话容易造成非常访问内存。

1、你肯定知道,定义“int a[10];”, a[10]这个元素是无效的。

2、你知道几种数组初始化的方法?

3、数组和指针有千丝万缕的联系而又不同,你是否对他们在不同情况下的使用进行过详细的总结?

4、“int calendar[10][20];”,这是一个什么样的数组?它拥有 10数组类型的元素,还是 20个?

5、“int a[10];”,数组名 a在本质上是一个什么?你是否打印过 a的值?

6、你知道几种获取数组某元素的方法?

7、指针和数组相同吗?什么时候相同?什么时候不同?

8、用指针和下标访问数组元素,那种方式更快?

1、你知道什么是位域结构体吗?如何定义它?如何使用它?

2、你知道字节对齐对结构体占用内存空间大小的影响吗?如何计算结构体占用内存的大小?

1、你知道宏的本质是什么吗?函数?语句?类型定义?或者其他?

2、你知道语言设计者为什么设计宏吗?这些原因目前是否仍然成立?

4、你知道使用宏的参数的的时候的注意事项吗?

5、你会设计带有可变参数的宏吗?

1、是否可以指定枚举中各项的值?

2、如果不指定值,枚举的第一个值是多少?

4、定义枚举的时候,你是否专门定义了枚举的最小值和最大值?

1、switch©中的 c的数据类型有哪些?

2、你是否在所有的switch中都加了 default语句?

3、是否在所有的case中都加了 break语句(一般情况的做法)?如果你不加 break,将会发生什么?

1、static的三个主要作用是什么?

2、static的修饰的局部变量是保存在什么地方的?全局变量哪?

3、static修饰的全局变量和函数,在其他的文件中是否可以访问?如何访问?

4、你知道static是 c语言中实现封装和隐藏的利器吗?你是否经常使用?

5、定义在不同源文件中的static全局变量,编译器是否允许他们的变量名称相同?他们在内存中的地址是否相同?函数那?

1、你是否经常使用const来表明不能够被更改的变量?

2、你是否经常使用const常量来代替宏?

3、下面四种情况,你知道是各表示什么意思吗?

const int* const pvalue=& i_value

4、你知道const常量如何初始化吗?

1、对于字符数组,strlen和 sizeof的值是否相同?

2、S izeof本质上是函数还是宏?

3、S izeof的返回值是什么类型?

1、“int*p;”&p, p,*p他们的值分别表示什么含义?

3、你理解指针的指针的概念吗?你会使用吗?

4、“int*pi_value; pi_value= 0x100000;” pi_value+ 1的值是是多少?

6、你会使用函数指针调用函数吗?

7、关于指针和数组,请参见知识点数组。

1、动态分配的内存是保存在什么地方的?

2、什么情况下使用动态分配内存?

3、动态申请内存一定要释放,否则会内存泄露。你是否使用过内存检测工具?

1、如何查看函数在内存中的地址?

4、你是否可以区分函数的形参与实参?

5、如何定义函数名,以准确的表达函数的用途?

6、你是否使用const来修饰函数入参和返回值,以表的特定的含义?

1、全局变量,局部变量,常量分别保存在内存中的什么地方?

2、不同类型的变量,你是否知道其作用域?

3、全局变量和局部变量是否可以重名?你是否在这样做?

4、局部变量在函数退出后是否有效,为什么?

5、全局变量为什么不允许定义在头文件中?有何危害?

1、链接位于编译过程的那个阶段?

2、动态链接库和静态链接库使用时有何区别?

3、如何对动态链接库进行动态加载(不用重启程序而加载链接库)?

5、动态链接库中是否定义了非static的全局变量?你是否知道这是一个非常危险的动作?

6、动态库中的全局变量(非static)和函数(非 static)是否可以和上层全局变量和函数重名?重名后会发生什么事情?

十五、运行时的数据结构(Linux)

2、可执行程序可以分为几个段?每个段保存的是什么内容?

3、如何查看可执行程序各个段的大小?

5、你有没有试过程序的栈空间最大有多大?程序超过此大小会发生什么?

6、你使用的系统的栈是向下生长的,还是向上生长的?

1、如何避免对同一头文件的多次include?

2、你是否会运用c语言声明的优先级规则?

1、软件的首要技术使命是管理复杂度。

2、优秀程序员的一个特质是将复杂的事情简单化,而非将简单的问题复杂化。所以,他们一般会选择简单的解决方案。

3、极尽机巧,复杂的解决方案,除了将新手搞得晕头转向之外,别无他用。

4、阅读优秀程序员的代码,是一种享受,你很少遇到思维的阻力,你可以尽情的享受简单之美。

二、程序员的编程思想怎么培养

学习编程对大多数IT业人员来说都是非常有用的。学编程,做一名编程人员,从个人角度讲,可以解决在软件使用中所遇到的问题,改进现有软件,可以为自己找到一份理想的工作添加重要得砝码,有利于在求职道路上谋得一个好的职位;从国家的角度,可以为中国的软件产业做出应有的贡献,一名优秀的程序员永远是被争夺的对象。学习编程还能锻炼思维,使我们的逻辑思维更加严密;能够不断享受到创新的乐趣,将一直有机会走在高科技的前沿,因为程序设计本身是一种创造性的工作。知识经济时代给我们带来了无限的机会,要想真正掌握计算机技术,并在IT行业里干出一番事业来,有所作为,具有一定的编程能力是一个基本条件和要求。

学编程要具备一定的基础,总结之有以下几方面:

(1)数学基础从计算机发展和应用的历史来看计算机的数学模型和体系结构等都是有数学家提出的,最早的计算机也是为数值计算而设计的。因此,要学好计算机就要有一定的数学基础,出学者有高中水平就差不多了。

(2)逻辑思维能力的培养学程序设计要有一定的逻辑思维能力,“逻思力”的培养要长时间的实践锻炼。要想成为一名优秀的程序员,最重要的是掌握编程思想。要做到这一点必须在反复的实践、观察、分析、比较、总结中逐渐地积累。因此在学习编程过程中,我们不必等到什么都完全明白了才去动手实践,只要明白了大概,就要敢于自己动手去体验。谁都有第一次。有些问题只有通过实践后才能明白,也只有实践才能把老师和书上的知识变成自己的,高手都是这样成材的。

(3)选择一种合适的入门语言面对各种各样的语言,应按什么样的顺序学呢?程序设计工具不外乎如下几类: 1)本地开发应用软件开发的工具有:Visual Basic、Delphi、VC++( C++ Builder)等;数据库开发工具有:Visual Foxpro、Oracle Developer、Power Builder等。 2)跨平台开发开发工具如 Java等。 3)网络开发对客户端开发工具如:Java Script等;对服务器开发工具如:PHP、ASP、JSP、ISAPI、NSAPI、CGI等。以上不同的环境下几种开发工具中 VB法简单并容易理解,界面设计是可设化的,易学、易用。选 VB作为入门的方向对出学者是较为适合的。

一本程序设计的书看到的无非就是变量、函数、条件语句、循环语句等概念,但要真正能进行编程应用,需要深入理解这些概念,在理解的基础上应用,不要只简单地学习语法、结构,而要吃透针对这些语法、结构的应用例子,做到举一反三,触类旁通。

学习一门语言或开发工具,语法结构、功能调用是次要的,最主要是学习它的思想。例如学习 VC就要学习 Windows的内在机理、什么是线程......;学习 COM就要知道 VTALBE、类厂、接口、idl......,关键是学一种思想,有了思想,那么我们就可以触类旁通。

掌握编程思想必须在编程实际工作中去实践和体会。编程起步阶段要经常自己动手设计程序,具体设计时不要拘泥于固定的思维方式,遇到问题要多想几种解决的方案。这就要多交流,各人的思维方式不同、角度各异,各有高招,通过交流可不断吸收别人的长处,丰富编程实践,帮助自己提高水平。亲自动手进行程序设计是创造性思维应用的体现,也是培养逻辑思维的好方法。

编程入门不难,但入门后不断学习是十分重要的,相对来说较为漫长。在此期间要注意养成一些良好的编程习惯。编程风格的好坏很大程度影响程序质量。良好的编程风格可以使程序结构清晰合理,且使程序代码便于维护。如代码的缩进编排、变量命令规则的一致性、代码的注释等。

在网上可以学到很多不同的编程思想、方法、经验和技巧,有大量的工具和作品及相关的辅导材料供下载。例如网站“编程课堂”()主要以 VB和 Delph;教学和交流为主,提供大量实用技巧;网站“现在时编程学园”()是专门介绍C、VC、VB、Delphi等的综合编程网站;网站“ VB编程乐园”()提供内容丰富而且实用的编程技术文章、精选控件、源代码下载、计算机考试、相关软件以及编程书籍推荐等等。

学编程是符合“理论→实践→再理论→再实践”的一个认识过程。一开始要具有一定的计算机理论基础知识,包括编程所需的数学基础知识,具备了入门的条件,就可以开始编程的实践,从实践中可以发现问题需要加强计算机理论知识的再学习。程序人人皆可编,但当你发现编到一定程度很难再提高的时候,就要回头来学习一些计算机科学和数学基础理论。学过之后,很多以前遇到的问题都会迎刃而解,使人有豁然开朗之感。因此在学习编程的过程中要不断地针对应用中的困惑和问题深入学习数据结构、算法、计算机原理、编译原理、操作系统原理、软件工程等计算机科学的理论基础和数理逻辑、代数系统、图论、离散数学等数学理论基础知识。这样经过不断的学习,再努力地实践,编程水平一定会不断提高到一个新高度。

三、java程序员工资如何

1、java程序员待遇挺高的,根据IDC的统计数字,在所有软件开发类人才的需求中,对Java程序员的需求达到全部需求量的60%~70%。同时,Java程序员薪水相对较高。Java程序员一般月薪范围在4000-10000元,远远超过了应届毕业生月薪2500元的平均水平。通常来说,有一年工作经验的Java高级程序员的薪酬大致在年薪10—13万左右。

2、……………………………………………………………………

3、看你问的问题,应该是对java很感兴趣,其实你可以自学java。关于如何学习java,我刚才看到一篇很不错的文章,是一个农民工介绍自己如何自学java,并找到Java的工作,里面介绍了他的学习方法和学习过程,希望对你有帮助。

4、我是一名地地道道的农民工,生活在经济落后的农村,有一个哥哥和一个弟弟,父母都是地道的农民,日出而作,日落而息,我从小到大学习一直很好,从小学到高一都,成绩在全级一直名列前茅,这样我也顺利了考上省的重点高中,然而,每个学期开学是家里最为难的时候,每次交学费都让父母发愁许久,家里为了给我筹钱读书,都借了不少钱,才让我读上高中。我知道我读到高中家里已经欠了好多债,为了减轻家里的负担,我选择了退学。

5、 2009年我高一退学,为了给家里还债,干过建筑工地的小工,搞过塑料制品加工,送水工等等。很工资都很低,一个月也就1000多,加上加班费一个月能拿2000多一点,我每个月都向家里寄回800-1000元,到了2011年末,一次偶然的机会我接触了Java,听说Java的前景挺不错,工资相对于我一个农民工来说简直是天文数字,于是我在新华书店买了几本Java的书,尽管白天辛苦工作,晚上回来还是坚持看书,但有于基础太差很多都很不明白,但还是坚持看,一有看1-2个小时Java的书,看着看着许多基础都慢慢的学会了,但那些比较难的还是看不懂,后来还买了有些关于框架的书,还是看不懂,这样断断续续的持续了半年多,觉得自己Java的基础都差不多懂了,但框架还是看不懂,还有最缺的项目经验,看了很多招聘Java程序员的简介都要项目经验,相对我一个农民工来连框架都弄不明白,想找一份Java工作对我来说简直是奢侈。我只想学Java,并不敢想以后能从事Java的工作。

6、有一次,在百度上看到一篇让我很鼓舞的文章,是一个Java高手介绍在没有基础的朋友怎么自学入门Java,文章写的很好,包含了如何学习,该怎么学习,他提到一个方法就是看视频,因为看书实在太枯燥和费解的,不少是我们也看不懂,这点我真的很认同,我自己看书都看了很久才学会基础。曾经有想过参加培训,但是上万元的培训费让我望而却步,我工资这么低,每个月还有向家里汇钱,加上城市消费比较高,虽然每个月只有几百剩下,但是相对于上万万学费和四个月的吃住费用逼我连想不敢想。于是我决定看视频,我就去搜索Java的视频,虽然我零星的找到一些Java的视频,但是都不系统。最重要连项目都没有。后来我找到一份很好的视频,是IT学习联盟这个网站一套视频叫<<零基础Java就业班>>(喜欢《零基础Java就业班》的可以复制 t.cn/8sx5z6L粘贴浏览器地址栏按回车键即打开)的教程还不错,很完整。还赠送11个顶级企业项目。价格很合理,于是我买下来。

7、于是开始了我的自学Java的路,收到光盘后,我就开始学习,刚开始学习还不错,是从零基础教起,老师幽默风趣而又轻松的课堂教课,使我发现原来学习JAVA并不是一件很难的事情。因为我本来基础还不错,前面的基础看一篇我就过去了,到了框架,我觉不又不是很难,可能老师太牛了,他能把复杂的问题讲的比较通俗易懂,有些难点的地方我还是连续看了五六次,把他弄懂。每天下午6点下班后,吃了饭,马上跑回家。看视频,买了几本笔记本。当时,为了编程还花几百元了台二手的台式电脑,配置一般,但编程是足够的。一边看视频,一边记笔记,把重点都记下来,还一边跟着老师敲代码,为了能尽早学会Java。每天都坚持学5-6个小时。经常学到晚上一点多才睡觉。星期六,日不用上班,每天7点多起床,学到晚上11,12点。那段时间特别辛苦,特别累。在学习Java的三个多月里,除了吃饭睡觉工作,剩余的时间都在学习,因为我知道自己的计算机基础不是很好,也没有学过什么计算机,只是学了些Java基础,相对于那些科班的人来说我要比他们付出更多的努力。我只能咬紧牙关,坚持下去,我不能放弃,我要完成我的梦想,我要让我的家人过上好日子。终于三个多月后我把Java教程里的内容和项目都学完了,在学项目的过程中我发现项目特别重要,他能把你学过的知识全部联系起来,能更好的理解你所学的知识。还有学习过程中,动手很重要,要经常跟着老师动手敲,动手吧,跟着做,一行一行的跟着敲,再试着加一些自己的功能,按照自己的思路敲一些代码,收获远比干听大的多。如果遇到暂时对于一些思路不能理解的,动手写,先写代码,慢慢你就会懂了。这套视频还赠送了11个顶级企业项目,对于我没有任何经验的人来说,这个太重要了,还有在学习项目是提升能力最快的方法。项目能把所有的知识点全都连到一起了,不再是分散的,而是形成一个整体了。那种感觉是仅仅深入钻研知识点而不写真实项目的人所不能体会的。一个项目就是一根绳子可以把大片的知识串到一起。就这样,我用了两个月也把项目给学完了。其实学完教程差不错就达到就业水平,但是我可能觉得自己学历低还是把那11个顶级企业项目才去找工作。

8、接着我就到51job疯狂的投简历,因为我的学历问题,初中毕业,说真的,大公司没有人会要我。所以我头的都是民营的小公司,我希望自己的努力有所回报。没有想过几天后,就有面试了,但是第一次面试我失败了,虽然我自认为笔试很好,因为我之前做了准备,但是他们的要求比价严格,需要有一年的项目经验,所以我没有被选中。后来陆续面试了几加公司,终于功夫不负有心人,我终于面试上了一家民营的企业。公司规模比较小,我的职务是Java程序员。我想我比较幸运,经理看中我的努力,就决定吕勇我,开的工资是3500一个月,虽然我知道在北京3500只能过温饱的生化,但是我想我足够了,比起以前的工资好了些,以后可以多寄些钱回家。我想只要我继续努力。我工资一定会翻倍的。把本文写出来,希望能让和我一样的没有基础的朋友有信心,其实我们没有自卑,我们不比别人笨,只有我们肯努力,我们一样会成功。

9、…………………………………………………………

10、想成为出色的java程序员就努力学习java吧。