c语言基础入门.ppt

上传人:wuy****n92 文档编号:70735666 上传时间:2023-01-27 格式:PPT 页数:33 大小:389KB
返回 下载 相关 举报
c语言基础入门.ppt_第1页
第1页 / 共33页
c语言基础入门.ppt_第2页
第2页 / 共33页
点击查看更多>>
资源描述

《c语言基础入门.ppt》由会员分享,可在线阅读,更多相关《c语言基础入门.ppt(33页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、课程性质和教学目标课程性质和教学目标l本课程是电子信息学院各专业的一门必修课。l通过本课程的学习,期望达到如下目标:掌握C语言基本编程及应用 掌握5 1系列单片机的基本原理及简单开发 理解C语言与单片机在传感与控制系统中的作用 初步形成嵌入式系统设计与开发的基本能力课程用书课程用书l单片机C语言教程lC程序设计谭浩强建议课程参考书建议课程参考书课程介绍课程介绍l1.课程特点 综合性强、实践性强课程介绍课程介绍l2.课程内容C语语言言单单片片机机课程介绍课程介绍l2.课程内容C语言编译软件语言编译软件TC编编译译环环境境WINTC编编译译环环境境VC编编译译环环境境Keil C51编编译译环环境

2、境单片机单片机C语言编语言编程环境程环境 课程介绍课程介绍l2.课程内容外围器件单片机单片机AT89S52外外围围电电路路传感器显示器件信号调理电路接口器件嵌嵌入入式式系系统统Proteus单片机仿真软件单片机仿真软件C语言的发展语言的发展l语言是在语言是在 20世纪世纪70 年代初问世的。一九七八年由美国年代初问世的。一九七八年由美国电话电报公司电话电报公司(AT&T)贝尔实验室正式发表了语言,贝尔实验室正式发表了语言,研制研制C语言的初衷是为了用它编写语言的初衷是为了用它编写Unix 系统软件。系统软件。l同时由和(合称同时由和(合称D&R)合著了著名的)合著了著名的The C Progr

3、amming Language一书,在该书中并没有定义一书,在该书中并没有定义一个完整的标准一个完整的标准C 语言,后来由美国国家标准协会语言,后来由美国国家标准协会(American National Standards Institute)在此基础上)在此基础上制定了一个制定了一个C 语言标准,于一九八三年发表,通常称之为语言标准,于一九八三年发表,通常称之为ANSI C。C语言的发展语言的发展l K&R在在1988年修改了他们的经典著作年修改了他们的经典著作The C Programming Language,按照,按照ANSI C标准重写了标准重写了该书。该书。1987年,年,ANSI

4、又公布了新标准又公布了新标准87 ANSI C。1990年,国际标准化组织年,国际标准化组织ISO接受接受87 ANSI C为为ISO C的标准(的标准(ISO 98991990)。)。目前流行的目前流行的C编译系统都是以它为基础的。编译系统都是以它为基础的。C语言的特点语言的特点(1 1)语言简洁、紧凑,使用方便、灵活。)语言简洁、紧凑,使用方便、灵活。(2)C语言运算符丰富,共有语言运算符丰富,共有14种运算符。种运算符。(3)C语言的数据结构也比较丰富,具有现代计算机语言语言的数据结构也比较丰富,具有现代计算机语言的各种数据结构。的各种数据结构。(4)具有结构化的流程控制语句,如选择语句

5、、循环语)具有结构化的流程控制语句,如选择语句、循环语句等。句等。(5)流程控制和数据操作灵活多样,程序设计有较大的)流程控制和数据操作灵活多样,程序设计有较大的自由度。自由度。(6)C语言允许直接访问物理地址,能进行位运算,能实语言允许直接访问物理地址,能进行位运算,能实现汇编语言的大部分功能,可以直接对硬件进行操作。现汇编语言的大部分功能,可以直接对硬件进行操作。(7)用)用C语言编写的程序可移植性好。语言编写的程序可移植性好。(8)用)用C语言写的程序可移植性好(与汇编语言比)。语言写的程序可移植性好(与汇编语言比)。为什么要学习为什么要学习C语言语言l1.很多其他的语言是基于很多其他的

