当前位置:首页 » 编程语言 » c语言中级教程
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言中级教程

发布时间: 2022-12-18 11:56:14

❶ 求《21天学通c语言第七版》全文免费下载百度网盘资源,谢谢~

《21天学通c语言第七版》网络网盘pdf最新全集下载:
链接:https://pan..com/s/1Rdto2cOZ3FuVpckUCQ2P1A

?pwd=na8e 提取码:na8e
简介:《21天学通C语言(第7版)》总共分为4部分,第1部分是C语言基础,介绍了C语言的组成、变量、常量、语句、表达式、运算符、函数和循环、信息读写;第2部分介绍了数组、指针、字符和字符串、结构、联合、TypeDef、变量作用域、高级程序控制、输入/输出等;第3部分介绍了指针、磁盘文件、字符串操纵、函数库、内存管理以及编译器的高级用法等;第4部分是附录,介绍了ASCII表、C/C++中的关键字、常用函数,以及习题答案等内容。
《21天学通C语言(第7版)》针对初中级程序员编写,可作为学习C语言的教程或参考资料。

❷ C语言怎么学

浅谈C语言学习方法
本人是一名windows程序写作员,使用的语言是C语言.其他语言了解一点点,但并不擅长.可能对于初学者来说,首先就是选择一门程序设计语言.当然,今天我将要说的不是这方面.每种语言都有它所擅长的领域与层面.当然对于其他非C语言我是一名门外汗,我也不会站在C语言的立场去谈论其他任何一门语言.好了,在开始进入正题之前,我想谈谈个人对C的一些看法:

C语言是一种早期的计算机语言,最初诞生目的是为了提供一种基于UNIX系统的工作语言.但是,后来却被越来越多的人发现它的优点与潜力.C本身比较接近底层,适合开发系统软件甚至是操作系统.我个人也认为它是界于高级语言与汇编语言之间的中级语言.C语言是一门结构化语言(我认为主要是指它的控制结构如:if if-else while for等等).C程序设计上有提到"自顶向下,逐步深入".以函数为原子功能模块.对于大型的程序来说模块化是很重要的,有一句话说的很好"优质的程序首先就是便与人们之间的相互讨论与交流,其次才是执行效率".当然我个人认为任何一名程序写作者,都应该养成一种特定的思维方式,以程序的思维方式来思考程序的实现.前提就是要足够的来了解计算机底层技术.要不我想就连学习都是很困难的,凡事都是一个思路的问题嘛.标准的来衡量,C应该算是高级语言阵营的一份子.可很多有C语言开发经验的程序写作者.通常亲切的称C为界于底级语言与高级语言之间的中级计算机语言.当然不是因为C比高级语言要差,之所以这么认为是因为C既具有高级语言的结构化与可理解性又具有低级语言的高效率.同时C的移植性也是非常不错的,大家应该知道,越是接近硬件,接近底层的语言就越加的依赖硬件环境,也就是我们所说的设备相关性.C这一点做的是非常棒的.说了这些,在从另一个角度去分析C语言.当然每种语言都有它自身的优缺点,C也一样.比如在现在高级语言与顶层技术的角度来看的话,C最大的缺陷就是Data与算法的分离.举一个例子: 对于一个拥有几千行甚至上万行Code的程序来说,如果修改Data,比如我在Structure中增加一个字段,可能为此我的整个程序都要改动,这使得程序的可重用性大大降低.开发周期也大大的延长.但是在底层的角度来看这也正是C的优点.我为什么要这么说呢?我个人认为在求解与实现一个小问题的时候,我们可以写出一个通用的模块处理不同的Data.当然比如某些经常用到的,基于数据结构的一些常用算法我们可以写出来在开发的时候我们可以直接把预先编写的模块插入到我们的程序中去,这不也是大大低了开发周期吗?初学者完全可以根据自己的需求来编写一个自定义库.好了,说了这些,有些地方我理解错了,还请各位指出来,交流是很重要的,前提是要把自己的心态放平.下面我将谈论本问的重点,也就是如何来学习C语言,是给那些初学者读的.

正题部分:

有人可能会说:学习还用你教啊,谁没上过学啊.其实我今天要说的只是,站在一个过来人的角度,来分析与解释学习C语言的过程中比较困难的地方.当然我个人也会对比较具体的问题进行解释(个人看法).我一直在强调个人看法,我是想让大家明白,对于同一个问题大家可能都很难达成统一的意见,希望批评的时候客气点就好喽!

