c程序设计学习心得

| 收藏本文 下载本文 作者:緈t諨約錠

以下是小编精心整理的c程序设计学习心得(共含9篇),供大家阅读参考。同时,但愿您也能像本文投稿人“緈t諨約錠”一样,积极向本站投稿分享好文章。

c程序设计学习心得

篇1:c程序设计抽象思维

【数据类型】

数据层次结构中的最底层是由原子类型和枚举类型构成的。从最底层开始,通过使用指针、数组、记录机制,利用已有的类型扩展这个层次结构。

原子类型分为4类:整数类型,浮点类型,文本类型,布尔类型。

枚举类型采用以下的语法形式来定义:

typedef enum { element - list } name;

其中,element-list是标识符的列表,称为枚举常量。name是这个新类型的名称。例如下面的枚举类型定义了罗盘上的四个主要方向:

typedef enum { North, East, South, West } directionT;

一旦定义了枚举类型,就可以像其他内建原子类型那样声明这种类型的变量。

在C语言中,枚举类型、字符型和各种整数的表示形式统一叫做标量类型。当在C表达式中使用标量类型的值时,编译器就会自动将这些标识符转换为整数保存。这种机制的作用是,在这些标量类型上执行的操作与整型上执行的操作完全一样。

【指针】

在C语言中有一种表示内存地址的数据项,称为指针。指针有很多种用处,下面是最主要的集中:

1. 指针可以以一种简洁的方式访问一个大的数据结构。

2. 指针可以使不同程序间的数据共享更方便。

3. 指针可以在程序执行时留出内存空间。

4. 指针可以记录各数据项之间的关系。

在很多指针应用中,都需要有一个特殊指针值,表示某一指针并不指向任何实际单元。C语言定义了这种特殊的常量,称为NULL(在stdlib.h头文件中定义的)。该常量可以被赋值给任何的指针变量,其内部表示为地址值0。

为了了解指针变量在实际中是如何使用的,我们先看一下C语言中指针的常规用法-向函数传递指针,使被调用函数可以使用到调用函数中的数据。将简单变量从一个函数传递给另一个函数,只是使另一个函数得到一个副本。在函数中访问这个参数,只是访问它的本地副本,对调用函数中的数据没有任何影响。

把指针当做参数传递,使得在被调用函数中改变调用函数的参数值。在C语言中使用传递指针的方式传递地址称为引用。

篇2:c程序设计心得体会

一、课程设计目的

通过系统的制作,使我们熟悉系统开发的流程,更加熟练掌握C#语言的编程以及系统制作,同时可以减轻老师的工作负担提高工作效率,与此同时也提高了考试的质量,从而使考试更趋于公正、客观,更加激发学生的学习兴趣。

背景

在我国,虽然远程教育已经蓬勃地发展起来了,但是目前学校与社会上的各种考试大都采用传统的考试方式。在此方式下,组织一次考试是至少要经过5个步骤,即人工出题、考生考试、人工阅卷、成绩评估和试卷分析。

显然,随着考试类型的不断增加以及考试要求的不断提高,教师的工作量将会越来越大,并且其工作将是十分繁琐和容易出错的,可以说传统的考试方式已经不能适应现代考试的需要。随着计算机应用的迅猛发展,网络应用不断扩大,人们迫切要求利用这些技术来进行在线考试,以减轻教师的工作负担及提高工作效率,与此同时也提高考试的质量,从而使考试更加趋于公正、客观、更加激发学生的学习兴趣。

在线考试系统要求对考生进行登录验证、考生选择考试科目、

限制考试时间、交卷后自动评分,同时需要为管理人员提供试卷管理及考生信息的相关管理,设计系统的主要目的是为考试减少不必要的浪费并且使考核学生成绩变得客观和公正。

二、课程设计的要求

(一)管理员用户

1、能对试题(只有单项选择题)进行管理(增加,修改和删除);

2、能对用户留言进行管理;

3、能管理注册用户(删除某用户);

4、能查看所有用户的考试成绩。

(二)普通注册用户

1、可注册一新用户,注册内容项自定,但必须有上传照片项,所有项目须验证。

