第一篇:《语言程序设计》学习心得自主学习报告
自主学习报告书
题 目:学习汇编语言程序设计报告 学习课程: 《汇编语言程序设计》 姓 名: 专 业: 学 号:
福建工程学院国脉信息学院教务处 制
二○一二年六月
学习汇编语言程序设计报告书
由于实际工作中对汇编语言程序设计应用较多,在业余时间我自主学习了北京大学出版社出版的《汇编语言程序设计》一书。这一本书介绍了80x86汇编语言程序设计的方法和技术,共分为两个部分:第一部分介绍80x86cpu的编程结构,汇编语言程序的格式和伪指令,80x86cpu的寻址方式和指令系统;第二部分深入讨论分支程序、循环程序、子程序基本程序设计方法,以及以中断为主的i/o程序设计,其中包括宏指令、多模块连接技术、汇编语言与高级语言的混合编程、dos和bios提供的常用中断调用,以及文件系统等内容。
通过本书,我深入的掌握了汇编语言的编程方法、思路和技巧,并对计算机的底层编程有一定认识;还对计算机底层运行程序的机制及计算机的工作原理有了深入的了解。
在学汇编的过程中,最重要的就是要掌握汇编语言中的指令的一些基本用法。当然要能够真正的了解其中的内涵,这样在实际的编程中也能够像运用高级语言一样灵活的变通。汇编语言作为一种低级程序设计语言,既然是低级所以应该是最底层的,与计算机内部的结构联系应该联系很密切,而且我在学习中也深刻的了解到了这一点。比如说后来学到的寄存器、中断、还要各种寻址方式以及进栈出栈,好多的就是设计到计算机硬件。前面几章都是对计算机内部结构和一些常用的指令以及寻址方式的寻址方式。到后面学到子程序以及宏的作用才真正发现到其实跟高级语言差别不大。以C语言为例,C语言也是由一个一个的函数组成的。没想到想汇编这样的低级语言也可以这样。在汇编语言的子程序和宏中,我个人更感觉宏的运用更像我们高级语言的子函数,通过定义好的宏,我们在后面直接调用就可以了。尤其是宏带参数的宏跟C语言中带参数的函数真的很像,根据参数的不同调用宏就能得到不同的结果。而汇编中的子程序没有这个传递参数这个功能。在调用子程序的时候要注意各寄存器中的内容。子程序是在程序执行期间由主程序调用的,它只占有它自身大小的一个空间,他不仅是源程序级别 简化,形成的目标代码较短;而宏调用则是在汇编期间展开的,每调用依次进把宏定义体展开一次,它是源程序级的简化。因而它占有的存储空间与调用次数有关,调用次数越多则占有的存储空间越大。如果宏调用次数较多的话,则其空间上的开销也是应该考虑的因素
汇编程序给人感觉最烦的就是好多程序的结果不能直接通过运行EXE文件显示出来,而更多的是经过DEBUG单步调试才能看到其内在变化,看是否正确。汇编程序不像其他的高级语言一样需要编译器,而是直接的就能在记事本上编写,然后进行汇编和连接就可以了。学习汇编调试,关键就是要掌握DEBUG的运用。汇编程序把汇编语言翻译成机器语言的过程称为汇编。是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。比机器语言易于读写、调试和修改,同时具有机器语言全部优点。但在编写复杂程序时,相对高级语言代码量较大,而且汇编语言依赖于具体的处理器体系结构,不能通用,因此不能直接在不同处理器体系结构之间移植。相比较以前学过的高级语言如C、C++等,电脑等于在迁就人的思维方式,但学汇编,人却必须要去迁就电脑的思维方式,要设身处地地用电脑的角度去思考问题,这就是我们学习汇编语言时遇到的最大的障碍。
一开始,我对PC的寻址方式和很不理解。这方面的知识是很抽象的,需要比较强的空间想象能力。尤其是我们在输入字符串时,那这些字符是如何进行排列的呢。对于这个问题,我相信很多人也和我一样很难想象。汇编语言的寻址方式有直接寻址,寄存器寻址,基址变址寻址,相对基址变址寻址等等,掌握这些都是编写汇编程序很重要的环节。在编写汇编程序时,应该注意特别容易出现的错误,例如在编写数据传送指令时,目的操作数和源操作数的类型一定要匹配,CS不能作为目的操作数,offset后只能跟简单地址符号等等。
学习完这本书后,我也对之前的高级语言中的一些知识有了更新的认识,能够让我们更好的理解高级语言,尤其是高级语言中的C语言,汇编语言对于内存的操作都是基于内存地址的,而C语言中最令人头疼的指针概念,说白了就是内存的地址指针的学习和应用中最头疼的就是在指针这个抽象的概念和实际的内存单元之间建立思维映射,而这些恰恰是我们在汇编语言学习中频繁做的一件平常事另外,对于C语言中的数据类型形参实参函数调用全局变量局部变量等概念及操作,我们都可以用汇编语言中的一些操作相关联,把这些抽象的概念和过程,通过汇编语言形成一个具体的映像,深度剖析,这样我们才能真正的学会学好C语言计算机科学的各个方面是一个统一的整体,只有多方面穿插,交互才能更好的搭建计算机知识体系。我认为汇编语言本身还是一门很重要的应用技术。首先由于汇编的操作由于跟硬件紧密相关,所以,很多硬件设施的嵌入式编程使用的都是使用的汇编语言,因为汇编语言更直接有效率。现在的数码产品很多,而这些数码产品赖以生存的芯片,主板等,都包含了嵌入式程序,而这些程序中,汇编语言的使用是相当重要的。
通过一个月多的自主学习,我常常上网搜索资料辅助理解,遇到难以理解的问题时也学会自己解决,我想这不仅是知识层面上的提升,更是自己在学习能力上的提升。这样的学习能力将非常有助于我今后的个人能力提高,我会把这种自主学习培养成为习惯,持之以恒下去。
第二篇:《C语言程序设计》学习心得
C语言程序设计网络学习心得
通过这一阶段网络的学习,我总结出以下几点,在今后的教学过程中可以尝试加以注重:
(一)激励学生学习兴趣,充分调动学生学习积极性
学习兴趣就是学生在心理上对学习活动产生爱好、追求和向往的倾向,是推动学生积极主动学习的直接动力。爱因斯坦说过:“兴趣是最好的老师,真正有价值的东西,并非仅仅从责任感产生,而是从对客观事物的爱与热忱中产生”。我国古代教育家孔子也说:“知之者不如好之者,好之者不如乐之者。”只有“好之”、“乐之”方能有高涨的学习热情和富有创造性地去完成学习任务。明确学习目的,激发学习兴趣
只有学习思想端正,学习目的明确,学生才会有学习的动力,才会有学习的自觉性。有的学生认为C语言已经落伍了,没有什么用,我们要使每个学生明确即将学习的知识与社会的关系,告诉学生学习C语言是建立程序设计思想,学习程序设计的各种基本概念、方法、技巧,培养良好的程序设计风格。在讲C语言程序设计课程前,收集大量招聘C语言编程人员的就业信息及毕业生从事C语言编程工作的收入、工作条件、工作岗位等学生十分关注的重要信息。同时,也列举了大量用C语言完成商业性软件工程,以激发学生学习C语言的动机的热情。学生有了主动性,才会自觉地学习这门课。
(二)设计问题,开发智力,引导学生自己解决实际问题
在教学过程中,我们提倡学生在课堂上发现问题、提出问题,对于学生在练习中所遇到的问题,教师不能马上告诉答案,应当适当的启发和引导让学生自己找到答案,培养他们的思考能力。同时教师要精心设计一些富有启发性的问题,达到开发学生智力的目的。这样做有两方面的意义:一是为了引人入胜,激发学生的学习兴趣;二是对知识本身提出疑问,加深对问题的认识和讨论,这也是推动 C 语言课程教学艺术化的途径之一。
(三)强化课程设计,加强学生能力培养
课程设计是整个课程学习的总结与提高,通过必要的课程设计,切实加强学生的能力培养,通常课程设计贯串整个教学环节,设计内容以具体的软件系统的开发为基础,重点让学生掌握软件开发的基本思路与方法。课程设计必须以学生为主,教师的指导重点放在总体方案制定、设计进度上。教师在课程设计过程中应经常到学生中去答疑,检查学生设计进度与设计方案、设计结果的正确性,及时发现问题并辅助解决。课程设计尽量做到每个学生的设计有所差别,并要求学生独立完成设计环节。对学生的设计方案不追求最优,只要合理就支持学生坚持完成,最后在考评阶段进行重点点评。
课程设计结束时学生必须上交课程设计说明书,同时还要进行答辩。学生答辩结束教师给予正确引导,指出设计中存在的问题,并指导学生如何完善。答辩前学生要事先准备大量的知识点,答辩过程不但锻炼学生的表达能力,还能使学生认识到自己的设计的优缺点,也了解了别人的设计思想,开阔了视野。总结
本课程的教学内容是十分丰富的,教学方法的采用应当以服务教学内容为准则,教学是一种互动活动,在教学活动中,应当大力发挥教师的“教”的主导性,调动学生“学”的积极性,做到密切配合教学相长。在教学活动中,不但要注意对C语言这门课的“精讲”,而且要注重编程能力的培养。即不但要使学生“学会”一门语言,更重要的是使学生“会学”,培养学生的开拓性,开发学生的创造性思维,从而为掌握计算机这个工具,更好地解决实际问题打下一个良好的基础。任何一门课程的教学,都包含教与学两个方面,只有很好的组织这两个环节,才能切实提高我们的教学效果,才能让学生学到更好的有用的知识,才能避免理论与实践脱钩,也才能充分调动学生的积极性。
第三篇:C语言程序设计学习探讨
C语言程序设计学习探讨
罗××
(湖南理工学院物电学院电子09-2BF班,学号14092500×××,序号003,湖南 岳阳 414000)
摘要:本文对c语言的难点、学习方法等方面作了简要的介绍,并谈到了一些个人的学习心得,仅供参考。
关键字:C语言;程序结构;指针;心得体会
A Study of the Learning of C Language Program Design
Luo × ×
(Hunan Institute of Science and Technology, school of Physics and Electronics, Yueyang,Hunan, China 414000)
Abstract: In this paper,C language's difficulties, learning methods are briefly introduced
and describes some of the personal learning experience, for reference only.Key words: C language;program structure;pointer;feelings and experience
C语言是在国内外广泛使用的一种计算机语言,它具有功能丰富、表达能力强、使用灵活方便、应用面广、目标程序效率高、可移植性高等特点,但由于c语言牵涉的概念比较复杂,规则繁多,使用灵活,容易出错,不少初学者感到困难。在此
本人谈谈自己的体会和见解。1我的C语言基础分析
通过上学期所开设的《c语言程序设计》课程的学习,我对c语言有了初步的认
识和理解,对数据的结构和存储方式、程序设计的语法算法以及程序的调试都具备了一定的理论基础。通过上机亲自编写和调试小程序,掌握编程的常见方法和步骤,我的实践能力也得到了不少的提高。但总的来说,我的基础还是比较薄弱的,我希望通过下一阶段的学习得到更大的提高。
2C语言的学习难点
就个人而言,我觉得c语言学习的难点在于逻辑算法和结构控制。我自己在编
程的时候常常是知道如何用数学方式表达出来,但要转化成程序设计语言就比较困难,其一是因为表达式的语法规则繁多运用不如自然语言的语法得心应手导致出现很多错误,其二是因为对逻辑思维的要求较高,要实现一个程序功能,其流程控制显得比较难,一个小小的步骤不能实现就会使整个程序编写寸步难行。所以多做编程练习显得尤其重要,这也是真正提高编程水平的最根本的方法。
3指针的学习心得体会
指针是c语言的一个特色,也是c语言学习中最难掌握的部分,一是因为它的抽象性,二是因为它的灵活性。通过指针的运用可以实现用其他语句所不能实现的功能,它也可以使程序变得简洁、紧凑、高效。指针既是地址,它牵涉到数据的存
储和访问方式,这往往是比较隐晦的,若还和数组及函数等结合更让人费解,比如
说如何理解“指向指针的指针”。指针变量的灵活运用也是个比较难掌握的的技能,我在使用它的时候通常都画出它在内存中的示意图,以便能清晰看到它的运算和引
用过程,这对加强初学者对指针的运作机制的理解是很有帮助的。
4对教师教学的建议
梅老师授课很细致认真,对知识点的细节问题尤其讲得很透彻,使我们对c语
言的理论知识的全面掌握很有帮助。但我们最缺少的是上机实践,以前在上机课上,我们遇到的困难和问题往往不能立即得到老师的指导,课后往往就不会再去仔细钻
研它们,这使得我们的问题累积得越来越多,所以希望老师能把理论和实践很好的结合起来,才能高效迅速提高我们的编程水平。
5总结本学期C语言学习的收获
本学期通过仔细听了梅老师的每一节课,首先在c语言理论学习上又更进了一
层楼,以前很模糊的概念、不太重视的细节问题和杂乱的知识体系现在都很清晰明
了了,其次对程序设计语言的结构和特点有了更好的理性认识,至少不会再犯一些
低级的语法错误。最重要的是学到了程序设计的思想以及思维方式,这对于我们的学习、工作、生活各个方面都是有帮助的,使得我们在处理其它事务时也能有个清
晰的逻辑思维和程序化的处理方法。
参考文献
[1] 谭浩强著.C程序设计(第三版).北京:清华大学出版社,2005
[2] 李丽娟,马淑萍主编.C语言程序设计(第二版).北京:中国铁道出版社,2009
作者简介:罗××(1991-),男,湖南衡阳人,湖南理工学院物电学院本科学生,主要研究方向
为电子技术。
第四篇:C语言程序设计报告(精选)
C语言程序设计报告
(二)第一章:使用数组和指针统计成绩
1.设计题目:假设给定班级各科考试平均成绩的原始资料如下
数学:75 物理:80 外语:83 政治:85 体育:86 人数:30
要求统计出全班学期总平均成绩以及得分最低的科目和该科目的成绩。要求的输出结果如下:
全班各科平均成绩如下: 数学:75 物理:80 外语:83 政治:85 体育:86 人数:30 统计结果如下: 人数:30
平均成绩:81
最低分数科目的成绩:75 最低分数的科目:数学
2.设计要求
对存放原始数据的要求如下:
(1)、使用整形数组a数学、物理、外语、政治、体育、人数、平均成绩、最低科目成绩 ;
(2)、使用字符串数name存放数学、物理、外语、政治、体育、最低分数的科目
(3)、使用字符串数组MeanLow存放人数、平均成绩、最低分数科目的成绩、最低分数的科目。
实现本设计功能的方法很多,这里给出4种难易成度不同的要求,以便加深对数组和指针知识的理解。
1.使用数组实现
使用数组和指针数组实现。2..使用分配的内存实现
要求将数组a的内容存入到分配的内存中,使用指针实现对内存的存取和计算。
3.将数组内容全部存入内存
为字符分配内存,并将字符数组的内容存入所分配的内存中,使用指针来实现。
源程序:
int pingjun(int *x);int zuidi(int *x);
int kemu(int *y,int n);#include
int kemu(int *y,int n){int i, t=y[0],m=0;for(i=1;i {if(t>y[i]){t=y[i];m++;} } return m;} int pingjun(int *x){int sum=0 ,i,aver;for(i=0;i<5;i++)sum=sum+x[i];aver=sum/5;return aver;} void main() {int a[9]={75,80,83,85,86,30},i,x; char *name[5]={“数学”,“物理”,“外语”,“政治”,“体育”}; char *meanlow[4]={“人数”,“平均成绩”,“最低分数科目成绩”,“最低分科目”}; printf(“原始信息如下:n”);for(i=0;i<5;i++) printf(“%s:%dn”,name[i],a[i]);for(i=0;i<4;i++) printf(“%s:%dn”,meanlow[i],a[i+5]);printf(“全班各科平均成绩如下:n”);for(i=0;i<5;i++) printf(“%s:%dn”,name[i],a[i]);printf(“统计结果如下:n”); printf(“%s:%dn”,meanlow[0],a[5]); printf(“%s:%dn”,meanlow[1],pingjun(a));printf(“%s:%dn”,meanlow[2],zuidi(a));x=kemu(a,5); printf(“%s:%sn”,meanlow[3],name[x]);} 2009年8月 中 国 管理信息化 Aug..2009 China Informationization V01.12,No.16 第12卷第16期 Management 浅谈如何学习C++语言程序设计 孟艳涛1,邵长海2(1.长春广播电视大学,长春130051;2.东北师范大学附属实验学校,长春130011)[摘要]c++语言程序设计是一门高效实用的程序设计语言,学习c++语言程序设计,并且要实质性地提高编程 能力,有两个关键因素:一个是做编程书面练习。一个是上机做实验。 [关键词]c++语言;编程练习;上机实验 doi:10.3969/j.issn.1673―0194.2009.16.044 [中图分类号]TP311[文献标识码]A [文章编号】1673-0194{2009)16―0128―02 C++是一门高效实用的程序设计语言,它既可进行endl; 过程化程序设计,也可进行面向对象程序设计。c++语 eout “\n请输入球半径:\n”; 言强调对高级抽象的支持。c++实现了类的封装、数据 cin radius: 隐藏、继承及多态,使得其代码容易维护及高度可重用。double 随着C++渐渐成为ANSI标准,这种新的面向对象程序 设汁语言迅速成了程序员最广泛使用的工具。endl: double 学习c++语言程序设计,并且要实质性地提高编程能 length,width; 力,有两个关键因素:一个是做编程书面练习,一个是上机 eout “、n请输入长方体的长、宽、高:\n”; 做实验。在初级程序设计的能力培养中,唯有多练,才能 cin. length width height; 真正找到编程的感觉,才能培养出宝贵的编程经验。volume=length木width木height: 一、做编程书面练习 C++的难学,不仅在它那广博的语法、语法背后的endl; 语义、语义背后的深层思维、深层思维背后的对象模 } 型;c++的难学,还在于它提供了不同的编程思维模型,运行结果为: 要想学好c++,只有经常思考、大量做题。通过做题加深 请输入圆柱体的半径和高: 对概念的理解,提高程序设计和解决问题的能力。墼 丝 548 例如下面的问题,我们就可以用不同的方法来 该圆柱体的体积为:141 解答。请输入球半径: 分别输入圆柱体的半径和高,求其体积;输入球半 30 309.7 径,求其表面积;输入长方体的长、宽、高,求其体积。该球面的面积为:11 [解法一]由于其中的3个问题是相互独立的,所 请输入长方体的长、宽、高: 以,解决方法也是依次来解决这3个问题。先输入第 32 12 15 一个问题的半径和高,计算并输出圆柱体的体积;然后 该长方体的体积为:5760 输入球半径,计算球表面积并输出;然后输入长、宽、[解法二]对于一个复杂的计算问题,也可以采用 高,计算长方体的体积并输出。分而治之的方法,即用函数调用分别完成预订的“小任 #include iostream.h 务”,返回其计算结果。当然这些“小任务”要预先声 #include math.h 明,若要能运行,还必须有其定义: void #include iostream.h mai.(){ #include math.h double double r,doubleh); radiusCylinder(double double,height ; eouI “请输入圆柱体的半径和高:、n”; Sphere(doubler); double ein radius height : Rectangle(doublel,doubleW,doubleh); void double main()volume=radius木height木M―PI; t cout “该圆柱体的体积为:” volume double radiusheight; 【收稿日期]2009―03―13 eout “请输入圆柱体的半径和高:\n”; 128/C卜扭悄MANAG日征:N1一ⅡⅥ'0R^噍A刀。胁了10N 万方数据 教学研究 cin radius height: 现错误,就需要从第5行开始往前查找错误并修改。 double(2)一条语句错误可能会产生若干条错误信息只 volume=Cylinder(radius,height)cout “该圆柱体的体积为:” volume 要修改了这条错误,其他错误会随之消失。一般情况 endl; 下,第一条错误信息最能反映错误的位置和类型,所以,cout “请输入球半径:\n”; 调试程序时务必根据第一条错误信息进行修改,修改 cin radius: 后,立即运行程序,如果还有很多错误,要一个一个地 doubleareaOf Sphere=Sphere(radius);修改,即,每修改一处错误要运行一次程序。 (3)程序设计者经常会遇到输入到计算机中的源 cout “该球面的面积为:” areaOfSphere endl; 程序在通过编译后,运行时却得不到正确的结果,这就 double 要求程序设计者从源程序中查找错误并进行修改,再 length,width; cout “请输入长方体的长、宽、高:\n”; 运行直到正确为止。 例如: cin length width height: if(n 0)volume=Rectangle(1ength,width,height)cout “该长方体的体积为:” volume if(a b)z=a; endl; else z=b: 表是 ’还是 double Cylinder(doubler,doubleh) if(n 达的0){ if(n 0){ { if(a b)z=aif(a b)Z=a; return else r术 r 术 M ―Z=b; } else Z=b; double 为在c++中从遇到的第一个else Sphere(doubler){ 它最近的if配对。如果程序设计者要 return4{lcr木r术M―PI: 的意思就会出现上面说的问题:可以通 确的结果。程序设计者就需要认 ; PI 半 h: } 答案是前者。因开始,else总与离表达的是后者过编译,但得不到正 double l,doubleW,doubleh)真检查源程序,做出正确的修改: Rectangle(double { 程序设计者要想表达的是后者的意思,则一定要 return1术W:Ich: 用{}。但在if语句的else前嵌套另一个if语句容易使 } 所表达的逻辑关系难于理解,应加以避免。改成下面 该程序与上一个程序的功能一样。但是分别将3 这种方式会 id=“loadingAD”> class=“ad_box”> 文档为doc格式 C语言程序设计学习心得体会 通过一学期对C语言的学习,我感觉学习C语言是有一定难度却又是非常有趣的科目。也是很有帮助的,特别是对将要面对的计算机二级考试。 这段时间的学...... 实习报告 题 目: C语言程序设计 所属系、部 : 电气工程学院 班 级: 电子商务131 姓 名:贺道君 学号: 20***5 指 导 教 师: 费 玲 玲2014年6月 一、 实习目的 加深...... 大连东软信息学院 电子工程系 2015级 本科 C语言图形程序设计报告 系所: 专业: 电子工程系 通信工程 学生姓名: 汤程皓 学生学号: *** 完成日期: 2015 年 12 月 大连东软...... 1. Problem A: Hello world! Description Xiao_ming有两个哥哥,大哥叫Da_min,二哥叫Er_min。三兄弟放学回家,父母分别跟他们打招呼。 Input 无 Output 请输出: Hello Da_min, He...... 《C 语言程序设计》主要在计算机软件、计算机网络、计算机应用、通信技术、智能电子、电子信息工程、多媒体以及核工程与核技术等专业中开设,是电子信息类、机械类等工科专业...... 《汇编语言程序设计》学习总结与心得 其实说实话在学这门课之前自己对汇编语言一点都不了解,只知道它也是一种语言,而且是一门很少用的语言,可能很多人都是这么想的,或许在学这...... 太原理工大学现代科技学院 C语言程序设计课程 实验报告 专业班级学号姓名指导教师C语言程序设计 实验指导及报告 实验说明: 1、共4次实验,每次实验完成1个内容。 2、实验报告...... 程序设计基础课程设计报告 课程名称: 课程设计题目: 程序设计基础课程设计 学生信息管理系统 姓名: 系: 专业: 年级: 学号: 指导教师: 职称: 计算机科学技术系 计算机网络技术 讲师 2......第五篇:浅谈如何学习C语言程序设计
声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。 C语言程序设计学习心得体会(范文大全)
C语言程序设计实习报告
C语言图形程序设计报告
C语言程序设计
C 语言程序设计
《语言程序设计》学习总结与心得
C语言程序设计实验指导及报告
C语言程序设计基础课程设计报告