版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第1章 c程序设计基础,1.1 计算机内的数据表示 1.2算法及其表示 1.3程序设计语言 1.4 结构化程序设计,1.1 计算机内的数据表示,数制及其转换 常用计数方法 十进制计数法 进制计数法是“逢十进一”的 例如:(1234.56)10110321023101410051016102 各位的权值分别为:103、102、101、100、101、102。 二进制计数法 二进制计数法是“逢二进一”的。 例如:(1001101.11)2=126025024123122021120121122 各位的权值分别为: 26、25、24、23、22、21、20、21、22、23。,1.1 计算机内的数据
2、表示,八进制数与十六进制数 八进制计数法是“逢八进一”的,数码为: 0、1、2、3、4、5、6、7。 例如:(621)8=682281680 各位的权值分别为:82、81、80。 十六进制计数法是“逢十六进一”的,数码为 0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。 例如:(8A1F)16=816310162116115160 各位的权值分别为:163、162、161、160。,1.1 计算机内的数据表示,数制转换 任意进制转换为十进制由r制数转换为十进制数可按照如下公式进行多项式展开求和即可:KnKn1K1K0 . K1K2KmKnrnKn1rn1K1r1K0 r0K1r
3、1K2r2Kmrm 十进制转换为任意进制 可以采用除基取余法将十进制整数转换为r进制整数:将十进制整数除以r,得到商和余数,余数对应为r进制数低位的值;继续让商再除以r,得到商和余数,重复此操作,直至商为0,如此得到的一系列的余数就是相应r进制数的各位数字,先得到的是低位,后得到的是高位。,1.1 计算机内的数据表示,例如,将(29)10转换为二进制整数: 因此,(29)10(11101)2,2 29 2 14 1 低位 2 7 0 2 3 1 2 1 1 0 1 高位,1.1 计算机内的数据表示,可采用乘基取整法将十进制小数转换为r进制小数:将十进制小数乘以r,去掉乘积的整数部分,再将余下的
4、纯小数乘以r,重复此操作,直至乘积等于0或达到所需的精度为止,如此得到的一系列整数就是r进制小数的各位数字,先得到的是高位,后得到的是低位。 例如,将(0.625)10转换为二进制小数: 0.6252=1.25 1 高位 0.252=0.5 0 0.52=1 1 低位 因此,(0.625)10(0.101)2 由于整数和小数的转换方法截然不同,将十进制数转换为r进制数时,整数部分和小数部分要分开来进行转换。r进制小数能精确的转换为十进制小数,但十进制小数通常不能精确的转换为r进制小数。,1.1 计算机内的数据表示,二进制与八进制、十六进制之间的转换 对于一个二进制数,只要依次(整数部分由低位到
5、高位,小数部分由高位到低位)将其每3位或4位分成一组,就可以直接转换为八进制数或十六进制数。 例如, (1 000 101 111 010 011.011 01)2(105423.53)8 (1000 1011 1101 0011.01101)2(8B13.B8)16 将八进制数中的每一位用3位二进制数表示,将十六进制数中的每一位用4位二进制数表示,就能转换为对应的二进制数。,1.1 计算机内的数据表示,原码,反码及补码 在计算机中,“位” 是数据的最小单位。计算机中的存储量是以字节来计算的,一个字节是8位二进制位。在计算机内,一般规定:用0表示正号“”,用1表示负号“”;符号位放在数值位之前
6、。一个数连同其符号在机器中的二进制表示形式称为机器数,它所代表的数值称为机器数的真值。 机器数的一般格式为: 符号位 数值位,1.1 计算机内的数据表示,原码 原码表示法是符号位用0表示正数,用1表示负数,数值位表示数值本身。 例如:27原= 0 0 0 1 1 0 1 1 27原= 1 0 0 1 1 0 1 1 在原码表示法中,0的表示方法不唯一:0原= 0 0 0 0 0 0 0 0 0原= 1 0 0 0 0 0 0 0 。 反码 反码表示法中正数与负数的表示方法不同,正数的反码与原码同形,如:27反= 0 0 0 1 1 0 1 1 负数的反码为:符号位仍为1,数值位是对原码取反,如
7、:27反= 1 1 1 0 0 1 0 0 在反码表示法中,0的表示也不唯一:0反= 0 0 0 0 0 0 0 0 0反= 1 1 1 1 1 1 1 1。,1.1 计算机内的数据表示,补码 正数的补码与原码、反码同形,如: 18原18反18补 0 0 0 1 0 0 1 0 负数的补码为:符号位为1,数值位等于原码的数值位取反,再加1,或者说: x补x反1; 如:18原 1 0 0 1 0 0 1 0 18反 1 1 1 0 1 1 0 1 18补 1 1 1 0 1 1 1 0 补码形式的数据进行运算时,符号位和数值位一样的参与运算。例如,计算3658,36补 1 1 0 1 1 1 0
8、 0 58补 0 0 1 1 1 0 1 0 1 1 0 1 1 1 0 0 0 0 1 1 1 0 1 0溢出 1 0 0 0 1 0 1 1 0 在补码表示法中,0的表示是唯一的,假设用一个字节存放数据0补0 0 0 0 0 0 0 0,1.2算法及其表示,算法 为解决一个问题而采取得方法和步骤,称为算法。 算法就是被精确定义的一组规则,规定先做什么,再做什么,以及判断某种情况下做哪种操作。 例如,下面是用自然语言表示的对三个数进行从小到大排序的算法。 输入三个数x、y、z; 将x与y比较,若xy,交换x与y的值; 将x与z比较,若xz,交换x与z的值; 将y与z比较,若yz,交换y与z的
9、值; 输出此时的三个数x、y、z,1.1 计算机内的数据表示,算法的特性和目标 算法必须具有以下五个特性: 确定性 算法中的每一步都必须有确切的含义,不允许存在二义性;对于相同的输入数据,必须有相同的输出结果。 可行性 算法中的每一步操作都能通过可以实现的基本运算,执行有限次来完成,并最终得到确定的结果。 有穷性 一个算法必须总是在执行有限个操作步骤和可以接受的时间内完成其执行过程。也即是说,对于一个算法,要求其在时间和空间上均是有穷的。,1.2算法及其表示,输入 一个算法有零个或多个输入数据。有些算法需要提供输入数据,有些算法则不需要。 输出 一个算法应该有1个或多个输出数据。 算法应达到的
10、目标 正确性 可读性 健壮性 高效率与低存储空间需求,1.2算法及其表示,算法的表示 自然语言 传统流程图 传统流程图是用规定的一组图形符号、流程线和文字说明来表示各种操作的算法表示方法。,1.2算法及其表示,1.2算法及其表示,流程图只包括三种基本程序结构 顺序结构 选择结构,真,1.2算法及其表示,循环结构,1.2算法及其表示,N-S流程图 顺序结构 选择结构,1.2算法及其表示,循环结构,1.2算法及其表示,1.2算法及其表示,伪码 伪码是用一种介于自然语言和计算机语言之间的文字和符号来描述算法。 例如,用伪码描述上述算法: input x, y, z xmax if y max the
11、n ymax if z max then zmax output max,1.3程序设计语言,程序与程序设计语言 程序 计算机程序是指为让计算机完成特定的任务而设计的指令序列。 程序设计语言 机器语言 汇编语言 高级语言 面向对象的语言 C语言简介 C语言的历史,1.3程序设计语言,C程序的结构 C程序是一种函数结构,一般由一个或若干个函数组成; 其中必有一个名为main( )的主函数,程序的执行就是从这里开始的。 【例1.1】编写程序判断一个整数是否是3的倍数,如果是输出“YES”,否则输出NO”。 main( ) /*main函数的首部*/ /*main函数体的开始*/ int m;/*定
12、义整型变量m*/ printf(nPlease input a integer:);/*输出提示信息*/ scanf(%d, /*如果flag值为0,输出“YES”,否则输出“N0”*/ ,1.3程序设计语言,运行情况如下: Please input a integer: 20 NO 【例1.2】编写程序求任意三个整数中的最小值。 main( ) /*main函数的首部*/ /*main函数体的开始*/ int n1,n2,n3;/*定义三个整型变量*/ int minnum; /*定义变量minnum,用于存放最小值*/ printf(nEnter three integers:);/*输出
13、提示信息*/ scanf(%d,%d,%d,/*输出minnum值*/ ,1.3程序设计语言,int min(int x,int y,int z) /*num函数的首部*/ /*num函数体的开始*/ int m; m=x; /*默认第一个数最小*/ if (ym) m=y; /*如果第二个数更小,则修改m*/ if (zm) m=z; /*如果第三个数更小,则修改m*/ return m; /*将m的值作为函数值返回*/ /*max函数体的结束*/ 运行情况如下: Enter three integers: 18, 25, 12 Maximum is: 12,1.3程序设计语言,C程序的结构
14、特点 C程序是由函数构成的。 函数由函数首部和函数体两部分组成。 一般函数的格式如下: 类型名 函数名(函数参数表) 声明部分 执行部分 函数体中也可以没有任何内容,即构成一个空函数。 一个源程序有一个且只能有一个main函数(又称主函数)。C程序的执行总是从main函数开始的,在调用其它函数后,最后回到main函数中结束整个程序的执行。,1.3程序设计语言,C程序书写格式自由。既允许在一行内写多个语句,也允许将一个语句分写在多行上,但每个语句必须以分号结束。 “/*/”表示对函数或语句的功能作注释。在“/”和“*”之间不能有空格,且“/*”和“*/”必须配对使用。注释是供人阅读的,并不参与编
15、译和运行。注释可以出现在程序的任何地方,添加必要的注释可以提高程序的可读性。 源程序中可以使用预处理命令(如include命令、define命令),预处理命令以“#”开头,一般预处理命令应放在源文件或源程序的最前面。,1.3程序设计语言,C程序的一般形式如下: 预编译处理命令 全局变量定义 main( ) 声明部分 执行部分 sub 1( ) /*自定义函数*/ sub n( ) /*自定义函数*/ ,1.3 程序设计语言,C程序的特点 简洁、紧凑 模块化、结构化 功能强大 可移植性好 C语言的不足 运算符多,难以掌握 C程序中常常为了类型转换上的方便不要求类型检查,这就导致有些情况下即使要求类型一致,但实际类型不一致也不出错,而产生莫名其妙的运算结果。 C语言中对数组进行处理时对数组元素的下标不做越界检查,若程序中引用数组元素时越界,容易造成数据的混乱,甚至更严重的错误。,1.4 结构化程序设计,结构化程序设计方法 结构化程序设计方法是一种用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年华中科技大学同济医学院附属同济医院医护人员招聘笔试备考试题及答案详解
- 2026年丽水市人民医院医护人员招聘考试参考题库及答案详解
- 2026年南京大学医学院附属鼓楼医院医护人员招聘考试备考试题及答案详解
- 2026年中国人民解放军169医院医护人员招聘笔试参考试题及答案详解
- 2026年芜湖市中医医院医护人员招聘笔试参考题库及答案详解
- 2026年宿迁市中医院医护人员招聘笔试备考题库及答案详解
- 2026年首都医科大学附属北京朝阳医院医护人员招聘考试参考试题及答案详解
- 2026年永州市中医院医护人员招聘考试参考题库及答案详解
- 2026年衢州市第三医院医护人员招聘考试参考试题及答案详解
- 2026年秦皇岛市第一医院医护人员招聘笔试备考题库及答案详解
- 2025年上海市中考语文备考之文学常识汇编
- 锂电行业铜锌镍禁令标准
- 2025年二级风力发电运维值班员职业技能鉴定考试题库(浓缩500题)
- 血液透析不同抗凝剂的应用及护理
- 语文教师书写《识字写字教学》教育教研讲座教学培训课件
- 《铁路信号与通信设备》课件
- DB43T 876.2-2014 高标准农田建设 第2部分:土地平整
- 2024年咨询服务协议书范文
- 中医内科临床诊疗指南-肺动脉高压
- DL∕T 5372-2017 水电水利工程金属结构与机电设备安装安全技术规程
- 2022管理学试题库(马工程)
评论
0/150
提交评论