2、可登录进入考试页面进行考试,登录成功后考试页面上要显示用户信息和用户照片,同时显示相关试题(随机从题库表中任意抽取20题进行考试),用户做完试题后点提交试卷按钮结束考试,可使用消息框看到本次考试的成绩,并将相关信息存入成绩表中。

3、可查看留言和留言。

三、运行环境

系统开发平台:Microsoft.Visual.Studio.;

系统开发语言:C#;

数据库软件:Microsoft SQL Server 2005;

运行平台:windows xp/windows7

运行环境:Microsoft.NET Framework SDK v2.0

四、系统设计:

本系统有两个类型的用户,管理员和普通用户。用户在注册时可以设定自己的权限,注册成功可以跳转到登录页面登录.

如果是普通用户登录,就可以修改自己的信息,并自己进行留言和进行试题测试,查看开始时间/考试成绩和留言信息

如果是管理员登录系统,则可以对试题进行相关的操作,如增加试题。对注册的新用户进行管理,删除用户。对留言信息进行管理。并且可以查看学生的成绩。

运行:

在线考试系统的基本功能,包括系统用户的添加、考试试卷的添加、试题的添加和在线考试以及分数计算等。最后将所有模块组装成一个完整的系统。经过测试,系统实现了需求分析中的要求,运行正常,操作界面简洁。

五、心得体会

基于.net的在线考试系统的的设计与实现经过系统分析、需求分析、概要设计、详细设计等阶段基本了解了该系统的功能要求及设计的可行性。在线考试系统的基本功能,包括系统用户的添加、考试试卷的添加、试题的添加和在线考试以及分数计算等。最后将所有模块组装成一个完整的系统。经过测试,系统实现了需求分析中的要求,运行正常,操作界面简洁。

由于时间和技术水平的缘故,本系统还存在着许多方面的工作尚未完善。系统的各项功能基本都能正常运行,达到了初步设计的要求,但是还不够完善。比如插入试题模块功能还不完善,系统安全性有待提高。另外在试题的插入时,只能由管理员逐题进行录入,还没有实现试题的成套录入。界面的美化还得进一步细化,各功能模块也有待进行整改和完善。一个好的系统需要一段时间的跟踪及长期的维护,也许后期还有可能进行功能上的增加或改进,这些都需要在系统设计时考虑好,才能使一个系统被应用的时间更长。自己有待进一步提高,相信在以后的学习及生活中会将本设计修改的更加完善。

篇3:c程序设计心得体会

伴随着c#我度过了这个忙碌而又充实的一个月,也是这个月让我学到很多,现在觉得这个月过的不知不觉,是因为学习的投入吧!

这个月的主要学习了c#,主要参考书是《c#高级编程》和《Visual C# 大学教程》。

学习内容有《c#高级编程》第一章 .net体系结构

第二章 c#基础 第三章 对象和类型 第四章 继承 第五章 运算符和类型强制转换 第六章 委托和事件 第七章 内存管理和指针 第八章 字符串和正则表达式 第九章 集合 第十章 反射 第十一章 错误和异常 第十二章 Visual Studio.NET 第十五章 线程 第十九章 Windows 窗体 第二十一章 .NET数据访问 ADO.NET 数据库。《Visual C# 2008大学教程》也学习了大致同样的内容,不再列举。

现在已能完成一些程序设计,能运用VisualStudio来编写一些Windows应用程序和控制台应用程序。

主要成果:编写了一个简单计算器。

通过这个月的学习,c#已经入门,能编写一些程序,

真的很高兴 ,虽然在学习的过程中遇到很多困难,但通过学长的帮助和自己的努力,那些困难都被一一克服,取得了不少进步,这个月虽短但很有意义,因为通过这个月的学习我得到的不仅是知识上的进步,而且还培养了我学会思考的习惯。记得有人讲过这样的一句话:“学习的过程是一个思考的过程:”我认为的确是这样,因为学习真正的目的并不在于你获得了怎样的成绩,而是在于寻找未来的方向。

以后的学习道路上会有更多的困难等着我去克服,而且有更多的知识要去学,我会更加努力的去学习,而且学习中存在一些问题要去解决,更好的计划学习,勤问问题,在今后的学习中会不断改进自己。

1.多看多写

