我想学计算机C语言,可是不知道要学哪些知识 学习C语言需要掌握哪些基本知识?

来源:编辑vide
1.《全国计算机等级考试考试大纲(2002年版)》
为了适应科技的发展和社会需求的变化,适应知识经济和信息产业发展的要求,教育部考试中心于1994年开始推行全国计算机等级考试,1998年适时地制订了新的考试大纲,为适应我国计算机技术的快速发展,2001年相继对一、二、三级考试科目设置进行了调整,对部分考试科目的内容作了更新,对上机考试软件进行了改进,对考试管理的手段也做作了进一步规范化要求。在前期试点的基础上,改进后的考试于2002年下半年在全国各省(自治区、直辖市)全面推开。为了及时满足考生学习备考的需要,我社独家出版了调整后的考试大纲,明确了各科目考试的考试要求、考试内容及考试形式。
2.《全国计算机等级考试一级B教程》(Windows环境)
本书是在教育部考试中心组织、全国计算机等级考试委员会的指导下,由有关专家严格按照"全国计算机等级考试一级B(Windows 环境)考试大纲" (2002年版)的要求执笔编写而成,内容包括计算机基础知识,计算机系统,DOS操作系统,中文Windows操作系统,中文Word的使用,中文Excel的使用,计算机网络基础知识及上机指导。
本书以重实用性、适当照顾内容的完整性为编写原则,全书叙述通俗,图文并茂,简洁易懂,,每章之后都附有一定数量的练习题,供读者练习和自我检测,是参加一级B考试者必备的辅导教材,本也可作为大专院校非计算机专业的学生的计算机入门参考书。

3.《全国计算机等级考试二级教程—基础知识》(2002年修订版)
本书是在教育部考试中心组织、全国计算机等级考试委员会的指导下,由有关专家严格按照"全国计算机等级考试二级考试大纲" (2002年版)中对二级考试公共部分(计算机基础知识)的要求执笔编写而成。主要内容包括数制转换与字符编码,计算机系统的组成与应用,DOS操作系统,计算机安全,计算机网络与多媒体技术,Windows操作系统的使用等。本书仅供参加二级QBASIC、C、FoxBASE+考试的考生使用。
本书是参加计算机等级考试相应科目考试者必备的教材,也可作为高等院校计算机公共基础课程的教材或自学参考书。

4.《全国计算机等级考试二级教程—QBASIC语言程序设计》
本书是在教育部考试中心组织、全国计算机等级考试委员会的指导下,由有关专家严格按照"全国计算机等级考试二级考试大纲"(2002年版)中对QBASIC语言程序设计考试的要求执笔编写而成。主要内容包括QBASIC的基本概念,顺序程序设计,选择结构程序设计,循环结构,函数与子程序,数组,字符处理,屏幕控制和作图,文件,如何使用QBASIC及上机指导,每章之后都附有一定数量的练习题,供读者练习和自我检测。
本书是参加二级QBASIC语言程序设计考试者必备的辅导教材,也可作为大专院校学生学习QBASIC语言程序设计的参考书。

5.《全国计算机等级考试二级教程—FoxBASE+数据库管理系统》
本书是在教育部考试中心组织、全国计算机等级考试委员会的指导下,由有关专家严格按照"全国计算机等级考试二级考试大纲"(2002年版)中对FoxBase+数据库管理系统考试的要求执笔编写而成。全书以FoxBase+为基础,介绍了数据库系统的基础知识,数据库的维护,数据库的统计与重新组织,多重数据库的操作以及FoxBase+的数据元素和常用函数等,并对应用系统的程序设计、系统环境和状态参数等作了系统介绍,每章之后都附有一定数量的练习题,供读者练习和自我检测。
本书是参加二级FoxBase+数据库管理系统考试者必备的辅导教材,也可作为大专院校学生学习FoxBase+数据库管理系统的参考书。

6.《全国计算机等级考试二级教程—C语言程序设计》
本书是在教育部考试中心组织、全国计算机等级考试委员会的指导下,由有关专家严格按照《全国计算机等级考试二级考试大纲》(2002年版)中对C语言程序设计考试的要求执笔编写而成。介绍了C语言程序设计基本知识,C程序设计的主要结构,C语言中涉及的各种数据类型,C语言中的函数,C语言中用户标识符的作用域和存储类,编译预处理和动态存储分配,结构体、共用体和用户定义类型,位运算,文件及上机指导,每章之后都附有一定数量的练习题,供读者练习和自我检测。
本书是参加二级C语言程序设计考试者必备的辅导教材,也可作为大专院校学生学习C语言程序设的参考书。

7.《全国计算机等级考试二级教程—Visual Basic语言程序设计》(修订版)
本书是在教育部考试中心组织、全国计算机等级考试委员会的指导下,由有关专家严格按照"全国计算机等级考试二级考试大纲(Visual Basic语言程序设计)"(2002年版)的要求执笔编写而成。内容包括:Visual Basic 6.0中文版的编程环境,常用的内部控件的功能和用法,控制结构,数组,过程,菜单,对话框,多窗体程序设计技术和鼠标、键盘事件及文件处理等。每章后都附有一定数量的习题,供读者练习和自我检测。针对初学者的特点,全书在编排上注意由简及繁、由浅入深和循序渐进,叙述通俗易懂,内容简洁实用。
本书是参加二级Visual Basic语言程序设计考试者必备的辅导教材,也可作为大专院校学生学习Visual Basic语言程序设计的参考书。

