当前位置:文档之家› 实验五 数组_2010

实验五 数组_2010

实验五 数 组
[实验目的]
1、通过编程及上机调试,掌握数组类型的使用方法。

2、掌握字符数组的使用方法。

3、将数组灵活应用于程序设计中。

[实验内容与步骤]
1、计算、保存和输出Y i
Y X X i i i =+2522s i n()s i n () i=0,2,3,...,9
X i 由键盘输入。

2、某选举活动有五位候选人。

候选人按1~5编号,投票工作是在选票上方标记出某位候选 人的编号即可。

试编写一程序,使用数组变量count 保存并输出每位候选人的得票数。

如果所读取数为-1,读取选票结束;如果所读取数不在1~5的范围内,该选票被视作“废 票”, 程序应可以计算出废票数。

3、读入一串字符,以‘!’结束。

分别统计其中数字0,1,2,...,9出现的次数。

4、输入一串字符,以‘?’结束。

统计各字母出现的次数,并按字母出现的多少输出(先 输出次数多的,次数相同的按字母表顺序输出,不出现的字母不输出)。

例:输入 5B3aA+4-HDEH5DH?
输出 H 3
D 2
A 1
B 1
E 1
a 1
5、输入字符数组,剔除其中所有的字符‘c ’后再输出。

6、编写一个程序,输入两个字符串str1和str2,要求各串中无重复出现的字符,求两者的 交集。

若该交集非空,则输出结果。

7、输出下列形式的杨辉三角形的前10行
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1

8、输入下述8个国家名字的字符串:CHINA 、JAPAN 、KOREA 、INDIA 、CANADA 、 AMERICA 、ENGLAND 和FRANCE ,要求将这些国名按字典顺序排序。

[习题与思考题]
1、插入排序。

以任意次序读入10个数。

将第一个数放在数组A 的第一个元素中。

以后与 已存入数组A 中的数进行比较,确定它在从小到大的排列中应处的位置。

将该位置及其
后面的元素向后推移一个位置,将新读入的数据填入空出的位置中。

这样在数组A中的数总是从小到大排列的。

10个数据处理完后输出数组A。

(其算法请参见流程图)2、有15个数存放在一个数组中,输入一个数,用折半查找法找出该数是数组中第几个元
素。

若该数不在数组中,则打印出“No found”。

3、输入3行3列的矩阵A,然后(用函数实现各小题功能)
(1)输出矩阵A。

(2)将对角线之外的上三角形中的每个元素加1,下三角形中的每个元素减1,输出矩阵A。

(3)找出现在在矩阵A中最大的元素及其行、列位置。

并输出。

(4)计算矩阵A的对角线上的元素之和。

(5)计算矩阵A的转置矩阵A T。

(要求将A转置存放)
4、计算2个矩阵a(M行P列),b(P行N列)的乘积。

5、某班学生有若干人(不超过40人),期终共考5门课,每个学生的成绩按学号顺序存
入计算机。

编程完成下列计算:
(1)求出每个学生的总分和平均分;
(2)每门课程的最高分,以及该得分学生的学号;
(3)统计各门课程成绩在60分以下学生所占的百分比。

6、编写一对函数实现互换日期表示法:nday(y,m,d)函数,将某年某月某日转换成这一年的
第几天;monday(y,n,mday)函数,将某年的第几天转换成这一年的某月某日,返回时mday[0]为月份数,mday[1]为这个月的第几天。

7、输入一字符数组,再输入一子字符数组,在前一字符数组中剔除所有的子字符数组后再
输出。

8、编程求解约瑟夫问题:M个人围成一圈,从第一个人开始报数,数到N的人出圈。


由下一个人开始报数,数到N的人出圈。

...印出依次出圈人的编号。

M值预先选定,N 值由键盘输入。

例:M=8,N=5
依次出圈的是5、2、8、7、...
插入排序流程图。

相关主题