收藏 分销(赏)

C语言程序设计第一章第二章详解.ppt

上传人:w****g 文档编号:2380547 上传时间:2024-05-29 格式:PPT 页数:45 大小:272.52KB
下载 相关 举报
C语言程序设计第一章第二章详解.ppt_第1页
第1页 / 共45页
C语言程序设计第一章第二章详解.ppt_第2页
第2页 / 共45页
C语言程序设计第一章第二章详解.ppt_第3页
第3页 / 共45页
C语言程序设计第一章第二章详解.ppt_第4页
第4页 / 共45页
C语言程序设计第一章第二章详解.ppt_第5页
第5页 / 共45页
点击查看更多>>
资源描述

1、C语言语言程序设计程序设计主讲教师:陈菲主讲教师:陈菲华北电力大学(北京)华北电力大学(北京)课程说明课程说明教材教材C程序设计谭浩强,清华大学出版社程序设计谭浩强,清华大学出版社参考书参考书C语言解析教程语言解析教程Al Kelley,Ira Pohl,机械工业出版社机械工业出版社C高级实用程序设计王士元高级实用程序设计王士元,清华大学出版社,清华大学出版社C语言程序设计林碧英语言程序设计林碧英 等,中国电力出版社等,中国电力出版社课程说明课程说明课时安排课时安排学时:学时:56学时学时授课:授课:30学时(学时(115周)周)上机:上机:26学时(学时(315周)周)课程说明课程说明考核办

2、法考核办法笔试成绩(闭卷):笔试成绩(闭卷):70分分上机考试(闭卷):上机考试(闭卷):20分分平时成绩:平时成绩:10分分课程说明课程说明课程要求课程要求课前做好课前做好预习预习,有准备地听讲,有准备地听讲课堂保持头脑清醒,思维活跃,不要做与听课无关课堂保持头脑清醒,思维活跃,不要做与听课无关事情,如有问题,举手示意,或者下课讨论事情,如有问题,举手示意,或者下课讨论独立完成作业,要求作业都写在独立完成作业,要求作业都写在作业本作业本上上上机前,准备好本次上机要求的程序,上机前,准备好本次上机要求的程序,事先将程序事先将程序写在作业本上写在作业本上,上机时进行程序的调试和运行,上机时进行程

3、序的调试和运行珍惜每一次上机的机会,不准做与课程要求无关的珍惜每一次上机的机会,不准做与课程要求无关的事情,事情,严禁打游戏、上网和聊天严禁打游戏、上网和聊天课程说明课程说明我的联系方式我的联系方式陈菲陈菲 教教2-513 计算机系软件教研室计算机系软件教研室办公室电话:办公室电话:51963578答疑时间:周二下午答疑时间:周二下午第一章第一章 C语言概述语言概述C语言概述语言概述主要内容主要内容C语言的发展历史语言的发展历史C语言的主要特点语言的主要特点简单的简单的C程序程序C程序的上机步骤程序的上机步骤C语言的发展历史语言的发展历史计算机语言的发展历史计算机语言的发展历史CPUCPU指令

4、系统,由指令系统,由0 0、1 1序列构成的指令码组成序列构成的指令码组成如:如:10000000 10000000 加加10010000 10010000 减减用助记符号描述的指令系统用助记符号描述的指令系统如如 ADD A,BADD A,B实质上与机器语言一样实质上与机器语言一样都是对硬件进行操作都是对硬件进行操作接近于数学语言或人的自然语言,接近于数学语言或人的自然语言,不依赖于计算机硬件,可以在不同的不依赖于计算机硬件,可以在不同的计算机上运行计算机上运行计算机无法直接识别和执行高级语言,计算机无法直接识别和执行高级语言,必须经过编译程序的转换才能进行必须经过编译程序的转换才能进行面向

5、机器的语言面向机器的语言C语言的发展历史语言的发展历史C语言的发展历史语言的发展历史C语言产生于语言产生于1973年,贝尔实验室年,贝尔实验室最初的目的是为了描述和实现最初的目的是为了描述和实现UNIX OS而提供的一而提供的一种工作语言种工作语言1978,标准,标准C1983,ANSI C1990,ISO CC语言的特点语言的特点C语言的特点语言的特点语言简洁、紧凑,使用方便、灵活语言简洁、紧凑,使用方便、灵活一共一共32个关键字,个关键字,9种控制语句,书写形式自由种控制语句,书写形式自由运算符丰富、数据结构和控制结构丰富运算符丰富、数据结构和控制结构丰富语法限制不太严格,程序设计自由度大