8.《全国计算机等级考试二级教程—Visual FoxPro程序设计》
本书是在教育部考试中心组织、全国计算机等级考试委员会的指导下,由有关专家严格按照"全国计算机等级考试二级考试大纲(Visual FoxPro程序设计)"(2002年版)的要求执笔编写而成。内容包括:数据库基础知识,Visual FoxPro 6.0的数据库设计、数据库应用系统的创建操作,面向过程的程序设计和面向对象程序设计方法。每章后都附有一定数量的习题,供读者练习和自我检测。针对初学者的特点,全书在编排上注意由简及繁、由浅入深和循序渐进,叙述通俗易懂,内容简洁实用。
本书是参加二级Visual FoxPro程序设计考试者必备的辅导教材,也可作为大专院校学生学习Visual FoxPro程序设计的参考书。

9.《全国计算机等级考试三级教程—PC技术》
本书是在教育部考试中心组织、全国计算机等级考试委员会的指导下,由有关专家严格按照"全国计算机等级考试三级考试大纲(PC技术)"(2002年版)的要求执笔编写而成。主要内容包括计算机应用的基础知识、80x86微处理器与汇编语言程序设计、PC机组成原理与接口技术、Windows 98的基本原理以及PC机常用外围设备。内容做到了既不超纲,又不降低水平;讲解简明扼要,理论联系实际。在每一章的后面均附有练习题并附有参考答案,供读者练习和自我检测。
本书是参加全国计算机等级考试三级(PC技术)考试者必备的辅导教材,也可以作为高等学校计算机、自动控制、通信等电类专业"微机原理与接口技术"的教材,对企事业单位中从事PC机使用、管理、维护和应用开发的人员也有很好的学习参考作用。

10.《全国计算机等级考试三级教程—信息管理技术》
本书是在教育部考试中心组织、全国计算机等级考试委员会的指导下,由有关专家严格按照"全国计算机等级考试三级考试大纲(信息管理技术)"(2002年版)的要求执笔编写而成。主要内容包括:计算机基础知识、软件工程、数据库、有关信息管理的相关知识和开发方法及上机指导等,在每一章的后面均附有练习题并附有参考答案,供读者练习和自我检测。
本书是参加全国计算机等级考试三级(信息管理技术)考试者必备的辅导教材,也可以作为学习计算机信息管理知识的参考书。

11.《全国计算机等级考试三级教程—网络技术》
本书是在教育部考试中心组织、全国计算机等级考试委员会的指导下,由有关专家严格按照"全国计算机等级考试三级考试大纲(网络技术)"(2002年版)的要求执笔编写而成。主要内容包括:计算机基础知识、操作系统、计算机网络基本工作原理以及相关的应用技术等。在每一章的后面均附有练习题并附有参考答案,供读者练习和自我检测。本书重在让考生掌握计算机基础知识,了解和掌握局域网、因特网的基本原理和方法,熟悉计算机网络系统的组建方法和技术,从而培养考生从事网络管理项目和简单网络应用系统开发和维护的基本能力。
本书是参加全国计算机等级考试三级(网络技术)考试者必备的辅导教材,也可以作为学习计算机网络知识的参考书。

12.《全国计算机等级考试三级教程—数据库技术》
本书是在教育部考试中心组织、全国计算机等级考试委员会的指导下,由有关专家严格按照"全国计算机等级考试三级考试大纲(数据库技术)"(2002年版)的要求执笔编写而成。主要内容包括:计算机基础知识、数据结构、操作系统、数据库系统基本概念和基本原理、数据库设计和数据库应用系统开发的方法和工具、数据库技术发展的动态及上机指导。在每一章的后面均附有练习题并附有参考答案,供读者练习和自我检测。
本书是参加全国计算机等级考试三级(数据库技术)考试者必备的辅导教材,也可以作为学习计算机数据库知识的参考书。

13.《全国计算机等级考试考试指导》(四级)
本书是在教育部考试中心组织、全国计算机等级考试委员会的指导下,由有关专家严格按照"全国计算机等级考试四级考试大纲"的要求执笔编写而成。主要内容包括了计算机工作原理,数据结构与算法,离散数学,操作系统,软件工程,数据库,计算机体系结构,计算机网络和通信等。
本书除了作为全国计算机等级考试四级考试的正式教材外,还可用于社会读者学习相关计算机知识的参考书。
全国计算机等级考试说明

一、考试性质

全国计算机等级考试是教育部考试中心主办,用于测试应试人员计算机应用知识与能力的等级水平考试。

二、考试目的

随着计算机技术在我国各个领域的推广、普及、越来越多的人开始学习计算机知识,许多用人部门已

将具有一定的计算机知识与能力作为考核和录用工作人员的标准之一。因此,经教育部批准,决定举办全国计算机等级考试,其目的在于推进计算机知识的普及,促进计算机技术的推广应用,以适应社会主义经济建设的需要,为用人部门录用和考核工作人员服务。

该考试面向社会,服务于劳动力市场,为人员择业、人才流动提供其计算机应用知识与能力的证明,以便用人部门录用和考核工作人员时有一个统一、客观、公正的标准。

三、考试组织机构

教育部考试中心聘请全国著名计算机专家组成“全国计算机等级考试委员会”,负责设计考试,审定考试大纲、试题及评分标准。教育部考试中心组织实施该项考试、组织编写考试大纲及相应的辅导材料、命制试卷、研制上机考试和考务管理软件,开展考试研究等。教育部考试中心在各省(自治区、直辖市)设立省级承办机构,各省(自治区、直辖市)承办机构根据教育部考试中心的规定设立考点,组织考试。考生在考点报名、考试、获取成绩通知单和合格证书。

四、考试等级和要求

此项考试根据各工作岗位使用计算机的不同要求,目前暂定四个等级。

一级分为DOS版和Windows版,考核应试者计算机基本知识和使用微机系统的初步能力。

