《第一章 C程序设计概述》由会员分享,可在线阅读,更多相关《第一章 C程序设计概述(25页珍藏版)》请在金锄头文库上搜索。
1、第一章第一章l 主要内容主要内容1.1 语言出现的历史背景语言出现的历史背景1.2 程序的特点程序的特点1.3 简单的简单的C C语言程序介绍语言程序介绍1.4 运行程序的步骤和方法运行程序的步骤和方法l 本章要点本章要点 1.1 语言出现的历史背景语言出现的历史背景1.1.1 1.1.1 程序设计语言程序设计语言一、概念:一、概念:程序设计语言是程序设计人员和计算机程序设计语言是程序设计人员和计算机进行会话的语言,它遵循一定的规则和形式,构进行会话的语言,它遵循一定的规则和形式,构成程序的实现工具。成程序的实现工具。二、发展:经历了四代二、发展:经历了四代、第一代语言:、第一代语言:面向机器
2、的机器语言(低级语言)面向机器的机器语言(低级语言) 概念:概念:机器语言是以计算机硬件能直接执行和理机器语言是以计算机硬件能直接执行和理解的指令系统为基础而形成的语言,它为特定的解的指令系统为基础而形成的语言,它为特定的计算机而设计。相应机器语言编写的程序称为机计算机而设计。相应机器语言编写的程序称为机器语言程序。器语言程序。特点:特点:a、优点:质量高、运行速度快、占用资、优点:质量高、运行速度快、占用资 源少;源少;b、缺点:不易阅读理解、编写难、通用、缺点:不易阅读理解、编写难、通用 性差。性差。、第二代语言:、第二代语言:汇编语言汇编语言特点:特点:汇编语言是一种符号化了的机器语言,
3、即汇编语言是一种符号化了的机器语言,即用助记符代替机器语言的二进制代码。汇编语言用助记符代替机器语言的二进制代码。汇编语言的设计在一定程度上克服了机器语言的不足,同的设计在一定程度上克服了机器语言的不足,同时保留了机器语言的长处。时保留了机器语言的长处。、第三代语言:、第三代语言:面向过程的高级语言面向过程的高级语言高级语言是大量接近自然语言的程序设计语言,高级语言是大量接近自然语言的程序设计语言,程序具有很强的通用性。这些语言面向用计算机程序具有很强的通用性。这些语言面向用计算机求解问题的过程,不依赖具体机器,与特定机器求解问题的过程,不依赖具体机器,与特定机器相分离,采用接近自然语言的词汇
4、。如:相分离,采用接近自然语言的词汇。如:BASICBASIC、PASCALPASCAL、C C、FORTRANFORTRAN、COBOLCOBOL语言等。语言等。、第四代语言:、第四代语言:面向对象的高级语言面向对象的高级语言面向求解问题本身的高级语言,如面向求解问题本身的高级语言,如C C等。等。 1.1.21.1.2 语言出现的历史背景语言出现的历史背景早期的操作系统软件主要是用汇编语言编写的。早期的操作系统软件主要是用汇编语言编写的。由于汇编语言依赖于计算机硬件,程序的可读性由于汇编语言依赖于计算机硬件,程序的可读性和可移植性都比较差,所以为了提高系统软件的和可移植性都比较差,所以为了
5、提高系统软件的可读性和可移植性,最好改用高级语言。但是,可读性和可移植性,最好改用高级语言。但是,一般高级语言难以实现汇编语言的某些功能(汇一般高级语言难以实现汇编语言的某些功能(汇编语言可以直接对硬件进行操作,例如对内存地编语言可以直接对硬件进行操作,例如对内存地址的操作、位操作等)。人们希望找到一种兼具址的操作、位操作等)。人们希望找到一种兼具一般高级语言和低级语言优点的语言,于是,一般高级语言和低级语言优点的语言,于是,语言就在这种环境下应运而生了。语言就在这种环境下应运而生了。 1.2 语言的特点语言的特点(1 1)语言简洁、紧凑,使用方便、灵活。)语言简洁、紧凑,使用方便、灵活。32
6、32个关键字、个关键字、9 9种控制语句,程序形式自由。种控制语句,程序形式自由。(2 2)运算符丰富。)运算符丰富。3434种运算符。种运算符。(3 3)数据类型丰富,具有现代语言的各种数)数据类型丰富,具有现代语言的各种数 据结构。据结构。(4 4)具有结构化的控制语句,是完全模块化)具有结构化的控制语句,是完全模块化和结构化的语言。和结构化的语言。 (5 5)语法限制不太严格,程序设计自由度大。)语法限制不太严格,程序设计自由度大。 (6 6)允许直接访问物理地址,能进行位)允许直接访问物理地址,能进行位操作,能实现汇编语言的大部分功能,可操作,能实现汇编语言的大部分功能,可直接对硬件进
7、行操作,兼有高级和低级语直接对硬件进行操作,兼有高级和低级语言的特点言的特点 。(7 7)生成目标代码质量高,程序执行效)生成目标代码质量高,程序执行效率高。只比汇编程序生成的目标代码效率率高。只比汇编程序生成的目标代码效率低低1010-20%-20%。(8 8)程序可移植性好)程序可移植性好( (与汇编语言比与汇编语言比) ),基本上不做修改就能用于各种型号的计算基本上不做修改就能用于各种型号的计算机和各种操作系统。机和各种操作系统。 解释解释1 1:C+C+是由于开发大型应用软件的需是由于开发大型应用软件的需要而产生的,并不是所有的人都要去编要而产生的,并不是所有的人都要去编写大型软件写大
8、型软件。解释解释2 2:面向对象的基础是面向过程。面向对象的基础是面向过程。C+C+是面向对象的语言,是面向对象的语言,C C是面向过程的,学是面向过程的,学起来比起来比C C语言困难得多,所以不太适合程语言困难得多,所以不太适合程序设计的初学者。序设计的初学者。问题:问题:既然有了面向对象的既然有了面向对象的C+C+语言,为什语言,为什么还要学习么还要学习C C语言?语言? 1.3 简单的简单的C语言程序介绍语言程序介绍#include void main( ) printf (This is a C program.n); /*文件包含*/*主函数 */*函数体开始*/*输出语句*/*函数
9、体结束*/ 说明:说明:说明:说明: mainmain- -主函数名,主函数名, void void- -函数类型函数类型每个每个C C程序必须有一个程序必须有一个主函数主函数mainmain 是函数开始和结束的标志是函数开始和结束的标志, ,不可省不可省每个每个C C语句以分号结束语句以分号结束使用标准库使用标准库函数时函数时应在程序开头一行写:应在程序开头一行写: #include #include 说明:说明: 本程序的作用是输出一行信息本程序的作用是输出一行信息: :This is a C program.This is a C program.例例1.1 求两数之和。求两数之和。#i
10、nclude #include void main( ) void main( ) /*/*求两数之和求两数之和* */ / intint a,b,sum; a,b,sum; /*/*声明,定义变量为整型声明,定义变量为整型* */ / /*/*以下以下3 3行为行为C C语句语句 * */ / a=123; b=456; a=123; b=456; sum=a+b; sum=a+b; printf(sumprintf(sum is %d is %dn,sum);n,sum); 说明:说明:说明:说明: /*/*/*/表示注释。注释只是给人表示注释。注释只是给人看的看的, ,对编译和运行不起作
11、用。所以可以用对编译和运行不起作用。所以可以用汉字或英文字符表示,可以出现在一行中汉字或英文字符表示,可以出现在一行中的最右侧,也可以单独成为一行。的最右侧,也可以单独成为一行。说明:说明: 输出一行信息输出一行信息:sum is 579:sum is 579例例1.2 求求3个数中较大者。个数中较大者。#include #include void main( ) void main( ) /* /* 主函数主函数* */ / intint max(intmax(int x,intx,int y); y); / / 对被调用函数对被调用函数maxmax的声明的声明 * */ / intint
12、a, b, c; a, b, c; /*/*定义变量定义变量a a、b b、c */c */ scanfscanf(d,d,d,&a,&b); d,&a,&b); /*/*输入变量输入变量a a和和b b的值的值* */ / c=max(a,b); c=max(a,b); /*/*调用调用maxmax函数函数, ,将得到的值赋给将得到的值赋给c */c */ printf(maxprintf(max= =dn,cdn,c); ); /*/*输出输出c c的值的值* */ / 程序运行情况如下程序运行情况如下:8,5 8,5 ( (输入输入8 8和和5 5赋给赋给a a和和b)b)max=8 (
13、max=8 (输出输出c c的值的值) )int max(int x,int int max(int x,int y) y) int z; int z; if (xy) z=x; if (xy) z=x; else z=y; else z=y; return (z); return (z); max(intmax(int x,intx,int y)y) max(max(a a, ,b b);); 说明:说明:说明:说明:本程序包括本程序包括mainmain和被调用和被调用函数函数maxmax两个函数。两个函数。maxmax函数的函数的作用是将作用是将x x和和y y中较大者的值赋中较大者的值赋
14、给变量给变量z z。returnreturn语句将语句将z z的值的值返回给主调函数返回给主调函数mainmain。 1.3 简单的简单的C语言程序介绍语言程序介绍C C C C程序:程序:程序:程序:(1) C(1) C程序是由函数构成的。这使得程序容易实现模程序是由函数构成的。这使得程序容易实现模块化。块化。 (2) (2) 一个函数由两部分组成一个函数由两部分组成: : 函数的首部:函数的首部:例例1.31.3中的中的maxmax函数首部函数首部 intint max(intmax(int x,intx,int y ) y ) 函数体:函数体:花括号内的部分。若一个函数有多个花花括号内的
15、部分。若一个函数有多个花括号,则最外层的一对花括号为函数体的范围。括号,则最外层的一对花括号为函数体的范围。 函数体包括两部分:函数体包括两部分: 声明部分:声明部分:intint a,b,c; a,b,c; 可缺省可缺省 执行部分:由若干个语句组成。执行部分:由若干个语句组成。可缺省可缺省注意:注意:函数的声明部分和执行部分都可缺省,例函数的声明部分和执行部分都可缺省,例如:如:void dump ( )void dump ( ) 这是一个空函数这是一个空函数, ,什么也不做什么也不做, ,但是合法的但是合法的函数。函数。 (3) C(3) C程序总是从程序总是从mainmain函数开始执行
16、的函数开始执行的, ,与与mainmain函数函数的位置无关。的位置无关。(4) C(4) C程序书写格式自由程序书写格式自由, ,一行内可以写几个语句一行内可以写几个语句, , 一个语句可以分写在多行上,一个语句可以分写在多行上,C C程序没有行号。程序没有行号。(5) (5) 每个语句和数据声明的最后必须有一个分号。每个语句和数据声明的最后必须有一个分号。(6) C(6) C语言本身没有输入输出语句。输入和输出的操语言本身没有输入输出语句。输入和输出的操作是由库函数作是由库函数scanfscanf和和printfprintf等函数来完成的。等函数来完成的。C C对对输入输出实行输入输出实行
17、“函数化函数化”。 1.4 运行程序的步骤和方法运行程序的步骤和方法1.4.1 1.4.1 运行程序的步骤运行程序的步骤上机输入与编辑源程序上机输入与编辑源程序对源程序进行编译对源程序进行编译与库函数连接与库函数连接运行目标程序运行目标程序1.4.2 1.4.2 上机上机运行程序的方法运行程序的方法l目前使用的大多数目前使用的大多数C C编译系统都是集成环境编译系统都是集成环境(IDE)(IDE)的。的。可以用不同的编译系统对可以用不同的编译系统对C C程序进行操作。程序进行操作。l常用的有常用的有Turbo C 2.0Turbo C 2.0、Turbo C+ 3.0Turbo C+ 3.0、
18、Visual C+Visual C+等。等。 lTurbo C+ 3.0Turbo C+ 3.0:是一个集成环境,它具有方便、直观是一个集成环境,它具有方便、直观和易用的界面,虽然它也是和易用的界面,虽然它也是DOSDOS环境下的集成环境,但是环境下的集成环境,但是可以把启动可以把启动Turbo C+ 3.0 Turbo C+ 3.0 集成环境的集成环境的DOSDOS执行文件执行文件tc.exetc.exe生成快捷方式,也可以用鼠标操作。生成快捷方式,也可以用鼠标操作。lVisual C+Visual C+:也可以用也可以用Visual C+Visual C+对对C C程序进行编译。程序进行编
19、译。例:例:例:例:Turbo C+ 3.0Turbo C+ 3.0的使用的使用的使用的使用将将Turbo C+ 3.0Turbo C+ 3.0编译程序装入磁盘某一目录下编译程序装入磁盘某一目录下例如:例如:放在放在C C盘根目录下一级盘根目录下一级TC3.0TC3.0子目录下。子目录下。(1)进入进入Turbo C+ 3.0集成环境集成环境在在DOS环境下环境下 C:TC3.0tc 在在在在WindowsWindowsWindowsWindows环境下环境下环境下环境下 找到可执行文件找到可执行文件tc.exetc.exe,执行该文件。执行该文件。主菜单:主菜单:主菜单:主菜单:111111
20、11个菜单项个菜单项个菜单项个菜单项: : : :File Edit Search Run Compile File Edit Search Run Compile File Edit Search Run Compile File Edit Search Run Compile Debug Project Options Window Debug Project Options Window Debug Project Options Window Debug Project Options Window HelpHelpHelpHelp(2) (2) (2) (2) 编辑源文件编辑源文件编
21、辑源文件编辑源文件新建:新建:新建:新建:单击单击单击单击“ “File”File”菜单下菜单下菜单下菜单下 的的的的“ “New”,New”, 修改:修改:修改:修改:选择选择选择选择“ “File”“Open”(File”“Open”(即单击即单击即单击即单击“ “File” File” 的下拉菜单中的的下拉菜单中的的下拉菜单中的的下拉菜单中的“ “Open”Open”项,修改已有的源程项,修改已有的源程项,修改已有的源程项,修改已有的源程序。序。序。序。 在编辑在编辑(EDIT) 状态下光标表示当前进行编辑的位状态下光标表示当前进行编辑的位置,在此位置可以进行插入、删除或修改,直到自已置
22、,在此位置可以进行插入、删除或修改,直到自已满意为止。满意为止。 保存:在编辑保存:在编辑(EDIT) (EDIT) 状态下光标表示当前进行编辑状态下光标表示当前进行编辑的位置,在此位置可以进行插入、删除或修改,直到的位置,在此位置可以进行插入、删除或修改,直到自已满意为止。自已满意为止。 (3) (3) 对源程序进行编译对源程序进行编译选择选择“CompileCompile”( (或或“Alt+F9Alt+F9”) )对源程序进行编译。对源程序进行编译。 c1.cppc1.cpp源程序,出现源程序,出现1 1个错误个错误(error) (error) ,0 0个警个警告告(warming)(warming)。 (4) 将目标程序进行连接将目标程序进行连接 选择菜单选择菜单“CompileCompile” “LinkLink” ,如果不如果不出现错误,会得到一个后缀为出现错误,会得到一个后缀为.exe.exe的可执行的可执行文件。文件。 (5) (5) 执行程序执行程序选菜单选菜单“RunRun” “RunRun”( ( 或按或按“Ctrl+F9Ctrl+F9” 键键) )。(6) (6) 退出退出Turbo C+ 3.0Turbo C+ 3.0环境环境选择选择“FileFile”“QuitQuit” 。