实验 6-3 数组

实验 6-3 数组
实验 6-3 数组

实验6-3 数组(三)

1

【实验目的】

(1)掌握字符数组的定义、赋值和输入输出的方法

(2)掌握字符数组和字符串函数的使用

(3)掌握数组的基本操作和排序算法

【实验要求】

(1)熟悉掌握字符数组的定义、赋值和输入输出方法

(2)掌握字符数组和字符串函数的使用

(3)掌握数组的增加元素和删除元素的操作

(4)掌握数组的排序算法(比较、选择和冒泡三种算法,要求至少会一种)

【实验环境】

(1) Microsoft XP操作系统

(2) Microsoft VC++ 6.0

【实验内容】

1、Palindromes_easy version

https://www.360docs.net/doc/245812273.html,/acmhome/problemdetail.do?&method=showdetail&id=1384 描述

“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。请写一个程序判断读入的字符串是否是“回文”。

输入

输入包含多个测试实例,输入数据的第一行是一个正整数n,表示测试实例的个数,后面紧跟着是n个字符串,每个字符串的长度不超过30。

输出:如果一个字符串是回文串,则输出"yes",否则输出"no".

样例输入:

4

level

abcde

noon

haha

样例输出:

yes

no

yes

no

2、分割整数https://www.360docs.net/doc/245812273.html,/acmhome/problemdetail.do?&method=showdetail&id=1173

描述:从键盘输入一个长正整数(不超过10位),从高位开始逐位分割并输出。

输入:正整数n,不含前导零。

输出:分割的整数序列,各整数之间用空格格开。注意,最后一个数字后面没有空格!

样例输入:654321

样例输出:6 5 4 3 2 1

3、简单编码https://www.360docs.net/doc/245812273.html,/acmhome/problemdetail.do?&method=showdetail&id=1464

描述:将一串文本译成密码,密码的规律是:将原来的小写字母全部翻译成大写字母,大写字母全部翻译成小写字母,数字的翻译规律如下:

0——>9

1——>8

2——>7

3——>6

4——>5

5——>4

6——>3

7——>2

8——>1

9——>0

然后将所有字符的顺序颠倒。

输入: 输入一串文本,最大字符个数不超过100。

输出: 输出编码后的结果。

样例输入: china

样例输出: ANIHC

4、单词统计https://www.360docs.net/doc/245812273.html,/acmhome/problemdetail.do?&method=showdetail&id=1178

题目描述:

从键盘输入一行字符,统计其中单词的个数,各单词以空格分隔,且空格数可以是多个。

输入:输入只有一行句子。仅有空格和英文字母构成。

输出:单词的个数。

样例输入:

stable marriage problem Consists of Matching members

样例输出:

7

5、元素插入https://www.360docs.net/doc/245812273.html,/acmhome/problemdetail.do?&method=showdetail&id=2951

题目描述:

今天同来面试的,还有Mr.true,Mr.true是一位高中大学都搞竞赛的小超人,而MS 也很需要这样的人才。于是,不用说,他去面试的时候会得到一点点小特权,那就是他可以少排一会队———漂亮的人力资源MM会给他安排一个靠前的位置。

输入:第一行为一个整数T,表示有T组数据。每组数据有3行:

第一行为原队伍已有的人数N;

第二行有n个以空格隔开的整数表示原队伍面试编号序列;

第三行为两个整数P、Q,P表示Mr.true拿到的面试编号,Q表示Mr.true将插入队伍中的第Q个位置。

保证没有相同号码,保证N不大于10000

输出:插入后队伍面试编号的情况。

样例输入:

2

1 2 3

4 2

4

9 8 2 3

7 1

样例输出:

1 4

2 3

7 9 8 2 3

6、元素删除https://www.360docs.net/doc/245812273.html,/acmhome/problemdetail.do?&method=showdetail&id=2952

题目描述:

陪同Mr.true&&Eddy一同去面试的还有DavidDeng。DavidDeng信心满满的去微软面试,一群面试者排起了长长的队伍,每个人有张面试编号。这时,一位大美女KZ从他身边走过,DavidDeng对其一见钟情,DavidDeng拿起他的面试编号N就离开了面试队伍。

输入:第一行为一个整数T,表示有T组数据。每组数据有三行:

第一行是一个整数M ,表示原队伍有M个人;

第2行有M个以空格隔开的整数,即原队伍中每个人的面试编号;

第三行为DavidDeng的面试编号N。

保证没有相同号码,保证N不大于10000

输出:DavidDeng离开后队伍的面试编号序列。

样例输入:

4

1 3 8 2

3

样例输出:

1 8 2

7、数组逆序2 https://www.360docs.net/doc/245812273.html,/acmhome/problemdetail.do?&method=showdetail&id=1458

描述

