计算机程序设计基础 实验报告
实验十: 实验名称 数组(一) 实验地点 机房 姓名 张 三 专业 班级 学号 2 日期
【实验目的】
(1) 掌握一维数组和二维数组的定义、赋值和输入输出的方法 (2) 掌握字符数组和字符串函数的使用 (3) 掌握数组的基本操作和排序算法 【实验要求】
(1) 熟悉掌握一维数组和二维数组的定义、赋值和输入输出方法 (2) 掌握字符数组和字符串函数的使用 (3) 掌握数组的增加元素和删除元素的操作
(4) 掌握数组的排序算法(比较、选择和冒泡三种算法,要求至少会一种) 【实验环境】
(1) Microsoft XP操作系统 (2) Microsoft VC++ 6.0 【实验内容】 1. 字符串排序
题目描述:输入3个字符串,按字典序从小到大进行排序,每个字符串长度不超过1000个字符。
输入:输入数据 有一行,分别为3个字符串,用空格分隔。 输出:输出排序后的三个字符串,用空格分隔。 样例输入:cdef bcde abcd 样例输出:abcd bcde cdef 提示:
三个数的排序,无须使用排序算法,使用if语句可以实现。值得注意的是字符串的比较方法,不能直接使用比较运算符进行比较,而需要strcmp函数;字符串的交换也不能直接进行赋值操作,而需要使用strcpy函数。
27
2. 英文金曲大赛
题目描述:
渊子在大一的时候参加过“英文金曲大赛”的节目。渊子自告奋勇接下了算出大家的总得分的任务。当时有n个评委,每个评委都要给选手打分,现在要求去掉一个最高分和去掉一个最低分,再算出平均分。结果精确到小数点后两位。
输入:
测试数据包括多个实例。每组数据由三部分组成,首先是评委人数n,(3≤n≤10),然后是n个评委们对该选手的评分,紧接着是选手的名字,名字的长度不超过30个字符,输入直到文件结束。
输出:
算出每位选手名字和最终得分,结果保留两位小数。 样例输入:
7 10 10 10 10 10 10 9 xiaoyuanwang 6 8 9 10 beast 样例输出:
xiaoyuanwang 10.00 beast 9.00
3. 字符过滤
题目描述:
输入一个字符串str和一个过滤字符串s(代表一个过滤表),将str中所有来自过滤表字符都滤除。
输入: 输入数据有2行,第一行为str,第二行为s。 输出: 输出滤除后的字符串。 样例输入: asf$$a sf$$ $a
样例输出: sf sf
4. 数组逆序
28
题目描述:
有n个整数,使其最后m个数变成最前面的m个数,其他各数顺序向后移m(m 输入: 输入数据有2行,第一行的第一个数为n,后面是n个整数,第二行整数m。 输出: 按先后顺序输出n个整数。 样例输入: 5 1 2 3 4 5 2 样例输出: 4 5 1 2 3 5. 简单排序 题目描述: 给定N个整数,请你对这些整数进行升序排列并输出。(比较、选择、冒泡任选一种) 输入: 输入数据有多组,第一行是测试数据的组数T,接下的T行中,每行表示一组测试数据,每组测试数据的第一个数字为N(1<=N<=1000),接下来是N个整数。 输出: 输出每组测试数据排序后的结果。每组测试数据占一行。 样例输入: 2 3 2 1 3 4 1 3 4 2 样例输出: 1 2 3 1 2 3 4 6. 数列有序! 题目描述: 有n(n<=100)个整数,已经按照从小到大顺序排列好,现在另外给一个整数m,请将该数插入到序列中,并使新的序列仍然有序。 29 输入: 输入数据包含多个测试实例,每组数据由两行组成,第一行是n和m,n个数,插入m后,整个数列要有序。第二行是已经有序的n个数的数列。n和m同时为0表示输入数据的结束,本行不做处理。 输出: 对于每个测试实例,输出插入新的元素后的数列。 样例输入: 3 3 1 2 4 0 0 样例输出: 1 2 3 4 【实验方法】 1.字符串排序 【源代码】 【运行结果】 【结论】 2.英文金曲大赛 【源代码】 【运行结果】 【结论】 3.字符过滤 30

