当前位置:首页 » 编程语言 » 自学考c语言

自学考c语言

发布时间: 2022-04-16 10:42:38

⑴ 自学c语言要先学习什么呢

编程语言其实是一个很初级的工具,但是你又必须熟练的掌握它,学懂一门编程语言就好像学会了写字,但是会写字的人不见得会写文章,而会写文章又不见的写得好。可是如果你不会写字,那就一定写不出文章来。 首先,在学习C语言之前,应该学好计算机基础。里面的很多概念对于C程序员都是非常重要的。如果你在着手学习C之前,或者已经开始学习C,但是碰到了很多问题,应该再把计算机基础的书拿来好好看看。 如果你有足够的耐心,十足的毅力,应该再学习C语言之前学学汇编,这会让你对许多比较细腻的概念有清醒的认识,如果你不是那么有耐心(恕我直言,大部分人可能没有)。那么可以在看完一遍C语言的教材后再看,但是一定要看一遍,相信我一定会受益匪浅。 看到有些人发问的帖子,很明显的没有仔细的思考过问题,或者没有认真地查阅过书籍,因为其中的语法和逻辑错误实在是不能理解。想来如果你的语文作业上面满篇都是错字,老师一定不会放过你。为什么不先打好基础呢?有些人抱怨说因为教材不好,老师水平不行等等。但是我本人就是在TC2下学习C语言的,那时候除了谭浩强的书,也几乎找不到什么别的书。我不打算就谭浩强的书发表什么意见,那也实在称不上是一本好书,但是如果这本是能学好,全部看好,都记住,也应该有相当的水平了。建议不管看什么书,先认真地看懂,不要贪速度,应该力求深入的理解。 如果你能够比较熟练的解决一本教材上的所有习题,那么就应该转入对算法的学习,尽管此时你的C语言还称不上精通,有许多细节问题还不了解,许多问题还没有碰到,但是这些问题会在后面的工作和学习中得到解决的。 新手学习C语言,有很多误区,以一个学过C语言的人,给新手一些建议。 抛砖引玉,请前辈指出问题,发表意见,新手请注意后面的回复。 第一:一些概念。 C语言是一门程序设计语言,有一些标准,比较重要的是ANSI C(好像是C89)和C99。 数据结构包括逻辑结构和物理结构。逻辑结构是数据元素集合和定义在集合上的关系。物理结构是逻辑结构在计算机中的实现。 LCC、VC、TC、GCC都是C语言编译器,一般包括集成开发环境,编译器和链接器及辅助工具 我们书写的是C源程序,源程序通过编译器编译为中间文件,中间文件经链接器链接生成可执行文件。不同操作系统可执行文件不同。中间文件也有几个标准,微软使用的和Linux下通用的有差异。 第二:学习什么。 个人认为程序设计学习的重点放在数据结构的学习上,但是这种学习要有一个平台,比如C语言。 学习C语言首先要掌握基本语法,常量、变量、类型、及顺序结构、分支结构和循环结构的意义及用法。进一步学习构造类型如指针、结构、函数的意义和用法。 C语言提供一些标准函数以减轻程序设计工作量,这些函数我们自己也可以实现。即使不依靠函数库,只有编译器,理论上就足够了。事实上,提供的标准函数效率都很高,使用很频繁,没有自己实现的必要,所以掌握常用函数是非常必要的,但是要注意函数的适用范围。 继续学习因人而异,应该可以独立选择了。 第三:如何学习。 强调多实践,C语言的学习要经常上机,多写程序才能逐步提高。 推荐书籍:C Programming Languge。有中译本,但最好看英文版。 通读,并将所有习题独立思考,给出解答,尤其是编程实践题,最好逐一上机完成。 C语言其实并不难,如果认真掌握了C Programming Language,C语言的基础就可以了,继续学习就更加容易。建议不要找捷径,通过考试除外,真正的水平提高是建立在编程实践积累基础上的,必须一个一个程序的完成才能提高。 谈及C语言,我想凡是学过它的朋友都有这样一种感觉,那就是“让我欢喜让我忧。”欢喜的是,C语言功能非常强大、应用广泛,一旦掌握了后,你就可以理直气壮地对他人说“我是电脑高手!”,而且以后若是再自学其他语言就显得轻而易举了。忧虑的是,C语言犹如“少林武功” 一般博大精深,太难学了。其实就笔者认为C语言并非是“difficult(困难)”的,只要你能理清思路,掌握它的精髓,那么自学C语言是一件非常容易且又其乐无穷的事。今天本人就与大家一起谈谈如何学习C语言或者说学习C语言应从哪几方面着手。 了解一些基本知识 一.C语言的背景 就个人感触,无论学习哪门语言首先应该了解一下自己所学语言的背景,也可以说它的发展史。 C语言属于高级程序语言的一种,它的前身是“ALGOL”。其创始人是布朗·W·卡尼汉和丹尼斯·M·利奇。C语言问世时是带有很大的局限性,因为它只能用于UNIX系统上。然而随着科学技术的进步,计算机工业的发展,C语言逐渐脱离UNIX。1987年美国标准化协会制定了C语言的国际标准,简称 “ANSI C”,从此以后它便成为一种广泛使用的程序语言。C语言的优点很多,主要的有如下四点: 1.兼备高级语言与低级语言的优点,属于一种中间语言。 2.它是一种结构化程序设计语言,非常适合结构化程序设计。 3.有较丰富的数据类型、运算符以及函数供以选用。 4.直接与内存打交道,使修改、编辑其他程序与文档变得轻松,简单。 二.二大语系二种不同的学习方法 笔者学习过很多程序语言,例如:C,C++(C语言的扩展),QBASIC,VB(BASIC的可视化),JAVASCRIPT,JSCRIPT ,VBSCRIPT,JAVA,ASP,FOXPRO,PERL等等,就本人实践所得,其实高级程序语言分为两大语系。一路是以C为主的程序语言,例如: JAVASCRIPT,JAVA等,这类语言在函数的调用,程序语句的书写,循环的控制都极为相似。另一路是以BASIC为首的程序语言,例如: FOXPRO,VBSCRIPT等,此类语言同样具有相似的函数调用,程序语句书写以及循环控制,但与C语系是不同的。因此若是您以前是从QBASIC起家的,那么在学习C语言前最好是先洗洗脑,千万不要把学习BASIC的方法以及思路用在C身上。 讲到这里,我想大家对C语言一定有了感性认识吧!下面让我们再升华一下,全方位亲密接触它。学习C语言必须从以下四点入手,也就是说,只要你能掌握这四点的内容,那么基本上就大功告成了。 亲密接触C语言 一.输入输出 C语言的输入输出是非常严格的,或许在其他程序语言中我们可以不关心这个问题,但在C语言中,我们必须要彻底了解它。由于篇幅有限,因此笔者不能详谈,有兴趣的朋友可以参考由着名程序语言教授谭浩强先生主编,由清华大学出版社出版的《C程序设计第二版》。不过这里笔者还是有几点要谈一下。 1.二维浮点数数组的输入 二维浮点数数组的输入(即:通过键盘给二维浮点数数组赋值)在很多专业书中都没有详细讲过这个问题。在给二维浮点数数组赋值时一定要先声明一个变量,接着把数值赋予这个变量,最后把变量数值赋予二维浮点数数组赋值。实例如下: # include "stdio.h" main() { float a[2][3],x ; int i,j; for(i=0;i<2;i++) for(j=0;j<3;j++) {scanf("%f",&x); a[i][j]=x;} } 不能写成: # include "stdio.h" main() { float a[2][3] ; int i,j; for(i=0;i<2;i++) for(j=0;j<3;j++) scanf("%f",&a[i][j]); } 同样道理,在结构性浮点数组变量中也一定要按照这种格式输入。实例如下: # include "stdio.h" struct student {float b[3]; int x; }a[2]; main() { float x ; int i,j; for(i=0;i<2;i++) for(j=0;j<3;j++) {scanf("%f",&x); a[i].b[j]=x;} } 2.注意输出格式中“%”后的字符 C语言的输出说复杂不复杂,因为常用的都很简单。可说不复杂也未必,记得曾在一次等级考前辅导我们C语言的教授讲道:“如果C语言要考得很难的话,根本不用考什么指针,只要专考输出格式,我想百分之九十九的学生都不及格。”当时我们无不认同。从这则事例中可以看出C语言的输出格式之复杂程度。因此大家在学习它时千万要学会辨别输出格式中“%”后的字符,每个字符都有其意义,也都有其作用。 二.优先级 说道优先级,有很多朋友都不是很了解或说很模糊。为此笔者想先通过一个例子让各位有个概念。什么叫优先级?比方说,我们在公交车终点站排座队时总会遇到70岁以上的老人不需要排队就能上车的情景,这就是优先级的涵义。C程序在运行时也象排队坐车一样,首先照顾那些优先级高的运算符,若是优先级相同,那么就象遇到两位(或两位以上)70岁以上的老人那样,让他们依次上车。但是C语言中的优先级的运算并不是千篇一律的,只能说是在大多数情况下,有些运算符的优先级有其自己的特点,因此这点大家要注意。例如条件表达式:条件?结果1:结果2,这种表达式很多朋友都知道,它的作用与IF…ELSE…条件判断语句很雷同,它运算时的优先级就不是按照C语言的规则来完成的。所以说对于优先级各位编程爱好者一定灵活掌握,不要死记硬背。 三.指针 就个人认为,C语言中的指针是最有特色的,当然也是最难学的。指针说穿了,其实是变量的一种表现形式,只不过这种变量记载的不是数值而是地址。就象一个人可以用姓名来表示自己,也可以用身份证号码来表示自己一样。笔者涉足编程已经有三年多了,在这期间曾经收到过很多网友的电子邮件询问学习指针的方法。就本人感触,学习指针最好是先学些计算机硬件工作的原理,例如:直接寻址,间接寻址等,只有了解了这些内容以后,你再学指针就比较容易理会,毕竟C语言是一门介于机器语言与高级语言中间的语言,没有一些硬件工作知识是很难领悟它的真谛的。然而事事并非绝对,如果你没有这些知识也不要紧,只要清楚知道以下笔者总结的二点再加上多练习便可: 1.指针是地址变量:它的值有两种:其一是地址,其二是内容。不同的表达方式可以取不同的值,这有点象一个家庭地址在不同的场合标识的人物也不同。例如:父母亲在他们的单位所登记的家庭地址就代表他们自己,而你在学校中登记的同样的家庭地址就代表你自己。 2.指针是可以运算的,它的运算法则与变量是一致的。 另外,在编写一个程序时,除非万不得已,一般不要使用指针变量。因为指针是比较复杂的,用不好就“当机”。所以笔者建议各位对于指针只要能看懂就行,当然如果你是准备参加考试的就另当别论了。 四.函数 虽说很多程序语言都有函数这一内容,但笔者觉得C语言的函数是最有魅力的。如果你能完全掌握C语言的函数,那么学习C++就不成问题了(C++是一门建立在C语言上,但又不同于C语言的高级程序语言,它增添了很多函数。)。学习函数的方法是比较简单的,只有两个字“牢记”,即:牢记函数的功能,牢记函数的用途以及如何输入输出。有些朋友认为,程序语言中的函数没有多大用处,其实这并不正确,函数从本质上讲是一段通用程序,用它可以帮助我们节约很多编程的时间,一个聪明的编程者在编写程序前往往总是先找自己所编写的程序中有多少是可以用函数来代替的。笔者曾经作过一个比较字符串的实验,用C语言中的strcmp()函数只要一句话,而自己编写的话30句话都摆不平,可想而知函数是多么实用呀! 写到这里笔者该告一段落了,下面送一个本人自己用C 语言编写的注册表比较程序给诸位。此段程序的注释请看“/*…*/”后的文字,程序运行时(在DOS模式下)输入的方式如下:compare xx1.reg xxx2.reg xxx3.txt,注意字段与字段之间是有空格的。(compare是程序名) 程序代码: # include "stdio.h" /*定义头文件或说包含文件*/ main(argc,argv) /*定义带参数的主函数*/ int argc; /*定义参数类型*/ char *argv[]; /*定义第二参数类型*/ { FILE *fp1,*fp2,*fp3; /*定义文件指针*/ char a,b; /*定义字符变量*/ if((fp1=fopen(argv[1],"r"))==NULL) /*打开第一的注册表备份文件,如果不存在则跳出程序并显示“The file don`t open!”*/ { printf("The file don`t open!"); exit(0); } if((fp2=fopen(argv[2],"r"))==NULL) /*打开第二的注册表备份文件,如果不存在则跳出程序并显示 “The file don`t open!”*/ { printf("The file don`t open!"); exit(0);} if((fp3=fopen(argv[3],"w"))==NULL) /*建立新的文本文件,用于存放比较结果。*/ {printf("The file don`t open!"); exit(0);} rewind(fp1); /*规定文件指针fp1指向第一个注册表文件头部*/ rewind(fp2); /*规定文件指针fp2指向第二个注册表文件头部*/ while(!feof(fp1)||!feof(fp2)) /*开始比较*/ { a=fgetc(fp1); /*读取第一个注册表文件内容并赋予给字符变量a*/ b=fgetc(fp2); /*读取第二个注册表文件内容并赋予给字符变量b*/ if(a!=b) fputc(b,fp3); /*字符变量a与b不相同的话,那么把不同之处写入新建的文本文件中*/ if(feof(fp1)) fputc(b,fp3); /*如果第一个注册表文件已经读完,第二个文件还有未读取部分,那么把第二个文件的剩余部分全部写入新建文件中*/ if(feof(fp2)) fputc(a,fp3);} /*如果第二个注册表文件已经读完,第一个文件还有未读取部分,那么把第一个文件的剩余部分全部写入新建文件中*/ fclose(fp1); /*关闭第一个注册表文件*/ fclose(fp2); /*关闭第二个注册表文件*/ fclose(fp3); /*关闭新建文件*/ } 对于高深莫测的C语言来说,寥寥3千字并不能说清楚的什么问题。但只要您看了此文后,我想对于您学习此语言一定有很大的帮助,同时也能了知晓如何用最短的时间学会C语言以及掌握C语言的精髓所在。另外,此文中所涉及的知识点都是笔者通过实践得出的,因此若是其他专业书籍没有讲到过的问题可以参考本文。最后祝大家学习C语言顺利!

