1. 字符串处理

把一个字符串中的除大写字母、小写字母和数字字符之外的其他字符都去掉,输出新字符串。

要求实现函数:

void my_string(char* input, char* output)

【输入】  char* input,输入的字符串

【输出】  char* output, 输出的字符串

【返回】  无

示例

输入:input = “A*(BC&De+_fg/*” 输出:output = “ABCDefg” 输入:input = “aB+_9”

输出:output = “aB9”

#include "stdafx.h"
#include <iostream>
using namespace std;
void my_string(char* input,char* output)
{while(*input!='\0'){   if(((*input>='a')&&(*input<='z'))||((*input>='A')&&(*input<='Z'))||((*input>='0')&&(*input<='9')))*output++=*input;input++;}*output='\0';
}
int _tmain(int argc, _TCHAR* argv[])
{char src[1000];cin>>src;char dst[1000];my_string(src,dst);cout<<dst;system("pause");return 0;
}

2. 掷骰子游戏

在掷骰子游戏中,会根据所掷数字在地图中前进几步,前进完成后需要根据当前地图位置所示的障碍进行相应操作,其中障碍表示:

1) 9:无障碍

2) 1:停掷一轮,即下轮所掷数字无效; 3) 2:后退两步,如果已经到起点不再后退; 4) 3:奖励前进一步

如果在游戏过程中,已经走到地图终点,则游戏结束。根据输入的地图数组,和5个骰子数的数组,返回最终玩家前进了多少步。

要求实现函数:

void dice(int map_len, int* map, int* dice_val, int* output)

【输入】  int map_len,地图数组的长度

int* map,地图数组,值表示障碍

int* dice_val,5个骰子数的数组

【输出】  int *output,玩家共前进了多少步

【返回】  无

注:玩家是从起始位置开始,即地图数组的第一位,骰子数只能是1~6

示例

1) 输入:map_len = 15, map = {9,1,9,9,9,2,9,9,9,9,9,9,9,9,9},dice_val = {1,2,1,3,1},

返回:4

2) 输入:map_len = 16, map = {9,9,9,9,9,1,9,3,9,9,2,9,9,9,9,9},dice_val = {2,1,4,1,6},

返回:15

#include "stdafx.h"
#include <iostream>
#include <stdlib.h>
using namespace std;
void dice(int map_len,int* map1,int* dice_val,int* output)
{int temp=0,i;for(i=0;i<5;i++){if(temp==map_len-1)break;temp+=*dice_val;if(map1[temp]==1){dice_val++;i++;}else if (map1[temp]==2){temp-=2;if(temp<=0)temp=0;}else if(map1[temp]==3)temp++;else;dice_val++;}*output=temp;
}
int _tmain(int argc, _TCHAR* argv[])
{//int map_len=15,m_map[]={9,1,9,9,9,2,9,9,9,9,9,9,9,9,9},dice_val[]={1,2,1,3,1};int map_len=16,m_map[]={9,9,9,9,9,1,9,3,9,9,2,9,9,9,9,9},dice_val[]={2,1,4,1,6};int step=0;dice(map_len,m_map,dice_val,&step);cout<<step;system("pause");return 0;
}

3题目描述:

输入一个字符串,将其中大写字母转换为对应小写字母之后的第五个字母, 若原始大写字母为V~Z, 则转换为对应小写字母的值减21。 其他字符不变,输出转换后的字符串。

例如,对于字母A,则转换为小写字母f;若形参是字母W,则转换为小写字母b 要求实现函数:

void TransferString(const char * pInputStr, long lInputLen, char * pOutputStr);

【输入】 pInputStr:  输入字符串

lInputLen:  输入字符串长度

【输出】 pOutputStr: 输出字符串,空间已经开辟好,与输入字符串等长;

【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出 示例

输入:“Axs3mWss” 输出:“fxs3mbss”

4. 将一个字符串的元音字母复制到另一个字符串,并排序(30分)

问题描述:有一字符串,里面可能包含英文字母(大写、小写)、数字、特殊字符,现在需要实现一函数,将此字符串中的元音字母挑选出来,存入另一个字符串中,并对字符串中的字母进行从小到大的排序(小写的元音字母在前,大写的元音字母在后,依次有序)。 说明:1、  元音字母是a,e,i,o,u,A,E,I,O,U。

2、  筛选出来的元音字母,不需要剔重;最终输出的字符串,小写元音字母排在前面,大写元音

字母排在后面,依次有序。

要求实现函数:void sortVowel (char* input, char* output);

【输入】  char* input,表示输入的字符串

【输出】  char* output,排好序之后的元音字符串。

【返回】  无

示例 :          输入:char *input = “Abort!May Be Some Errors In Out System.“

输出:char *output =“aeeeooAEIO “

#include "stdafx.h"
#include <iostream>
using namespace std;
void sortVowel(char* input,char* output)
{int len=strlen(input);int i,j;char lchar[100];char rchar[100];int x=0,y=0;for(i=0;i<len;i++){if(input[i]=='a'||input[i]=='e'||input[i]=='i'||input[i]=='o'||input[i]=='u'){lchar[x++]=input[i];}else if(input[i]=='A'||input[i]=='E'||input[i]=='I'||input[i]=='O'||input[i]=='U'){rchar[y++]=input[i];}        }char temp;//rchar[y]='\0';//cout<<rchar<<endl;for(i=0;i<x;i++){for(j=i+1;j<x;j++){if(lchar[j]<lchar[j-1]){temp=lchar[j-1];lchar[j-1]=lchar[j];lchar[j]=temp;}    }*output++=lchar[i];}for(i=0;i<y;i++){for(j=i+1;j<y;j++){if(rchar[j]<rchar[j-1]){temp=rchar[j-1];rchar[j-1]=rchar[j];rchar[j]=temp;}}*output++=rchar[i];}*output='\0';
}
int _tmain(int argc, _TCHAR* argv[])
{  char stringin[50]="Abort!May Be Some Errors In Out System.";char stringout[50];//空字符串初始化时必须赋初值sortVowel(stringin,stringout);cout<<stringout;system("pause");return 0;
}

5. 从两个数组的最后一个元素比较两个数组中不同元素的个数

如有array1[5]={77,21,1,3,5}, array2[3]={1,3,5},从array1[4]与array2[2]比较开始,到array1[2]与array[0]比较结束。这样得出它们不同的元素个数为0,若array1[6]={77,21,1,3,5,7},那么他们不同的元素为3。

函数原型为 int compare_array( int len1, int array1[], int len2, int array2[] );

其中,len1与len2分别为数组array1[]和array2[]的长度,函数返回值为两个数组不同元素的个数。

6. 单词统计

题目描述:

输入一段英文文本,用程序统计出现频率最高和最低的两个单词;

英文文本中仅出现这四类字符:空格( )、英文逗号(,)、英文句号(.)、英文大小写字母(a-z、A-Z) 单词之间的分隔符仅考虑这三种:空格( )、英文逗号(,)、英文句号(.); 仅大小写不同的单词算同一个单词;

如果两个单词出现次数相同,则在文本中首次出现的单词优先返回。 返回的单词统一用小写字母返回 例如:

输入字符串“Hello world, i said hello world to the world”,返回“world”,“i” 输入字符串“Somebody like somebody,i do not like it”,返回“somebody”,“i” 要求实现函数:

void WordStat(const char * pInputStr, char * pOutputHotWord, char * pOutputColdWord);

【输入】 pInputStr:  输入字符串,指向一段英文文本

【输出】 pOutputHotWord: 输出字符串,返回出现次数最多的单词,该指针所指存储空间已经分配好,且足够大

pOutputColdWord:输出字符串,返回出现次数最少的单词,该指针所指存储空间已经分配好,且足够大

【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出 示例

输入:“Hello world, i said hello world to the world”

输入:"world "

" i"

#include <iostream>
#include <cstring>
using namespace std;
void WordStat(const char *pInputStr, char *pOutputHotWord, char *pOutputColdWord);
void WordStat(const char *pInputStr, char *pOutputHotWord, char *pOutputColdWord)
{///先将字符串分成一个一个单词赋给一个二维数组int len=strlen(pInputStr);int i,j=0,k=0,num_space=0;char temp[100][1000];for(i=0;i<len;i++){temp[j][k]=pInputStr[i];if(temp[j][k]>='A'&&temp[j][k]<='Z')temp[j][k]+=32;//大写转成小写if(temp[j][k]==' '||temp[j][k]==','||temp[j][k]=='.'){temp[j][k]='\0';j++;k=0;}elsek++;}temp[j][k]='\0';///最后一个要加个结束符//查找不同单词的类型char diffect_word[100][1000];int m,n,x=1;strcpy(diffect_word[0],temp[0]);bool flag=true;for(m=1;m<=j;m++){flag=true;for(n=0;n<m;n++){if(!strcmp(temp[m],temp[n])){flag=false;break;}}if(flag)  strcpy(diffect_word[x++],temp[m]);}//计算每个不同的单词出现的次数int num_word[100]={0};for(i=0;i<x;i++){for(k=0;k<=j;k++){if(!strcmp(diffect_word[i],temp[k]))num_word[i]++;}cout<<num_word[i]<<" "<<diffect_word[i]<<endl;}
//查找num_word的第一个最大值与第一个最小值,对应在temp中的位置int num_max=0;int num_min=0;for(i=1;i<x;i++){if(num_word[num_max]<num_word[i])num_max=i;if(num_word[num_min]>num_word[i])num_min=i;}pOutputHotWord=diffect_word[num_max];pOutputColdWord=diffect_word[num_min];cout<<pOutputHotWord<<endl;cout<<pOutputColdWord;
}
void main()
{const char *input="Hello world,i said hello world to the world ";//注意,豆号后面不要有空格//const char *input="Somebody like somebody i do not like it";char * pOutputHotWord=NULL;char * pOutputColdWord=NULL;WordStat(input,pOutputHotWord, pOutputColdWord);system("pause");
}

2013华为上机题C++编程相关推荐

  1. 2014年华为上机题及代码

    http://blog.csdn.net/dalianmaoblog/article/details/11477997 题目来源于http://blog.csdn.net/hackbuteer1/ar ...

  2. 华为上机题-二师弟的星际加法

    华为上机题-二师弟的星际加法 1 问题描述 我是网络公司的一名普通程序员,英文名Steven,发音比较像"师弟",自从入职培训自我介绍后,大家就称我为"二师弟" ...

  3. 华为上机题汇总----java

        以下华为上机题目都是网上整理得到的,代码都是自己调试过的,由于网上java答案较少,欢迎大家批评指正,也希望对准备华为上机的童鞋们有一点点帮助.在练习的过程中成长,加油!~~  第1题:输入字 ...

  4. c语言上机题库编程,全国二级C语言上机编程题库

    考试被抽到的题库大多数都在了 5计算n门课程的平均分,计算结果作为函数值返回. #include float fun (float *a , int n) { int i; float ave=0.0 ...

  5. 华为上机题之Word Maze(单词迷宫)

    Word Maze 是一个网络小游戏,你需要找到以字母标注的食物,但要求以给定单词字母的顺序吃掉.如上图,假设给定单词if,你必须先吃掉i然后才能吃掉f. 但现在你的任务可没有这么简单,你现在处于一个 ...

  6. 华为上机考试注意事项及编程技巧

    华为上机考试注意事项及编程技巧 这是一篇关于华为招聘软件类职位上机考试的博客,主要介绍一下华为机考的流程.注意事项以及一些机试题中常用的编程技巧,写得有点长,但都是尽心尽力敲的,如果真的要参加华为招聘 ...

  7. 二级c语言上机题库及解析,2013年计算机二级C语言上机题库及答案解析(3)

    填空题 给定程序中,函数fun的功能是:在形参ss所指字符串数组中,查找含有形参substr所指子串的所有字符串并输出,若没找到则输出相应信息.ss所指字符串数组中共有N个字符串,且串长小于M.程序中 ...

  8. 全国计算机二级vb 无纸化,2013年3月全国计算机等级考试二级VB无纸化上机题题库题干及答案解析(2)...

    全国计算机等级考试二级VB无纸化上机题库[21-40] 2013年3月全国计算机等级考试 二级VB上机题库题干 第二十一套题干186 一.基本操作题 请根据以下各小题的要求设计Visual Basic ...

  9. 华为2017年实习招聘上机题

    表示今年华为的上机题是在牛客网上进行的.难度较往年来说降低了几个档次,可能是实习生招聘的要求不是那么高.之前一直在刷华为武研所的OJ,总体而言今年实习生的上机题水平与OJ上的简单题一致. 离上机已经过 ...

最新文章

  1. 国内外最顶级的8款OKR管理工具盘点
  2. 后摩尔定律时代的芯片新选择!
  3. using 的三种用法
  4. CentOS 7核心安装及基本配置
  5. SQL记录-PLSQL异常
  6. OpenCV学习笔记六-提高对比度
  7. python桌面翻译_Python实现桌面翻译工具【新手必学】
  8. 2018年全国《程序员高考》真题试卷
  9. python开发图片_python实现简单的图片隐写术
  10. System.Web.HttpException: 无法验证数据解决办法
  11. 河流淹没分析_【专题归纳】关于河流地貌的知识点整理!附中国十二条著名江河名称的由来...
  12. 代码管理学:功能实现,一定要与界面分开
  13. 嘉兴 机器人仓库 菜鸟_投资 2.1 亿!又一高端智能装备项目落户嘉兴科技城
  14. pe修改rpc服务器不可用,电脑rpc服务器不可用,教你电脑rpc服务器不可用怎么解决...
  15. android app内存分析,Android手机App内存占用测试方法
  16. iphone android传照片大小,快速地将iPhone/Android的照片传到电脑上
  17. echarts地图api series_使用echarts结合百度地图API做迁徙图
  18. 教你用Python批量下载音乐功能,无需安装播放器,直接下载!
  19. 网易云音乐外链对比制作
  20. Xcode 6 console

热门文章

  1. PowerPoint2007无法嵌入某些字体
  2. Office365 - How to add user to Yammer group?
  3. 手把手教您使用飞飞影视导航系统搭建一个24小时自动更新的影视网站
  4. ABAP SY-REPID和SY-CPROG的区别
  5. SQL Server 2008远程连接时SQL数据库不成功怎么办
  6. 星际2 地图编辑器 入门手记
  7. 把本地网站部署到腾讯云服务器
  8. 开发之外,我们还用过哪些装X的工具
  9. tiktok广告投放的展现形式!tiktok广告推广账户如何运营?
  10. 旋流式沉砂池计算_细格栅间及旋流沉砂池设计思路