初学者该看哪些书来入门:

在学习C语言之前,首先就要选择一本教材,对于初学者,我个人并不建议去读电子书籍,最好是买纸质书来学习.比如比较有名的"C程序设计"就很不错,尤其是第二版.我也看过,比较适合中国人来初学.整本书都在全面系统的讲解C的语法结构,构成C的语言元素包括:数据类型,支持的运算符,标识符(是由程序员按照命名规则起的名字,用于变量名,函数名,宏名等等),关键字(编译系统用于实现C内部功能的词,比如:转向goto和中断break等等)等.看完这本书你基本上可以写一些简单的小程序,当然是DOS下的程序.如果你想在进一步深入学习C的话,可以看"C陷阱与缺陷"这本书.写这本书的作者是在Bell工作对C是非常精通的,应该算是大师级的人物了.如果你暂时不想深入C的话,也没问题,因为此时你完全可以把C当作一种编程工具来使用,你要做的就是多写Code来让自己熟悉C语言.经验是非常重要的,"经验是检验真理的唯一方法".当然你不会纸上谈兵,如果你有过多的开发经验的话,就知道在纸上或最初的设想的Code拿到计算机上来实现,最终会发现有很多地方都是不合理的,之前是没有办法想象到的.在初学C的过程中,比如你会看"C程序设计"来初学C,当你学完每一章的时候要把习题来完成,这里就是考验你学到的知识了,看看你应用能力怎么样?尤其是程序设计题目,比较有意思.哪里不懂了.可以翻回去看书中的解释.如果没有解释或你还是不明白,可以去问别人,与其他人交流. bbs,QQ或Google.直到你弄明白为止.当你把问题最终解决的时候,我敢打赌,此时你一定很兴奋,或者是比较兴奋.这个时候知识已经在你的大脑里了.

下面我为你推荐几本不错的关于C语言籍:

C编程规范
C语言大全第四版 (个人感觉不错,里面有提及C标准方面的东西)
C和指针
The C programming Language (经典着作)

如果你要看电子书的话,以上几本书在Google上很容易就可以找到.

关于C语言的初步理解:

对于初学者,会有太多的疑问,原因是你的知识面太小.现在我为你解释一些C相关的东西.目的是让你能够有一个大致清晰的方向,来给自己安排学习计划.专业的来说,我们是或将是一名程序员,程序员当然就是要开发程序了.对于软件开发方面我来解释下术语:

C,C++,ASM,Basic,Java 这些是计算机语言.计算机语言很多,我就不多说了.

Visual C++,Visual Basic, Microsoft研发的开发环境,开发环境包括:编译器,库函数(每种C语言编译器都支持标准库,同时它们也会扩展自己的库,所以很多比较以来库函数实现的程序员,在转向不同的开发环境的时候最初总是不使用的,会遇到很多问题),一些资源模板等等.Visual 就是可视的意思,后面的就是语言.Visual C++支持C与C++2种语言,是根据文件的扩展名来判断采用哪种编译内核.

什么是"面向对象"与"面向过程"? 其实是2种完全不同的程序设计思想,C语言是面向过程语言,而C++是面向对象语言.在面向对象的语言中有"类(Class)"这个东西.C中没有.对象是由类来派生的一个实例,相反类就象是一个模板.

什么是SDK? SDK就是软件开发工具包(Software Development Kit).指的范围比较广,通俗的说,凡是能够与软件开发过程占上边的东西都属于.比如:库文件,参考资料,接口函数,当然语言也应该属于.

DDK就是设备驱动程序开发工具包.

Turbo C: 这是一个比较精致的C语言编译器.

理论上来说任何一门语言都可以在任何一种操作系统上运行,前提是操作系统要支持.也就是我们所说的应用程序接口,比如Window API(Application Programming Interface),其实是Microsoft内部定义的接口函数用于实现一些Windows内部的功能.一些对象的描述术语,在不同平台上是不同的,比如:Windows下的"调用",经常被称为"呼叫","返回"被称为"传回".

什么是"算法"? 你最初只需要知道算法实际上就是对特定的Data进行运算的一段代码而已.也可以认为在求解一道题目的时候,采取的方法与步骤的总称.对于基本的C程序来说,实际上就是由Data与算法来组成的.

