《C语言发展史和基础了解课件》由会员分享,可在线阅读,更多相关《C语言发展史和基础了解课件(19页珍藏版)》请在金锄头文库上搜索。
1、LOGO从零到精通从零到精通从零到精通从零到精通 循序渐进,实战讲述循序渐进,实战讲述循序渐进,实战讲述循序渐进,实战讲述基础知识基础知识 核心技术核心技术 高级应用高级应用 项目实战项目实战C语言语言 高效学习高效学习在线解答,高效学习可以在我的百度盘下载:http:/ 第一章 C语言的发展史与基础vC语言的发展史vC语言的特点v一个简单的C程序v一个完整的C程序vC语言程序的格式1.1 C语言的发展史语言的发展史v1.1.1 程序语言简述C语言的发展里程之前,先对程序语言进行大概的了解1、机器语言 机器语言是低级语言,也成为二进制代码语言。计算机使用的是由0和1组成的二进制数组成的一串指令
2、来表达计算机操作的语言。机器语言的特点是,计算机可以直接识别,不需要进行任何的翻译。2、汇编语言 用英文单词(或缩写)作为助记符来代替机器语言中的各种指令,由此组成一种新编程语言,这就是汇编语言。3、高级语言 高级语言的翻译方式有两种:解释方式和编绎方式。v1.1.2 C语言的历史1969-1973年在美国电话电报公司(AT&T)贝尔实验室开始了C语言的最初研发。根据C语言的发明者丹尼斯里奇 (Dennis Ritchie) 说,C 语言最重要的研发时期是在1972年。 说明:丹尼斯里奇(Dennis Ritchie),C语言之父,UNIX之父。1978年与布莱恩科尔尼干(Brian Kern
3、ighan)一起出版了名著C程序设计语言(The C Programming Language),现在此书已翻译成多种语言,成为C语言方面最权威的教材之一。2011年10月12日(北京时间为10月13日),丹尼斯里奇去世,享年70岁。C语言之所以命名为C,是因为C语言源自Ken Thompson发明的 B语言,而B语言则源自BCPL语言。C语言的诞生是和UNIX操作系统的开发密不可分的,原先的UNIX操作系统都是用汇编语言写的,1973年UNIX操作系统的核心用C语言改写,从此以后,C语言成为编写操作系统的主要语言。(.)1.1 C语言的发展史语言的发展史v1.1.3 C语言对其它语言的影响很
4、多编程语言都深受C语言的影响,比如C+(原先是C语言的一个扩展)、C#、Java、PHP、Javascript、Perl、LPC和UNIX的C Shell等。v1.2 C语言的特点C语言一共只有32关键字,9种控制语句,程序书写自由,主要用小写字母表示。C语言是一种通用的程序设计语言,主要用来进行系统程序设计,具如下特点:1、高效性 谈到高效性,不得不说C语言是“鱼与熊掌”兼得。从C语言的发展史也可以看到,它继承了低级语言的优点,产生了高效性的代码,并具有友好的可读性和编写性,C语言生成的目标代码的执行效率只比汇编程序低10%-20%。2、灵活性 C语言中的语法不拘一格,可在原有语法基础上进行
5、创造、复合,从而给程序员更多的想象和发挥的空间。3、功能丰富 除了C语言中所具有的类型,还可以使用丰富的运算符和自定义的结构类型,来表达任何复杂的数据类型,完成所有需要的功能。1.1 C语言的发展史语言的发展史4、表达力强 C语言的特点体现它语法形式与人们所使用的语言形式相似,书写形式自由,结构规范,并且只需简单的控制语言即可轻松控制程序流程,完成繁琐的程序要求。5、移植性 由于C语言具有良好的移植性,从而使得C程序在不同的操作系统下,只需要简单的修改或者不用修改即可进行跨平台的程序开发操作。 正是由于C语言拥有上述优点,使得它在程序员选择语言的时备受青睐。 C语言有一个突出的优点就是适合于多
6、种操作系统, 如DOS、UNIX,也适用于多种机型。 常用的编译软件常用的编译软件有Microsoft Visual C+,Borland C+,Watcom C+ ,Borland C+, Borland C+ Builder,Borland C+ 3.1 for DOS,Watcom C+ 11.0 for DOS,GNU DJGPP C+, Lccwin32 C Compiler 3.1,Microsoft C,High C,等等. 6、C语言允许直接访问物理地址,可以直接对硬件进行操作 因此既具有高级语言的功能,又具有低级语言的许多功能,能够象汇编语言一样对位、字节和地址进行操作,而这
7、三者是计算机最基本的工作单元,可以用来写系统软件。7、C语法限制不太严格、程序设计自由度大 一般的高级语言语法检查比较严,能够检查出几乎所有的语法错误。而C语言允许程序编写者有较大的自由度。 1.1 C语言的发展史语言的发展史8、数据结构丰富 C的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据类型的运算。 并引入了指针概念,使程序效率更高。另外C语言具有强大的图形功能,支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。9、运算符丰富 C程序的运算符包含的范围很广泛,共有种34个运算符。C语言把括号、赋值、强制类型转换等都作为运算符各种
8、复杂的数据类型的运算。并引入了指针概念,使程序效率更高。另外C语言具有强大的图形功能,支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。1.3 一个简单的一个简单的C程序程序 在通往在通往C语言程序世界之前,首先不要对语言程序世界之前,首先不要对C语言产生恐惧感,觉得这钟语言都应该语言产生恐惧感,觉得这钟语言都应该是学者或研究人员的专利。是学者或研究人员的专利。C语言是人类共有的财富,是普通人只要通过努力学习就可以掌握的知识。下面通过一个简单的程序来看看C语言程序是什么样子。【列1.1】一个简单的C程序。(需要实列的可以找我QQ:360269864)本实例程序实现的功能知识显示一条信息,“
9、Hello,world!Im coming!”,通过这个程序可以粗步了解C程序模样。虽然这个简单的小程序只有7行,却充分说明了C程序是由什么位置开始、什么位置结束的。#include 第一行 第二行int main() 第三行 第四行 printf(Hello,world!Im coming!n) ; /*输出要显示的字符串*/第五行 return0; /*程序返回0*/ 第六行 第七行 让读者轻松看懂后面所以注明了第几行,在实际中不需要标记1.3 一个简单的一个简单的C程序程序v 运行程序显示效果运行程序显示效果1.3 一个简单的一个简单的C程序程序现在来分析一下上面的实列程序现在来分析一下
10、上面的实列程序:1.#include指令指令实列代码中的第一行:实列代码中的第一行:#include 这个语句的功能是进行有关的预处理操作。这个语句的功能是进行有关的预处理操作。include称为文件包含命令,称为文件包含命令,后面后面尖尖括号中的内容称为头部文件或首文件。括号中的内容称为头部文件或首文件。有关预处理的内容,将会在后期详细的讲有关预处理的内容,将会在后期详细的讲解,先对这个有一个概念有所了解即可。解,先对这个有一个概念有所了解即可。2.空行空行实列代码中的第二行。实列代码中的第二行。 C语言是一个叫灵活的语言,因此格式并不是固定不变、拘于一格。也就是说,语言是一个叫灵活的语言,
11、因此格式并不是固定不变、拘于一格。也就是说,空格、空行、跳格并不会受影响程序。空格、空行就是为了让我们轻松能看懂我空格、空行、跳格并不会受影响程序。空格、空行就是为了让我们轻松能看懂我们写的是什么?书写的规范、干净。(们写的是什么?书写的规范、干净。(不是所有的空格都没有用,如在两个关键不是所有的空格都没有用,如在两个关键字之间用空格隔开(字之间用空格隔开(else if),这个情况下如果将空格去掉,程序就不能通过编),这个情况下如果将空格去掉,程序就不能通过编译。在以后慢慢领悟译。在以后慢慢领悟)1.3 一个简单的一个简单的C程序程序3、main函数声明函数声明实列代码中的第实列代码中的第3
12、行:行:int main 这一行代码代表的意思是声明这一行代码代表的意思是声明main函数函数为一个为一个返回值返回值,是,是整形的函数整形的函数。其中的。其中的int称为关键字称为关键字,这个关键字,这个关键字代表的类型是整形。代表的类型是整形。关于数据类型的内容将会在会面讲解。关于数据类型的内容将会在会面讲解。比如有个比如有个“做菜做菜”程序,那么程序,那么“ 做菜做菜 ”这个过程就是这个过程就是“主函数主函数”。在主函数中,根。在主函数中,根据情况,你可能还需要调用据情况,你可能还需要调用“买菜,切菜,炒菜买菜,切菜,炒菜”等子函数。等子函数。4、函数体、函数体实列代码中的第实列代码中的
13、第4行:行: printf(Hello,world!Im coming!n) ; return0;在上面介绍了main函数式,提到了一个名词函数头.可以通过这个词可以进行一下联想:既然有函数头,那也应该有函数的身体,一个函数分为两个部分:一是函数头,二是函数体。程序代码中的第4行和7行这两个大括号就是构成了函数体,函数体也称为函数语句块。在函数体中,也就是5行和6行这个一部分就是函数体要执行的内容。1.3 一个简单的一个简单的C程序程序5、执行语句函数体中的第5行代码:printf(Hello,world!Im coming!n) ; 执行语句就是函数体中要执行的动作内容。这一行代码是这个简单
14、的列子钟最复杂的。该行代码虽然看起复杂,其实也不难理解,printf是产生格式化输出的函数,可以简单理解为向控制台进行输出文字或符合的作用。括号中的内容称为函数的参数,括号内可以看到输出的字符串Hello,world!Im coming!n,其中还可以看到“n”这个一个符合,称之为转义字符。转义字符的内容后期会提到。6、return语句函数体中的第6行代码:return0;这行语句使main函数终止运行,并向操作系统返回一个证型常量0.此时0就是要返回的整形值。return理解成main函数结束标志。7、代码注释在程序的第5行和6行后面都可以看到一段关于这行代码的文字描述:printf(Hel
15、lo,world!Im coming!n) ; /*输出要显示的字符串*/ return0; /*程序返回0*/用来对代码进行解释说明,为以后自己阅读或他人阅读源程序时,方便理解程度代码含义和设计思想。(没有一定要写注释,写了注释一目了然。) 1.4 一个完整的一个完整的C程序程序【列1.2】一个完整的C语言程序。本实例要实现这样的功能:有一个长方体。它的高已经给出,然后输入这个长方体的长宽,通过输入的长、宽以及给定的高度,计算出长方体的体积。#include /*包含头文件*/#define Height 10 /*定义常量*/int calculate(int Long,int Width
16、); /*函数的声明*/int main() /*主函数main*/ int m_Long; /*定义整形变量,表示长度*/ int m_Width ; /*定义整形变量,表示宽度*/ int result; /*定义整形变量,表示长方体的体积*/ printf(长方形的高度:%dn,Height); /*显示提示*/ printf(请输入长度n); /*显示提示*/ scanf(%d.&m_Long) /* 输入长方体的长度*/ printf(请输入宽度n); /*显示提示*/ scanf(%d.&m_Width); /* 输入长方体的宽度*/ result=calculate(m_Long
17、,m_Width); /*调用函数,计算体积*/ printf(长方体的体积是:); /*显示提示*/ printf(%dn,result); /*输出长方体大小*/ return0; /*返回值0*/int calculate(int Long,int Width) /*定义计算体积函数*/ int result=Long*Width*Height; /*具体计算体积*/ return0; /*将计算的体积结果返回*/ 1.4 一个完整的一个完整的C程序程序分析流程具体讲解下这个程序的执行过程之前,发展首先程序到结束程序的过程,对程序有一个更为清晰的认识。开始开始包含头文件包含头文件定义常量
18、定义常量函数声明函数声明进入主函数进入主函数main程序结束程序结束main函数体函数体定义所需变量定义所需变量显示提示信息显示提示信息输入计算条件输入计算条件计算长方体的体积,计算长方体的体积,调用调用calculate函数函数calcuate函数体函数体根据长、宽、根据长、宽、高、计算长高、计算长方体的体积方体的体积1.4 一个完整的一个完整的C程序程序1、定义常量#define Height 10使用#define定义符号。#define在这里的功能是设定这个符号为Height,并且指定这个符号Height代表的值为10。这样在程序中,只要是使用Height这个标识符的位置,就代表使用的
19、是10这个数值。2、函数声明int calculate(int Long,int Width);就像变量可以在头文件中声明,而在源文件中定义一样,函数也可以在头文件中声明,在源文件中定义。把函数声明直接放在每个使用该函数的源文件中是大多数新手习惯并喜爱的方式,这是合法的。但是这种方式古板且易出错。解决方法就是把函数的声明放在头文件中,这样可以确保对于指定函数其所有声明保持一致。如果函数接口发生变化,则只需修改其唯一的声明即可。将提供函数声明的头文件包含在定义该函数的源文件中,可使编译器能检查该函数的定义和声明是否一致。特别地,如果函数定义和函数声明的形参列表一致,但返回类型不一致,编译器会发出
20、警告或出错信息来指出差异。1.4 一个完整的一个完整的C程序程序3 3、定义变量定义变量 int m_Long; /* int m_Long; /*定义整形变量,表示长度定义整形变量,表示长度*/*/ int m_Width ; /* int m_Width ; /*定义整形变量,表示宽度定义整形变量,表示宽度*/*/ int result; /* int result; /*定义整形变量,表示长定义整形变量,表示长方体的体积方体的体积*/*/在C语言中要使用变量,必须在使用变量之前进行定义,之后编译器会根据变量的类型为变量分配内存空间。变量的作用就是存储数值,用变量进行计算。4、输入语句sc
21、anf(%d.&m_Long) /* 输入长方体的长度*/显示输出函数printf,那么既然有输出就一定会有输入。C语言中,scanf函数就用来接收键盘输入的内容,并将输入的结构保存在相应的变量中。m_Long就是定义的整形变量,作用是存储输入的信息内容。“&”符号是取地址运算符,5、1.4 一个完整的一个完整的C程序程序v运行程序,显示的结果如图下1.5 C语言程序的格式语言程序的格式主函数一个C程序都是从main函数开始执行的。main函数不论放在什么位置都是没有关系。C程序整体式由函数构成的程序中main就是其中的主函数,当然在程序中是可以定义其他函数的。在这些定义函数中进行特殊的操作,
22、使得函数完成的功能。虽然将所有的执行代码全部放在main函数也是可行的,但是如果将其分成一块一块,每一块使用一个函数进行表示,那么整个程序看起来就具有结构性,并且易于观察和修改。函数体的内容在“”中每一个函数都要执行特定的功能,那么如何才能看出一个函数的具体操作的范围?答案就是寻找“”和“”这两个大括号。C语言使用一对大括号来表示程序的结构层次,需要注意的就是左右大括号要对应使用。技巧:为了防止遗漏,每次都可以先将两个对应的大括号书写出来,在向括号里面添加代码。每一个执行语句都以“;”结尾 英文字符大小通用如果注意观察前面的两个实列就会发现,在每一个执行语句后面都会有一个“;”(分行)作为语句的结束的标志。可以使用英文的大小字母,但是在定义常量时常常用大写字母,而在定义函数时有时会将第一个字母大写。1.5 C语言程序的格式语言程序的格式LOGO高效学习高效学习