实验二 拆字程序、拼字程序设计

实验二 拆字程序、拼字程序设计
实验二 拆字程序、拼字程序设计

实验四:拆字程序、拼字程序设计

院(系):电子工程学院课程名称:单片机原理及应用日期:

4.2.1 实验目的

1. 掌握汇编语言指令的使用规范。

2. 掌握汇编语言程序设计方法。

3. 掌握MCS-51单片机的存储器结构。

4. 掌握单片机中数据存储形式。

4.2.2 实验预习

1.熟悉Keil集成编译环境的使用方法。

2. 复习单片机指令系统。

3. 复习利用Keil集成编译环境查看单片机存储器状态的方法。

4.2.3 实验原理

计算机中数据都是以字节为单位存储的二进制数,完成本实验需熟练掌握二进制的数据结构和原码,补码等数据编码方法以及单片机各指令对数据的影响。

4.2.4 预作实验任务

1. 简介用Keil集成编译环境编辑、编译、调试程序的过程。

2. 简介用Keil调试程序时查看内部数据存储器和内部程序存储器状态的方法。

3. 输入并编译以下程序,在Keil中运行

ORG 0000H

AJMP MAIN

ORG 0100H

MAIN: MOV R0,#30H

MOV 30H,#78H

MOV 31H,#0AFH

MOV A,@R0

INC R0

XCHD A,@R0

SJMP $

运行结果为: A = , R0 = , (30H) = , (31H) = ,

4. 输入并编译以下程序,在Keil中运行,记录运行结果。

ORG 0000H

AJMP MAIN

ORG 0100H

MAIN: MOV A,#79H

ANL A,#0FH ;A=

ORL A,#0A3H ;A=

XRL A,#0F0H ;A=

CPL A ;A=

SWAP A ;A=

CLR A ;A=

SJMP $

5. 补全程序以完成程序功能。

程序功能:读取外部数据存储器2000H单元内容,并将其高四位送至P1端

口的低四位,P1端口高4位不变。

MOV DPTR, ;外部存储器地址送DPTR

A,@DPTR ;读取数据

ANL A, ;屏蔽累加器低4位

A ;累加器高低4位交换

ANL P1,#0F0H ;屏蔽P1低4位

ORL A,P1 ;A和P1相或

MOV P1, ;结果输出至P1

6. 补全程序以完成程序功能。

程序功能:将累加器A中的单字节二进制数转换为BCD码,百位、十位、个位分别存放在R5、R4、R3中。

MOV B,

DIV AB ;除以100

MOV R5, ;百位→R5

MOV A,#10

XCH A,

DIV AB ;除以10

MOV R4, ;十位→R4

MOV R3, ;个位→R3

4.2.5 实验任务

1. 编写程序,将内部存储器(31H)单元的内容拆成两部分,高四位送给(21H),低四位送给(20H),如(31H)=75H,则执行完程序后(21H)=07H, (20H)=05H。

2. 编写程序,提取内部存储器(21H)单元的低四位作为高4位,(20H)单元的低四位作为低四位组成新数据,存储到(31H)单元。如(21H)=78H,(20H)=9BH,则执行完程序后(31H)=8BH。

4.2.6 实验步骤

1.使用Keil C51软件建立工程,编辑、编译程序,程序代码如下:

实验项目1:

实验项目2:

3.用Keil软件运行程序,并查看内部数据存储器的状态。4.运行程序,排除程序错误。

5.记录实验结果并分析。

C语言程序设计实验报告2

实验2 流程控制实验 2.1 实验目的 (1)掌握复合语句、if语句、switch语句的使用,熟练掌握for、while、do-while三种基本的循环控制语句的使用,掌握重复循环技术,了解转移语句与标号语句。 (2)熟练运用for、while、do-while语句来编写程序。 (3)练习转移语句和标号语句的使用。 (4)使用集成开发环境中的调试功能:单步执行、设置断点、观察变量值。 2.2 实验内容及要求 2.2.1.源程序改错 下面是计算s=n! 的源程序,在这个源程序中存在若干语法和逻辑错误。要求在计算机上对这个例子程序进行调试修改,使之能够正确完成指定任务。例如,8!=40320。 1 #include 2 int main() 3 { int i,n,s=1; 4 printf("Please enter n:"); 5 scanf("%d",n); 6 for(i=1,i<=n,i++) 7 s=s*i; 8 printf("%d! = %d",n,s); 9 } 10 return 0; 解答: (1)错误修改: 1)输入字符格式错误,正确形式为: scanf(“%d”,&n); 2)return 0;与}的相对位置错误,正确形式为: return0; } (2)错误修改后的程序: #include int main() { int i,n,s=1; printf("Please enter n:"); scanf("%d",n); for(i=1,i<=n,i++) s=s*i; printf("%d! = %d",n,s); return 0; } (3) 运行结果: 图1 2.2.1源程序改错测试图 2.2.2.源程序修改替换 (1)修改第1题,分别用while和do-while语句替换for语句。

大学程序设计基础实验报告 (2)