什么是"数据结构"? 如果要是系统的讲解,还需要一本书"数据结构",简单的说:是程序要处理的数据在内存中的存储与组织的方式,分为:物理结构与逻辑结构.逻辑结构就是我们抽象化以后得到的大脑影象.

什么是"函数库"? 它们以文件的形式存储,是预先定义好的函数的集合,我们的程序可以直接调用.当然前提是要包含它的头文件(库函数的原型声明).这些函数是在静态连接期间组成到.exe文件中去的.Windows又存在另一种库,叫做动态连接库(DLL).

GUI: 也就是"图形用户界面",就是我们在Windows上看到的,存在:菜单栏,滚动条与显示区域的窗口.

GDI: 图形设备接口,从程序写作者的角度来看,其实GDI就是由上百个函数与数据形态和一些相关的数据结构所组成的.

学习C语言的全过程:

仔细想想,实际上学习C语言,最初是应该先学习C语言的基础语法.也就是学习C语言的组成部分.一部分一部分的向下学.知识要一点一点的巩固的.本人假设你学习C语言是看"C程序设计".我认为你应该先把C程序设计仔细的看一便,这样你应该可以对整本书和C语言的整体组成结构有个大致的清晰了解.不要认为学习只是在看书,看一便就可以了.你应该学会记笔记,在记笔记的过程中,其实你就是在学习,从知识的分析,理解,归纳,到最后以自己的思维方式记下来,这整个过程就是把书中的知识抽象到你自己的脑袋里.个人感觉学习效果非常好,不懂就问,要多多与人交流,要多思考,遇到问题自己先多想想,实在找不到问题出在哪,在去请教别人,不要有不懂的地方就直接去问别人,那样对你没太大的好处.其实要学会给自己安排适合自己的学习计划,我大致来估计了一下,如果你每天能花4个小时安静的,用心去学习的话,30天之内你应该可以掌握C语言了.其实在整个学习过程中你大多数时间都在看书,而不是面对电脑.在调试你的代码之前,先在纸上把核心代码大致写出来,分析一下:程序的组成模块(可以是一个函数或多个),由几个函数来实现,接口的封装.采用哪种数据结构更适合一些.关键在于算法.在你的最终程序发布之前,最好把你的代码行数减到最少.不要只想着把代码写多.过多的代码对程序来说是负担.你可以在Internet上下载一个文件(C语言经典例题.chm),里面大致包含了上百个经典的例题.每一个例题都是C语言某部分的典型应用.花时间把这个文件中的所有例题代码研究一下,最好能自己把代码改善,以自己的方式来求解.以后你会发现你在写一些应用程序的时候经常会有一些算法.会涉及到我之前提到的例题.最后我认为你可以自己来写C语言标准函数,比如strcpy(); strlen();strcat();最好不要过分依赖库函数.

C语言学习的难点:

现在应该是已经讲到一个重点的环节.很多网友都说学习C语言很难,我认为C中有些部分是比较复杂,难理解的.当然在你具有了丰富的开发经验以后,这以不在是问题了.下面我个人会对我认为学习C的时候比较难学的地方进行我自己的阐述,如果哪里不正确,还请各位指出:

指针的出现:

我想有很多初学者学习到指针那一章都感觉很难,下面我就以自己的想法来解释下指针这个特殊的数据类型,
基本变量大家可能并不难理解,因为基本变量其内部存储了同类型的常量,事实上指针也是变量,不过呢,这个变量和基本变量有点不一样,那你又问了:是哪里不一样呢? 我告诉你,简单的来理解其实普通的变量内部存储了同类型的常量,而指针变量内部存储的则是"同类型变量的首地址".这样你能够理解吗,是很简单的解释,但不失本质.事实就是这样的.如果你不理解"同类型变量的首地址"的话,我可以给你形象的来描述一下:
float Variable; //声明一个单精度实型的变量
此时,编译器已经给Variable分配了内存空间,结构如下:
__________
| |1001
|---------
| |1002
|---------
| |1003
|---------
| |1004
|---------

以上便是Variable的内存结构了,16位下的float占用4个字节,内存地址是线性编码的,我们可以很容易的看出Variable的首地址就是他第一个单元的地址1001,好的,继续向下看:
float *Pointer=&Variable; //声明一个指向Variable的指针Pointer
_________
|1001 | 这是Pointer的内存结构
|_______|

我们的程序可以这样来执行:

Variable=1.0;
直接给Variable赋值,我们称为直接访问.

