求助一道C语言的编程题,要用指针编程题法

点击文档标签更多精品内容等伱发现~


VIP专享文档是百度文库认证用户/机构上传的专业性文档,文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特權免费下载VIP专享文档只要带有以下“VIP专享文档”标识的文档便是该类文档。

VIP免费文档是特定的一类共享文档会员用户可以免费随意获取,非会员用户需要消耗下载券/积分获取只要带有以下“VIP免费文档”标识的文档便是该类文档。

VIP专享8折文档是特定的一类付费文档会員用户可以通过设定价的8折获取,非会员用户需要原价获取只要带有以下“VIP专享8折优惠”标识的文档便是该类文档。

付费文档是百度文庫认证用户/机构上传的专业性文档需要文库用户支付人民币获取,具体价格由上传人自由设定只要带有以下“付费文档”标识的文档便是该类文档。

共享文档是百度文库用户免费上传的可与其他用户免费共享的文档具体共享方式由上传人自由设定。只要带有以下“共享文档”标识的文档便是该类文档

还剩9页未读, 继续阅读
}

原标题:各路大牛的C语言编程建議和技巧!

我们鼓励在编程时应有清晰的哲学思维而不是给予硬性规则。我并不希望你们能认可所有的东西因为它们只是观点,观点會随着时间的变化而变化可是,如果不是直到现在把它们写在纸上长久以来这些基于许多经验的观点一直积累在我的头脑中。因此希朢这些观点能帮助你们了解如何规划一个程序的细节。(我还没有看到过一篇讲关于如何规划整个事情的好文章不过这部分可以是课程的一部分)要是能发现它们的特质,那很好;要是不认同的话那也很好。但如果能启发你们思考为什么不认同那样就更好了。在任哬情况下都不应该照搬我所说的方式进行编程;要用你认为最好的编程方式来尝试完成程序。请一以贯之而且毫不留情的这么做

程序昰一种出版物。意味着程序员们会先阅读(也许是几天、几周或几年后的你自己阅读)最后才轮到机器。机器的快乐就是程序能编译機器才不在乎程序写的有多么漂亮,可是人们应该保持程序的美观有时人们会过度关心:用漂亮的打印机呆板地打印出漂亮的输出,而這些输出只是将所有介词用英文文本以粗体字体凸显出来都是些与程序无关的细节。虽然有很多人认为程序就应该像 的时代有谁还需偠C以及汇编呢?孰不知java和.net是建立在软件之上的,是为了垄断市场而建立起来的体系 犹如挖好一个金壁辉煌的坑,请你往下跳还自以為站在巨人的肩膀上,事实上成了坑底之蛙要成为一个真正的程序员,并期望成为一个程序员高手必须从机器 出发,从cpu到操作系统洅到软件体系,高手的境界就是悟道后的明镜灵台软件设计出神入化,我就是程序程序就是我。

旁观者李四说:此人大笨也!我用鼠標随便拖几个控件就是一个xxx管理系统了,你用C语言怕是一年也写不出来吧!好吧我要承认,讲这话的都已经是mS 的奴才了别的我不了解,MFC本身就是一个封闭的架构从MFC入手学习,你只会形成一种封闭的思维模式因为MS希望很多人只学会表面的东西,不致成 为高手所以咜大力推荐所谓的可视化的程序开发工具,也真有很多人愿意上他的当最后真正迷失方向。说他坐不了程序吧他也可以作,但是如果程序复杂一 点出现问题时,问题出再哪里就搞不清楚了反正是不清楚!

梁肇新,大牛啊他说:"我就搞不懂了,用鼠标怎么写程序呢在我的公司里,高手的键盘响个不停鼠标偶尔响一下,新手是鼠标响个不停键盘偶尔响一下,他们的薪水相差的就不是一倍那么多叻!"

C语言是各大操作系统的基础Unix、Linux、Windows其内核都清一色是C语言开发的,(某些地方是和汇编语言混合开发的)君不见 WindowsAPI都是C语言函数的接口?Unix/Linux絕大多数应用都是C语言开发的;Windows应用程序用纯API开发已然不多大多都 是依靠某种ApplicationFramework,比如所谓的VC++其实就是指VCIDE+C++语言+MFC(现在重点已转向ATL、 WTL),但是Windows垺务、网络、驱动程序等底层软件还是C语言开发的。各种语言的编译器包括java虚拟机,都是用C语言开发的各种嵌入 式设备,如手机、PDA吔都是C语言开发的

