实验8-2 指针 下载本文

实验8-2 指针(二)

1

【实验目的】

(1)进一步掌握指针的高级应用 (2)能正确使用指针引用数组元素

(3)能正确使用指向数组的指针变量和指向字符串的指针变量

【实验要求】

(1)熟练掌握调用函数时实参与形参的对应关系 (2)能正确使用指针引用数组元素

(3)能正确使用指向数组的指针变量和指向字符串的指针变量

【实验环境】

(1) Microsoft XP操作系统 (2) Microsoft VC++ 6.0

【实验内容】

1、Encoding http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1248

题目描述:

给定一个只包含大写字母'A'~'Z'的字符串,我们可以采用如下方法对其进行编码: 1. 子串中包含k个连续相同的字母X,可编码为kX。 2. 如果k值为1,k值被忽略。 输入:

41

第一行包含一个整数N(1<=N<=100),表示测试数据的组数。

下面N行是N个待编码字符串。字符串中只包含'A'~'Z'的大写字符,字符串长度不超过10000。

输出:输出编码好的字符串。每个字符串占一行。 样例输入: 2 ABC ABBCCC 样例输出: ABC A2B3C

2、剪花布条 http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1248

题目描述:

一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案。对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢?

输入:

输入中含有一些数据,分别是成对出现的花布条和小饰条,其布条都是用可见ASCII字符表示的,可见的ASCII字符有多少个,布条的花纹也有多少种花样。花纹条和小饰条不会超过1000个字符长。如果遇见#字符,则不再进行工作。

输出:

输出能从花纹布中剪出的最多小饰条个数,如果一块都没有,那就老老实实输出0,每

42

个结果之间应换行。

样例输入: abcde a3 aaaaaa aa #

样例输出: 0 3

提示:可以使用strstr函数

3、字符串排序2 http://acm.zjgsu.edu.cn/JudgeOnline/problem.php?id=1999 题目描述:请编写C程序,输入5个不同的且为字符格式的学生编号,将其先由大到小排序,再将最大的学生编号和最小的学生编号互换位置,然后输出此时5位学生的编号。

输入: 输入5位学生的编号(只含数字字符、英文字母或空格)。 输出: 输出按题意要求排序后的5位学生的编号。 样例输入 good1 tiger100 horse2011 mouse 022 21century 样例输出

43

21century mouse 022 horse2011 good1 tiger100

4、密码 http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1395

描述:网上流传一句话:\常在网上飘啊,哪能不挨刀啊~\。其实要想能安安心心地上网其实也不难,学点安全知识就可以。

首先,我们就要设置一个安全的密码。那什么样的密码才叫安全的呢?一般来说一个比较安全的密码至少应该满足下面两个条件:

(1).密码长度大于等于8,且不要超过16。

(2).密码中的字符应该来自下面“字符类别”中四组中的至少三组。这四个字符类别分别为:

1.大写字母:A,B,C...Z; 2.小写字母:a,b,c...z; 3.数字:0,1,2...9;

4.特殊符号:~,!,@,#,$,%,^;

给你一个密码,你的任务就是判断它是不是一个安全的密码。

输入:输入数据第一行包含一个数M,接下有M行,每行一个密码(长度最大可能为50),密码仅包括上面的四类字符。

输出:对于每个测试实例,判断这个密码是不是一个安全的密码,是的话输出YES,

44

否则输出NO。

样例输入 3

a1b2c3d4 Linle@ACM ^~^@^@!% 样例输出 NO YES NO

5、约瑟夫问题 http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1480

描述: n个人想玩残酷的死亡游戏,游戏规则如下:

n个人进行编号,分别从1到n,排成一个圈,顺时针从1开始数到m,数到m的人被杀,剩下的人继续游戏,活到最后的一个人是胜利者。请输出最后一个人的编号。

输入: 输入n和m值。1

第一轮:3被杀 第二轮:1被杀

45