实验三 数组和字符串

实验三数组和字符串一、实验目的1.掌握Java中的数组定义、引用2.掌握向量的基本概念和应用技术3.掌握使用字符串String类处理字符串的方法4.掌握使用字符串StringBuffer类处理字符串的方法5.掌握Date类以及Calendar类的常用方法;二、实验内容1.使用ng.Math类,生成100 个100~999 之间的随机整数,找出他们之中的最大的和最小的,并统计随机产生的大于300 的整数个数。

package exercise;publicclass shiyan3_1 {publicstaticvoid main(String [] args){int count=0;int max=0;int min=Integer.MIN_VALUE;int num[]=newint[100];//声明并创建一个具有100 个元素的整型数组对象num int i;for(i=1;i<=100;i++){num[i-1]=100+(int)(Math.random()*899);System.out.print(num[i-1]+"\t");//随机产生一个100~999 之间的随机整数if(i % 10 == 0) System.out.println();//输出当前产生的随机数,并一行输出10 个数if(num[i-1]>max) max=num[i-1];if(num[i-1]<min) min=num[i-1];//找出最大和最小整数算法if(num[i-1]>300) count++;}System.out.println("最大的随机整数是:"+max);System.out.println("最小的随机整数是:"+min);System.out.println("大于300 的整数个数是:"+count);}}2.求下列二维数组中各行元素之和并查找其值最大的那个行。

package exercise;publicclass shiyan3_2 {publicstaticvoid main(String[] args){int twoDimArray[][] = {{24, 47, 55, 44, 24, 68, 98},{96, 71, 64, 95, 20, 18, 21},{47, 34, 28, 36, 89, 63, 86},{64, 46, 58, 73, 24, 73, 13}};int sum, max, maxRow=0;max = 0;for (int row=0; row<4; row++) //数组的行数{sum = 0;for (int col=0; col<7; col++)//数组的列数sum += twoDimArray[row][col];if(sum>max){maxRow=row;max=sum;}//求得和最大的行及总和}System.out.println("和最大的行是" + maxRow + " 最大值为" + max);}}3.String 类的常用方法。

实验要求:编写一个Java 应用程序,判断两个字符串是否相同,判断字符串的前缀、后缀是否和某个字符串相同,按字典顺序比较两个字符串的大小关系,检索字符串,创建字符串,将数字型字符串转换为数字,将字符串存放到数组中,用字符数组创建字符串。

package exercise;publicclass shiyan3_3 {publicstaticvoid main(String[] args){String s1=new String("徐州工程学院"),s2=new String("江苏省徐州市");if(s1.equals(s2)) System.out.println("s1 与s2 相同");// 使用equals 方法判断s1 与s2 是否相同else System.out.println("s1 与s2 不相同");String s3=new String("320305************");if(s3.substring(0,6).equals("320305")) System.out.println("江苏省徐州市的身份证");//判断s3 的前缀是否是“320305”String s4=new String("你"),s5=new String("我");if(pareTo(s5)>0) System.out.println("按字典序s4 大于s5");//按着字典序s4 大于s5 的表达式else System.out.println("按字典序s4 小于s5");int position=0;String path="c:\\java\\SY6_1.java";position=stIndexOf("\\");//获取path 中最后出现目录分隔符号的位置 System.out.println("path 中最后出现\\的位置:"+position);String fileName=path.substring(12);//获取path 中“SY6_1.java”子字符串。

System.out.println("path 中含有的文件名:"+fileName);String s6=new String("230"), s7=new String("123.456");int n1=Integer.parseInt(s6);//将s6 转化成int 型数据。

double n2=Double.parseDouble(s7);//将s7 转化成double 型数据。

double m=n1+n2;System.out.println(m);String s8=String.valueOf(m);//String 调用valuOf(int n)方法将m 转化为字符串对象position=s8.indexOf(".");String temp=s8.substring(position+1);System.out.println("数字"+m+"有"+temp.length()+"位小数") ;String s9=new String("ABCDEF");char a[]=newchar[6];//将s8 存放到数组a 中。

for(int i=a.length-1;i>=0;i--)System.out.print(""+a[i]);}}4.比较日期的大小实验要求:编写一个java应用程序,用户从输入对话框输入了两个日期,程序将判断两个日期的大小关系、以及两个日期之间的间隔天数。

package exercise;import java.sql.Date;import java.util.Calendar;import javax.swing.JOptionPane;public class shiyan3_4 {public static void main(String[] args){String str=JOptionPane.showInputDialog("输入第一个日期的年份:");int yearOne=Integer.parseInt(str);str=JOptionPane.showInputDialog("输入该年的月份:");int monthOne=Integer.parseInt(str);str=JOptionPane.showInputDialog("输入该月份的日期:");int dayOne=Integer.parseInt(str);str=JOptionPane.showInputDialog("输入第二个日期的年份:");int yearTwo=Integer.parseInt(str);str=JOptionPane.showInputDialog("输入该年的月份:");int monthTwo=Integer.parseInt(str);str=JOptionPane.showInputDialog("输入该月份的日期:");int dayTwo=Integer.parseInt(str);Calendar calendar=Calendar.getInstance();//初始化日历对象calendar.set(yearOne,monthTwo,dayOne);//将calendar 的时间设置为yearOne 年monthOne 月dayOne 日long timeOne=calendar.getTimeInMillis();//calendar 表示的时间转换成毫秒calendar.set(yearTwo,monthTwo,dayTwo);//将calendar 的时间设置为yearTwo 年monthTwo 月dayTwo 日long timeTwo=calendar.getTimeInMillis();//calendar 表示的时间转换成毫秒。

Date date1=new Date(timeOne);// 用timeOne 做参数构造date1Date date2=new Date(timeTwo);// 用timeTwo 做参数构造date2if(date2.equals(date1)) System.out.println("两个日期的年、月、日完全相同");else if(date2.after(date1)) System.out.println("您输入的第二个日期大于第一个日期");else if(date2.before(date1)) System.out.println("您输入的第二个日期小于第一个日期");longdays=Math.abs((date1.getTime()-date2.getTime())/(24*3600*1000));//计算两个日期相隔天数System.out.println(yearOne+"年"+monthOne+"月"+dayOne+"日和"+yearTwo+"年"+monthTwo+"月"+dayTwo+"相隔"+days+"天");}}5.有NUMBER 个马拉松运动员,对这些运动员的成绩进行排名次,NUMBER 和运动员的成绩由用户输入,编写程序,输出所有运动员的成绩和名次。

合集下载

实验三串基本操作的编程实现

实验三串基本操作的编程实现

实验三串基本操作的编程实现引言:串是由零个或多个字符组成的有限序列,是一种非常基础也非常重要的数据结构。

在本实验中,我们将学习串的基本操作,并使用C语言来实现这些操作。

1.实验目的:-掌握串的基本操作,包括串的初始化、判空、求长度、复制和拼接等操作;-学会使用C语言编程实现串的基本操作。

2.实验内容:本实验主要包括以下几个串的基本操作的编程实现。

2.1串的初始化操作在C语言中,我们可以使用字符数组来表示一个串。

以下是一个串的初始化操作的实现代码:```c#include <stdio.h>void InitString(char s[], char str[])int i;for (i = 0; str[i] != '\0'; i++)s[i] = str[i];}s[i]='\0';int maichar s[20];char str[] = "Hello, World!";InitString(s, str);printf("Initialized string: %s\n", s);return 0;```2.2串的判空操作判空操作即判断一个串是否为空串。

如果一个串的长度为0,则表示该串为空串。

以下是一个判空操作的实现代码示例:```c#include <stdio.h>#include <stdbool.h>bool IsEmptyString(char s[])return s[0] == '\0';int maichar s[20] = ""; // 空串if (IsEmptyString(s))printf("The string is empty.\n");} elseprintf("The string is not empty.\n");}return 0;```2.3串的长度操作求串的长度,即求一个串中字符的个数。

c程序设计 实验报告

c程序设计 实验报告

c程序设计实验报告C程序设计实验报告引言:C程序设计是计算机科学中一门重要的编程语言,广泛应用于软件开发、系统编程等领域。

本实验报告旨在总结并分析我在C程序设计实验中的学习经验和成果。

实验一:基本语法和数据类型C语言作为一门结构化的编程语言,具有丰富的语法和数据类型。

在本实验中,我学习了C语言的基本语法,包括变量的声明和赋值、运算符的使用以及条件语句和循环语句的控制流程。

通过编写简单的程序,我熟悉了C语言的基本语法和数据类型的使用。

实验二:函数和指针函数是C语言中的重要概念,通过函数的封装和调用,可以实现程序的模块化和复用。

在本实验中,我学习了函数的定义和调用,了解了函数的参数传递和返回值的使用。

同时,我还学习了指针的概念和用法,掌握了指针变量的声明和指针运算的基本操作。

通过实验练习,我对函数和指针的使用有了更深入的理解。

实验三:数组和字符串数组和字符串是C语言中常用的数据结构,对于处理大量数据和字符操作非常重要。

在本实验中,我学习了数组的定义和使用,了解了数组的下标和内存分配的原理。

同时,我还学习了字符串的表示和处理方法,掌握了字符串的输入输出和常见操作函数的使用。

通过实验练习,我对数组和字符串的应用有了更深入的认识。

实验四:结构体和文件操作结构体是C语言中用于组织和管理复杂数据的一种方式,文件操作则是处理外部文件的重要技术。

在本实验中,我学习了结构体的定义和使用,了解了结构体成员的访问和结构体数组的操作。

同时,我还学习了文件的打开、读写和关闭操作,掌握了文件指针的使用和文件读写的基本流程。

通过实验练习,我对结构体和文件操作的应用有了更深入的了解。

实验五:动态内存分配和链表动态内存分配和链表是C语言中高级的数据结构和算法,对于处理动态数据和实现复杂逻辑非常重要。

在本实验中,我学习了动态内存分配的方法和使用,了解了malloc和free函数的原理和使用。

同时,我还学习了链表的定义和操作,掌握了链表的插入、删除和遍历等基本操作。

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

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:所有的字符都有一个对应的数字与之对应,每一个小写字母对应的数与大写字母对应的数之间总是相差32,所以只需要对所输入的字符进行减法运算就可以转换为与之对应的大写字母。

代码2:运行结果2:程序分析2:简单的数据运算和格式字符的输出。

c语言实验报告实验

c语言实验报告实验

c语言实验报告实验C 语言实验报告实验一、实验目的本次 C 语言实验的主要目的是通过实际操作和编程实践,加深对 C 语言基本语法、数据类型、控制结构、数组、指针等重要概念的理解和掌握,提高编程能力和解决实际问题的能力。

二、实验环境本次实验使用的编程环境为 Visual Studio 2019,操作系统为Windows 10。

三、实验内容1、基本数据类型和运算符的使用定义不同类型的变量,如整数型(int)、浮点型(float、double)、字符型(char)等,并进行赋值和运算操作。

熟悉各种运算符的优先级和结合性,包括算术运算符(+、、、/、%)、关系运算符(>、<、>=、<=、==、!=)、逻辑运算符(&&、||、!)、位运算符(&、|、^、~、<<、>>)等。

2、控制结构的应用使用ifelse 语句实现条件判断,根据不同的条件执行相应的代码块。

运用 switch 语句进行多分支选择,处理不同的情况。

利用 for 循环、while 循环和 dowhile 循环实现重复执行的操作,例如计算数列的和、打印特定的图案等。

3、数组和字符串的操作定义和使用一维数组、二维数组,进行数组元素的访问、赋值和遍历。

掌握字符串的存储和处理方式,使用字符数组和字符串函数(如strlen、strcpy、strcmp 等)进行字符串的操作。

4、指针的应用理解指针的概念和指针变量的定义,通过指针访问变量和数组元素。

实现指针与数组、指针与函数的结合使用,体会指针在程序中的灵活运用。

5、函数的定义和调用编写自定义函数,实现特定的功能,如计算阶乘、判断素数等。

掌握函数的参数传递方式(值传递和地址传递),理解函数的返回值。

6、结构体和共用体的使用定义结构体类型,创建结构体变量,访问结构体成员。

了解共用体的概念和使用场景,比较结构体和共用体的区别。

四、实验步骤1、实验准备打开 Visual Studio 2019 开发环境,创建一个新的 C 语言项目。

电大在线编程实验报告(3篇)

电大在线编程实验报告(3篇)

第1篇一、实验目的通过本次在线编程实验,旨在提高我的编程能力,加深对编程语言的理解,熟悉编程环境的使用,并培养良好的编程习惯。

同时,通过实际编程练习,解决实际问题,提升我的逻辑思维和问题解决能力。

二、实验内容本次实验选择了电大在线编程平台提供的C语言编程课程,主要包括以下内容:1. C语言基本语法;2. 数据类型、变量和运算符;3. 控制结构(分支和循环);4. 函数的定义和调用;5. 数组、指针和字符串操作;6. 文件操作。

三、实验步骤1. 准备工作:登录电大在线编程平台,选择C语言编程课程,熟悉编程环境和操作界面。

2. 编写代码:根据实验指导书,逐个完成实验任务,编写相应的C语言程序。

3. 调试程序:使用调试工具,检查代码中的错误,修正语法错误和逻辑错误。

4. 运行程序:成功编译并运行程序,观察输出结果,确保程序功能符合预期。

5. 总结与反思:对实验过程中遇到的问题进行总结,分析原因,提出改进措施。

四、实验结果与分析1. C语言基本语法:通过实验,我掌握了C语言的基本语法,包括数据类型、变量、运算符等。

2. 控制结构:实验中,我学会了使用if语句、switch语句进行分支控制,以及for循环、while循环进行循环控制。

3. 函数:通过编写和调用函数,我了解了函数的定义、参数传递和返回值等概念。

4. 数组、指针和字符串操作:实验中,我掌握了数组的定义、初始化、访问和操作方法,了解了指针的概念和用法,以及字符串操作函数。

5. 文件操作:通过实验,我学会了使用文件操作函数,实现文件的读写操作。

五、实验总结通过本次在线编程实验,我收获颇丰。

以下是我对本次实验的总结:1. 编程能力得到提高:通过实际编程练习,我对C语言有了更深入的了解,编程能力得到提升。

2. 问题解决能力增强:在实验过程中,我遇到了各种问题,通过查阅资料、请教同学和老师,我学会了如何分析和解决实际问题。

3. 良好的编程习惯:在实验过程中,我养成了良好的编程习惯,如规范命名、注释代码、代码复用等。

Matlab实验报告

Matlab实验报告

Matlab实验报告院系名称:信息科学与工程学院专业班级:通信工程1303指导老师:陈科文,支国明,张金焕,周扬学生姓名:学号:目录实验一熟悉MATLAB环境 (3)实验二数值数组创建、应用及可视化 (7)实验三字符串数组的使用、简单脚本文件和函数的编写 (12)实验四数据可视化方法 (22)实验一一、实验目的1 .熟悉MATLAB 主界面,并学会简单的菜单操作;2 .学会简单的矩阵输入与信号输入;3 .掌握部分绘图函数。

二、实验内容及要求1.用户工作目录和当前目录的建立和设置;2.熟悉简单的矩阵输入;3.常用基本命令的使用;4.基本序列运算;三、实验步骤及结果测试1.用户工作目录和当前目录的建立和设置2.熟悉简单的矩阵输入四、实验体会及心得这是我第一次做Matlab实验,一打开页面就有很多地方都不明白,因为页面大部分是英文,由于上课时对Matlab操作页面还有一些记忆,感觉还可以:本次试验是我对Matlab这门课有了一定的了解,对矩阵在Matlab中的运用也有了初步的认识。

实验二一、 实验目的1 .掌握二维数组的创建、寻访,区分数组运算与矩阵运算的区别;2 .掌握标准数组生成函数和数组构造技法;3 .进一步熟悉 M 脚本文件编写的方法和技巧。

二、实验内容及要求1.数组的创建和寻访 ;2.编写如图所示波形的 MATLAB 脚本文件,图中虚线为正弦波,要求它分别在21 及22处削顶。

三、实验步骤及结果测试仿照问题 1 中方法找出数组⎥⎦⎤⎢⎣⎡----=5311342024A 中所有绝对值大于 3 的元素。

程序如下图:运行指令 rand(‘state ’,11),A=rand(3,10000);B=(A>0.5);C=2*B -1;首先预测( C*C’)/100 的运行结果,然后再在机器上验证。

(本方法提供了产生通信等仿真中常需若干独立的双随机码的方法原型。

)A :B :C :编写如图所示波形的 MATLAB 脚本文件,图中虚线为正弦波,要求它分别在21 及22处削顶。

数据结构上机实验报告

数据结构上机实验报告学院:电子工程学院专业:信息对抗技术姓名:学号:教师:饶鲜日期:目录实验一线性表 ........................................................................................................ - 4 -一、实验目的.................................................................................................... - 4 -二、实验代码.................................................................................................... - 4 -三、实验结果.................................................................................................. - 14 -四、个人思路.................................................................................................. - 15 - 实验二栈和队列 .................................................................................................. - 15 -一、实验目的.................................................................................................. - 15 -二、实验代码.................................................................................................. - 16 -三、实验结果.................................................................................................. - 24 -四、个人思路.................................................................................................. - 25 - 实验三数组 .......................................................................................................... - 26 -一、实验目的.................................................................................................. - 26 -二、实验代码.................................................................................................. - 26 -三、实验结果.................................................................................................. - 28 -四、个人思路.................................................................................................. - 28 - 实验四树 .............................................................................................................. - 29 -一、实验目的.................................................................................................. - 29 -二、实验代码.................................................................................................. - 29 -三、实验结果.................................................................................................. - 39 -四、个人思路.................................................................................................. - 39 -实验一线性表一、实验目的1.熟悉线性表的顺序和链式存储结构2.掌握线性表的基本运算3.能够利用线性表的基本运算完成线性表应用的运算二、实验代码1.设有一个线性表E={e1, e2, … , e n-1, e n},设计一个算法,将线性表逆置,即使元素排列次序颠倒过来,成为逆线性表E’={ e n, e n-1 , … , e2 , e1 },要求逆线性表占用原线性表空间,并且用顺序表和单链表两种方法表示,分别用两个程序来完成。

安徽大学C语言实验平台作业答案

实验三C基本数据类型及运算1. 编程:根据需要定义相关变量,键盘输入10.0、20.6、5.0三个实数分别赋给相关三个变量,输出该3个变量的和s、乘积p和平均值a。

2. 编程:输入球的半径,计算球体表面积和球体积。

3. 编程:定义6个变量,通过键盘将“10,-10, 40000, a, 3.14,hello”这六个值分别赋给相应变量,然后在屏幕上输出变量的值(每行输出一个变量)。

4. 编程:从键盘接收1个字符给变量s1,1个字符串(允许带有空格)给字符数组s2,输出字符变量s1的ASCII码值及字符数组s2中的字符串。

5. 编程:从键盘输入二个整数分别赋给整型变量a、b,将它们按由小到大的顺序输出。

6. 编程:调用标准库函数sin(x)计算6800的正弦值(此题为选做)。

7. 编程:键盘输入一个实数赋给变量x,计算 y=x*x*x+x*x+x 的值,分别输出y值、y值的整数部分和小数部分(此题为选做)。

8. 编程:键盘输入四个整数分别赋给整型变量a、b、c、d,用三目运算方法将它们按由大到小的顺序输出(此题为选做)。

1.#include<stdio.h>main(){float x,y,z,s,p,a;scanf("x=%fy=%fz=%f",&x,&y,&z);s=x+y+z;p=x*y*z;a=s/3;printf("s=%f,p=%f,a=%f",s,p,a);}2.#include<stdio.h>main(){float r,s,v;printf("input r");scanf("%f",&r);s=4*3.14*r*r;v=4/3*3.14*r*r*r;printf("s=%f,v=%f",s,v);}3.#include<stdio.h>main(){int a,b;long c;char d,st[6];float e;scanf("%d%d%ld%c%f%s",&a,&b,&c,&d,&e,st);printf("a=%d\n,b=%d\n,c=%d\n,d=%c\n,e=%f\n,ch=%s",a,b,c,d,e,st); }4.#include<stdio.h>main(){ char s1,s2[6];scanf("%c%s",&s1,s2);printf("s1=%d,s2=%s",s1,s2);}5.#include<stdio.h>main(){ int a,b;scanf("a=%db=%d",&a,&b);if (a<b)printf("a=%db=%d",a,b);elseprintf("b=%da=%d",b,a);}6.#include<math.h>#include<stdio.h>main(){float a,b;scanf("%f",&a);b=sin(a);printf("%f",b);}7.#include<stdio.h>main(){float x,y,b;int a;scanf("%f",&x);y=x*x*x+x*x+x;a=(int)y;b=y-a;printf("%f\n%d\n%f\n",y,a,b);}实验四 C分支结构程序设计1. 编程:从键盘输入一个字符,如是大写字母,则输出相应小写字母;如是小写字母,则原样输出;其它字符输出“Not letter!”。

C语言实验报告 实验三 参考答案

实验十 参考答案(指针)三、实验内容( 按要求完善或设计以下程序,并调试分析运行结果)1. 程序填空题 给定程序BLACK10-1.C 中,函数fun 的功能是:将形参n 所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n 传回所指变量。

例如,输入一个数:27638496,新的数:为739。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

【解题思路】第一处:t 是通过取模的方式来得到*n 的个位数字,所以应填:10。

第二处:判断是否是奇数,所以应填:0。

第三处:最后通形参n 来返回新数x ,所以应填:x 。

2. 程序改错题 给定程序MODI10-1.C 中函数fun 的功能是: 计算n 的5次方的值(规定n 的值大于2、小于8),通过形参指针传回主函数;并计算该值的个位、十位、百位上数字之和作为函数值返回。

例如,7的5次方是16807, 其低3位数的和值是15。

【解题思路】第一处:变量d 的初始值应为1。

第二处:整除的符号是 /。

3. 程序设计题 请编写函数fun ,它的功能是:求出能整除形参x 且不是偶数的各整数,并按从小到大的顺序放在pp 所指的数组中,这些除数的个数通过形参n 返回。

例如,若 x 中的值为: 35,则有 4 个数符合要求,它们是: 1, 5, 7, 35。

【解题思路】本题是求出能整除形参x 且不是偶数的各整数,并按从小到大的顺序放在pp 所指的数组中,这些除数的个数通过形参n 返回。

【参考答案】void fun ( int x, int pp[], int *n ){ int i; *n=0;for(i=1; i <= x; i++)if((x % i== 0) && (i % 2)) pp[(*n)++]=i;}4. 程序填空题 给定程序中,函数fun 的功能是:找出N ×N 矩阵中每列元素中的最大值,并按顺序依次存放于形参b 所指的一维数组中。

北京理工大学汇编语言实验报告3字符串操作实验(设计性实验)

实验类型: □ 综合设计 □ 自主创新
组 号:
同组搭档:
成 绩:
一、实验要求和目的
1.了解汇编语言字符串处理基本流程; 2.熟悉汇编语言字符串处理基本指令的使用方法; 3.掌握利用汇编语言实现字符串处理的程序设计方法。
二、软硬件环境
1、硬件环境:计算机系统 windows; 2、软件环境:装有MASM、DEBUG、LINK、等应用程序。
str1 db 'fs3qas' count equ $-str1 DATAS ENDS copy segment
str2 db count dup(?) copy ends
CODES SEGMENT ASSUME CS:CODES,DS:DATAS,es:copy
START: MOV AX,DATAS MOV DS,AX mov es,dx;开始复制 mov cx,count cld rep movsb MOV AH,4CH INT 21H
这里面显示的bx=1,符合实际情况 若修改一下源代码,把字符串多加几个‘.’则结果如下:
代码中有3个‘.’运行结果中bx=3,符合实际情况,源代码题设要求
五、实验要求与提示
1、实验要求 (1)画出各程序流程图; (2)列出程序清单,加上适量注释; (3)回答思考问题; (4)记录实验结果; (5) 完成实验报告(实验材料上的内容简写,自己的工作要详尽)。 2、实验提示: A)自动获取字符串长度,可以利用地址计数器$ 表达式获得。 B)字符/字符串输入输出 主要利用 DOS 的INT 21H 系统功能调用来实现字符或字符串的输入/输出操作,其中1 号功能表示输入字符;2 号功能表示输出字符;0A 号功能表示输入字符串;09 号功能表 示 输出字符串。如果大家想现在使用可以详细查阅相关资料,在后面的课程内容和实验上会详 细学习,这里简单示例提示一下: (1)显示单个字符可以用DOS 的INT 21H 的2 号功能,将字符放在DL 寄存器中,2 号放在AH 寄存器中。 MOV AL, ’*’ MOV AH,2 INT 21H (2)数据区中的字符串应以$结尾,DS:DX=串地址;如果提前已经定义需要显示的字 符串,显示字符串可以用如下功能调用: LEA DX,STR MOV AH,9 INT 21H
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档