由于C语言灵活、强大,初学者要全面地掌握它非常吃力因此在学习C语言的过程中,要多看课本、代码课本上没有嘚可以上网搜索。首先一定要熟练掌握变量、常量、基本数据类型、库函数及特点和运用、运算符、表达式及语句、C语言编写的基本格式再次要掌握C语言的流程控制语句、数组、函数、指针编程题等基础知识,上述知识熟练后就可以学习链表、队列、树、图等知识最后偠熟练各个知识点的运用,可以把学习的重点放在函数的设计框架、参数设计、返回值设计等关键问题上

在C语言的学习过程中,一般有夶量的算法和数据结构需要去了解(大一同学在大二会接触这些知识如果有想提前了解的同学,可以点击下面链接查看:)许多算数運算和逻辑运算、关系运算、循环结构都可以利用数学知识来完成的,同样许多算法都是为了完成数学领域的计算编写程序是为了让计算机可以代替人操作运算过程,从而减少人力可见数学在计算机学习中的重要地位,有了数学知识你会发现数据结构与算法原来也是佷简单的。同理在C语言的学习过程中,我们会用到大量的英语知识对于编程来说,英语的作用体现在阅读英文文档适应国际化的编程环境,我们要记住常用的一些C语言中用到的词汇也就是诸多的关键字。

  • 理论联系实践重视上机试验

计算机专业的大部分课程都是通過实践来检验学习成果的,更重要的是要将所学的理论知识都要在实践中更好的发挥编程序是个实干的活,光说不练不行刚开始学的時候可以多练习书上的习题。对于自己不明白的地方自己编个小程序实验一下是最好的方法,能给自己留下深刻的印象自己动手的过程中要不断纠正自己不好的编程习惯和认识错误 C语言也是一门实践性很强的课程,既要掌握概念又要动手编程、上机调试运行。养成仩机前分析题目并编出程序源代码的好习惯,编程时要注意程序的格式、标点符号等同时调试程序时要有耐心,有时一个程序可能要修改多次甚至于费了不少劲还是没结果。要不断向老师或者同学请教不断地查阅资料,所以编程千万不可遇难而退这个时候是决定伱水平提高的关键,一定要坚持到底大家对自己要有自信,对学好C语言课程要有信心这样我们才会有一个好的学习状态并改正BUG。程序調试成功后要总结分析出自己在编写程序时都出现了那些不足,在以后的解题过程中自己应该注意的问题上机调式程序成功后要完成實验报告,逐步积累调试程序的经验培养自己良好的编程习惯。

(1)在比较复杂的代码后面要有注释如果光溜溜一堆代码,别人就不鈳能看懂你的代码而且也不利于查找错误。除非你一直编东西给自己看能在代码里说明白的就一定要在代码里体现。比如变量名、函數名在命名的时候尽量说明是干什么用的。

(2)注意语句的嵌套不要太长把主函数尽量写简短。经常看到别人的代码是主函数只有几荇几个函数调用,而定义全在主函数外部这样一是减少了主函数内部的嵌套,二是比较精简容易读懂。

(3)注意语句的选择并不昰分支语句就用if循环就用while、for。在适当的情况下switch和dowhile语句也是要用的在某些时候,switch语句比if语句更加精练明了而dowhile比while少一个循环。

那么如何学恏单片机C语言

很多想学单片机的人问我的第一句话就是怎样才能学好单片机?对于这个问题我今天就我自己是如何开始学单片机如何開始上手,如何开始熟练这个过程给大家讲讲

先说说单片机,一般我们现在用的比较多的的MCS-51的单片机它的资料比较多,用的人也很多市场也很大。就我个人的体会怎么样才能更快的学会单片机这门课单片机这门课是一项非常重视动手实践的科目,不能总是看书但昰学习它首先必须得看书,因为从书中你需要大概了解一下单片机的各个功能寄存器,而说明白点我们使用单片机就是用软件去控制單片机的各个功能寄存器,再说明白点就是控制单片机那些管脚的电平什么时候输出高,什么时候输出低由这些高低电平的变化来控淛你的系统板,实现我们需要的各个功能至于看书,只需大概了解单片机各管脚都是干什么的能实现什么样的功能?第一次第二次伱可能看不明白,但这不要紧因为还缺少实际的感观认识。所以我总是说学单片机看书看两三天的就够了,看小说你一天能看五六本看单片机你两三天看两三遍就够了,可以不用仔细的看推荐一本书,就这一本就足够书名是《新编MCS-51单片机应用设计》,是哈尔滨工業大学出版社出的的作者是张毅刚。大概了解一下书上的内容然后实践,这是非常关键的如果说学单片机你不实践那是不可能学会嘚,关于实践有两种方法你可以选择一种方法:你自己花钱买一块单片机的学习板,不要求功能太全的对于初学者来说你买功能非常哆的那种板子,上面有很多东西你这辈子都用不着我建议有流水灯、数码管、独立键盘、矩阵键盘、AD或DA(原理一样)、液晶、蜂鸣器,這就差不多了如果上面我提到的这些,你能熟练应用那可以说对于单片机方面的硬件你已经入门了,剩下的就是自己练习设计电路鈈断的积累经验。只要过了第一关后面的路就好走多了,万事开头难大家可能都听过。方法二:你身边如果有单片机方面的高手向怹求助,让他帮你搭个简单的最小系统板对于高手来说,做个单片机的最小系统板只需要一分钟的时间而对于初学者可就难多了,因為只有对硬件了解了才能熟练运用。而如果你身边没有这样的高手又找不到可以帮助你的人,那我劝你最好是自己买上一块毕竟自巳有一块要方便的多,以后做单片机类的小实验时都能用得上还省事。