**大学程序设计基础实验报告 实验名称:实验三分支结构 实验目的: 1、掌握IF-ELSE语句使用。 2、掌握ELSE-IF语句使用。 3、熟悉SWITCH语句使用。 实验内容: 在本地电脑中新建一个文件夹,用于存放C程序,文件夹的名字要求是“学号姓名-实验序号”,如E:\ 1920115555张三-03。启动C-Free,完成如下各题。 1、编程题:输入参数a,b,c,求一元二次方程ax2+bx+c=0的根(①a、b、c都为0,②a 和b为0,c不为0,③a为0,b不为0,c任意,④a不为0,且a、b、c满足b2-4ac ≥0,⑤a不为0,且a、b、c满足b2-4ac<0)。 2、编程题:输入职工的月薪salary,计算并输出应缴纳的个人所得税tax。tax=rate * (salary –850),rate的计算方式如下: 当salary <= 850,则rate = 0; 当850 < salary <= 1350,则rate = 5%; 当1350 < salary <= 2850,则rate = 10%; 当2850 < salary <= 5850,则rate = 15%; 当salary > 5850,则rate = 20%;。 3、编程题:根据输入的3个边长a、b、c,判断它们是否能构成三角形,若能构成三 角形,则进一步判断此三角形是哪种类型的三角形(等边三角形、等腰三角形、直角三角形和一般三角形。等腰直角算作等腰)。 4、编程题:输入一个形式如“操作数运算符操作数”的表达式,对2个整数进行乘、 除或求余运算。【请分别用if语句和switch语句实现此题功能】 上交作业的方法: 1.将程序代码及注释和运行程序的窗口复制到实验结果下方对应的题号上,并把这 次实验上机操作中遇到的问题及解决方法、心得等填好完成实验报告。 2.保存以上所有按要求已调试通过,并形成.c(或.cpp)和.exe文件到以自己的“学 号姓名-03”命名的文件夹中,并将以自己的“学号姓名”命名的文件夹压缩后上 交到ftp://10.172.250.252:1161中的“作业上传”文件夹下的“报告上交02”文件 夹下的子文件夹“源文件压缩上交”中,同时把以“学号姓名-03”命名的word 文档上交到“报告上交03”文件夹下的另一子文件夹“word文件上交”中。 特别提醒:每次上传的文件名一定要是“学号姓名-实验序号. doc”(如1720115555张

实验一简单程序设计实验

实验一:简单程序设计实验 (1)编写一个 32 位无符号数除法的程序,要求将存放在 NUM1 中的 32 位无符号数与存放 在 NUM2 中的 16 位无符号数相除,结果存放在 NUM3 和 NUM4 中。 程序流程图略。 参考源程序: DATA SEGMENT NUM1 DD 2A8B7654H NUM2 DW 5ABCH NUM3 DW ? NUM4 DW ? DATA ENDS CODE SEGMENT ASSUME DS:DATA, CS:CODE START: MOV AX,DATA ;数据段寄存器初始化 MOV DS,AX MOV AX, WORD PTR NUM1 MOV DX, WORD PTR NUM1+2 DIV NUM2 MOV NUM3,AX MOV NUM4,DX MOV AH,4CH ;正常返回DOS 系统 INT 21H CODE ENDS END START (2)编写一个拆字程序。要求将存放在 ARY 单元的 2 位十六进制数 X 1X 2 拆为 X 1 和 X 2 两 部分,并以 0X 1 和 0X 2 的形式分别存入 ARY+1 和 ARY+2 单元中。 程序流程图略。 参考源程序: DATA SEGMENT ARY DB 2AH,?,? DATA ENDS CODE SEGMENT ASSUME DS:DATA, CS:CODE START: MOV AX,DATA MOV DS,AX MOV SI,OFFSET ARY ;取ARY 的偏移地址 MOV AL,[SI] ;取16进制数至AL

MOV BL,AL AND AL,0F0H ;取16进制数的高四位,即X1 SHR AL,4 MOV [SI+1],AL ;存0X1 MOV AL,BL AND AL,0FH ;取16进制数的低四位,即X2 MOV [SI+2],AL ;存0X2 MOV AH,4CH INT 21H CODE ENDS END START

实验二顺序程序设计

实验二简单C程序设计—顺序结构 一、实验目的 1.掌握C语言中使用最多的一种语句――赋值语句的使用方法。 2.掌握各种类型数据的输入输出方法,能正确使用各种格式输出符。 二、实验内容和步骤 1.掌握各种格式输出符的使用方法。 #include int main() {int a,b; float d,e; char c1,c2; double f,g; long n,m; unsigned p,q; a=61;b=62; c1='a';c2='b'; d=3.56; e=-6.87; f=3156.890121;g=0.123456789; m=50000;n=-60000; p=32768;q=40000; printf("a=%d,b=%d\nc1=%c,c2=%c\nd=%6.2f,e=%6.2f\n",a,b,c1,c2,d,e); printf("f=%15.6f,g=%15.12f\nm=%ld,n=%ld\np=%u,q=%u\n",f,g,m,n,p,q); return 0; } (1)运行此程序并分析运行结果。 a,b都是以整型输出。C1c2以字符型输出。d,e以浮点型输出,数据长度都为6位,所以前面都有空格占位,加上小数点,数字或负号一共6位。 f以浮点型输出,数据长度为15位,小数位有6位,故前面有四个空格;g以浮点型输出,数据长度为15位,小数位有12位,故前面有一个空格;m,n都以长整型输出;p,q都以无字符型输出。 (2)在此基础上,修改程序的第9-14行: a=61;b=62; c1=a;c2=b; f=3156,890121;g=0.123456789; d=f;e=g; p=a=m=50000;q=b=n=-60000; 运行程序,分析运行结果。 把a,b的值依次赋给c1,c2,c1,c2的数据类型为字符型,根Ascll代码可知61对应=,62对应>;将f,g的值赋给d,e,d,e的数据类型为浮点型,且数据长度为6位,小数位有2位,故得出此结果;按照运算符的结合顺序可知程序把50000依次赋给了m,p,a,把-60000

