第一讲c语言基础入门_第1页
第一讲c语言基础入门_第2页
第一讲c语言基础入门_第3页
第一讲c语言基础入门_第4页
第一讲c语言基础入门_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

2、环环 境境 VC 编编 译译 环环 境境 Keil C51 编编 译译 环环 境境 单片机单片机 C语言编语言编 程环境程环境 课程介绍课程介绍 l2.课程内容 外围器件 单片机单片机 AT89S52 外外 围围电电 路路 传感器 显示器件 信号调理电路 接口器件 嵌嵌 入入 式式 系系 统统 Proteus单片机仿真软件单片机仿真软件 C语言的发展语言的发展 l语言是在语言是在 20世纪世纪70 年代初问世的。一九七八年由美国年代初问世的。一九七八年由美国 电话电报公司电话电报公司(AT lreturn(0); l 注释 头文件 主函数 函数体 注:注:每个每个C语言程序有且语言程序有且 仅

3、有一个仅有一个main函数函数 简单的简单的C语言程序语言程序 lmain() /*主函数主函数*/ l int a,b,c; /*定义变量定义变量*/ l scanf(“%d,d”, /*输入变量输入变量a和和b的值的值*/ l c=max(a,b); /*调用调用max函数,将得到的值赋给函数,将得到的值赋给c */ l printf(“max=%d”,c); /*输出输出c的值的值 */ int max(x,y) /*定义定义max函数函数 */ int x,y; /*对形参对形参x、y做类型定义做类型定义*/ int z; /* max函数中用到的变量函数中用到的变量z,也要加以定义,

4、也要加以定义*/ if(xy) z=x; else z=y; return(z); 、/*将将z的值返回,通过的值返回,通过max带回调用处带回调用处*/ 编辑 链接 编译 执行 C程序的上机步骤 C程序开发步骤 开 始 编 辑 编 译 连 接 执 行 有错? 结果正确? 结 束 有 源程序 file.c 目 标 程 序 file.obj 库函数和 其它目标 程序 可执行 目标程 序 无 正确 不正确 file.exe 程序代码的录入, 生成源程序*.c 语法分析查错,翻译 生成目标程序*.obj 与其它目标程序或库 链接装配,生成可执行 程序*.exe 源程序目标程序可执行程序 内容程序设计

5、语言机器语言机器语言 可执行不可以不可以可以 文件名后缀.c.obj.exe 几个问题几个问题 l1.一个一个C源程序包含几个源程序包含几个main()函数?函数? l2.一个函数由几部分组成?一个函数由几部分组成? l3.一个一个C程序从哪个函数开始执行,在哪里结束?程序从哪个函数开始执行,在哪里结束? l4.在一个在一个C程序中在程序中在”/*.*/”之间的内容是否进行编译并之间的内容是否进行编译并 运行?运行?”/*/”起什么作用?起什么作用? l5.在一个在一个C程序开始有时会有程序开始有时会有“include *.h”这个语句,这个语句, 它是什么意思?它是什么意思? 总结总结 l1

6、. C程序是由函数构成的程序是由函数构成的。 l一个一个C源程序至少包含一个函数(源程序至少包含一个函数(main函数),也可以包含一函数),也可以包含一 个个main和若干其它函数。因此,和若干其它函数。因此,函数函数是是C程序的基本单位。程序的基本单位。 l2.一个函数由两部分组成一个函数由两部分组成 l(1)函数的)函数的说明部分说明部分 l包含函数名、函数类型、函数属性、函数参数名、形式参数名包含函数名、函数类型、函数属性、函数参数名、形式参数名 l (2)函数体函数体 l即函数说明部分下面的大括弧即函数说明部分下面的大括弧内的部分。内的部分。 l 函数体内一般包括:变量定义、执行部分

7、。函数体内一般包括:变量定义、执行部分。 总结总结 l3.一个一个C程序程序总是从总是从main函数开始执行函数开始执行,而不论,而不论main函函 数在整个程序中位置,数在整个程序中位置,最后在最后在main中结束中结束。 l4.每个语句和数据定义的每个语句和数据定义的最后必须有一个分号最后必须有一个分号。 l5.C语言语言本身没有输入输出语句本身没有输入输出语句,输入、输出操作是利用,输入、输出操作是利用 库函数库函数scanf()和和printf()完成。完成。 l6.可以用可以用/*.*/作注释作注释。 总结:总结: 格式特点格式特点 l习惯用习惯用小写小写字母,大小写敏感字母,大小写

8、敏感 l不使用行号,不使用行号,无程序行无程序行概念概念 l可使用空行和空格可使用空行和空格 l常用常用锯齿形锯齿形书写格式书写格式 l优秀程序员的素质之一优秀程序员的素质之一: l使用使用TAB缩进缩进 l对齐对齐 l有足够的注释有足够的注释 l有合适的空行有合适的空行 C语言中的关键字语言中的关键字 l32个关键字:( lauto break case char const lcontinue default do double else lenum extern float for goto lif int long register return lshort signed sizeo

9、f static struct lswitch typedef unsigned union void lvolatile while C语言的要素语言的要素 l1.C的数据类型 l一个程序应包括两个方面的内容: l (1)数据的描述; l (2)算法:操作步骤,即动作的描述; l数据是操作的对象,操作的结果会改变数据的 状况。 l数据结构算法程序 C语言数据类型语言数据类型 C 数 据 类 型 基本类型 构造类型 指针类型 空类型void 定义类型typedef 数值类型 字符类型char 枚举类型enum 整 型 浮点型 单精度型float 双精度型double 短整型short 长整型l

10、ong 整型int 数组 结构体struct 共用体union 基本数据类型 类型符号关键字数的表示范围所占位数 整型字符型实型 有 无 (signed)int16 -3276832767 (signed)short16 -3276832767 (signed)long 32 -21474836482147483647 16unsigned int 065535 32 04294967295 unsigned long unsigned short16 065535 有float32 3.4e-383.4e38 有double64 1.7e-3081.7e308 有char8-128127 无

11、 unsigned char80255 说明:数据类型所占字节数随机器硬件不同而不同,上表以IBM PC机为例: 一般用大写字母 是宏定义预处理命令,不是C语句 直接常量: 整型常量 实型常量 字符常量 字符串常量 如 #define PRICE 30 常量 l定义:程序运行时其值不能改变的量(即常数) l分类: 符号常量:用标识符代表常量 定义格式: #define 符号常量 常量 例 符号常量举例(ch2_1.c) #define PRICE 30 main() int num,total; num=10; total=num*PRICE; printf(total=%d,total);

12、运行结果:运行结果:total=300 ch=“A”; 例: char ch; ch=A; 编译程序根据变量定义为其 分配指定字节的内存单元 . 地址 int a=1, b=-3,c; a b c 2字节 2字节 2字节 地址 地址 . 内存 1 -3 随机数 l变量 l概念:其值可以改变的量 l变量名与变量值 l变量定义的一般格式: 数据类型 变量1,变量2,变量n; l变量初始化:定义时赋初值 例: int a,b,c; float data; 决定分配字节数 和数的表示范围 合法标识符 l变量的使用:先定义,后使用 例1 int student; stadent=19; /Undefin

13、ed symbol statent in function main l变量定义位置:一般放在函数开头 l在书写变量说明时,应注意以下几点:在书写变量说明时,应注意以下几点: 1.允许在一个类型说明符后,说明多个相同类型的变量。允许在一个类型说明符后,说明多个相同类型的变量。 各变量名之间用逗号间隔。类型说明符与变量名之间至少各变量名之间用逗号间隔。类型说明符与变量名之间至少 用一个空格间隔。用一个空格间隔。 2.最后一个变量名之后必须以最后一个变量名之后必须以“;”号结尾。号结尾。 3.变量说明必须放在变量使用之前。一般放在函数体的开变量说明必须放在变量使用之前。一般放在函数体的开 头部分。

14、头部分。 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定义:用来标识变量名、符号常量名、函数名、类型名等的定义:用来标识变

15、量名、符号常量名、函数名、类型名等的 字符序列字符序列 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 $123 M.D.John3days #33 ch

16、ar$123ab 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; */ 没有字符串变量,用字符数组存放 31 l2.3不同类型数据间的转换不同类型数据间的转换 l隐式转换隐式转换 l什么情况下发生什么情况下发生 运算转换运算转换-不同类型数据混合运算时不同类型数据混合运算时 赋值转换赋值转换-把一个值赋给与其类型不同的变量时把一个值赋给与其类型不同的变量时 输出转换输出转换-输出时转换

17、成指定的输出格式输出时转换成指定的输出格式 函数调用转换函数调用转换-实参与形参类型不一致时转换实参与形参类型不一致时转换 l运算转换规则运算转换规则: :不同类型数据运算时先不同类型数据运算时先自动自动转换成同转换成同 一类型一类型 32 doublefloat long unsigned intchar,short 低 高 说明: 必定的转换 运算对象类型不同时转换 例 char ch; int i; float f; double d; ch/i + f*d - (f+i) int int double double double double double double int int double double double double double double 10+a +i*f - d/l 例 int i; float f; double d; long l; 33 l显式转换(强制转换)显式转换(强制转换) l一般形式:一般形式:(类型名类型名)(表达式)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论