二级考核应试者软、硬件基础知识和使用一种高级计算机程序设计语言(QBASIC、FORTRAN、Pascal、C、FoxBASE)编制程序、上机调试的能力。

三级分A、B类。三级A类考核计算机应用基础知识和计算机硬件系统开发的初步能力;三级B类考核计算机应用基础知识和计算机软件系统开发的初步能力。

四级考核计算机应用项目或应用系统的分析和设计的必备能力。

此外,教育部考试中心在北京、福建、河北面向当地省市(系统)干部、管理人员开考一级B类考试。一级B类考试水平与一级相当,考试内容更符合机关干部、企事业单位管理人员的需要,采用无纸化考试形式。考试合格者获得一级合格证书,证书上注明“B类”字样。

五、考试方式

采用全国统一命题、统一考试,笔试和上机操作考试相结合的形式。笔试时间一级为90分钟,二级、三级为120分钟,四级为180分钟,上机考试一级为45分钟二级、三级、四级为60分钟。一级B类实行无纸化考试,全部在计算机上考试,时间为90分钟。

六、开考等级与具体考试日期

从1997年开始,全国计算机等级考试每年考二次。上半年开考一、二、三级,下半年开考一、二、四级。上半年考试时间为4月第一个星期天上午(笔试),上机考试从笔试的下一天开始,由考点具体安排。下半年考试时间为9月倒数第二个星期天上午(笔试),上机考试时间从笔试的下一天开始,由考点具体安排。

一级B类考试每年也开考两次。上半年考试开始时间为5月第三个星期六,下半年考试开始时间为每年10月第二个星期六,上下半年各考4天。

七、考试报名

每次考试报名的具体时间由各省(自治区、直辖市)省级承办机构规定。考试分四个级别,其中一级考试分两个版本,DOS版和Windows版,二级分QBASIC、FORTRAN、Pascal、C、FoxBASE等5种语言,三级分A、B类。考生不必先通过第一(二、三)级再报考第二(三、四)级,可任选其中一个等级报考。如果一个级别中有不同类别,考生必须选择其中一类。

考生应携带身份证和一寸免冠照片两张到就近考点报名。没有身份证的未成年人,可凭户口本报名,现役军人凭军人身份证件报名。

报名时应交纳报名考试费。

八、合格证书

全国计算机等级考试合格证书用中、英两种文字书写,全国通用。它是持有人计算机应用知识和能力的证明,可供用人部门录用和考核工作人员时参考。

成绩合格者由教育部考试中心颁发合格证书。成绩均优秀者,合格证书上注明“优秀”字样。

九、其他

教育部考试中心准备待时机成熟时推出二级FoxPro考试以取代目前的FoxBASE考试,届时将发布考试大纲。

全国计算机等级考试要求

考试日期:上半年在4月第一个星期天上午9:00开始;下半年在9月倒数第二个星期天上午9:00开始。

考试时长:

笔试:一级(普通类)为90分钟;二、三级为120分钟;四级为180分钟。

机试:一级(普通类)为45分钟;一级B类为90分钟;二、三、四级为60分钟。由机器自动计时,多为Novell Netware 3.1x环境。

考试题型:

笔试:单项选择(约80%)和填空(约20%)

机试:

1、普通一级:DOS操作题30%(考六个命令,各5分,一般是RD、MD、DEL、COPY、REN、ATTRIB、)、汉字录入30%(约200个汉字,含全半角符号数字,最多只能用10分钟时间)、WPS排版30%(多考打印控制、左右边界设置、段落重排、表格制作、块操作、查找替换――注意可能是软硬回车符等特殊字符、窗口操作等)、FoxBASE基础10%(考建库、输入五至八条记录、替换Replace、求和Sum、平均Average、条件显示List、记录拷贝Copy等)。Windows版本暂无具体资料。

2、一级B:与普通一级相似,采用无纸化考试

3、二级:DOS操作题30%(与普通一级要求相同)、程序修改30%(给出一个指定功能的程序,文件名多为Modi1.xxx――扩展名依所考语言不同而不同,如C语言即为Modi1.C等,在有错误的那行的上行会用***Found ***这样的标记列出,考生只要对有此标记的下行将错误改正确即可,不要将其它地方改动,也不能将这个标记删除,否则影响成绩)、程序编写40%(按给定要求编写程序,方法不限,只要求运行结果正确,一般已对整个程序写出若干行,文件名一般为Prog1.xxx)。

4、三级:A类偏硬要求使用任一编辑器如Editor编写宏汇编语言程序,B类编软要求使用Turbo C2.0编写C语言程序。

5、四级:暂无资料。

学C的话,可以找一本简单的入门的书,比如说《C语言程序设计教程》什么的,也许有的人说那本书不好什么的,不过对于一个刚想要入门的人来说,已经够了,你不需要一开始的时候就去看太过于高深的书,那么对于理解方面并没有什么太大的帮助。
你所需要的是了解C的组织结构,c的语法规则。同时你还要去了解一些算法等等,C只是实现算法的一种工具而已。

不论学那种计算机语言, 首先你要学计算机的基础知识
至于学c ,我建议你用谭浩强主编的c 程序设计.我就是用的这本书,讲得很详细,很适合出学者哦

如果你是初学编程的话,建议你先学VB而不是C

《C程序设计语言》机械工业出版社,牛人写的,看完基本算是会C了
然后要多动手,
数学至少要把离散,高数,线性代数,数值算法都好好弄完。数学是基础

