汇编语言程序实验报告

2024-05-18

汇编语言程序实验报告(精选10篇)

篇1:汇编语言程序实验报告

C语言程序设计实验报告

实验二 循环结构程序设计

班级 2012196 学号 201219628 姓名 李明月

一、实验目的

(1)掌握用while语句,do-while语句和for语句实现循环的方法;(2)掌握循环结构的嵌套;

(3)掌握break语句和continue语句的使用方法。

二、实验内容及步骤

1.相传国际象棋是古印度舍罕王的宰相达依尔发明的。舍罕王十分喜欢象棋,决定让宰相自己选择何种赏赐。这位聪明的宰相指着8×8共64格的象棋盘说:陛下,请您赏给我一些麦子吧,就在棋盘的第一个格子中放1粒,第2格中放2粒,第3格放4粒,以后每一格都比前一格增加一倍,依此放完棋盘上的64个格子,我就感恩不尽了。舍罕王让人扛来一袋麦子,他要兑现他的许诺。国王能兑现他的许诺吗?

程序1:试编程计算舍罕王共要多少粒麦子赏赐他的宰相,这些麦子合多少立方米?(已知1立方米麦子约1.42e8粒)总粒数为:sum=1+2+22+23+„+263 程序代码:

#include int main()//定义一个主函数 { int i;double t=1,sum=1,v;//定义变量

for(i=1;i<=63;i++)//用for循环语句实现循环运算 { t=t*2;sum+=t;//循环表达式 } printf(“总麦粒数为:%fn”,sum);v=sum/1.42e8;printf(“折合体积为: %f立方米n”,v);//对结果进行输出

return 0;} 运行结果:

2.求完数。

程序2:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6的因子为1,2,3,而6=1+2+3,因此6是“完数”。编程找出1000之内的所有完数,输出所有的完数(要求:一行显示6个数);

程序代码:

#include int main(){ int i,j,sum,n=0;printf(“ 1000以内的完数有:n”);for(i=1;i<=1000;i++){

sum=0;for(j=1;j

if(i%j==0)

{

sum=sum+j;

} } if(sum==i)

{ printf(“ %d”,i);

n=n+1;

if(n%2==0)

printf(“n”);

} } printf(“n”);return 0;} 运行结果:

3.打印九九乘法表

程序3:编程输出如下上三角形式的九九乘法表。2 3 4 5 6 7 8 9-------n“);for(i=1;i<10;i++)//i { for(j=1;j<=i;j++)// printf(” “);for(j=i;j<10;j++)//j printf(”%-2d “,i*j);// printf(”n“);}

代表行 输出空格达到来使得向右对齐代表列

输出行与列的乘积 3 1 2 3 4 5 6 7 8 9

运行结果:

三、问题讨论

break语句和continue语句在循环结构中使用时有何区别?举例说明。

break语句是跳出整个循环过程,不再判断执行循环的田间是否成立,并且break语句不能用于循环语句和switch语句之外的任何其他语句中。而continue语句则只是结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定。

例子:

#include int main(){ int i;for(i=100;i<=200;i++){ if(i%3==0)continue;