C++简单程序设计(2.1)(C++实验报告二)-17春

实验二 C++简单程序设计(2) 班级软件一班16-1 学号16044101 姓名安昭先 一、实验目的: 理解C++语言在非面向对象方面对C语言功能的扩充与增强。 二、实验要求: 1.熟练使用VC6.0集成开发环境创建项目文件。 2.理解C++语言在非面向对象方面对C语言功能的扩充与增强。 3.掌握C++的输入输出、const修饰符、函数原型、内联函数等内容。 三、实验内容与程序代码: 1.编写程序,要求用循环结构输出如下图案。 ******* ***** *** * 程序源代码: #include using namespace std; int main() { int i; int j; for(i=0;i<5;i++) { for(j=0;j

for(j=0;j<8-(2*i)+1;j++) { cout<<"*"; } cout<<" "< using namespace std; inline float square(float r); inline float square1(float r); const float PI=3.14159;

int main() { float r,s; cin>>r; s=square(r); cout<

《计算机硬件技术基础》实验答案程序

实验一:简单程序设计实验 (1)编写一个 32 位无符号数除法的程序,要求将存放在 NUM1 中的 32 位无符号数与存放在 NUM2 中的 16 位无符号数相除,结果存放在 NUM3 和NUM4 中。 程序流程图略。参考源程序: DATA SEGMENT NUM1 DD 2A8B7654H NUM2 DW 5ABCH NUM3 DW ? NUM4 DW ? DATA ENDS CODE SEGMENT ASSUME DS:DATA, CS:CODE START: MOV AX, DATA ;数据段寄存器初始化 MOV DS, AX MOV AX, WORD PTR NUM1 MOV DX, WORD PTR NUM1+2 DIV NUM2 MOV NUM3, AX MOV NUM4, DX MOV AH, 4CH ;正常返回DOS系统 INT 21H CODE ENDS END START (2)编写一个拆字程序。要求将存放在 ARY 单元的 2 位十六进制数 X1X2 拆为 X1 和X2 两部分,并以 0X1 和 0X2 的形式分别存入 ARY+1 和 ARY+2 单元中。 程序流程图略。参考源程序: DATA SEGMENT ARY DB 2AH, ?, ? DATA ENDS CODE SEGMENT ASSUME DS:DATA,CS:CODE START: MOV AX,DATA MOV DS,AX MOV SI,OFFSET ARY ;取ARY的偏移地址 MOV AL,[SI] ;取16进制数至AL

AND AL,0F0H ;取16进制数的高四位,即X1 SHR AL,4 MOV [SI+1],AL ;存0X1 MOV AL,BL AND AL,0FH ;取16进制数的低四位,即X2 MOV [SI+2],AL ;存0X2 MOV AH, 4CH INT 21H CODE ENDS END START

实验2顺序结构程序设计

《C语言程序设计》实验报告 ---------------------------------------------------------------------------------------------- 实验2顺序结构程序设计 一、实验目的 (1)掌握C语言中赋值语句的使用方法。 (2)掌握各种类型数据的输入与输出方法,能正确使用各种格式转换符。(3)掌握C语言的顺序结构程序设计。 二、实验内容与步骤 1.输入程序,观察程序运行结果 (1)输入并运行下面的程序,掌握用scanf()函数输入多个整型数据时,格式说明中无分隔符的正确使用。 /*c2-1.c*/ #include int main() { int i,j; printf("Enter i,j\n"); scanf("%d%d",&i,&j); printf("i=%d,j=%d\n",i,j); return 0; } 总结与反思: 1.printf("Enter i,j\n");语句是对下面的输入语句起提示作用;2. 本题在scanf()语句中,输入两个整数之间可用空格、Tab或回车键分隔,但用其他的分隔符不能得到正确的值。 (2)输入并运行下面的程序,掌握用scanf()函数输入多个整型数据时,格式说明中逗号分隔符的正确使用。 /*c2-2.c*/ #include int main() { int i,j; printf("Enter i,j\n");

scanf("%d,%d",&i,&j); printf("i=%d,j=%d\n",i,j); return 0; } 总结与反思:本题在scanf()语句中,输入两个整数之间必须用逗号分割,用 其他的分隔符时第一个变量能得到正确的值,第二个变量不能得到正确的值。(3)输入并运行下面的程序,掌握格式scanf()函数中普通字符按原样输入的使用方法。 /*c2-3.c*/ #include int main() { float i,j; scanf("i=%f,j=%f",&i,&j); printf("i=%.3f,j=%.3f\n",i,j); return 0; } 总结与反思:用scanf()函数输入内容,必须严格按照格式说明部分进行键入。 (4)输入并运行下面的程序,如果scanf()函数中格式与变量类型的对应关系错误,将不能得到正确的结果。 /*c2-4.c*/ #include int main() { int i,j; scanf("%f,%f",&i,&j); printf("i=%d,j=%d\n",i,j); return 0; } 总结与反思:1.与int(基本整型)对应的应是%d,与float(浮点型)对应的是%f。 2.scanf()函数格式说明应与定义的变量类型一致! (5)输入一个大写字母A,将它转换为小写字母a,输出小写字母a及对应的ASCII码值97,要求输出格式为“j=a,j=97”,完善下面程序中的输出语句。 /*c2-5.c*/ #include int main() { int j;char i; scanf("%c",&i); j=i+32; printf("j=%c,j=%d\n",j,j);