也可以这样执行:
*Pointer=1.0;
也可以通过指针变量来赋值,前面的*是间接运算符号,意思是求Pointer内部存储地址所标识的内存单元.也就是Variable.此时,是赋值是通过间接访问来实现的.可以这样形象的描述:

________ (指向Variable) __________
|Pointer|------------------------------------>|Variable|
--------- ----------

以上应该是指针实现的基本解释,很多优秀的程序写作者都说指针是C语言中的精华,的确如此,很多优秀的程序写作者写程序都非常依赖指针,因为它很方便,实际上指针所访问的对象是没有限制的,他可以指向任何类型的变量,前提是只要我们知道内存地址.因此指针也并不安全,在开发网络程序的时候,尽量要少使用指针.下面我们在来看一下指针在数组中的使用.

数组中的指针:

简单的来解释下数组,数组结构在C中使用比较普遍,其实最常用的就是char 类型的数组,主要是用于字符串操作.实际上数组是"同类型变量的有限集合".我想这应该不难理解吧.数组在内存中占用连续的内存单元(地址连续),来存储数组中的每一个元素.数组是预先分配好指定长度的内存单元,供数组元素使用.它并不支持动态内存分配.在内存中想要唯一的确定数组,需要2个标识:入口地址(函数名)和结束标记('\0').有些语言并不向C语言这样支持字符串结束标记,它们必须要另外声明一个变量来标识尾元素的下标.那数组名其实就是这一组内存单元的首单元,他的地址就是整个数组的入口地址.此时应该明白了,数组名是一个指针,这样理解没有问题.不错在具体操作的时候不允改变数组名的地址,也不符合实际要求.这样就可以明白数组名是一个什么 const Pointer(指针常量).我们可以这样做:
int Array[10];
int *Pointer;
Pointer=Array;
for(i=0;i<10;++i)
Pointer==i;

以上代码应该是没问题吧,同类型的指针,完全可以胜任数组名的任务.一点问题没有而且可以运行的很好.当然,我们可以进一步把代码这样来写:

for(i=0;i<10;++i)
Pointer=i;
改成
for(i=0;i<10;++i,Pointer++)
*Pointer=i;
不好意思,我记不清了,指针的++运算是地址+1还是向后移动一个元素的位置,如果是地址+1的话,以上代码在改成这样:
for(i=0;i<10;++i,Pointer+sizeof(int))
*Pointer=i;

如果数组类型是char的话,那就更方便了,因为字符串存存在一个在尾元素之后的结束标记('\0'),下面给出一个简单的代码,应用char Pointer:
char * my_strcpy(char * dst, const char * src)

{

char * cp = dst;

while( *cp++ = *src++ ); // 注意运算符的优先级与结合性

return( dst ); //返回新传的指针

}
以上代码实现字符传Copy功能,代码是不是很简洁啊.如果不需要移动内存块的话,我们完全可以通过交换指针(内存地址)来实现排序操作,其效率应该是很客观的.补充一句:千万要弄清楚,指针本身与指针所指向的变量不是一个单元.

❸ 如何学习C语言

如果刚开始接触c语言,听不懂也正常,不要有畏惧的心理,有些小伙伴可能看到部分同学什么都会,自己就很气馁,因为这部分同学很可能接触编程比较早,即使小孩学走路也有一个过程,刚开始有走路欲望->学会站立,腿部有力量->尝试走路,不断练习->学会走路。所以不要慌。

学C语言与走路一样,刚开始一定要有学习的欲望,然后,再制定计划,不断练习,量变会引起质变,坚持下去就发现原来这么简单。

欢迎关注公众号:c语言与cpp编程,关注后,回复“加群‘’进微信学习交流群

1、学习资料

书本推荐:《cprimerplus》难得的好书。老谭的书可看可不看,但是这本蓝皮的cprimerplus是我案头必备的参考书,后面还有完整的c99标准库,所以适合当个参考书。注意区分一下《c++primer》和《cprimerplus》

如果觉得这几本书还是有点难,那就先看《C语言程序设计》

有了经验后要去看看,例子很经典。后来进阶可以看看三剑客《c和指针》《c陷阱与缺陷》《c专家编程》

刚学C语言的话可以结合看下C语言编程经典100例;

编译器:VS,DevC++,VC++,CodeBlocks,C-Free,TurboC。关于它们的特点网上介绍很多了,就不赘述了。讲真,入门和基础阶段你用哪个无所谓,还是选自己喜欢的,不过对于初学者我们推荐DevC++。可能现在大学课堂用的还是VC++,刚入门自己习惯就行。

