最简单的C语言程序设计课件.ppt
课程:C语言程序设计,教材:谭浩强著C程序设计清华大学出版社讲课:36学时实验:27学时平时成绩:作业、考勤考核:平时成绩30%,期末考试70%,任课教师,姓名:杨传栋办公地点:校本部 文理大楼 717E-Mail:,第一讲 简单的C程序设计(1),-基本概念,主要内容,什么是计算机程序程序设计语言的发展C语言词汇及程序书写格式C语言程序结构数据类型与变量,1 什么是程序,计算机由控制器、运算器、存储器、输入设备、输出设备五部分组成;计算机采用二进制表示数据和指令;由指令组成的程序以及程序所要处理的数据都被存储在存储器中,计算机自动依次取出指令并执行。计算机的工作过程实际上是执行程序的过程。程序的执行过程就是在控制器的控制下,不断地取指令、执行指令的过程。,内存地址,所有的程序和数据都是存放在存储器中的。一般把存储器中的一个字节称为一个内存单元。为了正确地访问这些内存单元,必须为每个内存单元编上号。根据一个内存单元的编号即可准确地找到该内存单元。内存单元的编号就是所谓内存地址。,指令是能被计算机识别并执行的一种二进制代码,一条指令完成一种基本操作。程序:是控制计算机完成特定功能的一组有序指令的集合。,2 程序设计语言的发展,程序设计语言:编写程序所使用的语言。,(1)第一代语言机器语言。它依赖于机器,不同的计算机有不同的语言,它由一系列指令组成,每条指令用 二进制或八进制编码。例:0000001011001111 表示 加法指令机器语言是唯一计算机可以直接执行的语言。,(2)第二代语言 汇编语言(符号语言)用符号代替机器语言中的二进制编码。如:MOV AL,5 计算机不能直接识别和执行汇编语言,它必须经过一个汇编程序(系统软件)转换成机器语言后才能执行,它仍依赖于机器,不同的计算机有不同的汇编语言,不能通用。,(3)第三代语言算法语言(高级语言)计算机不能直接识别和执行算法语言,源程序须经过编译程序(系统软件)编译成机器语言程序(目标程序)后才能执行,过程如下:这种方式被称为编译执行,用户程序只需经过编译程序编译一次,编译结果(目标程序)可多次运行。通常,把用高级语言或汇编语言编写的程序称为源程序。,高级语言程序的执行除了上述方式外还有另外一种方式,即一次只读一行源程序,将该行源程序翻译成机器语言并执行,翻译结果不保存,这种方式称为解释执行。这种方式下,每次运行用户程序时都必须要用解释程序。典型的代表:早期的BASIC语言,PCLogo等,(4)第四代语言非过程化语言 它只描述需求解的问题是是什么,典型的如SQL 语句(结构化查询语言)select“男生”from“03级”where“年龄 21”(5)第五代语言智能化语言 主要为人工智能领域设计的,如专家 系统,知识库系统等,另外一种说法:第四代:甚高级语言,是面向对象或面向问题的高级语言。如:Visual Basic,简称VB Visual C+,简称VC,C 语言语法简洁、紧凑;使用方便、灵活;具有丰富的运算符和数据结构;并能通过函数来实现程序的 模块化。它即具有高级语言的一切功能,也具有低级语言的一些功能。因此,它即可以用来编写系统软件,也可以用来编写应用软件。所以它是当今国际上广泛流行的一种计算机高级语言。,C 语言,3.C语言词汇及程序书写格式,语言词汇在语言中使用的词汇分为六类:标识符,关键字,运算符,分隔符,常量,注释符等。,标识符,在程序中使用的变量名、函数名、标号等统称为标识符。除库函数的函数名由系统定义外,其余都由用户自定义。C 规定,标识符只能是字母、数字、下划线(_)组成的字符串,并且其第一个字符必须是字母或下划线。在使用标识符时还必须注意以下几点:标准C不限制标识符的长度,但它受各种版本的C 语言编译系统限制,同时也受到具体机器的限制。例如在某版本C 中规定标识符前八位有效,当两个标识符前八位相同时,则被认为是同一个标识符。在标识符中,大小写是有区别的。例如BOOK和book 是两个不同的标识符。标识符虽然可由程序员随意定义,但标识符是用于标识某个量的符号。因此,命名应尽量有相应的意义,以便于阅读理解,作到“顾名思义”。,标识符的例子,以下标识符是合法的:a,x,x3,BOOK_1,sum5 以下标识符是非法的:3s 以数字开头 s*T 出现非法字符*-3x 以减号开头 bowy-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,volatile(易变),(4)预处理命令字,包括 include,define,ifdef,ifndef,endif,line 主要用在C 语言的编译预处理命令中。,运算符,语言中含有相当丰富的运算符。运算符与变量,函数一起组成表达式,表示各种运算功能。运算符由一个或多个字符组成。,分隔符,在语言中采用的分隔符有逗号和空格两种。逗号主要用在类型说明和函数参数表中,分隔各个变量。空格多用于语句各单词之间作间隔符。在关键字和标识符之间必须要有一个以上的空格符作间隔,否则将会出现语法错误,例如把int a;写成 inta;C编译器会把inta 当成一个标识符处理,其结果必然出错。,常量,C 语言中使用的常量可分为数字常量、字符常量、字符串常量、符号常量、转义字符等多种。在后面课程中将专门给予介绍。,注释符,C 语言的注释符是以“/*”开头并以“*/”结尾的串。在“/*”和“*/”之间的即为注释。程序编译时,不对注释作任何处理。注释可出现在程序中的任何位置。注释用来向用户提示或解释程序的意义。在调试程序中对暂不使用的语句也可用注释符括起来,使翻译跳过不作处理,待调试结束后再去掉注释符。,C语言源程序书写格式C语言程序使用英文小写字母书写。C语言区分字母大小写,大写字母一般符号常量或特殊用途使用。所有语句都必须以分号“;”结束,作为语句之间的分隔符。函数的最后一个语句也必须以分号“;”结束。程序行的书写格式自由。既允许1行内写几条语句,也允许1条语句分写在几行上。,例:输出一个字符串:This is a C program.的语言程序。程序如下:main()/*这是一个简单的演示程序*/printf(“This is a C program.n”);程序运行结果:This is a C program.该程序仅由一个main()主函数构成。,4.C程序结构,1.一个完整的程序一般是由一个main()函数(又称主函数)和若干个其它函数构成的。也可仅由一个main()函数构成。2.一个语言程序,总是从main()函数开始执行,而不论其在程序中的位置。当主函数执行完毕时,亦即程序执行完毕。习惯上,将主函数main()放在最前头。3.函数是语言程序的基本单位。,函数的一般结构 任何函数(包括主函数main())都是由函数说明和函数体两部分组成。其一般结构如下:函数类型 函数名(函数参数表)说明语句部分;执行语句部分;,函数说明部分,函数体部分,5 数据类型与变量,大多数程序设计语言都将数据分类,这些数据的类别就是所谓的数据类型。,短整型(short)整型 整型(int)长整型(long)实型 单精度型(float)(浮点型)双精度型(double)字符类型(char)枚举类型(enum)C 数组类型 结构类型(struct)共用类型(union)文件类型,数值类型,基本类型(简单类型),构造类型(组合类型),指针类 型空类型,数据类型,C语言的数据类型,不同的数据类型所占用的内存单元数(字节数)不等,如整型数据(int)占2个字节,字符(char)占1个字节,实型数据(float)一般占4个字节,变量,变量:在程序中,数据连同其存储空间被抽象为 变量。变量名:每个变量都有一个名字,这个名字就是 变量名。,变量的类型与声明(定义),不同类型的数据在内存中占据不同长度的存储区,且采用不同的表示方式;因此,在引用变量之前必须先用声明语句指定变量的类型,这样在编译时就会根据指定的类型分配其一定的存储空间,并决定数据的存储方式和允许的操作方式。注意:一个变量只能属于某一类型,不能把一个变量声明为几种不同类型。,变量声明(定义)的一般格式:存储类型 数据类型 变量名,变量名2;例如:int a1,a2,a3;变量初始化:在定义变量的同时进行赋初值的操作。变量初始化的一般格式:存储类型 数据类型 变量名=初值,变量名2=初值2;例如:float a1=2.5,a2=5.23,a3=45.43;,例:以下程序输出变量的数值。main()int x,y;x=5;y=3;printf(“%d-%dn”,x,y);x=1;y=2;printf(“%d-%dn”,x,y);运行结果:5-3 1-2,x、y是整型变量每个变量分配2个字节存储单元,将数值5、3分别存放到x、y变量的存储单元,x、y变量的值重新赋值,