看一下别人写的代码,会养成一个好的编程习惯。但更重要的是,要看一下比较成熟的代码。

2.多编多敲

看了代码,就要写代码,,可以跟他们相同。这是了解他们的代码,也了解代码的执行过程。特别是在编译的时候,你会发现你的进步和不足。在失败中取得微小的成功,是一件很快乐的事情。

在敲代码的时候,你会发现,你的很多英文都会输入错误。尽量多用“.”这个神奇的点,实质就是调用。

3.简单编程

不要一开始就是很困难、好多行的代码。这样你的自信心会被削弱的。自尊会被打击的。从最基本的学起。从一开始就慢慢体会代码重复利用的快乐。毕竟这样很节省代码的输入量,而且很能体现你的学习的效果。

4.多多交流

也许很简单的问题,都是一些很简单的属性设置的问题,或许一些你很想不到的边边角角的问题,你总是会感到迷茫,但是,不要担心,你要充分利用帮助文件和网络的资源。

特别是,在学习C#的时候,很多人,很懒得安装MSDN,确实,那些占用很多空间。但那里面有很多好东西,会教你很多的属性的资料和很多方法。

通过网络的搜索,很会找到很多有关的话题的解决方法,很多你遇到的问题,很有可能,早就被人发现和被人解决。你会在寻找问题的答案中,获得进步。发现问题和解决问题本身,就是一大进步。

5.发现新思路

编程最麻烦的就是套用老方式和老办法。你可以充分利用现有的对象,进行细化和增加新的属性。创新是编程最大的灵感。

6.编程模式

编程归根结底就是对控件属性的修改的过程,使之符合我们的需要。控件也叫做对象,你跟用户最直接的接触方式。修改的过程也就是函数的应用。

通过对现有的控件的学习,你会发现,这些很基本,但是覆盖的面十分的宽广。也许,这些控件可能无法满足你的需要,你就会新建新的控件,来满足新的需要。但是,基本的控件你是必须要掌握的。

7.善于总结

在总结中,你会发现,你有很大的进步,也存在很多的不足。所以,你就会千方百计的改进你的工作方式和学习方法,使之不断进步。

编程本身是一项创造性的工作。灵感来自客户的需要,来自市场的需要,来自用户的便捷操作,来自您对自己的信心。

8.创造完美

完美是合作的结晶。通过团队的努力奋斗,你会发现你的工作量减少了,你的质量提高了,你的效率提升了,你的能力增强了。

更重要的事,从你组织和分配中获得的成功,会让你获得鼓励,在今后的编程生活中,体验编程的快乐,从自己做起,分享自己的快乐,从团队合作做起。

总之,自己一直是一位初学者,有很多专业的概念,我还是很不明白,这次,我通过编程实训,使我了解了很多,学习了很多。

篇4:c程序设计心得体会

1.多看多写

看一下别人写的代码,会养成一个好的编程习惯。但更重要的是,要看一下比较成熟的代码。

2.多编多敲

看了代码,就要写代码,,可以跟他们相同。这是了解他们的代码,也了解代码的执行过程。特别是在编译的时候,你会发现你的进步和不足。在失败中取得微小的成功,是一件很快乐的事情。

在敲代码的时候,你会发现,你的很多英文都会输入错误。尽量多用“.”这个神奇的点,实质就是调用。

3.简单编程

不要一开始就是很困难、好多行的代码。这样你的自信心会被削弱的。自尊会被打击的。从最基本的学起。

从一开始就慢慢体会代码重复利用的快乐。毕竟这样很节省代码的输入量,而且很能体现你的学习的效果。

4.多多交流

也许很简单的问题,都是一些很简单的属性设置的问题,或许一些你很想不到的边边角角的问题,你总是会感到迷茫,但是,不要担心,你要充分利用帮助文件和网络的资源。

特别是,在学习C#的时候,很多人,很懒得安装MSDN,确实,那些占用很多空间。但那里面有很多好东西,会教你很多的属性的资

料和很多方法。

通过网络的搜索,很会找到很多有关的话题的解决方法,很多你遇到的问题,很有可能,早就被人发现和被人解决。你会在寻找问题的答案中,获得进步。发现问题和解决问题本身,就是一大进步。