视频推荐:有同学曾经说过,视频这么好,上课就不用听讲了,这个是完全错误的,视频是课堂补充,上课还是一定要好好听讲的,视频可以查缺补漏,系统的学习一下。

上面提到的一些资料整理好了,可以下载:

链接:

提取码:1234

学习方法:

1、过:学习一门新的语言,第一步就是把它所涉及的基础知识大体过一点,不求深解,只求了解——第一遍:无需了解太过深入的理论,大体知道这门语言是什么样的,主要面向哪些场合,一些基本的语法格式是什么样的就可以了。

2、抄代码:刚开始写代码,没有多少人一上来就能立刻自己写一个很完善很强大的代码,甚至连基本的语法都会写错,这时候抄代码就很关键了,从书上抄,从例子里抄,边抄边想,边想边回忆语法。

3、模仿改:自己会抄写一些简单的代码,熟悉了一遍此语言的简单语法后,但还不太清楚怎样下手写一个完整的代码模块,所以这一步要仿写了,仿照给出的代码写一个属于自己的代码

4、勤调试:没有人能一下子写出完全正确的代码,自己试着写一些代码,通过不断调试来验证自己的一些想法,继续思考,再次验证,来回折腾。熟悉一些基本的调试工具以及调试方法。

5、看n遍:出错或遇到问题时,将代码从头看到尾,看了一遍又一遍,直到快全部记住时,总能找出问题原因,相信方法总会比问题多

6、练重复2-5步三遍以上,不解释。

7、创新拿出一个完全没有写过的代码,根据要求,一步步的写出来。如果写不出来,或者中间一堆错误,请参考第六步。

8、悟:主动找到写代码的感觉和成就感,并保持下去,世界上最难的语言就掌握了,将成为你软件生涯永远的工具。

❹ C语言进阶学习有哪些经典书籍

《C语言程序设计》
作者:郭有强 编
出 版 社:清华大学出版社

评价:书很利索,该有的都有,如果你还没有一本满意的C语言课本,买它没错。(也可以阅读外国的经典C语言书籍)

《C和指针》
POINTERS ON C Kenneth A.Reek、
徐波 人民邮电出版社

评价:不算厚的书,纠正对指针的错误理解,这是必读经典,相信会带给你很多思考。(单单一本还不够,继续往后看)

《C陷阱与缺陷》
Andrew Koenig、 高巍
人民邮电出版社

评价:172页,应当1-2天看完,读完豁然开朗,对C语言常见的陷阱进行剖析,必须经典。

《C专家编程》
Expert C Programming Deep C Secrets Peter Van
Der Linden 人民邮电出版社 (2008-02出版)

评价:200多页,应当2天左右看完,本书读起来很舒坦,不可多得的好书,带你领略语法之外的奥秘,必读经典。

②数据结构与算法:

《清华大学计算机系列教材•数据结构(C语言版)(附光盘1张)》
吴伟民、 严蔚敏
清华大学出版社

评价:数据结构都是类C的伪代码描述,初次接触编程的同学可能理解不了,我也一样。我是看严蔚敏视频学会的数据结构,希望这个办法对你们也同样有效。

《计算机算法设计与分析(第3版)》
王晓东
电子工业出版社

评价:这是我们的课本,不过的确是学习它才把数据结构和算法入门了,为后面进阶做了铺垫。

《算法艺术与信息学竞赛•算法竞赛入门经典》
刘汝佳
清华大学出版社

评价:了解数据结构怎么用,常用算法与思想,书不厚,但很给力。初学可能有障碍,但这的确是入门经典书籍,请不要放弃。

《算法导论(原书第2版)》
科曼(Cormen T.H.)、等、 潘金贵
机械工业出版社 (2006-09出版)

评价:经典中的经典,无需多说,不要问我看哪些内容,负责任的说:有能力就多看点,其实都能看懂,书中的内容与思想将会终身受用。

《编程之美:微软技术面试心得 》
《编程之美》小组
电子工业出版社

评价:微软出品,像是一本小故事集,将数学和编程之美展露无疑,学起来很轻松,反复回顾收获颇丰。

《编程珠玑(第2版)》
Jon Bentley、黄倩、 钱丽艳
人民邮电出版社