学习C语言之前需要学习些什么知识?~

    基础的话什么都不用。往深学需要英语 主要为了看外文书籍和代码注释。还需要数据结构和操作系统的知识。当然要想写出一段高效的代码 还需要离散数学,计算机算法的知识。
  程序员之路——如何学习C语言并精通C语言
  程序员之路——如何学习C语言
  学习C语言不是一朝一夕的事情,但也不需要花费十年时间才能精通。如何以最小的代价学习并精通C语言是本文的主题。请注意,即使是“最小的代价”,也绝不是什么捷径,而是以最短的时间取得最多的收获,同时也意味着需要经历艰苦的过程。
  一、要读就读好书,否则不如不读
  所有初学者面临的第一个问题便是:如何选择教材。好的开始是成功的一半,选择一本优秀的教材是事半功倍的关键因素。不幸的是,学校通常会帮你指定一本很差劲的C语言课本;而幸运的是,还可以再次选择。
  大名鼎鼎的谭浩强教授出了一本《C语言程序设计》,据说发行量有超过400万,据我所知,很多学校都会推荐这本书作为C语言课本。虽然本人的名字(谭浩宇)跟教授仅仅一字之差,但是无比坚定地黑他这本书的。这本书不是写给计算机专业的学生的,而是给那些需要考计算机等级考试的其它专业学生看的。这本书的主要缺点是:例子程序非常不专业,不能教给程序设计应该掌握的思考方式;程序风格相当地不好,会养成乱写代码的恶习;
  Kernighan和Ritchie的《The C ProgrammingLanguage》(中译名《C程序设计语言》)堪称经典中的经典,不过旧版的很多内容都已过时,和现在的标准C语言相去甚远,大家一定要看最新的版本,否则不如不看。另外,即使是最经典最权威的书,也没有办法面面俱到,所以手边常备一本《C语言参考手册》是十分必要的。《C语言参考手册》就是《CReferenceManual》,是C语言标准的详细描述,包括绝大多数C标准库函数的细节,算得上是最好的标准C语言的工具书。顺便提一句,最新的《C程序设计语言》是
  根据C89标准修订的,而《C语言参考手册》描述的是C99标准,二者可能会有些出入,建议按照C99标准学习。还有一本《C和指针》,写得也是相当地不错,英文名是《Pointers onC》,特别地强调指针的重要性,算是本书的一个特点吧。不过这本书并不十分适合初学者,如果曾经学过C语言,有那么一些C语言的基础但又不是很扎实,那么可以尝试一下这本书。相信,只要理解了指针,C语言便不再神秘。
  如果已经啃完了一本C语言教材,想要更进一步,那么有两本书一定要看。首先是《C Traps andPitfalls》(中译名《C陷井与缺陷》),很薄的一本小册子,内容非常非常地有趣。要注意一点,这本书是二十多年前写成的,里面提到的很多C语言的缺陷都已被改进,不过能够了解一些历史也不是什么坏事。然后可以挑战一下《Expert CProgramming》(中译名《C专家编程》),书如其名,这本书颇具难度,一旦仔细读完并能透彻理解,便可以放心大胆地在简历上写“精通C语言”了。
  切记一个原则,不要读自己目前还看不懂的书,那是浪费生命。如果看不懂,那一定是缺失了某些必需基础知识。此时,要仔细分析自己需要补充哪些内容,然后再去书店寻找讲述的这些内容的书籍。把基础知识补充完毕再回头来学习,才会真正的事半功倍。
  二、Unix/Linux还是Windows,这是个很大的问题
  不同的编程环境会造就出不同思维的程序员。Windows的程序员大多依赖集成开发环境,比如VisualStudio,而Unix程序员更加钟爱Makefile与控制台。显而易见,集成开发环境更容易上手,在Windows上学习C语言,只需要会按几个基
  本的Visutal C++工具栏按钮就可以开始写Hello,
  World!了,而在Unix下,需要一些控制台操作的基本知识。有人也许认为Unix的环境更简洁,但习惯的力量是很大的,大家都很熟悉Windows的基本操作,而为了学习C语言去专门装一个Unix系统,似乎有点不划算。
  对于一个只懂得Windows基本操作、连DOS是什么都不知道的新手而言,尽快做一些有趣而有意义的事情才是最重要的。用C语言写一个小程序远比学习
  ls、cat等命令有趣,况且要专注于C语言本身,就不得不暂时忽略一些东西,比如编译链接的过程、Makefile的写法等等等等。
  所以建议初学者应该以Visual C++ 6.0(不是VisualC++ .NET)或者DevC++作为主要的学习环境,而且千万不要在IDE的使用技巧上过多纠缠,因为今后一定要转向Unix环境的。Visual C++6.0使用很方便,调试也很直观,但其默认的编译器对C标准的支持并不好,而DevC++使用gcc编译器,对C99的标准都支持良好。使用顺带提一下,很多大学的C语言课程还在使用Turbo C2.0作为实验环境,这是相当不可取的,原因其一是TC 2.0对C标准几乎没有支持,其二是TC2.0编译得到的程序是16位的,这对今后理解32位的程序会造成极大的困扰(当然,用djgpp之类的东西可以使TC2.0编译出32位程序,不过那过于复杂了)。
  等学完一本C语言的教材,一定要转向Unix平台继续学习,几乎所有的C语言高级教程都是基于Unix平台的(比如《C专家编程》)。转变的过程是痛
  苦的,需要面对的是各种纷繁复杂的命令,完全不同于Windows平台的思考方式,但是这种痛苦是值得的。Unix与C是共生的,Unix的思考方式和习惯更加符合C语言的思考方式和习惯。在Unix下,可以找到无数优秀的源代码供你尽情阅读,可以方便地查看某个库函数的联机手册,还可以看到最优秀的代码风格
  归结起来就是一句话:初学C语言,建议使用Windows系统和集成开发环境,在准备向“高手”方向努力时,请先转向Unix平台。
  三、万事俱备,就是东风
  书已选定,环境配置完成,正所谓万事俱备,只欠自己的努力了。请从书的前言开始,仔细地阅读手头的教材,很多人看书喜欢直接从第一章开始看,这是错误的做法。前言是作者对整本书的大体介绍,作者一般会告诉需要什么基础才能够顺利阅读本书,这可以帮助你检验自己的基础知识是否已经具备。看完前言,还要浏览一下目录,了解一下书的整体结构,顺便给自己安排一下学习计划。
  学习C语言,必需注意每一个细节,书上的例子代码一定要自己亲自敲一遍,编译执行输出都跟书上说的一致才能算是学完了一个例子,如果不一致,就要仔细找原因。出了书本上有的例子,自己还要“创造”一些例子,比如学习运算符优先级的时候,可以写几个相同的表达式,在不同的位置加上括号,看看有哪些不同的行为,比如*p++和(*p)++,又比如a = b == c、(a = b) == c和a = (b ==c)等等。自己抄的书上的例子以及改造之后的例子,还有自己“创造”的例子,都应该仔细地归类保存,并且要在源代码中写上简短的注释,阐述这个例子的意图。
  例子之后就是习题了,建议初学者把所有的习题都独立做一遍,然后对照答案的代码,看看自己的代码有那些不足,再试着修改自己的代码。很多人不重视习题,这是极大的错误,因为作者通常会在习题中说明一些重要的道理,而不是单纯地检验前面的知识。
  也许认为这样学习太慢,其实不然。学得细致就不用走回头路,等学到后面才发现自己前面没搞清楚,那才是真的得不偿失。一般说来,整本书读完,应该完数千行乃至上万行的代码,无论是原封不动照抄书上的,还是自己心血来潮写就的,都是今后继续学习的一笔财富。以自己举例,阅读《Windows核心编程》时(只阅读了3/4的内容),除了抄书上的代码,还自己写了很多例子,一共有5574行(用unix下的wc工具统计),时隔多日,早已记不清Windows的系统编程了,但只要花几分钟翻出以前的代码看看,便会重新了然于胸。所谓好记性不如烂笔头,就是这个道理。
  仔细读书、认真抄写源代码、独立完成习题外加更进一步的实验,最后将所有的代码留下,成为自己的经验和财富,绝对的辛苦,也绝对的事半功倍。当然,这种方式只适合学习需要精通的技术,如果不是学习C语言,还要具体情况具体分析。

