1、并且他用B语言写了第一个操作系统。在1972年,美国贝尔实验室的 D.M.Ritchie 在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言。为了使UNIX操作系统推广,1977年发表了不依赖于具体机器系统的C语言编译文本可移植的C语言编译程序。1978年由(AT&T)贝尔实验室正式发表了C语言。同时由B.W.Kernighan和D.M.Ritchie合著了著名的The C Programming Language一书。通常简称为K&R,也有人称之为K&R标准。但是,在K&R中并没有定义一个完整的标准C语言,后来由美国国家标准化协会(Ameri
2、can National Standards Institute)在此基础上制定了一个C语言标准,于一九八三年发表。通常称之为ANSI C。K&R第一版在很多语言细节上也不够精确,对于pcc这个“参照编译器”来说,它日益显得不切实际;K&R甚至没有很好表达它所要描述的语言,把后续扩展扔到了一边。最后,C在早期项目中的使用受商业和政府合同支配,这意味着一个认可的正式标准是必需的。因此(在M. D. McIlroy的催促下),ANSI于1983年夏天,在CBEMA的领导下建立了X3J11委员会,目的是产生一个C标准。X3J11在1989年末提出了一个他们的报告ANSI 89,后来这个标准被ISO接
3、受为ISO/IEC 9899-1990。1990年,ISO(International Organization for Standards)接受了89 ANSI C 为I SO C 的标准(ISO9899-1990)。1994年,ISO修订了C语言的标准。1995年,ISO对C90做了一些修订,即“1995基准增补1(ISO/IEC/9899/AMD1:1995)”。1999年,ISO又对C语言标准进行修订,在基本保留原来C语言特征的基础上,针对应该的需要,增加了一些功能,尤其是对C+中的一些功能,命名为ISO/IEC9899:1999。2001年和2004年先后进行了两次技术修正。目前流行
4、的C语言大多是以ANSI C为基础进行开发的,但不同版本的C编译系统所实现的语言功能和语法规则又略有差别。2011年12月,ISO正式公布C语言新的国际标准草案:ISO/IEC 9899:2011。新的标准修提高了对C+的兼容性,并将新的特性增加到C语言中。新功能包括支持多线程, 基于ISO/IEC TR 19769:2004规范下支持Unicode,提供更多用于查询浮点数类型特性的宏定义和静态声明功能。特点1 C是高级语言。它把的基本结构和语句与低级语言的实用性结合起来。C 语言可以像一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。2C是结构式语言。结构式语言的显著特点是及数
5、据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。3C语言功能齐全。具有各种各样的,并引入了概念,可使程序效率更高。而且计算功能、功能也比较强大,可以实现决策目的的游戏。4 C语言适用范围大。适合于多种,如Windows、DOS、UNIX等等;也适用于多种机型。C语言对编写需要硬件进行操作的场合,明显优于其它高级语言,有一些大型也是用C语言编写的。特色指针是C语言的一大特色,可以说是C语言优于其它高级语言的一个重要原
6、因。就是因为它有指针,可以直接进行靠近硬件的操作,但是C的指针操作不做保护,也给它带来了很多不安全的因素。C+在这方面做了改进,在保留了指针操作的同时又增强了安全性,受到了一些用户的支持,但是,由于这些改进增加语言的复杂度,也为另一部分所诟病。则吸取了C+的教训,取消了指针操作,也取消了C+改进中一些备受争议的地方,在安全性和适合性方面均取得良好的效果,但其本身解释在中运行,运行效率低于C+/C。一般而言,C,C+,java被视为同一系的语言,它们长期占据着程序使用榜的前三名。入门1一个C语言可以由一个或多个源文件组成。2每个源文件可由一个或多个组成。3一个源程序不论由多少个文件组成,都有一个
7、且只能有一个,即主函数。4源程序中可以有(包括include 命令、if命令、pragma命令),预处理命令通常应放在源文件或源程序的最前面。5每一个说明,每一个语句都必须以分号结尾。但预处理命令,和花括号“”之后不能加分号。6,关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可不再加空格来间隔。优点简洁紧凑、灵活方便 C语言一共只有32个,9种,程序书写形式自由,区分大小写。把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对、和进行操作,而这三者是计算机最基本的工作单元。运算符丰富 C语言的包含的范围很广泛,共有34种运算符。C语言把、等都作为运算
8、符处理。从而使C语言的运算类型极其丰富,类型多样化。灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。数据类型丰富 C语言的数据类型有:、实型、字符型、数组类型、指针类型、共用体类型等。能用来实现各种复杂的的运算。并引入了指针概念,使程序效率更高。另外C语言具有强大的图形功能,支持多种和驱动器。且计算功能、逻辑判断功能强大。同时对于不同的编译器也有各种 C是结构式语言 结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。语法限制不太严格,
9、程序设计自由度大 虽然C语言也是强类型语言,但它的语法比较灵活,允许程序编写者有较大的自由度。允许直接访问物理地址,对硬件进行操作 由于C语言允许直接访问,可以直接对进行操作,因此它既具有高级语言的功能,又具有低级语言的许多功能,能够像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可用来写。生成目标代码质量高,程序执行效率高 一般只比汇编程序生成的效率低1020%。适用范围大,可移植性好 C语言有一个突出的优点就是适合于多种操作系统,如、UNIX、windows 98windows NT;C语言具有强大的绘图能力,可移植性好,并具备很强的能力,因此适于编写系统软件,三
10、维,二维图形和动画,它也是数值计算的高级语言。缺点1 C语言的缺点主要表现在数据的性上,这一点使得C在数据的安全性上有很大缺陷,这也是C和C+的一大。2 C语言的语法限制不太严格,对的类型约束不严格,影响程序的安全性,对不作检查等。从应用的角度,C语言比其他高级语言较难掌握。运算C语言的运算非常灵活,功能十分丰富,运算种类远多于其它。在表达式方面较其它程序语言更为简洁,如自加、自减、逗号运算和三目运算使表达式更为简单,但初学者往往会觉的这种表达式难读,关键原因就是对运算符和运算顺序理解不透不全。当多种不同运算组成一个运算表达式,即一个运算式中出现多种运算符时,运算的优先顺序和结合规则显得十分重
11、要。在学习中,只要我们对此合理进行分类,找出它们与我们在数学中所学到运算之间的不同点之后,记住这些运算也就不困难了,有些运算符在理解后更会牢记心中,将来用起来得心应手,而有些可暂时放弃不记,等用到时再记不迟。先要明确运算符按不同分类,C程序设计运算符可分为15种优先级,从高到低,优先级为1 15,除第213级和第14级为从右至左结合外,其它都是从左至右结合,它决定同级运算符的运算顺序. 结构顺序结构顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。例如:a = 3,b = 5,现交换a,b的值,这个问题就好像交换两个杯子水,这当然要用到第
12、三个杯子,假如第三个杯子是c,那么正确的程序为:c = a; a = b; b = c;执行结果是a = 5,b = c = 3如果改变其顺序,写成:a = b; c = a; b =c;则执行结果就变成a = b = c = 5,不能达到预期的目的,初学者最容易犯这种错误。顺序结构可以独立使用构成一个简单的完整程序,常见的输入、计算,输出三步曲的程序就是顺序结构,例如计算圆的面积,其程序的语句顺序就是输入圆的半径r,计算s = 3.14159*r*r,输出圆的面积s。不过大多数情况下顺序结构都是作为程序的一部分,与其它结构一起构成一个复杂的程序,例如分支结构中的复合语句、循环结构中的循环体等
13、。选择结构顺序结构的程序虽然能解决计算、输出等问题,但不能做判断再选择。对于要先做判断再选择的问题就要使用选择结构。选择结构的执行是依据一定的条件选择执行路径,而不是严格按照语句出现的物理顺序。选择结构的程序设计方法的关键在于构造合适的分支条件和流程,根据不同的程序流程选择适当的选择语句。选择结构适合于带有关系比较等条件判断的计算,设计这类程序时往往都要先绘制其,然后根据程序流程写出源程序,这样做把程序设计分析与语言分开,使得问题简单化,易于理解。程序流程图是根据解题分析所绘制的程序执行流程图。 几种基本的选择结构if(条件) 选择体 这种选择结构中的选择体可以是一条语句,此时“”可以省略,也可以是多条语句即复合语句。它有两条分支路径可选,一是当条件为真,执行分支体,否则跳过选择体,这时选择体就不会执行。如:要计算x的,根据绝对值定义,我们知道,当x=0时,其绝对值不变,而x0时其绝对值是为x的反号,因此为:if(x=0时,方程有两个实根,否则(b2-4ac0)有两个共轭复根。其程序段如下:int a,b,c,d,x,y;printf(Please put the number of a,b&c from the quadr
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1