C程序设计概述课件_第1页
C程序设计概述课件_第2页
C程序设计概述课件_第3页
C程序设计概述课件_第4页
C程序设计概述课件_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C程序设计概述

1.1计算机程序设计概述1.1.1程序设计语言的发展1.机器语言(MachineLanguage)

2.汇编语言(AssembleLanguage)

汇编语言程序的执行过程

汇编语言和机器语言都是面向机器的程序设计语言,一般称为低级语言。

1.1计算机程序设计概述1.1.1程序设计语言的发展3.高级语言(HighLevelLanguage)

高级语言是一种与硬件结构及指令系统无关,表达方式比较接近自然语言和数学表达式的一种计算机程序设计语言。

优点:描述问题能力强,通用性、可读性、可维护性都较好

缺点:执行速度较慢,编制访问硬件资源的系统软件较难。

用高级语言编写的程序称为“源程序”,计算机不能直接识别和执行,高级语言程序有编译和解释两种执行方式。1.1计算机程序设计概述高级语言程序的编译执行:

是将源程序整个编译成等价的,独立的目标程序,然后通过链接程序将目标程序链接成可执行程序。高级语言编译执行过程

1.1计算机程序设计概述高级语言程序的解释执行:

解释方式是将源程序逐句翻译,翻译一句执行一句,边翻译边执行,不产生目标程序。整个执行过程,解释程序都一直在内存中。高级语言解释执行过程

1.1计算机程序设计概述1.1.2程序设计方法概述程序设计方法的发展可以划分以下三个阶段:1.早期的程序设计2.结构化程序设计3.面向对象的程序设计1.2C语言简介1.2.1C语言的发展

C语言是在70年代初问世的。1973年由美国电话电报公司(AT&T)贝尔实验室正式发表了C语言。同时由B.W.Kernighan和D.M.Ritchit合著了著名的“TheCProgrammingLanguage”一书。

1.2C语言简介1.2.1C语言的发展60年ALGOL语言63年CPL67年BCPL70年B语言73年C语言90年Borland公司推出BC++92年Microsoft公司推出MSC++93年Microsoft公司推出VC++83年制定了ANSIC85年AT&T公司推出C++1.2C语言简介1.2.2C语言的特点语言简洁、紧凑、使用方便、灵活VB语言DimaAsIntegerDimbAsIntegerif(表达式)then语句

EndifC语言inta,b;if(表达式)语句;2.丰富的运算符和数据类型

1.2.2C语言的特点4.C语法限制不太严格、程序设计自由度大

一般的高级语言语法检查比较严,能够检查出几乎所有的语法错误。而C语言允许程序编写者有较大的自由度。

3.C语言是一种结构化语言

它层次清晰,便于按模块化方式组织程序,易于调试和维护。

5.直接访问内存的物理地址

由于能进行位(bit)一级的操作。实现了对硬件的编程操作,因此C语言集高级语言和低级语言的功能于一体。既可用于系统软件的开发,也适合于应用软件的开发。1.2.2C语言的特点

6.C语言还具有效率高,可移植性强等特点

一般只比汇编程序生成的目标代码效率低10%~20%。

7.C语言适用范围大

C语言还有一个突出的优点就是适合于多种操作系统,如DOS、UNIX,也适用于多种机型。C语言程既适合编写大型的系统软件,也适合编写应用软件。

1.2.3C语言的字符集

字符是组成语言的最基本的元素。C语言字符集由字母,数字,空格,标点和特殊字符组成。(1)字母小写字母a~z共26个,大写字母A~Z共26个(C语言中区分字母大小写)

(2)数字

0~9共10个(3)空白符空格符、制表符、换行符等统称为空白符。空白符只在字符、常量和字符串常量中起作用。在其它地方出现时,只起间隔作用。(4)标点和特殊字符

C语言编程中可以使用的标点和特殊字符共有30个,如下表1.3.1C语言的字符集

(4)标点和特殊字符

1.2.4C语言标识符

1.保留字符

C语言的保留字符(也称关键字)共有32个,根据关键字的作用,可分其为数据类型关键字、控制语句关键字、存储类型关键字和其它关键字四类。

(1)数据类型关键字(12个):char,double,enum,float,int,long,short,signed,struct,union,unsigned,void

(2)控制语句关键字(12个):break,case,continue,default,do,else,for,goto,if,return,switch,while

(3)存储类型关键字(4个):auto,extern,register,static

(4)其它关键字(4个):const,sizeof,typedef,volatile2.预定义标识符

C语言中除了上述保留字符外,还有一类具有特殊含义的标识符,它们被C系统用作库函数名、预编译命令,这类标识符称为系统预定义标识符。例如:

系统库数:如sin,printf,scanf等

预编译命令:如define,include,undef,ifdef,endif等一般来说,用户在编写C程序时,不要把这些标识再定义为其它用途的标识符(用户自定义标识符)。1.2.4C语言标识符

3.用户定自义标识符用户自定义标识符是用户根据编程的需要而定义的标识符,用于标识变量、符号常量、用户自定义函数、类型名等。