6、语言是基于C语言的,学习语言的,学习C,你可以更加容易的,你可以更加容易的学习很多其他的语言;学习很多其他的语言;l2.让你有能力去改写其他人写的复杂程序为你所用;让你有能力去改写其他人写的复杂程序为你所用;l3.极大地提高你的计算机应用水平;极大地提高你的计算机应用水平;l4.作为工程师,我们会发现越来越多的硬件可以用作为工程师,我们会发现越来越多的硬件可以用C 语言进行语言进行配置。配置。简单的简单的C语言程序语言程序l/*program writes the words Hello,world to the screenl*File:Hello.cl*By:NJCITl*Date:07-

7、03-09l*/l#include lmain()llprintf(Hello,worldn);lreturn(0);l 注释头文件主函数函数体注:注:每个每个C语言程序有且语言程序有且仅有一个仅有一个main函数函数 简单的简单的C语言程序语言程序lmain()/*主函数主函数*/l int a,b,c;/*定义变量定义变量*/l scanf(“%d,d”,&a,&b);/*输入变量输入变量a和和b的值的值*/l c=max(a,b);/*调用调用max函数,将得到的值赋给函数,将得到的值赋给c*/l printf(“max=%d”,c);/*输出输出c的值的值*/int max(x,y)/

8、*定义定义max函数函数*/int x,y;/*对形参对形参x、y做类型定义做类型定义*/int z;/*max函数中用到的变量函数中用到的变量z,也要加以定义,也要加以定义*/if(xy)z=x;else z=y;return(z);、/*将将z的值返回,通过的值返回,通过max带回调用处带回调用处*/编辑链接编译执行 C程序的上机步骤C程序开发步骤file.exe程序代码的录入,生成源程序*.c语法分析查错,翻译生成目标程序*.obj与其它目标程序或库链接装配,生成可执行程序*.exe几个问题几个问题l1.一个一个C源程序包含几个源程序包含几个main()函数?函数?l2.一个函数由几部分

9、组成?一个函数由几部分组成?l3.一个一个C程序从哪个函数开始执行,在哪里结束?程序从哪个函数开始执行,在哪里结束?l4.在一个在一个C程序中在程序中在”/*.*/”之间的内容是否进行编译之间的内容是否进行编译并运行?并运行?”/*/”起什么作用?起什么作用?l5.在一个在一个C程序开始有时会有程序开始有时会有“include *.h”这个语句,这个语句,它是什么意思?它是什么意思?总结总结l1.C程序是由函数构成的程序是由函数构成的。l一个一个C源程序至少包含一个函数(源程序至少包含一个函数(main函数),也可以包含一函数),也可以包含一个个main和若干其它函数。因此,和若干其它函数。因

10、此,函数函数是是C程序的基本单位。程序的基本单位。l2.一个函数由两部分组成一个函数由两部分组成l(1)函数的)函数的说明部分说明部分l包含函数名、函数类型、函数属性、函数参数名、形式参数名包含函数名、函数类型、函数属性、函数参数名、形式参数名l(2)函数体函数体l即函数说明部分下面的大括弧即函数说明部分下面的大括弧内的部分。内的部分。l 函数体内一般包括:变量定义、执行部分。函数体内一般包括:变量定义、执行部分。总结总结l3.一个一个C程序程序总是从总是从main函数开始执行函数开始执行,而不论,而不论main函数函数在整个程序中位置,在整个程序中位置,最后在最后在main中结束中结束。l4

11、.每个语句和数据定义的每个语句和数据定义的最后必须有一个分号最后必须有一个分号。l5.C语言语言本身没有输入输出语句本身没有输入输出语句,输入、输出操作是利用,输入、输出操作是利用库函数库函数scanf()和和printf()完成。完成。l6.可以用可以用/*.*/作注释作注释。总结:总结:格式特点格式特点l习惯用习惯用小写小写字母,大小写敏感字母,大小写敏感l不使用行号,不使用行号,无程序行无程序行概念概念l可使用空行和空格可使用空行和空格l常用常用锯齿形锯齿形书写格式书写格式l优秀程序员的素质之一优秀程序员的素质之一:l使用使用TAB缩进缩进l对齐对齐l有足够的注释有足够的注释l有合适的空

