- 2022-08-11 发布 |
- 37.5 KB |
- 51页
申明敬告: 本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
文档介绍
C语言学习规划讲座
大学生科技协会主办C语言的学习与规划千里之行,始于足下主讲人:讲座预计用时:2小时QQ交流群:61280834(or49222572)务实求索创新AssociationOfScience&Technology2010年12月7/23/2021\n引入1:小故事,大道理::树上还剩几只鸟?T:树上有10只鸟,开枪打死一只,还剩几只?S:是无声手枪或是别的无声手枪吗?T:不是S:枪声有多大?T:80-100分贝S:您确定那只鸟真的被打死了吗?T:确定,你告诉我还剩几只鸟就行了,OK?S:OK,树上的鸟里有没有聋子?T:没有S:有没有被关在笼子里挂在树上的?T:没有S:边上有没有其他的树,树上还有没有其他的鸟?T:没有S:如果有鸟怀孕了,算不算肚子里的小鸟?T:不算S:打鸟的人眼有没有花?保证是十只?T:没有花,就十只。S:有没有傻得都不怕死的鸟?T:都怕死S:会不会一枪打死两只?T:不会S:如果老师的回答没有骗人,打死的鸟要是挂在树上没有掉下来,那么就剩一只,如果掉下来,就一只不剩T:你早点说嘛,小子,去当程序员吧,别折磨我了,去折磨电脑吧。7/23/2021\n画出程序流程图如下:树上有10只鸟综合处理还剩多少只鸟?打死了一只InputOutput判断会影响鸟的数量的因素7/23/2021\n伪程序如下:伪代码(Pseudocode):是一种算法描述语言。使用伪代码的目的是为了使被描述的算法可以容易地以任何一种编程语言(Pascal、C、Java等)实现。Input(“打死了一只鸟”){if((“枪是有声枪”)&(“鸟打死了”)&(“鸟的听力都正常”)&(“鸟都是自由的”)&(“没有孕鸟”)&(“猎人眼神正常”)&(“鸟儿都怕死”)&(“一枪只打中一只鸟”)&(“老师没骗人”){if(“死鸟没掉下树”))Output(“还剩1只鸟”);if(“死鸟掉下树”)Output(“1只不剩”);}}7/23/2021\n1.为什么要学习C语言?2.C语言难不难学?3.怎么学习C语言?4.计算机等级考试指导正题:C语言“准入门者”应该会有的疑问7/23/2021\n这是我们学习任何新事物都必须要搞清楚的!我为什么要学习这个新事物?类比一下:我为什么要上大学?1.学到更多东西,实现自己的人生价值;2.学会做人,做事;3.找个好工作;4.要想成为硕士,所以必须要先上大学;5.……1.为什么要学习C语言?7/23/2021\nC语言——今天你了解了吗?C语言是一种面向过程的计算机程序设计语言,它是目前众多计算机语言中举世公认的优秀的结构程序设计语言之一。它由美国贝尔研究所的(里奇)D.M.Ritchie于1972年推出。1978后,C语言已先后被移植到大、中、小及微型机上。C语言发展如此迅速,而且成为最受欢迎的语言之一,主要因为它具有强大的功能。许多著名的系统软件,如都是由C语言编写的。用C语言加上一些汇编语言子程序,就更能显示C语言的优势了。7/23/2021\n1.为什么要学习C语言?C语言的特点(初学者了解即可)面向过程而不是面向对象C语言功能强大,表达能力强生成的目标程序效益高可移植性好既有高级语言的优点,又有低级语言的特色计算机语言C语言被誉为最有“钱”途的语言应用于生活的各行各业(尤其电子通讯、控制类、计算机类等)7/23/2021\nC语言特点优点——功能强大简洁紧凑、灵活方便运算符丰富数据结构丰富C语法限制不太严格,程序设计自由度大C语言允许直接访问物理地址,对硬件进行操作生成目标代码质量高,程序执行效率高C语言适用范围大,可移植性好语法和算法应用广泛7/23/2021\nC语言特点缺点——数据安全性1.C语言的缺点主要表现在数据的封装性上,这一点使得C在数据的安全性上有很大缺陷,这也是C和C++的一大区别。2.C语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数组下标越界不作检查等。从应用的角度,C语言比其他高级语言较难掌握。7/23/2021\n原因A.“人才培养”方案所要求的(被动原因)从2010级开始《计算机语言C》由原来的“专业平台必修课”增加到“学位课”之列1.为什么要学习C语言?更高要求7/23/2021\n1.为什么要学习C语言?原因B.考计算机等级考试证所要求的(半自动原因)由于在学校教学中理工科类专业绝大部分讲授的是C语言,所以理工科学生在报考计算机等级考试(二级)时,95%以上的同学报考的都是C语言,并且三级也要考查C语言(机试)。就业必需7/23/2021\n1.为什么要学习C语言?原因C:学好了C语言对于学习C++、C#、C.NET、VB、VFP、Verilog-HDL、Matlab等各种计算机语言都有很好的启蒙作用,对于想在编程这条路上走的人来说无疑是一门必修课;C语言是控制系统等自动化装置设备的必备工具,而随着“嵌入式”技术的迅速发展,对C语言的学习也就提出更加迫切的需求;另外,C语言不需要先修课程作为支撑,认识中文、不是傻瓜就可以学习。7/23/2021\n当下流行的语言Java、.net、C++、C#等。计算机语言有很多,如何选择?基础的才是最重要的。C语言可以说是这些语言的基础,老祖宗。上述的语言虽然很牛(其实也就流行罢了,但几年后就可能被新生的更高级的语言取代)。而C语言是王道,目前来说,没有哪一种语言能够代替C!7/23/2021\n坚持就是胜利总之,C语言是王道,其他语言是主流。不管学的是哪种语言,学精了,都是一样的好。但是学的过程中一定要坚持一个方向。主攻一个方向。不能今天学C,明天搞Java,那样样样都懂,其实什么也不懂。坚持就是胜利!7/23/2021\n1.为什么要学习C语言?原因D.操练自己的逻辑思维(主观原因,最高境界)学习C语言中分析问题、解决问题的思维和方式。主要原因是C语言是面向过程的一种语言,因此你必须清楚它每一步在做什么,逻辑关系是否正确,有没有自己可能疏忽的变量或指针等,特别是出现了问题调试的时候,那才是考验人的时候。事业需要7/23/2021\nC语言学好了,你可以……C语言学好了,你可以进一步学习C++,学习一下ObjectOriented(OO);C语言学好了,你可以学习VC,试着做一些小软件;C语言学好了,你可以直接去学习单片机;单片机C语言学好了,你可以学习;嵌入式学好了,你至少不用愁工作了;C语言学好了,你可以……做的事情有很多。7/23/2021\n就业拓展根据华清远见2009-2010年中国嵌入式开发从业人员的调查数据显示,嵌入式人才需求目前仍然是供不应求,这个调查结果在前一年的基础上有所上升,80%以上参与调查的工程师都表示,自己公司目前都急缺嵌入式开发方面的人才,如此巨大的人才缺口,表明了在嵌入式技术高速发展的今天,专业的嵌入式开发人才已成为整个行业发展的一个瓶颈,如何培养适合企业需求的嵌入式开发人才也成为整个行业面临的严峻问题。另外,随着云计算和物联网产业的启动和发展,嵌入式做为基础技术平台,势必会出现井喷发展时期,进而对人才需求出现更加旺盛的局面,业内专家预计未来几年内嵌入式就业仍将趋于白热化。7/23/2021\n2.C语言难不难学?——小马过河小马帮他妈妈托麦子去磨坊。在路上遇到了一条小河挡住了去路,问河边吃草的老牛得到的答案是:“水很浅,刚没小腿”。问从树上跳下的松鼠得到的答案是:“别过河,你会淹死的!我的一个伙伴就是掉在这条河里淹死的!”跑回去问妈妈得到的答案是“那么河水到底是深还是浅呢?你仔细想过他们的话吗?孩子,光听别人说,自己不动脑筋,不去试试,是不行的,河水是深是浅,你去试一试,就知道了。”7/23/2021\n2.C难不难—“你去试一试,就知道了”关键在于自己对自己了解的程度,难不难也是旁人无法帮你回答的问题,他们很可能给的答案就是“老牛式”或者“松鼠式”的建议。现状是普遍感觉较难学(挂科率很高),但对一些人来,这样的课程就是“刷分”的科目难学的原因一:学习的掌握主动权难学的原因二:时间花的不够多(畏难)难学的原因三:开始学习的时间不够对7/23/2021\n3.怎么学习C语言?——现状在初学C语言时,可能会遇到有些问题理解不透,或者表达方式与以往数学学习中不同(如运算符等),这就要求不气馁,不明白的地方常问常想,鼓足勇气进行学习,待学到后面的章节知识,前面的问题也就迎刃而解了,这一方面我感觉是初学者最欠缺的。失败三部曲:听不懂→不想听→放弃。7/23/2021\n3.怎么学习C语言?——端正态度掌握学习C语言的主动权提前学习是最好的方法,下学期开了C语言课程后如果掌握不了学习的主动权,会产生畏惧感相反,如果提前学了则会产生一种自信。提前了解C语言的历史及其发展前景寻找行动的理由提前感受一下学习C语言的感觉自己到底适不适合提前熟悉C语言编译器的开发环境VC++6.0(交互功能很强)TurboC++3.0(Dos环境)7/23/2021\n3.怎么学习C语言?——书籍推荐学习C语言《C程序设计》谭浩强考计算机等级考试《计算机软件技术基础》沈被那《二级C语言上机试题汇编》电子档解决公共基础部分20分7/23/2021\n《C程序设计》整体概述目录1C语言概述2程序的灵魂——算法3数据类型、运算符与表达式4最简单的C程序设计——顺序程序设计5选择结构程序设计6循环控制7数组8函数9预处理命令10指针11结构体与共用体12位运算13文件14常见错误和程序调试附录A常用字符与ASCII代码对照表附录BC语言中的关键字附录C运算符和结合性附录DC语言常用语法提要附录EC库函数计算机等级考试二级C必看7/23/2021\n学习策略——书该怎么看从长远看,《C程序设计》(谭浩强)书上面的每一个章节都很重要,没有任何主次之分。从近处看就是计算机等级考试二级C,12和13章的内容看的懂、会填空就行,其他都不能掉以轻心。特别提醒:学校教学由于课时有限,很多相当重要的知识都只能轻描淡写,如:指针、结构体等。7/23/2021\n学习策略——书该怎么看看书→看程序→写程序→上机感受万事开头难,入门至少需要一个月;看书不一定要过目不忘,实际上也是办不到的;学习语言本身就是一个循序渐进的过程,是需要通过N多次的回眸才会碰撞出点感觉;C语言是应用性极强的工具,死记硬背是绝对学不好的;7/23/2021\n开发环境基本使用方法学校教学采用的开发环境是VC++6.0考试使用的开发环境也是VC++6.07/23/2021\n上机操作步骤演示前提条件是PC机上装有VisualC++6.0安装VisualC++6.0MSDN安装不是必须的。MSDN是微软公司面向软件开发者的一种信息服务,初学者常把它当做帮助文档来用。7/23/2021\n简单的例子#include”stdio.h”//包含头文件voidmain(void){inti;//定义变量scanf(“%d”,i);//输入整数i,该函数在stdio.h文件中printf(“%d\n”,i);//输出刚刚输入i的值,该函数在stdio.h文件中}7/23/2021\n温故而知新学习C语言始终要记住“曙光在前头”和“千金难买回头看”,这其实是学习C语言最重要方法,就是说,学习后面的知识,不要忘了回头弄清遗留下的问题和加深理解前面的知识,这是我们学生最不易做到的,然而却又是最重要的。学习C语言至少要经过20遍反复,才能前后贯穿,积累应该掌握的C知识。7/23/2021\n不要把C语言仅当成一种语言来学,而是学习一种思维方式,即ThinkinginC.要将生活中遇到的问题能够用C来思考,要要把自己摆在“操纵者”的位置上,而不是任由C程序本身牵着鼻子走。3.怎么学习C语言?——思维7/23/2021\n程序=算法+数据结构这是著名计算机科学家PASCAL语言之父沃思提出的公式“算法”是程序的“思想”和“核心”,“数据结构”即加工对象,语言只是工具。3.怎么学习C语言?——密切联系“算法”NiklausWirth1934—7/23/2021\n算法解释目的:吃饱肚子途径一:去食堂。下课→步行→买饭→吃饭→肚子饱了途径二:叫外卖。下课→打电话→waiting→吃饭→肚子饱了途径三:出去吃。下课→步行→点菜→waiting→吃饭→肚子饱了途径四:路边馒头。下课→步行→找馒头摊→吃馒头→肚子饱了7/23/2021\n3.怎么学习C语言?“理论”和“实践”相结合实践不是盲目的实践,以理论为指导,要定期上机实验。常交流交流使人认识自己的盲点7/23/2021\nC语言的结构特点:1.一个C语言源程序可以由一个或多个源文件组成。2.每个源文件可由一个或多个函数组成。3.一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数。4.源程序中可以有预处理命令(include命令仅为其中的一种),预处理命令通常应放在源文件或源程序的最前面。5.每一个说明,每一个语句都必须以分号结尾。但预处理命令,函数头和花括号“}”之后不能加分号。6.标识符,关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可不再加空格来间隔。7/23/2021\n初学者难于理解的几个问题1.数据再内存中的存放举个例子,有a,b,c三个杯子,a杯装满糖,b杯装满盐,c杯为空的。首先,我先将a杯中的所有糖倒入c杯;其次,再将b杯中的所有盐倒入a杯;最后,将c杯中的所有糖倒入b杯。inta,b,c;a=1;b=2;c=0;c=a;a=b;b=c;(交换三步)数据再内存中的组织形式跟实际的物体储存没多大区别,是以01在内存中存放7/23/2021\n初学者难于理解的几个问题2.C程序结构A.函数入口时main();B.用库函数就必须加载头文件;C.库函数使用形式如printf(“%d,%c”,a,b);scanf(“%d”,&a);sqrt(a),power(a,2);必须按照库函数的使用规则,为什么?7/23/2021\n四种程序结构顺序结构、分支结构、循环结构和模块化程序结构顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。分支结构的执行是依据一定的条件选择执行路径,而不是严格按照语句出现的物理顺序,分支结构的程序设计方法的关键在于构造合适的分支条件和分析程序流程,根据不同的程序流程选择适当的分支语句。循环结构可以减少源程序重复书写的工作量,用来描述重复执行某段算法的问题,这是程序设计中最能发挥计算机特长的程序结构。C语言的模块化程序结构用函数来实现。7/23/2021\n三大语句:顺序、选择、循环顺序选择if…elseif、switch…case等。循环即goto循环、while循环、do…while循环和for循环。7/23/2021\n计算机等级考试介绍计算机二级C考试1.考试形式为笔试(90分钟100分)+机试(30分钟100)2.笔试考查范围:公共基础部分(20%选择题)+C语言(80%选择和填空);公共基础包括:数据结构部分、程序设计基础、软件工程、数据库。3.机试只考你所报的语种共3题。改错题(30分)、填空题(30分)、编程题(40分)。其中,改错题、填空题千万不要改动程序整体结构;编程题就是写一个函数。7/23/2021\n笔试备考1.公共基础部分仅仅只开展题海战术远远不够,需要查看专业的书籍来弄懂相关考点以达到举一反三、触类旁通的效果。2.开始备考时间不宜过迟,公共基础部分设计的知识面比较宽泛,概念相当多,需要一定的时间来消化,但只要能理解就一定是送分题。3.从零开始备考的同学从寒假就开始把书看完,虽然理论需要联系实践,在没有实践条件的情况下,丰富理论知识并不受限于实践。对初学者来说上机纯属寻找成就感!7/23/2021\n机试备考1.在理论知识丰富的前提下,机试将不是问题,唯一要注意的是要把VC++6.0玩熟练;2.学校J楼、图书馆部分机器装有VC++6.0开发软件,在有理论知识的前提下可以去找找成就感;3.狂做南开100套,题海战术可以对付机试.7/23/2021\n笔试常考考点,备考必须掌握一.公共基础部分1.算法的基本概念2.算法的复杂度3.线性结构和非线性结构4.栈5.队列6.链表7.二叉树及其基本性质8.顺序查找9.二分法查找10.排序11.结构化程序设计12.面向对象的方法13.软件工程的相关概念14.数据库15.简单的关系代数16.数据库设计与原理二、C语言程序设计部分7/23/2021\n机试必须掌握的几类问题1.素数2.排序(冒泡、快速排序、选择法排序、求最值);3.求最小公倍数、最大公约数;4.矩阵问题(转置、求矩阵内规定元素的和等);5.数的按位分离和合并;6.四舍五入;7.删除、添加指定ASCII码的字符;8.单词数、指定ASCII码数统计;9.字符串逆置;10.求方程式的跟、求多项式和等的数学类问题;说明:以上所指出的只是频率出现最高的几类典型。7/23/2021\n用计算机的思维来解题序号变量变化因素变量1变量2变量3变量40语句0值10值20值30值401语句1值11值21值31值412语句2值12值22值32值423语句3值13值23值33值434语句4值14值24值34值44...……………n语句n值n4值n4值n4值n47/23/2021\n纠正一个误区千万不要认为学校教学中没讲到的内容就可以忽视!综合考虑到大家对C的深入程度,不能够更进一步展开。7/23/2021\n程序与女人有的女人就像Windows虽然很优秀,但是安全隐患太大。有的女人就像UNIX她条件很好,然而不是谁都能玩的起。有的女人就像C#长的很漂亮,但是家务活不行。有的女人就像C++,她会默默的为你做很多的事情。有的女人就像JAVA,只需一点付出她就会为你到处服务有的女人就像JAVAscript,虽然对她处处小心但最终还是没有结果。有的女人就像汇编虽然很麻烦,但是有的时候还7/23/2021\n程序与女人续:得求它。有的女人就像SQL,她会为你的发展带来莫大的帮助。爱情就是死循环,一旦执行就陷进去了。爱上一个人,就是内存泄露,你永远释放不了。真正爱上一个人的时候,那就是常量限定,永远不会改变。女朋友就是私有变量,只有我这个类才能调用。情人就是指针,用的时候一定要注意,要不然就带来巨大的灾难7/23/2021\n下次讲座内容预告计算机等级考试中的公共基础部分数据库软件工程数据结构本质上都是送分题,但实际是得分率很低的,常常是计算机等级考试“挂掉”的重要原因!VC++6.0调试程序方法(单步跟踪等)7/23/2021\n千里之行,始于足下……谢谢大家的参与!下次再见!科协陪你一起考等考……7/23/2021\nC语言的亮点——指针指针是C语言的一大特色,可以说是C语言优于其它高级语言的一个重要原因,也是C语言活的灵魂。就是因为它有指针,可以直接进行靠近硬件的操作,但是C的指针操作也给它带来了很多不安全的因素。C++在这方面做了很好的改进,在保留了指针操作的同时又增强了安全性。其他语言不可替代的重要原因7/23/2021查看更多