已阅读5页,还剩69页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言程序设计,邹细勇 / 86875657 赛博南楼220-1,2,硬件,软件,运算器 控制器 存储器 输入设备 输出设备,系统软件 应用软件,操作系统 数据库系统 网络系统 程序设计语言与语言处理程序,机器语言和汇编语言 高级语言:BASIC、Fortran、Pascal C 语言 面向对象的程序设计语言:C+ C# Java,计算机系统的组成,3,计算机语言,由二进制编码表示机器指令 如:10000000 加 10010000 减,用助记符号表示机器指令 如 ADD AX, 105 须经汇编程序翻译成机器语言程序才能执行,面向机器的语言,程序设计是数据被加工的过程,计算机接受,理解和执行的语言,C+,C#,Java,每一条语句对应一组机器指令, 须经翻译程序翻译成机器语言程序才能执行,C语言源程序,须经C语言编译程序(编译器), 将源程序翻译成机器语言程序(目标程序), 通过连接程序生成可执行程序,4,语言、编译程序,计算机语言(程序设计语言):人和计算机交流信息使用的语言。 分类: 机器语言是一种用二进制代码“0“和“1“形式表示的,能被计算机直接识别和执行。 汇编语言是一种用助记符表示的面向机器的程序设计语言。机器不能直接识别和执行,必须由“汇编程序“ (或汇编系统)翻译成机器语言程序才能运行。 高级语言是一种比较接近自然语言和数学表达式的一种计算机程序设计语言。计算机不能识别和执行,要把用高级语言编写的源程序翻译成机器指令,通常有编译和解释两种方式。,5,C语言的发展,63年 67年 70年 72年 78年 ALGOL 60 CPL BCPL B语言 C语言 可移植 (标准C) 83年 87年 99年 ANSI C 87 ANSI C C99 【名词】 ALGOL(algorithmic language算法语言) CPL(combined programming language复合编程语言),剑桥 BCPL(basic复合编程语言),剑桥 B, 贝尔实验室, Ken Thompson C, 贝尔实验室, D.M.Ritchie 标准C,Brian W.Kernighan和 Dennis M.Ritchie,The C Programming Language ,1978,1988 ANSI(美国国家标准化协会),6,C语言的特点,较高的可移植性 生成的目标代码质量高、程序执行效率高 保留了低级语言的特性:可访问硬件/内存、位运算 语法简洁灵活,程序设计的自由度大 运算符和数据类型丰富,功能强大 流行的操作系统核心部分几乎无一例外的选择了C语言,7,32个关键字:(由系统定义,不能重作其它定义) auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef unsigned union void volatile while,8,9种控制语句: if( )else for( ) while( ) dowhile( ) continue break switch goto return,9,34种运算符: 算术运算符:+ - * / % + - 关系运算符: = != 逻辑运算符:! & | 位运算符 : | & 赋值运算符:= 及其扩展 条件运算符:?: 逗号运算符:, 指针运算符:* & 求字节数 :sizeof 强制类型转换:(类型) 分量运算符:. - 下标运算符: 其它 :( ) -,10,教材和参考书目,教材 (Text Book) C语言程序设计,陆蓓,科学出版社 参考书目 (Reference) The C Programming Language,K&R C语言程序设计,谭浩强,清华大学出版社,11,考核方法及成绩评定,考核类别:考试 考核形式:闭卷 成绩评定: 百分制:平时表现10%,实验20%,期末考试60%,12,课程教学学时安排,总课时56学时:理论课38,实验18,13,注意,如果对某些语句了解的不是很透彻,最好自己编些小程序去理解这些语句的执行情况 适当更改例题中的某些参数,可以帮助你更好的理解语句 千万别忘记网络,14,第1章 C语言程序设计基础知识,了解计算机语言和程序执行; 了解C程序基本结构; 了解使C程序在计算机上执行的步骤和C程序编译器的使用; 了解C语言的特点。,15,1.1 计算机基础知识,数制(计数制) 指用一组固定的符号和统一的规则来表示数值的方法。 计算机只认识“0“和“1“,任何信息必须转换成二进制形式数据后才能由计算机进行处理、存储和传输。,16,二进制数的特点: 最多只有两个不同的数字符号,即 0 和 1 。 逢二进一。 (基数为二,逢二进一,借一为二。) 二进制优点: 0,1两个状态易物理实现; 运算规则简单。 算术运算与逻辑运算容易沟通。,1. 二进制数,17,进位计数制的三要素: 数位:数码在一个数中所处的位置。 基数:每个数位上所能使用的数码的个数。 位权:处在某一位上的“1“所表示的数值的大小。 (N进制数中,整数部分第i位的位权为Ni-1,小数部 分第j位的位权为N-j 。 十进制(101.1)10110201011100110-1 二进制(101.1)212202112012-1 (5.5) 10 八进制(101.1)818208118018-1 (65.125)10 十六进制 (101.1)16116201611160116-1 (257.0625)10,2. 二进制与其它数制,18,二进制数与其它数制的对照表,19,3. 不同进制数之间的转换,20,十进制整数转换为二进制整数,规则:除二取余,直到商为零为止,倒排。 例:将十进制数86转化为二进制 2 | 86 0 2 | 43 1 2 | 21 1 2 | 10 0 2 | 5 1 2 | 2 0 2 | 1 1 0 所以,(86)10=(1010110)2,21,规则:乘二取整,直到小数部分为零或给定的精度为止,顺排。 例:将十进制数0.875转化为二进制数 0.875 2 1.75 0.75 2 1.5 0.5 2 1.0 所以(0.875)10=(0.111)2,十进制小数转换为二进制小数,22,例: (1999.8)10=1103+9 102+9 101+9 100+8 10-1,“权“,(1101.1)2=123+1 22+0 21+1 20+1 2-1 =(8+2+1+0.5+0.25)10 =(11.75)10,二进制数转换为十进制数,规则:按“权“展开,求和。,23,二进制转换为八进制,方法三合一法 整数部分:自右向左,三个一组,不够补零,每组对应一个八进制数码。 小数部分:自左向右,三个一组,不够补零,每组对应一个八进制数码。 例如:将(10100101.10111)2 转换成八进制数。 (10100101.10111)2 = (010 100 101 .101 110)2 =( 2 4 5. 5 6)8,24,方法一分为三法 八进制 0 1 2 3 4 5 6 7 二进制 000 001 010 011 100 101 110 111 例如:将(207.54)8转换成二进制: 2 0 7. 5 4 010 000 111.101 100 所以, (207.54)8=(010000111.101100)2 =(10000111.1011)2,八进制转换为二进制,25,二进制转换为十六进制,方法四合一法 整数部分:自右向左,四个一组,不够补零,每组对应一个十六进制数码。 小数部分:自左向右,四个一组,不够补零,每组对应一个十六进制数码。 例: (11001111.01111)2 = (1100 1111 .0111 1000)2 = ( C F . 7 8)16,26,十六进制转换成二进制,方法一分为四法 十六进制 0 1 2 3 4 5 6 7 二进制 0000 0001 0010 0011 0100 0101 0110 0111 十六进制 8 9 A B C D E F 二进制 1000 1001 1010 1011 1100 1101 1110 1111 例如(1E4.2A)16=(0001 1110 0100. 0010 1010) 2 =(111100100.0010101) 2,27,1.1.2 数值与非数值的表示,28,原码:将整数化为二进制数,符号位置0(正数)或1(负数) 负数的反码:符号位为1,绝对值部分与原码相反。 负数的补码表示:符号位也是“1“,其余为反码的最低位加“1“。,1. 原码、反码、补码的表示,29,原码表示法,原码的最高位为符号位;其余的位是真值X的绝对值。 定点小数(纯小数)的原码,定点整数的原码,例+0.1001 原0.1001;-0.1001 原1.1001,例 x = -1011101 原 = 11011101,30,原码表示法,1. 原码:用最高位表示符号位,符号位为0,则表示正数;符号位为1,则表示负数。,31,反码表示法,正数的反码同原码; 负数的反码只需将其相应正数的原码按位求反; 负数的反码是将该负数的原码符号位不变,其他位取反。,例:X=-1101001 则-X原=01101001 X反=10010110,32,反码表示法,反码:原码变反码规则为:正数的反码和其原码形式相同,负数的反码是将符号位除外,其他各位逐位取反。,33,补码表示法,正整数的补码与原码相同; 负数的补码等于其反码末位加1。,例:X=-0.1011 则 X反= 1.0100 X补= 1.0101 X=-1011000 则 X反= 10100111 X补= 10101000,34,补码表示法,3. 补码:补码规则为:正数的补码和其原码形式相同,负数的补码是将它的原码除符号位以外逐位取反(即0变为1,1变为0),最后在末位加1。,35,补码的运算规则如下:(原码减法可用补码加法做) X+Y补X补Y补 该运算规则说明:任何两个数相加,无论其正负号如何,只要对它们各自的补码进行加法运算,就可得到正确的结果,该结果是补码形式。 X补补X原 对于运算产生的补码结果,若要转换为原码表示,则正数的结果X补X原;负数结果,只要对该补结果再进行一次求补运算,就可得到负数的原码结果。,例: 用补码求X-Y X37 Y51 。 解: 若-Y补11001101,可得 X-Y补X补+-Y补 00100101+1100110111110010 由于符号位为1是负数,所以 X-Y原X-Y补补10001110 则 X-Y-(00001110)2-14,36,例3: 用补码求X-Y X37 Y51 。 解: 若-Y补11001101,可得 X-Y补X补+-Y补 00100101+1100110111110010 由于符号位为1是负数,所以 X-Y原X-Y补补10001110 则 X-Y-(00001110)2-14,37,原码、反码、补码(续),注意: -0与+0在补码表示法中相同,而在原码、反码表示却不同。 相同位数的二进制补码,表示的范围比原码、反码多一个。 正数的原码、反码、补码都相等,即表示方法只有一种。,38,1,1,带 符 号 的 机 器 数,-77,原码,反码,补码,数据在计算机中的表示方式,39,2. 定点数和浮点数的表示,1、定点表示方法 指约定数据中隐含的小数点位置固定不变。,*定点表示形式:有约定在数值最低位之后和最高位之前两种,40,*定点数的表示范围: (设数码长度为n位),2、定点数的表示 采用定点表示格式的数称为定点数,通常有几种数码长度。,计算机中整数一般用定点数表示。 定点数指小数点在数中有固定的位置。 整数(不带符号的整数) 8位:0255,16位:065535 带符号整数 符号位(0:正;1:负) 最高位为符号位(原码表示法) 8位:-128127,16位:-32768+32767,41,计算机中实数一般用浮点数表示。 浮点数指小数点在数中位置不固定。 一个浮点数由阶码(指数)和尾数两部分组成。 阶码:尾数中的小数点应当向左或向右移动的位数。 尾数:表示数值的有效数字,其小数点约定在数符和尾数之间。 例:100.101=2+30.100101,42,IEEE 754标准,*表示格式及数码长度: 有单精度、双精度两种格式及长度,*编码方式: 数制M和E均采用二进制方式(即RM=RE=2);,码制M为原码编码的定点纯小数(改进了定点位置), E为移码编码的定点整数(改进了移码值),43,3. 非数值的表示,数字二进制数 字符 二进制编码 字符编码:每个字符对应一个整数值 字符编码标准: ASCII码:美国标准信息交换代码(American Standard Code for Information Interchange) 规定:字节(位)最高位为,位给出128个编码。,44,ASCII码,1、10个十进制数 2、26个英文字母 3、34个专用符号 4、32个控制字符 共计128个,其中 有95个可打印。,1、7位二进制表示一个字符。 2、排列顺序:b6b5b4b3b2b1b0 3、b7为0,表中未给出表示。,1,2,45,汉字编码,汉字字符集与编码 1981年,GB2312-80国家标准,其中有6763个汉字和682个非汉字字符,其字符及编码称为国标码又叫国际交换码。 GB2312字符集的构成: 一级常用汉字3755个,按汉语拼音排列 二级常用汉字3008个,按偏旁部首排列 非汉字字符682个,46,1.1.3 计算机运算基础,47,二进制数的运算,二进制数的算术运算(加、减、乘、除) 1 位二进制数算术运算 多位二进制数算术运算 二进制数的逻辑运算 AND OR NOT,48,二进制加法,1 位二进制数的加法规则为: 000 011 101 110 (有进位) 多位二进制数的加法:,例1: 求11001010B11101B。 解: 被加数 11001010 加数 11101 进位 ) 00110000 和 11100111 则11001010B11101B11100111B。 由此可见,两个二进制数相加时,每1位有3个数参与运算(本位被加数、加数、低位进位),从而得到本位和以及向高位的进位。,49,1位二进制数减法规则为: 101 110 000 011 (有借位) 多位二进制数的减法,二进制减法,50,二进制乘法,1 位二进制乘法规则为: 000 010 100 111 多位二进制乘法:,51,二进制除法的运算过程类似于十进制除法的运算过程。 例4: 求 100100B101B。 解: 000111 101 100100 101 1000 101 110 101 1,二进制除法,52,二进制数的逻辑运算 1.“与“运算(AND) “与“运算又称逻辑乘,运算符为或。“与“运算的规则如下: 000 01100 111 例: 若二进制数X10101111B,Y01011110B,求 XY。 10101111 01011110 00001110 则XY00001110B。,53,2. “或“运算(OR) “或“运算又称逻辑加,运算符为或。“或“运算的规则如下: 000 01101 111 例: 若二进制数X10101111B,Y01011110B,求XY。 10101111 01011110 11111111 则XY11111111B。,54,3.“非“运算(NOT) “非“运算又称逻辑非,如变量A的“非“运算记作 。“非“运算的规则如下: 例: 若二进制数A10101111B,求 。 01010000B 由此可见,逻辑“非“可使A中各位结果均发生反变化,即0变1,1变0。,55,4.“异或“运算(XOR) “异或“运算的运算符为或,其运算规则如下: 0 00 0 11 1 01 1 10 例: 若二进制数X10101111B,Y01011110B,求 X Y。 10101111 01011110 11110001 则X Y11110001B。,56,C语言程序举例,1.2 C语言程序基本知识,57,函数体,函数首行,编译预处理,例 1.1 最简单的C程序 #include void main( ) /* 主函数 */ printf(“Hello worldn“) ; /* 输出一句话 */ ,程序运行结果: Hello world,提示:printf:输出函数 “n“:换行符 /* 注释内容*/,58,例 1.2一个简单的加法计算程序 #include void main( ) int a, b, sum; /* 定义变量 */ a = 12; /* 给变量赋值 */ b = 4; sum = a + b; printf( “sum is %d n“, sum );/* 输出结果 */ ,运行结果:sum is 16,提示: %d: 输入输出的“格式字符串“,59,例1.2 一个简单的加法计算程序 #include void main( ) int x,y,sum; /定义变量 printf(“Input data:n“); /显示提示信息 scanf(“%d“, /输出和 ,运行结果: Input data: 34 Input data: 53 sum=87,60,例 1.3 比较任意两个数的大小,求较大数 #include int max ( int x, int y ) /* 定义 max 函数*/ int z; if (x y) z = x; else z = y; return( z ); /* 将 z 的值返回 */ ,void main( ) int a, b, c; scanf( “%d,%d“, /* 输出c的值 */ ,运行结果: 3,6,max = 6,61,C语言的结构特点和书写方式,1. 函数是语言程序的基本单位 main()是主函数,必不可少,且唯一, 其它函数,相当于子程序。,2. C语言程序总是从main()函数开始执行 一个语言程序,总是从main()函数开始执行,而不论其在程序中的位置。当主函数执行完毕时,亦即程序执行完毕。,62,函数的一般结构 由函数说明 和函数体两部分组成,函数体部分,函数说明部分,函数类型 函数名(函数参数表), 说明语句; 可执行语句; ,继续3.1,63,(1)函数说明部分: 由函数类型、函数名和函数参数表三部分组成 其中函数参数表的格式为: 数据类型 形参1, 数据类型 形参2,如 例1.3中的函数max(),其函数说明各部分为: int max ( int x , int y ),函数类型 函数名 函数参数表 ,64,(2)函数体 在函数说明部分的下面、大括号 (必须配对使用)内的部分。 函数体一般由说明语句和可执行语句两部分构成:,说明语句部分: 对所用到的变量进行定义。(若无变量则无此部分。例1.1),可执行语句部分: 一般由若干条可执行语句构成。(可为空),65,void main( ) double a, b, c; printf(“input a,b :“; scanf(“%lf%lf“, ,提示:变量定义部分必须在所有可执行语句之前。,可执行语句部分,变量定义部分,函数体,66,void main() int x,y; x=3; y=6; int max; max=xy?x:y; printf(“max=%dn“,max); ,67,C程序书写格式,自由,但为提高可读性,须遵守书写规范 习惯小写字母,大小写敏感 一行写一条语句 所有语句都必须以分号“;“结束 足够的注释,适当的空行和空格 左右花括号,尽可能各占一行,且上写对齐 锯齿形书写格式,使用Tab键缩进
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年石家庄客运资格证应用能力试题和答案解析
- 上海市“星光计划”第五届中等职业学校职业技能大赛-物联网项目试题A卷
- 北京市亚太实验学校2024-2025学年七年级上学期数学期中考试题
- 养老行业人才培养计划
- 建筑装饰税务登记流程
- 资金管理财务总监招聘协议
- 媒体出版行业薪酬发放制度
- 机场停车位租赁合约
- 汽车销售公司销售顾问
- 通信基站建设招投标细则及记录
- 《故都的秋》《荷塘月色》《我与地坛(节选)》群文阅读 导学案 统编版高中语文必修上册
- 小学数学北师大三年级上册五周长围篱笆
- 25吨吊车参数表75734
- 中职学生学习困难课件
- 外研版五年级上册说课标说教材课件
- 被巡察单位组织人事工作汇报集合5篇
- 青少年科技创新大赛培训课件
- 新闻编辑学--新闻稿件的选择与编辑-54新闻差错的“更正”-课件
- 中学田径基础校本课程教材
- 人教版九年级英语全一册(全套)课件
- 广播操比赛打分表
评论
0/150
提交评论