C语言程序设计1[1].ppt_第1页
C语言程序设计1[1].ppt_第2页
C语言程序设计1[1].ppt_第3页
C语言程序设计1[1].ppt_第4页
C语言程序设计1[1].ppt_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

1、C语言程序设计第一章 C语言概述,华东师范大学物理系 2011.09.05 ,现 代 计 算 机 体 系 结 构,冯诺依曼计算机模型,冯诺依曼计算机的特点,程序以二进制代码的形式存放在存储器中; 所有的指令都是由操作码和操作数(地址)组成; 指令按照执行顺序存储; 以运算器和控制器作为计算机组织结构的中心 。,二进制数,具有两个不同的数字符号,即 0 和 1 ; 逢 2 进位。,(10.11)2=(121+020+12-1+12-2)10 = (2+0+0.5+0.25)10 =(2.75)10 = (2100 + 710-1 + 510-2)10,举 例,十进制数转换成二进制数,十进制数转换

2、为二进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并。 十进制整数转换为二进制整数采用“除2取余,逆序排列”法。具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为0时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。 十进制小数转换成二进制小数采用乘2取整,顺序排列法。具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者小数部分为

3、1,此时1位二进制的最后一位。或者达到所要求的精度为止。,例:将十进制19.95 转换成2进制数。 1、小数点前 192=9 余1 92=4 余1 42=2 余0 22=1 余0 12=0 余1, 商等于0,结束 由下往上逆序取余数 10011 2、小数点后 0.952 = 1.9 取整1 (1.9-1)2 = 1.8 取整1 (1.8-1)2 = 1.6 取整1 (1.6-1)2 = 1.2 取整1 (1.2-1)2 = 0.4 取整0 (0.4-0)2 = 0.8 取整0 (0.8-0)2 = 1.6 取整1 (1.6-1)2 = 1.2 取整1 假设小数精度为8位,从上往下取,则小数点后

4、为 0.11110011 故19.95 转化为二进制为 10011.11110011,常用数据长度的单位,位 (Bit) 计算机能表示的最基本(最小)的数据单元。 字 (Word)和字长 计算机内部进行数据处理的基本单位,通常它与计算机内部的寄存器、运算装置、总线的宽度一致。计算机每一个字包含的二进制位数称为字长。 字节(Byte) 8个二进制数。1Byte = 8 Bit,内存结构,1Byte,可以把内存想象为两维方格,方格宽度是8,每个方格就是一个Bit,横向每8各方格就是一个Byte。,01001000,1Bit,每个方格任何时刻只有高低电位两种状态中的一种状态出现。其中一种状态代表0,

5、另一种状态代表1。,指令、程序和计算机语言,计算机内两数相加一般需要如下几个步骤完成 把第一个数从存储单元中取出,送至运算器; 把第二个数从存储单元中取出,送至运算器; 在运算器内进行两数相加; 把相加的结果送至指定的存储单元。 取数,送数,相加,存放每个操作都是一条指令。计算机系统能够执行的所有指令叫做该计算机系统的指令集。 为完成某一项工作而为计算机编写的指令集合叫做计算机程序。 表示计算机程序的语法规则和方法就是计算机语言。,关于计算机语言,计算机指令集是由计算机硬件电路的设计所决定的,一个计算机系统的指令集不能改变。 冯诺依曼计算机指令在计算机内部存储时,它对应着某存储单元各位(Bit

6、)的一定物理状态(如高、低电位)的组合。由于一个Bit只有两种状态,用数字0和1对这两种状态进行描述是一种自然而又直接的方式。因此,一条指令就可以用一个二进制数表示(一组由数字0和1表示的数)。 一个计算机程序是多条指令的集合,也就是用多个二进制数。这种表示程序的方式就是最简单的计算机语言(机器语言)。,1.计算机语言简介,机器语言 1011 0000 0000 0111 0000 0100 0000 1010 1111 0100 汇编语言 MOV AL, 7 ADD AL, 10 HLT 高级语言 7 + 10,机器语言编写的程序具有很高的执行效率,可以立即上机执行,但除了专业人员外几乎无法

7、看懂,程序的设计难度大,不便记忆。 可移植性低。,汇编语言相对机器语言更便于阅读和编写,但不能立即上机运行,需要将它编译为机器语言程序才能执行,效率很高。 汇编语言不接近人类的自然语言,阅读困难。 可移植性差。,接近人类的自然语言,阅读书写方便。 需要编译为机器语言才能运行。 可移植性能好。 效率相对低。,#include /* EXAMPLE_01*/ void main( void ) printf( “This is a simple C program.n” ); ,2.简单的C语言程序,This is a simple C program.,C语言中以#开始的是预处理命令。它是在程序