⑵ 我想自学C语言

肯定要先学c语言啊,c语言是基础,考二级c语言就把c弄通就可以了,tc是c语言编程最基本的运行环境,我那时侯用的是tc--2.0,初学者都是用tc编程的,到网上下一个,安装在c盘,就可以了;
学c语言很简单:
1,选对教材,现在公认的c语言教材是谭浩强的<c程序设计>,清华大学出版社的;这本书上写的详细,易懂,把这本书搞懂,二级肯定没问题;
2,给你几点建议:你可以在看书的同时做点相应的练习,也可以上级实践,自己可以找到错误并改正,多看看程序,理解一下他的运行过程,刚开始肯定有点困难,看多了就好了;
3,把课本看完后,就可以借一本c程序实例进行巩固, 要考二级就借点二级考试的书做做题,题做多了肯定就没问题了;关于二级的书每个图书管都有好多,呵呵;希望你能够学好c语言,很重要的!!

⑶ c语言入门自学书籍都有哪些

c语言入门自学书籍都有:《C程序设计》、《C#图解教程》、《C语言入门经典》。

1、《C程序设计》

如果你只是想要学习C语言来考个计算机等级证书,仅此而已,那么《C程序设计》对于考级来说绝对是本好书。

3、《C语言入门经典》

《C语言入门经典》例子简单生活化,而且每个例子分析很细。章节安排合理,章末的例子还特别注重思路的引导,而且分析起来特别有成就感。