几个概念的拆字释义发展与协调

公司诉讼 理由 是什么? 几个概念的拆字释义 卜安淳 一、道 从字形结构看,道是首+之(辵),首是人之头,可代指人,或指人群之首领;之(辵)指行路。(《说文》:“辵,乍行乍止也。从彳从止。”)因此,道应该是指的是人行之路,人行于路,或人之首领带领人们行于路。最后一义的“道”后来写成“導”(导),意为引导。道的本义是地上人行之路(《说文》:“道,所行道也。”),后引申为人的事业之路、人生之路之类,再抽象引申,则指天地运行之路,即天地之道,甚至被用于超于天地的自然规律,即自然之道。 《汉书·董仲舒传》中说:“道者,所由适于治之路也。”这是指道是治理天下(社会)的途径。《广韵》中解释“道”:“理也,众妙皆道也,合三才万物共由者也。”这是说道是宇宙万物的合适的道理。《周易·系辞》中说:“一隂一阳之谓道。”“立天之道,曰隂与阳。立地之道,曰柔与刚。立人之道,曰仁与义。”由此,关于道的论说越来越丰富,越来越抽象,所以《书·书大禹谟》中说“道心惟微”。 老子把“道”说得特别奇妙虚玄,上升到天地之母的地位,是宇宙间至高无上的根本原则。《道德经》第二十五章:“有物混成,先天地生。寂兮寥兮,独立不改,周行而不殆,可以为天下母。吾不知其名,字之曰道,吾强为之名曰大。大曰逝,逝曰远,远曰反。故道大天大地大王亦大。域中有四大,而王居其一焉。人法地,地法天,天法道,道法自然。”道法自然,应该是指道的法则没有源头,自然生成。 二、理