5.发现新思路

编程最麻烦的就是套用老方式和老办法。你可以充分利用现有的对象,进行细化和增加新的属性。创新是编程最大的灵感。

6.编程模式

编程归根结底就是对控件属性的修改的过程,使之符合我们的需要。控件也叫做对象,你跟用户最直接的接触方式。修改的过程也就是函数的应用。

通过对现有的控件的学习,你会发现,这些很基本,但是覆盖的面十分的宽广。也许,这些控件可能无法满足你的需要,你就会新建新的控件,来满足新的需要。

但是,基本的控件你是必须要掌握的。

7.善于总结

在总结中,你会发现,你有很大的进步,也存在很多的不足。所以,你就会千方百计的改进你的工作方式和学习方法,使之不断进步。

编程本身是一项创造性的工作。灵感来自客户的需要,来自市场的需要,来自用户的便捷操作,来自您对自己的信心。

8.创造完美

完美是合作的结晶。通过团队的努力奋斗,你会发现你的工作量

减少了,你的质量提高了,你的效率提升了,你的能力增强了。

更重要的事,从你组织和分配中获得的成功,会让你获得鼓励,在今后的编程生活中,体验编程的快乐,从自己做起,分享自己的快乐,从团队合作做起。

总之,自己一直是一位初学者,有很多专业的概念,我还是很不明白,这次,我通过编程实训,使我了解了很多,学习了很多。

篇5:程序设计学习心得

在这个星期里,我们专业的学生在专业老师的带领下进行了c语言程序实习学习。在这之前,我们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,更多的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。

由于时间的关系,我们的这次实习课程老师并没有给我们详细的介绍,只是给我们简单的介绍了几个比较重要的实际操作。包括了程序模块处理。简单界面程序。高级界面程序。程序的添加修改。用程序做一元线性回归处理以及用c语言程序来画粒度分布图等这几样比较重要的时间操作。

上机实验是学习程序设计语言必不可少的实习环节,特别是c语言灵活、简洁,更需要通过编程的实习来真正掌握它。对于程序设计语言的学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。

学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。因为学时所限,课程不能安排过多的统一上机实验,所以希望学生有效地利用课程上机实验的机会,尽快掌握用c语言开发程序的能力,为今后的继续学习打下一个良好的基础。为此,我们结合课堂讲授的内容和进度,安排了12次上机实验。课程上机实验的目的,不仅仅是验证教材和讲课的内容、检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面:

1、熟悉程序开发环境、学习计算机系统的操作方法

一个c语言程序从编辑、编译、连接到运行,都要在一定的外部操作环境下才能进行。所谓“环境”就是所用的计算机系统硬件、软件条件,只有学会使用这些环境,才能进行程序开发工作。通过上机实验,熟练地掌握c语言开发环境,为以后真正编写计算机程序解决实际问题打下基础。同时,在今后遇到其它开发环境时就会触类旁通,很快掌握新系统的使用。

2、学习上机调试程序

完成程序的编写,决不意味着万事大吉。你认为万无一失的程序,实际上机运行时可能不断出现麻烦。如编译程序检测出一大堆错误。有时程序本身不存在语法错误,也能够顺利运行,但是运行结果显然是错误的。开发环境所提供的编译系统无法发现这种程序逻辑错误,只能靠自己的上机经验分析判断错误所在。程序的调试是一个技巧性很强的工作,对于初学者来说,尽快掌握程序调试方法是非常重要的。有时候一个消耗你几个小时时间的小小错误,调试高手一眼就看出错误所在。

通过这次为数不多的几天计算机实习学习,我们了解了一些关于c语言的知识,理解巩固了我们c语言的理论知识,着对我们将来到社会工作将会有莫大的帮助。同时它让我知道,只要你努力,任何东西都不会太难。

3、加深对课堂讲授内容的理解

课堂上要讲授许多关于c语言的语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。然而要使用c语言这个工具解决实际问题,又必须掌握它。通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c语言的语法规定。对于一些内容自己认为在课堂上听懂了,但上机实习中会发现原来理解的偏差,这是由于大部分学生是初次接触程序设计,缺乏程序设计的实习所致。