1.入门程序
#include int main(){printf("Hello World!");return 0;}
2.数据类型
数据类型:
1.基本数据类型:
1.1. 整型:int 4个字节
1.2. 字符型:char 1个字节
1.3. 实型(浮点型)
1.3.1.单精度型:float 4个字节
1.3.2.双精度型:double 8个字节
2.构造类型:
2.1.枚举类型
2.2.数组类型
2.3.结构体类型
2.4.共用体类型
3.指针类型:
4.空类型:
3.格式化输出语句
%d:十进制整数;
%c:单个字符;
%s:字符串;
%f:6位小数;
#include int main(){int age = 18;float height = 1.85;char unit = 'm';printf("小明今年%d岁
", age);printf("小明身高%f%c
", height, unit);printf("小明现在在慕课网上学习IT技术
");return 0;}学好C++才是入职大厂的敲门砖! 当年要是有这课,我的C++也不至于这样
已失效
4.常量
值不发生改变的量成为常量;
定义字符常量(注意后面没有;)
#include #define POCKETMONEY 10 //定义常量及常量值int main(){printf("小明今天又得到%d元零花钱
", POCKETMONEY);return 0;}5.运算符
5.1.算数运算符:+,-,*,/,%,++,--;前++/--,先运算,再取值.后++/--,先取值,再运算;
5.2.赋值运算符:
5.3.关系运算符;
5.4.逻辑运算符;
5.5.三目运算符:
表达式1 ? 表达式2 : 表达式3;
6.水仙花数计算
输出所有三位数的水仙花数字
所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数,如:153就是一个水仙花数,153=111+555+333。
#include int main(){//定义三位数num,个位数sd,十位数td,百位数hdint num, sd, td, hd;//循环所有三位数for( num=100 ; num<1000 ; num++ ){//获取三位数字num百位上的数字hd = num/100 ;//获取三位数字num十位上的数字td = num/10%10 ;//获取三位数字num个位上的数字sd = num%10 ;//水仙花数的条件是什么?if(num ==hd*hd*hd+td*td*td+sd*sd*sd ){printf("水仙花数字:%d
", num);}}return 0;}7.打印正三角形的*
#include int main(){int i, j, k;for(i=1; i<5; i++){/* 观察每行的空格数量,补全循环条件 */for( j=i ; j<5 ; j++ ){printf(" "); //输出空格}/* 观察每行*号的数量,补全循环条件 */for( k=0 ; k<2*i-1 ; k++ ){printf("*"); //每行输出的*号}printf("
"); //每次循环换行}return 0;}8.臭名远扬的goto语句
很少使用
#include int main(){int sum = 0;int i;for(i=1; i<=10; i++){printf("%d
", i);if(i==3){goto LOOP;//满足条件就执行goto语句}}//执行gotoLOOP:printf("结束for循环了...."); //请选择合适位置添加标识符return 0;}9.形参与实参
形参:形参是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传入的参数;
实参:实参是在调用时传递该函数的参数。
函数的形参和实参具有以下特点:
形参只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只有在函数内部有效。函数调用结束返回主调函数后则不能再使用该形参变量。
实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参。因此应预先用赋值等办法使实参获得确定值。
在参数传递时,实参和形参在数量上,类型上,顺序上应严格一致,否则会发生类型不匹配”的错误。
10.函数返回值注意
注意:void函数中可以有执行代码块,但是不能有返回值,另void函数中如果有return语句,该语句只能起到结束函数运行的功能。其格式为:return;
11.递归
#include int getPeachNumber(int n) //这里要定义n,要不编译器会报错!{int num;if(n==10){return 1;}else{num = (getPeachNumber(n+1)+1)*2;printf("第%d天所剩桃子%d个
", n, num);}return num;}int main(){int num = getPeachNumber(1);printf("猴子第一天摘了:%d个桃子。
", num);return 0;}12.变量存储类别 !
12.1.生存周期划分存储方式
C语言根据变量的生存周期来划分,可以分为静态存储方式和动态存储方式。
静态存储方式:是指在程序运行期间分配固定的存储空间的方式。静态存储区中存放了在整个程序执行过程中都存在的变量,如全局变量。
动态存储方式:是指在程序运行期间根据需要进行动态的分配存储空间的方式。动态存储区中存放的变量是根据程序运行的需要而建立和释放的,通常包括:函数形式参数;自动变量;函数调用时的现场保护和返回地址等。
12.2.存储类型划分
C语言中存储类别又分为四类:自动(auto)、静态(static)、寄存器的(register)和外部的(extern) ;
用关键字auto定义的变量为自动变量,auto可以省略,auto不写则隐含定为“自动存储类别”,属于动态存储方式。
用static修饰的为静态变量,如果定义在函数内部的,称之为静态局部变量;如果定义在函数外部,称之为静态外部变量。
注意:静态局部变量属于静态存储类别,在静态存储区内分配存储单元,在程序整个运行期间都不释放;静态局部变量在编译时赋初值,即只赋初值一次;如果在定义局部变量时不赋初值的话,则对静态局部变量来说,编译时自动赋初值0(对数值型变量)或空字符(对字符变量)
为了提高效率,C语言允许将局部变量的值放在CPU中的寄存器中,这种变量叫“寄存器变量”,用关键字register作声明。
注意:只有局部自动变量和形式参数可以作为寄存器变量;一个计算机系统中的寄存器数目有限,不能定义任意多个寄存器变量;局部静态变量不能定义为寄存器变量。
用extern声明的的变量是外部变量,外部变量的意义是某函数可以调用在该函数之后定义的变量。
#includ //来源公众号:C语言与CPP编程int main(){//定义外部局部变量extern int x;return 0;}int x=100;13.内部函数外部函数 !
在C语言中不能被其他源文件调用的函数称为内部函数 ,内部函数由static关键字来定义,因此又被称为静态函数,形式为:
static [数据类型] 函数名([参数])
这里的static是对函数的作用范围的一个限定,限定该函数只能在其所处的源文件中使用,因此在不同文件中出现相同的函数名称的内部函数是没有问题的。
在C语言中能被其他源文件调用的函数称为外部函数 ,外部函数由extern关键字来定义,形式为:
extern [数据类型] 函数名([参数])
C语言规定,在没有指定函数的作用范围时,系统会默认认为是外部函数,因此当需要定义外部函数时extern也可以省略。 extern可以省略; 14.数组 数组:一块连续的,大小固定并且里面的数据类型一致的内存空间, 数组的声明:数据类型 数组名称[长度n]
数据类型 数组名称[长度n] = {元素1,元素2,元素3,......};
数据类型 数组名称[] = {元素1,元素2,元素3,......};
数类类型 数组名称[长度n]; 数组名称[0] = 元素1;数组名称[1] = 元素2;...... 注意: 1、数组的下标均以0开始; 2、数组在初始化的时候,数组内元素的个数不能大于声明的数组长度; 3、如果采用第一种初始化方式,元素个数小于数组的长度时,多余的数组元素初始化为0; 4、在声明数组后没有进行初始化的时候,静态(static)和外部(extern)类型的数组元素初始化元素为0,自动(auto)类型的数组的元素初始化值不确定。
15.数组遍历
#include int main(){int arr[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};int i;for(i=0;i<10;i++){printf("%d
",arr[i]);}return 0;}数组的冒泡排序
冒泡排序的思想:相邻元素两两比较,将较大的数字放在后面,直到将所有数字全部排序。
字符串与数组
在C语言中,是没有办法直接定义子字符串数据类型的,需使用数组来定义所要的字符串,形式如下:
char 字符串名称[长度] = "字符串内容";
char 字符串名称[长度] = {'字符串1','字符串2',....,'字符串n','\0'};
注:
[]中的长度可以省略不写;
采用第二种方式最后一个元素必须是'\0',表示结束;
第二种方式不能写中文!; 输出字符串时,要使用:printf("%s",字符数组名);或puts(字符数组名);
16.字符串函数
strlen(s):获取字符串s的长度;
strcmp(s1,s2):比较字符串;比较的时候会把字符串转换成ASCII码再进行比较,返回结果为0表示s1和s2的ASCII码值相等,返回结果为1表示s1比s2的ASCII码大,返回结果为-1表示s1比s2的ACSII码小;
strcpy(s1,s2):字符串拷贝;s2会取代s1中的内容;
strcat(s1,s2)将s2拼接到s1后面;注意:s1的length要足够才可以!
atoi(s1)将字符串转为整数!
17.多维数组
数据类型 数组名称[常量表达式1]...[常量表达式n];
多维数组的初始化与一维数组的初始化类似也是分两种:
数据类型 数组名称[常量表达式1][常量表达式2]...[常量表达式n] = {{值1,..,值n},{值1,..,值n},...,{值1,..,值n}};
数据类型 数组名称[常量表达式1][常量表达式2]...[常量表达式n]; 数组名称[下标1][下标2]...[下标n] = 值;
多维数组初始化要注意以下事项:
采用第一种始化时数组声明必须指定列的维数。因为系统会根据数组中元素的总个数来分配空间,当知道元素总个数以及列的维数后,会直接计算出行的维数;
采用第二种初始化时数组声明必须同时指定行和列的维数。
18.多维度数组的遍历
使用嵌套循环
注意:多维数组的每一维下标均不能越界!
19.结构体
C 数组允许定义可存储相同类型数据项的变量,结构是 C 编程中另一种用户自定义的可用的数据类型,它允许您存储不同类型的数据项。
结构用于表示一条记录,假设您想要跟踪图书馆中书本的动态,您可能需要跟踪每本书的下列属性:
Title
Author
Subject
Book ID
定义结构
为了定义结构,您必须使用 struct 语句。struct 语句定义了一个包含多个成员的新的数据类型,struct 语句的格式如下:
struct tag { member-list member-list member-list ...} variable-list ;tag 是结构体标签。
member-list 是标准的变量定义,比如 int i; 或者 float f,或者其他有效的变量定义。
variable-list 结构变量,定义在结构的末尾,最后一个分号之前,您可以指定一个或多个结构变量。下面是声明 Book 结构的方式:
struct Books{ char title[50]; char author[50]; char subject[100]; int book_id;} book;在一般情况下,tag、member-list、variable-list 这 3 部分至少要出现 2 个。以下为实例:
//此声明声明了拥有3个成员的结构体,分别为整型的a,字符型的b和双精度的c//同时又声明了结构体变量s1//这个结构体并没有标明其标签struct{ int a; char b; double c;} s1;//此声明声明了拥有3个成员的结构体,分别为整型的a,字符型的b和双精度的c//结构体的标签被命名为SIMPLE,没有声明变量struct SIMPLE{ int a; char b; double c;};//用SIMPLE标签的结构体,另外声明了变量t1、t2、t3struct SIMPLE t1, t2[20], *t3;//也可以用typedef创建新类型typedef struct{ int a; char b; double c;} Simple2;//现在可以用Simple2作为类型声明新的结构体变量Simple2 u1, u2[20], *u3;访问结构成员
为了访问结构的成员,我们使用成员访问运算符(.)。成员访问运算符是结构变量名称和我们要访问的结构成员之间的一个句号。您可以使用 struct 关键字来定义结构类型的变量。下面的实例演示了结构的用法:
#include #include //来源公众号:C语言与CPP编程struct Books{ char title[50]; char author[50]; char subject[100]; int book_id;};int main( ){ struct Books Book1; /* 声明 Book1,类型为 Books */ struct Books Book2; /* 声明 Book2,类型为 Books */ /* Book1 详述 */ strcpy( Book1.title, "C Programming"); strcpy( Book1.author, "Nuha Ali"); strcpy( Book1.subject, "C Programming Tutorial"); Book1.book_id = 6495407; /* Book2 详述 */ strcpy( Book2.title, "Telecom Billing"); strcpy( Book2.author, "Zara Ali"); strcpy( Book2.subject, "Telecom Billing Tutorial"); Book2.book_id = 6495700; /* 输出 Book1 信息 */ printf( "Book 1 title : %s
", Book1.title); printf( "Book 1 author : %s
", Book1.author); printf( "Book 1 subject : %s
", Book1.subject); printf( "Book 1 book_id : %d
", Book1.book_id); /* 输出 Book2 信息 */ printf( "Book 2 title : %s
", Book2.title); printf( "Book 2 author : %s
", Book2.author); printf( "Book 2 subject : %s
", Book2.subject); printf( "Book 2 book_id : %d
", Book2.book_id); return 0;}学好C++才是入职大厂的敲门砖! 当年要是有这课,我的C++也不至于这样
已失效
20.共用体
共用体是一种特殊的数据类型,允许您在相同的内存位置存储不同的数据类型。您可以定义一个带有多成员的共用体,但是任何时候只能有一个成员带有值。共用体提供了一种使用相同的内存位置的有效方式。
#include #include union Data{ int i; float f; char str[20];};int main( ){ union Data data; printf( "Memory size occupied by data : %d
", sizeof(data)); return 0;}21.指针
#include int main (){ int var = 20; /* 实际变量的声明 */ int *ip; /* 指针变量的声明 */ ip = &var; /* 在指针变量中存储 var 的地址 */ printf("Address of var variable: %p
", &var ); /* 在指针变量中存储的地址 */ printf("Address stored in ip variable: %p
", ip ); /* 使用指针访问值 */ printf("Value of *ip variable: %d
", *ip ); return 0;}22.文件读写
写入文件
#include int main(){ FILE *fp = NULL; fp = fopen("/tmp/test.txt", "w+"); fprintf(fp, "This is testing for fprintf...
"); fputs("This is testing for fputs...
", fp); fclose(fp);}读取文件
#include int main(){ FILE *fp = NULL; char buff[255]; fp = fopen("/tmp/test.txt", "r"); fscanf(fp, "%s", buff); printf("1: %s
", buff ); fgets(buff, 255, (FILE*)fp); printf("2: %s
", buff ); fgets(buff, 255, (FILE*)fp); printf("3: %s
", buff ); fclose(fp);}C语言与C++学习路线
23.排序算法
十大经典排序算法(动态演示+代码)
24.查找算法
九种查找算法
25.面试知识
C语言与C++面试知识总结
26.字符串操作
字符串操作的全面总结
27. C语言常用标准库解读
C语言常用标准库解读
28. C语言最常用的贪心算法
C语言最常用的贪心算法就这么被攻克了
29. 常见的C语言内存错误及对策
常见的C语言内存错误及对策
30. C语言实现面向对象的原理
C语言实现面向对象的原理
31. C语言/C++内存管理
看完这篇你还能不懂C语言/C++内存管理?
32. 再谈C语言指针
再谈指针:大佬给你拨开 C 指针的云雾
C语言函数指针之回调函数
C语言指针详解(文末有福利)
33. C语言预处理命令
长文详解:C语言预处理命令
34. C语言高效编程与代码优化
C语言高效编程与代码优化
35. C语言结构体
C语言之结构体就这样被攻克了!值得收藏!
36. 原码, 反码, 补码 详解
原码, 反码, 补码 详解
37. C语言宏定义
简述C语言宏定义的使用
38. c语言之共用体union、枚举、大小端模式
c语言之共用体union、枚举、大小端模式