8、编译以前由预处理器(一个特殊的程序)处理的。 #include的功能就是用stdio.h文件中的内容替代当前行。 C语言中/* */为注释,它的存在与否不会对程序的运行产生任何影响,主要是给程序阅读者看的,使他(她)更容易读懂程序。 /* */可以放在程序的任何位置。,printf( ) 是一输出函数,其功能是把圆括弧内的参数按照一定的格式输出到显示器上。程序中的n就是格式说明,它表示把This is a simple program. 原样输出到显示器后,光标移到下一行。 printf( )连同其后的分号构成了一条C语言的执行语句。C语言程序的语句后面一定要用分号结束。 printf函数是由

9、编译系统提供的,该函数的说明在头文件stdio.h中。,一个C语言源程序有且必须只能有一个名称为main的函数,其格式一般为: void main( void ) 一个C语言程序的执行总是从main函数开始。,C语言程序是由函数构成的!,: 请你参照EXAMPLE_01写一个C语言程序,其功能是在显示器上显示: Hello,this is my first C program.,#include void main( void ) printf( “Hello,this is my first C program.n” ); ,#include /* EXAMPLE_02 */ void ma

10、in( void ) int x, y, z; x = 12; y = 13; z = x + y; printf( “%2d + %2d = %2dn”, x, y, z ); ,12 + 13 = 25,int x,y,z; 是一条变量定义语句,其功能是告诉计算机在内存中预留三个存储单元,并将其命名为x,y和z,也可以用其它的名称,由程序作者定。 关键字int 是这三个存储单元的格式说明。它规定这三个存储单元只能存储整数。 注意,该语句后面应该有一个分号,名称x,y,z之间用逗号隔开。,printf函数中的三个%2d都是格式说明字符,分别对应内存单元x,y和z的输出格式说明。 %2d说明内

11、存单元按照整数形式输出,并且占用两个字符的宽度。 双撇号” ”内部除了格式说明符外,其它的内容原样输出。,: 请你参照EXAMPLE_02写一个C语言程序,其功能是在显示器上显示10378, 20152, 78932, 12579四个整数的和。,#include void main( void ) int i1, i2, i3, i4, isum; i1 = 10378; i2 = 20152; i3 = 78932; i4 = 12579; isum = i1 + i2 + i3 + i4; printf( “%6dn”, isum ); ,#include /* EXAMPLE_03 */

12、 /* definition of function max */ int max( int x, int y ) if( x y ) return ( x ); else return ( y ); /*continued on next page */,int max( int x, int y ) 是一个函数的头部。其中,第一个int是函数的返回值类型。名称max后面的圆括号内两个 int 分别表示内存单元 x和y中存储的数值的类型。x和y叫做该函数的形式参数。 函数头部的一般格式是 函数返回值类型 函数名( 参数类型 参数名,) 函数参数可以有多个,函数名和参数名都可以由作者自定。,v

13、oid main( void ) int a, b, c; a = 100; b = 200; c = max( a, b ); printf( “The larger integer of %3d and %3d is %3d.n”, a, b, c ); ,The larger integer of 100 and 200 is 200.,赋值语c=max(a,b)是一个函数调用,其功能是把函数max得到的值存储到内存单元c中。 (a,b)表示把内存a,b中存储的值分别拷贝给内存单元x和y。 圆括号内的a,b叫做函数max的实际参数。实际参数的个数一定要和形式参数的个数相等。,一条语句一行

14、写不下可以写成多行。,: 请你参照EXAMPLE_03写一个C语言程序,其功能是计算并在显示器上显示10378, 20152,两者中较小的.,#include int min( int p, int q ) if( p q ) return ( p ); else return ( q ); /*continued on next page */,void main( void ) int a, b, c; a = 10378; b = 20152; c = min( a, b ); printf( “The smaller integer of %5d and %5d is %5d.n”,

15、a, b, c ); ,#include /*EXAMPLE_04*/ void main( void ) int a, b, c; scanf( “%d, %d”, ,scanf(“%d,%d”,”(分号)作为终止符。 C语言程序书写自由,一行内可以写几个语句,一个语句也可以写在多行。 一个较完整的程序大致包括:包含文件(一组#include 语句)、用户函数说明部分、全程变量定义、主函数和若干子函数组成。在主函数和子函数中又包括局部变量定义、若干个C语言库函数、控制流程语句、 用户函数的调用语句等; 注释部分包含在/*和*/之间, 在编译时它被C编译器忽略。,4. C语言程序的编译与运行,

16、编辑 用文本编辑器编写源程序。 编译 用编译程序将源程序翻译为目标代码。 连接 将目标代码连接成完整的可执行程序。 运行 运行可执行程序。,5. C语言程序的编译与运行举例,编辑 运行TurboC程序,打开菜单FileNew输入C语言源程序,并用菜单FileSave保存 。 编译 用菜单命令Compile Complie编译,如果出现错误回到上一步继续修改程序 。 连接 用菜单命令Compile Link连接程序。 运行 用菜单命令Run运行程序。,习 题,编写一个C语言程序,要求从键盘输入3个整数,输出其中的最大者和最小者。要求:求三个整数的最大和最小者分别用函数实现。 如何把十进制数转换成八(十六)进制数,写出你的

温馨提示

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

评论

0/150

提交评论