理字是玉+里。里之本义是居。(《说文》:“里,居也。从田从土。”)居而弄玉,应该指雕琢玉器,所以《說文》解释说:“理,治玉也。”玉石多纹理,治玉讲究辨其形状纹理,因其势而赋形成器,所以,治玉之理引申为事物之理。《说文》徐注说:“物之脈理,惟玉最密,故从玉。”这是解释“理”字表述物理、道理之成因。又说:“治玉治民皆曰理。”这是介绍“理”字引申扩充后的字义。 从古至今,理是指事物发展的规律、条理还是抽象的观念、精神?学界始终争论不休。《管子·心术》说:“理也者,明分以谕义之意也”。孟子认为理就是人心所具有的道德。《庄子》有所谓“天理”、“万物之理”,应该是指自然之理和事物变化之理。其《善性篇》把理和道联系起来:“道,理也”。荀子则提出了“事理”、“物理”等概念,强调用天地之理治理天地万物。韩非子强调不同事物具有不同规律,“万物各异理”,方圆、短长、粗细、坚脆、大小、轻重、白黑之类就是物之理。《吕氏春秋》则认为“理也者,是非之宗也”,把理视作判断是非的根据。董仲舒讲理由天授,称为“天理”。王充则针锋相对,讲“物气之理”,认为天人感应论是“失道理之实”。魏晋时期的人有“辨名析理”癖好。王弼说:“事有归,理有会”,“不能辨名则不可与言理”。欧阳建认为,“名逐物而迁,言因理而变”。宋代人专门探讨理的问题,形成程朱理学,哲学研究一时蔚为大观。 讨论理,我们还应该涉及伦理。理作为事理,一方面是自然事物的事理,另一方面是社会事物的事理。这社会事物的事理之中,很重要的内容就是伦理。且道德伦理往往连在一起,甚至伦理就成了道德,所以,道德之学成了伦理之学。但实际上,伦理和道德应该是有区别的。伦理应该是人伦之理,是关于人与人区别和联系的事理。 三、德 “德”字可去掉“彳”,写成“悳”。悳,直+心,直心也,心直也。心直即是德。彳是行的左半,行之右半为亍。《康熙字典》引《唐韻》、《集韻》?说:“小步也。左步爲彳,右步爲亍,合之則爲行字。”心直+彳,是指直心行路,引申为直心做人,直心做事,社会人生之中秉持直心。(呵呵,德字彳旁,

实验二+顺序结构程序设计

实验二顺序结构程序设计 一、实验学时 2学时 二、实验目的 (一)掌握简单结构的C语言程序设计; (二)掌握输入、输出函数的正确使用。 三、预习要求 熟悉并掌握scanf()函数,printf()函数,getchar()函数和putchar()函数的语法格式,比较它们在使用时的异同。 四、实验内容 (一)输入并运行下面的程序,掌握scanf()函数输入多个整型数据时,格式说明中无分隔符的正确使用。 main ( ) { int i,j; scanf("%d%d",&i,&j); printf("i=%d,j=%d\n",i,j); } 注意:运行程序时,当调用格式输入函数scanf()时,首先返回用户屏幕,等待用户从键盘上输入两个整数并回车,程序才能继续向下执行。 从键盘上为变量i,j赋值32和18时,两个整数之间可用空格、Tab或回车键分隔。试一试,用其它的分隔符输入时各个变量,能否得到正确值。 (二)输入并运行下面的程序,观察与上一程序的区别。注意:printf("Enter i,j\n");语句对下面的输入语句起提示作用。 main ( ) { int i,j; printf("Enter i,j\n"); scanf("%d%d",&i,&j); printf("i=%d,j=%d\n",i,j); } 注意:运行程序时,先执行printf("Enter i,j\n");,当调用格式输入函数scanf()时,返回用户屏幕,屏幕上会有提示Enter i,j,等待用户从键盘上输入两个整数。 (三)输入并运行下面的程序,掌握scanf()函数输入多个整型数据时,格式说明中逗号分隔符的正确使用。 main ( ) { int i,j; printf("Enter i,j\n"); scanf("%d,%d",&i,&j); printf("i=%d,j=%d\n",i,j); }

顺序程序设计:拆字和拼字

微处理器原理课实验日志 一、实验题目:顺序程序设计:拆字和拼字 二、实验结果 本次实验目的是为了掌握顺序程序的编写方法,掌握拆字和拼字的方法,学会编写和调试程序的过程和方法以及掌握C51编写方法。 实验一、实现拆字功能,阅读理解程序并完成程序的填空。最后运行程序,验证是否正确。程序如下: ORG 0000H AJMP START ORG 0100H START: MOV DPTR,#0200H ;指定的字节 MOVX A,@DPTR MOV B,A;数据暂存 SW AP A(1);A中数据高位和低位交换 ANL A,#0FH ;屏敝高位 INC DPTR MOVX @DPTR,A INC DPTR MOV A,B ANL A,#0FH (2) MOVX @DPTR,A LOOP: SJMP LOOP END 运行程序,然后对X:0200H赋值,点击分步运行,就能观察到0201H、0202H值的变化。结果如下:

实验二、学习用C语言编写拆字程序,理解XBYTE,DBYTE等语句的含义。程序如下: #include"reg51.h" #include"absacc.h" void main() { XBYTE[0x0200]=0x69; XBYTE[0x0201]=XBYTE[0x0200]; XBYTE[0x0201]>>=4; ; 将0201H中的数右移4位 XBYTE[0x0202]=XBYTE[0x0200]; XBYTE[0x0202]&=0x0f; } 运行结果如下: 实验三,拼写程序,题目为:分别编写汇编语言程序和C程序,把片内RAM30H 、31H两个字节的低位分别送入32H的高位和低位,

实验一 顺序结构程序设计

实验一顺序结构程序设计 一、实验目的 1. 掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用的格式转换符。2 2. 学会使用有关算术运算符,以及包含这些运算符的表达式。 3. 掌握数据的输入输出方法,能正确使用各种格式转换符。 二、实验学时数 4学时 三、实验内容和步骤 1..启动TC 2.0编译系统,进入编辑界面,建立一个新文件。文件名自定。(要求每个学生建立一个自己的文件夹,每个同学的练习和作业的源程序命名形成系列,便于检查、查找和考核)。 利用一个小程序验证常量、变量的使用方法与特点,验证数据类型和表达式值的计算规则及其输出格式。 参考程序: main( ) { char c1,c2; c1=97;c2=98; printf(″%c,%c\n″,c1,c2); } (1)在此基础上加入以下printf语句,并运行。 printf(″%d,%d\n″,c1,c2); (2)将第二行改为以下语句,并运行。 int c1,c2; (3)将第三行改为以下语句,并运行。 c1=300;c2=400; 分别写出三次运行结果。 2.编程并调试运行 (1)编程序,用getchar函数读入两个字符给c1、c2,然后分别用putchar函数和printf 函数输出这两个字符。上机运行此程序,比较putchar和printf函数输出字符的特点。 (2)试编写程序,从键盘输入一个大写字母,要求改用小写字母输出。 3.写出下面程序的运行结果: 1)main() { int x=1,y=1,z=1; y=y+x; x=x+y; printf(″%d\n″,x); printf(″%d\n″,y); } 2) main()

实验二选择结构程序设计 实验报告

C语言程序设计与问题求解实验报告 实验二选择结构程序设计 一、实验目的 1.正确使用关系表达式和逻辑表达式表示条件; 2.掌握选择语句if-else和switch语句的使用方法; 3.掌握分支结构程序设计。 二、实验内容 1. 选择结构编程示例 year是闰年,即year能被4整除但不能被100整除,或year能被400整除。从键盘读入一个年份,然后输出其是否为闰年。具体代码如下: #include int main() { int year; printf("请输入年份:"); scanf("%d",&year); if ((year%4==0 && year%100!=0)||(year%400==0)) { printf("闰年!"); } else { printf("不是闰年!"); } return 0; } 运行结果:

2.分析并修改下面程序错误,使之能够正常运行。 错误代码一:下面的这个程序是当a和b的值相等的情况下输出“a和b相等”,而a与b的值不相等的话无输出。 #include void main() { int a=5,b=6; /* 或int a=5, b=5 ;*/ if (a==b); { printf("a和b相等\n"); } } 错误点: if (a==b)后有了分号“;”表示这条语句已执行完毕,所以无论a、b是否相等都会输出"a和b相等"。 修改后: #include void main() { int a=5,b=6; /* 或int a=5, b=5 ;*/ if (a==b) printf("a和b相等\n"); } 错误的代码二:下面的这个程序是当a和b的值相等的情况下a与b的值同时增加1,而a与b的值不相等的话,二者的值保持不变。 #include void main() { int a=5; /* 或int a=6*/ int b=6; if (a==b) a++; b++;

3、顺序程序设计作业

实验3 顺序程序设计 一、实验目的 1.学习编写简单的C程序。 2.在编写和调试程序的过程中,培养发现问题、分析问题、解决问题的能力。 3.掌握程序的基本组成:说明数据、输入数据、加工数据、输出数据。 二、实验预备知识 1.C语言的各种数据类型; 2.C语言的各种运算符和表达式; 3.C程序中各种数据的输入和输出。 三、实验内容 编写程序,实现以下功能。 1.由键盘任意输入一个圆的半径,计算其面积。 2.由键盘任意输入一个三角形的3条边,计算其面积。 3.由键盘任意输入一个长方体的长、宽、高,计算体积。 4.由键盘任意输入一个圆柱的半径和高,计算其底面积、表面积、体积。 5.由键盘任意输入4门课程的成绩,计算它们的平均成绩。 6.由键盘任意输入一个数字字符(‘0’-‘9’),将其转换为数字输出。 7.由键盘任意输入1个大写字母,将其转化为小写字母后输出。 8.由键盘任意输入银行存款本金、存款年利率、存款年限、利息税,计算本金和利息总和。9.由键盘任意输入2个数据,将它们交换后输出。 10.由键盘任意输入1个4位数整数,分别输出其中的个位、十位、百位、千位。 四、实验分析 1.分析并总结不同数据类型的数据,它们的表示形式、表示范围、机内所占字节的数量、可以进行的运算的不同。 2.当表达式中出现了多种运算符时,应特别注意它们的优先级和结合性。 3.正确使用格式输入和输出函数中的各种格式符。 4.掌握顺序程序设计的方法。 五、实验报告 1.在实验过程中,将每一个程序的源代码保存,如1.C、2.C、3.C、。。。。。。、10.C。 2.建立本人学号和姓名为名称的文件夹,如:2014211234王军-3,将每一个程序的源代码存入此文件夹(删除其他所有文件,只保留.C 的源程序文件,并且压缩)。 3.将此文件压缩文件上传到:学生交作业\2015春C语言程序设计作业\第3次作业\机械14-1。

程序设计实验报告2

《C语言程序设计》实验报告 实验名称:数组应用编程 系别: 计算机系专业:计算机科学与技术班级:五班 姓名: 学号: 实验日期: 2011 年 11 月 25 日 教师审批签字:

实验7 C数组应用编程 ⒈实验目的 ⑴掌握一维数组和二维数组定义、赋值和输入输出的方法。 ⑵掌握字符数组和字符串函数的使用。 ⒉实验内容或实验题目 A:修改调试题目: 调试下列程序,使之具有如下功能:输入10个整数,按每行3个数输出这些整数,最后输出10个整数的平均值。写出调试过程。 #include “stdio.h” void main() { int i,n,a[10],av; for(i=0;i+键终止程序的运行,返回到T C环境。 B、编程题目:(题目⑴、题目⑵为一组,题目⑶为一组,题目⑷为一组。 每个同学每组都必须完成1题) 要求:每道题目分别书写程序,试运行(如何输入,结果如何)。 题目⑴:从键盘输入10个整数存入数组,找出其中最大和最小值,并输出。 题目⑵:从键盘输入一个字符串,编写程序将该字符串逆序。

汇编实验2 顺序程序设计

汇编实验二顺序结构程序设计 实验目的: (1)掌握汇编语言程序上机过程。 (2)掌握顺序结构程序调试的方法。 实验内容: 调试查表程序 内存中自TABLE开始的七个单元中连续存放着自然数0~6的立方值(立方值表), 任一个数X(0≤X≤6)在FIRST单元中,要求查表找出X的立方值,存SECOND 单元。 准备工作: 1.进入D: 2.建立一个文件夹hb, 即d:\hb 3.将MASM和LINK复制到该文件夹中 4.单击“开始”-“程序”-“附件”-“命令提示符” 5.输入“d:\” 6.输入“cd hb” 操作步骤: 1.输入源程序: EDIT d:\hb\cb.asm 在EDIT编辑环境File菜单下选择Save存盘,选择Exit退出编辑环境

