




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第1章 C语言程序设计基础知识计算机基础知识C语言程序基本知识 在计算机上执行C语言程序学习目标 掌握计算机运算基础理解计算机程序的基本概念熟悉C语言基础知识了解C语言程序的结构学会在VC环境下编辑、编译、执行C程序 能够仿照例子用C语言编写简单的程序1.1 计算机基础知识1.1.1 计数制概念数制(二、八、十、十六);数制转换1.1.2 数值和非数值的表示原码、反码和补码;定点数和浮点数的表示1.1.3 计算机运算基础算术运算;逻辑运算1.1.4 程序与程序设计语言程序;程序设计语言;高级语言1.1.5 程序执行高级语言处理程序计算机的二进制世界计算机的世界是一个二进制世界计算机是信息处理的
2、工具,任何信息必须被转换成二进制形式数据后才能由计算机进行处理、存储和传输计算机硬件系统的主要功能部件均是仅有两种稳定状态(电位的高和低,用0和1这两个数字表示)的电子元器件组成1. 进位计数制:指用一组特定的数字符号按照一定的进位规则来表示数的计数方法。使用任何一种计数制都必须了解两个重要概念:基数和位权。基数:进位计数制中所使用的不同基本符号的个数。位权:数码在不同的位置上有不同的值,确定数位上实际值所乘因子。任意进制的一个数都可以表示为它的各位数字与位权乘积之和。假设有一个R进制的数P,共有m位整数和n位小数,每位数字用 Di(-nim1 )表示,即P=Dm-1Dm-2D1D0D-1D-
3、n,它可展开为:P = Dm-1Rm-1Dm-2Rm-2D0R0D-1R-1 D-nR-n此多项式的值即为R进制的数P。1.1.1 计数制概念计算机内部采用二进制的主要原因(1)容易表示,电路简单可靠。二进制数只有“0”和“1”两个基本符号,易于用两种对立的物理状态表示。例如,可用电灯开关的“闭合”状态表示“1”,用“断开”状态表示“0”;晶体管的导通表示“1”,截止表示“0”。一切有两种对立稳定状态的器件都可以表示二进制的“0”和“1”。而十进制数有10个基本符号( 09 ),要用10种状态才能表示,实现起来很困难。(2)运算简单。二进制数的算术运算特别简单,加法和乘法仅各有 3条运算规则(
4、 00 = 0,01 = 1,11 = 1 0和00 = 0,01 = 0,11 = 1 ),运算时不易出错。(3)逻辑性强。二进制数的“1”和“0”正好可与逻辑值“真”和“假”相对应,这样就为计算机进行逻辑运算提供了方便。算术运算和逻辑运算是计算机的基本运算,采用二进制可以简单方便地进行这两类运算。2. 数制转换(1) R进制数转换为十进制数。转换规则:将各位数码与位权相乘求和,所得数即为转换结果。例如:(10110.1)2 = 2 4 222 12-1 = (22.5)10(456.45)8 = 48 258 168048-158-2 =(302.578125)10(2AF)16 = 21
5、6 2A16 1F16 0 = 216161016 151 =(687)10()十进制数转换为R进制数十进制整数转换为R进制整数。转换规则:“除R取余法”。即用十进制数反复地除以基数,记下每次得到的余数,直至商为0。将所得余数按最后一个余数到第一个余数的顺序依次排列起来即为转换结果。 十进制小数转换成R进制小数。转换规则:“乘R取整法”。即用十进制小数乘以基数,得到一个乘积,将乘积的整数部分取出来,将乘积的小数部分再乘以基数。重复以上过程,直至乘积的小数部分为 0或满足转换精度要求为止。最后将每次取得的整数依次从左到右排列即为转换结果。一个十进制数既有整数部分,又包括小数部分,要将其转换成 R
6、进制数的转换规则是:将该十进制数的整数部分和小数部分分别进行转换,然后将两个转换结果拼接起来即可。 例如,将83转换成二进制数,逐次除2取余:可得到:(83)10 =(1010011)2例如,将0.8125转换为二进制小数,逐次乘2取整:可得: (0.8125)10 =(0.1101)2 注意:并非所有的十进制小数都能完全准确地转换成对应的二进制小数,此时可以在采用在满足题目所要求的精度条件下用0舍1入的方法进行处理(类似于十进制中的四舍五入的方法)。在转换过程中,做的乘法次数越多,结果就越精确。例如,将0.335转换为二进制小数,精确到0.001。 可得:(0.335)10 =(0.0101
7、)2 (0.011)2(3)二进制数与八进制、十六进制数之间的转换(3.1)二进制数转换为八进制数 二进制数转换成八进制数:“三位并一位”,即以小数点为基准,整数部分从右至左,每三位一组,最高位不足时补0;小数部分从左至右,每三位一组,最低有效位不足时补0。然后,每组改成等值的一位八进制数即可。例如:(3.2)八进制数转换为二进制数 八进制数转换成二进制数:“一位拆三位”,即把一位八进制数写成等值的3位二进制数,然后按权连接即可。 (3.3)二进制数转换为十六进制数 二进制数转换成十六进制数:“四位并一位”,即以小数点为基准,整数部分从右至左,每四位一组,最高位不足时补0;小数部分从左至右,每
8、四位一组,最低有效位不足时补0。然后,每组改成等值的一位十六进制数即可。(3.4)十六进制数转换为二进制数 十六进制数转换成二进制数:“一位拆四位”,即把一位十六进制数写成等值的四位二进制数,然后按权连接即可。1.1.2 数值和非数值的表示1原码、反码、补码的表示计算机中参与运算的数据有两种:无符号数和有符号数数的值:二进制,用0、1表示符号:正、负号只能用0、1表示,且存放在最高数位上。正整数:它的原码、反码、补码相同,最高位为符号位(值为0),其它位是数值位,存放整数的二进制形式。负整数:三种编码表示方式不相同。 (1)原码 负数的原码最高位为符号位,值为1,其它位是数值位,存放负整数绝对
9、值的二进制形式。 如: -55原=10110111,-1原=10000001 在原码表示中,0有两种表示形式,即:+0原=00000000,-0原=10000000 (2)反码负数的反码最高位为符号位,值为1,数值位是原码的数值位按位求反。 如: -55反=11001000,-1反=11111110 在反码表示中,0也有两种表示形式,即: +0反=00000000,-0反=11111111(3)补码 负数的补码最高位为符号位,值为1,数值位是原码的数值位按位求反再加1,即反码加1。 如:-55补=11001001,-1补=11111111 在补码表示中,0只有一种表示形式,即: +0补=-0补
10、=00000000 计算机中将减法转换为加法的基础减去一个数,等于加上这个负数的补码。 高位丢失 负数的补码 10000101 还原后的原码:-52. 定点数和浮点数定点数小数点的位置固定的数,小数点的位置是约定默认的。 固定在机器数的最低位之后(称为定点纯整数),用于表示整数固定在符号位之后,数值位之前(称为定点纯小数),用于表示小于1的纯小数。 定点数表示法简单直观,但是表示的数值范围受表示数据的字长限制,运算时容易产生溢出。 符号位隐含小数点位置定点整数表示 隐含小数点位置符号位定点小数表示浮点数小数点的位置可以变动的数,类似十进制中的科学计数法。 在计算机中通常把浮点数分成阶码和尾数两
11、部分来表示。 例:1100101.011=0.11001010112111,其中阶码是(111)2,尾数是(0.1100101011) 2。 -0.0000101101=-0.1011012-100,其中阶码是(-100)2,尾数是(-0.101101) 2。一般浮点数在机器中的格式为: 指数的符号位幂次尾数的符号位规格化之后小数的值N = 尾数基数阶码浮点数 N = 尾数基数阶码浮点数是定点整数和定点小数的混合。阶码:是一个带符号的整数(定点整数)尾数:用纯小数表示数的有效部分(定点小数)阶码的位数决定数的范围,尾数的位数决定数的精度。例如:二进制数 -1001110110.101011 可
12、以写成: -0.1001110110101011 21010 若规定阶码8位,尾数24位表示,则这个数在机器中的格式为: 0 0001010 1 100111011010101100000003. 非数值表示(文字和符号)(1)ASCII码 ASCII码是美国国家标准信息交换码 (American National Standard Code for Information Interchange )的简称,是目前国际上使用最广泛的字符编码。 (2)二-十进制编码(BCD码)(3)汉字编码 输入码 交换码 机内码 字形码表1.2 ASCII字符编码表 十进制编码值为031、127的是控制字符,
13、不可打印,32是空格,其余94个是普通字符,有具体字形,可打印。09、AZ、az 的编码是顺序排列的二进制数的两种基本运算:算术运算包括:加、减、乘、除。逻辑运算包括:与、或、非。算术运算规则:“逢二进一,借一当二”加:0+0=0 0+1=1 1+0=1 1+1=10(向高位进一)减:0-0=0 1-0=1 1-1=0 0-1=1(向高位借一)乘:00=0 01=0 10=0 11=1除:01=0 11=1例: 111+1010=? 10.11010=?1.1.3 计算机运算基础1000111001 逻辑运算逻辑量间的运算称为逻辑运算,结果仍为逻辑量基本逻辑运算包括与(运算符)、或(运算符)、
14、非(运算符) 、异或(运算符)逻辑与运算规则:00=0 01=0 10=0 11=1逻辑或运算规则:00=0 01=1 10=1 11=1逻辑非运算规则:0=1 1=0 逻辑异或运算规则: 00=0 01=1 10=1 11=0二进制数的逻辑运算11011101=001000101101110110110100110111011011010010010100111111011101110110110100011010011.1.4 程序设计语言和程序执行机器语言机器语言:一系列的机器指令。与硬件密切相关,计算机能直接识别、执行,没有通用性。例:0110000010000001 (加法)0110
15、000010000001 (加法)0100000001000010 (减法)0100000001000010 (减法)汇编语言汇编语言:机器语言符号化,面向机器的程序设计语言,通用性差。必须由汇编程序将其翻译成机器语言程序后才可执行。MOV AX, 300HADD BX, AXMOV 2100H, BX HLT汇编程序连接程序汇编连接汇编语言源程序机器语言目标程序可执行程序(.ASM)(.OBJ)(.EXE)运行运行结果高级语言高级语言:面向问题的程序设计语言。通常源程序的每一条语句对应一组机器指令,它必须经过翻译程序,翻译成机器语言指令形式才能执行。void main( ) int a, b
16、, c; a=300; b=18; c=a+b; printf(“ a+b= %dn”, c);编译程序连接程序编译连接高级语言源程序机器语言目标程序可执行程序运行运行结果解释程序高级语言源程序解释执行运行结果1.2 C语言程序基本知识1.2.1 简单C语言程序示例 【例1-1】第一个程序/* 例1.1源程序,屏幕上输出字符串 */#include void main()printf(Welcome to CnA simple programn);注释编译预处理主函数语句输出:Welcome to CA simple program【例1-2】 一个简单的加法计算程序,求两个整数的和。#inc
17、lude void main() int x,y,sum; /定义变量 printf(Input data:n ); /显示提示信息 scanf(%d, &x); /输入一个整数 printf(Input data:n ); /显示提示信息 scanf(%d, &y); /输入一个整数 sum=x+y; /计算和 printf(sum=%dn, sum); /输出和 程序运行:Input data:34Input data:53sum=87 注释【例1-3】 输入三个数实数,输出其中的最大数。#includedouble max(double x, double y)/ 定义max函数 dou
18、ble m;/ 定义变量m if (xy) m=x;/ 比较两数x和y,较大者赋值给m else m=y; return m;/ 返回m的值void main() double a,b,c,t,maxdata; printf(Please input a b c:n ); scanf(%lf%lf%lf,&a,&b,&c); t=max(a,b); / 调用函数max,求a、b两较大者 maxdata=max(t,c); / 调用函数max,求t、c两较大者 printf(“max=%fn,maxdata); / 输出maxdata 程序运行:Please input a b c:7 9 -4max=9.000000函数1.2.2 C语言程序的结构函数 有且只能有一个主函数 main()编译预处理“#”开头全局变量注释 /* 注释内容 */ /
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024质检员考试复习试题及答案
- 2025年小学语文生动练习试题及答案
- 2025年小学一年级语文革新试题及答案
- 计算机基础基础知识提升技巧试题及答案
- 2024年古代文学史理论试题及答案
- 如何制定宠物营养计划考题及答案
- 汽车美容师团队发展策略试题及答案
- 小学六年级语文理解能力测验题及答案
- 汽车美容行业品牌建设知识试题及答案
- 旅游项目进度表
- 体育康养与心理健康促进的结合研究论文
- 天津市河东区2024-2025学年九年级下学期结课考试化学试题(含答案)
- 动物疾病的临床表现试题及答案
- 广东省广州市2025届高三下学期综合测试(一)英语试卷
- 山东省济南育英中学 2024-2025学年下学期七年级3月月考英语试题(原卷版+解析版)
- T-SDFA 049-2024 混合型饲料添加剂中安普霉素的测定 液相色谱-串联质谱法
- 2025技术服务合同模板
- 2025年保安证学习资源题及答案
- 公司事故隐患内部报告奖励制度
- 2025年甘肃甘南州国控资产投资管理集团有限公司面向社会招聘工作人员12人笔试参考题库附带答案详解
- 2025年高考数学第一次模拟考试(江苏卷1)(全解全析)
评论
0/150
提交评论