2010华为软件设计大赛初级题目;
2010-05-26 21:06
357 查看
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”
类别:软件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”
#include <stdlib.h> #include <stdio.h> #include <string.h> /*1. 逆序输出 • 问题描述: 输入一个字符串,将其逆序后输出。 • 要求实现函数: void converse(const char *pIn, char *pOut) 输入:pIn 输入的字符串 输出:pOut 输出的字符串(pOut空间已经分配,请直接写入,空间长度和pIn长度一致) • 示例 输入:“teqwerasd341” 输出:“143dsarewqet” */ void converse(const char*pIn,char *pOut) { int len=strlen(pIn); for(int i=len-1,j=0;i>=0;--i) { pOut[j++]=pIn[i]; } pOut[len]='/0'; } int main() { char str[50]; char verStr[50]; gets(str); converse(str,verStr); printf("%s",verStr); return 0; }
#include <stdlib.h> #include <stdio.h> /* 2. 兔子产子 • 问题描述: 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子, 假如兔子都不死,请实现函数,计算第month个月的兔子总数? • 要求实现函数: unsigned int rabbits(unsigned int month); 返回:兔子总数 输入:month 第几个月 • 示例 1)输入:month=3;函数返回:4 2)输入:month=6;函数返回:16 */ unsigned int rabbits(unsigned int month) { unsigned int n=(month/2)+1; return (0x00000001)<<(n); } int main() { unsigned int n; scanf("%u",&n); printf("%d",rabbits(n)); return 0; }
#include <stdio.h> #include <stdlib.h> #include <string.h> /* 3. 单词交换 • 问题描述: 读入一行文本,包含若干个单词(以空格间隔,或到文本结束)。将其中以 A 开头的 单词与以 N 结尾的单词,用头尾交换的办法予以置换。 • 要求实现函数: void exchange(const char *pIn, char *pOut) 输入:pIn 输入的文本 输出:pOut 输出的文本(pOut空间已经分配,请直接写入,空间长度和pIn长度一致) • 示例 输入:“AM I OLDER THAN YOU” 输出:“THAN I OLDER AM YOU” */ //拆分字符串成单词数组,然后拼接进pOut void exchange(const char*pIn,char *pOut) { char words[100][30]; //100以内个单词,每个单词长30以内 int length[100];//记录每个单词的长度 char temp[30]; int i=0,j=0,k=0,len=strlen(pIn); while(k<len) { while((words[i][j]=pIn[k])!=' ') { ++j; ++k; } length[i]=j; words[i++][j]='/0'; ++k; j=0; } k=0; int range=--i; while(true) { while(words[k][0]!='A'&&k<range-1) { ++k; } while(words[i][length[i]-1]!='N'&&i>1) { --i; } if(k==range-2||i==1||k>=i) { break; } else { strcpy(temp,words[k]); strcpy(words[k],words[i]); strcpy(words[i],temp); ++k; --i; } } for(int cnt=0;cnt<range+1;++cnt) { strcat(pOut,words[cnt]); strcat(pOut," "); } pOut[len]='/0'; } int main() { char input[100]; char output[100]; gets(input); exchange(input,output); puts(output); return 0; }
相关文章推荐
- 2010齐鲁软件设计大赛题目
- 第四届全国蓝桥杯软件设计大赛 java软件开发本科B组 题目及答案
- 2011年 - 第三届360软件大赛题目 - 第二题 完全利用helper.dll设计ROP
- 09年齐鲁软件设计大赛题目
- 2009年华为软件设计大赛两道编程题
- 各领风骚-首届“华为杯”软件设计大赛答辩
- 简单问题5——2009年华为软件设计大赛题
- 2010齐鲁软件大赛题目(十三).基于iPhone的移动互联网软件创意设计
- 齐鲁大学生软件设计大赛题目——3D智能问答旅游咨询员
- 全国软件设计大赛题目-逻辑推断题目
- [C/C++]2009年华为软件设计大赛两道编程题
- 首届“华为杯”软件编程设计大赛
- 2010中国自主品牌软件产品收入前十家企业名单(华为、中兴与神州数码)
- 全国软件设计大赛
- 软件大赛题目----(第四个)选择
- 全国软件设计大赛--代码设计
- 软件大赛题目----(第九个)求牛的数目
- 华为训练题目:初级——合唱队(递增子序列,DP动态规划问题)
- 软件大赛题目之回溯
- 移动MM首届手机软件设计及创意大赛决赛取得圆满成功