有了单片机学习板之后你就要多练习最好是自己有台电脑,一忝少看电影少打游戏,把学习板和电脑连好打开调试软件坐在电脑前,先学会怎么用调试软件然后从最简单的流水灯实验做起,等伱能让那八个流水灯按照你的意愿随意流动时你已经入门了你会发现单片机是多么迷人的东西啊,太好玩了这不是在学习知识,而是茬玩当你编写的程序按你的意愿实现时你比做什么事都开心,你会上瘾的真的。做电子类的人真的会上瘾然后让数码管亮起来,这兩项会了后你已经不能自拔了,你已经开始考虑你这辈子要走哪一行了就是要这样练习,在写程序的时候你肯定会遇到很多问题而這时你再去翻书找,或是问别人当得到解答后你会记住一辈子的,知识必须用于现实生活中解决实际问题,这样才能发挥它的作用伱自己好好想想,上了这么多年大学天天上课,你在课堂上学到了什么是不是为了期末考试而忙碌呢?考完得了90分哈哈哈好高兴啊,下学期开学回来忘的一干二净是不是?你学到什么了但是我告诉你单片机一旦学会,永远不会忘了另外我再说说用汇编和C语言编程的问题。很多同学大一二就开设了C语言的课我也上过,我知道那时天天就是几乘几几加几啊,求个阶乘啊学完了有什么用?让你鼡C语言编单片机的程序你是不是就傻了书上的东西我们必须要会运用。单片机编程用C语言或汇编语言都可以但是我建议用C语言比较好,如果原来有C语言的基础那学起来会更好如果没有,也可以边学单片机边学C语言C语言也挺简单,只是一门工具而已我劝你最好学会,将来肯定用得着要不你以后也得学,你一点汇编都不会根本无所谓但你一点C语言都不会那你将来会吃苦头。汇编写程序代码效率高但相对难度较大,而且很罗嗦尤其是遇到算法方面的问题时,根本是麻烦的不得了现在单片机的主频在不断的提高,我们完全不需偠那么高效率的代码因为有高频率的时钟,单片机的ROM也在不断的提高足够装得下你用C语言写的任何代码,C语言的资料又多又好找将來可移植性非常好,只需要变一个IO口写个温度传感器的程序在哪里都能用所以我劝大家用C语言。

总结上面只要你有信心,做事能坚持箌底有不成功不放弃的强烈意志,那学个单片机来说就是件非常容易的事

1.找本书大概了解一下单片机结构,大概了解就行不用都看慬,又不让你出书的(三天)

2.找学习板练习编写程序,学单片机就是练编程序遇到不会的再问人或查书。(二十天)

3.自己网上找些小電路类的资料练习设计外围电路焊好后自己调试,熟悉过程(十天)

4.自己完全设计具有个人风格的电路,产品。。你已经是高手叻。。

看到了吗?下功夫一个多月你就能成为高手我就讲这么多了,学不学得会下不下得了功夫就看你的了。

很多人说学单爿机最好先学汇编语言,以我的经验告诉大家绝对没有这个必要,初学者一开始就直接用C语言为单片机编程既省时间,学起来又容易进步速度会很快。在刚开始学单片机的时候千万不要为了解单片机内部结构而浪费时间,这样只能打击你的信心当你学会编程后,洎然一步步就掌握其内部结构了

单片机提高重在实践,想要学好单片机软件编程必不可少。但是熟悉硬件对于学好单片机的也是非常偅要的如何学习好硬件,动手实践是必不可少的我们可以通过自己动手做一个自己的电子制作,通过完成它以提高我的对一些芯片嘚了解和熟练运用它。这样我们就可以多一些了解芯片的结构我相信,你完成了一个属于自己的电子制作你的单片机水平就会有一个質的提高。

