作者田丽华岳俊华孙颖馨.ppt
《作者田丽华岳俊华孙颖馨.ppt》由会员分享,可在线阅读,更多相关《作者田丽华岳俊华孙颖馨.ppt(390页珍藏版)》请在三一办公上搜索。
1、C语言程序出版社,清华大学出版社,作者:田丽华 岳俊华 孙颖馨,第1章,C语言概述,本章重点,1 C语言的特点 2 C程序的结构3 在计算机上运行C程序的方法,主要内容,1.1 程序设计语言的发展及其特点1.2 程序的发展过程及其特点1.3 认识简单的C语言程序1.4 Visual C+6.0集成开发环境的使用1.5 运行程序的步骤和方法,1.1 程序设计语言的发展及其特点,计算机程序设计语言的发展,经历了从机器语言、汇编语言、到高级语言的历程。1969年,提出了结构化程序设计方法,1970年,第一个结构化程序设计语言Pascal语言出现,标志着结构化程序设计时期的开始。20世纪80年代初开始
2、,在软件设计思想上,又产生了一次革命,其成果就是面向对象程序设计语言的出现。,1.2 语言的发展过程及其特点,1.2.1 C语言的发展过程语言是在20世纪70年代初问世的。1978年由美国电话电报公司(AT&T)贝尔实验室正式发表了语言。后来由美国国家标准协会(American NationalStandards Institute)在此基础上制定了一个C 语言标准,于1983年发表。通常称之为ANSI C。,1.2 语言的发展过程及其特点,1.2.2 当代最优秀的程序设计语言早期的C 语言主要是用于UNIX系统。到了80年代,C开始进入其它操作系统,并很快在各类大、中、小和微型计算机上得到了
3、广泛的使用,成为当代最优秀的程序设计语言之一。,1.2.3 语言的版本,Microsoft Visual C+Borland Turbo C 或称 Turbo CBorland C+Builder,1.2 语言的发展过程及其特点,1.2.4 语言的特点,(1)语言简洁、紧凑,使用方便、灵活。32个 关键字、9种控制语句,程序形式自由。(2)运算符丰富。34种运算符。(3)数据类型丰富,具有现代语言的各种数据结构。(4)具有结构化的控制语句,是完全模块化和结构化的语言。(5)语法限制不太严格,程序设计自由度大。,1.2 语言的发展过程及其特点,(6)允许直接访问物理地址,能进行位操作,能 实现汇
4、编语言的大部分功能,可直接对硬 件进行操作。(7)目标代码质量高,程序执行效率高。只比 汇编程序生成的目标代码效率低10-20%。(8)程序可移植性好(与汇编语言比)。基本上 不做修改就能用于各种型号的计算机和各 种操作系统。,1.2 语言的发展过程及其特点,1.2.4 语言的特点,1.2.5 C语言的应用,C语言应用领域广泛,下面列举了一些C语言的应用。许多系统软件和大型应用软件都是用C语言编写的如UNIX和Linux等操作系统。(2)在软件需要对硬件进行操作的场合,用C语言明显高于其他语言。例如电脑的显卡驱动程序、打印机驱动程序等一般都是用C语言编写的。(3)在图形、图像及动画处理方面,C
5、语言具有绝对优势,游戏软件的开发主要就是用C语言。(4)在Internet中,通信程序的编制首选就是C语言。(5)C语言适用于多种操作系统,像Windows、UNIX、Linux等绝大多数操作系统都支持C语言,其他高级语言未必能得到支持,所以在某个特定操作系统下运行的软件用C语言编写是最佳选择。,1.2 语言的发展过程及其特点,1.3 认识简单的语言程序,【例1-1】最简单的一个C程序#include stdio.h/编译预处理命令,文件包含。void main()/主函数main()。每一个C源程序必须有且/只能有一个主函数。/main()函数开始。printf(I Love C Progr
6、amming!n);/*函数调用语句,printf函数的功能是把输5出的内容送到显示器去显示。*/main()函数结束。,说明:本程序的作用是输出一行信息:I Love C Programming!,1.#include/编译预处理命令,文件包含。2.void main()/main()是主函数。没有参数,没有返回值3./main()函数开始4.int a;/定义一个整型变量,供后面程序使用。说明部分5.printf(“input a not zero number:n”);/显示提示信息。执行部分开始6.scanf(“%d”,12./main()函数结束,【例1-2】带有判断条件if的C程序
7、。,【例1-3】发生函数调用的程序。1.#include/*预处理命令,文件包含*/2.void main()/*主函数*/3.4.int x,y,z;/*变量说明,定义三个整型变量x,y,z*/5.int max(int a,int b);/*自定义函数说明:有两个参数,并且返回值为整型int*/6.printf(input two numbers:n);7.scanf(%d%d,/*输出*/10.,程序运行情况如下:8,5(输入8和5赋给x和y)maxmum=8(输出z的值),int max(int a,int b)if(ab)return a;/*把结果返 回主调函数*/else ret
8、urn b;,max(int x,int y),max(x,y),1.输入和输出函数scanf和 printf这两个函数分别称为格式输入函数和格式输出函数,这两个函数在括号中的参数表都由以下两部分组成:“格式控制字符串”,参数表,1.3 认识简单的语言程序,2.源程序的结构特点1.一个语言源程序(工程)可以由一个或多个源文件组成。2.每个源文件可由一个或多个函数组成。3.一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数。4.源程序中可以有预处理命令(include 命令仅为其中的一种),预处理命令通常应放在源文件或源程序的最前面。5.每一个说明,每一个语句都必须以分号
9、结尾。但预处理命令,函数头和花括号“”之后不能加分号。6.标识符,关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可不再加空格来间隔。7.C语言程序中可加任意多的注释。通常情况下,“/”注释一行,“/*/”注释中间的所有内容。注释不参加编译,因此不进行错误查找处理。8.用户定义的变量或函数等其他的标识符必须先定义后使用。,3.书写程序时应遵循的规则,1.一个说明或一个语句占一行。2.用 括起来的部分,通常表示了程序的某一层次结构。一般与该结构语句的第一个字母对齐,并单独占一行。3.低一层次的语句或说明可比高一层次的语句或说明缩进若干格后书写。以便看起来更加清晰,增加程序的可读性。,
10、4.语言的字符集,1).字母:小写字母az共26个 大写字母AZ共26个2).数字:09共10个3).空白符:空格符、制表符、换行符等统称为空白符。4).标点和特殊字符,5.语言专用词汇,1).标识符 2).关键字 3).运算符 4).分隔符 5).常量 6).注释符,1.4Visual C+6.0集成开发环境的使用,1.4.1 Visual C+6.0简介和启动,Visual C+6.0集成开发环境,1.4Visual C+6.0集成开发环境的使用,1.4.2 利用Visual C+6.0集成开发环境建立工程,1创建工程创建基于win32Console Application,2.向已有工程
11、中添加新文件添加C/C+Header File和C+Source File,1.5 C程序开发过程,第2章,数据类型、运算符与表达式,本章重点,1 理解计算机的工作原理;2 掌握c语言数据类型的分类;3 掌握各种基本数据类型的常量说明,变量的定义、存储和引用;4 掌握简单运算符与变量或常量所构成的表达式。,主要内容,2.1 计算机的工作原理2.2 C语言的数据类型2.3 常量、变量和标识符2.4 整型数据2.5 实型数据2.6 字符型数据2.7 C语言的运算符与表达式,2.1 计算机的工作原理,2.2 C语言的数据类型,C语言提供了以下一些数据类型。,数据类型,构造类型,指针类型,空类型(无值
12、类型)void,基本类型,2.3常量、变量和标识符,2.3.1 标识符1.标识符定义:用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列 2.标识符命名规则有效字符只能由字母、数字、下划线组成,且第一个字母必须是字母或下划线。C语言的关键字不能用作变量名。(关键字见附录A)C语言严格区分英文字母大小写。例如:total、Total、TOTAL是三个不同的变量名。,3.标识符的命名习惯,习惯上,变量名和函数名中的英文字母一般用小写,常量名一般用大写字母,以区分不同意义的标识符。尽量做到“见名知义”。通常应选择能表示数据含义的英文单词或缩写作变量名,或汉语拼音字头作变量名。例
13、如:name/xm(姓名)、sex/xb(性别)、salary/gz(工资)等。不要混淆数字和相似的英文字母。如0与O、1与l。例:判断下列标识符的合法性。sum Sum day Date above student_name#33 M.D.John 3days char ab$123,2.3.2 常量和符号常量,在C语言中,常量分为直接常量和符号常量两种。直接常量(字面常量):整型常量:例如:12、0、-3;实型常量:例如:4.6、-1.23;字符常量:例如:a、b。符号常量:在语言中,可以用一个标识符来表示 一个常量,称之为符号常量。符号常量在使用之前必须先定义,其一般形式为:,#defi
14、ne 标识符 变量,【例2-1】符号常量的使用。1#include 2#define PRICE 303 void main()4 5 int num,total;6 num=10;7 total=num*PRICE;8 printf(“total=%dn”,total);9,2.3.3 变量,在程序运行期间,其值可以改变的量,称为变量。一个变量应该有一个名字;在内存中占据一定的存储单元,在存储单元里存放变量的数值。变量必须先定义后使用。定义变量的一般格式:,存储类型 数据类型 变量名1,变量名2,变量名3,变量名n;,存储类型 数据类型 变量名1=初值1,变量名2=初值2;,变量初始化的一般
15、格式:,区分变量名和变量值是两个不同的概念,2.4 整型数据,2.4.1 整型常量的表示方法(前缀)整型常量即整常数。在语言中,整常数可用以下三种形式表示:(1)十进制整数。无前缀。如:123,-456,4。(2)八进制整数。以0开头的数是八进制数(0前缀),由07数字组成。如:0123表示八进制数123,等于十进制数83,-011表示八进制数-11,即十进制数-9。(3)十六进制整数。以0 x开头的数是16进制数(0X前缀)由09和AZ的数字组成。如:0X2A(十进制为42)、0XA0(十进制为160)、0XFFFF(十进制为65535);以下各数不是合法的十六进制整常数:5A(无前缀0X)
16、、0X3H(含有非十六进制数码H)。,1.整型数据在内存中的存放形式(基于Visual C+6.0编译器)整型数据在内存中是以二进制补码形式存放的。int i;i=10;,2.4.2 整型变量,2.整型变量的分类:,共六种,有符号基本整型有符号短整型有符号长整型无符号基本整型无符号短整型无符号长整型,(signed)int(signed)short(int)(signed)long(int)unsigned intunsigned short(int)unsigned long(int),表2-1 Visual C+6.0下各类整型数的表示范围,3.整型变量的定义:变量定义的一般形式为:,类型
17、说明符 变量名标识符1,变量名标识符2,.;,例如:int a,b,c;/a,b,c为整型变量 long x,y;/x,y为长整型变量 unsigned p,q;/p,q为无符号整型变量,【例2-2】整型变量的定义与使用#include void main()int a,b,c,d;unsigned u;a=12;b=-24;u=10;c=a+u;d=b+u;printf(“a+u=%d,b+u=%dn”,c,d);,4.整型数据的溢出【例2-3】数据的溢出1#include 2 void main()3 4 short a,b;5 a=32767;6 b=a+1;7 printf(%d,%d
18、n,a,b);8,【例2-4】不同类型数据间相互赋值。#include void main()short x,y;int a,b,c,d;x=5;y=6;a=7;b=8;c=x+a;d=y+b;printf(c=x+a=%d,d=y+b=%dn,c,d);,2.5 实型数据,2.5.1 实型常量的表示方法,两种表示形式,十进制小数形式e指数形式,0.1233e-3,注意:字母e(或E)之前必须有数字,且e后面的指数必须为整数。,1e3、1.8e-3、-123e-6、-.1e-3e3、2.1e3.5、.e3、e,a E n(a为十进制数,n为十进制整数),“规范化的指数形式”,即在字母e(或E)
19、之前的小数部分中,小数点左边应有一位(且只能有一位)非零的数字。一个实数在用指数形式输出时,是按规范化的指数形式输出的。例如:指定将实数123.4567按指数形式输出,必然输出1.234567e+002。,1.实型数据在内存中的存放形式 按指数形式存储。分为小数部分(尾数)、指数部分(阶码)和符号三部分。,2.5.2 实型变量,2.实型变量的分类和定义,【例2-5】浮点型数据的舍入误差#include void main()double a,c;/改为float型判断结果 a=123456.789e5;c=a+20;printf(%fn,c);,3.实型数据的舍入误差,float,【例2-6】
20、浮点数的有效数字。#include void main()float a;double b;a=33333.33333;b=33333.33333333333333;printf(%fn%fn,a,b);,2.6 字符型数据,2.6.1 字符常量字符常量是用单引号括起来的一个字符。有两种表示形式:1.用单引号括起来一个直接输入的字符2.使用转义字符,例,a,A,1abc、“a”,有些以“”开头的特殊字符称为转义字符,【例2-7】转义字符的使用。#include void main()printf(101x36Cn);printf(abctderfn);printf(hijktLbMn);,2.
21、6.2 字符变量,char ch1,ch2;/定义两个字符型变量ch1、ch2,2.6.3 字符数据在内存中的存储形式及使用方法,每个字符变量被分配一个字节的内存空间。字符值是以其ASCII码的形式再转换为补码形式存放在变量的内存单元之中的。ch1=x;ch2=y;实际上是在ch1,ch2两个单元内存放120和121的二进制代码:,【例2-8】向字符变量赋以整数。#include void main()char ch1,ch2;ch1=120;/给字符变量赋以整数 ch2=121;/给字符变量赋以整数 printf(%c,%cn,ch1,ch2);/以字符形式输出 printf(%d,%dn,
22、ch1,ch2);/以十进制整数形式输出,【例2-9】字符变量与整数进行算术运算。#include void main()char ch1,ch2;ch1=a;ch2=b;ch1=ch1-32;ch2=ch2-32;printf(%c,%cn%d,%dn,ch1,ch2,ch1,ch2);,【例2-10】字符变量的符号,#include void main()char ch;int x;ch=80+50;x=80+50;printf(ch=%dn,ch);printf(x=%dn,x);,2.6.4 字符串常量,字符串常量是一对双引号括起来的字符序列.合法的字符串常量:“How do you
23、do.”,“CHINA”,“C program”,“$123.45”可以输出一个字符串,如printf(“How do you do.”);,是字符常量,”是字符串常量,二者不同。如:假设被指定为字符变量:char c,c=a;”a”;c”CHINA”;,字符串常量和字符常量是不同的量,区别:,1)字符常量由单引号括起来,字符串常量由双引号括起来。2)字符常量只能是单个字符,字符串常量则可以含一个或多个字符。3)可以把一个字符常量赋予一个字符变量,但不能把一个字符串常量赋予一个字符变量。在语言中没有字符串变量。但是可以用一个字符数组来存放一个字符串常量。4)字符常量占一个字节的内存空间。字符串
24、常量占的内存字节数等于字符串中字节数加1。增加的一个字节中存放字符串结束的标志字符0(ASCII码为0)。,例如:字符串 C program 在内存中所占的字节数为10,存储如图2-8所示:,2.7 语言的运算符与表达式,C语言运算符有三种类别。单目运算符:只带一个操作数的运算符。如:、等。双目运算符:带两个操作数的运算符。如:、*、/等。三目运算符:带三个操作数的运算符。如:?:条件运算符。,2.7.1 赋值运算符、赋值表达式,1.赋值运算符“”是赋值运算符,是双目运算符,作用是将一个值(常量、变量、表达式等)赋给一个变量,实际上是将特定的值写到变量所对应的内存单元中。在变量定义中赋初值的一
25、般形式为:应注意,在定义中不允许连续赋值,如int a=b=c=5是不合法的。,类型说明符 变量1=值1,变量2=值2,;,2.赋值表达式一般格式:3.赋值语句一般形式为:例如,x=8;a=b=c=5;注意:变量可以连续赋值但不可以连续初始化,变量(复合)赋值运算符 表达式,变量=表达式;,【例2-11】变量赋值#include void main()int a=3,b,c=5;/a和c进行了初始化 b=a+c;/表达式的值赋给变量b printf(a=%d,b=%d,c=%dn,a,b,c);,2.7.2 不同数据类型间的赋值规则,转换的方法有两种:一种是自动转换,一种是强制转换。1、自动转
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 作者 田丽华岳俊华孙颖馨
链接地址:https://www.31ppt.com/p-5776537.html