2.汇编源程序 A>MASM CB↙ Microsoft (R) Macro Assembler Version 5.10 Copyright (C) Microsoft Copr 1981,1988 All rights reserved. Object filename [CB.OBJ]:_↙ Source listing [NUL.LST]:↙ Cross-reference [NUL.CRF]:↙ 51394+389950 Bytes symbol space free 0 Warning Errors 0 Severe Errors A> 3.连接目标程序 A>LINK Microsoft (R) Overlay Linker Version 3.64 Copyright (C) Microsoft Corp 1983-1988. All rights reserved. Object Modules [.OBJ]:CB↙ Run File [NUL.MAP]:↙ Libraries [.LIB]: ↙ 显示0个错误才能进行下一步LINK操作 4.执行程序 A>B 没有任何结果输出,原因是程序中没有安排显示输出,结果保存在内存单元中。 5.用DEBUG调试并查看运行结果 A>DEBUG CB.EXE

C程序设计上实验报告(完整版)

C语言程序设计上机实验报告 学院:机械工程学院 班级:机自161213 姓名:刘昊 学号:20162181310 实验时间:2017年3月6号 任课老师:张锐

C语言程序设计上机实验报告 实验一 一、实验名称: C程序的运行环境和运行C程序的方法 二、实验目的:了解在C编译系统上如何编辑、编译、连接和运行一个C 程序 三、实验内容: (1). 输入并运行一个简单的C程序。 (2). 设计程序,对给定的两个数求和。 (3). 设计程序,对给定的两个数进行比较,然后输出其中较大的数。 四、源程序代码: 代码1: 运行结果1:

程序分析1: 该程序用来判断所输入的整数是否为一个素数,如果一个数能被除了1和它本身整除,还能被其它数整除,那么它就不是一个素数,因此,用for 循环来进行整除过程的简写。 代码2: 运行结果2:

程序分析2: 简单的使用printf()和scanf()函数进行简单的数据运算。代码3: 运行结果3:

程序分析3: 使用if语句进行判断。 五.实验总结 C语言程序设计上机实验报告 实验二 一、实验名称:顺序结构程序设计 二、实验目的:正确使用常用运算符(算术运算符、赋值运算符)的用法, 熟练掌握算术运算符及其表达式,逻辑运算符和逻辑表达式。 三、实验内容: (1). 编写程序,实现小写字母转大写。

(2). 编写程序,实现输入两个不同类型数据后,经过适当的运算(加、减、乘、除)后输出。 (3). 编写程序,计算三角形面积、立方体的体积和表面积、圆的面积和周长。 (4). 编写程序,实现单字符getchar和putchar输入输出。 (5). 编写程序,实现十进制、八进制、十六进制不同数制的输出。 四、源程序代码 代码1: 运行结果1: 程序分析1:

拆字程序,拼字程序

单片机实验报告 实验项目名称:拆字程序,拼字程序 姓名:学号: 一、实验目的 1、掌握基本的51汇编程序书写,编译; 2、熟悉51指令的运用; 3、掌握内RAM,外RAM区域数据操作。 二、实验内容及要求 将20H单元的二进制代码转化为ASCLL码,保存在21H,22H单元中;将7030H,7031H中的二进制代码压缩后存放于7032H中。 三、实验步骤

(a )二进制代码转化为ASCLL 码 (b) 二进制代码压缩 四、主要代码 (1)二进制代码转化为ASCLL 码 ORG 0000H SJMP MAIN ORG 0030H MAIN: MOV A,20H ANL A,#0FH CJNE A,#10,NEXT1 NEXT1: JNC NEXT2 ADD A,#30H

SJMP DONE1 NEXT2: ADD A,#37H DONE1: MOV 22H,A MOV A,20H ANL A,#0F0H SWAP A CJNE A,#10,NEXT3 NEXT3: JNC NEXT4 ADD A,#30H SJMP DONE2 NEXT4: ADD A,#37H DONE2: MOV 21H,A SJMP $ (2) 二进制代码压缩 ORG 0100H MAIN: MOV DPTR,#7030H MOVX A,@DPTR ANL A,#0FH SWAP A MOV B,A INC DPTR MOVX A,@DPTR ANL A,#0FH ORL A,B INC DPTR MOVX @DPTR,A SJMP $ END 五、实验结果分析及思考 1.二进制代码转化为ASCLL码仿真结果:

03实验三 顺序结构程序设计_答案