6、语法限制不太严格,程序设计自由度大优点:增加了灵活性优点:增加了灵活性缺点:放宽了语法检查,需要编程人员熟练缺点:放宽了语法检查,需要编程人员熟练C语言的特点语言的特点属于属于中级语言中级语言既有高级语言的直观性,是既有高级语言的直观性,是通用的程序设计语言通用的程序设计语言又具有汇编等低级语言的功能:如直接访问物理地又具有汇编等低级语言的功能:如直接访问物理地址、进行位操作等,是址、进行位操作等,是成功的系统描述语言成功的系统描述语言可执行代码质量高、运行速度快、可移植性好可执行代码质量高、运行速度快、可移植性好,且,且可分块编译可分块编译简单的简单的C程序程序第一个第一个C程序程序 /*T

7、his is my first C program*/main()printf(Hello Word!n);/*This is my first C program*/main()printf(Hello Word!n);/*This is my first C program*/main()printf(Hello Word!n);注释注释(主)函数主)函数输出函数输出函数换行符换行符本程序的执行结果是:在屏幕上输出本程序的执行结果是:在屏幕上输出Hello World!_简单的简单的C程序程序求两个数的和求两个数的和 /*Calculate the sum of a and b*/main

8、()int a,b,sum;a=123;b=456;sum=a+b;printf(sum is%dn,sum);/*Calculate the sum of a and b*/main()int a,b,sum;a=123;b=456;sum=a+b;printf(sum is%dn,sum);注释注释 /*Calculate the sum of a and b*/main()int a,b,sum;a=123;b=456;sum=a+b;printf(sum is%dn,sum);格式字符串,格式字符串,表示以十进制输出变量表示以十进制输出变量sum的值的值定义变量定义变量给变量赋值给变量

9、赋值运行结果:运行结果:在屏幕上输出在屏幕上输出sum is 579_求两个数的和求两个数的和 简单的简单的C程序程序 /*Calculate the sum of a and b*/main()int a,b,sum;scanf(%d,%d,&a,&b);sum=add(a,b);printf(sum is%dn,sum);/*The function of addition*/int add(int x,int y)int z;z=x+y;return(z);主函数主函数函数函数add调用函数调用函数add sum=add(a,b);读入读入a,b的值的值 scanf(%d,%d,&a,&

10、b);求两个数的和求两个数的和 简单的简单的C程序程序 /*Calculate the sum of a and b*/main()int a,b,sum;scanf(%d,%d,&a,&b);sum=add(a,b);printf(sum is%dn,sum);/*The function of addition*/int add(int x,int y)int z;z=x+y;return(z);运行过程:运行过程:_ 1)等待输入)等待输入10 21 _2)用户输入)用户输入3)获得)获得 a=10且且b=21 运算并输出:运算并输出:10 21 sum is 31_函数的构成函数的构成

11、函数首部函数首部 函数类型函数类型 函数名(参数表)函数名(参数表)函数体函数体声明部分声明部分声明函数中用到的变量声明函数中用到的变量执行部分执行部分包括若干语句包括若干语句实现函数的功能实现函数的功能main()int a,b,sum;scanf(%d,%d,&a,&b);sum=add(a,b);printf(sum is%dn,sum);/*The function of addition*/int add(int x,int y)int z;z=x+y;return(z);函数首部函数首部函数首部函数首部声明部分声明部分声明部分声明部分执行部分执行部分执行部分执行部分结构特点结构特点

