第一讲c语言基础入门

上传人:豆**** 文档编号:240716459 上传时间:2024-05-02 格式:PPT 页数:34 大小:680.50KB
返回 下载 相关 举报
第一讲c语言基础入门_第1页
第1页 / 共34页
第一讲c语言基础入门_第2页
第2页 / 共34页
第一讲c语言基础入门_第3页
第3页 / 共34页
点击查看更多>>
资源描述
第一讲第一讲c c语言基础入门语言基础入门课程用书课程用书l单片机C语言教程lC程序设计谭浩强建议课程参考书建议课程参考书课程介绍课程介绍l1.课程特点 综合性强、实践性强课程介绍课程介绍l2.课程内容C语语言言单单片片机机课程介绍课程介绍l2.课程内容C语言编译软件语言编译软件TC编编译译环环境境WINTC编编译译环环境境VC编编译译环环境境KeilC51编编译译环环境境单片机单片机C语言编语言编程环境程环境 课程介绍课程介绍l2.课程内容外围器件单片机单片机AT89S52外外围围电电路路传感器显示器件信号调理电路接口器件嵌嵌入入式式系系统统Proteus单片机仿真软件单片机仿真软件C语言的发展语言的发展l语言是在语言是在20世纪世纪70年代初问世的。一九七八年由美国年代初问世的。一九七八年由美国电话电报公司电话电报公司(AT&T)贝尔实验室正式发表了语言,贝尔实验室正式发表了语言,研制研制C语言的初衷是为了用它编写语言的初衷是为了用它编写Unix系统软件。系统软件。l同时由同时由B.W.Kernighan和和D.M.Ritchit(合称(合称D&R)合著)合著了著名的了著名的TheCProgrammingLanguage一书,在一书,在该书中并没有定义一个完整的标准该书中并没有定义一个完整的标准C语言,后来由美国国语言,后来由美国国家标准协会(家标准协会(AmericanNationalStandardsInstitute)在此基础上制定了一个在此基础上制定了一个C语言标准,于一九八三年发表,语言标准,于一九八三年发表,通常称之为通常称之为ANSIC。C语言的发展语言的发展lK&R在在1988年修改了他们的经典著作年修改了他们的经典著作TheCProgrammingLanguage,按照,按照ANSIC标准重写了标准重写了该书。该书。1987年,年,ANSI又公布了新标准又公布了新标准87ANSIC。1990年,国际标准化组织年,国际标准化组织ISO接受接受87ANSIC为为ISOC的标准(的标准(ISO98991990)。)。目前流行的目前流行的C编译系统都是以它为基础的。编译系统都是以它为基础的。C语言的特点语言的特点(1 1)语言简洁、紧凑,使用方便、灵活。)语言简洁、紧凑,使用方便、灵活。(2)C语言运算符丰富,共有语言运算符丰富,共有14种运算符。种运算符。(3)C语言的数据结构也比较丰富,具有现代计算机语言语言的数据结构也比较丰富,具有现代计算机语言的各种数据结构。的各种数据结构。(4)具有结构化的流程控制语句,如选择语句、循环语)具有结构化的流程控制语句,如选择语句、循环语句等。句等。(5)流程控制和数据操作灵活多样,程序设计有较大的)流程控制和数据操作灵活多样,程序设计有较大的自由度。自由度。(6)C语言允许直接访问物理地址,能进行位运算,能实语言允许直接访问物理地址,能进行位运算,能实现汇编语言的大部分功能,可以直接对硬件进行操作。现汇编语言的大部分功能,可以直接对硬件进行操作。(7)用)用C语言编写的程序可移植性好。语言编写的程序可移植性好。(8)用)用C语言写的程序可移植性好(与汇编语言比)。语言写的程序可移植性好(与汇编语言比)。为什么要学习为什么要学习C语言语言l1.很多其他的语言是基于很多其他的语言是基于C语言的,学习语言的,学习C,你可以更加容易的,你可以更加容易的学习很多其他的语言;学习很多其他的语言;l2.让你有能力去改写其他人写的复杂程序为你所用;让你有能力去改写其他人写的复杂程序为你所用;l3.极大地提高你的计算机应用水平;极大地提高你的计算机应用水平;l4.作为工程师,我们会发现越来越多的硬件可以用作为工程师,我们会发现越来越多的硬件可以用C语言进行语言进行配置。配置。简单的简单的C语言程序语言程序l/*program writes the words Hello,world to the screenl*File:Hello.cl*By:NJCITl*Date:07-03-09l*/l#include lmain()llprintf(Hello,worldn);lreturn(0);l 注释头文件主函数函数体注:注:每个每个C语言程序有且语言程序有且仅有一个仅有一个main函数函数简单的简单的C语言程序语言程序lmain()/*主函数主函数*/linta,b,c;/*定义变量定义变量*/lscanf(“%d,d”,&a,&b);/*输入变量输入变量a和和b的值的值*/lc=max(a,b);/*调用调用max函数,将得到的值赋给函数,将得到的值赋给c*/lprintf(“max=%d”,c);/*输出输出c的值的值*/intmax(x,y)/*定义定义max函数函数*/intx,y;/*对形参对形参x、y做类型定义做类型定义*/intz;/*max函数中用到的变量函数中用到的变量z,也要加以定义,也要加以定义*/if(xy)z=x;elsez=y;return(z);、/*将将z的值返回,通过的值返回,通过max带回调用处带回调用处*/编辑链接编译执行 C程序的上机步骤C程序开发步骤file.exe程序代码的录入,生成源程序*.c语法分析查错,翻译生成目标程序*.obj与其它目标程序或库链接装配,生成可执行程序*.exe几个问题几个问题l1.一个一个C源程序包含几个源程序包含几个main()函数?函数?l2.一个函数由几部分组成?一个函数由几部分组成?l3.一个一个C程序从哪个函数开始执行,在哪里结束?程序从哪个函数开始执行,在哪里结束?l4.在一个在一个C程序中在程序中在”/*.*/”之间的内容是否进行编译之间的内容是否进行编译并运行?并运行?”/*/”起什么作用?起什么作用?l5.在一个在一个C程序开始有时会有程序开始有时会有“include*.h”这个语句,这个语句,它是什么意思?它是什么意思?总结总结l1.C程序是由函数构成的程序是由函数构成的。l一个一个C源程序至少包含一个函数(源程序至少包含一个函数(main函数),也可以包含一函数),也可以包含一个个main和若干其它函数。因此,和若干其它函数。因此,函数函数是是C程序的基本单位。程序的基本单位。l2.一个函数由两部分组成一个函数由两部分组成l(1)函数的)函数的说明部分说明部分l包含函数名、函数类型、函数属性、函数参数名、形式参数名包含函数名、函数类型、函数属性、函数参数名、形式参数名l(2)函数体函数体l即函数说明部分下面的大括弧即函数说明部分下面的大括弧内的部分。内的部分。l函数体内一般包括:变量定义、执行部分。函数体内一般包括:变量定义、执行部分。总结总结l3.一个一个C程序程序总是从总是从main函数开始执行函数开始执行,而不论,而不论main函数函数在整个程序中位置,在整个程序中位置,最后在最后在main中结束中结束。l4.每个语句和数据定义的每个语句和数据定义的最后必须有一个分号最后必须有一个分号。l5.C语言语言本身没有输入输出语句本身没有输入输出语句,输入、输出操作是利用,输入、输出操作是利用库函数库函数scanf()和和printf()完成。完成。l6.可以用可以用/*.*/作注释作注释。总结:总结:格式特点格式特点l习惯用习惯用小写小写字母,大小写敏感字母,大小写敏感l不使用行号,不使用行号,无程序行无程序行概念概念l可使用空行和空格可使用空行和空格l常用常用锯齿形锯齿形书写格式书写格式l优秀程序员的素质之一优秀程序员的素质之一:l使用使用TAB缩进缩进l对齐对齐l有足够的注释有足够的注释l有合适的空行有合适的空行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)数据的描述;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-2147483648214748364716unsigned int0655353204294967295unsigned longunsigned short16065535有float323.4e-383.4e38有double641.7e-3081.7e308有char8-128127无unsigned char80255说明:数据类型所占字节数随机器硬件不同而不同,上表以IBM PC机为例:一般用大写字母是宏定义预处理命令,不是C语句直接常量:整型常量 实型常量 字符常量 字符串常量如#define PRICE 30常量l定义:程序运行时其值不能改变的量(即常数)l分类:符号常量:用标识符代表常量定义格式:#define 符号常量 常量例 符号常量举例(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整型常量的类型根据其值所在范围确定其数据类型在整常量后加字母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,123E2,1.23e4,e3,123E2,1.23e4,e-5e-5 ,1.2E-3.51.2E-3.5 l实型常量的类型实型常量的类型默认默认doubledouble型型在在实型常量后加字母实型常量后加字母f f或或F F,认为它是认为它是float float 型型&字符常量字符常量l定义定义:用用单引号单引号括起来的括起来的单个普通字符单个普通字符或或转义字符转义字符.l字符常量的字符常量的值值:该字符的:该字符的ASCIIASCII码码值值转义字符及其含义:转义字符含义nvradddtbf“xhh转义字符含义换行垂直制表回车响铃单引号3位8进制数代表的字符水平制表退格换页反斜线双引号2位16进制数代表的字符如 101 -A 012 -n 376 -x61 -a 60 -0 483 -()例:A-101-x41-65如 A65,a97,048,n10如 a A?n 101l转义字符转义字符:反斜线后面跟一个字符或一个代码值表示反斜线后面跟一个字符或一个代码值表示25aaal字符常量与字符串常量不同&字符串常量字符串常量l定义:用定义:用双引号双引号(“”)括括起来的字符序列起来的字符序列l存储:存储:每个字符串尾每个字符串尾自动自动加一个加一个 00 作为字符串作为字符串结束标志结束标志h e l l o 0例 字符串“hello”在内存中a a 0例 a“a”例 空串 “”0例:char ch;ch=“A”;例: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在书写变量说明时,应注意以下几点:在书写变量说明时,应注意以下几点:1.允许在一个类型说明符后,说明多个相同类型的变量。允许在一个类型说明符后,说明多个相同类型的变量。各变量名之间用逗号间隔。类型说明符与变量名之间至少各变量名之间用逗号间隔。类型说明符与变量名之间至少用一个空格间隔。用一个空格间隔。2.最后一个变量名之后必须以最后一个变量名之后必须以“;”号结尾。号结尾。3.变量说明必须放在变量使用之前。一般放在函数体的开变量说明必须放在变量使用之前。一般放在函数体的开头部分。头部分。main()int a,b=2;a=1;float data;data=(a+b)*1.2;printf(“data=%fn”,data);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组成:组成:只能由只能由字母字母、数字数字、下划线下划线组成,且第一个字母必须是字母或下划组成,且第一个字母必须是字母或下划线线大小写敏感大小写敏感不能使用关键字不能使用关键字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$123M.D.John3days#33char$123ab&整型变量l占字节数随机器不同而不同,一般占一个机器字lshortintlongl可用sizeof(类型标识符)测量&实型变量lfloat:占4字节,提供7位有效数字ldouble:占8字节,提供1516位有效数字&字符型变量l字符变量存放字符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;*/没有字符串变量,用字符数组存放l2.3不同类型数据间的转换不同类型数据间的转换l隐式转换隐式转换l什么情况下发生什么情况下发生运算转换运算转换-不同类型数据混合运算时不同类型数据混合运算时赋值转换赋值转换-把一个值赋给与其类型不同的变量时把一个值赋给与其类型不同的变量时输出转换输出转换-输出时转换成指定的输出格式输出时转换成指定的输出格式函数调用转换函数调用转换-实参与形参类型不一致时转换实参与形参类型不一致时转换l运算转换规则运算转换规则:不同类型数据运算时先不同类型数据运算时先自动自动转换成同转换成同一类型一类型31doublefloatlongunsignedintchar,short低高说明:必定的转换运算对象类型不同时转换例 char ch;int i;float f;double d;ch/i +f*d -(f+i)intintdoubledoubledoubledoubledoubledoubleintintdoubledoubledoubledoubledoubledouble10+a +i*f -d/l例 int i;float f;double d;long l;32l显式转换(强制转换)显式转换(强制转换)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.c33结束语结束语谢谢大家聆听!谢谢大家聆听!34
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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