学习c语言不能停留在学习它的语法规则,而是利用学到的知识编写c语言程序,解决实际问题。即把c语言作为工具,描述解决实际问题的步骤,由计算机帮助我们解题。只有通过上机才能检验自己是否掌握c语言、自己编写的程序是否能够正确地解题。

篇6:程序设计学习心得

通过上机实验来验证自己编制的程序是否正确,恐怕是大多数同学在完成老师作业时的心态。但是在程序设计领域里这是一定要克服的传统的、错误的想法。因为在这种思想支配下,可能你会想办法去“掩盖”程序中的错误,而不是尽可能多地发现程序中存在的问题。自己编好程序上机调试运行时,可能有很多你想不到的情况发生,通过解决这些问题,可以逐步提高自己对c语言的理解和程序开发能力。

学习C语言已经一年多,对C也算得上半个入门者,期间也写过一些自娱自乐的代码。其实个人认为无论学习什么语言,最重要的是掌握习编程思想,然而C语言一种学习编程思想的基础语言。所以,C语言的重要性不言而喻。

一、课本

无论用的是什么书,要学好C语言,把书上的每一个例题、习题的代码读懂,这是学C最基本的要求。弄懂每一章的内容是什么?在C语言中有什么用?并尝试修改每一个例题的代码,采用不同的代码来实现题目的要求。

二、课堂

在每一节课上,注意老师讲的内容,有的知识,老师稍微提点,你就能弄懂,但是自己看书,或许你几天也弄不懂。老师更能清晰地让你明白所要求掌握的知识点。在课堂上,尽可能多的在草稿纸上写下你自己的代码,让老师看或是自己上机调试。

三、笔记

无论学习什么知识,笔记是重点,俗话说:好记性不如烂笔头。一个认真学习的人,总是记了很多笔记的,想学好编程,你的笔记本上总有课本上的每一个例题代码的核心部分。以及八大经典的算法举例,递推、递归、穷举、贪心、分治、动规、迭代、分枝。

四、交流

想学好C语言,交流是必须的,尤其是学习C语言的新手,这里,我向大家推介——百度C语言贴吧,这里有很多的学习者,也有很多高手,在这里你能学到课本以及课堂上学不到的东西。和他人交流也是很重要的。

五、上机练习

这是学习好C语言的关重要的环节,无论你编程学得多好,上机实现才是目的,所以,不怕要辛苦,把你的每一段代码都敲进计算机,让计算机来实现,这样有助于你对程序的理解,并试着修改你的代码,让你的代码更精简,效率更高。平时没事的时候,在计算机上多敲代码,一个编程厉害的高手,他的计算机上会有多代码。

想成为编程高手的军规:

1、大学生活丰富多彩,会令你一生都难忘,但难忘有很多种,你可以学了很多东西而难忘,也会因为什么都没学到而难忘!

2、编程不是技术活,而是体力活。

3、C语言是基础,很重要,如果你不学好C语言,那么什么高级语言你都学不好。

4、计算机专业是一个很枯燥的专业,但即来之、则安之,只要你努力学,也会发现其中的乐趣。

5、学习编程的秘诀是:编程,编程,再编程。

篇7:c语言程序设计实验报告

一、实验目的:

1、掌握C语言的数据类型和变量的声明。

2、掌握不同类型数据之间赋值的规律。

3、掌握C语言的运算符和表达式的使用。

4、熟悉C程序的编辑、编译、连接和运行的过程。

二、实验内容:

①输人程序: #includevoid main { int a, b; float d,e; char c1,c2; double f, g; long m, n; unsigned int p,q; a=61;b=62; c1='a';c2='b'; d=3.56;e=-6.87; f=3157.890121;g=0.123456789; m=50000;n=-60000; p=32768;q=40000; printf(“a=%d,b=%d c1=%c,c2=%c d=%6.2f,e=%6.2f ”,a,b,c1,c2,d,e); printf(“f=%15.6f,g=%15.6f m=%ld,n=%ld p=%u,q=%u ”,f,g,m,n,p,q); } ②运行此程序并分析结果 (2)按习题4. 8要求编写程序 题目为: 设圆半径r=l. 5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。 用scanf输人数据,输出计算结果口输出时要有文字说明,取小数点后两位数字。