有n个整数,使其最后m个数变成最前面的m个数,其他各数顺序向后移m(m

输入:输入数据有2行,第一行的第一个数为n,后面是n个整数,第二行整数m。

输出:按先后顺序输出n个整数。

样例输入

5 1 2 3 4 5

2

样例输出

4 5 1 2 3

8、数列有序!https://www.360docs.net/doc/245812273.html,/acmhome/problemdetail.do?&method=showdetail&id=1377

题目描述:

有n(n<=100)个整数,已经按照从小到大顺序排列好,现在另外给一个整数m,请将该

数插入到序列中,并使新的序列仍然有序。

输入:

输入数据包含多个测试实例,每组数据由两行组成,第一行是n和m,第二行是已经有序的n个数的数列。n和m同时为0标示输入数据的结束,本行不做处理。

输出:对于每个测试实例,输出插入新的元素后的数列。

样例输入:

3 3

1 2 4

0 0

样例输出:

1 2 3 4

9、英文金曲大赛

https://www.360docs.net/doc/245812273.html,/acmhome/problemdetail.do?&method=showdetail&id=1056 题目描述:

我们在“渊子数”的题目中已经了解了渊子是个什么样的人了,他在大一的时候参加过工商学院的“英语聚乐部”。告诉你个秘密,这个俱乐部是个好地方,不但活动精彩而且有MM。

这不,英语俱乐部举办了一个叫做“英文金曲大赛”的节目。这个节目有好多人参加,这不,成绩出来了,渊子当是很勇敢,自告奋勇接下了算出大家的总得分的任务。

当时有7个评委,每个评委都要给选手打分,现在要求去掉一个最高分和去掉一个最低分,再算出平均分。结果精确到小数点后两位。

输入:

测试数据包括多个实例。每组数据包括7个实数,代表评委们对该选手的评分。紧接着是选手的名字,名字的长度不超过30个字符。输入直到文件结束。

输出:算出每位选手名字和最终得分,结果保留两位小数。

样例输入:

10 10 10 10 10 10 9 xiaoyuanwang

0 0 0 0 0 0 0 beast

样例输出:

xiaoyuanwang 10.00

beast 0.00

10、简单排序https://www.360docs.net/doc/245812273.html,/acmhome/problemdetail.do?&method=showdetail&id=1283

题目描述:

你知道吗,在ACM程序设计竞赛中经常会遇到排序问题,如果你每次都花费大量的时间去编写排序函数,那可不好,因此要好好去练习啦!下面好好练练吧:给定N个整数,请你对这些整数进行升序排列并输出。

输入:

输入数据有多组,第一行是测试数据的组数T,接下的T行中,每行表示一组测试数据,每组测试数据的第一个数字为N(1<=N<=1000),接下来是N个整数。本题中,所有的整数都在32位之内。

输出:输出每组测试数据排序后的结果。每组测试数据占一行。

样例输入:

2

3 2 1 3

4 1 3 4 2 样例输出:1 2 3

1 2 3 4

实验三 数组和字符串

实验三数组和字符串 一、实验目的 1.掌握Java中的数组定义、引用 2.掌握向量的基本概念和应用技术 3.掌握使用字符串String类处理字符串的方法 4.掌握使用字符串StringBuffer类处理字符串的方法 5.掌握Date类以及Calendar类的常用方法; 二、实验内容 1.使用https://www.360docs.net/doc/245812273.html,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]300) count++; } System.out.println("最大的随机整数是:"+max); System.out.println("最小的随机整数是:"+min); System.out.println("大于300 的整数个数是:"+count); } }

数组程序设计实验报告

计算机科学与技术学院 程序设计报告 程序名称:数组程序设计 专业:计算机科学与技术 班级:计算机1103班 学号: 姓名: 指导老师: 设计日期:2011年11月26日

数组程序设计 题目: 编写一个程序,其功能如下:输入n(n<50)个学生的姓名和C语言课程的成绩,将成绩按从高到低的次序排序,姓名同时作相应的调整,输出排序后的学生姓名和C语言课程的成绩。然后输入一个C 语言课程成绩值,用二分法查找进行搜索。如果查找到该成绩,输出该成绩同学的姓名和C语言课程的成绩;否则输出提示“not found !”. 程序源代码: #include #include #define n 3 void main() { int i,j,k,t,x,a[n]; int top=0,bottum=n-1,mid; char b[n][10],str[10],c[20]; for(i=0;i

printf("input the name of the %dth student:",i+1); gets(b[i]); printf("input the score of the C language:"); scanf("%d",&a[i]); printf("\n"); gets(c); } for(i=0;i

实验六 一维数组程序设计

实验六一维数组程序设计 一、实验学时 2学时 二、实验目的 (一)掌握一维数组的定义、初始化方法; (二)掌握一维数组中数据的输入和输出方法; (三)掌握与一维数组有关的程序和算法; (四)了解用数组处理大量数据时的优越性。 三、预习要求 (一)理解数组的概念、利用数组存放数据有何特点; (二)一维数组的定义、初始化方法; (三)一维数组中数据的输入和输出方法。 四、实验内容 (一)下面的几个程序都能为数组元素赋值,请输入程序并运行。比较一下这些赋值方法的异同。 1.在定义数组的同时对数组初始化。 /* c6-1.c */ /*在定义数组的同时对数组初始化*/ #include "stdio.h" void main( ) { int a[4]={0,1,2,3}; printf("\n%d %d %d %d\n",a[0],a[1],a[2],a[3]); } 2.不使用循环对单个数组元素赋值。 /* c6-2.c */ /*不使用循环对单个数组元素赋值*/ #include "stdio.h" void main( ) { int a[4]; a[0]=2;a[1]=4;a[2]=6;a[3]=8; printf("\n%d %d %d %d\n",a[0],a[1],a[2],a[3]); } 3.用循环结构,从键盘输入为每个数组元素赋值,输出各数组元素。 /* c6-3.c */ /*利用循环通过键盘对数组元素赋值*/ #include "stdio.h" void main( ) { int i,a[4]; for(i=0; i<4; i++) scanf("%d",&a[i]); printf("\n"); for(i=0; i<4; i++) printf("%d ",a[i]);

Java语言程序设计实验四 方法及数组实验报告

**大学 Java语言程序设计实验报告

四、实验步骤: 1: import java.util.Scanner; public class sy41 { public static void main(String[] args) { // TODO Auto-generated method stub int t,bbk=0; int []a; a=new int[10]; Scanner chm=new Scanner(System.in); System.out.println("请输入十个数"); for(int i=0;i<10;i++) { a[i]=chm.nextInt(); } System.out.println("请输入要找的数"); t=chm.nextInt(); for(int j=0;j<10;j++) { if(t==a[j]) bbk=1; } if(bbk==1) System.out.println("有"); else System.out.println("无"); } } 2: package syyyy; import java.util.*; class first {

System.out.println("输出排序前"); f.printarray(a); f.sort(a); System.out.println("输出排序后"); f.printarray(a); f.delelement(a, 2); System.out.println("输出删除第2个数后"); f.printarray(a); } } 3): import java.util.Scanner; public class syyyyyyyy43 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner bbk=new Scanner(System.in); System.out.println("请输入一个十进制数:"); int a=bbk.nextInt(); int pok=a/2; int shu[]=new int [pok+1]; if(pok<3000){ if(a%2==0){ shu[0]=1; System.out.print(shu[0]); for(int i=1;i

实验报告_实验3 类与对象

实验报告_实验3 类与对象(学生学号_姓 名) 一、实验目的 1.熟悉类的组成,掌握类的声明方法; 2.理解构造方法的作用,并掌握构造方法的定义; 3.熟练使用访问器和设置器实现信息隐藏和封装; 4.熟悉一般方法、构造方法的重载; 5.能够正确地区分静态变量与实例变量、静态方法与实例方法的不同,掌握静态变量和静态方法的使用;6.掌握对象的创建、引用和使用及向方法传递参数的方式; 7.掌握this关键字的使用以及对象数组的创建和访问; 8.掌握Java包的创建、包成员的各种访问方式; 9.掌握一维数组:声明,创建,初始化,数组元素的访问; 10.掌握多维数组的概念:二维数组的声明,初始化,元素的访问。 二、实验内容与步骤 1.请回答下列问题: (1)Cirecle类定义了几个属性?它们的类型、访问权限各为什么? 答:两个PI,floatl类型,静态私有权限 Radius,float;类型,私有权限 (2)类中的“PI”的值可以在程序的方法中更改吗? 答:不可以,因为PI为静态变量 (3)Cirecle类定义了几个方法?它们的访问权限怎样?

答:四个,getRadius(),setRadius(float radius),getPerimeter(),getArea()都是公有权限 2.写出Rectangle类的程序代码: class Rectangle { private float width; private float length; public float getWidth( ) //获取矩形宽度 {return width;} public float getLength( ) //获取矩形长度 {return length;} public float getPerimeter( ) //获取矩形周长 {return 2*(width+length);} public float getArea( ) //获取矩形面积 {return (width*length);} public void setWidth(float w) //设置矩形宽度 {width=w;} public void setLength(float l) //设置矩形长度 {length=l;} } 3.回答下列问题: (1)该程序中有几个类?主类是什么?如果将这两个类放在一个文件中,源程序文件名应是什么?答:两个类:Circle、CircleTest;主类是CircleTest;源程序文件名是CircleTest。

C语言程序设计实验报告(数组)

C语言程序设计实验报告(数组) 1实验目的 (1)熟练掌握一维数组,二维数组的定义,初始化和输入、输出方法; (2)熟练掌握字符数组和字符串函数的使用; (3)掌握与数组有关的常用算法(查找、排序等)。 2实验内容 编写函数catStr(char str1[],char str2[])用于进行两个字符串的连接,编写函数lenStr(char str[])用于统计一个字符串的长度,并在主函数中调用。 要求: 1、不允许用strcat()和strlen()字符处理库函数; 2、在主函数以直接初始化的方式输入两个字符串str1和str2.调用函数 strlen()计算并返回两个字符串的长度; 3、调用函数catstr()连接两个字符串(将str2连接在str1后面); 4、调用函数lenstr()计算并返回连接后字符串的长度; 5、在主函数中输入两个原始的字符串及几个字符串的长度,以及处理后字 符串及其长度。

3算法描述流程图

4源程序 #include #include void catStr(char str1[],char str2[]) { int i,j; for (i=0;str1[i]!='\0';i++); for(j=0;str2[j]!='\0';j++) str1[i+j]=str2[j]; str1[i+j]='\0'; } lenStr(char m[] ) {int i;

for (i=0;m[i]!='\0';i++); printf("%d",i); } void main() {char s1[50]="forever",s2[50]="more"; printf("s1=%s,s2=%s",s1,s2); printf("\ns1的长度:"); lenStr(s1); printf("\ns2的长度:"); lenStr(s2); catStr(s1,s2); printf("\n连接后的字符:"); printf("%s\n",s1); printf("连接后字符的长度:"); lenStr(s1); printf("\n"); } 5测试数据 s1=forever, s2=more 6运行结果 7出现问题及解决方法 在输入程序时,少写了半边引号,调试时发现存在错误,找到了错误并加以改正。无论什么事,细心都是必不可少的,认真是解决问题的关键。 8实验心得 通过本次实验,对于函数的定义和声明,数组以及循环语句有了进一步的认识,掌握了字符数组和字符串函数的使用,以及与数组有关的常用算法。此次实验不是调用strlen()和strcat()函数,而是通过自己设计程序来进行字符串的连接以及计量字符串的长度,由此我学会了如何去理清自己的思路来设计程序。

实验 6-3 数组

实验6-3 数组(三) 1 【实验目的】 (1)掌握字符数组的定义、赋值和输入输出的方法 (2)掌握字符数组和字符串函数的使用 (3)掌握数组的基本操作和排序算法 【实验要求】 (1)熟悉掌握字符数组的定义、赋值和输入输出方法 (2)掌握字符数组和字符串函数的使用 (3)掌握数组的增加元素和删除元素的操作 (4)掌握数组的排序算法(比较、选择和冒泡三种算法,要求至少会一种) 【实验环境】 (1) Microsoft XP操作系统 (2) Microsoft VC++ 6.0 【实验内容】 1、Palindromes_easy version https://www.360docs.net/doc/245812273.html,/acmhome/problemdetail.do?&method=showdetail&id=1384 描述 “回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。请写一个程序判断读入的字符串是否是“回文”。

输入 输入包含多个测试实例,输入数据的第一行是一个正整数n,表示测试实例的个数,后面紧跟着是n个字符串,每个字符串的长度不超过30。 输出:如果一个字符串是回文串,则输出"yes",否则输出"no". 样例输入: 4 level abcde noon haha 样例输出: yes no yes no 2、分割整数https://www.360docs.net/doc/245812273.html,/acmhome/problemdetail.do?&method=showdetail&id=1173 描述:从键盘输入一个长正整数(不超过10位),从高位开始逐位分割并输出。 输入:正整数n,不含前导零。 输出:分割的整数序列,各整数之间用空格格开。注意,最后一个数字后面没有空格! 样例输入:654321 样例输出:6 5 4 3 2 1

VB实验3数组

本科实验报告 课程名称:人机界面程序设计基础实验项目:三、数组 实验地点:北区多学科楼 专业班级:学号: 学生姓名: 指导教师: 年月日

一、实验目的和要求 1、掌握数组的声明、数组元素的引用。 2、掌握固定长度数组和动态数组的使用差别。 3、掌握数组常用的操作和常用算法。 4、掌握列表框和组合框的使用。 二、实验内容和原理 1、随机产生30~100(包括30、100)的10个正整数,求最大值、最小值、平均值,并显示整个数组的值和结果。 2、随机产生20个学生的成绩,统计各分数段人数并显示结果。产生的数据在List1显示,统计结果在List2显示。 提示:①、在通用声明段声明一个数组。例如:Dim mark%(19);在Command2声明一个数组s(9),分别存放分数段的人数。 ②、统计时的关键在于确定每个人的分数mark(i)与数组s下标之间的关系。 3、窗体上建立一个简单组合框,在组合框的文本框输入数字字符,按回车键后加入到组合框的列表框内,单击“交换”按钮,将列表框中最小值项目和第0个项目交换;最大值项目与最后项目交换。 三、主要仪器设备 计算机 四、实验结果与分析(必填) 1.随机产生30~100(包括30,100)的10个正整数,求最大值、最小值、

平均值,并显示整个数组的值和结果,。 代码: Private Sub Form_Click() Dim i%, s%(1 To 10), max%, min%, avg! For i = 1 To 10 s(i) = Int(Rnd * 71 + 30) Next i max = s(1) min = s(1) avg = s(1) For i = 2 To 10 If s(i) > max Then max = s(i) If s(i) < min Then min = s(i) avg = avg + s(i) Next i avg = avg / 10 For i = 1 To 10 Print s(i); Next i Print Print "max="; max; "min="; min; "avg="; avg End Sub 2.随机产生20个学生的成绩,统计各分数段人数。即0~59,60~69,70~ 79,80~89, 90~100, 并显示结果。产生的数据在picture1显示,统计结果在picture2显示,如图E3所示。

C++上机实验报告实验四

实验四数组、指针与字符串 1.实验目的 1.学习使用数组 2.学习字符串数据的组织和处理 3.学习标准C++库的使用 4.掌握指针的使用方法 5.练习通过Debug观察指针的内容及其所指的对象的内容 6.联系通过动态内存分配实现动态数组,并体会指针在其中的作用 7.分别使用字符数组和标准C++库练习处理字符串的方法 2.实验要求 1.编写并测试3*3矩阵转置函数,使用数组保存3*3矩阵。 2.使用动态内存分配生成动态数组来重新完成上题,使用指针实现函数的功能。 3.编程实现两字符串的连接。要求使用字符数组保存字符串,不要使用系统函数。 4.使用string类定义字符串对象,重新实现上一小题。 5.定义一个Employee类,其中包括姓名、街道地址、城市和邮编等属性,以及change_name()和display()等函数。Display()显示姓名、街道地址、城市和邮编等属性,change_name()改变对象的姓名属性。实现并测试这个类。 6.定义包含5个元素的对象数组,每个元素都是Employee类型的对

象。 7. (选做)修改实验4中的选做实验中的people(人员)类。具有的属性如下:姓名char name[11]、编号char number[7]、性别char sex[3]、生日birthday、身份证号char id[16]。其中“出生日期”定义为一个“日期”类内嵌对象。用成员函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数、聚集。在测试程序中定义people类的对象数组,录入数据并显示。 3.实验内容及实验步骤 1.编写矩阵转置函数,输入参数为3*3整形数组,使用循环语句实现矩阵元素的行列对调,注意在循环语句中究竟需要对哪些元素进行操作,编写main()函数实现输入、输出。程序名:lab6_1.cpp。 2.改写矩阵转置函数,参数为整型指针,使用指针对数组元素进行操作,在main()函数中使用new操作符分配内存生成动态数组。通过Debug观察指针的内容及其所指的对象中的内容。程序名:lab6_2.cpp。 3.编程实现两字符串的连接。定义字符数组保存字符串,在程序中提示用户输入两个字符串,实现两个字符串的连接,最后用cout语句显示输出。程序名:lab6_3.cpp。用cin实现输入,注意,字符串的结束标志是ASCII码0,使用循环语句进行字符串间的字符拷贝。

C语言程序设计实验答案数组、指针与字符串

实验06 数组、指针与字符串(4学时) (第6章数组、指针与字符串) 一、实验目的 二、实验任务 6_1(习题6-25)编写并测试3×3矩阵转置函数,使用数组保存3×3矩阵。 6_2(习题6-26)使用动态内存分配生成动态数组来重新完成上题(n阶方阵),使用指针实现函数的功能。 6_3 编程实现两字符串的连接。要求使用字符数组保存字符串,不要使用系统函数。 6_4 使用string类声明字符串对象,重新实现上一小题。 6_5(习题6-27)声明一个Employee类。 其中包括姓名、街道地址、城市和邮编等属性,以及change_name()和display()等函数。display()显示姓名、街道地址、城市和邮编等属性,change_name()改变对象的姓名属性,实现并测试这个类。 6_6(习题6-27)声明包含5个元素的对象数组,每个元素都是Employee 类型的对象。 6_7 修改实验4中的people(人员)类。 具有的属性如下:姓名char name[11]、编号char number[7]、性别char sex[3]、生日birthday、身份证号char id[16]。其中“出生日期”声明为一个“日期”类内嵌子对象。 用成员函数实现对人员信息的录入和显示。 要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数、聚集。 在测试程序中声明people类的对象数组,录入数据并显示。

三、实验步骤 1.(编程,习题6-25)编写矩阵转置函数,输入参数为3×3整型数组。 使用循环语句实现矩阵元素的行列对调,注意在循环语句中究竟需要对哪些元素进行操作,编写main()函数实现输入输出。程序名:lab6_1.cpp。 参考运行结果: ★程序及运行结果: //lab6_1.cpp #include using namespace std; void move(int matrix[][3]){ int temp; for(int i=0;i<3;i++) for(int j=0;j>mat[i][j]; } cout<<"\n输入的3×3矩阵为:"<

实验六 一维数组实验报告

*** 软件类实验报告 课程名称:C语言程序设计学号: 姓名: 班级: 指导教师: 开课学期: 学院: ***教务处

⑷一维数组排序。 四、实验过程及内容:(运行结果请抓图到对应题目的下方) 1. 先分析以下程序,写出运行结果,再上机检验。 2.程序填空题。下面程序的功能是9个评委给某个参赛选手打分,去掉一个最高分和一个最低分,求该参赛选手的平均分。填空完成程序。

实验结果: 3. 程序填空题。有数列1,1,2,4,7,13,24…,该数列的规律是从第4项起,每项是它的前三项之和。下列程序的功能是将该数列的前30项存放在一维数组中,输出时每行输出5个数。填空完成程序。 实验结果: 4. 程序改错题。下面程序的功能是将数组中的数按从大到小排序后输出。改正程序中的错误。 实验结果: 5. 程序改错题。某公司从用公用电话传递数据,数据是四位的整数,在传递过程中需要加密,加密规则为每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。改正程序中的错误。

实验结果: 6. 小楚参加了一个研究生考试培训班,共30次课,由于路途较远,每次都是打车去上课,来回的车费分别存储在数组a和b中,其中-1表示未去上课。 编程计算小楚参加培训班共打车花费多少钱?(要求保留1位小数,用循环实现) 输出结果的形式为: s=1234.5 a数组和b数组定义如下: double a[30]={31.0,32.0,30.3,32.8,30.5,30.6,31.0,32.8,-1,31.8,31.9,31.5,32.3,32.3,31.8,32.5 ,31.5,30.3,30.4,32.5,30.2,30.2,30.7,32.1,32.1,31.4,31.9,31.9,-1,30.5}; double b[30]={30.2,30.2,30.3,31.6,32.7,31.5,30.4,32.4,-1,31.0,31.8,32.1,31.6,31.4,32.4,32.1 , 32.5,32.3,32.5,31.4,31.2,30.3,32.3,30.7,31.3,30.2,31.1,30.5,-1,31.9}; 五、实验小结

实验3要求(数组)

实验3-1一维数组 目的和要求: 1.理解数组的概念以及用数组描述数据结构的好处; 2.掌握一维数组的定义、下标变量的引用、数组的初始化以及输入输出的方法; 3.学习应用数组解决查找和排序问题。 一. 实验内容 1.改错题 (1)下列程序的功能是:为指定的数组输入10个数据,并求这10个数据之和。但程序中存在若干错误,请你纠正,并将正确的程序保存到学号文件夹下,文件名为shiyan3_1.c。 #include void main() {int n=10,i,sum=0; int a[n]; for(i=0;i<10;i++) { scanf("%d",a[i]); sum=sum+a[i]; } printf("sum=%d\n",sum); } (2)下列程序的功能是:读入20个整数,统计其中非负整数个数,计算所有非负整数之和。但程序中存在若干错误,请你纠正,并将正确的程序保存到学号文件夹下,文件名为shiyan3_2.c。 #include main( ) { int i, n=20, s, count; int a[n];s = count = 0; for ( i = 1; i <= n; i++ ) scanf("%d",a[i]); for ( i = 1; i <= n; i++ ) { if ( a[i] <0 ) break; s += a[i]; count++; } printf("s=%d\t count=%d\n", s, count ); } 2.程序填空 (1)以下程序的功能是:采用二分法在给定的有序数组中查找用户输入的值,并显示示查找结果。根据题意,将程序写完整,并将程序保存到学号文件夹下,文件名为shiyan3_T1.c。

C语言实验报告《数组》.doc

《c语言程序设计》课程实验报告 ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡篇二:c语言实验报告本(数组函数) 《c语言程序设计》 实验报告 2009~2010学年第二学期 专业 班级 姓名 学号 任课教师 计算机教学实验中心 2010年 5 月 《c语言程序设计》实验报告( 1 ) 学号:姓名:班级:成绩: 任课教师签名: 《c语言程序设计》实验报告( 2 ) 学号:姓名:班级:成绩: 任课教师签名:篇三:c语言实验报告数组 实验报告 实验课程名称高级c语言程序设计 实验项目名称数组 年级 09 级 专业数学 学生姓名李军 学号 0907010170 理学院 实验时间: 2010 年 4 月 22 日 学生实验室守则 一、按教学安排准时到实验室上实验课,不得迟到、早退和旷课。 二、进入实验室必须遵守实验室的各项规章制度,保持室内安静、整洁,不准在室内打闹、喧哗、吸烟、吃食物、随地吐痰、乱扔杂物,不准做与实验内容无关的事,非实验用品一律不准带进实验室。 三、实验前必须做好预习(或按要求写好预习报告),未做预习者不准参加实验。 五、实验中要节约水、电、气及其它消耗材料。 六、细心观察、如实记录实验现象和结果,不得抄袭或随意更改原始记录和数据,不得擅离操作岗位和干扰他人实验。 七、使用易燃、易爆、腐蚀性、有毒有害物品或接触带电设备进行实验,应特别注意规范操作,注意防护;若发生意外,要保持冷静,并及时向指导教师和管理人员报告,不得自行处理。仪器设备发生故障和损坏,应立即停止实验,并主动向指导教师报告,不得自行拆卸查看和拼装。 八、实验完毕,应清理好实验仪器设备并放回原位,清扫好实验现场,经指导教师检查认可并将实验记录交指导教师检查签字后方可离去。 九、无故不参加实验者,应写出检查,提出申请并缴纳相应的实验费及材料消耗费,经

实验六+数组程序设计

实验六数组程序设计 【实验目的】 1、掌握使用一维数组编程方法 2、掌握使用字符数组处理字符串的方法 2、了解二维数组 【实验性质】验证性 【实验要求】 1、认真阅读本次实验的目的,了解本次实验要求掌握的内容 2、在程序改错题旁,将程序中存在的错误修改过来 3、将编程题的代码在预习报告中写出来 4、在实验时,将实验要求的基本题(程序改错和编程题)根据预习报告中编写的代码, 在VC环境中编写出来 5、在VC中将编写的程序编译、调试,能正确运行结果 6、将正确程序文件(以自己姓名拼音_题号命名,如:zhangsan_1_2)上传至网络硬 盘,上传密码:物理1班为:wuliyiban ;物理二班为:wulierban 。 7、争取完成选作题 【实验内容】 1、程序改错 1) 下面程序的功能,是从键盘输入一个数组(数组长度为10),查找数组中正数的 个数。源代码如下,程序中存在错误,请将其改正写在旁边。 #include "stdio.h" main(){ int a(10);/*定义数组*/ int count,i;/* i循环变量 count 正数个数*/ for(i=0;i<=10;i++){/*循环输入*/ scanf("%d",a[i]); } count=1; for(i=0;i<=10;i++){/*查找正数*/ if(a(i)>0) count++; } printf("数组中正数有:%d个",count); } 2、编程题

1) 从键盘输入一个字符串,将其中的大写字母变小写字母,小写字母变大写字母,并输出 。 【要求】 (1)用字符数组表示存储字符串(字符串最大为100)。 (2)使用scanf 函数逐个输入字符保存在字符数组中 (3)使用printf 函数逐个输出字符数组中的字符 2) 输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。 【要求】 (1)数组长度定义为10 (2)输出数组时每个元素占8个宽度,每行5个 3) 编程序按下列公式计算s 的值(其中x 1、x 2、…、x n 由键盘输入): 201)(x x s n i i -=∑= (其中x 0是x 1、x 2、…、x n 的平均值) 【要求】 (1)用数组保存x 1、x 2、…、x n 的值。 (2)n 的值从键盘输入 3 选作题 1)求从一个字符串中删除所有指定字符的其余字符串。如字符串为“abcaca ”,删除字符“a ”后,为“bcc ”。 【编程点拨】 (1)使用字符数组保存字符串,从字符串数组的第一个元素开始遍历 (2)如果当前的元素与需要删除的元素相等,则删除。 (3)删除是指将该元素前移到需要拷贝的位置

