c语言实验报告本(精选13篇)
1.c语言实验报告本 篇一
学号:__________ 姓名:__________ 班级:__________ 日期:__________
指导教师:__________ 成绩:__________
实验一 上机操作初步和简单的C程序设计
一、实验目的1、熟悉C语言运行环境Turbo C++3.02、会简单的程序调试
3、熟悉C语言各种类型数据的输入输出函数的使用方法
4、掌握顺序结构程序设计
二、实验内容
1、上机运行本章3个例题,熟悉所用系统的上机方法与步骤。(习题1.7)
2、编写一个C程序,输入a、b、c 3个值,输出其中最大者。(习题1.6)
3、设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf输入数据,输出计算结果,输出时要求有文字说明,取小数点后2位数字。注意:在Trubo C++ 3.0中不能输入汉字,只能输入英文或拼音。(习题4.8)
4、运行如下程序,写出运行结果。第一┆范文网整理该文章,版权归原作者、原出处所有...#include
void main()
{
int a=1,b=2;
a=a+b;b=a-b;a=a-b;
printf(“%d,%dn”,a,b);
}
三、实验步骤与过程
四、程序调试记录
2.c语言实验报告本 篇二
本文从教学内容、教学方式、考核方式三个方面进行改革与探索。教学内容上强调算法,淡化语法;教学方式上采用案例驱动的教学方法,提出了“读、写、仿、用”的实践过程;考核内容上舍弃传统的以识记为主的形式,选择以考核分析问题、解决问题能力为主的形式。从而提高教学质量[4]。
1 教学内容的改革与探索
目前很多C语言程序设计相关的教材用了很多篇幅来描述详细的语法,相当于C语言的参考手册,同时,一些考试也更多的考察学生对这些语法的记忆,导致很多老师也把语法作为了课程教学的重点。事实上,我们没有必要把语法作为教学的重点,学生掌握了解决问题的方法和基本知识之后,需要用到哪些语法完全可以去查阅相关的手册。把语法作为教学的重点不仅增加了学生的记忆负担,而且会导致学生觉得无味、繁琐而厌学。
为此,我们在教学中,以培养学生的动手实践能力为目的,突出程序设计思维能力的培养[2],强调算法,淡化语法,课堂内容以案例为主,项目为辅。用覆盖课程重要知识点的案例为载体,进行教学活动,培养学生分析问题、解决问题的能力。把案例分为教学案例和仿写案例,教学案例和仿写案例成对出现,每一对案例覆盖相同的知识点,只是要解决的问题不同。用像“学生成绩管理系统”、“通讯录系统”等能够覆盖全书大部分知识点的辅助项目来提高学生的综合运用能力。
2 教学方式的改革与探索
C语言语法规则繁多,很多老师为了赶进度,课堂上不得不“满堂灌”,学生面对常量、变量、数据类型等枯燥的概念,很容易产生茫然、畏惧的情绪。这种以教师为主的填鸭式教学方式没能激发起学生的积极性、主动性,未能让学生参与到课堂中来思考,再加上三本院校的学生普遍自学能力比较弱,如果不能在课堂上激发起他们的兴趣,那么他们很难在课后去自己学习、练习。
传统的“以教师主体”的教学方式必须转变为“以学生为主体,教师为主导”的教学方式,充分发挥学生的积极性,为此,我们采用案例教学法来激发学生的兴趣,使学生觉得学有所用。
2.1 案例驱动的理论教学——例中学
在教学的过程中注重学生能力的培养,加强学生独立分析问题、解决问题能力的培养,淡化语法。教学中,首先分析给定的教学案例应该如何处理,根据选定的处理方案,用汉语描述出算法,然后再考虑如何把这个算法用C语言描述出来,进而引出要用到的C语言语法知识点,然后讲解这些要用到的知识点。
这样,一方面通过分析,引导学生完成案例的算法描述,培养学生的分析问题、解决问题的能力。另一方面,通过案例引出C语言程序设计的相关知识点,使学生在学习的过程中增强了目的性,增加了学习的兴趣,再加上“学完即用”,提高了学习的效率。
2.2案例驱动的实践过程——用中学
当前,很多教师在实践课程上都是让学生完成课本上的例子,然而,这些例子大部分都是为了验证语法,与实际应用脱节,学生即使完成了这些代码的输入也仅仅是加强了对语法的认识,与实际应用缺乏联系。这样,即使学生能够把例子中的代码运行出来,也很难提高学生利用程序设计语言来解决实际问题的能力,更别谈培养学生的综合运用能力了。为此,我们提出了“读、写、仿、用”的实践过程,逐步提高学生的工程实践能力。
1)“读”案例程序
在理论教学过程中,已经对教学案例进行了分析,并且讲述了相关的知识点,实践课程中首先把教学案例中的程序代码发给学生,让学生读这些代码,这一方面是对理论知识的复习过程,另一方面也是学生自己对知识消化吸收的过程。
2)“写”案例程序
当学生读完程序之后,要求学生能够做到不看案例程序的代码,自己独立完整地完成教学案例中的代码编写、编译、调试、运行。中间写不出来时,才可以看一下案例代码,但是不能抄写,直到能够自己独立完成。经过这样一个反复的过程,学生可以自己完成整个代码时,就基本上理解并能运用所学的知识了。
3)“仿”写新案例
为了进一步促使学生能够灵活运用所学知识来解决问题,把相对应的仿写案例给学生(仿写案例的程序代码不给学生),让学生仿照教学案例的代码,完成仿写案例的代码编写、编译、调试、运行。当完成这项工作之后,学生基本上就能够完全掌握所学的知识了。
4)“用”到项目中
就是把案例中学到的知识点用到项目中,比如案例中学到了数组相关的知识,那么就可以把数组运用到“通讯录”管理系统中来存储联系人;学到文件操作知识之后,就可以把“通讯录”中的联系人存储到文件中。通过这种灵活运用,不仅能够巩固知识,而且能够增强学生的工程实践能力。
3 考核方式的改革与探索
我们常说“考试是指挥棒”,因此,考核内容和考核方式的选择,会影响学生的学习重点。之前,该课程期末考核是出一份试卷,内容包括选择、填空、读程序写结果、根据要求写程序,我们认为这种方式更多地考察了学生的识记、背诵能力,很难考察学生的工程动手实践能力,学生在这种考核方式下,平时的学习过程会更多的偏重于记忆,这导致他们忽略了自己利用计算机编制程序来解决问题的能力。
为此,我们改革课程的考核方式,把考核贯穿于整个学习过程中,期末考试采用分组完成项目,分组讲述、答辩的方式。学期成绩的计算采用下列公式:最终成绩=仿写案例的平均成绩×50%+期末项目×50%。
4 结语
针对C语言课程教学中存在的问题,结合我校的实际情况,从教学目的、教学内容、教学方式和考核方式上着手,强调应用,淡化语法,利用“读、写、仿、用”的方法,促使学生在用中学,增强实践课程的效果,重点培养学生的分析问题、解决问题能力和工程实践能力。经过探索,该模式在实践应用中取得了良好的教学效果。
摘要:针对传统C语言程序设计课程教学过程中的弊端,结合教学中的实际情况,进行改革探索,采用案例教学,强调算法,淡化语法,提出了“读、写、仿、用”的实践教学过程,改革考核方式,突出学生分析问题、解决问题能力的培养。实践表明,这些改革取得了成效。
关键词:教学改革,C程序设计语言,工程应用能力,三本院校
参考文献
[1]张开便,董振华,等.基于CDIO的C语言程序设计研究与实践[J].福建电脑,2015(4):116-117.
[2]徐艳艳,陈志泊,等.基于“计算思维”的C语言课程教学改革[J].计算机教育,2015(7):87-89.
[3]钟美.培养应用型人才为目标的C语言教学改革[J].计算机教育,2013(16):55-58.
3.C语言实验课教学设计 篇三
关键词:C语言实验教学;教学改革;教学设计;教学流程
中图分类号:G642.0 文献标识码:A
一、引言
C程序编写能力是要靠大量的练习学会的,只有让学生多多动手,他们才会对程序设计语言感兴趣。因此在C语言课程教学中应该重视实验课。但是,目前C语言实验课的教学存在着以下弊端:第一,在教学理念上重视理论教学,轻视实验课的练习。第二,在实验课教学过程中教师往往放任学生自由上机,学生只能被动地编写教师提供的程序清单对编程知识缺少深入思考。第三,在实验课的教学过程中,学生之间缺少交流。而在实际的程序开发行业中所有开发人员是需要相互合作的。基于以上因素需要对C语言实验课的教学过程进行改进。
二、C语言实验课教学目标的确定
教学目标就是教学的一个标准,教学目标规定了教学要达到的程度,它是教师教学和学生学习的依据,教学目标的制定可以克服教学的盲目性,在教学过程中占有重要的地位。因此,C语言实验课教学首先要确定教学目标。
C语言实验课教学目标的制订要从认知领域、动作技能领域和情感领域这三个方面来确定。例如对于C语言课程中的“控制结构”这部分的实验内容其实验目标确定如下:在认知领域方面,学生要理解基本的解决问题的技巧,理解计数控制循环和标记控制循环;在动作技能领域方面,学生能够熟练掌握自顶向下逐步求精算法设计,能够熟练应用if语句,if/else语句和switch语句来实现选择结构,能够应用while语句,do/while语句和for语句实现程序循环结构,学生可以使用++、--、赋值和逻辑运算操作符,在循环语句中能够应用break语句和continue语句来控制程序的结构;在情感領域方面,要培养学生认真学习、严谨求实、实事求是和勇于探索的科学精神和态度。
三、确定C语言实验课的操作流程
为了上好C语言实验课,并且能够完成制订好的教学目标,需要根据C语言实验课的具体题目可以将实验课教学过程分为三大部分进行:课前部分、课中部分和课后部分。其具体的操作流程如下图所示:
C语言实验课操作流程图
在上图中,课前教学部分、课中教学部分和课后教学部分都要按照实验教学目标来制定。课前教学部分是在课堂讲授课程完毕之后并且在实验课进行之前进行的,在这部分中主要是要对所讲授课程的知识点进行巩固,并对实验课涉及的知识进行预习。教师在设计实验题目时要设计好学习环境,利用良好的环境调动学生学习的积极性。在实验课学生现场自主编程中,可以发现C语言的语法错误和逻辑错误,提高学生自己分析和解决问题的能力。在这个过程中,教师要给予学生必要的指导和帮助。在协助学习实验题目过程中,教师要确定协作小组让学生共同完成学习目标并将个人习得成果转化为大家习得成果,并且教师要对不同的学习任务进行选择,要设计好实验课程的协作环境,保证实验课程的顺利实施,最后要对实验教学效果进行评价,以此来刺激教学的进行。
四、结论
在C语言实验课的教学中,要充分尊重学生学习活动的主体性地位。所以在大学C语言程序设计这门课程的实验教学中采用了以学为主的教学设计方案,这样可以促进学生独立分析问题的能力,充分调动学生学习的兴趣和主动参与意识。
参考文献:
[1]吴文虎.计算机程序设计基础课程改革[J].中国大学教学,2004(02).
[2]乌美娜.教学设计[M].北京:高等教育出版社,1994.
[3]孙可平.现代教学设计纲要[M].西安:陕西人民教育出版社,1998.
4.C语言实验报告(一) 篇四
一、实验题目:顺序结构
二、实验目的:(略)
三、实验内容
1.程序验证(略)
2.程序设计
1)编写程序,已知圆半径radius=1.25,求圆周长和面积。
源代码:运行结果:
2)编写程序完成单个字母的大小写转换。
源代码:运行结果:
3)任意从键盘输入一个三位整数,要求正确分离出它的个位、十位和百位数,并分别在屏幕上显示。
5.C语言作业实验报告 篇五
printf(“Please input the right score!n”);else {
switch(score/10)
{
case 10:
case 9:
printf(“An”);
break;
case 8:
printf(“Bn”);
break;
case 7:
printf(“Cn”);
break;
case 6:
printf(“Dn”);
break;
default:
printf(“En”);
} } }(2)if语句实现 #include
printf(“Please input a right score!n”);else {
if(score/10>=9)
printf(“An”);
if(score/10==8)
printf(“Bn”);
if(score/10==7)
printf(“Cn”);
if(score/10==6)
printf(“Dn”);
if(score/10<=5)
printf(“En”);} } 3,#include
printf(“The number is out of compass!”);else {
a=number%10;
if(a==number)
{
printf(“The number is 1.n”);
printf(“%dn”,a);
printf(“%dn”,a);
}
else
{
b=number/10%10;
if(b==number/10)
{
printf(“Yhe number is 2.n”);
printf(“%d %dn”,b,a);
printf(“%d %dn”,a,b);
}
else
{
c=number/100%10;
if(c==number/100)
{
printf(“The number is 3.n”);
printf(“%d %d %dn”,c,b,a);
printf(“%d %d %dn”,a,b,c);
}
else
{
d=number/1000%10;
if(d==number/1000)
{
printf(“The number is 4.n”);
printf(“%d %d %d %dn”,d,c,b,a);
printf(“%d %d %d %dn”,a,b,c,d);
}
else
{
e=number/10000;
printf(“The number is 5.n”);
printf(“%d %d %d %d %dn”,e,d,c,b,a);
printf(“%d %d %d %d %dn”,a,b,c,d,e);
}
}
}
} } } 4,#include
x=a;
a=b;
b=x;} if(c
if(c
printf(“%d %d %dn”,a,c,b);
else
printf(“%d %d %dn”,a,b,c);} } 5, #include
m=(a+b+c)*(a+b-c)*(a+c-b)*(b+c-a);
s=sqrt(m)/4;
printf(“%fn”,s);
if(a==b&&b==c)
printf(“DengBianSanJiaoXing”);
else
{
if(a==b||b==c||c==a)
printf(“DengYaoSanJiaoXing”);
else
{
if(a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a)
printf(“ZhiJiaoSanJiaoXing”);
else
printf(“YiBanSanJiaoXing”);
}
} } else
printf(“Error!n”);} 6, #include
} printf(“Please input the salary:n”);scanf(“%f”,&salary);if(salary>850&&salary<=1500)salary=salary-0.01*salary;else { if(salary>850&&salary<=2000)
salary=salary-0.015*salary;else {
if(salary>2000)
6.c语言实验报告本 篇六
在这个星期里,我们专业的学生在专业老师的带领下进行了c语言程序实践学习。在这之前,我们已经对c语言这门课程学习了一个学期,以下是小编为大家整理分享的c语言实验报告分析总结。欢迎阅读。
c语言实验报告分析总结1
在科技高度发展的今天,计算机在人们之中的作用越来越突出。而c语言作为一种计算机的语言,我们学习它,有助于我们更好的了解计算机,与计算机进行交流,因此,c语言的学习对我们尤其重要。
在这个星期里,我们专业的学生在专业老师的带领下进行了c语言程序实践学习。在这之前,我们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。
由于时间的关系,我们的这次实践课程老师并没有给我们详细的介绍,只是给我们简单的介绍了几个比较重要的实际操作。包括了程序模块处理.简单界面程序.高级界面程序.程序的添加修改.用程序做一元线性回归处理以及用c语言程序来画粒度分布图等这几样比较重要的时间操作。
上机实验是学习程序设计语言必不可少的实践环节,特别是c语言灵活、简洁,更需要通过编程的实践来真正掌握它。对于程序设计语言的学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。
学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。因为学时所限,课程不能安排过多的统一上机实验,所以希望学生有效地利用课程上机实验的机会,尽快掌握用c语言开发程序的能力,为今后的继续学习打下一个良好的基础。为此,我们结合课堂讲授的内容和进度,安排了12次上机实验。课程上机实验的目的,不仅仅是验证教材和讲课的内容、检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面:
1.加深对课堂讲授内容的理解
课堂上要讲授许多关于c语言的语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。然而要使用c语言这个工具解决实际问题,又必须掌握它。通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c语言的语法规定。对于一些内容自己认为在课堂上听懂了,但上机实践中会发现原来理解的偏差,这是由于大部分学生是初次接触程序设计,缺乏程序设计的实践所致。
学习c语言不能停留在学习它的语法规则,而是利用学到的知识编写c语言程序,解决实际问题。即把c语言作为工具,描述解决实际问题的步骤,由计算机帮助我们解题。只有通过上机才能检验自己是否掌握c语言、自己编写的程序是否能够正确地解题。
通过上机实验来验证自己编制的程序是否正确,恐怕是大多数同学在完成老师作业时的心态。但是在程序设计领域里这是一定要克服的传统的、错误的想法。因为在这种思想支配下,可能你会想办法去”掩盖”程序中的错误,而不是尽可能多地发现程序中存在的问题。自己编好程序上机调试运行时,可能有很多你想不到的情况发生,通过解决这些问题,可以逐步提高自己对c语言的理解和程序开发能力。
2.熟悉程序开发环境、学习计算机系统的操作方法
一个c语言程序从编辑、编译、连接到运行,都要在一定的外部操作环境下才能进行。所谓”环境”就是所用的计算机系统硬件、软件条件,只有学会使用这些环境,才能进行程序开发工作。通过上机实验,熟练地掌握c语言开发环境,为以后真正编写计算机程序解决实际问题打下基础。同时,在今后遇到其它开发环境时就会触类旁通,很快掌握新系统的使用。
3.学习上机调试程序
完成程序的编写,决不意味着万事大吉。你认为万无一失的程序,实际上机运行时可能不断出现麻烦。如编译程序检测出一大堆错误。有时程序本身不存在语法错误,也能够顺利运行,但是运行结果显然是错误的。开发环境所提供的编译系统无法发现这种程序逻辑错误,只能靠自己的上机经验分析判断错误所在。程序的调试是一个技巧性很强的工作,对于初学者来说,尽快掌握程序调试方法是非常重要的。有时候一个消耗你几个小时时间的小小错误,调试高手一眼就看出错误所在。
通过这次为数不多的几天计算机实践学习,我们了解了一些关于c语言的知识,理解巩固了我们c语言的理论知识,着对我们将来到社会工作将会有莫大的帮助。同时它让我知道,只要你努力,任何东西都不会太难!
c语言实验报告分析总结2
一周的C语言实训,虽然时间略显仓促,但却让我学到了很多实际运用的技能!
一、心得与感想
首先,在实训中的第一步是编写功能较为单一的小程序,虽然是小程序,但所用的知识却都是我们本学期学习的重点知识。在做题的过程中让我们把这些知识复习了一遍,强化了知识!
其次,这次作中所碰到的题目,在实训中已经接触过,所我们都比较深知这些题目的要求和算法,因次在编写小程序时比较快,而且算法也是比较简化,运算准确。鉴次我明白很多编程题要经过多次编写修改与调试,才会得到最简略的算法。
再次,平时我们学C语言视乎都是为了考试或者做一些比较常规的题目,而这次实训却给我们的将所学知识运用于解决实际问题的机会,让人更有激情,这就是编写软件的在雏形,也让我们感受到了编写软件程序的乐趣。但是不仅仅是如此,更为重要的是在运用所学知识的过程中,记住这些知识,并能够广泛的运用!
虽然我这次是编写一个菜单的程序,但是如果我么留心的话,我们身边有许多电子设备都是内置有程序的,我们也可以在此次专题实训过后,自行确定其他的专题进行编写程序,这样可以让我们的知识更加深化丰富!
这次实训似乎是对我巨大的考验,程序在不慌不忙的进行着,按照我自身的进度,提前完成是没有问题的,但是很多客观条件让我不得不在最后的时间里才上交的作业。每当我把程序写完以后,却由于每一台电脑的识别格式不一样而导致我所写的文件一次次的被损坏,尽管这样,我仍然没有放弃,最后还赶在截止时间到来之前上交了我的作业!
这一次编写大作业的程序又让我感受到学程序可以锻炼缜密的思维了。因为平时练习的都是小程序,所以句段比较少,一些错误都很容易被检查出来,但是这次实训却是上百段的语句,难以检查,似乎也没有经验去怎么检查,那一刹那感觉到很急,但又不知如何是好,可是又不轻易的向老师询问,因为好像蛮简单,相信自己能够检查出来,所以我一般都是独立思考的完成的,只有少部分是在老师和与同学讨论下完成的。
在编写程序中,真的是细节决定成败,因为不管程序的语句是多是少,但是只要有一条语句或语法不正确,就不能使程序得到所需要的结果。没能够使自己编写出来的程序等到想要的结果,意味着这是一个不理想的程序,对于本次编写来说则是失败的。
7.C语言教学实验中的CUDA技术 篇七
CUDA是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。开发人员可以使用C语言来为CUDA架构编写程序,所编写出的程序可以在支持CUDA的处理器上以超高性能运行[1]。
目前,全球已经有超过250所大学开设了CUDA编程和GPU计算的课程,支持CUDA的GPU销量已逾1亿,基于CUDA开发的应用程序从视频与音频处理和物理效果模拟到石油天然气勘探、产品设计、医学成像以及科学研究,涵盖了各个领域[2,3]。为了促进CUDA技术的发展,NVIDIA公司于2009年底授予中国科学院过程工程研究所和清华大学CUDA卓越中心的称号,以表彰他们在中国推广CUDA和GPU计算以及利用GPU在高性能计算领域做出的突出贡献,在此之前,CUDA卓越中心已经在哈佛大学、剑桥大学等5所学府设立。
鉴于GPU并行计算的应用前景,在2009年开始在C语言教学中引入CUDA平台技术开发,主要包括CUDA平台的C开发环境,并行程序开发等,让学生通过程序设计对比GPU程序运行与传统CPU运行的效率对比,对并行加速有了直观的印象,激发了学生的学习兴趣,实验教学取得了良好的效果。
2 基于GPU的CUDA软硬件环境
2.1 硬件
GPU称之为图像处理器,在图像处理方面发挥了重要的作用,其本质是一个流处理器,内部有很多处理单元,处理单元并行工作,采用超流水线的方式进行工作,这种体系架构决定了它在并行计算上的优势。另外GPU实际采用的是将一根总线与多个处理单元进行连接,使得对单指令流多数据流有很好的处理能力。根据它采用单一控制总线的结构,必须协调各个处理核心的工作,尽量让各个处理核心的工作协调,避免交叉指令在程序中出现,同时,由于CUDA架构将自己的任务都集中在数据的计算方面,要协调数据的输入与输出,尽量减小它和内存之间数据的交换,当然最好是能尽可能地使用纹理存储器,这会使存取的速度比起一般的存取速度要快很多。只有综合利用GPU的这些特点才能使并行计算的速度有一个很好的提升。
CUDA支持的GPU(CUDA-enabled GPU)包括NVIDIA公司的Geforce、Quadro和Tesla 3个产品线,如表1所示。其中,Geforce和Quadro系列显示芯片可以直接插入普通PCI-Express×16插槽中,最大理论带宽为8 GB/s,为了便于将CPU与GPU进行性能比较,选用丽台公司PX8800GT显卡,显卡采用Geforce8800GT显示芯片。该芯片采用G92显示核心,有112个流处理器,内核时钟为600 MHz,内存带宽为57.6 GB/s,支持并行数据高速缓存(parallel data cache)。本文中的实验采用的是GeForce 9600 GT。
2.2 软件
在CUDA的软件层面,核心是NVIDIA编译器nvcc.exe。CUDA程序是GPU和CPU的混合编码,其程序文件包括.cu和.cpp,且程序中混合着C语言函数和CUDA语言函数。程序首先通过C编译器将GPU与CPU的代码分离,GPU代码被编译成能交给GPU计算的代码,而CPU代码编译成标准CPU机器码。因此,一个完整的CUDA软件开发环境需要有2个编译器:面向CPU的C编译器和面向GPU的编译器nvcc.exe。CUDA可以支持多种运行在Windows XP和Linux操作系统下的编译系统。考虑到通用性,在测试中采用Microsoft Visual Studio 2008,其C编译器为cl.exe[4]。CUDA软件架构如图1所示。
3 实例
对定积分计算进行编程,基本思想为:分配处理核心,每个核心完成一个梯形的面积计算工作,待最后的所有任务都计算完成之后,将所有的和进行相加,得到的将是所求的积分面积。采用Block、Thread数量大小为个,分别设立256个共享存储器单元和全局存储单元,以存放每个Thread的计算之和及每个Block之和,最终将各Block之和返回host端进行最后的加总。
以为对象测试,采用的是分段积分方式进行测试,代码如下:
测试结果如图2所示。
测试结果证实GPU在这个策略下,相对于CPU,其并行处理积分问题时快上20倍左右,实验用的处理器共有4个核心单元,其中采用的是多核心,超流水线的处理方式进行处理。
在这个架构下,加速主要是因为线程的扩充、处理核心的增加,使得在计算和时,速度得到较大的提高。如果让GPU先计算前面m*thread个区间的积分和,得到(m-1)×thread的计算和与得到的m×1个和相并,继续计算,一直到计算完毕,这样速度会有更大的提高。
4 结语
GPU并行计算是结合硬件与软件共同完成的,这种并行处理单元硬件设计采用的是超流水线的设计方式,是未来处理芯片的发展方向,具有很广的应用前景。就目前看来,这种芯片适合在计算机群中进行应用,适合大型的网络服务器的需要。在网页的构造以及搜索引擎方面也有非常大的应用前景,同时,在数值计算方面也影响不小,如果采用这项技术进行并行搜索或计算,将大大节省计算时间,提高效率。
摘要:C语言在本科信息技术教学中具有重要的地位,随着GPU性能的增强,以C语言为核心的CUDA具有广阔的应用前景。在C语言实验中引入CUDA开发平台的训练,具有重要的意义。
关键词:C程序,图形处理器,CUDA架构
参考文献
[1]http://www.nvidia.cn/object/personal_supercomputing_cn.html.
[2]董廷星,王龙,迟学斌.二维扩散方程的GPU加速[J].计算机工程与科学,2009,31(11):121-123
[3]吴强,杨灿群,葛振,陈娟.使用GPU加速分子动力学模拟中的非绑定力计算[J].计算机工程与科学,2009,31(A1):46-49.
8.c语言实验报告本 篇八
[摘要]文章探讨了在C语言程序设计课程教学中引入机器人实验的必要性、意义及创新点,并讨论了在C语言课程教学中开展机器人实验应注意的几个问题。
[关键词]C语言课程 教育机器人 实验 教学改革
[作者简介]尹华(1975- ),女,赣南师范学院数学与计算机科学学院,讲师,主要从事计算机教学与应用研究;肖随贵(1956- ),男,赣南师范学院数学与计算机科学学院,教授,主要从事计算机教学与应用研究。(江西赣州341000)
[课题项目]本文系赣南师范学院质量工程项目课题“基于可编程控制机器人比赛的C语言系列课程创新实验项目”的研究成果。
[中图分类号]G424.21 [文献标识码]A [文章编号]1004-3985(2009)33-0182-02
一、“C语言程序设计”课程实验现状
目前,我国大部分高校的理工科专业都开设了“C语言程序设计”课程,而计算机科学与技术、网络工程等专业还开设了“C语言课程设计”“面向对象程序设计(C++)”等课程。通过系统地学习“C语言程序设计”课程,学生掌握了如何使用计算机语言进行程序设计,以及程序设计的基本思想、基本方法和技巧,达到通过学习相关课程使学生能够利用C语言解决实际问题的教学目标,并为后继课程打下坚实的基础。
“C语言程序设计”是一门实践性很强的课程,实验课时比重很大。例如,赣南师范学院的2008人才培养方案中C语言的实验课时增至32学时,占总学时的1/2。在进行实验教学中,大部分是验证性实验,最后是综合性实验。由于C语言的实验环境是在字符方式下进行的,实验过程比较枯燥,实验结果的表示单调,学生学习兴趣不高,学习效果不佳,导致学生的综合应用能力不高,甚至影响到后继课程的学习。因此,应该采取哪些措施,通过实验提高学生的学习兴趣,提高学生的动手能力和解决实际问题的能力,是实验教学改革的一项重要任务。为此,我们设计了一套能调动学生学习积极性、提高学生综合应用能力的实验项目。
二、在C语言教学实验中引入教育机器人
近年来,可编程控制机器人和可编程控制机器人学发展非常迅速。教育机器人是将机器人应用于教育领域,是由生产厂商专门开发的以激发学生学习兴趣、培养学生综合能力为目标的机器人成品、套装或散件。它除了机器人机体本身之外,还有相应的控制软件和教学课本等。
从教育机器人的发展情况来看,硬件技术方面已经非常成熟,设备的可靠性、灵活性、耐用性等性能都已得到社会的广泛认可。教育机器人的硬件配件多样,技术支持能力强,价格也相对便宜。控制操纵机器人的关键问题之一是软件设计,主要是通过C语言或VC++等程序设计语言进行程序设计,通过编程对机器人进行控制。这就给计算机专业的学生提供了广阔的开发平台,通过编程对机器人进行操纵,使其完成各种任务,培养了学生的综合应用能力。
用于实验创新的教育机器人种类繁多,依据可编程控制机器人可以设计出各种机器人,创造空间巨大,例如使用AS-ROBEI机器人工程创新套件就能设计一百万种机器人,如投球机器人、救火机器人、追光机器人等。
教育机器人已引起了国内很多学校的关注和重视,在教学活动中纷纷引入教育机器人并取得了良好的效果。
三、在C语言教学实验中引入教育机器人的意义及创新之处
“机器人是一种能够通过程序控制,自主完成某类任务的机器系统”,在“C语言程序设计”教学中通过“程序控制”与机器人动作紧密联系起来,应用各种程序使机器人完成各种动作(如搬运、灭火等),使教学与实验“动起来”“活起来”,提高了学生的学习兴趣、综合应用能力和创新能力,从而提高了教学质量。
在C语言教学中引入机器人实验有如下几点创新之处:(1)教育理念创新。通过引入可编程控制机器人,改变了传统的实验教学理念。一是实验中,教师引导学生自己设计与控制机器人,学生体验到学习的快乐;二是精心设计机器人实验,对学生实行个性化教育;三是通过教育机器人的实验,发展学生的多种能力,如分析能力、创造能力和实践能力等。(2)实验手段创新。创建可编程控制机器人实验室,构造开放的实验平台。(3)实验内容创新。在可编程控制机器人的开发平台上,充分发挥学生的想象力,设计制造各种各样的机器人,提高学生的创新能力。
在C语言教学活动中,通过引入机器人编程,并将其贯彻到整个教学与实验过程中,能够获得非常好的效果,具体表现为:(1)可以促进对C语言系列课程(如“C语言程序设计”“C课程设计”“C++”等)的改革创新,设计与开发创新性实验项目;(2)趣味性机器人实验,寓教于乐,激发学生学习热情;(3)构建创新实验跨越多个平台,帮助学生学习各种相关知识,锻炼学生的动手能力;(4)利用第二课堂培养学生实践能力和创新精神,组织学生参加各种机器人赛事,使学生的各种能力得到提高。
四、C语言课程开展机器人实验应注意的几个问题
在C语言教学中引进机器人实验是对传统教学与实验的深化与改革。在具体实施过程中,需要注意以下几方面的问题:
1.教育机器人的选型。在教学实验活动中,应根据专业特点、培养目标、实验经费选择合适的机器人机型,以保证实验的顺利进行。目前,国内教育机器人的生产厂商及品牌有很多,可供选择的空间较大。在选择机器人时应注意的是:首先,硬件要结构紧凑,简洁实用,软件使用C语言编程,提供字符界面或图形化界面编程,纠错能力强,功能强大;其次,结构要牢固,抗压抗摔,有较好的碰撞能力,功能较大;再次,所选机器人能满足教学和竞赛的需要;第四,有良好的售后服务体系,配套教学资源丰富。
2.实验室的设计。传统的计算机实验室环境较为较严肃、生硬和呆板。实验室的设计应该从教学和比赛的多个角度进行综合考虑,设计应遵循以下原则:(1)以人为本,营造一个有创新氛围的全新学习空间;(2)课桌四周有充分的活动空间和比赛空间;(3)力求体现学校特色,提升学校形象。
在机房空间较大的情况下可将机房与场地连在一起,便于管理;当机房面积较小时可将机房和场地分开,但距离不宜太远。场地建设依据活动的需要,因地制宜。一般来说,对于非比赛需要的场地,可以采用简易材料搭建,可让学生参与搭建过程。搭建过程应考虑搭建的场地是否适合机器人行进的路线,以及编程设计能否满足要求。学生参与搭建的过程中,分析、设计能力以及解决实际问题的能力都得到了提升。若是竞赛场地,则需要按竞赛规则和标准进行建设。
实验室建成后,应满足学生的系统化训练。学生可以利用该平台,动手组装和调试机器人,搭建检测电路,编写控制软件,获得全方位的、系统化的基础工程训练。针对计算机专业的高年级学生能进行创新训练。学生可以利用该平台,进行一些较深入的学习和研究,可以在该平台进行如人工智能,图像处理,语音识别,机器人自主导航,面向对象编程,软件工程,遗传算法等方面的研究及验证。
3.实验教学计划与实验项目的设计与制定。在设计制定相关实验项目时,应充分考虑人才培养目标、学生的特点以及学生的要求等因素,实验项目应紧密结合“C语言程序设计”等课程的知识点(如顺序、分支、循环、数据与函数等),将教学要求与机器人实验有机的结合在一起,使学生能够通过实验熟练地掌握相关知识和技能,并能激发学生的学习兴趣。
实验教学计划与实验项目的制定拟分四个阶段逐步进行。
第一阶段:以典型的智能机器人为对象,掌握基本程序的编制,电机的控制方法,以及最简系统的组装、编程、调试的方法,能够实现基本系统的各种控制,实现机器人的自主漫游等一些经典控制项目,从而使学生对机构设计、软件编制以及优化有一定的认识。
第二阶段:在第一阶段的基础上增加标准传感器,学生可以通过对典型传感器的学习,熟练掌握完整智能控制系统的编程与应用方法,为其他各种传感器与功能模块的应用打下基础。
第三阶段:在前两个阶段的基础上增加各种扩展传感器、创新模块套件及执行机构,学生熟练应用不同传感器,独立设计方案以及试验环境来实现不同功能。通过这个环节,一方面学生可以进一步了解不同传感器及执行机构的工作原理与应用方法,另一方面通过设计实验来培养学生解决实际问题的能力。
第四阶段:通过对智能小机器人的学习发展到可以使用其他各种高级机器人,以点带面,举一反三地推广到其他各种高级机器人控制系统的应用,并且逐渐增加难度,体现由浅入深、层层深入的原则。
4.教师角色转变及培训。教师必须熟练掌握机器人实验的要领,指导学生进行实验。教师应在教育观念上进行转变,教师不是教学的控制者,不是知识的灌输者,而应成为学生学习的引导者、帮助者,充分发挥学生学习的积极性、主动性,培养学生的创新思维。教师应在指导学生实验的过程中,引导学生领会与掌握机器人实验中所涉及的机械、电子、计算机等多种学科的知识,引导学生主动对知识进行学习与探索,不断提高自己的各种能力。以情驱“动”、任务驱“动”、协作互“动”都是为发展学生的教学目标服务。
5.虚拟机器人与实体机器人并用。虚拟机器人其实是厂商提供的一套仿真系统软件,用以模拟机器人运行。它是一个虚拟机器人的程序编辑平台和运行平台的集成环境。在实验经费和实验机器不足的情况下,使用虚拟机器人进行前期的教学和演示,能收到较好的教学效果,并且有助于学生学习编程语言、感官系统、仿真技术等知识。
在机器人仿真系统中检验程序的效果直观,容易分析程序设计中出现的问题。先通过仿真软件发现问题,问题解决后再到机器人上实践,这种做法有时候比直接利用机器人实践的效果要好。
目前,很多机器人仿真系统都支持C语言编程,如VJC仿真软件、NSTRSS 3D仿真系统、AI-CODE仿真系统等。下面以AI-CODE仿真系统为例,作一简要介绍。系统总体架构如图所示。
这套系统主要用于算法与程序设计,它是一个通用平台,支持多种语言(如C,C++,Java等),可以满足教学多样性的需要。它分为初级、中级和高级三个阶段,既可以通过图形化编方式(流程图式的编程方式)进行程序设计,也可以利用代码编辑器(CodeCanvas)转换到C、C++、java 等常用语言下的代码编程。所有设计的代码都可以在AIRobot 环境下以虚拟机器人的形式进行竞技、演示等各种交互,仿真能力很强。在仿真系统调试通过以后,再移植于实体机器人中运行,让机器人在真实环境中工作,以检验实际效果。
[参考文献]
[1](美)Robin R.Murphy.人工智能机器人学导论[M]. 杜军平,等,译.北京:电子工业出版社,2004.
[2]杨丽,李伟.机器人创新设计开放实验教学模式的构建[J].中国科教创新导刊,2009(5).
[3]彭绍东.论机器人教育(上)[J].电化教育研究,2002(6).
9.c语言实验报告本 篇九
每章作业题目内容
第1章(15页)
第1.5题、第1.6题、第1.7题
第2章(36页)
用传统流程图、N-S图、伪码来描述4.(1)、(2)和(3)
第3章(82页)
第3.3题、第3.4题、第3.6题、第3.7题
第4章(111页)
第4.3题、第4.6题、第4.8题、第4.9题、第4.10题
第5章(140页)
第5.3题、第5.5题、第5.6题、第5.8题、第5.10题、第5.12题、第5.16题
第6章(168页)
第6.1题、第6.3题、第6.4题、第6.6题、第6.8题、第6.13题
第7章(218页)
第7.1题、第7.3题、第7.6题、第7.10题、第7.14题、第7.18题
第8章(291页)
第8.3题、第8.4题、第8.5题、第8.6题、第8.7题、第8.15题、第8.16题、第8.17题
第9章(330页)(不做)
第9.1题、第9.2题、第9.3题
第十章 指针(278页)(不做)
第10.3题、第10.4题、第10.5题、第10.7题、第10.15题、第10.16题、第10.17题
备注:作业讲评穿插在讲课中进行。不再最后讲评,请同学保留好自己的每一次作业。对于每次作业,除了写在作业纸上外,还需要进行上机编程调试得出结果(无法上机实现的题目如题目3.3等除外),并与自己做的相对比,检查自己的错误。对作业成绩和批改有异议的同学,请及时找老师反映,根据实际情况进行修改。4 对于作业迟交者,一律以降一档记成绩。如作业应该给优,但因迟交,成绩给良。
5.作业采用抽查制度,每章讲完后指定某一班级交作业检查。
作业等级划分
优:书写干净,整洁。完成所布置的所有题目。所编写程序正确,书写格式正确,程序对象命名正确,有恰当合理的注释。对于作业题目,使用多种算法完成且思路正确。
良:书写干净,整洁。
2完成所布置的题目,对于不会写的作业题目,允许空着,但不赞成抄袭。所编写程序思路正确,书写格式上有欠缺,程序对象命名正确,有注释。
4对于作业题目,能够尝试使用多种算法,且思路可行。
中:
1书写欠干净、整洁。疑似抄袭他人作业者
3对于作业题目,仅仅是完成,缺乏深度思考。
未交:以0分记。
《C程序设计》实验报告内容和要求
需提交实验报告的章节
实验五
实验六
实验七
(具体实验内容见附件《C语言程序设计》实验指导书.doc)
备注:如果某章实验课次数超过一次,也只写一个实验报告。如受篇幅所限,实验报告里精选一些自己做过和验证过的程序实例,写明实验结果分析,写出自己对该部分实验内容的理解和在编程及调试过程的经验教训和体会。对于报告迟交者,一律以降一档记成绩。如实验报告应该给优,但因迟交,成绩给良。4 实验报告提交的时间均在该次实验结束后一周,即本周做完第三章实验,下周实验课时提交上周的实验报告。
5请学委辛苦,按所在班级学生的学号排好实验报告的顺序,提交给任课教师或助课教师。6 每次上机课结束前15分钟检查学生实验情况,请做好准备。
实验报告等级划分
优:严格按实验报告要求,写明姓名,学号,实验日期,实验题目,实验要求,实验内容。2 对于实验,写清程序代码(篇幅不够可以另附作业纸),给出实验测试或验证用例(数据),对所编写的程序经上机测试,得出结果正确,对于结果不正确或部分测试结果正确的现象给予深刻的讨论和分析,且有理有据。书面干净、整洁。对于本次试验,有深刻的经验教训和体会,并在实验报告中列出。
良:未能严格按实验报告要求,写明姓名,学号,实验日期,实验题目,实验内容,实验要求。2对于实验,写清程序代码(篇幅不够可以另附作业纸),给出实验测试或验证用例(数据),对所编写的程序经上机测试,得出结果正确,对于结果不正确或部分测试结果正确的现象给予讨论和分析。书面干净、整洁对于本次试验,有深刻的经验教训和体会,并在实验报告中列出。
中:书写不够干净、整洁疑似抄袭他人报告仅仅写出程序代码,未对其进行调试,未列出实验用的测试或验证数据,得出正确结论,或对于所得出的结论未能做出深刻的分析,举一反三。
未交:以0分记。
《C程序设计》大实验作业(选作)
根据自己的能力和水平,选择实际应用实验题目(如下所示),完成设计与实现。期末需要提交总的书面报告,要求详细说明自己所开发的应用系统的基本功能、操作界面、操作指南、实现技术、源代码及参考资料。参见计算机科学与技术专业课程设计(如下所示)
实验目的:
1.综合掌握C语言的知识、程序设计方法。
2.学会开发设计的基本方法。
实验内容:
3.文件型数据库
4.词法分析器
5.模拟 dos 命令 dir
6.桌面计算器
7.汉字的显示
8.通用排序算法
9.文本编辑器
10.校友通讯录
实验方法:
1.查阅资料,分析课题所具功能,做初步设计
2.编写相应代码,调试,运行
3.生成可执行程序
10.c语言实验报告本 篇十
实验七 指针 了解指针的概念,学会定义和使用指针变量。2 掌握指针、变量和数组的关系及使用方法。3 学会使用指向函数的指针变量。
二 实验内容 编写函数fun(float *sn,int n),其功能是:根据以下公式计算s,计算结果通过形参sn传回;n通过实参传入,n的值大于等于0。上机运行并记录输入输出(主函数已给出)。
s11111 3572n1fun(float *sn,int n){ 定义变量:和s,通项w,符号f,循环控制变量i; /* 其中s、f要初始化 */ 循环求累加和s { 改变符号;/* 由负变正或由正变负 */ 求通项w;累加:s+=w;} 形参指针变量sn赋值;/* 通过形参sn传回累加和s */ } main(){ float s;int n;printf(“n=”);scanf(“%d”,&n);fun(&s,n);printf(“s=%fn”,s);}
完整程序如下:
#include
输出结果如下图: 想使指针变量pt1指向a和b中的大者,pt2指向小者,以下程序能否实现此目的? swap(int *p1,int *p2){ int *p;p=p1;p1=p2;p2=p } main(){ int a,b;int *pt1,*pt2;scanf(“%d,%d”,&a,&b);pt1=&a;pt2=&b;if(a
上机调试此程序。如果不能实现题目要求,指出原因并修改之。
子函数swap改成下面程序方可实现目的,主函数不变: swap(int *p1,int *p2){ int p;p=*p1;*p1=*p2;*p2=p;} 下面的程序用来实现将一个3×3的矩阵转置。#include 程序修改如下: #include 应改为: printf(“%cn”,*pt++); 《C语言程序设计》是计算机专业中一门重要的基础课程。该课程不仅要求学生掌握一门高级程序设计语言, 更重更的是学习程序设计的思想, 培养学生良好的程序设计风格和思维方式[2], 它又是一门实用性很强的语言, 切实加强实践教学环节, 重视对学生自主学习、研究能力和创新能力的培养, 对于提高C语言程序设计课程的教学质量具有重要的意义。基于此实验教学是该课程不可缺少的重要组成部分。探索对实验教学的改革, 对提高该课程的教学质量有着重要的作用。但笔者在多年的教学中却发现一些学生对实验兴趣不大。上机时无所事事或玩游戏, 不但浪费了自己的时间, 还影响其他同学。因此现有的教学模式改革事在必行。 2、存在的问题 2.1 实验课程与理论课程时间配置不合理[1]。 在C语言的教学中, 实验时间约占三分之一左右。首先, 较少的实验时间, 让学生无法熟练掌握当前练习内容, 影响后面实验的进行。其次, 实验课时少导致了理论教学与实践教学内容安排的不同步。比如理论教学在讲数组, 却在做循环结构的实验。知识的不同步, 对于学生的学习, 势必会造成一定的影响, 不利于学生及时掌握所学的知识, 甚至会造成知识混淆的现象。 2.2 实验教材与教学资料有待完善[4]。 课程采用的实验教材与习题集合二为一的, 每一个实验题目都能在本书中找到答案, 学生只要把源程序输入计算机, 进行简单的调试就可以得到实验结果, 用不着去查找资料、思考和创新, 编译出错时不是根据错误提示查找原因, 而是与书上的程序进行比对, 改正录入错误。这样不利于培养学生发现问题、分析问题、解决问题的研究能力和创新能力。 2.3 实验教学条件落后, 学生的问题不能及时得到解决[1]。 由于扩招。为了充分利用有限的教学资源, 理论课实验课都是采用合班教学这种形式。一个实验室只有一个教师, 程序调试出现错误的学生同时有多个, 教师不可能及时解答每个学生提出的问题, 就会导致部分学生不能继续往下调试而出现厌学、害怕的情绪, 进而不调试程序而去玩游戏或做一些与程序调试无关的事情。 2.4 考试形式单一, 实践考核缺乏。 传统的语言程序设计的考试考核要求简单, 考试形式单一, 以期末笔试为主;平时成绩主要侧重于考勤、作业、实验报告。在课程成绩中比例远小于期末理论考。不重视上机实践能力的现场考核, 只偏重于理论考试, 这也导致了学生本身对于上机实践的不重视。 3、试验教学改革 C语言程序设计实验教学方法的改革措施实验性教学是C语言程序设计教学的重要环节, 是学好C语言程序设计关键。目的是通过上机实验, 让学生多动手、多动脑, 使学生在实验中提高分析问题、思考问题和解决问题的能力, 进而达到掌握理论知识, 提高操作和编程的能力。具体措施总结如下: 3.1 制定实验计划, 编写实验指导材料 根据C语言程序设计教学大纲和实验大纲的要求, 制定详细的、规范的实验计划, 编写实验指导材料, 提出实验要求, 以及要达到的目的。在制定实验项目时, 明确规定哪些实验是学生必须做的, 哪些实验是学生可以选做的, 甚至可以留有余地, 让学生在某些指定的框架下自己制定实验。同时, 在实验的编排上, 注意验证性、设计性和综合性实验的比例, 一般是在保证验证原理, 加深对理论知识的理解和进行基本技能、方法、能力等训练的基础上, 对验证性实验进行精选、合并, 减少验证性实验项目, 增加设计性和综合性实验项目。 3.2 精心选择试验项目, 激发学生的学习兴趣[3] 托尔斯泰曾经说过:"成功的教学, 所需的不是强制, 而是激发学生的学习兴趣"。同学们有了学习的兴趣, 才有学习的动力.而C语言程序设计是一门理论性较强的课程, 知识点较多、涉及面较广, 对于刚开始学习的学生来说, 常会感到内容枯燥难学, 产生畏难情绪, 导致理论知识掌握不好, 而影响了上机实验。因此, 为了激发学生的学习兴趣, 寓学于"乐", 在C语言程序设计实验教学过程中选择实验例子时, 不妨多选择一些具有趣味性的例子, 如:"水仙花数"、"百钱买百鸡", "三角形的面积"、"爱因斯坦阶梯"等有趣或经典的问题, 这些充满乐趣的问题, 有利于学生轻松愉快地学习, 积极主动地思考, 而且学过以后也不易忘记。 3.3 充分利用网络资源, 提高教学效率 在实验教学中充分利用网络资源, 这也是与以往教学相区别的重要地方。首先, 机房实验室里安装了网络教室软件, 配置了教师机, 上课时老师布置本次试验内容, 让同学自己练习10分钟, 然后所有的学生通过网络将抽出的作业拷贝到自己的计算机上, 随机抽出一个学生的作业作为示例, 由教师在自己的计算机上边调试边讲解, 学生边看投影屏幕及教师的讲解边操作计算机;每次实验课结束, 通过网络教室把实验中出现比较普遍的问题集中讲解, 因为每一个学生都已亲自动手调试过程序, 那么教师对该问题给出的提示讲解就会使学生能关注且记忆深刻。这样让学生及时了解自己学习中的问题以便避免或是改正。其次, 实验室提供了专为学生使用的FTP服务器, 每个班级具有合理的空间上课, 每次学生登录到自己班级里查看该次实验要求, 按时完成实验, 并把实验结果以文件的形式上传到自己班级文件夹下, 以供课后教师检查。 3.4 设计综合性的实验, 提高学生编程能力 "纸上得来终觉浅, 绝知此事要躬行"。只有亲自动手、亲自实践, 才能真正体会到语言编程的乐趣。这里的实验, 并不仅仅是每节课结束后的上机练习, 而是要通过课程设计, 来进一步加深对语言编程的理解, 这将有利于培养学生的创造思维、独立分析问题和解决问题的能力以及培养学生实际编程的能力。为此, 每学期末, 安排这门课程的课程设计, 以学生最为熟悉的"学生成绩管理系统"为例, 要求建立班级课程的成绩输入输出函数;使用结构体数组来存储和处理学生的信息;利用单链表动态管理学生的成绩;利用文件操作完成学生成绩管理。这样通过课程设计, 把我们C语言中的函数, 数组、结构体、指针, 文件一个个的知识电形成一个有机的整体。让学生并通过上机进行综合调试, 达到提高编程能力的目的。 3.5 改进试验考核方法 一是提高课程成绩中实验成绩所占比例, 让其成为课程成绩评定的重要组成部分.二是改变实验成绩的评定方式。为了全面反映学生各种能力, 我们要制定合理的实验成绩综合评估办法, 既要考虑学生实验出勤率和实验操作能力, 以及实验完成情况和结果的正确性, 还要考核学生综合知识运用能力、实际编程能力和实际操作能力。因此试验成绩的制定采用各实验项目的考核成绩加权平均, 其中实验预习和考勤占10%, 实验报告占30%, 实验现场考试占40%, 期末课程设计占20%。使用这样的考核方法后, 既调动了学生学习的积极性、提高了他们对实验的重视程度, 又保证了成绩评定的客观和公正性。 4. 结束语 以上所述, 只是笔者多年在《C语言程序设计》实验教学方法改革过程中的一点体会, 实际上在《C语言程序设计》实验教学方法改革与创新过程中要注意的问题还有很多, 但只要勇于探索, 善于总结, 就一定可以不断完善实验教学模式, 使学生通过本门实验课程的学习很好地培养编程能力和程序设计思维能力, 真正实现在实验教学中培养学生分析问题与解决问题的能力、独立自主的能力、合作与交流的能力、改革与创新的能力. 摘要:本文分析了C语言程序设计实验教学存在的问题, 探讨C语言实验教学方式方法的改进, 并从实验教学内容、教学方法、教材建设和实验考核等方面提出了相应的改革措施。 关键词:C程序设计,实验教学,改革 参考文献 [1]曹红.C程序设计试验教学改革探讨[J].科技广场, 2007, (04) :152-153 [2]邓维斌, 周玉敏.提高C语言实验教学效果的探索[J].实验室研究与探索, 2006, 25 (3) :359-361. [3]陈世基.C语言程序设计实验教学方法的改革与创新[J].福建电脑, 2007, (06) :207. 很多初学者弄不清指针和数组到底有什么样的关系,为避免混淆不清,下面总结一下指针和数组的特性。 指针是保存数据的地址,任何存入指针变量的数据都会被当作地址来处理,指针变量本身的地址由编译器另外存储,存储在哪里,我们并不知道,间接访问数据,首先取得指针变量的内容,把它作为地址,然后从这个地址读或写入数据。 指针可以用间接访问操作符(_)访问,也可以用以下标的形式访问,指针一般用于动态数据结构。 数组是用来保存数据的,数组名代表的是数组首元素的地址而不是数组的首地址,所以数组p与&p是有区别的,虽然内容相同,但意义却不同,&p才是整个数组的首地址,数组名是整个数组的名字,数组内每个元素并没有名字,不能把数组当一个整体来进行读写操作。 当然数组在初始化时也有例外,如int p[]=“12345”是合法的。 数组可以以指针的形式访问如_(p+i);也可以以下标的形式访问p[i],但其本质都是p所代表的数组首元素的地址加上i_sizeof(类型)个字节作为数据的真正地址来进行访问的。 数组通常用于存储固定数目且数据类型相同的元素。 刚开始的时候我 有点分不清指针数组和数组指针,现在也总结一下,指针数组,首先它是一个数组,数组的每个元素都是指针,可以理解为“存储指针的数组”的简称,数组指针,首先它是一个指针,它指向一个数组,在32位系统下永远只占4个字节,至于它指向的数组有多少个字节,并不知道,可以理解为“指向数组的指针”。 举个例子,int _p1[10]与int (_p2) [10], 要理解这个问题,首先要清楚操作符的优先级,“[]” 的优先级比“_”的优先级高,所以首先p1与“[10]”结合构成一个数组p1[10],int _为修饰数组的内容,所以数组元素是指向int类型的指针,所以这个是指针数组,“”的优先级比“[]”的优先级高,“_”与p2结合构成一个指针变量,int修饰数组的内容,即数组的每个元素,数组这里并没有名字,是个匿名数组,现在清楚了p2是一个指针,它指向一个包含10个int类型数据的数组,即为数组指针。 下面再说说内存管理,内存分为三个部分:静态区、堆、栈。 其实堆栈就是栈,而不是堆。 静态区是保存自动全局变量和static变量。 静态区的内容在整个程序的生命周期内都存在,由编译器在编译的时候分配。 堆是由malloc系统函数分配内存的。 其生命周期由free和delete决定。 栈保存局部变量。 栈上的内容只在函数范围内存在,当函数运行结束,这些内容也会自动被销毁。 再说说有关内存需要注意的地方,定义了指针变量,在使用之前一定要初始化使它指向一块合法的内存,不管什么时候,我们在使用指针之前一定要确保指针是有效的。 使用malloc系列函数分配内存,使用完之后应及时释放内存,以防止内存泄露。 实验指导书 电子与计算机科学技术学院 实验一 顺序、选择及循环结构程序设计 一、实验目的 1.熟悉C语言编程环境 2.掌握输入输出函数的使用 3.掌握if语句和switch语句的使用 4.掌握for语句、while语句和do-while语句的使用 5.通过练习掌握顺序、选择及循环结构程序设计方法 二、实验环境 1.计算机 2.Turbo C集成环境 三、实验说明 1.首先应熟悉Turbo C运行环境,正确操作 2.自主编写程序,必要时参考相关资料 3.实验前应画出流程图并写出程序大致框架或完整的程序代码 4.实验学时:2学时 四、实验内容和步骤 1.实验内容 (1)求解方程ax2+bx+c=0。 (2)打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=13+53+33。2.实验步骤 (1)分析实验内容,画出流程图并写出程序大致框架或完整的程序代码。(2)进入Turbo C集成环境。(3)编辑源程序并进行保存。 (4)编译源程序,若有错误,修改错误后再次进行编译和连接,如此反复进行到不显示出错为止。 (5)执行程序,并检查程序输出结果。 五、实验报告要求1.整理实验结果,填入相应表格中 2.小结实验心得体会 3.回答思考题: 打印水仙花数时,要分别求出三位数的个位数、十位数和百位数,试问:除了你所用的的方法外,是否还有其它方法?请写出。 实验二 数组的应用 一、实验目的 1.通过实验理解掌握数组的基本概念 2.熟悉数组的定义、数组元素初始化、数组元素引用 3.理解字符数组的基本概念、基本操作和应用 4.能利用数组解决简单的应用问题 二、实验环境 1.计算机 2.Turbo C集成环境 三、实验说明 1.首先应熟悉Turbo C运行环境,正确操作 2.自主编写程序,必要时参考相关资料 3.实验前应画出流程图并写出程序大致框架或完整的程序代码 4.实验学时:2学时 四、实验内容和步骤 1.实验内容 (1)将一个数组中的值按逆序重新存放。 (2)编一程序,将两个字符串连接起来,不要用strcat函数。2.实验步骤 (1)分析实验内容,画出流程图并写出程序大致框架或完整的程序代码。(2)进入Turbo C集成环境。(3)编辑源程序并进行保存。(4)编译源程序,若有错误,修改错误后再次进行编译和连接,如此反复进行到不显示出错为止。 (5)执行程序,并检查程序输出结果。 五、实验报告要求1.整理实验结果,填入相应表格中 2.小结实验心得体会 3.回答思考题: (1)在字符串常量中,其结束符‘’要占一个字节的内存空间,在计算字符串长度时,是否也包括了字符串结束符? (2)在对字符数组进行输入时,可以用scanf函数,也可以用gets函数,若定义了一字符数组,从键盘输入了以下内容:You are my student。试问:用scanf函数和gets函数得到的结果一样吗?请分别指出。 实验三 结构体及其应用 一、实验目的 1.理解结构体的基本概念 2.掌握结构体类型的定义方法 3.掌握结构体变量的定义、初始化和引用 4.理解结构体数组的定义、初始化和引用 5.通过实验熟悉结构体及结构体数组的应用 二、实验环境 1.计算机 2.Turbo C集成环境 三、实验说明 1.熟练操作Turbo C运行环境 2.自主编写程序,必要时参考相关资料 3.充分理解结构体的应用及编程技巧 4.实验前应画出流程图并写出程序大致框架或完整的程序代码 5.实验学时:2学时 四、实验内容和步骤 1.实验内容 有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生数据,求出每个学生3门课的平均成绩,并输出最高分的学生的数据(包括学号、姓名、3门课的成绩、平均成绩)。2.实验步骤 (1)分析实验内容,画出流程图并写出程序大致框架或完整的程序代码。(2)进入Turbo C集成环境。(3)编辑源程序并进行保存。 (4)编译源程序,若有错误,修改错误后再次进行编译和连接,如此反复进行到不显示出错为止。 (5)执行程序,并检查程序输出结果。 五、实验报告要求1.整理实验结果,填入相应表格中 2.小结实验心得体会 3.回答思考题: 假如你所定义的结构体类型名为:STUDENT,试问:sizeof(STUDENT)的值是多少? 实验四 函数的应用 一、实验目的 1.理解函数的基本概念 2.掌握函数的定义、调用方法及参数传递方式 3.理解变量的作用域和变量的存储类别 4.通过实验掌握函数的使用 二、实验环境 1.计算机 2.Turbo C集成环境 三、实验说明 1.熟练操作Turbo C运行环境 2.自主编写程序,必要时参考相关资料 3.充分理解函数的应用及编程技巧 4.实验前应画出流程图并写出程序大致框架或完整的程序代码 5.实验学时:2学时 四、实验内容和步骤 1.实验内容 (1)写一个判素数的函数,在主函数中输入一个整数,输出是否是素数的信息。(2)写一函数,使给定的一个二维数组(3×3)转置。2.实验步骤 (1)分析实验内容,画出流程图并写出程序大致框架或完整的程序代码。(2)进入Turbo C集成环境。(3)编辑源程序并进行保存。 (4)编译源程序,若有错误,修改错误后再次进行编译和连接,如此反复进行到不显示出错为止。 (5)执行程序,并检查程序输出结果。 五、实验报告要求1.整理实验结果,填入相应表格中 2.小结实验心得体会 3.回答思考题: 如果一个函数的定义如下所示: void hello(){ „„ return;} 请说明其中return语句的作用。其中的return语句可以省略吗? 实验五 指针及其操作 一、实验目的 1.通过实验进一步掌握指针的概念 2.理解指针的定义和简单指针变量的使用方法 二、实验环境 1.计算机 2.Turbo C集成环境 三、实验说明 1.熟练操作Turbo C运行环境 2.自主编写程序,必要时参考相关资料 3.充分理解指针的使用及编程技巧 4.实验前应画出流程图并写出程序大致框架或完整的程序代码 5.实验学时:2学时 四、实验内容和步骤 1.实验内容 输入4个整数,按由小到大的顺序输出,使用指针进行处理。2.实验步骤 (1)分析实验内容,画出流程图并写出程序大致框架或完整的程序代码。(2)进入Turbo C集成环境。(3)编辑源程序并进行保存。 (4)编译源程序,若有错误,修改错误后再次进行编译和连接,如此反复进行到不显示出错为止。(5)执行程序,并检查程序输出结果。 五、实验报告要求1.整理实验结果,填入相应表格中 2.小结实验心得体会 3.回答思考题: 请说明以下程序段存在的问题,并改正。int a,*p;scanf(“%d”,p); 实验六 数组的指针操作 一、实验目的 1.理解数组的指针和指向数组的指针变量 2.理解指针变量作为函数参数时的参数传递方式 二、实验环境 1.计算机 2.Turbo C集成环境 三、实验说明 1.熟练操作Turbo C运行环境 2.自主编写程序,必要时参考相关资料 3.充分理解数组指针的使用及编程技巧 4.实验前应画出流程图并写出程序大致框架或完整的程序代码 5.实验学时:2学时 四、实验内容和步骤 1.实验内容 (1)输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写三个函数实现:① 输入10个数;②进行处理;③输出10个数(2)将n个整数的前面各数向后移m 个位置,最后m 个数变成最前面m个数。在主函数中输入n个整数和输出调整后的n个数。2.实验步骤 (1)分析实验内容,画出流程图并写出程序大致框架或完整的程序代码。(2)进入Turbo C集成环境。(3)编辑源程序并进行保存。 (4)编译源程序,若有错误,修改错误后再次进行编译和连接,如此反复进行到不显示出错为止。 (5)执行程序,并检查程序输出结果。 五、实验报告要求1.整理实验结果,填入相应表格中 2.小结实验心得体会 3.回答思考题: int *p, a[10]={0,1,2,3,4,5,6,7,8,9};p=a;试问:如果数组a的首地址为:0x1000,&a[3]与p+3的值分别是多少?*p+3与*(p+3)的值分别是多少? 实验七 结构体的指针操作 一、实验目的 1.理解结构的指针和指向结构的指针变量及链表的基本概念 2.理解链表的基本操作 二、实验环境 1.计算机 2.Turbo C集成环境 三、实验说明 1.熟练操作Turbo C运行环境 2.自主编写程序,必要时参考相关资料 3.充分理解结构的指针的使用及编程技巧 4.实验前应画出流程图并写出程序大致框架或完整的程序代码 5.实验学时:2学时 四、实验内容和步骤 1.实验内容 建立一个链表,每个结点包括:学号、姓名、性别、年龄。输入一个年龄,如果链表中有年龄等于此年龄的结点,则将此结点删除,否则新建一结点,插入到链表末尾。2.实验步骤 (1)分析实验内容,画出流程图并写出程序大致框架或完整的程序代码。(2)进入Turbo C集成环境。(3)编辑源程序并进行保存。(4)编译源程序,若有错误,修改错误后再次进行编译和连接,如此反复进行到不显示出错为止。 (5)执行程序,并检查程序输出结果。 五、实验报告要求1.整理实验结果,填入相应表格中 2.小结实验心得体会 3.回答思考题: 在建立链表时,要用到malloc函数来开辟内存空间,例如: p=(struct student *)malloc(sizeof(struct student));试问:为什么要在malloc函数前加(struct student *),去掉其中的*号可以吗?并说明原因。 实验八 文件的基本操作与应用 一、实验目的 1.理解文件及文件指针的概念 2.学会使用打开、关闭、读、写等文件操作函数 3.学会创建自己需要的文件格式 二、实验环境 1.计算机 2.Turbo C集成环境 三、实验说明 1.熟练操作Turbo C运行环境 2.自主编写程序,必要时参考相关资料 3.充分理解文件的基本操作及编程技巧 4.实验前应画出流程图并写出程序大致框架或完整的程序代码 5.实验学时:2学时 四、实验内容和步骤 1.实验内容 编程实现以下内容: (1)建立一数据文件,该数据文件包括文件头:0X146F,0X1234; (2)一个班有5个学生,每个学生包括:学号、姓名和三门课成绩,从键盘输入5个学生的信息,并保存到该数据文件; (3)从文件中读出5个学生的信息,计算平均成绩; (4)把5个学生的所有信息(包括平均成绩)输出到数据文件。2.实验步骤 (1)分析实验内容,画出流程图并写出程序大致框架或完整的程序代码。(2)进入Turbo C集成环境。(3)编辑源程序并进行保存。 (4)编译源程序,若有错误,修改错误后再次进行编译和连接,如此反复进行到不显示出错为止。 (5)执行程序,并检查程序输出结果。 五、实验报告要求1.整理实验结果,填入相应表格中 2.小结实验心得体会 3.回答思考题: 为什么在对文件操作结束后,要用fclose函数关闭文件? 实验九 串口通信的简单应用 一、实验目的 1.理解串口的操作方式和模式控制方式 2.理解串口数据通信的实现过程 3.能够编写简单的串口通信程序 二、实验器材 1.计算机 2.DB_9串口插头两个,导线若干 三、实验说明 1.自主编写程序,必要时参考相关资料 2.充分理解串口的基本操作 3.理解串口通讯的基本过程 4.实验前应画出流程图并写出程序大致框架或完整的程序代码 5.实验学时:2学时 四、实验内容和步骤 1.实验内容 将两台计算机的COM口相连,一个作为接收端,另一个作为发送端,编程实现两台计算机之间的简单通信。2.实验步骤 (1)分析实验内容,画出流程图并写出程序大致框架或完整的程序代码。(2)将两台计算机的COM口连接好。(3)进入Turbo C集成环境。(4)编辑源程序并进行保存。(5)编译源程序,若有错误,修改错误后再次进行编译和连接,如此反复进行到不显示出错为止。 (6)执行程序,并检查程序输出结果。 五、实验报告要求1.整理实验结果,填入相应表格中 2.小结实验心得体会 3.回答思考题: 两台计算机在通过串口进行串行通信时,它们的串口参数(如波特率)可以设置为不一样吗? 实验十 并口通信的简单应用 一、实验目的 1.理解并口的操作方式 2.理解并口寄存器的含义和并口读写时序 3.能够针对简单的应用问题,编写简单的并口通信程序 二、实验器材 1.计算机 2.实验电路板(包括并行接口、数模转换器DAC0832、运算放大器LM741、电阻、电容等),DB_25并口插头一个,导线若干 3.示波器、微机—II型电源各一套 三、实验说明 1.自主编写程序,必要时参考相关资料 2.充分理解并口的基本操作 3.理解并口通讯的基本过程 4.实验前应画出流程图并写出程序大致框架或完整的程序代码 5.实验学时:2学时 四、实验内容和步骤 1.实验内容 通过计算机并口向数模转换器发送数据,实现D/A转换。2.实验步骤 (1)分析实验内容,画出流程图并写出程序大致框架或完整的程序代码。(2)把实验电路板与计算机并口、示波器、电源(此时电源关闭)连接好。(3)进入Turbo C集成环境。(4)编辑源程序并进行保存。 (5)编译源程序,若有错误,修改错误后再次进行编译和连接,如此反复进行到不显示出错为止。 (6)打开电源,执行程序,通过示波器观察D/A转换器和运算放大器输出的波形。 (7)如发现波形输出有问题,若是程序有问题,关闭电源,修改程序并保存,重复步骤(5),(6),(7),直到输出正确的波形为止。若是电路有问题,请查找原因,或更换实验板,验证程序的正确性。 五、实验报告要求 1.整理实验结果,填入相应表格中 2.小结实验心得体会 3.回答思考题: 【c语言实验报告本】推荐阅读: c语言实验报告实验4.doc08-10 c语言实验五函数11-18 西南交大c语言实验06-24 实习报告1 c语言认识12-10 c程序设计实验报告08-06 c实验报告2参考答案08-12 语言、与C语言、实现汉诺塔09-30 c语言开发06-2411.c语言实验报告本 篇十一
12.大一c语言数组实验心得 篇十二
13.《C语言高级应用》实验指导书 篇十三