视频链接:https://v.qq.com/x/page/k31095as1pp.html
现在就开始上课。今天讲的课程是 c语言的第一课时程序设计基础知识,首先是分为三个部分,一个是基础课学习指南,一个是程序与程序语言,再一个是算法和算法表示。那么首先书籍的话,这本书是咱们官网上推荐的,就是先认准,如果要买的话就买它,然后另外一本书是 c语言程序设计教程习题与上级指导,这本书的话可以后期刷题的时候使用,主要理论知识是看这本书,然后这本书上面也有一些习题,如果要后期大量刷题的话,可以选择这本书。 软件推荐的话,因为你平常如果去自习室的话,背一个电脑不是很方便,如果是屏保系统的话,推荐 c语言编编译器或者说 c加加的program,这两个软件的话是可以它上面不仅有习题,还有一些可以让你随时编程去执行,就很方便,然后安卓系统的话推荐这两个编译器也是很方便的。像电脑的话,我用的是这个软件在我是windows,电脑在软件商城里面可以直接搜得到,然后这个的话它是同时可以撇cc语言和c加加语言,那么在在写一个程序之前要新建项目,然后选择 c语言就没有问题了。 现在就开始我们今天的主要课程是第二部分的话是程序程序、语言,先给大家介绍一下计算机语言。首先计算机语言的话,他的意思就是说人和计算机都能容易接受的语言,它是有限规则的集合,那么他的目的就是把我们的意图转达给计算机,让计算机去替代我们去执行操作,那么它的特点就是非常简单易学,因为它是有限规则的集合,而且它的规则是非常严谨的,因为你是要跟计算机去表达你的意图,如果说你表达的意图不严谨的话,那么就会造成一个计算机无法执行,或者说它执行出来的结果不是你想要的。计算机它的一个发展过程是这样的,按使用方法和功能分为低级语言和高级语言,向低级语言有机器语言还有汇编语言。 机器语言的话就是完全用二进制代码表示,它是面向计算机的,因为是二进制代码,因为电脑也是计算机也是二进制代码的,所以说不用翻译,它占内存少,执行速度快,但是它的通用性差,难以阅读和记忆,像二进制代码话,其实有些时候非常简单的意思,它会表达得非常长,所以说它的通用性差也难以阅读和记忆,像接下来就演变成了汇编语言。它是通过一些注记符号,它是面向它也是面向计算机的,它相对于计算机语言而言,它的程序是简短易读的,也是便于维护的。而且而且它是要比计算机语言更加容易记忆的,因为它是有一些注记符号,不是完全的二进制代码。 接下来的话到了一些高级语言,高级语言像c然后还有他们的话是完全符号化,就和这之前不同的它是完全符号化的一个过程,而且它是面向过程的。面向过程可以这样理解就是说它是一个对于你想达到的目的,你要去编写如何通过一些有限的步骤把它做出来的。大概你要是你要去编写一些过程,大概是这样理解,然后他的话会比之前的所有语言要简,但是随着代码的增加,它的维护性会变差。我们学的c就是高级语言之后的话是非过程化语言,就是一个进阶版本,它是第4代的,有c加加加或者是Python,它是完全符号化的,而且是面向对象就是说我要构造出一个对象,让他去完成这些事情。 之后的话,它的可扩展性是非常强的,维护成本非常低,但是它新手上新手上手会稍微难一点,因为他有很多很多对象,你要构建很多对象,或者说有很多的很多的苦,那些不是很好去记忆,是这样的一个点。然后对于我们来说,我们只要知道 c语言大概是这样的,还有他们的一个发展历程,可能会考选择题,不会考答题的。 接下来的话跟大家介绍一下程序设计,像程序的话就是用计算机语言对所要解决的问题中的数据以及处理的问题的方法和步骤做的一个完整而准确的描述,我要解决一个问题,那么我要对这个问题应该分为几步进行一个描述,大概是这样的。之后像我们要做一个程序设计,包括之后的编程题也是也是这样,也是一个程序设计的过程,它的概念就是用某种编程语言编写这些程序的过程,像我们的话就是c语言,他有一些要求,这些要求一定要遵守,首先是书法书写要正确,在程序程序要在语法上正确,符合程序语言的规则,如果说你在语法上不正确不符合规则的话,那么在编译过程当中是无法通过的,就是你程序是没有办法执行的。它会报错,像结果正确的话,就是说你对应正确的输入程序能够产生所期望的输出,符合使用者对程序功能的一个要求。 接下来的话是高质量程序,具有结构化,程序程度高,可读性好,可靠性高和便于调试这一项这些特点。你的程序设计出来它不是混乱的,它是有一个整体的脉络的,它的可读性好不仅要方便,你自己还要方便。比如说像把咱们考试来说,你要方便批卷老师像可靠性高的话,就是说这个程序它的质量怎么说他不能有一些歧义之类的,像便于调试和维护。也就是说你程序不推荐特别长,你要把它做到一个精简,用尽可能少的语言去完成你想要达到的目的。 程序设计的一个步骤,首先其实对于拿到一个问题,重点不是在于你怎么去编程,重点在于你怎么分析这个问题,你要拿到一道问题之后,你要对它进行一个详细的分析,比如说这个问题是什么?比如说比如说这个问题是什么,我解决这个问题的步骤是什么?那么我现在已知的数据和条件中所需要的输入处理以及输出对象都是什么?先是要对问题进行一个了解,再进行一个相应的数学建模,当然这个部分的话其实是脑海中经过的或者说是你去手上去计算的,接下来的话就是确定数据结构和算法,就是说你的这些数据,你大概想想他们是一个怎样的结构,或者说你要以及你要通过怎样的一个方法去把是把计算机的程序去把这个给把这个问题给解答出来之后,就是编制程序调制程序。 接下来持续设计的一个方法,对于c语言而言的话,基本上是有这三种基本的程序、控制、结构、顺序、选择和循环这三种。基本上像我们之后的所有编程都是离不开这三种结构的。然后它的一个方法就是模块化,因为c语言它其实是一个主函数开始,你去创建怎么它是通过函数来作为一个模块的,就是你通可以通过建立不同的函数去把你的主函数底下的东西给精简,还有自上而下,就是说你分析一个问题的时候,要从上面开始一个一个的把一些问题给分分开,分成小块之后如何去解决,之后的话就逐步求精,之后的话可以用结构化设计流程图去表示算法,我们后面讲这是大概的一个程序设计的步骤和方法,每一次拿到一道题的时候,建议大家去套用一下步骤以及这些方法,这样的话可以帮助大家去这样去做一个程序。 程序设计的风格的话是语句形式化,就是说不能有其因为之前讲过,虽然他是一个非常严谨的,如果有歧义的话,可能得出来的结果不是你想要的,或者说他可能得不出结果,或者说就直接出错了这样子。程序要一致化,就是说你各部分的风格一致,文档的格式一致,像缩进的话,c语言并没有像Python要求那么高,但是在不管是你在写程序的时候,你加了加了缩进的话,就可以帮助你自己去很清楚的看到你写的程序。当然阅卷阅卷老师也可以轻松一点,如果你要是写到一块的话,他们可能批卷的时候可能也不太爽,对,然后接下来的话程序结构规范化,就是你的不管是你的程序结构,数据结构,甚至软件的一个体系结构,都要符合咱们这个程序设计的原则,就前面讲到的。 还有一个是适当使用注释,就是说你可能你现在编完这个程序之后,你觉得你这些程序你都理解是怎么做的,你后期过了几个月你回来再看的时候,如果没有注释,可能某一条你就忘了你当时是怎么想的。这个的话就是你添加程序不仅可以帮助你自己去对你的程序进行一个理解,也可以帮助如果是以后你去做开发的话,其他的同事会帮你去检查这个程序的时候,你添加一个注释对他大家也都非常友好。 之后的话还有建议大家的标识符要贴近贴近实际,标识符的话后面会讲类似于几类似于对你的变量或者是一些东西函数起一个名字,那么你要贴合实际的话,你后期去看的也非常方便。之后来给大家讲一下算法和算法的表示。算法的话就是解决问题确定的方法和有限的步骤,我拿了一个问题应该去怎么解决,然后把它写下来。这种确定的方法和有限的步骤就是算法。根据它分为两类,一个是数值运算算法和非数值运算算法,数据运算方法的话,它就是对于对于一个问题求复制解,像什么微分方程求解,函数的定积分求解,或者说高速方程求解的非数值计算算法,它的领域是非常广泛的,比如说像你的资料检索事务管理,或者说数据处理这种都可以,不好意思,都可以称为非数值计算算法。 算法的这几个特征其实我做历年真题的话,它其实感觉像是每年都会考,就是说算法的特征有哪些,所以说大家记一下会考选择题,一个是有雄性就是算法的执行,必须要在有限个操作步骤之后终止,你不能给算法来一个死循环,死循环的话是绝对错误的,然后再判断一些程序的时候,你可以去看他有没有构成这些死循环,如果有死用他的话,他就不满足这个特征,他就是错误的。然后确定性,就是说你每一步每一步的含义是你确定的不可以产生歧义。 接下来是有效性,就是你算法中的每一步都应该有效执行,接下来是有零个或多个输入,输入的话,你算法开始之前需要的初始数据,零个的话就是说你可以在那个组函数里面去把你需要的数据先做一个定义,这样他运行的话他就不用找你输入,他就直接运行了,如果你需要输入的话,也可以用 CPA函数或者什么怎么给hr函数后面都会讲到有一个或多个输出,输出的话,就是说你最后算出来的结果对它进行一个输出,他在一个完整的算法中,他至少会有一个输出,因为你算写一个算法就是要求解一些问题,要有输出。 原则上的话算法是可以用任何形式的语言和符号来描述的,通常有自然语言程序、语言流程图、ns图、PAD图和伪代码的,但是这些都不是说写到c语言的程序里面,就是说你对于问题进行处理的时候写的一个算法。 那么现在我主要先介绍一下流程图,流程图的这些规则,相信大家之前也学过流程图,大概简单的介绍一下秦始皇的话,这种这种图形它是表示算法的开始和结束,输入输出框的话是这种图形,然后它是表示算法的输入输出等操作,框内填写的是输入和输出的各项处理框的话是这样的图形,它是表示算法中各种处理操操作框内填写,框内要填写的是处理的说明,或者算是一个是判断空,他表示条件判断操作,然后这个的话是猪是空,开始表示对于你的框内的操作进行一个说明。还有这个是流程线,它是表示算法的执行方向,还有连接点的话表示流程图的延续,这两个其实或者说这三个其实用到的比较少。 举个例子跟大家简单的介绍一下,首先是开始先是输入一个数,然后判断它是不是大大于等于0,如果它不是大于等于0,也就是说x小于0的话就走这条线,那就把x带进去算一个y之后输出,如果它是大于等于0的话,又到这边来看,它如果是大于0的话,走这条线算出y他如果是等于0的话,走这条线算出算出来这个的话可以帮助大家旅行在写代码之前履行一个旅行思路,就是我大概通过怎样的一个步骤我去求解,让你在可以帮在你编写程序的时候,你就可以看着作为一个辅助,也是现在看这些虽然比较简单,但是如果你要处理一个问题比较难的话,如果你写一个流程图是可以非常帮助你去理清这个脉络的。 再介绍一个ns图,ns图的话这个是顺序结构,就是两个方块地叠到一起,然后选择结构的话是这样子的,成立不成成立的话走这条,不成立的话走这条,这个是它的条件。然后当心循环就是当当条件满足的时候,执行循环中的指令,还有直到型循环,就是直到条件满足执行循环中的指令。 再举一个例子,首先是判断一个数是不是素数,剧组的话是只能被领或者是自己整除的数,当然就是写程序的时候,它会有一些各种各样的书,那个时候程序如果说题目中没有跟你介绍到的话,还可以通过百度去查一下。它什么意思。然后记住,因为考试的时候他可能会说可能不会说机组的话还是比较好的,先是输入一个n然后f等于0,I=2。这个符号其实不是c语言里的,就是大概跟大家讲一下这个思路,然后n除以I的语速是r然后而如果等于0的话,走这条就是f等于1,如果r不等于0的话就走就给爱加一,直到爱是大于这个是开方,n的开放或者说是f不等于0的时候结束,这是一整个循环。就是一个整个循环,就是指导性循环之后,它结束了之后咱们走这儿,如果f等于0的话,那么是输出的n是数数数,那么如果它不等于0的话,那么它就不是素数。 大概这样,其实不管是流程图也好,还是ns图也好,它其实考试的时候都没有考到,但是这个东西它是可以帮助咱们在写程序之前对于这个问题进行一个理解。 其实你看其实应该说还是有点麻烦,推荐大家写流程图,现在跟大家讲一些经典的算法,给大家来形成一些编程的思路。首先是枚举法,枚举法的话它的思想就是说我先根据问题的部分条件去预估一下答案的范围,比如说我预估是在这个范围内停车预估答案在这个范围内,然后我在此范围内对所有可能的点进行一个逐一的验证,如果比如说这个点它满足了我要验证的所有的条件,得到了答案,那么我的答案就是那他的特点也可以看到它非常简单的,就是你找一个条件去逐个的美剧就可以找到答案,也是非常容易理解的,但是它的运算量特别大。当你的条件的范围非常大的时候,他要一个枚举的话,他可能要算一会。 举个例子,非常简单的一道题,公鸡每只5元,然后母鸡每只3元,小鸡美亿元,如果用100块钱买他们的话,一共能卖几只? 首先就重点给大家介绍一下解题的思路,像运筹题里面也是有这种美剧法的一个例题,首先的话是分析问题,确定答大势范围,我们可以看到即便你去买小鸡的小鸡的话,100块钱你也只能买100只,而且它们都是正整数,所以说xyz它都是0~100之间的一个正整数,那么接下来就是确定你举例的方法,也就是说你确定一下你条件范围,那么这道题的话他们加起来是100块钱,不对是一。 这个的话是他们加起来是100块钱,这个是什么?无所谓了,然后先找一个条件之后的话是做实验去指导便利所有的情况,就把这个条件便利出来之后找结果最后的话就是要结果可能找到也可能找不到,则没有答案,这个的话我觉得他应该是小鱼等于100大于等于0。我们写错了,重点不是这个知道思路就行了。 那么接下来的话是迭代法,迭代法他的一个基本思想就是说我把一个复杂的问题的一个求解过程转化为一个相对点简单的迭代算式,然后重复执行简单的算式得到最终解。理论上的话无限多次的迭代是可以得到准确写的,但是因为实际计算时会有因为计算机执行算法的一个有穷性的特征,那么咱们只能迭代有限次,只能通过举例跟大家介绍一下,这道题是求解函数fx等于0的根,首先你要确定一个合适的迭代公式,那么这里的想法就是说把fx等于0转化成迭代算式,x等于 g x当然这个是涉及到数值计算的部分,就会有,因为你换成有很多种方法可以把 f x等于0换成x等于jx你要去算换的时候要去看一下迭代它是不是收敛的?它是收敛的话才可以进行下面的应用。 接下来的话就是要选取一个初始近似值以及解的误差。那么推荐大家用零点定理或者是用绘图的方式去确定解的范围。你比如说在这儿,你去猜一下大概用0.00吗?这个是有一个0点,或者说你看一下我们汇了一张图,它大概在范围内可以确定一个初始x0,假如我司令在这儿,这是咱们的真实的零点吗?从假如我确定了这儿,然后才是迭代,是这样的一个思路。接下来的话就是循环处理实现迭代的过程,那么就是从x0出发,从x0出发,最终用迭代的算式求解另一个近似值x一,再由x一确定x二,这样循环往复一直算到xn是这样的一个过程。 那么循环终止的条件,因为之前说过它是一个因为咱们程序的话是有穷性的特征,然后算法是有诚信的特征,那么我们怎么终止呢?就是说你前后两次得到的近似值之差,比如说我xn-1和xn之间的误差,比如说它他们两个的误差是小于0.001,像这样的非常小的,就可以近似地认为他们俩是一样的,这就是咱们循环终止的一个条件。这个就是迭代法。 接下来的话是地推法,其实地推法和地规法的话会会搞混,我当时就有点搞混。现在跟大家介绍一下基本思想的话是利用递推公式它是一个由简到繁的过程,比如说你求n的阶乘,你先逐项写几个公式,你发现fn等于n乘以 f n简易,所以说您看到他们的规律,那么你先求出f1,然后再求出f2,然后再一直往上推,用最后是f15=15×f14,这样把f15给求出来。递推法的话是这样的一个思路,而递推法的话它是有繁化简的,它是用简单的问题和移植的操作来解决复杂问题的。像像这个的话它就是把这个式子给展开了,展开变成这样子,然后是由f一的话就是逐步的带进去,最后求出f15,是这样的一个过程。 那么这几个经典的算法,其实说考察的都并不是很多,重点是让大家理解理解这个思路,或者说变成之前的一个想法。 这个的话就是咱们的第一课时,大家对第一课时还有什么问题吗?现在可以提问了。打给大家10分钟的提问时间,或者说一哪一页没有讲清楚,还想再听一遍的。如果没有问题的话,麻烦大家发一下,没有问题了。如果大家都发一下帮我看一下,一开始应该是三个人。三年推荐的练习题,ok。好,谢谢,今天早上起来嗓子不太好。是练习册是其实在然后搜的话还是可以直接出来的。 像今天讲的一个内容的话,每年考察的也就是算法的特征,算法的特征那个会有解析吗?其实我没有用过。但是学长他说是后期用来刷题的还是比较推荐的。学长回答一下这个问题有解析吗?应该是有的。应该是有,他是题,然后是题,然后答案是这样的一个那行吧。 先这样,我待会去问一下学长,因为他做过具体的东西,我到时候再在群里面给大家发一下。现在的话咱们讲第二课时,还有一句话没说完,就是说我们这节课的话主要是大家把这些这些这些软件都先下载上非常方便,然后的话也就考一个算法的特征,其他的话大家了解一下就行了。大概有一个印象是什么?反正以往是没有考过的,需要回答大家看一下,有答案的。现在介绍一下。 第二课时就是c语言的概述,首先给今天分为6个部分,第一个是资源的概况,给大家介绍一下c语言是什么? C语言的话它与c加加很相反的,面向对象的编程对象不同的,它是一门面向过程的计算机编程语言之前也提过,那么它的设计目标是提供一种以能以简易的方式编译处理低级存储器,仅产生少量机器蚂蚁及不需要任何运行环境支持,便能编程的编程语言。 然后他比汇编语言要迅速,因为他是他是第三代,它会比汇编语言要迅速,工作量小,可读性好,便于调试修改和移之然后它的质量是和汇编语言相当的,他的效率值比它低10%或者是20。所以说c语言它是可以编写系统软件的,它的优点的话是它的适应范围强,它可以适应8位微信计算,微型机到巨型机的机所有机种,他熟悉了几种,然后应用范围广,可用于系统软件以及各个领域的一个应用软件,它本身非常简洁实用灵活,便于学习和应用。它的语言的表达能力也非常强,数据结构的系统化,控制流程的一个结构化,就是那些控制语句,它的运行的质量高,程序运行的效率高,它可以一直信号。 还有它的缺点的话,就是说它的一个运算符合优先级过多,不便于记忆,这个确实是存在的,你做一些计算题的时候会有一些问题,但是我后面会给大家讲一个小技巧,语法定义不严格,编程的自由度大,然后编译程序的查错就做能力有限,这个时间就是你像你用Python的话,他会跟你明确的指出,比如说你这一点哪有问题,但是c语言的话他就只会给你指出每一行出了问题,而且他有的时候他给你指出,比如说这一行出了问题,但实际是你上一行没有加,反正我觉得不太好。 接下来的话它的理论研究和标准化工作是有待推进和完善的,这些都大概了解一下就好。 接下来跟大家介绍一下c程序的一个基本的结构, c程序的话跟大家讲的是模块化,它是有函数组成的,它必须有且仅有一个主函数,就是主函数是面数作为程序启动时的唯一入口,就是说你这个程序不管它长得多么的花里胡哨,就是比如说前面有多么乱七八糟的东西,你首先钉的东西,你拿到一个程序现金的东西就是你的主函数,之后再去看其他的东西,当然除了主函数外,还包括其他的标准库当中的函数,或者说咱们自定义的函数,那么函数的话它是由函数的说明和函数题组成的,函数说明的话就是对于函数名函数类型形式参数的定义和说明。然后函数体的话是由语句构成的,它整个函数体有。 不好意思打错字了,有一对花括号括起来。这个的话不用担心,后面会详细的讲到。现在给大家大概介绍一下语句的话,它是有一些基本的字符和定义符按照语法规定组合的组成的每一个语句以分号结束,拿语句的书写格式是这样自由的,它是可以单独成行,也可以集中在一行,如果集中在一行的话,要对每一个语句也写一个分号就可以了。接下来跟大家举一个例子,像我说的拿了一个程序,你看他前面有这么多东西,不管先从微函数入手,现在咱们从这走,然后可能没有学过,大概讲一下,就先是我定义了两个变量,之后的话就是先要要找现在找输出,而输入就是从键盘上获取一个输入他们两个值,然后再把它们输出出来,但是输出出来的时候,他这要求是一个函数,那么我们就可以往上走了,然后把这两个数带进去,算出来的值最后把它做一个输出,是大概的这样的思路。所以说你拿到一道题的话,不管别的先看这,然后从这儿顺序走下来,走下来之后遇到了不知道的就是说另外的函数再退出去,退出去之后拿到它的值,然后再返回,是这样的一个思路。 接下来c语言的一个基本组成,首先是基本字符,即像什么数字就是0~9,然后字母的话一定要注意一下c语言里面的大小写是可以区分的,因为有些编程语言里面它的大小写是一样的,接下来的话是运算符,像这些乱七八糟的,还有特殊的符号和不可显示的符号,这些其实没有必要去记,你看这些都很简单,像可以大概留意一下沉是这样的,然后除是这样的一个下划线,然后这些大家都知道,小于等于和大于等于其实在编程的时候是没有办法体现,他是这样子就把他们俩分开的。然后这个是不等于让感叹号和等号等于号是不等于,然后这个是横等于,这个的话是它的一个位移。 然后剩下的这些到后面跟大家介绍,这些其实没有必要特殊记忆,咱们多练一下编程题就可以可以掌握的。像标识符的话之前跟大家讲过,它是就相当于我给一个变量,或者说函数或者说述祖文建明或者类型,比如起名字标师傅就跟他们起名字,然后他是有一个规定,就是说它的组成是字母,数字和下划线涨这样是,而且一编程的时候一定要注意咱们是英文输入,不能是中文的书的话是错误的,之后的话是第一个字符,它的所有组成是字母数字下划线,但是它的第一个字符必须得是字母或者是下划线,像其他的一些符号是完全不可以的。 接下来的话,大家的一个命建议就是说你命名的时候最好是联系实际的,方便区分和阅读,但是不可以和关键字同名,关键字我们后面会讲到先做一下,做一个练习。像大家知道他的问题出在哪了吗?这标出来了,他的应该比较沉,大家知道他的问题在哪吗?他为什么错了?去进行一个简单的互动,大家也可以一次性把这三道题都做出来发出来。为什么是错对错。两分钟时间。他还有在有在写吗?第三道题。行时间也差不多了,我讲。 第三道题的话,首先第一个是说字母数字和下划线,第一个它是数字,所以说它是错的。那么这个的话是正确的,因为首先它刚开始是一个字母之后,而且它也只有字母和数字,所以是对的。那么这个的话它有一个新,新的话,你看不在我们规定的这些符号里面,所以它是错的,而它开头是下划线,这个是对的。 接下来跟大家讲一下关键字,关键字的话就有一个标识,就是带两个井号的,它是一个不常见的,有一个井号的知道大意就行了。想给跟大家逐一介绍一下 auto的话它是深声明自动变量,然后shots的话它是声明短型短整型或者是函数,然后int的话是整型变量或者是函数,浪的话是长整型变量或函数float,它是浮点型变量或者函数,double的话它是双精度型变量,然后char的话是字符型变量或者函数,然后struct它是结构体变量或者函数优点的话,它是联合类型,然后这个的话是举没举行,然后他不define的话,他是用以它是要给数据类型取一个别名,就是说我们以上的或者说一些都可以起,如果嫌长或者怎样,可以起一个别名。 然后这个的话其实并没有常见,我去年去年复习的时候是完全没有见到这个的,所以说大概了解一下就好了。然后continue的话就是结束当前的循环,开始下一轮循环,break的话它是这次跳出当前循环,它就他们俩的区别大家要注意一下, break的话它是直接跳出去了,就再也不执行了,然后continue的话它是结束,比如说结束这次循环,它会下进入下一轮的循环,然后default它是开关语句中的其他分支,然后size of的话,它这个是计算数据类型的长度,相应的它是无符号变量或者是函数,然后下面的话它是有符号类型的变量或还是说然后这个的话它是声函数声明在其他的文件就是说我用我用的变量,它是在其他文件当中的,然后这个是寄存器变量、静态变量,这三个之后,这些其实后面都会讲到,这三个的话到后面给大家重点做一个区分。然后这个的话其实也不常见,大家了解一下就好了。 然后这个的话是5无返回值或者是五参数,称名无类型指针其实还是挺常见的,因为它经常出现在命的前面,然后还有条件语句,这也是条件与这些都是。 这些都是条件语句,然后这些都是循环语句,然后沟通的话它是无条件跳转,它这个的话之后也会讲他并不是经常使用,然后瑞特的话就是返回你的你的结果。 这是咱们的关键词,之前说了你标识符就是你给变量起名字的时候,绝对不可以和这些关键字同名,这样的话是错误的。所以说大概记一下关键词其实也不难记,只要不和他们同名就行了。之后因为会用了很多,所以大家也就会在用的时候把它们记住。像c语句的话,它有表达式语句,流程控制语句,然后有选择循环和转移语句,要选择的话分为两个,一个switch,然后循环的话for do well。然后转移的话是不会continue return go to。 接下来是复合语句,还有空语句,这是c语言的一个语句的大概的框架。接下来跟大家讲标准库函数,因为之前讲过c语言里面,其实他的函数还是比较它本身的函数还是挺匮乏的,然后就需要这些标准库函数,标准库函数的话它是由四a编译系统提供的一些非常有用的功能函数,它是存放在不同的头文件中,那么我们引用的时候就是用井号include间,然后头文件名这个是比较常见的,或者说用双引号去做一个把做一个替代,但这个其实是比较常见的。 之后一些常用的库函数,常用的库函数,咱们的课本上是有的,如果再输的话,就把书翻到373页。首先是它是一个按照常用的顺序把越往上是越常用的往下就是一般常用的像在几373页。像数学函数的话,其实常用的一第一页其实还好。你有哪些 sign cos什么的。 然后到第二页的话有374页,那个faBS这个函数,然后puw函数,sqrt函数,还有一些什么sign,然后law函数。然后还有参政的函数,这些是比较常见,还有一些基本的数学大概混个眼熟就行了,然后字符型函数的接下来375页字符函数的话,第1个第2个,然后第4个是比较是可能会用得到的。接下来的就是非常不常见。 然后第三部分字符串函数综合看成数的话,在377页的第1个,然后第3个和第4个和第5个,这些是比较常用的。然后378页输入输出函数,第4个第5个第6个,digital。第十然后379页的379页整个一页都还是非常常见的,不常见,就是后面会用到381页,动态存储分配函数。第三个函数会经常用到,其他的都不怎么用的。然后382页的话就第一个绝对值函数会用到其他的其实用到的并不是很多,我现在给大家勾画的这些就是我当时觉得会用得到的函数,其实在考试的时候感觉最多还是自己去编函数,这个是对于这些标准库函数进行了一个勾画。 接下来跟大家讲一下c语言程序的一个上机执行过程,让你点开一个最远的软件,如果是电脑的话,其实是非常方便去看的,首先你要编辑一个c c语言的程序,就是你将你的程序输入计算机,它会以文本的形式存放在磁盘上,它的标识名是点c或者有的还是点cpp什么的,都差不多。 之后的话,编译随时去编译的话,他的思路就是说我们输入的这些程序都是用英文写的,他是将原程序去英文或者中文中文也是可以输的。 翻译成二进制指令的一个目标文件。因为计算机它只能读二进制,然后有c语言的,他这个不是说在家去完成的,它是由c编译系统提供的一个编译程序,而且它会自动对你的语句,还有你的语法进行一个检查,如果发现错误的话,它会显示你的错误类型和所在的位置。他如果没有发现错误的话,会生成一个目标文件,比方说名是点ob机,然后接下来是程序连接,因为之前会讲到会有一些像目标程序库函数或者说其他的目标程序的链接,你会放在程序的最开头。那么链接的这部分就是说,把我的程序和这些东西都连连到一起,就是可以使用这些东西,最后生成一个点esexe文件。 接下来的话就是运行咱们的程序,将程序投入运行,最后得到一个处理的结果。接下来是数字转换,数字转换的话,基本上有这几个类型,十进制、二进制八进制,十六进制,十进制的话是0~9,它共10个编码,所以大家是从0开始的。0~9共10个编码符号它是没有10的,他的预算是逢十进一,二进制的话01一共就两个,他是逢二进一的,他也是没有二的。然后八进制的话是0~7共8个逢八进一,他是没有8的,然后16进制的话才比较特殊,它是0~9之后用a一直到f用就是数字和字母,他一共组成是10 16个,他是逢16进一。 这个数值的转换的话,其实不是重点,好像之前也没有考过,但是就跟大家介绍一下,如果他下来想练习的话,可以去网站上搜那种数字转换计算器,非常方便,你把你想要的数字放进去,想要转换成什么?什么禁止一点,他就会出来一个正确的结果,如果想练的话,其实可以选一些去做一个练习。像十进制转换成二进制的话,它的方法就是除2取余倒排,他就是把把一个比如说是吧?然后除以2,然后二,然后它的余数是0,然后再除以2,它是一,然后余数也是0,然后到这儿的话除不了了,还是100? 接下来的话这个是十进制转化为二进制,二进制转化为成十进制的话,他是按未成拳相加的。比如说下边一个010,然后开始安慰陈璇。是这样做的,2的0次方这个是0,然后再加上二的一次方。一次方,然后再加上二的一个零次方,任何都是这样算的。从他第一个家是这样的一个计算方式,然后二进制转化为八进制的话,它是三味鸭成一位,然后从后往前每三组,每三位一组,然后不够的话前面补比如说主要还是近视,他是这样的,那么看三位,如果说这是一的话,你看现在每三个一组他是从后往前每三个一组,他这不是只有一个一吗?那么我们在前面给他补一个0,他补一个0,这样的话咱们可以对应看一下这个表,它的001对应的是1,然后010对应的是2,然后100100对应的是4,它就是124。 124不是124,之后的话8进制转换为二进制的话,三位压成一位,然后三位展成一位,比如说刚刚的124,然后4就是1002的话就是这样写的,100然后010,然后一的话是001是这样的,然后二进制转换为16进制的话,它是4位压成一位,其实跟八进制是一模一样的。只不过它是4位压成一位,然后它的16进制转换为二进制也是也是一样的。然后其余转换的话,比如说你的什么像16进制转化为转化为八进制,那你就要把二进制作为一个中间变量,就是我先把16进制转化为二进制,再从二进制转化为八进制,这样做一个计算,这个大概了解一下就行了,然后这些这些其实还是挺好挺好记的,大家随便记一下就好了。 接下来讲奥斯卡达尔斯克,然后他是我印象当中他只考过一次是在编程题里面,他就是要求大家知道你这些字符它拉斯科码是什么是多少,比如这些数字是多少?这个的记忆的诀窍就是说像00这个数字的话,它对应的是第四十八,第48位,你这样的话你就不用去记忆后面的东西,因为你看0~9你就可以去顺序编一下,到9的话就是57,你光记一个0就好了,然后像大写字母a它是65,这样的话你大写字母a一直到大写字母z你都不用去记忆了,你只要自己知道它就好了,你再剩下的任何你再进行一个到时候再进行一个推算就可以了,然后是小写字母a的话它是97,同理剩下的这些你也都不需要去记忆了,到时候进行一个推算就好了。其他的这些字符,因为之前他也是考过这个字符的,但是他只考过一次,所以说这个频率也不是很高,大家差不多记一下就好了,也不用怎么太积极,我感觉他可能今天也不太大家重点是要把这些字符做一个大概的了解就好了。 现在这些今天的一个第二课时,现在大家有什么第二课时有什么问题吗?来问一下最后的一点时间,回答一下大家的问题,有哪部分没有听懂的,也可以重新再去讲一下。暂时没有,还有别的同学有什么问题吗?像是练习的话标识符大家可以看一下,其实还挺蛮简单的,你只要记住这个规则的话就好了,也不会有什么难题。 还有同学有问题吗?其实像这些的话有点缺点什么,大家看一下就行,这个考的也不多,基本上也没有考过。但是对于定点真题也不能说他从来没有考过,就要完全的大意,只能说重点不在他身上,大概,但是都要混一个眼熟,是这样的。像这些的话后面都会仔细的讲到,现在先给大家列一下,讲第一课时的话这个戏这个软件大家再看一下,还有新闻软件,大概走一遍我们今天讲的东西,咱们再等两分钟,大家有任何问题都可以进行一个提问。 还有还有书上刚刚说的那些库函数,可能我刚刚说的有点快了,我在再跟大家再说一遍,就是数学函数当中的372页的第三个,然后倒数的第4个和倒数的第一个勾画一下像375页字符函数的第1个第2个和第4个勾画一下376页的字,字符串函数,主要勾画377页的第一个第三个。 第4个,第5个,然后378页的话是第4个第五、第六、第九、第十,然后379页的话是整个这一页,然后380页还有第二个,第4个,然后第5个,第7个,然后当时倒数最后一个,然后381页的话,第一个第三个,第4个,还有第5个。下面的话第三个就是动态分配函数的第三个,然后382页其他函数的话就是第一个,然后这些其实也是不用现在记忆的。多练习的话是都会记住的。那么今天大家都没有问题的话,今天的课就上到这,谢谢大家的参与。
|