评价:主要是数据结构和算法,都是常用的内容,不过作者思维新奇,跟随作者一起思考会碰撞出不少火花,评价非常高的一本书,本人没有顺序阅读,感兴趣的内容翻了翻。

《算法艺术与信息学竞赛 》
刘汝佳
清华大学出版社

评价:放在最后,因为此书的确很专业,我这点智商也驾驭不了,信息学竞赛必备。

《程序员面试宝典(第3版)》
欧立奇、刘洋、 段韬
电子工业出版社

评价:这本书很神奇,大二下学期的时候我就买了并看完了,等到大三找工作的时候发现里边的提到的陷阱题目还是有点意思的,C语言掌握的怎么样拿这本书验一验就知道了。

《数学之美》
(《浪潮之巅》作者吴军最新力作,李开复作序推荐,Google黑板报百万点击)

❺ 推荐几本C语言的书,一本入门教程,一本中级难度,一本高级难度的。

我就推荐两本中高难度的书吧,一本是《c和指针》,一本是《unix环境高级编程》
还有一本是一个培训机构的老师写的(免费的),算是初级+中级吧,我是看它学的c,觉得不错,也推荐给你,叫做《linux c一站式编程》
我是在linux环境下写程序的不知道我推荐的是否适合你。

❻ c语言入门书籍

1) 《C语言小白变怪兽》

既适合对计算机一窍不通的小白,也适合有编程基础的读者,还可以用来进阶。

《C语言小白变怪兽》是一套网络教程,发布在C语言中文网,由站长亲自编写,这套教程最大的特点是通俗易懂,深入浅出,既适合小白入门,也适合后期进阶。本人就是读了这套教程以后才对C语言有了天翻地覆的认识,觉得以前学得都是垃圾。。。
这本书至今还在不断更新,我认为这是C语言入门的首选教材,吐血推荐,经典中的经典!!!
2) 《啊哈C语言》

适合对计算机一窍不通的纯小白,有编程基础的读者请忽略。

这本书语言幽默,生动形象,通俗易懂,给人耳目一新的感觉,但是这本书非常浅显,并不深入,所以适合纯小白入门,找到门以后也就扔了。

这本书着重于语言艺术,针对纯小白下足了功夫,小学生坐在马桶上都能学会编程。说实话,我非常欣赏作者的创意和用心,国内像这样写书的少之又少,入门的书就应该是这个样子。
3) 《明解C语言》

适合对计算机一窍不通的纯小白,有编程基础的读者请忽略。

日本人的作品,最大的特点是插图很多,生动有趣,让人一目了然。

其实真正的《明解C语言》一共有三部,分别是《明解C语言·入门篇》《明解C语言·中级篇》《明解C语言·实践篇》,遗憾的是图灵公司目前只翻译了入门篇和中级篇,还没有翻译实践篇。中级篇网上还没有 PDF 下载资源
4) 《C Primer Plus》

适合有编程基础的读者,对计算机一窍不通的纯小白请忽略。

畅销 30 余年的C语言入门经典书籍,至今无人能撼动它的地位,它是最符合C语言标准的书籍,作为一名C语言程序员,不收藏一本都觉得自己很水。

但是对于没有计算机基础的小白,这本书就有点蛋疼了,信息量大,涉及的知识面广,书也比较厚,得有耐心才行。

如果你是纯小白,还是推荐阅读《C语言小白变怪兽》《啊哈C语言》《明解C语言》这几本书,等有了一点C语言基础,知道C语言大概讲了什么东西了,再来读《C Primer Plus》收获就非大了,你会感受到满满的干货。
5) 《C程序设计语言,The C Programming Language》

C语言创始人丹尼斯·里奇(Dennis MacAlistair Ritchie)的着作,和《C Primer Plus》并驾齐驱,很难分出伯仲,这两本书都是一样的优秀,都是C语言程序员必须收藏的。

但是,《C程序设计语言》也不太适合纯小白,还是推荐阅读《C语言小白变怪兽》《啊哈C语言》《明解C语言》这几本书,等有基础了再回来看。

《C程序设计语言》和《C Primer Plus》的难度差不多,信息量也差不多,有很多人纠结读哪一本,我的建议是任选其一即可,或者,看了一本以后,另外一本大概浏览一下。

❼ C语言教程的内容是