实验6数组

实验6 数组 一、实验目的: 1、理解数组的作用、特点; 2、掌握一维数组、二维的定义、引用、初始化,能够与循环结合实现批量数据处理(如输入、输出,比较大小,交换等); 3、熟悉打擂台、排序、查找等典型算法。 4、理解数组名作函数参数时,实参向形参传递的是数组首地址,可以利用此特性在函数中修改数组元素的值,从而达到改变实参数组的目的。 二、实验内容 1、(基础题)有一个数列,它的第一项为1,第二项为2,第三项为3,以后每一项都等于它的前三项之和。使用一维数组编程实现功能:计算该数列的前20项并赋值给数组,然后以逆序方式输出,每一行5个数据。如下图所示: 2、(基础题)编程计算数组各元素的平方和,要求如下: (1)void array_input(int array[], int n)的功能是:输入整型数组array 的各元素值,参数n是数组元素的个数; (2)int square_sum(int array[], int n)的功能是:对整型数组array的各元素的平方求和,参数n是数组元素的个数; (3)主函数的功能:定义一个是长度为6的整型数组,通过调用array_input()输入各元素的值,再调用square_sum()得到各元素平方和,最后输出结果; (4)主函数在前,上述两个函数在后面定义。程序运行如下图所示:

3、(基础题)编写程序实现如下功能:先定义两个长度为31的字符数组str1、str2,然后输入两个字符串保存到str1、str2中;现调用字符串处理函数分别进行以下处理: (1)分别计算两个字符串的长度并输出; (2)输出两个字符串中的较大值; (3)再定义一个字符数组str,将str1、str2两个字符串连接存至str中并输出。如下图所示: 程序代码:

数组的应用实验报告

数组的应用 电力实10 郝毅(201001000707)上机时间:周二上午 一实验目的 1 掌握数值型一维数组及二维数组的定义,初始化,以及输入输出的方法。 2 掌握用一维数组及二维数组实现的算法。 3 掌握字符型数组的定义,初始化,以及输入输出的方法。 4 掌握用字符型数组解决字符串问题的方法。 5 掌握常用字符串处理函数。 6 掌握用数组作为函数形参的相关语法规则和编程技巧。 7 掌握在VisualC++集成环境中调试与数组相关程序的方法。 二程序分析 1 Step1:定义数值型一维数组,及变量n,max,min,I,c; Step2:输入n的值,利用for语句,从键盘输入n个数据,存放在数组中。 Step3;利用for语句遍历n个数组元素,利用max存放最大值,利用min存放最小值; Step4:利用变量c将最大值与a[n-1]交换位置,并将min与a[0]交换位置; Step5;;利用for语句输出数组的前n个元素。 2题 Step1:定义数值型一维数组,整型变量s;

Step2:利用while语句输入一组数并存放在数组中,同时对该组数求和。 Step3:求出数组预案数的平均值,利用for语句遍历数组元素,并利用计数器计数其中大于等于平均值的实数个数。 Step4:输出计数器的值; 3题 Step1:定义数值型一维数组,及变量i; Step2:利用for语句遍历从1到100,将所有能被7或11整除的整数存放在数组中。 Step3:利用for语句输出数组元素十个数一行。 4题 Step1:定义数值型一维数组,数组长度为50;变量s,i,c=51;Step2:利用while语句将一组互不相同且非0的整数存放在数组中,Step3:输入s的值。 Step4:利用for语句遍历数组元素,找出与s相同的元素,并记录其位置c=I,若不存在,则c=51; Step5:判断c的值,若小于51,则输出i的值,否则输出该数不存在; 5题 Step1,定义两个一维数组a[8],b[8],并初始化a[20]为{1,2,5, 1,1,3,7,0},及变量c,i,j; Step2:输入变量c的值。