13432793262:想学c语言,新手应该如何学习c语言呢,高手给我个简单易懂的教程。_百度...
相罗沈答:所以,初学者们不必思考应该学什么,等把C语言精通了,你自己便会知道下一步如何去走。如果你对操作系统内部感兴趣,你便可以试着研究一下Unix的内核,除了C语言,你还需要一些汇编语言和保护模式的知识;如果你对算法感兴趣,那么恭喜你,C语言足够使用了;如果你对Windows编程感兴趣,去看看《Windows程...

13432793262:学习C语言需要掌握哪些基本知识?
相罗沈答:在C语言中,是没有办法直接定义子字符串数据类型的,需使用数组来定义所要的字符串,形式如下: char 字符串名称[长度] = "字符串内容"; char 字符串名称[长度] = {'字符串1','字符串2',...,'字符串n','\0'}; 注: []中的长度可以省略不写; 采用第二种方式最后一个元素必须是'\0',表示结束; 第...

13432793262:...帮我如何学习C语言吗??我的意思是给我点建议,我想把它学好。可就是...
相罗沈答:2、一定要多上机练习,通过程式了解相关知识。几经反复方得正果。3、不要把学习C语言当成一种任务,更不要把它看成很难完成的任务。要充满自信,只要是一个智力正常的人都能学好C语言。始终保持游戏的心态,多发现其中的乐趣。当感到编程趣味无穷,那你在电脑方面将前程无量。4、如果一个程式一时无法...