12、行有合适的空行C语言中的关键字语言中的关键字l32个关键字:(由系统定义,不能重作其它定义由系统定义,不能重作其它定义)lauto break case char constlcontinue default do double elselenum extern float for gotolif int long register returnlshort signed sizeof static structlswitch typedef unsigned union voidlvolatile whileC语言的要素语言的要素l1.C的数据类型l一个程序应包括两个方面的内容:l (1)数

13、据的描述;l (2)算法:操作步骤,即动作的描述;l数据是操作的对象,操作的结果会改变数据的状况。l数据结构算法程序C语言数据类型语言数据类型C数据类型基本类型构造类型指针类型空类型void定义类型typedef数值类型字符类型char枚举类型enum整 型浮点型单精度型float双精度型double短整型short长整型long整型int数组结构体struct共用体union基本数据类型类型符号关键字数的表示范围所占位数整型字符型实型有无(signed)int16-3276832767(signed)short16-3276832767(signed)long32-2147483648214

14、748364716unsigned int0655353204294967295unsigned longunsigned short16065535有float323.4e-383.4e38有double641.7e-3081.7e308有char8-128127无unsigned char80255说明:数据类型所占字节数随机器硬件不同而不同,上表以IBM PC机为例:一般用大写字母是宏定义预处理命令,不是C语句直接常量:整型常量 实型常量 字符常量 字符串常量如#define PRICE 30常量l定义:程序运行时其值不能改变的量(即常数)l分类:符号常量:用标识符代表常量定义格式:#d

15、efine 符号常量 常量例 符号常量举例(ch2_1.c)#define PRICE 30main()int num,total;num=10;total=num*PRICE;printf(total=%d,total);运行结果:运行结果:total=300&整型常量(整常数)l三种形式:十进制整数:由数字09和正负号表示.如 123,-456,0八进制整数:由数字0开头,后跟数字07表示.如0123,011十六进制整数:由0 x开头,后跟09,af,AF表示.如0 x123,0Xff例 12 与 12L例 30000 为int型 65536 为long int 型l整型常量的类型根据其值