实验七 数组程序设计

实验七数组程序设计(4学时) 一、实验方式:一人一机 二、实验目的: 1、掌握数组的定义、赋值和输入输出的方法。 2、学习用数组实现相关的算法(特别是排序算法)。 3、掌握C语言中字符数组和字符串处理函数的使用。 三、实验内容: 说明:前四题为必做题目,后两题为选做题目。 1、下列程序的功能是:输入10个整数,按每行3个数输出这些整数,最后 输出10个整数的平均值。程序中有几处错误,试找出它们后加以修改,并上机验证修改结果。 #include void main( ) { int i,n,a[10],avg; for(i=0;i void main( ) { int i,a[10]; float avg=0; printf("欢迎请输入10个整数:\n"); for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=0;i<10;i++) { if(i%3==0) printf("\n"); printf("%d ",a[i]); } for(i=0;i<10;i++) avg+=a[i];avg=avg/10; printf("\navg=%f\n",avg);

} 实验调试记录:--------------------Configuration: 71ext - Win32 Debug-------------------- Compiling... 71ext.c Linking... 71ext.exe - 0 error(s), 0 warning(s) 参考答案: 2、写一个函数,对输入的10个整数按从小到大的顺序排序(升序,用冒泡 排序实现)。(实验指导书P147) 实验步骤与过程: /*ex7_1.cpp*/ #include void sort1(int s[],int n) { int i,j; int t; for(i=0;i<10;i++) for(j=0;j<10;j++) if(s[j]

