最基础的C语言教程.ppt
《最基础的C语言教程.ppt》由会员分享,可在线阅读,更多相关《最基础的C语言教程.ppt(202页珍藏版)》请在三一办公上搜索。
1、C语言程序设计,主讲:高照艳,2,第一章 C语言概述,主要内容:C语言的发展C语言的特点简单C程序介绍算法结构化程序设计C程序的执行过程,3,C语言出现的历史背景(1)C语言的发展源于人们希望用高级语言编写操作系统。ALGOL60(高级语言)60-CPL(剑桥大学推出 接近硬件 规模大 难实现)63-BCPL(剑桥大学 简化CPL)67-B 语言(贝尔实验室用B写了UNIX操作系统)70-C 语言(用C改写了UNIX 90%,即第5版)7273-标准C(K&R The C Programming language)78-ANSI C 83(ANSI 美国国家标准化协会)-87 ANSI C-I
2、SO C 90(ISO国际标准化组织)版本:Microsoft C、Turbo C、Borland C、Quick C(2)C语言既具有高级语言特性,又具有低级语言特性-中级语言。,1.1C语言的发展,4,1.2 C语言的特点,语言简洁,表达能力强,易于理解只有32个关键字,9种控制语句,32个关键字:(由系统定义,不能重作其它定义)auto break case char constcontinue default do double elseenum extern float for gotoif int long register returnshort signed sizeof st
3、atic structswitch typedef unsigned union voidvolatile while,5,9种控制语句:if()elsefor()while()dowhile()continuebreakswitchgotoreturn,6,运算符丰富34种运算符,运算能力强、效率高。算术运算符:+-*/%+-关系运算符:=!=逻辑运算符:!&|位运算符:|&赋值运算符:=及其扩展条件运算符:?:逗号运算符:,指针运算符:*&求字节数:sizeof强制类型转换:(类型)分量运算符:.-下标运算符:其它:()-,7,数据类型丰富,8,具有结构化的控制语句程序书写格式自由能进行位
4、操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作语言生成的代码质量高,程序执行效率高可移植性好,9,例1.1编写程序,在屏幕上打印字符串“This is a C program.n”。main()printf(This is a C program.n);,1.3简单C程序介绍,10,例1.2/*求两数之和*/main()int a,b,sum;/*定义变量*/a=123;b=456;sum=a+b;printf(“Sum is%dn”,sum);Sum is 579,11,例1.3 求两数之最大值 main()int a,b,c;scanf(”%d,%d”,12,C程序结构,C程序由
5、函数构成必须有,且只能有一个main(主函数)总是从main函数开始执行函数由函数首部和函数体组成函数首部指定函数名、函数参数、类型函数体从 开始,到 结束函数内有语句,13,C程序结构(续),语句包括说明性语句、可执行语句以;表示语句结束注释可以出现在程序的任何位置 用/*和*/括起来,必须成对出现书写格式C语言没有行的概念,书写格式自由。习惯小写字母,缩进格式。,14,1.4 程序的灵魂算法,程序包括两方面内容:1.对数据的描述。数据元素及各元素之间的关系,即数据结构。2.对操作的描述。即操作步骤,也就是算法。程序=数据结构+算法程序=数据结构+算法+程序设计方法+语言工具环境说明:高级语
6、言的数据结构是以数据类型来体现的。,15,1.4.1 算法,什么是算法为解决某一应用问题而采用的解题步骤算法的描述方式 用自然语言描述算法 用流程图描述算法 用N-S结构图描述算法用计算机语言表示算法(即实现算法),例如:输出两个数中的最大数,16,用自然语言描述算法,第一步:输入x和y的值第二步:比较x和y的值,如果x大于y,则输出x的值,否则输出y的值。,例如当描述“输出10个数中最大数”的算法时,会冗长、难于理解,17,图1.5 用流程图描述算法,用流程图描述算法,起止框,输入/输出框,判断框,处理框,流程线,18,用N-S结构图描述算法,图1.7 用N-S结构图描述的算法,19,算法的
7、特性,(1)有穷性。,(2)确定性。,(3)有效性。,(4)输入。,(5)输出。,20,1.4.2结构化程序设计,程序的三种基本结构顺序结构程序:按照书写顺序依次执行语句选择结构程序:按照条件判断选择执行语句循环结构程序:通过条件控制循环执行语句,三种基本结构的共同点:都是只有一个入口和一个出口;结构内的每一个框都有机会被执行;结构内没有死循环。,21,结构化程序设计的三种基本结构:1)顺序结构 传统流程图 N-S流程图,A,B,开始,结束,其中:A、B为操作框,可由一条或多条语句实现。,22,2)选择结构(分支结构)传统流程图 N-S流程图 入口 出口,A,B,P,T F,T F,其中:P为
8、分支判断条件;A、B必有一个且只有一个被执行;A、B之一可是空操作,用 表示。,23,3)循环结构当型循环先判断后循环,有可能一次也不循环。入口 F T,P,A,当P为真 A,出口,其中:P为循环判断条件;A为要重复执行的操作,称为循环体;,24,直到型循环先循环后判断,至少循环一次。入口 F T,P,A,A直到P为真,出口,其中:P为循环判断条件;A为要重复执行的操作,称为循环体;,25,算法举例例:计算5!(12345),当型循环 直到型循环,26,结构化程序设计的基本原则:,结构化程序设计的基本原则:采用自顶向下、逐步细化的方法进行设计;采用模块化原则和方法进行设计。即将大型任务从上向下
9、划分为多个功能模块,每个模块又可以划分为若干子模块,然后分别进行模块程序的编写;每个模块都是用结构化程序实现,即都只能由三种基本结构组成,并通过计算机语言的结构化语句实现。,27,1.5 C语言的上机操作步骤,一.上机过程:,编译,正确,正确,正确,有错误,有错误,编辑,运行,28,C程序的执行过程,1源程序文件的建立和编辑 编写源程序,形成.C文件需用编辑工具:tc.exe、记事本2编译 编译源程序,形成目标程序.Obj文件需用编译工具:tcc.exe3连接 连接OBJ文件和调用的库函数,形成运行程序.exe 文件需用连接工具:tlink.exe4运行.exe 文件,29,2.上机过程流程图
10、:,30,3.编写、运行C程序时常用功能键,31,三、需要记住的TC中一些常用功能键,F1:帮助。F2:将当前文件存盘。F3:装载原有文件或给新文件命名。F4:程序运行到光标所在行。F5:放大或缩小活动窗口切换。F6:开或关活动窗口切换。F7:单步运行程序,跟踪进入函数内部运行。F8:单步运行程序,不跟踪进入函数内部。,32,实验报告,实验一实验目的实验内容和步骤1.设计算法,写出程序2.在TurboC下编辑,得到源程序(.c)3.编译,得到目标文件(.obj)4.连接,得到可执行文件(.exe)5.分析结果实验体会,C程序设计数据类型、运算符与表达式,34,2.1 数据类型2.2 常量与变量
11、2.3 整型数据2.4 实型数据2.5 字符型数据2.6 变量赋初值2.7 混合运算2.8 运算符与表达式,数据类型、运算符与表达式 CHAPTER 2,35,数据类型、运算符与表达式 的数据类型,C语言提供的数据结构是以数据类型形式出现的数据在内存中存放的情况有数据类型决定 数据的操作要依靠运算符实现,而数据和运算符共同组成了表达式。,36,数据类型、运算符与表达式 的数据类型,37,3.2常量与变量,3.2.1常量和符号常量常量:在运行过程中,其值不能被改变的量称为常量。分类:整型实型字符字符串符号常量,用一个标识符代表的常量。习惯上,符号常量名用大写,变量用小写,以示区别。1,0,123
12、为整型常量 4.6,1.23为实型常量 a,d 为字符常量#define PRICE 255 A=PRICE*A+6 C=PRICE+C/120PRICE是标识符,符号常量,38,3.2.2 变 量变量:在程序运行过程中,其值可以改变的量称为变量。标识符:用来标识变量名、符号常量名、函数名、类型名、数组名、文件名的有效字符序列称为标识符。由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。合法的变量名如:average,abd,a,s2,student_name,_init不合法的变量名:M.D.John,1a,#33,ab3.C 语言要求对变量“先定义,后使用”。,39,3.3
13、 整型数据,3.3.1 整型常量由一系列数字组成。也可带有减号,但不使用加号。十进制整数:123,-456,0八进制整数:以0开头的数据,如:-011,0123十六进制整数:以0 x开头的数据,如:0 x123 整型常量的分类根据其值的范围而决定其类型,并可以赋值给类型相匹配的整型变量。,40,3.3.2 整型变量,1.整数数据在内存中的存放形式 数据在内存中是以二进制形式存放的。例如:3(0000000000000011)2要区别:3 和 3 方法是:将符号也数码化即:正的符号 用 0 表示 负的符号 用 1 表示 数值是以补码表示的。正数的补码和其原码的形式相同。负数的补码:将该数的绝对值
14、的二进制形式,按位取反再加1。3()2,41,2.整型变量的分类 整型 int 在内存中以二进制形式存放,每一个整型变量在内存中占2个字节。短整型 以short int表示或以short表示,一般与int占有的内存相同。长整形以long int表示或以long表示,一般占有在内存中字节为int两倍。无符号型只能存放正整数,它的表示是在上述三种类型之前加上unsigned,42,3.整型变量的定义对变量的定义一般放在函数的开头部分。例2.1main()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”
15、,c,d);,a+u=22,b+u=14,不同类型的数可以直接运算,43,4.整型数据的溢出main()int a,b;a=32767;b=a+1;printf(“%d,%d”,a,b);运行结果为 32767,-327683.3.3 整型常量的类型 一个整常量,其值在-215215-1内可认为是 int 型,并可赋值给 int 型和 long int 型变量;一个整常量,其值在 231 231-1 范围内则认为它是 long int 型,可赋值给一个 long int 型变量;常量中无 unsigned 型,但一个非负值的整常量可以赋给 unsigned 型整变量;,44,3.4 实型数据,
16、3.4.1 实型常量1.十进制小数形式(日常记数形式)1.0+12.0-12.0 0.02.指数形式(科学记数形式)E(e)。例如3.0+5等。3.4.2 实型变量1类型:单精度:float,分配4 Byte双精度:double,分配 8 Byte2存储:,45,实型数据的类型及规定,实型常量不分float和double,根据范围赋值给相应的变量。如:float a;double b;a=111111.111;b=111111.111a中实际存储的是111111.1(7位有效)b中实际存储的是111111.111(全部有效),46,3.5 字符型数据,3.5.1字符常量1.定义用一对单引号括起
17、来的单个字符,称为字符常量。例如,A、等。2.转义字符语言还允许使用一种特殊形式的字符常量,就是以反斜杠“”开头的字符序列。,47,3.5.2 字符型变量 字符变量的类型关键字为char,一般占用1字节内存单元。1.变量值的存储 将一个字符常量存储到一个字符变量中,实际上是将该字符的ASCII码值(无符号整数)存储到内存单元中。例如:char ch1,ch2;/*定义两个字符变量:ch1,ch2*/ch1=a;ch2=b;/*给字符变量赋值*/a、b的ASCII码为97、98。2.特性 1)字符数据在内存中存储的是字符的ASCII码;2)语言允许字符型数据与整型数据之间通用,可以互相赋值。3)
18、字符数据也可以整数形式输出。,48,例1 字符变量的字符形式输出和整数形式输出。main()char c1,c2;c1=a;c2=b;printf(“c1=%c,c2=%cn”,c1,c2);printf(“c1=%d,c2=%dn”,c1,c2);程序运行结果:c1=a,c2=b c1=97,c2=98,49,例2 大小写字母的转换。main()char c1,c2;c1=a;c2=b;c1=c1-32;c2=c2-32;printf(“%c c2=%cn”,c1,c2);程序运行结果:A B,50,数据类型、运算符与表达式 字符型数据,3.5.3 字符串常量用双引号括起来的字符序列。如:“
19、How do you do”,“CHINA”,“a”,“$123.34”等。字符串可以一次输出。如:printf(“How do you do”);C语言规定:在存储字符串常量时,由系统在字符串的末尾自动加一个0作为字符串的结束标志。在内存中,对字符串常量是采用字符数组表示,即用一个字符型数组来存放一个字符串。注意:a是字符常量,“a”是字符串常量,二者不同。,51,综上所述,字符常量A与字符串常量A是两回事:(1)定界符不同:字符常量使用单引号,而字符串常量使用双引号;(2)长度不同:字符常量的长度固定为1,而字符串常量的长度,可以是某个整数;(3)存储要求不同:字符常量存储的是字符的ASC
20、II码值,而字符串常量,除了要存储有效的字符外,还要存储一个结束标志0。,52,3.6 变量赋初值,在变量定义的同时可以为变量赋初值。如:int a=3;(相当于 int a;a=3;)float f=3.56;char c=a;int a,b,c=5;表示只给c赋初值。(相当于int a,b,c;c=5;),53,3.7 各类数值型数据间的混合运算不同类型的数据(整型、实型、字符型)可进行混合运算。如:10+a+1.5 8765.1234*b 必须首先将它们转换成同一类型的数值。转换原则是由低向高转换,运算结果为最高级别的类型。,54,数据类型、运算符与表达式 混合运算,55,例2-5:已知
21、:float a=2.0;int b=6,c=3;求解:a*b/c-1.5+A+abs(-5)=?,12.0/3,4.0-1.5,2.5,+65(int),67.5,5,72.5,56,3.8 算术运算符和算术表达式1.基本的算术运算:、*、%是模运算,即求余运算,要求整数。如:7%4的结果是3。说明:5/3的结果仍是整数,小数部分被忽略。5.3/3或5/3.0的结果为double型。C编译系统将实型常量作为双精度来处理。如果参加、*、/运算的两个数中有一个数为实数,则结果是double型。2.算术表达式:用算术运算符将运算对象按C的语法规则连接起的式子。例如:a*b/c1.5+a优先级(算术
22、运算):()*/%+在同一级别中,采取由左至右的结合方向。如:a-b+c 相当于(a-b)+c,57,3.强制类型转换运算符可将一个表达式转换成所需类型。其一般形式为:(类型名)(表达式)例如:(double)a(int)(x+y)(float)(5%3)在强制类型转换时,得到一个所需类型的中间变量,原来变量的类型未发生变化。,58,练习,main()int i;float x;x=3.6;i=(int)x;printf(x=%f,i=%dn,x,i);,59,数据类型、运算符与表达式 运算符和表达式,4.自增、自减运算符使变量的值加1或减1。如:i,i 在使用i之前,先使i的值加(减)1 i
23、,i 在使用i之后,再使i的值加(减)1例如:i的值为3,则 j=+i;j的值为4,i的值为4 j=i+;j的值为3,i的值为4又如:printf(“%d”,+i);输出结果为4 printf(“%d”,i+);输出结果为3单独使用时,i,i 等价,60,结合性:,自右向左,例:,i=2;j=-i+;,分析:(1)+、-、+、-是同级运算符,结合方向:自右向左。,(2)-i+等价于-(i+),(3)对于括号内的自增运算,要先使用i,再使i增加1。,运算结果:i的值为3,j的值为-2。,61,练习,a=1,b=2,c=3,d=4下列式子的值分别是多少?a*b/ca*b%c+1+a*b-c-,62
24、,3.9 赋值运算符和赋值表达式1.赋值运算符:“=”。2.复合赋值运算:在赋值符号前加上其它运算符号。+=,-=,*=,/=,%=,=,,赋值运算符仅优先于“,”,且具有右结合性例如:a=b=b*c 等价于:a=(b=(b*c)赋值号与数学中的等号含义不同例如:数学中 a=b 等价于 b=a C语言中 a=b 不等价于 b=a,63,3.赋值运算中的类型转换,=小数部分自动补0=自动舍去实型表达式的小数部分(注意不进行四舍五入)=自动截取表达式值的低字节赋值,舍去高字节=自动给高字节补0 或补1,64,数据类型、运算符与表达式 运算符和表达式,4.赋值表达式:由赋值运算符将一个变量和一个表达
25、式连接起来的式子。一般形式为:例如:int a=12;求下列运算的结果,aaa*a,aaa*a=12-12*12=-132),a-132,aa(-132)=(-132)+(-132)=-264,a=-264,65,练习,int i=1,j=2,k=3,m=4;计算下列式子的值i+=j+kj*=k=m+5,66,数据类型、运算符与表达式 运算符和表达式,3.10 逗号运算符和逗号表达式逗号运算符又称为“顺序求值运算符”,是所有运算符中级别最低的,它将两个表达式连接起来。一般形式为:表达式1,表达式2求解过程是:先求解表达式1,再求解表达式2,整个逗号表达式的值是表达式2的值。例如:a=3*5,a
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基础 语言 教程
链接地址:https://www.31ppt.com/p-5750322.html