13432793262:怎么自学c语言,需要怎么学习?
相罗沈答:因此学习C语言必须要坚持下去,才能熟能生巧。当大家不想动手时,可以看网课,跟着老师的思维走,不断巩固知识点,不断提醒自己语言注意的细节。5.在编程过程中,出现报错情况时,需要运用所学知识进行纠错。建议大家可以跟同学们互相纠错,与同学之间形成知识互补关系,这样可以更快找出错误。

13432793262:我想学计算机C语言,可是不知道要学哪些知识
相罗沈答:介绍了C语言程序设计基本知识,C程序设计的主要结构,C语言中涉及的各种数据类型,C语言中的函数,C语言中用户标识符的作用域和存储类,编译预处理和动态存储分配,结构体、共用体和用户定义类型,位运算,文件及上机指导,每章之后都附有一定数量的练习题,供读者练习和自我检测。本书是参加二级C语言程序...

13432793262:我想学C语言,但要从哪里入手呢?
相罗沈答:C语言是一门程序设计语言,有一些标准,比较重要的是ANSI C(好像是C89)和C99。数据结构包括逻辑结构和物理结构。逻辑结构是数据元素集合和定义在集合上的关系。物理结构是逻辑结构在计算机中的实现。LCC、VC、TC、GCC都是C语言编译器,一般包括集成开发环境,编译器和链接器及辅助工具 我们书写的是C源...