实验6数组——参考答案

实验6 数组 一、一维数组实验 2. 编程:输入长度为10的整型数组并输出;然后将其逆序存放后再输出。例如: Input 10 number: 0 1 2 3 4 5 6 7 8 9 After reversed: 9 8 7 6 5 4 3 2 1 0 #include<> void main() { int i, j, a[10], t; printf("Input 10 number: "); for(i=0; i<10; i++) /*读入数据*/ scanf("%d", &a[i]); printf("origin data: "); for(i=0; i<10; i++) /*输出原始数据*/ printf("%d ", a[i]); printf("\n"); for(i=0,j=9; i

#include <> void main() { int i, n , max, min, a[10], sum; float average; printf("Input n (1 a[max]) max= i; if(a[i] < a[min]) min= i; } printf("max=%-5d index=%d\n", a[max], max); printf("min=%-5d index=%d\n", a[min], min); printf("average=%.2f\n", average); } else printf("数据超出范围"); } 4. 编程:青年歌手参加歌曲大奖赛,有10个评委对她(他)进行打分,试编程求这位选手的平均得分并输出(去掉一个最高分和一个最低分)。 #include <> void main() { int i, max, min; float a[10], ave; printf("请输入10个评委的打分:"); for(i=0, ave=0; i<10; i++) /*输入分数并求累加和*/ {