12、函数函数程序由一个或多个函数构成程序由一个或多个函数构成必须有且只能有一个主函数必须有且只能有一个主函数main()程序从程序从main()开始执行,开始执行,在在main()中结束中结束其他函数通过调用得以执行其他函数通过调用得以执行语句语句函数由语句构成函数由语句构成每条语句必须以每条语句必须以“;”中止中止注释注释/*/为注释,不能嵌套为注释,不能嵌套不产生编译代码,不执行不产生编译代码,不执行main()int a,b,sum;scanf(%d,%d,&a,&b);sum=add(a,b);printf(sum is%dn,sum);/*The function of addition

13、*/int add(int x,int y)int z;z=x+y;return(z);格式特点格式特点习惯用小写字母习惯用小写字母大小写敏感大小写敏感无程序行概念,无程序行概念,不使用行号不使用行号对空格和空行无限制对空格和空行无限制常用锯齿形书写格式常用锯齿形书写格式/*程序示例程序示例*/main()int i,j,sum;sum=0;for(i=1;i10;i+)for(j=1;j 2Step2:计算计算 2*3=6Step3:计算计算 6*4=24Step4:计算计算 24*5=120=求求n!=n!=1*2*(n-1)*n1=tt*2=tt=tt*3=tt=tt*n=tt=t算法举

14、例算法举例计算计算 n!的算法的算法Step1:输入输入nStep2:使使 t=1Step3:使使 i=2Step4:求求 t*i,将其结果继续赋值给变量将其结果继续赋值给变量 tStep5:使使 i 的值加的值加1,即,即 i+1=iStep6:若若 i 的值不大于的值不大于n,返回返回 Step4 继续执行继续执行Step7:输出输出 t(所求的所求的n!)的值,算法结束的值,算法结束初始化初始化=n!=n*(n-1)*2*11=tt*2=tt=tt*3=tt=tt*n=tt=t循环循环算法的特性算法的特性算法的特性:算法的特性:有穷性有穷性一个算法,应当在一个算法,应当在合理范围合理范围

15、内,包含内,包含有限有限的操作步骤的操作步骤确定性确定性算法的每一个步骤,都应当是确定的,算法的每一个步骤,都应当是确定的,不能有歧义不能有歧义输入和输出输入和输出一个算法应当有零个或多个输入,一个或多个输出一个算法应当有零个或多个输入,一个或多个输出有效性有效性算法的每个步骤都应能有效执行,如:算法的每个步骤都应能有效执行,如:5/0无法有效执行无法有效执行N-S流程图流程图省略了流程图中的流程线,适于结构化程序设计省略了流程图中的流程线,适于结构化程序设计算法的表示算法的表示自然语言自然语言通俗易懂,容易产生歧义通俗易懂,容易产生歧义流程图流程图标准符号标准符号三种基本结构(顺序、选择、循

16、环)三种基本结构(顺序、选择、循环)ABPAB成立成立不成立不成立PA成立成立不成立不成立ABP成立成立 不成立不成立A B当当 P 成立成立A伪代码伪代码介于自然语言和计算机语言之间,混合使用文字和符号介于自然语言和计算机语言之间,混合使用文字和符号或或BEGINread n1=t2=iwhile i ti+1=iprint tEND求求n!开始开始读入读入n的值的值置置t的初值为的初值为1置置i的初值为的初值为2当当 i=n 执行:执行:使使t=t*i使使i=i+1打印打印t的值的值结束结束结构化程序设计方法结构化程序设计方法例如:当我们写工作报告的时候,会这样处理例如:当我们写工作报告的

17、时候,会这样处理工作概况工作概况 第一阶段工作情况第一阶段工作情况 当遇到的问题当遇到的问题 今后打算今后打算工作报告工作报告第第一一点点第第二二点点第第三三点点第第一一个个第第二二个个第第三三个个结构化程序设计方法结构化程序设计方法基本思路:基本思路:基本思路:基本思路:把一个复杂问题的求解过程分阶段进行,每个阶段的处理把一个复杂问题的求解过程分阶段进行,每个阶段的处理把一个复杂问题的求解过程分阶段进行,每个阶段的处理把一个复杂问题的求解过程分阶段进行,每个阶段的处理过程都控制在人们容易理解和处理的范围内过程都控制在人们容易理解和处理的范围内过程都控制在人们容易理解和处理的范围内过程都控制在

18、人们容易理解和处理的范围内基本策略:基本策略:基本策略:基本策略:自顶向下,逐步求精,模块化设计,结构化编码自顶向下,逐步求精,模块化设计,结构化编码自顶向下,逐步求精,模块化设计,结构化编码自顶向下,逐步求精,模块化设计,结构化编码示例:示例:示例:示例:P33P33 例例例例2.222.22前续知识前续知识前续知识前续知识主要内容主要内容进制转换进制转换原码、反码和补码原码、反码和补码进制转换进制转换我们之前已经学习了我们之前已经学习了“进制进制”的概念的概念本书主要涉及二进制、八进制、十进制、十六进制本书主要涉及二进制、八进制、十进制、十六进制R进制转换成十进制进制转换成十进制设设R进制

19、数为:进制数为:an-1 an-2 a1 a0.a-1 a-m转换成十进制转换成十进制N:N=an-1Rn-1+an-2Rn-2+a1R1+a0R0 +a-1R-1a-mR-m(110011.10)2=125+124+121+120+12-1=(51.5)10(A12)16=10162+1161+2160 =(2578)10(1027)8=183+281+780 =(535)10进制转换进制转换十进制转换成十进制转换成R进制(整数部分)进制(整数部分)除除R取余法:取余法:余数余数66662 233332 216162 28 82 24 42 22 22 21 12 20 0 0 (0 (B

20、B0 0)1 (1 (B B1 1)0 (0 (B B2 2)0 (0 (B B3 3)0 (0 (B B4 4)0 (0 (B B5 5)1 (1 (B B6 6)(66)10=(1000010)2将将(66)(66)1010 转换成二进制转换成二进制进制转换进制转换十进制转换成十进制转换成R进制(整数部分)进制(整数部分)除除R取余法:取余法:余数余数66668 88 88 81 18 80 0 2 (2 (O O0 0)0 (0 (O O1 1)1 (1 (O O2 2)(66)10=(102)8将将(66)(66)1010 转换成八进制转换成八进制进制转换进制转换十进制转换成十进制转换

21、成R进制(整数部分)进制(整数部分)除除R取余法:取余法:余数余数666616164 416160 0 2 (2 (H H0 0)4 (4 (H H1 1)(66)10=(42)16将将(66)(66)1010 转换成十六进制转换成十六进制进制转换进制转换十进制转换成十进制转换成R进制(小数部分)进制(小数部分)乘乘R取整法:取整法:0.8 1 2 5 0.8 1 2 5 2 21.6 2 5 0 1 (1.6 2 5 0 1 (B B-1-1)0.6 2 5 00.6 2 5 0 2 21.2 5 0 0 1 (1.2 5 0 0 1 (B B-2-2)0.2 5 0 00.2 5 0 0

22、2 20.5 0 0 0 0 (0.5 0 0 0 0 (B B-3-3)2 21.0 0 0 0 1 (1.0 0 0 0 1 (B B-4-4)高位高位低位低位(0.8125)10=(0.1101)2把把(0.8125)10转换成二进制转换成二进制进制转换进制转换十进制转换成十进制转换成R进制(小数部分)进制(小数部分)乘乘R取整法:取整法:0.8 1 2 5 0.8 1 2 5 8 86.5 0 0 0 6 (6.5 0 0 0 6 (O O-1-1)0.5 0 0 00.5 0 0 0 8 84.0 0 0 0 4 (4.0 0 0 0 4 (O O-2-2)(0.8125)10=(0

23、.64)8把把(0.8125)10转换成八进制转换成八进制进制转换进制转换十进制转换成十进制转换成R进制(小数部分)进制(小数部分)乘乘R取整法:取整法:0.8 1 2 5 0.8 1 2 5 1 61 613.0 0 0 0 13.0 0 0 0 D (HD (H-1-1)(0.8125)10=(0.D)16把把(0.8125)10转换成十六进制转换成十六进制原码、补码和反码原码、补码和反码原码原码将真值将真值X的正、负号分别换成的正、负号分别换成0和和1,就得到了,就得到了X的原码的原码记做记做X原原x=+1001011 x原原=01001011x=-1100111x原原=11100111

24、+0原原=00000000-0原原=10000000原码、补码和反码原码、补码和反码反码反码正数的反码等于原码正数的反码等于原码负数的反码等于其原码除符号位外,按位取反负数的反码等于其原码除符号位外,按位取反x=+1001011 x原原=01001011 x反反=01001011x=-1100111 x原原=11100111 x反反=10011000+0原原=00000000+0反反=00000000-0原原=10000000-0反反=11111111原码、补码和反码原码、补码和反码补码补码补码的作用是:能够把减法运算转换为加法运算补码的作用是:能够把减法运算转换为加法运算模:是指一个计量系统

25、的计数范围。模:是指一个计量系统的计数范围。例如,时钟的计量范围是例如,时钟的计量范围是0到到11,模,模=12。N位计算机的计量范围:位计算机的计量范围:0到到111=2n-1n个个1模实质上是指计量器产生模实质上是指计量器产生“溢出溢出”的量,它的值在计量的量,它的值在计量器上表示不出来,计量器上只能表示出模的余数。器上表示不出来,计量器上只能表示出模的余数。任何有模的计量器,均可化减法运算为加法运算任何有模的计量器,均可化减法运算为加法运算。模模=2n原码、补码和反码原码、补码和反码补码补码设当前的时针指向设当前的时针指向6 6点点现要将其调到现要将其调到4 4点。有两种调法:点。有两种

26、调法:逆时针拨逆时针拨2 2小时小时,即即 6-2=4 6-2=4 顺时针拨顺时针拨1010小时,即小时,即 6+10=16=12+4=4 6+10=16=12+4=4 因此,在以因此,在以1212为模的系统中,加为模的系统中,加 10 10 和减和减 2 2 效果一样。对效果一样。对模而言,它们互为补数(两者相加等于模模而言,它们互为补数(两者相加等于模).).原码、补码和反码原码、补码和反码补码补码字长为字长为n位的整数的补码的定义为位的整数的补码的定义为正数的补码等于其原码正数的补码等于其原码负数的补码等于其反码加负数的补码等于其反码加1x=+1001011 x原原=x反反=x补补=01001011x=-1100111 x原原=11100111 x反反=10011000 x补补=10011001+0原原=+0反反=+0补补=00000000-0原原=10000000 -0反反=11111111 -0补补=00000000原码、补码和反码原码、补码和反码补码补码x原原=x补补补补x+y补补=x补补+y补补

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 考试专区 > 中考

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服