C规定,标识符只能是字母(A~Z,a~z)、数字(0~9)、下划线(_)组成的字符串,并且其第一个字符必须是字母或下划线。例如,以下标识符是合法的:

a,

x,

x3,

BOOK1,sum5,mysin以下标识符是非法的:

3s以数字开头

s*T出现非法字符*

-3x以减号开头bowy-1出现非法字符-(减号)

1.2.4C语言标识符

使用自定义标识符的几点说明:(1)标准C不限制标识符的长度,但它受各种版本的C语言编译系统限制,同时也受到具体机器的限制。(2)标识符中,大小写是有区别的。(3)标识符虽然可由程序员随意定义,建议命名应尽量有相应的意义,以便阅读理解,作到“顾名思义”。例如:可用sum表示求和的量,name表示姓名等。(4)不使用C语言的关键字:类型说明符、语句定义符、预处理命令。(5)标识符不能和用户已编制的函数或C语言库函数同名。否则程序中调用库函数就会出错。1.2.4C语言标识符

1.3算法及算法的表示1.3.1算法概述广义:算法是为完成一项任务所应当遵照的一步一步的规则的、精确的、无歧义的描述,它的总步数是有限的。狭义:算法是解决一个问题采取的方法和步骤的描述算法概念例1-1输入三个数,然后输出其中最大的数。

算法可以写成:(1)输入A,B,C。(2)若A>B,则MAX←A;否则MAX←B。(3)若C>MAX,则MAX←C。(4)输出MAX,MAX即为最大数。1.3算法及算法的表示例1-2.输入10个数,打印输出其中最大的数。算法设计如下:(1)输入1个数,存入变量A中,将记录数据个数的变量N赋值为1(2)将A存入表示最大值的变量Max中,即Max=A(3)再输入一个值给A,如果A>Max则

Max=A,否则Max不变(4)让记录数据个数的变量增加1,即N=N+1(5)判断N是否小于10,若成立则转到第(3)步执行,否则转到第(6)步。(6)打印输出Max1.3算法及算法的表示1.3.2算法的特性

1.有穷性:算法须在执行有穷多个计算步骤后终止

2.确定性:算法的每个步骤必须都是精确定义的、无二义性的;

3.有效性:算法中的每一个步骤必须有效地执行,并能得到确定结果;

4.输入:一个算法中可以没有输入,也可以有一个或多个输入信息

5.输出:一个算法应有一个或多个输出1.3算法及算法的表示1.3.3算法的表示

一、

自然语言与伪代码表示算法

自然语言就是指人们日常使用的语言,可以是汉语、英语或其它语言。

伪代码是用介于自然语言和计算机语言之间的文字和符号(包括数学符号)来描述算法。

1.3算法及算法的表示例1-1的伪代码表示如下:Begin(算法开始)

输入

A,B,CIFA>B则

A→Max

否则

B→MaxIFC>Max则C→MaxPrintMaxEnd(算法结束)例1-2的伪代码表示如下:

Begin(算法开始)

N=1InputA(输入数据给变量A)Max=A当

N<=10则

{InputAIFA>Max则

Max=AN=N+1}PrintMaxEnd(算法结束)1.3算法及算法的表示1.常用的流程符号l

起止框:表示算法的开始和结束。l

处理框:表示初始化或运算赋值等操作。l

输入输出框:表示数据的输入输出操作。l

判断框:表示根据一个条件成立与否,决定执行两种不同操作中的其中一个。l

流程线:表示流程的方向。二、用流程图表示算法1.3算法及算法的表示(1)顺序结构顺序结构是简单的线性结构,各框按顺序执行。其流程图如图1-4所示2.三种基本结构的表示

图1-4顺序结构

图1-5选择结构

1.3算法及算法的表示(2)选择(分支)结构对某个给定条件进行判断,条件为真或假时分别执行不同的内容。其基本形状有两种,如图1-5所示。(3)循环结构

循环结构分为当型循环和直到型循环两种。当型循环:执行过程是先判断条件,当条件为真时,反复执行“语句组”,一旦条件为假,跳出循环,执行循环紧后的语句。如图1-6(a)所示。1.3算法及算法的表示图1-6循环结构流程图

直到型循环:执行过程是先执行“语句组”,再判断条件,条件为真时,一直循环执行语句组,一旦条件为假,结束循环,执行循环紧后的下一条语句。如图1-6(b)所示。1.3算法及算法的表示图1-6循环结构流程图

图1-7例1-1的算法流程图

输入A、B、C1.3算法及算法的表示

例1-1输入三个数,然后输出其中最大的数

图1-8例1-2的算法流程图1.3算法及算法的表示

例1-2.输入10个数,打印输出其中最大的数。1.3.4用N—S流程图表示算法

三种基本结构的N-S图描述如下所示:1.顺序结构顺序结构的N-S图,如图1-9所示1.3算法及算法的表示图1-4顺序结构