程序:

三、实验步骤:

①输人程序:

#include

void main() { int a, b; float d,e; char c1,c2; double f, g; long m, n; unsigned int p,q; a=61;b=62; c1='a';c2='b'; d=3.56;e=-6.87; f=3157.890121;g=0.123456789; m=50000;n=-60000; p=32768;q=40000; printf(“a=%d,b=%d c1=%c,c2=%c d=%6.2f,e=%6.2f ”,a,b,c1,c2,d,e); printf(“f=%15.6f,g=%15.6f m=%ld,n=%ld p=%u,q=%u ”,f,g,m,n,p,q); }

②运行此程序并分析结果。

预计结果:

a=61,b=62

c1=a,c2=b

d=``3.56,e=`-6.87

f=````3157.890121,g=```````0.123456

m=50000,n=-60000

p=32768,q=40000(`代表空格)

结果:

g的输出看来是四舍五入了。

③在此基础上,将程序第9~14行改为:

a=61;b=62;

c1=a;c2=b;

f=3157.890121;g=0.123456789;

d=f;e=g;

p=a=m=50000;q=b=n=-60000;

运行程序,分析结果。

p=a=m=50000;q=b=n=-60000;这两条语句将p、a、m的值和q、b、n的值都重新赋了相应的新值。除m、n外都是整型、无符号整型或字符型,因此输出会按数据类型强制截取,因此得到的值会不尽相同,但可以从理论上做出推测,但由于编译系统的不同,真正得到的结果也可能不尽相同。

④改用scanf函数输人数据而不用赋值语句,scanf函数如下:

scanf(“%d,%d,%c,%c,%f,%f,%lf,%lf,%ld,%ld,%u,%u”,&a,&b,&c1,&c2,&d,&e,&f,&g,&m,&n,%p,%q);

输入的数据如下:

分析运行结果。

(说明:lf和ld格式符分别用于输人double型和long型数据)

⑤在④的基础上将printf语句改为:

printf(“a=%d,b=%d c1=%c,c2=%c d=%15.6f,e=%15.6f ”,a,b,c1,c2,d,e);

printf(“f=%f,g=%f m=%ld,n=%ld p=%u,q=%u ”,f,g,m,n,p,q);

运行程序:

⑥将p、q改用%o格式符输出。

⑦将scanf函数中的%1f和%ld改为%f和%d,运行程序并观察分析结果。

出现错误,提示为:浮点错误:超出范围。程序异常中止。 (2)按习题4. 8要求编写程序

题目为:

设圆半径r=l. 5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。 用scanf输人数据,输出计算结果口输出时要有文字说明,取小数点后两位数字。 程序:

#include

void main()

{

float h,r,s,sq,vq,vz;

float pi=3.1415926;

printf(“Please input the circinal r, and the cylindrical h:”);

scanf(“%f,%f”,&r,&h);

l=2*pi*r;

sq=4*pi*r*r;

vq=4.0/3.0*pi*r*r*r;

vz=pi*r*r*h;

printf(“circinal girth is: l=%6.2f ”,l);

printf(“circinal area is: s=%6.2f ”,s);

printf(“sphere surface area is: sq=%6.2f ”,sq);

printf(“sphere cubage is: vq=%6.2f ”,vq);

printf(“cylindrical cubage is: vz=%6.2f ”,vz);

}

(3)编程序,用getchar函数读人两个字符给c1 ,c2,然后分别用putchar函数和printf输出这两个字符。  上机运行程序,比较用printf和putchar函数输出字符的特点。 程序如下: #includevoid main() {  char c1,c2;  printf(“Please input tow letters: ”);  c1=get);  c2=get);  printf(“Putchar is: ”);  putc1);  putc2); printf(“ ”);  printf(“Printf is: ”);  printf(“%c %c ”,c1,c2);

}

可见有putchar输出的结果是一个字符一个字符顺序输出的。每个putchar函数只能输出一个字符,且只能输出字符,而printf可以输出多个数据,且为任意类

四、实验心得(体会):

通过本次C语言上机实验,我对顺序结构程序设计有了一定的了解。通过几个例题,我对顺序结构中scanf和printf语句的基本实用情况有了一定的理解。我相信这些都为后来的编程打下基础。对C语言学习,我会更加努力。

篇8:c语言程序设计实验报告

(一) 实验目的

(1) 熟悉和掌握结构的说明和引用、结构的指针、结构数组,以及函数中使用结构的方

法。

(2) 掌握动态存储分配函数的用法,掌握自引用结构和单向链表的创建、遍历、结点的

增删、查找等操作。

(3) 了解字段结构和联合的用法。

(二) 实验内容及要求

1.表达式求值的程序验证 设有说明:

char u[] = “UVWXYZ”; char v[] = “xyz”; struct T{  int x;  char c;  char *t;

}a[] = {{11, 'A', u}, {100, 'B', v}}, *p = a;

请先自己计算表2.1中表达式的值,然后编写程序并运行来加以验证。(各表达式相互无关)

2.源程序修改、替换

下面所给源程序的功能是:给定一批整数,以0作为结束标志且不作为结点,将其建成一个先进先出的链表。先进先出链表的头指针始终指向最先创建的结点(链头),先建结点指向后建结点,后建结点始终是尾结点。请完成以下工作:

(1) 源程序中存在什么样的错误(先观察执行结果)?对程序进行修改、调试。使之能

够正确完成指定任务。

(2) 修改替换creat_list函数,将其建成一个后进先出的链表。后进先出的链表的头指针

始终指向最后创建的结点(链头),后建结点指向先建结点,先建结点始终是尾结点。

源程序

#include

#includestruct s_list{  int data;

struct s_list *next; };

void creat_list(struct s_list *headp, int *p); int main(void) {

struct s_list *head = NULL, *p;  int s[] = {1, 2, 3, 4, 5, 6, 7, 8, 0};  creat_list(head, s);  p = head;  while(p)  {

printf(“%d ”, p ->data);p = p ->next;  }

printf(“ ”);  return 0; }

void creat_list(struct s_list *headp, int *p) {

struct s_list *loc_head = NULL, *tail;  if(p[0] == 0);  else  {

loc_head = (struct s_list *)malloc(sizeof(struct s_list));loc_head ->data = *p++;tail = loc_head;while(*p){

tail ->next = (struct s_list *)malloc(sizeof(struct s_list)); tail = tail ->next; tail ->data = *p++;}

tail ->next = NULL;  }

headp = loc_head; }

3.程序设计

编写并上机调试运行能实现以下功能的程序或函数:

(1)编写一个程序,实现以下功能:定义一个字段结构struct bits,它将一个8位无符号字节从最低位向最高位声明为8个字段,各字段依次为bit0, bit1, …… bit7,且bit0的优先级

最高。同时设计8个函数,第i个函数以biti(i = 0, 1,……7)为参数,并且在函数体内输出biti的值。将8个函数的名字存入一个函数指针数组p_fun。如果bit0为1,调用p_fun[0]指向的函数。如果struct bits中有多位为1,则根据优先级从高到低依次调用函数指针数组p_fun中相应元素指向的函数。8个函数中的第0个函数可以设计为 Void f0(struct bits b) {

Printf(“the function %d is called! ”, b); }

(3) 设计用单词链表建立一张班级成绩单,包括每个学生的学号、姓名、英语、高等数

学、普通物理、C语言程序设计四门课程的成绩,试用函数编程实现下列功能:

① 输入每个学生的各项信息。 ② 输出每个学生的.各项信息。 ③ 修改指定学生的指定数据项的内容。 ④ 统计每个同学的平均成绩(保留两位小数)。 ⑤ 输出各位同学的学号、姓名、四门课程的总成绩和平均成绩。 4.选做题

(1)对上述程序设计题中第(2)题的程序,增加按照平均成绩进行升序排序的函数,试写出用交换结点数据域的方法升序排序的函数,排序可用选择法或冒泡法。

(2)对选做题第(1)题,进一步写出用交换结点指针域的方法升序排序的函数。 (3)采用双向链表重做编程设计题中的第(2)题。

(三) 实验步骤及结果

1.表达式求值的程序验证的实验步骤及结果

表2.1  表达式值的计算

结果正确!

2.源程序修改、替换的实验步骤及结果

(1)改错:headp类型应为双重指针,即:void creat_list(struct s_list **headp, int *p); 同时第40行应该改为*headp = loc_head; 第12行改为creat_list(&head, s); 修改后的程序如下: #include#includestruct s_list{  int data;

struct s_list *next; };

void creat_list(struct s_list **headp, int *p); int main(void)

{

struct s_list *head = NULL, *p;  int s[] = {1, 2, 3, 4, 5, 6, 7, 8, 0};  creat_list(&head, s);  p = head;  while(p)  {

printf(“%d ”, p ->data);p = p ->next;  }

printf(“ ”);  return 0; }

void creat_list(struct s_list **headp, int *p) {

struct s_list *loc_head = NULL, *tail;  if(p[0] == 0);  else  {

loc_head = (struct s_list *)malloc(sizeof(struct s_list));loc_head ->data = *p++;tail = loc_head;while(*p){

tail ->next = (struct s_list *)malloc(sizeof(struct s_list)); tail = tail ->next; tail ->data = *p++;}

tail ->next = NULL;  }

*headp = loc_head; }

程序运行结果如图所示:

结果正确!

(2)建立一个后进先出的链表如下:

修改后程序如下: #include#includestruct s_list{  int data;

struct s_list *next; };

void creat_list(struct s_list **headp, int *p); int main(void) {

struct s_list *head = NULL, *p;  int s[] = {1, 2, 3, 4, 5, 6, 7, 8, 0};  creat_list(&head, s);  p = head;  while(p)  {

printf(“%d ”, p ->data);p = p ->next;  }

printf(“ ”);  return 0; }

void creat_list(struct s_list **headp, int *p) {

struct s_list * loc_head=NULL,*tail;  struct s_list * temp;  if(p[0]==0) ;

篇9:c语言程序设计实验报告

一、实验目的:

1.熟悉Win TC或者VC++ 6.0的软件环境,掌握使用其进行编辑、编译、连接和运行的方法。 2.通过运行简单的C程序,掌握C源程序的特点。

二、实验内容:(由学生选择WinTC或者VC之一完成相关实验) 1.运行WinTC程序,进入C程序设计环境。 2.建立工程文件 3.编辑源文件 4.编译、连接

(1)单文件源程序的编译、连接

源程序先经过编译,生成目标文件(.obj文件),然后将目标文件进行连接,生成可执行文件(.exe)。 如果编译、连接中发生错误,在Message窗口中显示出错信息,修改错误后,可重新编译、连接。 (2)多文件源程序的编译、连接

可以用长的源程序分割成几个文件,分别编译然后生成可执行文件。此时使用Project菜单。步骤: 第一步:有三个文件f1.c、f2.c、f3.c组成一个完整的C程序,分别建立三个文件,将f1.c、f2.c、f3.c三个文件保存到同一个文件夹中(如d: cproject)。 f1.c:

#include “stdio.h” extern a,b;

extern max(int x,int y); main() {  int e

=1,f=2;

printf(“%d ”,max(a,b)); printf(“%d ”,max(e,f)); } f2.c: int a=3,b=4; f3.c:

int max(int x,int y ) {return x>yx:y;}

第二步:构造Project文件,在编辑状态下,编辑一个扩展名为.prj的文件,文件的内容为:

f1 f2 f3

第三步:构造EXE文件,按F9键即将三个文件编译、连接成一个EXE文件,文件名为wang.exe。 如果编译、连接出现错误,则必须进行修正,然后再编译。 5.运行程序

如果编译、连接完全正确,则可以用运行程序。

三、实验过程(依据上面示例,简要描述你使用WinTC或者其它编译器的过程)

c程序设计学习心得

程序设计报告

c语言程序设计实验报告

关于程序设计的心得

it学习心得

学习心得

启发式在《程序设计》课程教学中的实践

软件工程专业面向对象程序设计教学改革研究论文

计算机二级C语言程序设计考点解析:程序设计基本

程序设计与学生综合素质培养探讨论文

c程序设计学习心得(共9篇)

欢迎下载DOC格式的c程序设计学习心得,但愿能给您带来参考作用!
推荐度: 推荐 推荐 推荐 推荐 推荐
点击下载文档 文档为doc格式
点击下载本文文档