计算机语言发展阶段:机器语言(由0和1组成的指令)符号语言(用英文字母和数字表示指令)高级语言(接近于人的自然语言和数学语言)面向过程的语言(非结构化的语言、结构化语言)面向对象的语言低级语言第1章C语言概述1.1什么是计算机程序1.2什么是计算机语言1.3C语言的发展简史和特点1.C语言的诞生与发展在C语言诞生以前,系统软件主要是用汇编语言编写的。由于汇编语言程序依赖于计算机硬件,其可读性和可移植性都很差;但一般的高级语言又难以实现对计算机硬件的直接操作(这正是汇编语言的优势),于是人们盼望有一种兼有汇编语言和高级语言特性的新语言。C语言的发展:BCPL语言B语言C语言精练、接近硬件,但过于简单,无数据类型具有多种数据类型1.3C语言的发展简史和特点(2)最初的C语言只是为描述和实现UNIX操作系统提供一种工作语言而设计的。(3)1989年,ANSI(AmericanNationalStandardsInstitute)公布了一个完整的C语言标准—ANSIX3.159-1989(常称ANSIC,或C89)。(4)1999年,ISO又对C语言标准进行修订,在基本保留原来的C语言特征的基础上,针对应用的需要,增加了一些功能,尤其是C++中的一些功能,命名为ISO/IEC9899:1999。(5)2001、2004年先后进行了两次技术修正(TC1和TC2)。ISO/IEC9899:1999(及其技术修正)被称为C99。(6)C99是C89(及1995基准增补1)的扩充。教材的叙述以C99标准为依据。C语言主要特点:语言简洁、紧凑,使用方便、灵活。只有37个关键字、9种控制语句程序书写形式自由,源程序短1.3C语言的发展简史和特点C语言主要特点:运算符丰富。有34种运算符把括号、赋值、强制类型转换等都作为运算符处理表达式类型多样化C语言主要特点:数据类型丰富。包括:整型、浮点型、字符型、数组类型、指针类型、结构体类型、共用体类型C99又扩充了复数浮点类型、超长整型(longlong)、布尔类型(bool)指针类型数据,能用来实现各种复杂的数据结构(如链表、树、栈等)的运算。C语言主要特点:具有结构化的控制语句如if…else语句、while语句、do…while语句、switch语句、for语句用函数作为程序的模块单位,便于实现程序的模块化C语言是完全模块化和结构化的语言C语言主要特点:语法限制不太严格,程序设计自由度大。对数组下标越界不做检查对变量的类型使用比较灵活,例如,整型量与字符型数据可以通用C语言允许程序编写者有较大的自由度,因此放宽了语法检查C语言主要特点:允许直接访问物理地址,能进行位操作,可以直接对硬件进行操作C语言具有高级语言的功能和低级语言的许多功能,可用来编写系统软件这种双重性,使它既是成功的系统描述语言,又是通用的程序设计语言C语言主要特点:用C语言编写的程序可移植性好。C的编译系统简洁,很容易移植到新系统在新系统上运行时,可直接编译“标准链接库”中的大部分功能,不需要修改源代码几乎所有计算机系统都可以使用C语言生成目标代码质量高,程序执行效率高。1.4C语言程序的总体结构#includestdio.hintmain(){printf(”ThisisaCprogram.\n”);return0;}函数的名字,表示主函数C程序必须有一个main函数主函数类型函数体输出函数输出语句当main函数执行结束前将整数0作为函数值表示语句结束用到函数库中的输入输出函数时C语言允许用两种注释方式://:单行注释可单独占一行可出现在一行中其他内容的右侧/*……*/:块式注释可包含多行例如:#includestdio.hvoidmain(){intnum1,num2;变量定义部分printf(“Inputthefirstnumber:”);scanf(“%d”,&num1);printf(“Inputthesecondnumber:”);scanf(“%d”,&num2);printf(“max=%d”,max(num1,num2));}可执行语句部分intmax(intx,inty){intz;if(xy)z=x;elsez=y;return(z);}说明:1.一个程序由一个或多个源程序文件组成小程序往往只包括一个源程序文件一个源程序文件中可以包括三个部分:预处理指令全局声明函数定义#includestdio.h等在函数之外进行的数据声明每个函数用来实现一定的功能2.函数是C程序的主要组成部分一个C程序是由一个或多个函数组成的必须包含一个main函数(只能有一个)每个函数都用来实现一个或几个特定功能被调用的函数可以是库函数,也可以是自己编制设计的函数3.一个函数包括两个部分:函数首部intmax(intx,inty)函数的第1行函数类型函数名参数类型参数名3.一个函数包括两个部分:函数首部intmax(intx,inty)若函数无参,在括弧中写void或空括弧intmain(void)或intmain()3.一个函数包括两个部分:函数体声明部分定义在本函数中所用到的变量对本函数所调用函数进行声明执行部分:由若干个语句组成,指定在函数中所进行的操作可以没有声明部分3.一个函数包括两个部分:函数体voiddump(){}可以是空函数4.程序总是从main函数开始执行5.C程序对计算机的操作由C语句完成C程序书写格式是比较自由的一行内可以写几个语句一个语句可以分写在多行上为清晰起见,习惯上每行只写一个语句4.程序总是从main函数开始执行5.C程序对计算机的操作由C语句完成6.数据声明和语句最后必须有分号7.C语言本身不提供输入输出语句8.程序应当包含注释,增加可读性运行一个C语言程序的一般过程(1)编辑(或修改)源程序。(2)编译。如果编译成功,则可进行下一步操作;否则,返回(1)修改源程序,再重新编译,直至编译成功。(3)连接。如果连接成功,则可进行下一步操作;否则,根据系统的错误提示,进行相应修改,再重新连接,直至连接成功。(4)运行。通过观察程序运行结果,验证程序的正确性。如果出现逻辑错误,则必须返回(1)修改源程序,再重新编译、连接和运行,直至程序正确。开始编辑编译连接执行有错结果正确结束源程序目标程序库函数其他目标程序可执行目标程序无不正确是是VisualC++6.0集成开发环境1.什么是控制台程序Win32控制台程序(Win32ConsoleApplication)是一类Windows程序,它不使用复杂的图形用户界面,程序与用户交互时通过一个标准的正文窗口,通过几个标准的输入输出流(I/OStreams)进行。它们分别是stdin(标准输入),stdout(标准输出)以及stderr(标准错误输出)。这些流都是ANSIC语言标准库提供的,通过printf(…)等函数可以访问这些流。图中显示的窗口称为控制台窗口,程序的输入、输出均在这个窗口中进行。使用MSVC编写控制台程序要想着手一个新的应用程序,首先必须创建一个项目(project),利用项目就可以管理构成一个VisualC++程序的所有元素(element)。在安装MSVC6.0环境后,按照如下步骤进行即可编写控制台程序。方法一:先创建C源程序文件标签文件类型文件名目录新建工程,选择菜单【文件】|【新建】,在弹出的对话框中①单击上方的选项卡“工程”;②选择“Win32ConsoleApplication”③在“工程”对应的文本框中填写工程名称;④在“C位置:”处选择工程所保存的位置。方法二:先创建空工程——步骤1工程标签工程类型工程名目录选择空工程选择菜单【文件】|【新建】,在弹出的对话框中①单击上方的选项卡“文件”;②选择“C++SourceFile”;③在“Filename(文件)”一栏中填写新建程序的文件名;④在“Location(目录)”一栏中填写你想把文件存放的位置。然后单击“OK(确定)”。文件标签文件类型文件名选中此项.cpp是源程序代码c++文件.h是包含函数声明和变量定义的头文件.rc是定义资源的资源脚本文件.dsp是工程文件,记录当前工程的有关信息.dsw是工作区文件,一个工作区可能包含一个或多个工程....opt工程关于开发环境的参数文件。如工具条位置等信息;.aps(AppStudioFile),资源辅助文件,二进制格式,一般不用去管他..clwClassWizard信息文件,实际上是INI文件的格式..plg是编译信息文件,编译时的error和warning信息文件(实际上是一个html文件).在Tools-Options里面有个选项可以控制这个文件的生成..hpj(HelpProject)是生成帮助文件的工程.作业:1.5