图1-9顺序结构的N-S图

1.3.4用N—S流程图表示算法

2.选择结构对应于选择结构图1-5的N-S图为图1-10所示1.3算法及算法的表示

图1-10选择结构的N-S图图1-5选择结构

1.3.4用N—S流程图表示算法

3.循环结构当型循环结构的N-S图如下图。1.3算法及算法的表示图1-11循环结构的N-S图图1-6循环结构流程图

1.3.4用N—S流程图表示算法

3.循环结构直到循环结构的N-S图如下:1.3算法及算法的表示图1-11循环结构的N-S图图1-6循环结构流程图

例1-1算法的N—S流程图

1.3算法及算法的表示

例1-1输入三个数,然后输出其中最大的数

算法的N—S流程图

例1-2算法的N—S流程图

1.3算法及算法的表示

例1-2.输入10个数,打印输出其中最大的数。1.3算法及算法的表示

说明:上面介绍的算法表示是给人看的,即是为帮助程序开发人员阅读、编写程序而设计的一种辅助工具,因此算法表述中的文字和符号只要符合人们的约定和习惯即可,人们将算法流程图用计算机语言(如C、VB)编写程序时,必须使用符合其语法规则。否则计算机便不能处理。1.3算法及算法的表示

依据图1-12的算法流程图,可以很方便地转化为相应的程序。下面就是用C语言编写的程序段。voidmain(){inta,b,c,max;/*定义变量*/

scanf(“%d%d&d”,&a,&b,&c);/*输入数据给A、B、C*/if(a>b)/*如果A>B*/max=a;/*将A的值赋值给max*/Else/*否则,即A不大于B*/max=b;/*将B的值赋值给max*/if(c>max)/*如果C>max*/max=c;/*将C的值赋值给max*/

printf(“Max=%d”,max);/*打印输出max*/}1.4C语言的程序结构1.4.1几个简单的C程序实例

例1-3在屏幕输出一行文字信息。具体程序如下:#include<stdio.h>voidmain(){

printf("HelloC!\n");}

其执行结果是在屏幕上输出一行信息:

HelloC!头包含文件程序开始程序结束打印输出函数主函数输出内容1.4.1几个简单的C程序实例

例1-4输入2个数据,计算它们的和,并打印输出在屏幕上。程序运行结果如下:

voidmain(){inta,b,s;/*定义变量

*/

printf("Entertwonumbera,b=?\n");

scanf("%d%d",&a,&b);/*调用标准函数,要求用户输入2个数据*/s=a+b;

printf("s=%d\n",s);}1.4.1几个简单的C程序实例

例1-5将例1-4中的求2个数的和编写成独立的函数,在主函数中调用实现。voidmain()/*主函数*/{int

fsum(int,int);/*用户自定义函数声明*/voidprn();/*用户自定义函数声明*/

inta,b,t;/*定义a,b,t为整数*/

printf("Entertwonumbera,b=?\n");

scanf("%d%d",&a,&b);

prn();/*调用函数prn,无返回*/t=fsum(a,b);/*调用函数fsum,结果返回给t*/

printf("%d+%d=%d\n",a,b,t);/*打印输入

*/

prn();}voidprn(){printf("--------------------------------\n");}int

fsum(intx,inty){intz;z=x+y;return(z);/*返回变量z的值*/}

程序执行的结果如下:1.4.2C程序的结构特点

C程序函数组成由若干函数说明部分函数体函数类型说明函数名函数形参形参类型说明变量定义部分执行部分

intfsum(intx,inty){………}例如:(函数首部)1.4C语言的程序结构1.4C语言的程序结构C程序的基本结构的特点:

(1)C程序为函数模块结构,C程序由一个或多个函数构成,其中必须,且只能有一个主函数main()。(2)C程序从main()函数开始执行,在main()中结束。(3)C程序的函数是系统提供的标准函数(如printf、scanf等)和用户自己定义的函数(如prn、fsum等)。(4)每一个说明,每一个语句都必须以分号结尾。但预处理命令,函数头和最后一个花括号“}”之后不能加分号。(5)C语言的注释符是以“/*”开头并以“*/”结尾的串。在“/*”和“*/”之间的即为注释。在TC++中,注释符以“//”开始,到本行结束。例如:inta,b;//定义2个整型变量

1.4C语言的程序结构1.4.3C函数的结构

函数是C语言程序的基本单位。任何函数(包括主函数main())都是由函数说明和函数体两部分组成,其一般结构如下:函数类型

函数名([形式参数说明]){数据说明部分;语句部分;}例:

int

fsum(intx,inty){intz;z=x+y;return(z);/*返回变量z的值*/}

1.4C语言的程序结构1.4.4C程序的书写风格

(1)一个说明或一个语句占一行(2)函数与函数之间加空行,以清楚的分出程序中有几个函数。(3)用{}括起来的部分,通常表示了程序的某一层次结构。{}一般与该结构语句的第一个字母对齐,并单独占一行。(4)低一层次的语句或说明可比高一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论