字符及字符串输入输出与顺序程序设计实验
顺序结构的程序设计
(3)在用%c格式输入字符时,空格和转义字符 都作为有效字符输入;
(4)在输入数据时,遇以下情况时该数据认为 结束:
• 遇空格,或按TAB或回车键; • 按指定的宽度结束; • 遇非法输入。
§3.4 顺序结构程序设计
从键盘输入一个大写字母,要求改用小写字 母输出。
#include <stdio.h> void main() {
2.若变量已正确定义,要将a和b中的数进行交 换,下面不正确的语句组是:
A.a=a+b,b=a-b,a=a-b; B. t=a,a=b,b=t;
C.a=t;t=b;b=a;
D.t=b;b=a;a=t;
3.写出输出结果: x=5.16894; printf(“%f\n”,(int)(x*1000+0.5)/(float)1000);
注意: 在使用这两个函数时,必须包含头文件 stdio.h。
#include “stdio.h” void main() {
char c; c=getchar(); putchar(c); }
#include<stdio.h> void main() {
char ch1,ch2,ch3; ch1=getchar();ch2=getchar();ch3=getchar(); putchar(ch1);putchar(′′);putchar(ch2); putchar(′′);putchar(ch3); putchar(′\n′); utchar(′\101′);putchar(66);putchar(‘\″’); putchar(′\n′); }
• %-m.nf:同上,左对齐。 (8)e格式符:以指数形式输出实数。 • %e:输出位数13位(正数)或14位(负
实验项目:实验一 最简单的C程序设计
实验项目:实验一最简单的C程序设计实验项目:实验一最简单的c程序设计实验教学实验项目:实验一最简单的c程序设计(课程:C语言编程学时:2)一、实验目的1.掌握:使用标准输入/输出函数的常见数据类型的输入/输出方法。
2.初步培养编制程序框图和源程序、准备测试数据以及实际调试程序的独立编程能力。
3.掌握顺序结构程序设计的基本思路。
二、实验条件pc和vc++编程环境三、实验内容1.熟悉编程环境。
2.输入并运行C程序3.掌握各种格式转换符的正确使用方法。
4.编程:设定圆半径r=1.5,圆柱体高度h=3,计算圆的周长、面积、表面积、体积和圆柱体体积。
需要使用scanf功能从键盘输入数据(半径和高度),并输出各种计算结果。
输出应有文字说明,小数点后2位。
5.编程:用getchar函数向C1和C2输入两个字符,然后分别用putchar函数和printf函数输出这两个字符。
四、实验步骤编写程序,输入数据并观察结果。
五、实验结果观察结果是否与预期一致。
实验项目:实验二选择结构程序设计第页,共页实验指导书(课程:C语言编程学时:2)一、实验目的1.理解用C语言表达逻辑量的方法(0代表“假”,非0代表“真”)。
2.学会正确使用逻辑运算符和逻辑表达式。
3.熟练掌握if语句和switch语句二、实验条件pc和vc++编程环境三、实验内容1.有一函数:使用scanf函数输入X的值,并找到Y的值。
运行程序,输入x的值(分别为x<1、1≤x<10、x≥10三种情况),检查输出的y值是否正确。
2.给出一个百分制成绩,要求输出成绩等级a、b、c、d、e。
90分以上为a,81~89分为b,71~79分为c,61~69分为d,60分以下为e。
3.输入4个整数并按降序输出。
(x?1)?x?y??2x?1(1?x?10)?3x?11(x?10)?四、实验步骤编写程序,输入数据并观察结果。
五、实验结果观察结果是否与预期一致。
实验项目:实验三循环结构程序设计第页,共页实验指导书(课程:C语言编程学时:4)一、实验目的1.熟悉并掌握用while语句、do while语句和for语句实现循环的方法。
程序设计基础(一)实验
程序设计基础(一)实验实验一上机操作初步(2学时)一、实验方式:一人一机二、实验目的:1、熟悉VC++语言的上机环境及上机操作过程。
2、了解如何编辑、编译、连接和运行一个C程序。
3、初步了解C程序的特点。
三、实验内容:说明:前三题为必做题目,后两题为选做题目。
1、输出入下信息:*************************Very Good*************************2、计算两个整数的和与积。
3、从键盘输入一个角度的弧度值x,计算该角度的余弦值,将计算结果输出到屏幕。
4、在屏幕上显示一个文字菜单模样的图案:=================================1 输入数据2 修改数据3 查询数据4 打印数据=================================5、从键盘上输入两个整数,交换这两个整数。
四、实验步骤与过程:五、实验调试记录:实验二简单的C程序设计(4学时)一、实验方式:一人一机二、实验目的:1、掌握C语言的数据类型。
2、学会使用C语言的运算符及表达式。
3、掌握不同数据类型的输入输出方法。
三、实验内容:说明:前四题为必做题目,后两题为选做题目。
1、输入r1、r2,求出圆形垫片面积。
2、输入华氏温度h,输出摄氏温度c。
3、从键盘输入一个3位整数,将输出该数的逆序数。
4、输入并运行以下程序,分析运行结果。
#include <stdio.h>void main( ){ int i,j;i=8; j=10;printf(“%d,%d\n”,++i,++j);i=8; j=10;printf(“%d,%d\n”,i++,j++);i=8; j=10;printf(“%d,%d\n”,++i,i);i=8; j=10;printf(“%d,%d\n”,i++,i);}5、输入三角形三条边的边长,求三角形的面积。
6、输入3个字符型数据,将其转换成相应的整数后,求它们的平均值并输出。
《C语言程序设计》实验报告
(此文档为word格式,下载后您可任意编辑修改!)《C语言程序设计》实验报告2012~2013学年第二学期班级姓名学号指导教师实验一实验项目名称:C程序的运行环境和运行C程序的方法所使用的工具软件及环境:Visual C++6.0一、实验目的:1.了解在Visual C++6.0环境下如何编辑、编译、连接和运行一个C程序;2.通过运行简单的C程序,初步了解C源程序的特点。
二、预习内容:教材《C语言程序设计教程》第1章。
三、实验内容:1.在Visual C++6.0环境下输入并运行下面的程序:#include<stdio.(){printf("This is a C program.\n");return0;}2.在Visual C++6.0环境下输入下面的程序(有语法错误),编译、连接、调试该程序,直至程序无语法错误,然后运行程序,并观察分析运行结果。
#include<stdio.(){int a,b,suma=3;b=4;sun=a+b;print("%d+%d=%d\n",a,b,sum);return0;}四、实验结果:1.运行结果(或截图):2.(1)改正后的源程序:(2)运行结果(或截图):五、思考题:1.一个C程序上机的步骤有哪些?答:2.组成C程序的基本单位是函数,一个函数包括哪几个部分?答:成绩指导教师签名实验二实验项目名称:数据类型、运算符和表达式所使用的工具软件及环境:Visual C++6.0一、实验目的:1.掌握整型、实型与字符型这三种基本类型的概念;2.掌握常量及变量的使用方法;3.掌握基本算术运算符及其表达式的使用方法;4.掌握++、--运算符、赋值运算符及其表达式的使用方法。
二、预习内容:教材《C语言程序设计教程》第2章。
三、实验内容:1.在Visual C++6.0环境下输入下面的程序(有语法错误),编译、连接、调试该程序,直至程序无语法错误。
#include<stdio.(){int2cd=3;floatπ=3.14;char for=′A′;printf("%d,%f,%c\n",2cd,π,for);return0;}2.在Visual C++6.0环境下输入并运行下面的程序,观察分析运行结果。
数据的输入和输出及顺序结构程序设计
一、格式化输出
格式: 格式控制串” 输出项列表) 格式:printf(“格式控制串”,输出项列表 格式控制串 功能: 功能:按指定格式向显示器输出数据
一、格式化输出
例ch4_001 main() {int a; 输出变量的值 float b; char c; a=12; b=123.456; c='d'; printf(“a=%d,b=%f,c=%c",a,b,c); }
一、格式化输出
例ch4_002 main() {int a=4; float b=2; char c=‘a’; printf("a=%5d,b=%5.1f,c=%5c\n",a,b,c); printf("a=%-5d,b=%-5.1f,c=%-5c\n",a,b,c); } %[修饰符 格式字符 修饰符]格式字符 修饰符 格式字符: 修饰符常用的有:整数、 、 、 (小写字母) 修饰符常用的有:整数、-、 +、l(小写字母) %ld.表示输出十进制长整型 表示输出十进制长整型 %lf:表示按 型输出。 :表示按double型输出。 型输出 %-5d,表示输出整数占 个字符宽,左对齐。 表示输出整数占5个字符宽 表示输出整数占 个字符宽,左对齐。 %+d,表示在整数前加 号 表示在整数前加+号 表示在整数前加
运行结果:A B 注意 :putchar()函数本身没有换行 的功 能!
字符的输入和输出
/*ch4_010.c*/ #include <stdio.h> void main() { int c; printf("Enter a character:"); c=getchar(); printf("%c--->hex%x\n",c,c); }
C程序实验 顺序程序设计
实验三顺序程序设计一、实验目的1、熟练掌握C语言中赋值语句的使用方法。
2、掌握格式输入输出scanf()函数、printf()函数的调用方法:整型、实型字符型数据的输入输出格式。
3、掌握字符型输入输出函数getchar()、putchar()函数的调用语法。
二、实验内容与步骤:1、从键盘输入两个0到127的整数,求两数的平方差并输出其值以及这两个整数的ASCⅡ码对应的字符。
程序:#include <stdio.h>void main(){int x,y,sub;scanf("%d%d",&x,&y);sub=x*x-y*y;printf("%c,%c,%d\n",x,y,sub);}结果:从键盘输入"100 50",结果是?100 50d,2,75002、#include <stdio.h>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=3056; e=-6087;f=3157.; g=0.;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);}(1)运行程序并分析结果。
结果:a=61,b=62c1=a,c2=bd=3056.00,e=-6087.00f= 3157.,g= 0.0m=50000,n=60000p=32768,q=40000分析:a,b为整型变量,按%d输出,得到如上的结果;c1,c2为字符型,按%c输出,得到如上的结果;d,e为单精度浮点型,按%6.2f输出,其中整个数据占6列,小数两列,得到的结果如上;f,g双精度变量,按%15.6f输出,其中整个数据占15列,小数为6列(如全为小数,则小数全部输出),因为位置过宽,所以前面留有空格,结果如上;m,n为长整型,按%ld 输出,得到结果如上;p,q为无符号整型,存储范围增加,因此得到如上结果。
顺序程序设计(C语言实验报告)
仲恺农业工程学院实验报告纸信息学院(院、系)专业班C语言程序设计课实验目的:(1)掌握C语言中使用最多的一种语句——赋值语句的使用方法。
(2)掌握各种类型数据的输入输出方法。
实验内容与总结:1、验证性实验(1)键盘输入与屏幕输出练习问题1 要使下面程序的输出语句在屏幕上显示1, 2, 34,则从键盘输入的数据格式应为以下备选答案中的 D 。
#include <stdio.h>void main(){char a,b;int c;scanf("%c%c%d",&a,&b,&c);printf("%c,%c,%d\n",a,b,c);}A)1 2 34 B)1,2,34C)’1’,’2’,34D)12 34问题2 在与上面程序的键盘输入相同的情况下,要使上面程序的输出语句在屏幕上显示1 2 34,则应修改程序中的哪条语句?怎样修改?答:将“printf("%c,%c,%d\n",a,b,c);”改为“printf("%c %c %d\n",a,b,c);”问题3 要使上面程序的键盘输入数据格式为1,2,34,输出语句在屏幕上显示的结果也为1,2,34,则应修改程序中的哪条语句?怎样修改?答:将“scanf("%c%c%d",&a,&b,&c);”改为“scanf("%c,%c,%d",&a,&b,&c);”问题 4 要使上面程序的键盘输入数据格式为1,2,34,而输出语句在屏幕上显示的结果为'1', '2',34,则应修改程序中的哪些语句?怎样修改?答:将scanf("%c%c%d",&a,&b,&c);printf("%c,%c,%d\n",a,b,c);改为:scanf("%c,%c,%d",&a,&b,&c);printf("'%c','%c',%d\n",a,b,c);注意事项:printf和scanf函数使用是要注意“空格”、“’”、“,”的添加。
微机原理字符及字符串输入输出与顺序程序设计实验
微机原理字符及字符串输入输出与顺序程序设计实验
本次实验是关于微机原理的字符及字符串输入输出与顺序程序设计的实验。
在本次实验中,我们将学习如何输入、输出字符和字符串,并且实现一个简单的顺序程序。
下面我将着重介绍本次实验的步骤和相关知识。
一、实验步骤
1. 输入一个字符,然后将其输出
3. 实现一个简单的顺序程序,实现两个数的加减运算
二、相关知识
在 C 语言中,可以使用 getchar() 函数进行字符输入,也可以使用 putchar() 函数进行字符输出。
下面是一个简单的示例代码:
```
#include <stdio.h>
printf("请输入一个字符:");
c = getchar();
return 0;
}
```
3. 顺序程序设计
顺序程序是一种简单的程序设计方式,即按照指定顺序执行一系列的操作。
在本次实验中,我们将实现两个数的加减运算。
下面是一个简单的示例代码:
sum = a + b;
diff = a - b;
printf("它们的和是:%d\n", sum);
printf("它们的差是:%d\n", diff);
三、实验总结。
c语言顺序结构实验报告
c语言顺序结构实验报告篇一:实验三顺序结构程序设计实验报告实验三顺序结构程序设计实验报告一、实验目的1. 掌握掌握赋值语句的使用方法。
2. 各种类型数据的输入输出的方法,能正确使用各种格式转换符。
3. 进一步掌握编写程序和调试程序的方法。
二、实验内容(源代码)1. sy3-(1) ①#includeint main() { int a,b;//基本整型float d,e; //单精度浮点型 char c1,c2;//字符型 double f,g;//双精度浮点型long m,n; //长整型unsigned int p,q;//"unsiguld"改成"unsigned" 无符号整型a=61,b=62; c1='a';c2='b';//'a''b'的"'"不能掉了d=3.56;e=-6.87; //d,e之间用";"隔开f=3157.890121;g=0.9; 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);//"""与"a"之间的","不能掉了,"\"不能写成"/" printf("f=%15.6f,g=%15.12f\nm=%1d,n=%1d\np=%u,q=%u\ n",f,g,m,n,p,q); //f后的q改为g}③#includeint main() {int a,b;//基本整型 float d,e; //单精度浮点型char c1,c2;//字符型double f,g;//双精度浮点型 long m,n; //长整型unsigned int p,q;//"unsiguld"改成"unsigned" 无符号整型 a=61,b=62;c1=a;c2=b; //c1,c2之间用";"隔开 f=3157.890121;g=0.9; d=f;e=g;p=a=m=50000;q=b=n=-60000;printf("a=%d,b=%d\nc1=%c,c2=%c\nd=%6.2f,e=%6.2f\n", a,b,c1,c2,d,e);//"""与"a"之间的","不能掉了,"\"不能写成"/"printf("f=%15.6f,g=%15.12f\nm=%1d,n=%1d\np=%u,q=%u\ n",f,g,m,n,p,q); //f后的q改为g④#includeint main() {int a,b;//基本整型 float d,e; //单精度浮点型char c1,c2;//字符型double f,g;//双精度浮点型 long m,n; //长整型unsigned int p,q;//"unsiguld"改成"unsigned" 无符号整型 a=61,b=62;c1=a;c2=b; //c1,c2之间用";"隔开f=3157.890121;g=0.9; d=f;e=g;p=a=m=50000;q=b=n=-60000;printf("a=%d,b=%d\nc1=%d,c2=%d\nd=%d,e=%d\n",sizeof (a),sizeof(b),sizeof(c1),sizeof(c2),sizeof(d),sizeo f(e));printf("f=%d,g=%d\nm=%d,n=%d\np=%d,q=%d\n",sizeof(f ),sizeof(g),sizeof(m),sizeof(n),sizeof(p),sizeof(q) );}2. sy3-(2)#include int main() {float h,r,c,s1,s2,v1,v2; //定义float pi=3.1415926; //赋值printf("圆半径r=,圆柱高h=:");//提示scanf("%f,%f",&r,&h); //输入c=2*pi*r; //计算s1=pi*r*r;//"*"不可省略s2=4*s1;v1=4.0/3.0*s1*r; v2=s1*h;printf("圆周长:c=%6.2f\n",c); //输出 printf("圆面积:s1=%6.2f\n",s1);printf("圆球表面积:s2=%6.2f\n",s2); printf("圆球体积:v1=%6.2f\n",v1); printf("圆柱体积:v2=%6.2f\n",v2); return 0;}3. sy3-(3)#include#include //不要忘了数学函数 int main() {float p,r5,r3,r2,r1,r0,p1,p2,p3,p4,p5; //定义p=1000;//赋值printf("r5=,r3=,r2=,r1=,r0=:");//提示 scanf("%f,%f,%f,%f,%f",&r5,&r3,&r2,&r1,&r0); //输入 p1=p*r5*5; //计算}p2=p*(1+2*r2)*(1+3*r3)-p; p3=p*(1+3*r3)*(1+2*r2)-p; p4=p*pow(1+r1,5)-p; p5=p*pow(1+r0/4,20)-p;printf("方案1的利息:p1=%f\n",p1); //输出printf("方案2的利息:p2=%f\n",p2); printf("方案3的利息:p3=%f\n",p3); printf("方案4的利息:p4=%f\n",p4); printf("方案5的利息:p5=%f\n",p5); return 0;4. sy3-(4)① #include int main() {char c1='C',c2='h',c3='i',c4='n',c5='a';//定义与赋值 c1=c1+4;//计算 c2=c2+4; c3=c3+4; c4=c4+4; c5=c5+4;printf("用printf语句输出结果为:");//提示printf("%c%c%c%c%c\n",c1,c2,c3,c4,c5);//输出c1,c2之间的","不可省略 printf("用putchar语句输出结果为:");//提示putchar(c1);//输出putchar(c2); putchar(c3); putchar(c4); putchar(c5);printf("\n");//换行不要省略 return 0;}② #include int main(){ }char c1='T',c2='o',c3='d',c4='a',c5='y';//定义与赋值 c1=c1-22;//计算 c2=c2-22; c3=c3-22; c4=c4-22; c5=c5-22;printf("用printf语句输出结果为:");//提示printf("%c%c%c%c%c\n",c1,c2,c3,c4,c5);//输出c1,c2之间的","不可省略 printf("用putchar语句输出结果为:");//提示putchar(c1);//输出putchar(c2); putchar(c3); putchar(c4); putchar(c5);printf("\n");//换行不要省略 return 0;③ #include int main(){char c1='T',c2='o',c3='d',c4='a',c5='y';//定义与赋值 c1=c1-4;//计算 c2=c2-4; c3=c3-4; c4=c4-4; c5=c5-4;printf("用printf语句输出结果为:");//提示printf("%c%c%c%c%c\n",c1,c2,c3,c4,c5);//输出c1,c2之间的","不可省略 printf("用putchar语句输出结果为:");//提示putchar(c1);//输出putchar(c2); putchar(c3); putchar(c4); putchar(c5);printf("\n");//换行不要省略 return 0;}篇二:C语言实验二程序、总结顺序结构与输入、输出方法实验二顺序结构与输入/输出方法1 学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自增减运算符的使用。
实验四 字符及字符串的输入输出编程实验
参考代码:
data SEGMENT
str1 DB 'Please input your name:',0dh,0ah,'$'
cr DB 0dh,0ah,'$' ;
bufname DB 40,0,40 DUP(?) ;
data ENDS
code SEGMENT
ASSUME CS:code,DS:data
MOV BX,DX
ADD BX,CX
MOV BYTE PTR[BX],'$'
MOV AH,09h
INT 21h
LEA DX,cr
MOV AH,09h
INT 21h
MOV AH,1
INT 21h
MOV AH,4ch
INT 21h
code ENDS
END start
六、实验结论:
七、指导教师批阅意见:
成绩评定:
start: MOV AX,data
MOV DS,AX
LEA DX,str1
MOV AH,09h ;
INT 21h
LEA DX,bufname
MOV AH,0ah;
INT 21h
LEA DX,cr
MOV AH,09h
INT 21h
MOV CL,bufname+1
XOR CH,CH
LEA DX,bufname+2
实验
成绩
实验项目名称
实验四字符及字符串的输入/输出编程实验
一、实验要求和目的
1.掌握汇编语言程序基本结构;
2.熟悉使用DOS功能调用的基本方法;
3.熟悉字符/字符串输入输出相关DOS功能调用的入口参数和出口参数;
汇编语言-实验五 输入输出程序设计
实验五输入输出程序设计一、实验目的1) 掌握输入输出程序的编写方法。
2) 熟悉系统功能调用的方法。
3) 熟悉动画程序的编写方法。
二、实验内容1)在CRT上每隔一秒连续显示字符0-9。
编程提示为了使输出的字符之间有空格,在每一个循环中输出一个0-9的字符和一个空格。
为了输出0-9,置寄存器BL初值为0,每循环一次使其增量。
为了保证输出是十进制,增量后用DAA调整指令。
由于输出为一位十进制数,用AND 0FH 指令屏蔽高4位。
2)用系统功能调用将‘HELLO’由键盘输入,再从屏幕输出‘***HELLO***’。
3)编制在屏幕上画线的子程序,调用该子程序画一矩形。
4)编制字母下落一行的子程序,调用该子程序使字母从屏幕顶部下落到底部。
5)创建一磁盘文件,保存从键盘输入的字符串。
6)编写程序用设置系统时间,首先从键盘以十进制数形式输入时间,然后修改系统时间,并重新以十进制形式显示时间。
7)编写程序将屏幕分割成格状,每一格涂上不同颜色,格数从键盘输入。
8)编写程序在屏幕上显示菜单,输入相应菜单的序号后,选种该菜单项。
三、源程序EXAM5-1STACK SEGMENT STACKDB 1024 DUP(0)STACK ENDSCODE SEGMENTASSUME CS:CODE,SS:STACKSTART:MOV BL,0LP:MOV DL,20HMOV AH, 2INT 21HMOV AL,BLADD AL, 0DAAAND AL,0FHMOV BL,ALPUSH BXOR AL,30HMOV DL,ALMOV AH, 2INT 21HMOV BX,3E8HLP2:MOV CX,176H ;延时1msLP1:PUSHFPOPFLOOP LP1DEC BXJNZ LP2POP BXINC BLJMP LPCODE ENDSEND START执行程序EXAM5-1·EXE,屏幕上依次循环显示一个数字一个空格:0 1 2 3 4 5 6 7 8 9 ……EXAM5-2STACK SEGMENT STACKDB 1024 DUP(0)STACK ENDSDA TA SEGMENTBUFF DB 6,7 DUP(?),‘$’DA TA ENDSINPUT MACRO BUFEMOV DX,OFFSET BUFEMOV AH,0AHINT 21HENDMPUTCHAR MACRO CHARMOV DL,CHARMOV AH,02HINT 21HENDMCODE SEGMENTASSUME CS:CODE,DS:DA TA,SS:STACK START:MOV AX,DA TAMOV DS,AXINPUT BUFF ;读取字符串➝BUFFPUTCHAR 0DHPUTCHAR 0AH ;光标另起一行MOV CX,0003HNEXT:PUTCHAR 2AHLOOP NEXTMOV CL,BUFF+1SUB CH,CHMOV BX,OFFSET BUFF+2BEGIN:MOV AL,[BX]PUTCHAR ALINC BXLOOP BEGINMOV CX,0003HNEXT1:PUTCHAR 2AHLOOP NEXT1MOV AH,4CHINT 21HCODE ENDSEND START执行程序EXAM5-2·EXE,输入HELLO↙屏幕上显示结果:*** HELLO ***EXAM5-5NAME EXAM6SSTACK SEGMENT STACK ’stack’DB 1024 DUP(?)SSTACK ENDSDATA SEGMENTASKNAME DB 0DH,0AH,’Enter the’DB ’dest file name:$’ASKCONT DB 0DH,0AH,’Enter the string’DB ’as file content:’0dh,0ah,’$’ FILEBUF DB 62,63DUP(?)HAND_D DW?MSGMER DB 0DH,0AH,0AHDB ’Directory full’,0DH,0AH,’$’MSGWER DB 0DH,0AH,0AHDB ’Disk full’,0DH,0AH,’$’MSGSUC DB 0DH,0AH,0AH,DB ’Write file is Successful’DB 0DH,0AH,’$’DATA ENDSDISPLY MACRO TEXTMOV DX,OFFSET TEXTMOV AH,09HINT 21HENDMCRHAND MACRO PATH,ATTRMOV DX,OFFSET PATH ;文件名MOV CL,ATTR ;文件属性XOR CH,CHMOV AH,3CHINT 21HENDMWRHAND MACRO HAND,BUFF,BYTEMOV BX,HANDMOV DX,OFFSET BUFFADD DX,2MOV CL,BYTEXOR CH,CHMOV AH,40HINT 21HENDMCLHAND MACRO HANDMOV BX,HANDMOV AH,3EHINT 21HENDMCODE SEGMENTPROG PROC FARASSUME CS:CODE,DS:DATA,SS:SSTACKPUSH DSMOV AX,0PUSH AXMOV AX,DATAMOV DS,AXDISPLY ASKNAME ;提示输入文件名MOV DX,OFFSET FILEBUFMOV AH,0AHINT 21HMOV DI,OFFSET FILEBUF[2]MOV BL,FILEBUF[1]XOR BH,BHMOV BYTE PTR[BX][DI],00HCRHAND FILEBUF[2],0 ;创建并打开新文件JC CRTERRMOV HAND_D,AX ;存文件句柄DISPLY ASKCONT ;提示键入文件内容MOV DX,OFFSET FILEBUFMOV AH,0AHINT 21HWRHAND HAND_D,FILEBUF,FILEBUF[1]JC WRITERRCLHAND HAND_DDISPLY MSGSUCJMP EXIT CRTERR:DISPLY MSGMERJMP EXIT WRITERR:DISPLY MSGWER EXIT:RETPROG ENDPCODE ENDSEND PROG。
汇编语言程序设计实验篇(emu8086)
1.汇编语言程序设计实验篇1.1.汇编系统软件简介Emu8086-Microprocessor Emulator是集源代码编辑器、汇编/反汇编工具以及debug 的模拟器。
它能模拟一台"虚拟"的电脑运行程序,拥有独立的“硬件”,避免访问真实硬件。
该软件兼容Intel的下一代处理器,包括PentiumII、Pentium4。
利用该软件提供的调试工具,能够单步跟踪程序,观察程序执行过程中寄存器、标志位、堆栈和内存单元的内容。
1.1.1创建程序 TEMPLATE程序本章与指令相关的实验都是用COM TEMPLATE类型的程序完成的。
打开emu8086,在“welcome…”对话框中,单击按钮,创建文件。
在“choose code template”对话框中,选择“COM template-simple and tiny executable file format, pure machine code.”后,单击按钮。
在如所示的编辑界面中,在“;add your code here”部分输入相应的指令,第一条指令默认的偏移地址为100h。
输入全部指令后,单击按钮,保存相应的程序段。
2.EXE TEMPLATE程序本章与DOS功能调用和汇编源程序相关的实验都是用EXE TEMPLATE程序完成的。
打开emu8086,在“welcome…”对话框中,单击按钮,创建文件。
在“choose code template”对话框中,选择“EXE template-advanced executable file.header: relocation, checksum.”后,单击按钮。
在如图所示的编辑界面中,已经可以给出了源程序的框架,包含数据段、堆栈段和代码段的定义以及必要的功能调用等,在“add your data here”和“;add your code here”部分可以分别输入相应的变量定义和指令。
8086实验
实验一、寻址方式与基本指令实验一、实验目的1.熟悉8086寻址方式及基本指令功能,进一步理解和巩固课学习内容。
2.掌握汇编语言程序设计上机过程和汇编语言源程序结构。
3.熟悉Microsoft的DEBUG调试工具的使用方法。
二、实验预习要求1.认真阅读教科书第三章,了解并熟悉汇编语言程序的上机步骤及DEBUG调试工具的使用方法。
2.复习8086操作数寻址方式及基本指令功能(数据传送、算术运算和逻辑运算等)。
3.了解实验内容,并在实验前根据课堂所学知识回答有关问题(个别取决于程序实际运行环境的问题外),以便在实验时进行验证。
三、实验内容1.读懂下列源程序,使用EDIT生成名为EX11.ASM的源程序,汇编生成EX11.OBJ文件和EX11.LST文件,连接生成EX11.EXE文件;用EDIT打开EX11.LST文件,了解.LST文件包含的信息;使用DEBUG调试工具单步执行EX11.EXE程序,注意观察IP值的变化,并回答下列问题。
1)程序装入后,代码段寄存器CS的内容为H,代码段第一条可执行指令“MOV AX,DATA”对应的机器代码为H,它是一个字节指令,注意观察执行该指令时IP的变化情况,该指令源操作数DATA的寻址方式是,其值为。
2)执行完“MOV DS,DATA”指令后,数据段寄存器DS的内容为H,源程序在数据段中定义的数据库82H、68H和88H被装入的存储单元的物理地址分别为H,H和H。
3)程序中第一条“ADD AL,[BX]”指令对应的机器代码H,它是一个字节指令,注意观察执行该指令时IP的变化情况,该指令中源操作数的寻址方式为,该操作数所在存储单元的逻辑地址(DS):(BX)为,物理地址为H;执行完该指令后(AL)= H,CF= ,OF= ,ZF= ,SF= ,AF= ,PF= ;若两操作数为无符号数,计算结果是否正确?若两操作数为带符号数,计算结果是否正确?若计算结果正确,结果是正数还是负数?4)执行完第二条“ADD AL,[BX]”指令后,(AL)= H,CF= ,OF= ,ZF= ,SF= ,AF= ,PF= ;若两操作数为无符号数,计算结果是否正确?若两操作数为带符号数,计算结果是否正确?5)指令“MOV SUM,AL”中,目的操作数的寻址方式为,该指令执行完后,注意观察(DS):0003H单元中值的变化,该单元的值变为H。
实验3 顺序结构程序设计
实验三数据类型和顺序结构程序设计(4学时)[实验任务一]:通过调试、分析程序运行结果,掌握各种类型数据的输入输出的方法,能正确使用各种格式转换符;掌握各种运算符尤其是复合赋值运算符和除法及求余运算符。
程序分析实例3-1:输入、运行下面的程序,并分析、验证运行结果。
并以文件名assignment.c最终保存在实验3文件夹里:(需要存盘)【分析】程序运行结果为:在此基础上,做以下改动:(1)将程序第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;运行程序,分析结果。
【分析】修改后程序运行结果为:(2)在(1)的基础上将printf语句改为:printf("a=%d,b=%d,c1=%c,c2=%c,d=%15.6f,e=%15.12f\n",a,b,c1,c2,d,e);printf("f=%f,g=%f,m=%d\n",f,g,m);printf("n=%d\n”,n);printf(“p=%d,q=%d\n",p,q);运行程序。
(3)将p, q改用%o格式符输出。
注意是字母o而不是数字0。
(4)改用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);输入的数据入下:61, 62, a, b, 3.56,-6.87, 3,157.890121, 0.123456789, 50000,-60000, 40000(说明:lf,ld格式符分别用于输入double型和long型数据)分析运行结果。
字符及字符串的输入输出实验报告-文少轩
字符及字符串的输入输出实验报告西安交通大学文少轩一、实验目的1.掌握简单的DOS系统功能调用;2.掌握在PC机上建立,汇编,链接,调试和运行8086汇编语言程序的全过程。
二、实验设备IBM-PC 微型计算机一台三、实验要求1. 复习DOS系统功能调用的1,2,9,10号功能;2. 认真阅读预备知识中汇编语言的上机步骤的说明,熟悉汇编程序的建立,汇编,连接,执行,调试的全过程。
四、实验内容及数据记录实验内容一:字符的输入和输出从键盘读入一个小写字母,输出字母表中倒数与该字母序号相同的那个字母。
例如输执行结果:*实验习题:如果要在程序中加入显示提示字符串“Please input a lowercase letter”和“The inverse letter is:”,应如何修改程序?程序代码:执行结果:实验内容二:字符串的输入和输出从键盘输入一个字符串(假定键盘缓冲区的名字为STR),将其传送给INFO变量后,再在屏幕上显示出来。
汇编、连接:执行结果:*实验习题:如果要在程序中加入显示提示字符串“Please input a string”和“The string you input is:”,应如何修改程序?程序代码:DSEG SEGMENTINTIP DB 'Please input a string',0DH,0AH,'$'汇编、连接:执行结果:五、实验小结1.DOS系统功能调用的10号功能对键盘缓冲区格式地要求:第一个字节为输入字符串的最大长度,第二个字节用来存放实际输入字符串的长度,从第三个字节开始存放实际输入的字符串的ASCII码;2.DOS系统功能中的1、2、9、10号功能的输入输出参数及存放的寄存器关系如下表:3.字符和字符串的输入输出的实现都需要调用相应功能号,并产生相应的中断,即先给AX赋值所需的功能号,然后产生21H中断,输入的单字符会存放在AL中,输出单字符前需要把字符ASCII码存放到DL中,输入输出字符串,需要先把字符缓冲区首址存放到DS:DS寄存器中。
字符及字符串输入输出与顺序程序设计实验(
微机原理第二次试验字符及字符串输入输出与顺序程序设计实验班级:姓名:学号:日期:字符及字符串输入输出与顺序程序设计实验2.2.1 实验目的1、学习和掌握字符及字符串的输入输出方法。
2、掌握顺序程序的设计方法。
3、进一步掌握调试工具的使用方法。
2.2.2 实验预习要求复习DOS功能调用中用于字符输入(功能号01H)、字符输出(功能号02H)、字符串输入(功能号为0AH)以及字符串输出(功能号09H)的调用方法(详见教材5.5.6)。
复习BCD码运算调整指令。
根据“2.2.3 实验内容”中给出的源程序框架编写完整的源程序,以便实验时调试。
从“2.2.4 实验习题”中任选一道题目,编写源程序,以便上机调试。
实验内容从键盘输入两个一位十进制数,计算这两个数之和,并将结果在屏幕上显示出来。
问题分析比如使用功能号为01H的用于实现单个字符输入的DOS功能调用接收从键盘输入的两个十进制数8和6,这时计算机内部得到的是这两个数的ASCII码值38H和36H。
由于数字09的ASCII码值与其代表的数值之间相差30H,因此将其减去30H即可得到以非压缩型BCD数形式表示的十进制数08H和06H,使用ADD 指令对它们进行相加后结果为0EH(00001110B),显然需要用非压缩型BCD数加法调整指令对ADD的运算结果进行调整,调整后得到两个非压缩型BCD数01H和04H,将它们分别加上30H后变为其对应的ASCII码31H(1的ASCII码)和34H(4的ASCII码),然后调用功能号为02H用于单个字符输出的DOS功能调用将它们显示出来。
综上所述,需要考虑以下问题。
(1)从键盘输入一个一位十进制数的方法通过功能号为1的DOS功能调用实现从键盘输入一个字符,格式如下:MOV A H, 01HINT 21H ;此时程序等待用户键入,键入字符的ASCII码值存在AL中SUB AL, 30H ;减去30H后得到键入数字所代表的数值(2)提示信息字符串的显示通过功能号为9的DOS功能调用实现字符串显示,注意字符串的最后一个字符必需为’$’。
输入输出程序设计实验
输入输出程序设计实验
输入输出程序设计实验是一种编程实验,旨在测试和验证程序的输入和输出功能。
以下是输入输出程序设计实验的一些常见任务和要求:
1. 输入验证:确保程序能够正确地读取用户输入的数据,并进行必要的验证,例如检查输入的数据类型、格式和范围是否符合要求。
2. 输出格式化:确保程序能够将结果以适当的格式输出,例如表格、图形或文本。
3. 错误处理:确保程序能够妥善处理错误情况,例如输入数据不正确或异常情况,并给出适当的错误消息。
4. 数据转换:测试程序是否能够将输入数据转换为所需格式或类型,并进行必要的转换处理。
5. 数据排序:测试程序是否能够对输入数据进行排序,例如按照数字大小、字母顺序或时间顺序等。
6. 数据筛选:测试程序是否能够对输入数据进行筛选,例如根据特定条件过滤掉不需要的数据。
7. 数据统计:测试程序是否能够对输入数据进行统计,例如计算平均值、中位数、众数等。
8. 数据可视化:测试程序是否能够将数据以图形或图表的形式呈现,例如柱状图、折线图或饼图等。
在完成输入输出程序设计实验时,需要注意以下几点:
1. 确定实验目的和要求,并制定详细的实验计划和步骤。
2. 选择适当的编程语言和工具,并熟悉相关语法和库函数。
3. 设计合理的输入和输出方案,并进行充分的测试和验证。
4. 记录实验过程和结果,并进行总结和分析。
5. 根据实验结果进行优化和改进,以提高程序的性能和稳定性。
实验2_顺序结构与输入输出方法
实验二顺序结构与输入/输出方法实验目的掌握C语言中赋值语句的使用掌握C语言中各种数据的输入/输出方法能正确使用各种格式转换符实验要点C语言中的基本输入/输出语句✧scanf()输出函数一般格式:scanf(“格式串”,地址表达式1[,地址表达式2,……,地址表达式n]);✧printf()输入函数一般格式:printf(“格式串”,[表达式1,表达式2,……,表达式n]);实验要求上机前编写好以下程序(1-4为填空,5为程序改错) 。
上机输入和调试自己所编的程序并存在自己的软盘上。
检查实验结果是否正确。
上机结束后,整理实验报告。
实验内容上机调通以下程序。
1.以下程序的输出结果是【】main(){short i;i=-2;printf("\n i: dec=%d,oct=%o,hex=%x,unsigned=%u\n",i,i,i,i);}2.以下程序的输出结果是【】main(){float f;f=3.1415;printf("\n %f,%4.3f,%5.3f,%-10.3f,%10.3f\n",f,f,f,f,f);}3.以下程序的输出结果是【】main(){int a,b;float c,d;char c1,c2;a=61;b=62;c=31.5;d=-68.87;c1='a';c2='A';printf("\n");printf("a=%d,b=%d\n",a,b);printf("c=%f,d=%f\n",c,d);printf("c=%e,d=%e\n",c,d);printf("c1=%c,%c\n",c1,c2);}4.以下程序的功能是从键盘输入一个整型数,一个实型数和一个字符型数,并把他们在屏幕上输出,完成以下填空,并把程序调通,写出运行结果。
C语言程序设计 键盘输入和屏幕输出(4.2.6)--实验1顺序结构程序设计
实验项目表
实验1 顺序结构程序设计
【实验任务】熟悉C开发环境,并进行仿写和改写程序练习
1.参考例
2.1b和例2.2程序,在每一行输出变量的值以后,再输出该变量所占内存的
字节数,在不同的集成开发环境下运行程序,观察程序的运行结果。
2.参考例
3.4和例3.5程序,分别使用宏定义和const常量定义 的值,编程计算并
输出球的体积和表面积,球的半径r的值由用户从键盘输入。
3.参考例
4.2程序,编程从键盘输入一个小写英文字母,将其转换为大写英文字母后
将转换后的大写英文字母及其十进制的ASCII码值显示到屏幕上。
【实验目的】
熟悉Visual C++6.0和Code::Blocks集成开发环境,不同类型的变量的定义和赋值。
熟悉简单的算术运算、宏定义和const常量的使用,以及字符与字符的ASCII码值的输入输出方法。
实验四字符及字符串的输入和输出
实验四字符及字符串的输入和输出一、实验目的1.熟悉如何进行字符及字符串的输入输出。
2.掌握简单的DOS系统功能调用。
二、实验预习要求1.复习系统功能调用的1、2、7、8、9、10号功能。
2.按照题目要求预先编写好实验中的程序段。
三、实验任务1、输入以下程序段并用“single step”单步运行,执行INT 21H指令时,在键盘上按“5”键。
MOV AH,1INT 21H(1)运行结束后,(AL)=?它是哪一个键的ASCII码?答:(AL)=35 他是5的ASCII码运行结果如图(2)重复运行以上程序段,并分别用“A”、“B”、“C”、“D”键代替“5”键,观察运行结果有何变化?答:A时AL=(61)B时AL=(62)C时AL=(63)D时Al=(64)(3)再将1变为7和8,分别运行之答:7时AL=(37)8时Al=(38)2、输入以下程序段并运行之。
MOV DL,‘A’MOV AH,2INT 21H(1)观察屏幕上的输出,是否显示了“A”字符?显示了A字符如图(2)分别用“#”、“X”、“Y”、“$”、“?”代替程序段中的“A”字符,观察屏幕上的输出有何变化,并查看DL中的内容。
1、#时屏幕出现# 如图DL=(23)2、X时屏幕出现X 如图DL=(58)3、Y时屏幕出现Y 如图DL=(59)4、$时屏幕出现$ 如图DL=(24)5、?时屏幕出现?如图DL=(3F)(3)分别用0DH、0AH、24H代替程序段中的“A”字符,观察屏幕上的输出有何变化。
答:屏幕依次出现 CR,LF,$(4)用07H代替程序段中的“A”字符,观察屏幕上有无输出?计算机内的扬声器是否发出“哔”的声音?答:无输出如图发出哔的声音3.按要求运行程序,并回答问题。
提示:系统使用0AH号功能调用时,按如下方法设置键盘缓冲区:缓冲区长度N 实际读入的字符个数N个字节的预留内存区DATA SEGMENTM1 DB 5,0,5 dup (?)DATA ENDS然后输入以下程序段并单步运行,执行INT 21H指令时,在键盘上键入“5”、“4”、“3”、“2”、“1”、〈回车〉这六个键。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
字符及字符串输入输出与顺序程序设计实验
从键盘输入两个一位十进制数,计算这两个数之和,并将结果在屏幕上显示出来。
1、问题分析
比如使用功能号为01H的用于实现单个字符输入的DOS功能调用接收从键盘输入的两个十进制数8和6,这时计算机内部得到的是这两个数的ASCII 码值38H和36H。
由于数字0 9的ASCII码值与其代表的数值之间相差30H,因此将其减去30H即可得到以非压缩型BCD数形式表示的十进制数08H和06H,使用ADD指令对它们进行相加后结果为0EH(00001110B),显然需要用非压缩型BCD数加法调整指令对ADD的运算结果进行调整,调整后得到两个非压缩型BCD数01H和04H,将它们分别加上30H后变为其对应的ASCII码31H(1的ASCII码)和34H(4的ASCII码),然后调用功能号为02H用于单个字符输出的DOS功能调用将它们显示出来。
综上所述,需要考虑以下问题。
(1)从键盘输入一个一位十进制数的方法
通过功能号为1的DOS功能调用实现从键盘输入一个字符,格式如下:MOV AH, 01H
INT 21H ;此时程序等待用户键入,键入字符的ASCII码值存在AL中
SUB AL, 30H ;减去30H后得到键入数字所代表的数值
(2)提示信息字符串的显示
通过功能号为9的DOS功能调用实现字符串显示,注意字符串的最后一个字符必需为’$’。
指令格式如下:
MOV DX, OFFSET INFOR1 ;INFOR1为在数据段中定义的要显示的字符串
MOV AH, 09H
INT 21H
(3)非压缩型BCD数加法调整指令的使用
设从键盘输入的数值已存放在寄存器AL, BL中,可用下列程序完成数据相加和调整操作:
XOR AH,AH
ADD AL, BL
AAA ;执行该指令后,AH中为和的十位上的数字,AL中为个位上的数字
请读者考虑,为什么要使用指令“XOR AH,AH”,不用行否?
(4)计算结果的显示
执行完AAA指令后,只需分别将AH(十位上的数值)和AL(个位上的数值)加上30H,并依次调用功能号为2的DOS功能调用来显示字符。
具体指令代码如下:PUSH AX
MOV DL, AH
ADD DL, 30H
MOV AH, 02H
INT 21H
POP AX
MOV DL, AL
ADD DL, 30H
MOV AH, 02H
INT 21H
2、源程序:
DATA SEGMENT
INFOR1 DB "Please Input the First Data(<10):$"
INFOR2 DB 0AH,0DH,"Please Input the Second Data(<10):$"
INFOR3 DB 0AH,0DH,"The Result is:$" ;0DH和0AH分别为非显示字符回车;和换行的ASCII码值,美圆符号“$”为字符串结束标志,不能省略。
DATA E NDS
CODE SEGMENT
ASSUME CS: CODE, DS: DATA
START: MOV AX, DATA
MOV DS, AX
MOV DX, OFFSET INFOR1
MOV AH, 09H
INT 21H 通过功能号为9的DOS功能调用实现字符串显示
MOV AH, 01H
INT 21H
SUB AL, 30H 从键盘输入一个一位十进制数的方法
通过功能号为1的DOS功能调用实现从键盘输入一个字符MOV BL, AL
MOV DX, OFFSET INFOR2
MOV AH, 09H
INT 21H
MOV AH, 01H
INT 21H
SUB AL, 30H
XOR AH, AH
ADD AL, BL
AAA )非压缩型BCD数加法调整指令的使用
设从键盘输入的数值已存放在寄存器AL, BL中,可用下列程序完成数据相加和调整操作:PUSH AX
MOV DX, OFFSET INFOR3
MOV AH, 09H
INT 21H
POP AX
PUSH AX
MOV DL, AH
ADD DL, 30H
MOV AH, 02H
INT 21H 并依次调用功能号为2的DOS功能调用来显示字符。
POP AX
MOV DL, AL
ADD DL, 30H
MOV AH, 02H
INT 21H
MOV AH, 4CH
INT 21H 程序终止。
CODE ENDS
END START
2.从键盘输入0-9中任意一个自然数,将其立方值在屏幕上显示出来
data segment
number db 'please input one data (<10):$'
result db 0ah,0dh,'cube result is :$'
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov dx,offset number
mov ah,9 通过功能号为9的DOS功能调用实现字符串显示
int 21h
mov ah,1
int 21h
and ax,000fh
mov bx,ax
mul bl
mul bl
mov cl,64h
div cl
or al,30h OR是位的或操作,OR AL,30H,相当于把AL里的值加上30H,话OR AL,30H是把个位转换成ascii码
push ax
mov dx,offset result
mov ah,9
int 21h
pop ax
mov dl,al
push ax
mov ah,2
int 21h
pop ax
mov cl,0ah
mov al,ah
mov ah,0
div cl
or ax,3030h
mov dl,al
push ax
mov ah,2
int 21h
pop ax
mov dl,ah
mov ah,2
int 21h
mov ah,4ch
int 21h
code ends
end start
3.从键盘输入一个字符,判断该字符是小写字母、大写字母、数字或其他字符,并给出相应的提示。
DATA SEGMENT USE16
MESG1 DB ' N1<=X<=N2 $ '
MESG2 DB ' X<N1 $ '
MESG3 DB ' X>N2 $ '
NUMBER DB 66 ;无符号数X N1 EQU 22
N2 EQU 88
DATA ENDS
CODE SEGMENT USE16
ASSUME CS:CODE, DS:DATA
BEG: MOV AX , DATA
MOV DS, AX
MOV DX, OFFSET MESG1
CMP NUMBER, N1
JAE NEXT ;X ≥N1转
MOV DX, OFFSET MESG2
JMP DISP
NEXT: CMP NUMBER, N2
JBE DISP ;X ≤N2转
MOV DX, OFFSET MESG3
DISP: MOV AH, 9
INT 21H ;显示结果信息
MOV AH, 4CH
INT 21H ;返回DOS CODE ENDS
END BEG。