16、所在范围确定其数据类型在整常量后加字母l或L,认为它是long int 型常量问题:0123 =()100 x123=()100Xff =()1083291255问题:0123 =()100 x123=()100Xff =()10&实型常量(实数或浮点数)实型常量(实数或浮点数)l表示形式:表示形式:十进制数形式:(十进制数形式:(必须有小数点必须有小数点)如如0.123,.123,0.123,.123,123.0,0.0,123.123.0,0.0,123.指数形式:(指数形式:(e e或或E E之前必须有数字;指数必须为整数之前必须有数字;指数必须为整数)如如12.312.3e3,123E

17、2,1.23e4,e3,123E2,1.23e4,e-5e-5 ,l实型常量的类型实型常量的类型默认默认doubledouble型型在在实型常量后加字母实型常量后加字母f f或或F F,认为它是认为它是float float 型型aaa25&字符常量字符常量l定义定义:用用单引号单引号括起来的括起来的单个普通字符单个普通字符或或转义字符转义字符.l字符常量的字符常量的值值:该字符的:该字符的ASCIIASCII码码值值转义字符及其含义:转义字符含义nvradddtbf“xhh转义字符含义换行垂直制表回车响铃单引号3位8进制数代表的字符水平制表退格换页反斜线双引号2位16进制数代表的字符如 10

18、1 -A 012 -n 376 -x61 -a 60 -0 483 -()例:A-101-x41-65如 A65,a97,048,n10如 a A?n 101l转义字符转义字符:反斜线后面跟一个字符或一个代码值表示反斜线后面跟一个字符或一个代码值表示l字符常量与字符串常量不同&字符串常量字符串常量l定义:用定义:用双引号双引号(“”)括括起来的字符序列起来的字符序列l存储:存储:每个字符串尾每个字符串尾自动自动加一个加一个 00 作为字符作为字符串结束标志串结束标志h e l l o 0例 字符串“hello”在内存中a a 0例 a“a”例 空串 “”0例:char ch;ch=“A”;例:

19、char ch;ch=A;编译程序根据变量定义为其分配指定字节的内存单元.地址int a=1,b=-3,c;abc2字节2字节2字节地址地址.内存1-3随机数l变量l概念:其值可以改变的量l变量名与变量值l变量定义的一般格式:数据类型 变量1,变量2,变量n;l变量初始化:定义时赋初值 例:int a,b,c;float data;决定分配字节数和数的表示范围合法标识符l变量的使用:先定义,后使用例1 int student;stadent=19;/Undefined symbol statent in function main l变量定义位置:一般放在函数开头l在书写变量说明时,应注意以下

20、几点:在书写变量说明时,应注意以下几点:1.允许在一个类型说明符后,说明多个相同类型的变量。允许在一个类型说明符后,说明多个相同类型的变量。各变量名之间用逗号间隔。类型说明符与变量名之间至少各变量名之间用逗号间隔。类型说明符与变量名之间至少用一个空格间隔。用一个空格间隔。2.最后一个变量名之后必须以最后一个变量名之后必须以“;”号结尾。号结尾。3.变量说明必须放在变量使用之前。一般放在函数体的开变量说明必须放在变量使用之前。一般放在函数体的开头部分。头部分。main()int a,b=2;a=1;float data;data=(a+b)*1.2;printf(“data=%fn”,data)

21、;main()int a,b=2;float data;a=1;data=(a+b)*1.2;printf(“data=%fn”,data);变量定义可执行语句例:int a=2,b,c=4;float data=3.67;char ch=A;int x=1,y=1,z=1;int x=y=z=1;l 常量与变量常量与变量l标识符标识符l定义:用来标识变量名、符号常量名、函数名、类型名等的定义:用来标识变量名、符号常量名、函数名、类型名等的字符序列字符序列l组成:组成:只能由只能由字母字母、数字数字、下划线下划线组成,且第一个字母必须是字母或下划组成,且第一个字母必须是字母或下划线线大小写敏感

22、大小写敏感不能使用关键字不能使用关键字l长度:最长长度:最长32个字符个字符l命名原则:命名原则:见名知意见名知意不宜混淆不宜混淆 如如l与与I,o与与0例:判断下列标识符号合法性sum Sum M.D.John day Date 3days student_name#33 lotus_1_2_3 char ab _above$1233days#33char$123ab&整型变量l占字节数随机器不同而不同,一般占一个机器字lshortintlongl可用sizeof(类型标识符)测量&实型变量lfloat:占4字节,提供7位有效数字ldouble:占8字节,提供1516位有效数字&字符型变量l

23、字符变量存放字符ASCII码lchar与int数据间可进行算术运算例 float a;a=123456.789;/*a=123456.7*/double b;b=123456.789;/*b=123456.789*/例 a=D;/*a=68;*/x=A+5;/*x=65+5;*/s=!+G /*s=33+71;*/没有字符串变量,用字符数组存放31l2.3不同类型数据间的转换不同类型数据间的转换l隐式转换隐式转换l什么情况下发生什么情况下发生运算转换运算转换-不同类型数据混合运算时不同类型数据混合运算时赋值转换赋值转换-把一个值赋给与其类型不同的变量时把一个值赋给与其类型不同的变量时输出转换输

24、出转换-输出时转换成指定的输出格式输出时转换成指定的输出格式函数调用转换函数调用转换-实参与形参类型不一致时转换实参与形参类型不一致时转换l运算转换规则运算转换规则:不同类型数据运算时先不同类型数据运算时先自动自动转换成同转换成同一类型一类型32doublefloatlongunsignedintchar,short低高说明:必定的转换运算对象类型不同时转换例 char ch;int i;float f;double d;ch/i +f*d -(f+i)intintdoubledoubledoubledoubledoubledoubleintintdoubledoubledoubledoubl

25、edoubledouble10+a +i*f -d/l例 int i;float f;double d;long l;33l显式转换(强制转换)显式转换(强制转换)l一般形式:一般形式:(类型名类型名)(表达式)表达式)例例 (int)(x+y)(int)(x+y)(int)x+y (int)x+y (double)(3/2)(double)(3/2)(int)3.6 (int)3.6 l说明:强制转换得到所需类型的中间变量,原变量说明:强制转换得到所需类型的中间变量,原变量类型不变类型不变 例 main()float x;int i;x=3.6;i=(int)x;printf(“x=%f,i=%d”,x,i);结果:x=3.600000,i=3精度损失问题较高类型向较低类型转换时可能发生Ch2_007.cCh2_008.c

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com