湖北工业大学实验报告 课程名称:C语言程序设计实验内容实验三顺序结构程序设计 学院:工程技术学院专业班级: 姓名:学号:教师:成绩: 一、实验目的 1、掌握赋值语句、表达式语句、函数调用语句、复合语句、空语句的使用方法。 2、掌握输入、输出函数的格式及格式符的使用。掌握文件包含预处理命令的使用方法。 3、掌握数据的输入、存储、输出之间的关系。 4、掌握顺序程序设计的逻辑结构,掌握数据结构的功能。 二、预习作业 1、程序填空题:试在括号中填入正确的答案,并上机验证程序的正确性。(1) 输入大写字符A,则输出为( )。(文件名:ex3_1.c) (#include ) main( ) { ( char ch,chr; ) chr=(ch= getchar( )) main( ) { ( long int) a =80000 , b = 60000, c, d; ( c) = ( a - b ,a + b ); ( d) = (a + b,a - b); printf(“%ld ,%ld\n”, c, d); }

2、程序改错并上机调试运行 (1)更改下列程序中的位运算符和逻辑运算符,能使变量d、e输出的结果为零。 (文件名:ex3_3.c) #include main( ) { int a = 8, b = 2,c = 3,d,e; /********** found **********/ d = (a % c & ^ a % c); e = a / c - b || && c + + ; printf (“%d, %d\n”, d, e); } (2) 查找改程序中的错误,并修改正确。(文件名:ex3_4.c) #include main( ) { int a = 4, b = 6, c= 3; /********** found **********/ a = a + b = b + c ; b = a < b ?a :b < c ?b :c printf(“%d,%d\n”, a, b); } 3、读程序写结果并上机验证其正确性 (1) 变量 a,b,c,d如下,将变量a以各种格式输出并输出表达式c+a,d – 32的值。(文件名:ex3_5.c) #include main( ) 结果为:(-1,4294967295,37777777777,ffffffff ) { int a = - 1 , b = 2 ; C,B char c = …D?,d = …b?; b = b + c;//??? printf (“%d, %u,%o,%x \n ”,a,a,a,a ); printf (“%c,%c \n ”,c + a, d - 32); } (2) 运行程序后输入”a空格b空格c回车”后,输出结果是(a ,b )。(文件

实验二MATLAB程序设计含实验报告

实验二 M A T L A B 程序设计 一、 实验目的 1.掌握利用if 语句实现选择结构的方法。 2.掌握利用switch 语句实现多分支选择结构的方法。 3.掌握利用for 语句实现循环结构的方法。 4.掌握利用while 语句实现循环结构的方法。 5.掌握MATLAB 函数的编写及调试方法。 二、 实验的设备及条件 计算机一台(带有MATLAB7.0以上的软件环境)。 M 文件的编写: 启动MATLAB 后,点击File|New|M-File ,启动MATLAB 的程序编辑及调试器 (Editor/Debugger ),编辑以下程序,点击File|Save 保存程序,注意文件名最好用英文字符。点击Debug|Run 运行程序,在命令窗口查看运行结果,程序如有错误则改正 三、 实验内容 1.编写求解方程02=++c bx ax 的根的函数(这个方程不一定为一元二次方程,因c b a 、、的不同取值而定),这里应根据c b a 、、的不同取值分别处理,有输入参数提示,当0~,0,0===c b a 时应提示“为恒不等式!”。并输入几组典型值加以检验。 (提示:提示输入使用input 函数) 2.输入一个百分制成绩,要求输出成绩等级A+、A 、B 、C 、D 、E 。其中100分为A+,90分~99分为A ,80分~89分为B ,70分~79分为C ,60分~69分为D ,60分以下为E 。 要求:(1)用switch 语句实现。 (2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。 (提示:注意单元矩阵的用法) 3.数论中一个有趣的题目:任意一个正整数,若为偶数,则用2除之,若为奇数,则与3相乘再加上1。重复此过程,最终得到的结果为1。如: 21 3105168421 63105168421 运行下面的程序,按程序提示输入n=1,2,3,5,7等数来验证这一结论。 请为关键的Matlab 语句填写上相关注释,说明其含义或功能。 4. 编写一个函数,计算下面函数的值,给出标量x 的值,调用该函数后,返回y 的值。 function [y]=myfun1(x) 选择一些数据测试你编写的函数。 5. 编写一个函数求向量x 中元素的平均值、最大值、最小值、均方根值。 %classic "3n+1" problem from number theory. while 1 n=input('Enter n,negative quits:'); if n<=0 break end a=n; while n>1 if rem(n,2)==0

微处理器实验报告顺序程序设计:拆字和拼字

微处理器原理与应用实验日志 实验题目: 顺序程序设计:拆字和拼字 实验目的: 1、掌握顺序程序编写方法 2、掌握拆字和拼字方法 3、学会编写和调试程序的过程和方法 4、掌握C51编程方法。 实验要求: 1、阅读、运行并调试已给的程序; 2、模仿已给程序分别汇编程序和C程序完成拼字程序; 实验主要步骤: 1、启动计算机,进入Keil C51的集成开发环境; 2、根据已给程序分别编辑汇编程序和C程序; 3、编辑完成以后对程序进行编译,生成目标代码; 4、运行、调试目标代码和进行结果检查; 5、根据要求分别编写汇编程序和C程序; 6、编译,生成目标代码,分别采用单步和宏单步运行程序,观察有关单元中的内容的变化; 7、修改内存单元中的内容在观察存储单元内容的变化; 实验结果: 汇编程序: ORG 0000H AJMP START ORG 0100H START: MOV A,30H ANL A,#0FH SW AP A MOV 32H,A MOV A,31H ANL A,#0FH ORL 32H,A SJMP $ END

#include"reg51.h" #include"absacc.h" void main() { DBYTE[0x30]=0x12; DBYTE[0x31]=0x34; DBYTE[0x30]<<=4; //20 DBYTE[0x31]&=0x0f; //04 DBYTE[0x32]=DBYTE[0x30]|DBYTE[0x31]; } 心得体会: 在本次实验中,发现输入数据有两种方法,一种是在程序中直接赋值,另一种是直接双击0x0200这个单元,就可以对它赋值,最后运行结果一样,但后一种明显改动数据方便,这让我意识到了优化程序的重要性。在第三个实验中,对用C语言编写的程序,不知道或语句怎么写,在请教老师之后得以解决,但是,在编译程序时没有问题,运行程序出现了错误。一直没有找到问题,在最后重新建立工程,文件等必要步骤之后,就完成了程序的运行。

相关文档
最新文档