⑷ 自学c语言 零基础 看什么书 该怎么学

现在,市面上的
C语言书籍多的数不过来,但是很多不适合你这种初学者使用,作为一名老程序员,我给你推荐几本我看过认为还不错的书:
1)
《C语言小白变怪兽》:既适合对计算机一窍不通的小白,也适合有编程基础的读者,还可以用来进阶。同时,最重要的是,这本书的作者还在不断地更新这本书,我认为最大的特点是通俗易懂,深入浅出,只要认真看,就一定能看懂,我认为这是C语言入门的首选教材,吐血推荐,经典中的经典!!!
2)
《啊哈C语言》:适合对计算机一窍不通的纯小白,有编程基础的读者请忽略。这本书语言幽默,生动形象,通俗易懂,给人耳目一新的感觉,但是这本书非常浅显,并不深入,所以适合纯小白入门,找到门以后也就扔了。这本书着重于语言艺术,针对纯小白下足了功夫,小学生坐在马桶上都能学会编程。说实话,我非常欣赏作者的创意和用心,国内像这样写书的少之又少,入门的书就应该是这个样子。
上边这两本书是我推荐给你用于C语言入门的,我不建议你使用谭浩强的《C语言程序设计》这本书入门,虽然这本书的知名度很高,因为很多大学把它作为C语言的授课教材,然而,这本书被吐槽最多,不但代码不标准,而且有很多错误,据说可以找出几十个错误,这样很容易误导你这种小白。
等你有一定的C语言基础了,可以看下面的这几本书,进一步提升你的编程水平:
1)
《C
Primer
Plus》:畅销
30
余年的C语言入门经典书籍,至今无人能撼动它的地位,它是最符合C语言标准的书籍,作为一名C语言程序员,不收藏一本都觉得自己很水。
2)
《C程序设计语言,The
C
Programming
Language》:C语言创始人丹尼斯·里奇(Dennis
MacAlistair
Ritchie)的着作,和《C
Primer
Plus》并驾齐驱,很难分出伯仲,这两本书都是一样的优秀,都是C语言程序员必须收藏的。
3)
《C专家编程》:适合已经具备C语言基础、想进阶的读者。这貌似是一本吐槽C语言的书,基本上介绍了大多数C语言的坑,有不少精髓,在C语言界久负盛名,进阶时一定要看。
4)
《C陷阱与缺陷》:和《C专家编程》类似,也是给C语言挑刺的,阐述了很多容易让人误解的语法细节,重在帮助C程序员绕过编程过程中的陷阱和障碍。
5)
《程序员的自我修养
--
链接、装载与库》:这真是一本深入骨髓的书,让你彻底明白程序的编译、链接、装载和运行的全过程,你会从此上天,拉开和别人的差距,看任何问题都有了深度和高度。重点推荐!
所有的这些书我都有电子版,需要可以找我要!

