您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 第1章 概论-C语言
2020/1/19华中科技大学计算机学院C语言课程组1C语言与程序设计TheCProgrammingLanguage第1章概论华中科技大学计算机学院2020/1/19华中科技大学计算机学院C语言课程组2主要内容1.程序设计语言与程序设计2.学习C语言程序设计的第一个例子。3.C语言的产生与发展,C语言的语言特征,C语言的标准。4.计算机硬件系统的组成,数的编码表示以及数在内存中的表现形式。5.算法的概念及其表示方法。6.对C语言程序设计作了概略性的介绍。7.同时介绍了N进制数,数之间转换的方法,以及原码、补码、反码及其相关运算。2020/1/19华中科技大学计算机学院C语言课程组31.1程序设计语言与程序设计计算机语言包括机器语言、汇编语言和高级语言这三类语言。如果不涉及汇编语言,程序设计语言往往就是指高级语言。程序设计语言是以具有特定语义的符号为基本构成单位、以语法为程序构成规律、专门用于定义、组织、并完成各种各样的计算任务而形成的体系。2020/1/19华中科技大学计算机学院C语言课程组4程序与程序设计程序是用程序设计语言表示的计算机解题算法或计算机解题任务。程序设计是将解题任务转变成程序的过程。NellDale等人指出:程序就是要求计算机执行的指令序列。程序设计就是如何计划、安排计算机必须遵循的操作步骤及顺序的过程。2020/1/19华中科技大学计算机学院C语言课程组51.2学习C语言程序设计的第一个例子例1.1输入自己的名字的汉语拼音,要计算机问候自己并且输出这是自己学习C语言的第一个程序的句子。2020/1/19华中科技大学计算机学院C语言课程组6例1.1的程序1.#includestdio.h2.voidshow(charstr[]);3.intmain(void)4.{5.charname[20];6.printf(Inputyournameplease!\n);7.gets(name);8.printf(Hello%s!\n,name);9.show(name);10.return0;11.}12.voidshow(charstr[])13.{14.printf(Thisisthefirstprogramfor%stolearnCprogramming!\n,str);15.}源程序\ex1_1.c2020/1/19华中科技大学计算机学院C语言课程组7操作例1.1的程序双击VisualC++6.0(即VC6.0)图标打开VC6.0选File,再选下拉菜单中的New,在New窗口中的Project页(缺省)中选择Win32ConsoleApplication(选中变蓝),并且在ProjectName编辑框中输入工程名,如:Myproject。再单击OK按钮,在打开的窗口中单击Anemptyproject(缺省),再单击Finish按钮。在打开的窗口中单击OK按钮。此时VC将创建一个空的工程。单击FileView,选中SourceFiles(变成蓝色),选File,再选下拉菜单中的New,单击C++SourceFile(变成蓝色),在File编辑框中输入hello.c2020/1/19华中科技大学计算机学院C语言课程组8操作例1.1的程序点开SourceFiles目录,可以看见hello.c文件,双击hello.c,在右侧文本编辑区域输入例1.1中的源程序。选Build,再选下拉菜单中的RebuildAll。此时VC编译器将对源程序进行编译、链接,并且生成名字为Myproject.exe的可执行文件。选Build,再选ExecuteMyproject.exe运行Myproject.exe程序2020/1/19华中科技大学计算机学院C语言课程组9例1.1的程序的结果人机交互与运行结果如下:Inputyournameplease!PingLi(此为输入信息)HelloPingLi!ThisisthefirstprogramforPingLitolearnCprogramming!2020/1/19华中科技大学计算机学院C语言课程组101.#includestdio.h/*文件包含编译预处理命令*/2.voidshow(charstr[]);)/*函数原型说明语句*/3.intmain(void)/*主函数*/4.{5.charname[20];)/*声明语句*/6.printf(“Inputyournameplease!\n”);)/*输出提示*/7.gets(name);)/*读取用户名字*/8.printf(Hello%s!\n,name);/*输出Hello和用户名*/9.show(name);/*调用show函数*/10.return0;11.}12.voidshow(charstr[]))/*show函数的定义*/13.{14.printf(“Thisisthefirstprogramfor%stolearnC\programming!\n”,str);/*上行尾的\是续行标志*/15.}直接打开ex1_1.c,里面有详细注释源程序\ex1_1.c1.2.2解释分析第一个C程序2020/1/19华中科技大学计算机学院C语言课程组121.3C语言的产生、发展与语言特征1.3.1C语言的产生与发展MatinRichards(BCPL语言)KenThompson(B语言)DennisM.Ritchie(C语言,C语言之父,UNIX之父)2020/1/19华中科技大学计算机学院C语言课程组131.3.2C语言的标准化以1978年K&RC为代表的C语言被称为传统的C语言1989年底公布美国第一个C语言的国家标准ANSI89,简称C891990年,国际标准化组织ISO将其接受为C语言的国际标准,称为ISO/IEC9899-1990。它是C语言的第一个国际标准,也称为标准C,简称C90。ISO/IEC在1995年公布了一个新的C语言标准草案,称为C95,供讨论和征求意见。接着ISO/IEC在1998年又公布新标准的草案WG14/N843和WG14/N897,进一步就C语言标准的完善征求意见。ISO/IEC于1999年12月公布了C语言国际标准ISO/IEC9899:1999(E)。它是C语言国际标准9899的第二版。ISO/IEC于2011年12月公布了C语言国际标准ISO/IEC9899:2011。它是C语言国际标准9899的第三版。2020/1/19华中科技大学计算机学院C语言课程组141.3.3C语言的特征1)语言简洁紧凑2)目标代码质量高3)语言表达能力强4)流程控制结构化5)弱类型6)“中级语言”特性7)书写自由、使用灵活8)可移植性好2020/1/19华中科技大学计算机学院C语言课程组151.4计算机系统及内存编址一台计算机硬件系统由CPU、内存、外存、其他I/O设备和总线组成。CPU又称为中央处理器。CPU又是由运算器、控制器、指令计数器、内部寄存器、标志寄存器等部件组成。内存又称为内存储器,用以存放程序和数据。总线是用以连接计算机各个部件的线路,它完成各个部件之间的信息传送。根据传送信号种类的不同,总线又分成地址总线、数据总线和控制总线。2020/1/19华中科技大学计算机学院C语言课程组16内存编址,内存容量,字长内存以字节为单位线性连续编址。即按照0x0000,0x0001,0x0002,…的方式;从低地址端开始向高地址端为每一个内存字节进行顺序连续编号。1024个字节称为1K字节,1024K字节称为1M字节,1024M字节称为1G字节。1024G字节称为1T字节。CPU数据总线的宽度(bit数)称为计算机的机器字长。对8位CPU,机器字长为1字节;对16位CPU,机器字长为2字节;对32位CPU,机器字长为4字节。2020/1/19华中科技大学计算机学院C语言课程组17外存和其他I/O设备外存指计算机的外存储器。常用的硬盘、软盘、U盘、光盘、以及磁盘阵列都属于外存。外存存储的信息在断电之后仍然能够保存。其他I/O设备:键盘,显示器,打印机,绘图仪2020/1/19华中科技大学计算机学院C语言课程组181.5数和字符的编码表示1.5.1进位计数制数量用于描述事物的多少。数目则是表示事物的个数。而表示数目的符号则是数字,往往简称为数。一个数在不同的进位制下具有不同的表示,因而形成数制的概念。数制是关于记数的法则。根据进位基数的不同,常用的有十进制、二进制、八进制、十六进制等。2020/1/19华中科技大学计算机学院C语言课程组191.二进制数及其运算1)二进制数二进制数是由0和1组成的数字串。对于一个二进制数来讲,它具有两个下面基本特点:(1)只有0和1两个不同的数字符号。(2)逢2进位1。2020/1/19华中科技大学计算机学院C语言课程组20二进制数的权值对由进位计数制描述的数来讲,一个数字符号在该数的不同的数位具有不同的权(也称为权值或基值),因此所表现的值是不一样的。二进制数也是如此。二进制数中不同的数位所具有的权值见教材表1.1二进制数的权值.二进制数整数(10110110)2的值是:(10110111)2=127+026+125+124+023+122+121+120=(183)10而带二进制小数的二进制数(1011.1101)2的值是:(1011.1101)2=123+022+121+120+12-1+12-2+02-3+12-4=(11.8125)102020/1/19华中科技大学计算机学院C语言课程组212)二进制数的运算二进制加法规则有四条:①0+0=0②0+1=1+0=1③1+1=0向高位进位1④1+1+1=1向高位进位1二进制减法规则也有四条:①0-0=0②1-1=0③1-0=1④0-1=1向高位借位12020/1/19华中科技大学计算机学院C语言课程组22二进制加法举例例1.2二进制加法举例,求(10110111)2+(01011011)2的和。10110111+01011011进位1111111100010010所以,(10110111)2+(01011011)2=(100010010)22020/1/19华中科技大学计算机学院C语言课程组23二进制减法举例例1.3二进制减法举例,求(10110111)2-(01011011)2的差。借位101100010110111-0101101101011100所以,(10110111)2-(01011011)2=(01011100)22020/1/19华中科技大学计算机学院C语言课程组242.八进制数及其运算八进制数是由0到7组成的数字串。八进制数具有如下两个基本特点:(1)只有0,1,2,3,4,5,6,7八个不同的数字符号。(2)逢8进位1。在C语言中,通过加前导零的方式来表示一个数是八进制数。如:0136表示的是八进制数(136)8。2020/1/19华中科技大学计算机学院C语言课程组253.十六进制数及其运算将4位二进制数组合成为十六进制数。与二进制、八进制数类似,十六进制数也有两个基本特点:(1)只有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F十六个不同的数字符号(AF也可以采用小写英文字母af)。这十六个数字符号与二进制、八进制、十进制数之间的关系如表1.2所示。(2)逢16进位1。在C语言中,通过加前导0x或前导0X的方式来表示一个数是十六进制数。如:0x2d5b表示的是十六进制数(2d5b)16。0XABCD也是合法的十六进制数。2020/1/19华中科技大学计算机学院C语言课程组26表1.2十六进制的16个不同数字符号与十进制、八进制、二进制数之间的关系2020/1/19华中科技大学计算机学院C语言课程组27十六进制加减法运算举例例1.5十六进制加减法运算举例,求0XABCD与(2d5b)16的和,以及0XABCD与(2d5b)16的差。
本文标题:第1章 概论-C语言
链接地址:https://www.777doc.com/doc-3176634 .html