printf(”%d“,i);} printf(”n");return 0;} 输出:

但是换成break之后:

四、实验心得

个人感觉对于这几个循环语句还是for循环最为灵活,不进可以用于循环次数一句in个确定的情况,还可用于不确定的情况下,它也完全可以代替while语句。并且是程序看起来更为简洁明了。

篇2:汇编语言程序实验报告

实验目的

1、熟练掌握if、if…else、if…else if语句和witch语句格式及使用方法,掌握if语句中的嵌套关系和匹配原则,利用if语句和switch语句实现分支选择结构。

2、熟练掌握while语句、do…while语句和for语句格式及使用方法,掌握三种循环控制语句的循环过程以及循环结构的嵌套,利用循环语句实现循环结构。

3、掌握简单、常用的算法,并在编程过程中体验各种算法的编程技巧。进一步学习调试程序,掌握语法错误和逻辑错误的检查方法。

实验内容

计算并输出1000以内的10个素数以及它们的和。

要求:

在程序内部加必要的注释。

由于偶数不是素数,可以不考虑对偶数的处理。

虽然在1000以内的素数超过10个,但是要对1000以内不够10个素数的情况进行处理。

输出形式为:素数1+素数2+素数3+…+素数10=总和值。

算法描述流程图

Main函数:

判断素数:

源程序

#include

#include

int sushu(int n)/* 判断素数的函数 */

{

int t,i;

t=sqrt(n);

for(i=2;i1;i-=2)/* x为奇数时,做函数计算 */

{

n=sushu(i); /* 做判断素数的函数调用 */

( 励志天下 )

if(n!=0)/* 对素数的处理 */

{

a[j]=n;/* 把素数由大至小存入数组a[ ]中 */

j++;

if(j<11)

m+=n;/* 统计前10个素数之和 */

}

}

if(j<10)/* 当素数个数小于10个时,结果输出 */

{

for(i=0;i

{

n=a[i];

printf(“%d”,n);

printf(“+”);

}

printf(“2=”);

printf(“%d ”,m+2);

}

else for(i=0;i<10;i++)/* 当素数个数大于等于10个时,结果输出 */

{

n=a[i];

printf(“%d”,n);

if(i<9)

printf(“+”);

else

{

printf(“=”);

printf(“%d ”,m);

}

}

}

}

测试数据

分别输入1000、100、10测试。

运行结果

出现问题及解决方法

当素数个数小于10时的处理不够完善,考虑不够周全。把“+2”的处理做的太勉强。

程序过大,不够精简,无用文字太多。

学习耐心与细心不足,如scanf(“%d”,&n);中的“&”经常忘记。

编程思想不够发散,例如如何判断素数,只能想出2种方式(其中1种为参考教科书上内容);在今后学习中应更多的动脑,综合运用所学。

基本功不够,如清屏clrscr等函数用的不好,有时同样的问题多次犯,给实验课老师带来很大的麻烦。这说明我的知识不够广,有很多有用但不做考试要求的书中内容没有学好,认识程度不够深刻。就算以后C语言这门课程结束后,也应多看相关东西,多上机练习,才能真正从本质上提高自己。

物理实验报告 ·化学实验报告 ·生物实验报告 ·实验报告格式 ·实验报告模板

篇3:C语言程序设计实验课程教学探索

C语言程序设计作为一门重要的程序设计语言入门语言, 在课程体系中的地位不言而喻。盐城师范学院将C语言程序设计作为计算机专业本科生程序设计课程的基础核心课程, 已有多年历史。该课程对培养学生计算思维、编程能力、自学能力和分析解决计算机问题的能力有着至关重要的作用, 并对后续课程, 譬如算法与数据结构、数据库原理、操作系统等核心课程的学习有非常大的支撑作用。但是, C语言中概念多、难点多、语法复杂、设计到的硬件知识多、使用灵活、不易调试等特点, 容易导致学生出现畏难情绪, 极大地遏制了学生的学习兴趣。本文针对以上问题就该课程对应的实验课程做几点思考, 从课程内容、教学方法、教学手段等几个方面进行大胆改革, 积极投身教学实践, 结果显示我们的改革能取得较好的效果。

2 传统教学模式存在的问题 (Defects of traditionalteaching model)

C语言程序设计实验课程是计算机专业进入大学后要学习的第一门程序设计实践课程, 它对提高学生编程兴趣和动手能力有着至关重要的作用。或者说, 该课程是热爱编程和害怕编程的两种学生的分水岭。传统教学模式在实际教学过程会存在以下问题[1]。

(1) 生源的计算机基础参差不齐, 有些学生进入大学前就已经通过计算一级考试, 有些学生还没有接触过计算机。进入大学后同一平台学习程序设计, 后者明显感觉到有压力, 自信心受打击从而出现厌学的情绪。

(2) 传统教学模式的过程以教师为主体, 学生被动的学, 对于实践性很强的课程, 学生逐渐丧失兴趣, 缺乏学习的动力。C语言程序设计实验课程上, 如果只是简单的做些验证性实验, 则不能培养学生独立编程解决问题的能力, 极大地扼杀了学生的创造力。

(3) 由于被动的学习, 造成只是照本宣科, 缺乏钻研精神, 导致学生在后续专业课程或参加设计性、综合性实验课程时, 往往力不从心, 达不到预期的教学效果。

(4) 教师对课程教学目标不明确, 认为将该课程的语法知识传授给学生就达到教学目的, 这样就背离了通过学习C语言应该培养学生能够用编程语言去分析和解决实际问题的能力的宗旨。

3 改革方案 (Project of innovation)

C语言程序设计是一门实践应用性较强的学科, 在日常的教学过程中需要不断强化实验环节, 让学生在操作实践过程中不断地发现、分析和解决新问题。为了实现上述目标, 教师在教学过程中必须要结合有效教学理论的要求, 努力改进教学方法。

3.1 精心设计好教学内容

案例教学教学法的理论依据是构建主义学习理论[2]。构建主义者认为, 教学设计要发挥学习者在学习过程中的主动性和构建, 教师的职责在于使学习者置身于探索知识之中, 为他们提供适当的“情境”[3]。在设计案例时, 要兼顾不同基础的学生, 不能让实验课变成少数人的实验课。因此, 我们将教学内容按层次组织。第一个层次为基本知识, 所有的学生都必须能够通过自身的努力顺利完成, 这样可以极大提高学生的学习积极性。第二个层次为对所学知识简单的应用, 这个层次对基本概念和方法加深理解, 需要学生通过自己的钻研、参考课外资料, 发挥自己的学习能力。通过这一层的学习, 所有的学生应该能够学会主动积极地查阅文献, 切实提高自己的钻研和自学能力, 同时也能鼓舞学生的斗志。第三个层次是用所学知识去解决实际问题, 真正做到培养学生的创造力。这个层次需要通过大量的思考和联系才能达到, 同时也能选拔出具有一定天分的学生。

3.2 激发学生的学习兴趣

兴趣是最好的老师, 同时兴趣也是学好程序设计的关键, 而培养学生对C语言程序设计课程的兴趣关键在于实验课。激发学生的学习兴趣的关键莫过于让学生有解决实验中碰到问题的能力, 不会因为C语言本身的问题丧失学习的信心。比如, 让学生掌握调试手段。首先我们使用一个有趣的现象引出为何要使用调试工具, 以及调试工具使用方法。例如, 我们给出如下所示代码, 请学生写出运行结果。绝大部分学生会给出从246到255的十个数。运行的结果告诉他们结果应该是一个死循环, 这样会激发学生的想知道原因的兴趣。

#include

int main ()

{

unsigned char a;

for (a=246;a<256;a++)

printf (“%dt”, a) ;return 0;

}

我们用VC++ 6.0的调试工具, 在循环体语句前设置一个断点, 执行debug, 并执行单步调试, 发现当a为255后for循环并没有能停止, a的值变成了0, 如图1和图2所示。这时学生会回忆起unsigned char类型的变量取值范围为0—255。当变量a值为255时再加1就回头变成了0。这样学生会对调试工具的使用有一个非常深刻的印象, 同时也会明白掌握调试工具的重要性。更重要的是, 极大地激发了学生的学习兴趣。

3.3 设计考核体系

目前许多高等院校C语言程序设计课程学习成绩的评定, 仅以期末一张考试卷的完成情况而定, 这使得很多学生不重视实验课, 认为实验课学得好与不好对成绩影响不大, 很多学生重理论、轻实验[4]。我们将考核贯穿整个学习过程中, 每学完一个知识点进行一次考核。考核的方式灵活多样, 可以通过诸如答辩、课后撰写小论文、完成实验报告等方式。考核过程中发现的问题决定教师教的过程, 可以通过集中讲授、设计思考题、提供参考资料等方式解决学习过程发现的问题。

4 结论 (Conclusion)

多年来, 我校在C语言程序设计实验课上进行了改革的尝试, 许多老师积极参与教学改革, 取得了辉煌的成果。我们一直在努力寻找提高学生对C语言程序设计实验课程的兴趣、最有效的教学手段, 为计算机专业学生提高动手能力、编程思维能力做出自己的努力。

参考文献

[1]王创伟, 汤克明, 蔡长安.“C语言程序设计”教学改革方案与实践[J].现代计算机, 2010 (10) :23-25.

[2]温彭年, 贾国英.建构主义理论与教学改革:建构主义学习理论综述[J].教育理论与实践, 2002, 23 (5) :17-22.

[3]储岳中, 秦锋, 刘哄申.“C语言程序设计”理论与实践一体化教学的几点实践[J].计算机教育, 2012 (12) :22-25.

篇4:汇编语言程序实验报告

【关键词】C语言 程序设计 实验 考核体系

【中图分类号】G64【文献标识码】A 【文章编号】2095-3089(2016)37-0234-01

1.引言

C语言程序设计(实验)通过上机实践,可以帮助学生巩固课堂教学的理论知识,真正体现学生将知识“内化”的过程[1],意在培养学生分析问题、解决问题的实际动手能力和创新能力。传统的实验课程考核方式单一,不能公正的评价学生的实际综合能力。为了全面培养学生的学习兴趣、全面考查学生的综合知识点,全面注重学生的创新能力和实践能力的提高,以达到培养创新人才的目的,切实推进课程考核改革及考核体系已经刻不容缓[2]。

2.课程简介

程序设计基础是一门专业基础课,这门课通过全面、深入、系统地介绍程序设计方法和程序设计语言,使学生初步建立起程序设计的基本概念,通过学习一种典型的程序设计语言(C语言),初步掌握程序设计方法,具有一定的程序设计能力。我院的程序设计基础(C语言)分上下两个学期,程序设计基础(一)和(二),程序设计实验是单独的一门课程,有程序设计基础(一)实验和(二)实验,实验内容主要是辅助,强化理论各个章节的知识点,提高学生的动手能力为目的进行设计的。

本考核体系是基于程序设计基础(一)实验设计的。我院程序设计基础(一)主要的内容有:数据的表示、组织和处理、程序的基本结构控制(顺序、选择和循环)。

3.現行的考核方式

现行的考核方式比较单一,是从三个方面进行成绩给定:(1)考勤;(2)实验报告;(3)创新设计。这里的(2)和(3)都是以实验报告来给定成绩,其中一部分以实验报告的书面结果给定成绩,另一部分以答辩实验报告的方式给定成绩。现行的考核方式不能公正的评定学生的实际综合能力,也没有促进学生进行创新设计。

4.全程考核体系的构建

全程考核体系意在促进学生核心能力的提升,在学习过程和学习结果两个维度上设置考核指标:过程考核可以提高课程的教学质量,培养学生的学习能力以及提高学生的协作能力、表达能力、沟通能力等综合素质;结果考核目标是使学生掌握基本理论、基本知识的基础上增强职业素养与专业技能,提高分析问题及解决问题的能力。

全程考核体系:

(1)考勤

考勤是学生学习的基础和保证,能促使学生养成遵章守纪的习惯,以培养学生进行自我管理。每次实验使用E-learning系统进行签到记录。

(2)实验报告

实验课中,教师观察、了解学生学习的过程,学生参与课堂活动的广度和深度,学生学习过程中表现出来的解决问题的能力。而实验报告是实验过程中唯一存档的资料,是值得重视的环节。教师根据学生的实验报告的完成步骤、完成程度以及答辩等对每次实验进行综合评价。

(3)综合大作业

为培养学生的创新能力及实践工程能力,让学生以三人一组,综合运用所学知识,共同自主学习、相互启发、收集资料、团队协作开发一个趣味性、实用性的小系统。

大作业从三个方面给定成绩:一是系统的整体评价;二是团队分工;三是团队成员各自答辩情况。

成绩给定之一:系统的整体评价包括科学正确性、趣味性/适用性、界面的清晰性。成绩给定之二:根据团队的分工,评价团队各成员的工作量。成绩给定之三:团队成员各自的答辩情况加入各自的成绩。

(4)期末无纸化考试

为对学习结果进行公正的考核,且激发学生对C语言的热爱,我们用C语言编写了一个无纸化考试系统,并让学生观摩编制考试系统中的主要算法。考试系统的中的试题均为编程题目,按照实验教学大纲的知识模块将试题划分成几个组,每个组中的题目难度相当,考试系统从每个组中抽取一道编程题目,随机组成程序设计试卷。

考试过程中,为保证公正,避免学生考试上网查阅资料,使用E-learning系统控制学生,禁止其使用电脑的浏览器、U盘。

考试成绩从三个方面给定:一是程序结果,单纯地考核程序运行的正确性;二是程序设计思路;三是理论基础知识。

5.结束语

本考核体系应用于本学院15级数字媒体专业,将考核贯穿于整个学习过程中,调动了学生学习的兴趣,学生的实践能力和创新能力得到了一定的提升,能更公正地评价学生的综合能力,学生也表现出了对该门课程的热情和自信,本考核体系得到了学生的一致认可。

参考文献:

[1]王丽娜,吕红,张杰,任颖.《计算机程序设计实验》课程的教学改革与实践.计算机工程与科学.2014年.第A1期.

篇5:汇编语言程序实验报告

二、写一个函数intisprime(intn),当n是质数时,函数返回非零值;当n是合数时,函数返回零值。

三、写一个函数reverse(chars[]),将字符串s[]中的字符存储位置颠倒后重新存于s[]中。试分别用递归和非递归两种形式编写。

四、写一个主函数输入测试数据(自己指定),并调用上述函数,检查函数功能的正确性。要求:把预备知识、步骤、程序框图、调试好的程序及存在的问题写在下面(不够可以附页)。

#include

#include

intdigit(int n,int k);

intisprime(intn);

void reverse(chars[]);//非递归实现

void reverse1(chars[]);//递归实现

int digit(int n,int k)

{

int m1,m2,i;

m1=n;

m2=0;

while(m1!=0)//统计n数字的位数

{

m1=m1/10;

m2=m2+1;

}

if(k<=0||k>m2)return 0;//不能正确截取

m1=n;

for(i=1;i

m1=m1/10;

m2=m1%10;//取第k位

return m2;

}

intisprime(intn)//是素数返回1,是合数返回0

{

int i;

if(n<0)

n=-n;

if(n==1)return 0;

for(i=2;i<=n/2;i++)

if(n%i==0)

break;

if(i>n/2)

return 1;

else

return 0;

}

void reverse(chars[],int len)//非递归,字符串倒置 {

int i;char ch;

for(i=0;i

{

ch=s[i];s[i]=s[len-1-i];s[len-1-i]=ch;

}

}

voidreverse1(chars[],int m,int n)//递归方法实现 {

char ch;

ch=s[m];s[m]=s[n];s[n]=ch;

if(m<=n)

reverse1(s,m+1, n-1);

}

void main()

{

int n=123456,k=4,len;

char str[80]=“abcdefghij”,str1[80],str2[80];

if(digit(n,k)==0)

printf(“%d输入错误n”,k);

else

printf(“%d的右边第%d位是:%dn”,n,k,digit(n,k));

if(isprime(k)==0)

printf(“%d是合数n”,k);

else

printf(“%d是素数n”,k);

len=strlen(str);

printf(“原字符串n”);

strcpy(str1,str);

puts(str1);

reverse(str1,len);

printf(“倒置以后的字符串n”);

puts(str1);

篇6:汇编语言程序实验报告

1.实验环境:

软件系统:使用的软件环境

硬件系统:机型说明

2.实验目的:掌握如何编辑、编译、链接调试运行c程序

3.实验内容:

(1)掌握顺序结构程序设计.P26 ,p49,p62 3.2~3.7

(2)掌握选择结构程序设计(if 和switch语句的用法)p4.2~

(3)循环结构程序设计(while, dowhile,for语句的用法)。

(4)掌握数组的定义、输入和输出的方法,字符数组、字符串函数的使用。

(5)了解函数的定义,熟悉函数实参与形参的“值传递”方式,掌握函数的嵌套调用和递归调用方法。

(6)熟悉指针含义及其使用。

(7)熟悉结构体和共用体的使用。

(8)熟悉文件的使用。

4.实验要求:

(1)输入编写的源程序,检查程序有无错误(语法和逻辑错误),有则改

之。

(2)编译和连接,仔细分析编译信息,如有错误应找出原因并改正。

(3)运行程序,输入数据,分析结果。

5.实验结果:

输出程序清单和运行结果。(要求把原题内容,调试好的程序和其结果一并打

印),6.实验体会

篇7:汇编语言程序实验报告

每章作业题目内容

第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.生成可执行程序

篇8:汇编语言程序实验报告

1 高校C语言实践教学中存在的问题

1.1 实践教学内容有待优化

实践教学内容全部依附于理论教学课程, 实验项目陈旧, 只是配合每一章所学的内容在计算机上进行实践, 验证性实验项目较多, 缺少综合性、设计性实验。扩展内容太少, 不利于学生进行开拓性实验内容的设计, 不利于学生创新思维能力的培养。

1.2 实践教材形式单一

课程采用的实验教材与习题集合二为一的, 每一个实验题目都能在本书中找到答案, 学生只要把源程序输入计算机, 进行简单的调试就可以得到实验结果, 用不着去查资料、思考和创新, 编译出错时不是根据错误提示查找原因, 而是与书上的程序进行比对, 改正录入错误。这样不利于培养学生发现问题、分析问题、解决问题的能力。

1.3 实践教学方法有待创新

教师在教学过程中使用单纯的讲授法, 往往把实验过程、注意事项等讲得很详细, 学生实验时只是按照步骤被动的进行, 缺少独立思考、提问、尝试的机会, 主动性得不到发挥, 创新思维训练无从谈起。上课讲的内容在讲过之后, 无法反复学习研究, 学习者层次不一, 对知识的接受能力也存在较大差异, 造成学习者对教师所操作的步骤无法全部掌握。不利于激发学生对实验教学的兴趣和积极性, 不利于学生进行探究式学习。

2 C语言实践教学的实施内容

2.1 优化实验教学内容

为全面提高学生的实践能力, 使实验教学能够满足不同层次学生的自主学习需求, 我们对实验课程内容进行了规范和优化, 新的C语言程序设计实验内容系统地构建了实验项目模块, 确定开设16个实验。考虑到本课程为专业基础课, 实验项目以基础实验项目为主, 增加综合性实验项目, 使其具有从易到难、从基础到综合的系统性。

实验项目的精心选择。C语言有三种基本结构:顺序结构、选择结构和循环结构, 这三种结构是学生程序学习的入门结构, 所以我们进行了精心的选择, 例如我们在循环结时设计了两个题目, 1.编程计算5!, 要求输出结果为:1×2×3×4×5=120。2.输入10个数, 求其中的最大数和最小数。这两个程序难易适中, 不仅能够很好运用循环结构, 而且为后续的递归结构打下基础, 环环相扣, 由浅入深。

实验题型的多样化。在以往的实验课中, 大部分老师布置的实验题目题型单一, 内容不丰富, 为了全方位地训练学生程序设计能力, 在程序设计中设计多种类型的实验题目, 包括填空设计题, 程序修改题, 编程题等。

2.2 加强实验教材建设

实验教学的正常实施, 离不开相应教材的指导, 为给学生提供一定广度和深度的实验教材和辅助资料, 我们将编写实验指导手册;同时在新的教材中扩充一部分高级编程, 扩展学生的知识面;再加入常见错误代码, 以便学生能够更快的改正自己的程序, 也可预防一些错误的发生。

2.3 完善实验教学方法

将问题分析法, 项目实验法、任务驱动法等多种教学方法融合, 提高学生解决问题的能力, 增加学生的学习兴趣。鼓励学生参加学生社团, 开展趣味编程。组建编程竞赛和兴趣小组, 加入真实的实践项目, 增加学生参与项目的能力。

2.4 实验考核方法的改进

目前实验成绩主要是各个实验成绩的总合, 不能合理的评判出学生的水平和能力。我们将实验成绩分为三个部分, 实验考勤20%, 实验现场打分40%, 实验报告40%。这样给出的实验成绩不仅能够反映学生的真实能力, 而且量化科学。另外设定一部分加分项目, 当学生完成高难度项目时, 另设定加分内容。

3 C语言实践教学的具体实施

围绕理论教学, 设计出相关的例题, 习题、上机指导题以及工程化思想的项目指导题, 坚持实践和理论教学相结合, 以实践教学促进对理论教学的深入理解, 将理论教学置于实际应用的背景之下;以实践教学为手段, 培养学生的计算思维、工程化思想, 训练学生的分析问题、用程序的思维去解决问题的能力, 提高学生的编程能力及调试能力。主要从以下五种实践教学方面实施。

3.1 课内上机实践环节

上机实践课上要求学生在实验室按照理论课讲解的内容进行巩固相应的理论教学知识, 特别是相应的语法知识的熟悉, 然后根据教师布置的题目进行相关的程序分析与设计, 主要是分析该应用中主要用的相关语法知识, 解决思路、分析和处理实际问题。通过上机实践环节, 学生可以基本分析、处理、解决、调试程序的能力。

3.2 课外实验实践环节

要求学生按照本教材配套的C上机实验指导书完成相关的实验操作, 上面的题目设计是以理论教学和上机实践环节相对应的知识去设计的, 能够很多的满足学生对该门课的学习。

3.3 综合性实践环节

布置一个小型软件项目设计, 让学生以工程化的思想从需求分析到最后的实现、运行维护整个工程化阶段去完成课程的设计实践, 使学生在应用项目中学习理论和实践知识。进一步开发学生独立分析、独立思考、独立完成和解决实际应用问题的能力, 综合运用所学的理论知识, 做到融会贯通, 加深学生对编程基本理论的认识和理解。

3.4 学生学习社团趋动

学院有相应的学习社团, 每个社团为每个学生提供的专门的学习场所 (具有上机练习的环境) 及相应的指导教师、高年级的学生的指导, 定期的知识技术的讲座、培训、辅导, 另外还有本专业相关的应用项目支持, 从而达到了实践教学的更高的目的。

3.5 自主研发的云平台的环境支持

学生实验环境全部在学院自行研发的云平台的系统进行操作和实验的, 使学生能切实感受到在自己开发的平台下运行软件, 编写程序与调试程序的乐趣。

4 结语

C语言程序设计是对于初学者来说难以掌握, 很容易让初学者失去学习程序的兴趣, 而实验教学更是难于把握。本文针对C语言实验教学中存在的各种问题, 给出了具体的改革措施, 并在2013、2014级新生中进行实践, 通过这种教学方法的改革, 新生的C语言实践能力得到了明显的提升。通过调查, 学生对于学习编程语言的兴趣大大提升, 对于理论知识的理解也更加深入。

参考文献

[1]董永权.C语言程序设计实验教学中的问题及改革措施[J].科技视窗, 2011 (26) :61-62.

[2]郝慧馨, 李秀坤, 夏清泉.C语言程序设计实验教学探索[J].计算机教育, 2010 (17) :82-84.

篇9:汇编语言程序实验报告

许多院校的专业开设了C语言课程,将其作为学生学习程序设计技术的入门课程,这与C语言的特点是分不开的。C语言不但可以编写系统软件,而且可以根据用户的需要编写出满足用户要求的应用软件,尤其是C语言具有很好的对计算机的硬件编程能力。同时,C语言具有逻辑性强、处理问题周密、严谨的特点,是集知识和技能于一体,实践性很强的课程。学生通过学习C语言可掌握程序设计的一些基本方法和技巧。然而C语言的数据类型较多、表达式丰富、语法结构较复杂,使它成为一门教师难教、学生难学的课程。因此,在重视理论教学的同时,必须加强实验环节。只有上机实践才能正真学会如何编写程序和调试程序,体会到“优化”程序;也只有通过上机实践才能更好地掌握程序设计的理论知识。然而,在C语言实验课中,我这两年的教学观察中发现普遍存在以下几个问题:

第一,学生没有明确的实验目标,实验兴趣不大。上机时一些学生无所事事或玩游戏,不但害了自己,还影响其他同学。第二,现有教材中上机实验都立足于C语言本身的一些语言规则,和实际开发脱节,没有较容易理解和生动有趣的范例,比较死板、枯燥。第三、现有实验大多注重语句、语法等,没有把编程解题思路和程序测试等放在首位,对学生分析问题和解决问题的能力训练不够。

二、实验教学探讨

我在教学的过程中,职借鉴职业技术学院的职业性教学的经验,注重职业岗位能力与职业技能的训练,注重解决问题、分析问题和自学等能力的培养。在C语言实验上机课中,主要是引导学生突破传统的思维方式,培养学生读、写程序和调试程序的能力以及提高上机的学习兴趣和自主实验的方法技巧等。

1、简化入门实验,提高学生实验兴趣 学生大多已习惯于计算机的图形操作界面,且基础比较薄弱,动手能力相对也差,加上或多或少的惰性,而开始学习C语言后,突然进入的是一个纯英文的界面和纯键盘操作,这种反差很大。为减轻学生畏惧压力,让学生容易上手,可简化C语言的入门实验操作:(1)在桌面上创建TC的快捷方式,双击后可直接进入TC编辑环境。(2)在编辑、编译、连接及运行C语言程序时,教学生直接按F2键进行存盘操作,Ctrl+F9运行程序,Alt+F5看到运行结果。而没必要让学生先认识TC的菜单中每个英文单词的意义等,将TC环境的细节认识和程序的编译、连接等单步操作留到后面实验中逐步了解。学生一上机就能体会到成功,并利用发音和动画程序引起学生的兴趣。

2、设计针对性的实验 设计一些学生们比较感兴趣的编程题目,加强学生对程序错误的诊察和校正能力、测试关系和逻辑表达式的能力、程序代码优化能力等方面的培养。从输入输出语句上机开始,我有意设计了相应的上机实验。如在选择结构中,设计如下过程:

(1)实验内容和步骤:①例:有如下程序段(让学生填写成完整的程序):

if(a>b)scanf(“%d”,&x);

else scanf(“%d”,&x);

为了更容易看明白程序的逻辑结构,用流程图来加以描述。要求增加一些输入语句和输出语句,以便使上述程序段能在不同a,b和x值下运行,并且能观察程序流程经过(覆盖)了哪些语句、哪些分支及哪些路径。

②实验步骤:记下分别使用下列各组数据运行时的操作流程。

⑴a=1,b=1,x=1;

⑵a=1,b=1,x=2;

⑶a=3,b=0,x=1;

⑷a=2,b=0,x=4;

⑸a=2,b=1,x=1;

⑹a=1,b=0,x=2;

⑺a=2,b=1,x=1;

⑻a=3,b=0,x=2;

(2)分析讨论:①用哪一组数据就可以使程序段中的每个处理语句都执行一次?为了找出程序中2各条处理语句中的错误,应该使用什么样的数据对程序进行测试?请上机验证自己的结论。②用哪两组数据就可以使程序段中的每个分支都至少运行一次?这种情形与上面的讨论有何不同?如果为了找出程序中各分支中的错误,应该使用什么样的数据对程序进行测试?请上机验证自己的结论。③用哪两组数据就可以把判定框中的每个条件都运算一次?如果为了测试出判定条件中的错误,应使用哪些数据对程序进行测试?请上机验证自己的结论。④用哪四组数据才可以把各种条件的组合都检测一遍?如果为了测试各种条件组合的情形,应该使用什么样的测试数据?请上机验证自己的结论。⑤用哪四组数据才可以把从起始到终止的各条路径都覆盖一次?如果为了测试出程序在不同路径下的错误,应该使用什么样的测试数据?请上机验证自己的结论。

(3)进一步的实验:①从键盘输入三个数,代表三条线段的长度。请写一个判定这三条线段所组成的三角形属于什么类型(不等边、等腰、等边或不能构成三角形)的C程序。②请分别设计下列数据对自己的程序进行测试。

A.找出各条语句中的错误。

B.找出各分支中的错误。

C.找出各条件中的错误。

D.找出各种条件组合中的错误。

E.找出各条路径中的错误。

而在循环语句上机中,对学生进行代码优化训练,让学生学会删除多余运算、代码外提、强度削弱、变换循环控制条件等代码优化手段。通过这些上机实践,学生大致知道一些软件测试、程序优化知识,提高了学生上机的积极性,使学生从上机就是检验书本例题、习题中解脱出来。

3、设计综合性的实验 以往大多数学生在学完C语言后,普遍反映看得清程序的设计代码意义,但遇到实际问题就无从下手。这主要是教材上缺少实际意义的题目,为此,一定要设计短期上机实验任务与长期任务结合的上机内容。以一个大题目作为长期任务,再按不同功能模块分解开来,形成一个个短期任务。每一章学过之后要求完成一项或几项编程作业,而各章的编程作业不是孤立的,而是相互联系的,实际上它们都是一个较大型较复杂程序的组成部分。这样就可以使学生的任务形成一种连贯性,在整个学科的学习过程中始终都有一个总任务的驱动,而学生又在一个又一个短期任务的驱动下,体验着一次又一次迈向成功的喜悦。

例如,以“学生成绩管理系统”为课程设计的长期任务,从常用输入/输出语句printf和scanf开始,让学生编写主函数并在主函数中调用若干个空函数形成一个文本型菜单的雏形;学习常用数据类型后,再编写一个验证密码输入的函数;选择结构后,要求编写一个菜单选取函数;循环控制和数组后,要求建立班级课程的成绩输入输出函数;学完结构体类型后,要求使用结构体数组来存储和处理学生的信息;学习链表后,要求利用单链表动态管理学生的成绩;最后在“文件”这一章,要求利用文件操作完成学生成绩管理。当学完整个课程,完成了平时要求的各项编程作业之后,就会发现,原来自己完成的远不是一个一个零碎的程序段,而是在一块一块制作程序的各个部件,只要通过简单的程序拼装,就可以构成一个比较复杂的程序。这也在潜移默化中培养了学生采用各个击破的方法解决实际问题的意识。最后,学生从整体的角度来审视整个程序的设计,并通过上机进行综合调试,达到提高编程能力的目的。

4、采用协作方式的实验组织形式 协作学习由David W. 和Roger R. Jonson教授提出,是学生以小组形式参与、为达到共同的学习目标、在一定的激励机制下最大化个人和他人习得成果,而合作互助的一切相关行为。

采用这种形式在上机过程中,学生之间为了达到小组学习目标,个体之间可以采用对话、商讨、争论等形式对问题进行充分论证,以期获得达到学习目标的最佳途径。学生学习中的协作活动有利于发展学生个体的思维能力,增强学生个体之间的沟通能力以及对学生个体之间差异的包容能力。此外,协作学习对提高学生的学习业绩、形成学生的批判性思维与创新性思维、对待学习内容与学校的乐观态度、小组个体之间及其与社会成员的交流沟通能力、自尊心与个体间相互尊重关系的处理等都有明显的积极作用。

在尊重学生个体差异和一人一机基础上,利用局域网,将学生分成小组进行协作实验;将实验心得体会、结论等在网上共享。改变以前那种各自为阵,互不往来的实验组织方式。

三、结束语

篇10:汇编语言程序实验报告

实验七 指针 了解指针的概念,学会定义和使用指针变量。2 掌握指针、变量和数组的关系及使用方法。3 学会使用指向函数的指针变量。

二 实验内容 编写函数fun(float *sn,int n),其功能是:根据以下公式计算s,计算结果通过形参sn传回;n通过实参传入,n的值大于等于0。上机运行并记录输入输出(主函数已给出)。

s11111 3572n1fun(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 void fun(float *sn,int n){ float s=0.0,w,f=-1.0;int i=0;for(i=0;i<=n;i++);{ f=(-1)*f;w=f/(2*i+1);s+=w;} *sn =s;} main(){ float s;int n;printf(“n=”);scanf(“%d”,&n);fun(&s,n);printf(“s=%fn”,s);}

输出结果如下图: 想使指针变量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 void tranf(int(*p)[3]){ int t,i,j;for(i=0;i<3;i++)for(j=0;j

程序修改如下: #include void tranf(int(*p)[N]){ int t,i,j;for(i=0;i<3;i++)for(j=0;j char *strc(char *s1,char *s2){ char *p=s1;while(*s2!=')*p++=*s2++;return s1;} main(){ char s1[30]=“computer ok!”,s2[]=“language”,*pt;pt=strc(s1,s2);printf(“%sn”,pt);/* 第10行 */ } 将程序第10行中的%s改成%c,应该怎样修改?(只允许修改第10行)

应改为: printf(“%cn”,*pt++);

上一篇:适合男女一起朗诵的诗歌下一篇:地质环境治理修复实施方案