⑸ 自学c语言能过吗考得分数高低有影响吗我想自学c语言过二级!不知道要花多久时间。

绝对能过,我的二级,三级都是自学的,前提是一定要有自制力,不能三天打渔,两天晒网,有基础的话两个月足矣,没基础三个月也够了,分数嘛,上机笔试都过90的话,证书上会多出“优秀”两个字,其余没区别,好好搞,祝你成功!

⑹ 自学C语言教程

没有基础可以入门,通过努力可以达到初、中级程序员的程度,但再往上走,就比较困难了。后面需要不少算法、英文和数学知识。
教程的话可以参考下面两本教程:
谭浩强:《C语言程序设计》
李铭城 黄中豪 陈宇芬:《资料结构 C》

英文的话,进入初级之前都不怎么需要。但是进入中级后,需要读一些英文资料。不过现在翻译比较厉害,绝大部分的资料都有翻译。但是要进入高级,就必须要学习英文了,因为最新最核心的资料都是英文的,翻译的往往都会有错误。
另外数学在早期影响不大,但是进入中级后就必须要了。因为估算算法时间复杂度、空间复杂度、图、树等等,都涉及不少数学知识。当然如果只是做简单应用或者驱动的话,这方面要求就不会太高。

最后给一个学习大概的路线图:
入门级的学习,只要能够掌握:代码三大结构(循环、分支、顺序)、流程图、C语言关键字和语法、输入输出、文件操作、套接字操作。就算是初级满级了。
初级程序员:数据结构和算法(排序,查找)、了解软件开发模型(瀑布模型、敏捷模型、原型模型等等)、了解UML、系统常用API、网络通信、编译和SDK环境搭建
中级程序员:设计模式、多线程编程、网络通信(服务器、客户端)、面向对象编程、掌握UML、系统网络/文件/互斥/线程/事件/安全API、STL、相关法律法规、知道一些常用软件架构(MVC等)