C语言学习从入门到精通的一套经典视频教程,本课程通过高清晰的视频、概念详解、实例精讲、习题测试让你很快的掌握C语言的相关知识,并领略运用到实例中去。在针对一些用户认为C语言比较难学的情况下,本课程从初中级用户的角度出发,进行合理的内容安排,突出学、练、用、巩固相结合的特点,以通俗易懂的语言,丰富多彩的实例,详细介绍了使用C语言进行程序开发应该掌握的各方面知识。本课程主要给大家讲解了C语言概述,算法,数据类型,运算符与表达式,常用的数据输入、输出函数,选择结构程序设计,循环控制,数组,函数,指针,结构体和共用体,位运算,预处理,模块化编程,编程规范,C语言常见问题及分析,习题测试等内容。所有知识都结合具体实例进行介绍,涉及的程序代码给出了详细的讲解,可以使读者轻松领会C语言程序开发的精髓,快速提高开发技能。

课程内容详尽,实例丰富,非常适合作为单片机及编程初学者的学习课程,也可作为大中院校相关专业在校学生及毕业生的教学辅导课程、短期C语言培训课程,是C语言编程爱好者从入门到深入的经典课程。
课程共分为15讲,每节课的内容大纲如下:

第1课 C语言概述
1、几种常见的程序设计语言
2、C语言出现的历史背景
3、C语言的特点
4、简单的C程序介绍
5、C程序的上机步骤
6、习题测试
第2课 程序的灵魂-算法
1、程序设计过程
2、算法的基本概念
3、算法的特征
4、算法的表示方法(流程图)
5、结构化程序设计方法
6、习题测试
第3课 C语言的数据类型
1、预备知识
2、C语言的数据类型
3、常量与变量
4、不同数据类型之间的转换
5、运算符号和表达
6、习题测试
第4课 C语言顺序程序设计
1、C语句概述
2、赋值语句
3、数据的输入输出
4、字符数据输入输出
5、格式输入输出
6、顺序程序举例
7、习题测试
第5课 C语言选择程序设计
1、关系运算符和关系表达式
2、逻辑运算符和逻辑表达式
3、if 语句---条件判断
4、条件运算符
5、switch 语句
6、选择程序举例
7、习题测试
第6课 C语言的循环控制
1、概述
2、goto语句及与if语句构成循环
3、while语句
4、do …while语句
5、for语句
6、循环的嵌套
7、几种循环的比较
8、break语句和contiune语句
9、程序举例
10、习题测试
第7课 C语言数组
1、一维数组
2、二维数组及多维数组
3、字符数组和字符串
4、程序举例
5、习题测试
第8课 函数
1、概述
2、函数定义的一般格式
3、函数的返回值
4、函数的调用
5、函数参数及其传递方式
6、函数的嵌套与递归调用
7、数组作为函数参数
8、变量的存储属性
9、内部函数和外部函数
10、习题测试
第9课 C语言预处理命令
1、编译预处理
2、宏定义
3、文件包含
4、条件编译
5、习题测试
第10课 指针
1、指针的概念
2、指针变量
3、指针与数组
4、指针与字符串
5、指针与函数
6、返回指针值的函数
7、指针数组和多级指针
8、习题测试
第11课 结构体与共用体
1、结构类型与结构变量的定义
2、结构变量的引用与初始化
5、结构数组
6、指向结构类型数据的指针
7、用指针处理链表
8、共用体
9、枚举类型
10、用typedef定义别名
11、程序举例
12、习题测试
第12课 位运算
1、位运算概述
2、位运算符的使用方法
3、习题测试
第13课 单片机C语言的模块化编程
1、模块化编程的优点
2、C语言源文件(*.c)文件和头文件(*.h)的的作用
3、模块化编程设计步骤
4、程序实例
5、模块化程序的移植
6、习题测试
第14课 C语言编程规范
1、编码规范概述
2、编程排版规范
3、编程注释规范
4、命名规则
5、可读性规范
6、变量与结构规范
7、函数与过程规范
8、编程效率规范
9、质量保证规范
10、宏规范
11、代码编辑
12、编译
13、审查
14、代码测试
15、维护
16、习题测试
第15课 C语言编程常见出错问题及分析
1、C语言的一些基本概念
2、位(bit)和字节(byte)
3、变量和数据存储
4、数据文件
5、字符串操作
6、数组
7、指针和内存分配
8、函数
9、编译预处理
10、标准库函数
11、系统调用
12、可移植性
13、编程风格和标准
14、程序的编写和编译
15、调试

❽ 自学C语言教程

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

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

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