数据结构_实验3_串和数组

实验3 串和数组的相关操作 一,实验目的 理解并掌握串的逻辑结构和定长顺序存储方式; 理解串的相关基本算法; 编程对相关算法进行验证。 理解数组的逻辑结构和顺序存储方式; 掌握对称矩阵和稀疏矩阵的压缩存储方法; 掌握稀疏矩阵的三元组顺序表表示法和快速转置运算。 二,实验内容 3.1 串的模式匹配运算 编写一个程序,实现顺序串的各种模式匹配运算,并在此基础上设计主程序完成如下功能: (1)建立目标串s=‘abcabcdabcdeabcdefabcdefg’和模式串t=‘abcdeabcdefab’;(2)采用简单模式匹配算法求t在s中的位置; (3)由模式串t求出next值和nextval值; (4)采用KMP算法求t在s中的位置; (5)采用改进的KMP算法求t在s中的位置。 3.2 数组的操作 1.建立一个n*n的对称矩阵A;用动态分配的一维数组B对矩阵A进行压缩存储,输出矩阵A和一维数组B; 2.在B中查找对称矩阵A中第row行,第col列(下标从1开始)的元素,输出该元素值; 3.建立一个稀疏矩阵C,输入其行数,列数和非零元个数,用三元组顺序表存储该矩阵,并按矩阵形式输出稀疏矩阵B; 4.对稀疏矩阵C做快速转置运算得到矩阵D,并按矩阵形式输出转置后的矩阵D。【要求】 1.矩阵元素相关信息要从终端输入; 2.在三元组顺序表中按行优先顺序存放非零元素; 3.具体的输入和输出格式不限; 4.算法要具有较好的健壮性,对错误操作要做适当处理。 三,源代码及结果截图 3.1 #include

#include #include #define MaxSize 100 typedef struct { char data[MaxSize]; //定义可容纳MaxSize个字符的空间 int length; //标记当前实际串长 }SqString; void StrAssign(SqString &str,char cstr[]) { //由串常量cstr创建串str int i; for(i=0;cstr[i]!='\0';i++) str.data[i]=cstr[i]; str.length=i; } void DispStr(SqString s) { //输出串s的所有元素 int i; if(s.length>0){ for(i=0;i=t.length)

相关文档
最新文档