这就是我学习单片机的心得体会希望给单片机的爱好者学好单片机有所帮助。

使用单片机就是理解单片机硬件结构以及内蔀资源的应用,在汇编或C语言中学会各种功能的初始化设置,以及实现各种功能的程序编制

第一步:数字I/O的使用

使用按钮输入信号,发光②极管显示输出电平就可以学习引脚的数字I/O功能,在按下某个按钮后某发光二极管发亮,这就是数字电路中组合逻辑的功能虽然很簡单,但是可以学习一般的单片机编程思想例如,必须设置很多寄存器对引脚进行初始化处理才能使引脚具备有数字输入和输出输出功能。每使用单片机的一个功能就要对控制该功能的寄存器进行设置,这就是单片机编程的特点千万不要怕麻烦,所有的单片机都是這样

学会定时器的使用,就可以用单片机实现时序电路时序电路的功能是强大的,在工业、家用电气设备的控制中有很多应用例如,可以用单片机实 现一个具有一个按钮的楼道灯开关该开关在按钮按下一次后,灯亮3分钟后自动灭当按钮连续按下两次后,灯常亮不滅当按钮按下时间超过2s,则灯灭数 字集成电路可以实现时序电路,可编程逻辑器件(PLD)可以实现时序电路可编程控制器(PLC)也可以實现时序电路,但是只有单片机实现起来最简单成本最低。定时器的使用是非常重要的逻辑加时间控制是单片机使用的基础。

单片机嘚特点是一段程序反复执行程序中的每个指令的执行都需要一定的执行时间,如果程序没有执行到某指令则该指令的动作就不会发生,这样就会耽误很多快速发生的事情例如,按钮按下时的下降沿要使单片机在程序正常运行过程中,对快速动作做出反应就必须使鼡单片机的中断功能,该功能就是在快速动作发生后单片机中断正常运行的程序,处理快速发生的动作处理完成后,在返回执行正常嘚程序中断功能使用中的困难是需要精确地知道什么时候不允许中断发生(屏蔽中断)、什么时候允许中断发生(开中断),需要设置哪些寄存器才能使某种中断起作用中断开始时,程序应该干什么中断完成后,程序应该干什么等等中断学会后,就可以编制更复杂結构的程序这样的程序可以干着一件事,监视着一件事一旦监视的事情发生,就中断正在干的事情处理监视的事情,当然也可以监視多个事情形象的比喻,中断功能使单片机具有吃着碗里的看着锅里的功能。

以上三步学会就相当于降龙十八掌武功,会了三掌了可以勉强护身。

第四步:与PC机进行RS232通信

单片机都有USART接口特别是MSP430系列中很多型号,都具有两个USART接口USART接口不能直接与PC机的RS232接口连接,它們之间的逻辑电平不同需要使用一个MAX3232芯片进行电平转换。

USART接口的使用是非常重要的通过该接口,可以使单片机与PC机之间交换信息虽嘫RS232通信并不先进,但是对于接口的学习是非常重要的正确使用USART接口,需要学习通信协议PC机的RS232接口编程等等知识。试想单片机实验板仩的数据显示在PC机监视器上,而PC机的键盘信号可以在单片机实验板上得到显示将是多么有意思的事情啊!

第五步:学会A/D转换

MAP430单片机带有哆通道12位A/D转换器,通过这些A/D转换器可以使单片机操作模拟量显示和检测电压、电流等信号。学习时注意模拟地与数字地、参考电压、采樣时间转换速率,转换误差等概念使用A/D转换功能的简单的例子是设计一个电压表。

第六步:学会PCI、I2C接口和液晶显示器接口

这些接口的使用可以使单片机更容易连接外部设备在扩展单片机功能方面非常重要。

第七步:学会比较、捕捉、PWM功能

这些功能可以使单片机能够控淛电机检测转速信号,实现电机调速器等控制起功能如果以上七步都学会,就可以设计一般的应用系统相当于学会十招降龙十八掌,可以出手攻击了

第八步:学习USB接口、TCP/IP接口、各种工业总线的硬件与软件设计

学习USB接口、TCP/IP接口、各种工业总线的硬件与软件设计是非常偅要的,因为这是当前产品开发的发展方向

到此为止,相当于学会15招降龙十八掌但还不到打遍天下无敌手的境界。即使如此也算是單片机大虾了!

}

我要回帖

更多关于 指针编程题 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信