第1章-概论-C语言

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

2020/9/16华中科技大学计算机学院C语言课程组1C语言与程序设计TheCProgrammingLanguage第1章概论华中科技大学计算机学院2020/9/16华中科技大学计算机学院C语言课程组2主要内容1.程序设计语言与程序设计2.学习C语言程序设计的第一个例子。3.C语言的产生与发展,C语言的语言特征,C语言的标准。4.计算机硬件系统的组成,数的编码表示以及数在内存中的表现形式。5.算法的概念及其表示方法。6.对C语言程序设计作了概略性的介绍。7.同时介绍了N进制数,数之间转换的方法,以及原码、补码、反码及其相关运算。2020/9/16华中科技大学计算机学院C语言课程组31.1程序设计语言与程序设计计算机语言包括机器语言、汇编语言和高级语言这三类语言。如果不涉及汇编语言,程序设计语言往往就是指高级语言。程序设计语言是以具有特定语义的符号为基本构成单位、以语法为程序构成规律、专门用于定义、组织、并完成各种各样的计算任务而形成的体系。2020/9/16华中科技大学计算机学院C语言课程组4程序与程序设计程序是用程序设计语言表示的计算机解题算法或计算机解题任务。程序设计是将解题任务转变成程序的过程。NellDale等人指出:程序就是要求计算机执行的指令序列。程序设计就是如何计划、安排计算机必须遵循的操作步骤及顺序的过程。2020/9/16华中科技大学计算机学院C语言课程组51.2学习C语言程序设计的第一个例子例1.1输入自己的名字的汉语拼音,要计算机问候自己并且输出这是自己学习C语言的第一个程序的句子。2020/9/16华中科技大学计算机学院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/9/16华中科技大学计算机学院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/9/16华中科技大学计算机学院C语言课程组8操作例1.1的程序点开SourceFiles目录,可以看见hello.c文件,双击hello.c,在右侧文本编辑区域输入例1.1中的源程序。选Build,再选下拉菜单中的RebuildAll。此时VC编译器将对源程序进行编译、链接,并且生成名字为Myproject.exe的可执行文件。选Build,再选ExecuteMyproject.exe运行Myproject.exe程序2020/9/16华中科技大学计算机学院C语言课程组9例1.1的程序的结果人机交互与运行结果如下:Inputyournameplease!PingLi(此为输入信息)HelloPingLi!ThisisthefirstprogramforPingLitolearnCprogramming!2020/9/16华中科技大学计算机学院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/9/16华中科技大学计算机学院C语言课程组121.3C语言的产生、发展与语言特征1.3.1C语言的产生与发展MatinRichards(BCPL语言)KenThompson(B语言)DennisM.Ritchie(C语言,C语言之父,UNIX之父)2020/9/16华中科技大学计算机学院C语言课程组131.3.2C语言的标准化以1978年K&RC为代表的C语言被称为传统的C语言1989年底公布美国第一个C语言的国家标准ANSI89,简称C891990年,国际标准化组织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/9/16华中科技大学计算机学院C语言课程组141.3.3C语言的特征1)语言简洁紧凑2)目标代码质量高3)语言表达能力强4)流程控制结构化5)弱类型6)“中级语言”特性7)书写自由、使用灵活8)可移植性好2020/9/16华中科技大学计算机学院C语言课程组151.4计算机系统及内存编址一台计算机硬件系统由CPU、内存、外存、其他I/O设备和总线组成。CPU又称为中央处理器。CPU又是由运算器、控制器、指令计数器、内部寄存器、标志寄存器等部件组成。内存又称为内存储器,用以存放程序和数据。总线是用以连接计算机各个部件的线路,它完成各个部件之间的信息传送。根据传送信号种类的不同,总线又分成地址总线、数据总线和控制总线。2020/9/16华中科技大学计算机学院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/9/16华中科技大学计算机学院C语言课程组17外存和其他I/O设备外存指计算机的外存储器。常用的硬盘、软盘、U盘、光盘、以及磁盘阵列都属于外存。外存存储的信息在断电之后仍然能够保存。其他I/O设备:键盘,显示器,打印机,绘图仪2020/9/16华中科技大学计算机学院C语言课程组181.5数和字符的编码表示1.5.1进位计数制数量用于描述事物的多少。数目则是表示事物的个数。而表示数目的符号则是数字,往往简称为数。一个数在不同的进位制下具有不同的表示,因而形成数制的概念。数制是关于记数的法则。根据进位基数的不同,常用的有十进制、二进制、八进制、十六进制等。2020/9/16华中科技大学计算机学院C语言课程组191.二进制数及其运算1)二进制数二进制数是由0和1组成的数字串。对于一个二进制数来讲,它具有两个下面基本特点:(1)只有0和1两个不同的数字符号。(2)逢2进位1。2020/9/16华中科技大学计算机学院C语言课程组20二进制数的权值对由进位计数制描述的数来讲,一个数字符号在该数的不同的数位具有不同的权(也称为权值或基值),因此所表现的值是不一样的。二进制数也是如此。二进制数中不同的数位所具有的权值见教材表1.1二进制数的权值.二进制数整数(10110110)2的值是:(10110111)2=127+026+125+124+023+122+121+120=(183)10而带二进制小数的二进制数(1011.1101)2的值是:(1011.1101)2=123+022+121+120+12-1+12-2+02-3+12-4=(11.8125)102020/9/16华中科技大学计算机学院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/9/16华中科技大学计算机学院C语言课程组22二进制加法举例例1.2二进制加法举例,求(10110111)2+(01011011)2的和。10110111+01011011进位1111111100010010所以,(10110111)2+(01011011)2=(100010010)22020/9/16华中科技大学计算机学院C语言课程组23二进制减法举例例1.3二进制减法举例,求(10110111)2-(01011011)2的差。借位101100010110111-0101101101011100所以,(10110111)2-(01011011)2=(01011100)22020/9/16华中科技大学计算机学院C语言课程组242.八进制数及其运算八进制数是由0到7组成的数字串。八进制数具有如下两个基本特点:(1)只有0,1,2,3,4,5,6,7八个不同的数字符号。(2)逢8进位1。在C语言中,通过加前导零的方式来表示一个数是八进制数。如:0136表示的是八进制数(136)8。2020/9/16华中科技大学计算机学院C语言课程组253.十六进制数及其运算将4位二进制数组合成为十六进制数。与二进制、八进制数类似,十六进制数也有两个基本特点:(1)只有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F十六个不同的数字符号(AF也可以采用小写英文字母af)。这十六个数字符号与二进制、八进制、十进制数之间的关系如表1.2所示。(2)逢16进位1。在C语言中,通过加前导0x或前导0X的方式来表示一个数是十六进制数。如:0x2d5b表示的是十六进制数(2d5b)16。0XABCD也是合法的十六进制数。2020/9/16华中科技大学计算机学院C语言课程组26表1.2十六进制的16个不同数字符号与十进制、八进制、二进制数之间的关系2020/9/16华中科技大学计算机学院C语言课程组27十六进制加减法运算举例例1.5十六进制加减法运算举例,求0XABCD与(2d5b)16的和,以及0XABCD与(2d5b)16的差。

1 / 63
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功