13432793262:我想学习C语言。求高手指点应该怎么做?
相罗沈答:4、C语言学完后接下去要学哪些语言好?这个我就没有资格回答了,因为除了少量汇编和c++,我大部分只用到了c,不过也许是一脉相承的c++吧。c是面向过程的语言,学习c++面向对象的思想。5、各位网友如果在学习计算机语言方面还有一些独到的见解,欢迎提出!不是我提出的,不过真的很经典——“天下程序一大...

13432793262:自学C语言要先学习什么呢?
相罗沈答:首先,在学习C语言之前,应该学好计算机基础。里面的很多概念对于C程序员都是非常重要的。如果你在着手学习C之前,或者已经开始学习C,但是碰到了很多问题,应该再把计算机基础的书拿来好好看看。 如果你有足够的耐心,十足的毅力,应该再学习C语言之前学学汇编,这会让你对许多比较细腻的概念有清醒的认识,如果你不是那么...

13432793262:初学C语言,没有计算机基础,应该先从什么开始学起
相罗沈答:1,任何语言都是为应用服务的。这里的应用主要在测试方面。首先应该明确这一点。2,C语言能不能速成因人而异,大学里一般C语言一般60课时左右(40*60=2400分钟=100小时=4天左右)。所以合理分配时间,加上学习上没有什么障碍的话,2周左右是可以略有所成的。3,还有一些客观原因制约学习,如果是第...

13432793262:我想学C语言,但不知道如何开始?
相罗沈答:首先:C语言入门相对比较简单,但如果想成为一个优秀的C程序员,需要很艰苦的训练,多读代码,多练习,多上机操作,多思考,学习是一件辛苦的事情,要放弃很多东西,要坚持下来才可以,可以说C语言是基础,将来想学其他的C++,JAVA等,如果有C的基础,还是比较好入门的.C语言的用处比较广泛,可以说任何精通计算机的...