⑺ 我想问一下C语言可以自学考证吗

对,你要先学C语言,编程入门的,看书学习效果好,考不考证其实对就业关系不大,公司招聘直接出题,你通过就OK,不会看什么 证书的,毕竟混文凭的人太多了,如果是为了验证自己的知识技能,考证也不失为一个好方法。英国2425印度979缅甸960韩国,里面的数字能加 我 ,我也是学这个的大学生,希望能帮得到你

⑻ 自学C语言会很难么

你算问对人了,我明年也要考计算机二级。
首先我告诉你,自学c语言一点也不难。而且考试的题也不难。只要你从现在开始认真的学习,考试一定会过的。
长时间的学习电脑语言,我总结出了一些学习c语言的方法。给你分享一下吧。
第一,兴趣最重要。一定要想办法培养自己对c语言的兴趣。
第二,基础知识一定要学好。反复的看一下c语言中最基本的知识,要求熟记于心。
第三,上机练习是关键。只看书本上的程序是不行的。虽然你可以看懂,但这只是肤浅的了解了。当你用到的时候就会发现脑子一片的空白。所有对于书本上的程序或是自己写出来的程序一定要上机练习一下。出现了问题要找出来,并总结自己的失误之处。
第四,不要太注重细枝末节,死扣知识。初学者要从大的方面着眼,从总体上了解c语言的知识。

希望可以对楼主有所帮助。努力学习吧!祝你成功。

热点内容
方舟如何运行服务器 发布:2024-05-02 14:47:45 浏览:770
如何创作抖音模板脚本 发布:2024-05-02 14:42:36 浏览:854
ftp被动模式下载 发布:2024-05-02 14:33:25 浏览:313
教堂电影院ftp 发布:2024-05-02 14:32:35 浏览:481
程序编译机 发布:2024-05-02 14:32:29 浏览:796
cf服务器云南一区云空间 发布:2024-05-02 14:18:24 浏览:752
如何破解excel2007密码 发布:2024-05-02 14:18:23 浏览:993
ios数据上传服务器 发布:2024-05-02 13:39:27 浏览:351
Php面向对象模式 发布:2024-05-02 13:33:32 浏览:80
安卓手机软件如何快速打开 发布:2024-05-02 13:25:16 浏览:963