2010年华为软件设计大赛试卷
类别:软件C++语言 高级
编程题(共3题,第1题20分,第2题30分,第3题50分。请上机编写程序,按题目要求提交文件。[详见考试说明]
本试题采用自动测试用例进行评分,测试用例不对考生公开,凡不满足提交要求导致不能编译或用例不通过,不予评分)。
1. 逆序输出
- 问题描述:
输入一个字符串,将其逆序后输出。
- 要求实现函数:
void converse(const char *pIn, char *pOut)
输入:pIn 输入的字符串
输出:pOut 输出的字符串(pOut空间已经分配,请直接写入,空间长度和pIn长度一致)
- 示例
输入:“teqwerasd341” 输出:“143dsarewqet”
2. 兔子产子
- 问题描述:
有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,
假如兔子都不死,请实现函数,计算第month个月的兔子总数?
- 要求实现函数:
unsigned int rabbits(unsigned int month);
返回:兔子总数
输入:month 第几个月
- 示例
1)输入:month=3;函数返回:4
2)输入:month=6;函数返回:16
3. 单词交换
- 问题描述:
读入一行文本,包含若干个单词(以空格间隔,或到文本结束)。将其中以 A 开头的
单词与以 N 结尾的单词,用头尾交换的办法予以置换。
- 要求实现函数:
void exchange(const char *pIn, char *pOut)
输入:pIn 输入的文本
输出:pOut 输出的文本(pOut空间已经分配,请直接写入,空间长度和pIn长度一致)
- 示例
输入:“AM I OLDER THAN YOU” 输出:“THAN I OLDER AM YOU”