华为机试试题汇总解析

合集下载

华为测试工程师机试真题

华为测试工程师机试真题

华为测试工程师机试题目汇总-附答案1.计算字符串最后一个单词的长度,单词以空格隔开。

输入:hello world 输出:5a=input().split()print(len(a[-1])if len(a)>1elselen(a[0]))Python3.x 中input() 函数接受一个标准输入数据,返回为string 类型。

import sysfor line in sys.stdin:#读入数据a = line.split()print len(a[-1])2.写出一个程序,接受一个由字母和数字组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。

不区分大小写。

a=input().lower()b=input().lower()print(a.count(b))注:Python lower() 方法转换字符串中所有大写字符为小写。

3.明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。

然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。

请你协助明明完成“去重”与“排序”的工作(同一个测试用例里可能会有多组数据,希望大家能正确处理)。

while True:try:n=int(input()) #读入第一行:随机整数的个数res=set()for i in range(n):res.add(int(input()))# 读入第n行:n个随机整数组成的数组for i in sorted(res):print(i)except:break注:set是一个无序且不重复的元素集合。

4.•连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组;•长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。

def printStr(string):if len(string) <= 8:print(string + "0" * (8 - len(string)))else:while len(string) > 8:print(string[:8])string = string[8:]print(string + "0" * (8 - len(string)))a=input()b=input()printStr(a)printStr(b)5.写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。

华为面试试题及答案

华为面试试题及答案

华为面试题及答案1、局部变量能否和全局变量重名答:能,局部会屏蔽全局。

要用全局变量,需要使用"::"局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。

对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。

2、如何引用一个已经定义过的全局变量答:extern可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变理,假定你将那个变写错了,那么在编译期间会报错,如果你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错。

3、全局变量可不可以定义在可被多个.C文件包含的头文件中为什么答:可以,在不同的C文件中以static形式来声明同名全局变量。

可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时连接不会出错4、语句for( ;1 ;)有什么问题它是什么意思答:和while(1)相同。

5、do……while和while……do有什么区别答:前一个循环一遍再判断,后一个判断以后再循环6、请写出下列代码的输出内容以下是引用片段:#includemain(){int a,b,c,d;a=10;b=a++;c=++a;d=10*a++;printf("b,c,d:%d,%d,%d",b,c,d);return 0;}答:10,12,1207、static全局变量与普通的全局变量有什么区别static局部变量和普通局部变量有什么区别static函数与普通函数有什么区别全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。

全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式。

这两者在存储方式上并无不同。

华为面试笔试题目(附答案).doc

华为面试笔试题目(附答案).doc

华为面试/笔试题目(附答案)(1)什么是预编译,何时需要预编译:答案:1、总是使用不经常改动的大型代码体。

2、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。

在这种情况下,可以将所有包含文件预编译为一个预编译头。

(2)char * const p char const * p const char *p 上述三个有什么区别?答案:char * const p; //常量指针,p的值不可以修改char const * p;//指向常量的指针,指向的常量值不可以改 const char *p; //和char const *p (3)char str1[] = "abc"; char str2[] = "abc"; const char str3[] = "abc"; const char str4[] = "abc"; const char *str5 = "abc"; const char *str6 = "abc"; char *str7 = "abc"; char *str8 = "abc"; cout < < ( str1 == str2 ) < < endl; cout < < ( str3 == str4 ) < < endl; cout < < ( str5 == str6 ) < < endl; cout < < ( str7 == str8 ) < < endl;结果是:0 0 1 1 str1,str2,str3,str4是数组变量,它们有各自的内存空间;而str5,str6,str7,str8是指针,它们指向相同的常量区域。

华为机试题目全解

华为机试题目全解

华为机试题【2011】1、(stdlib.h里面定义了五种类型、一些宏和通用工具函数。

类型例如size_t、wchar_t、div_t、ldiv_t和lldiv_t;宏例如EXIT_FAILURE、EXIT_SUCCESS、RAND_MAX和MB_CUR_MAX等等;常用的函数如malloc()、calloc()、realloc()、free()、system()、atoi()、atol()、rand()、srand()、exit())#include<stdio.h>#include<stdlib.h>#include<assert.h>#include<string.h>#define LENGTH 13int verifyMsisdn(char *inMsisdn){char *pchar=NULL;assert(inMsisdn!=NULL);if(LENGTH==strlen(inMsisdn)){if(('8'==*inMsisdn)&&(*(inMsisdn+1)=='6')){while(*inMsisdn!='\0'){if((*inMsisdn>='0')&&(*inMsisdn<='9'))inMsisdn++;elsereturn 2 ;}}elsereturn 3;}elsereturn 1;return 0;}int main(){char *pchar=NULL;unsigned char ichar=0;int result;switch(ichar){case 0:pchar="8612345363789";break; case 1:pchar="861111111111111";break; case 2:pchar="86s1234536366"; break; default:break;}result =verifyMsisdn(pchar);printf("result is %d\n",result);}华赛面试:1.char m[]={"I", "LOVE", "CHINA"} char* p=m;printf("%s", *p++);printf("%c", **p);int main(){double x=1;double y;y=x+3/2;printf("%f\n",y);return 0;} //////结果为2.0000003.4.找错unsigned int f(){unsigned char a=123;unsigned char res;while(a-->=0){res+=a;}return res;}//res没有初始化5.struct node{int data;node* pre;node* next;}结构体数组转双向循环链表1. 数组比较(20 分)•问题描述:比较两个数组,要求从数组最后一个元素开始逐个元素向前比较,如果2 个数组长度不等,则只比较较短长度数组个数元素。

华为手机笔试题目及答案

华为手机笔试题目及答案

华为手机笔试题目及答案一、单选题(每题2分,共10分)1. 华为手机的操作系统是基于哪个操作系统开发的?A. AndroidB. iOSC. Windows PhoneD. Symbian答案:A2. 华为手机的EMUI系统是哪个版本开始支持多窗口功能的?A. EMUI 9.0B. EMUI 10.0C. EMUI 11.0D. EMUI 12.0答案:B3. 华为手机的“超级快充”技术,其充电功率最高可达多少瓦?A. 40WB. 50WC. 66WD. 100W答案:C4. 华为手机的“智慧分屏”功能允许用户同时打开多少个应用?A. 2个B. 3个C. 4个D. 5个答案:A5. 华为手机的“一碰传”功能是通过哪种技术实现的?A. NFCB. BluetoothC. Wi-FiD. USB答案:A二、多选题(每题3分,共15分)1. 下列哪些是华为手机支持的5G网络频段?A. n41B. n78C. n79D. n1答案:A, B, C, D2. 华为手机的“智慧识屏”功能可以识别以下哪些内容?A. 文字B. 图片C. 二维码D. 语音答案:A, B, C3. 华为手机的“智慧分屏”功能支持以下哪些操作?A. 拖动分屏B. 调整分屏比例C. 切换应用D. 关闭分屏答案:A, B, C, D4. 华为手机的“超级快充”技术包括以下哪些特性?A. 快速充电B. 低温充电C. 智能充电D. 安全充电答案:A, B, C, D5. 华为手机的“一碰传”功能支持以下哪些设备?A. 华为笔记本B. 华为平板C. 华为智能电视D. 华为智能手表答案:A, B, C三、判断题(每题1分,共5分)1. 华为手机的EMUI系统是基于iOS开发的。

(错误)2. 华为手机的“智慧分屏”功能允许用户同时打开5个应用。

(错误)3. 华为手机的“超级快充”技术充电功率最高可达100W。

(错误)4. 华为手机的“智慧识屏”功能可以识别语音。

2024年其它-华为认证-面试题考试历年真题常考点试题3带答案

2024年其它-华为认证-面试题考试历年真题常考点试题3带答案

2024年其它-华为认证-面试题考试历年真题常考
点试题带答案
(图片大小可任意调节)
第1卷
一.问答题(共2题)
1.外场 RF优化的过程?
2.外场拉网未接通、掉话等的计算公式。

第2卷
一.问答题(共2题)
1.TOP小区处理思路
2.导致语音掉话的原因有哪些。

第1卷参考答案
一.问答题
1.参考答案:
(先 DT 测试,分析测试 LOG ,针对其中的覆盖问题,质差问题,异常事件提出优化方案,调整后,复测,如果有问题继续调整,无问题则闭环。

)
2.参考答案:
(外场拉网,从信令上看,未接通是指出现 RRC 连接请求,但是未出现 connect ,接通率 = 接通次数 / 连接请求次数;掉话指出现 connect ,但是未出现 disconnect ,掉话率 = 掉话次数 /接通次数)
第2卷参考答案
一.问答题
1.参考答案:
设备告警、覆盖问题、干扰问题、邻区问题、参数、其它类型问题。

查明原因后调整。

2.参考答案:
(覆盖、干扰、邻区漏配、参数、硬件故障等)。

华为机试题及答案

华为机试题及答案

华为机试题及答案1、通过键盘输入任意一个字符串序列,字符串可能包含多个子串,子串以空格分隔。

请编写一个程序,自动分离出各个子串,并使用’,’将其分隔,并且在最后也补充一个’,’并将子串存储。

测试:输入:“abc def gh i d"输出:“abc,def,gh,i,d,”#include〈stdio.h〉#include<string.h〉void DivideString(const char *pInputStr,long lInputLen,char *pOutputStr){int i=0,j=0;int flag=0;while(pInputStr[i]==’ '){i++;}for(;i<lInputLen;i++){if(pInputStr[i]==' '){flag=1;continue;}if(flag==1){flag=0;pOutputStr[j++]=’,';}pOutputStr[j++]=pInputStr[i];}pOutputStr[j++]=',’;pOutputStr[j]=’\0’;}int main(){char test[40];char re[40];gets(test);DivideString(test,strlen(test), re);printf(”%s",re);return 0;}2、将输入的字符串(字符串仅包含小写字母‘a’到‘z’),按照如下规则,循环转换后输出:a—>b,b—〉c,…,y—〉z,z->a;若输入的字符串连续出现两个字母相同时,后一个字母需要连续转换2次.例如:aa 转换为bc,zz 转换为ab;当连续相同字母超过两个时,第三个出现的字母按第一次出现算。

测试:输入:char*input="abbbcd” 输出:char*output="bcdcde”#include〈stdio.h〉#include<string.h>void convert(char *input,char*output){int i;for(i=0;i〈strlen(input);i++){if(i==0){output[i]=input[i]+1;if(output[i]==123){output[i]=97;}}else{if(input[i]!=input[i-1]){output[i]=input[i]+1;if(output[i]==123){output[i]=97;}}else{output[i]=input[i]+2;if(output[i]==123){output[i]=97;}if(output[i]==124){output[i]=98;}}}}output[i+1]='\0';}int main(){char in[20]={"asdfzzxzxz"};char on[20];//gets(in);convert(in,on);printf("%s",on);return 0;}3、通过键盘输入一串小写字母(a~z)组成的字符串。

华为面试题及答案

华为面试题及答案

1.请你分别画出OSI的七层网络结构图和TCP/IP的五层结构图。

答:OSI七层网络结构图应用层表示层会话层传输层网络层数据链路层物理层TCP/IP的五层结构图应用层运输层网络层数据链路层物理层2.请你详细地解释一下IP协议的定义,在哪个层上面?主要有什么作用?TCP与UDP呢?答:IP是Internet Protocol的简称,是网络层的主要协议,作用是提供不可靠、无连接的数据报传送。

TCP是Transmit Control Protocol(传输控制协议)的缩写,在运输层,TCP提供一种面向连接的,可靠的字节流服务;UDP是User Datagram Protocol(用户数据报协议)的缩写,在运输层,UDP提供不可靠的传输数据服务3.请问交换机和路由器各自的实现原理是什么?分别在哪个层次上面实现的?答:交换机属于OSI第二层即数据链路层设备。

它根据MAC地址寻址,通过站表选择路由,站表的建立和维护由交换机自动进行。

路由器属于OSI第三层即网络层设备,它根据IP地址进行寻址,通过路由表路由协议产生。

交换机最大的好处是快速,路由器最大的好处是控制能力强。

4.请问C++的类和C里面的struct有什么区别?答:struct的成员的默认访问说明符为Public,而class的成员的默认访问说明符为Private。

其他没有区别----------------------------------------------插播广告:版权所有:朱科欢迎光临我的网站:,各位转贴别删,劳动成果啊----------------------------------------------5.请讲一讲析构函数和虚函数的用法和作用。

答:析构函数是在对象生存期结束时自动调用的函数,用来释放在构造函数分配的内存。

虚函数是指被关键字virtual说明的函数,作用是使用C++语言的多态特性6.全局变量和局部变量有什么区别?是怎么实现的?操作系统和编译器是怎么知道的?答:一些变量在整个程序中都是可见的,它们称为全局变量。

华为最新算法面试题目(3篇)

华为最新算法面试题目(3篇)

第1篇一、题目背景随着信息技术的飞速发展,华为作为全球领先的通信设备供应商,对于算法工程师的要求越来越高。

为了选拔出优秀的人才,华为在面试过程中设置了多轮技术面试,其中算法面试是考察应聘者逻辑思维能力、编程能力和问题解决能力的重要环节。

以下将详细介绍华为最新算法面试题目,帮助广大求职者更好地准备面试。

一、题目一:最大数组和【题目描述】给定一个整数数组,找出一个连续子数组,使其和最大。

返回这个最大和。

【输入】输入为一个整数数组,例如:[-2,1,-3,4,-1,2,1,-5,4]【输出】输出最大连续子数组的和,例如:6【思路】1. 贪心算法:从左到右遍历数组,维护一个变量currentSum,用于记录当前子数组的和。

如果currentSum小于0,则丢弃之前的元素,重新开始计算。

最大和maxSum用于记录遍历过程中遇到的最大和。

2. 动态规划:定义一个数组dp[i],表示以第i个元素结尾的连续子数组的最大和。

dp[i]的值可以通过dp[i-1]与当前元素x的较大值来确定,即dp[i] =max(dp[i-1]+x, x)。

【示例代码】```pythondef maxSubArray(nums):if not nums:return 0currentSum, maxSum = nums[0], nums[0]for x in nums[1:]:currentSum = max(currentSum + x, x)maxSum = max(maxSum, currentSum)return maxSum```二、题目二:换零钱【题目描述】给定一个整数数组arr和一个整数aim,其中arr中的元素表示可用的零钱面额,aim表示需要凑齐的金额。

请找出最少数量的零钱,使得可以凑齐aim元。

【输入】输入为两个整数数组,例如:arr = [1, 2, 5],aim = 11【输出】输出最少数量的零钱,例如:3【思路】1. 动态规划:定义一个数组dp[i],表示凑齐i元需要的最少硬币数。

华为上机题详解

华为上机题详解

今天参加了HW的上级考试,上机考试总共有三道题目,我觉得都是对基本功的考察,所以说基本知识的掌握非常重要,特别是动手写程序的能力,我回来的时候对我的同学说,如果在本科阶段没有自己动手写过上万行的C/C++程序,要想把今天的上机考试题全部做对几乎是不可能的,这只是我个人的感觉,在平时的学习过程中,一定要自己动手去写程序,不要随便拷贝一些程序,否则后悔就来不及了。

第一题是素数的判断,给定一个数字判断是不是素数,这个就非常简单了,假设给定数字是n,从2到n-1去判断有没有数可以被n整除,如果有的话就说明该数不是素数,如果没有就说明该数是素数。

第二题是给定一个整数,把该整数对应的二进制01串转置后输出转置后01串对应的整数,如2的二进制表示为00000010,转置后为01000000,对应的值为64,这里主要考察的是移位操作和或运算,假设给定的数字是n,先把判断n和2取模的结果是否为0,为0说明当前最后一位是0,不为0说明当前最后一位是1,然后根据取模的结果去设置结果对应的二进制数的相关位,每一次循环之后都要把整数n右移一位,这样循环结束之后就可以把结果的相关二进制位设置好。

在设置结果二进制位时使用或操作和移位操作。

对与这些操作我们确实在平时的程序中用到的次数不多,但是如果没有用过的话很难想到使用位操作来解决问题,在编程之美119页有一道题和这道题目很像,但它是计算二进制表示中1的数目。

第三题是高精度乘法,两个整数用字符数组表示,最大位数是100位,然后计算二者乘积的结果,这是这次考试中最难的一道题目。

我们在这里也是使用数组来存储大数和大数的乘积,如果对乘法运算的过程理解的比较深刻,并且之前涉及过高精度运算的程序,这道题做起来还是很容易的,具体程序在我的日志里面有,我也在此再提醒一下自己结果为0的边界条件一定要处理,否则有些测试用例是无法通过的。

HW的这三道上机考试题不是很难,关键是对基本功的考察,最后一道题如果之前没有写过和它相关的任何程序的话,在规定的时间内要做出来还是比较难的,在我们的教材中基本上没有涉及过高精度运算的程序,不过在大二的程序设计与算法研讨课上一位学长讲过高精度加法的程序,如果课后自己动手写过那个程序,我想你一定会想到高精度乘法、高精度除法、高精度减法以及高精度阶乘该怎么做,或许想不到解决方法,但是随便上网一搜类似的程序很多,拿来研究一下,这些高精度计算的问题做起来举比较容易了。

华为面试题汇总与答案_1

华为面试题汇总与答案_1

华为面试题汇总与答案_1面试题参考1.js动态增强行function addRow(tableId,trId){var tableObj = document.getElementById(tableId);var trObj = document.getElementById(trId);//var trIndex = trObj.rowIndex+1;var rows = tableObj.rows.length;var cell = "";var tr = tableObj.insertRow(rows);for(i=0;i cell= tableObj.rows(rows).insertCell(i); cell.innerText= trObj.cells(i).innerText;cell.className= trObj.cells(i).className;cell.innerHTML= trObj.cells(i).innerHTML;}}2.进入页面速度慢如何跟踪问题所在。

数据量大如何处理、如何SQL优化【1】检测SESSION对象是否使用过多。

在代码中加入调试点定位执行时光较长规律代码。

【2】分库,分表。

【3】一、操作符优化In not in is null is not null like二、SQL书写的影响1、同一功能同一性能不同写法SQL的影响。

2 .WHERE后面的条件挨次影响三、SQL语句索引的利用1、不要有多余的数据。

3.项目权限控制是如何实现普通实现为:首先建立职责表,用户表,权限表,然后是职责与用户的关联表,职责与权限的关联表。

依据每一个功能点建立权限数据,当新加入职责信息时将一条或多条权限数据与对应的职责关联起来。

在用户信息中就可将职责数据与用户关联,达到权限管理的目的。

页面通过用户的职责权限信息举行操作监控。

4.多次提交ajax后,返回值是否按提交的挨次返回?Ajax调用大部分为JS,JS的运行速度较快,有可能造成哀求未完成,后面的JS代码继续运行,而返回结果的挨次不一定按哀求挨次返回。

华为机试题目全解

华为机试题目全解

华为机试题【2011】1、(stdlib.h里面定义了五种类型、一些宏和通用工具函数。

类型例如size_t、wchar_t、div_t、ldiv_t和lldiv_t;宏例如EXIT_FAILURE、EXIT_SUCCESS、RAND_MAX和MB_CUR_MAX等等;常用的函数如malloc()、calloc()、realloc()、free()、system()、atoi()、atol()、rand()、srand()、exit())#include<stdio.h>#include<stdlib.h>#include<assert.h>#include<string.h>#define LENGTH 13int verifyMsisdn(char *inMsisdn){char *pchar=NULL;assert(inMsisdn!=NULL);if(LENGTH==strlen(inMsisdn)){if(('8'==*inMsisdn)&&(*(inMsisdn+1)=='6')){while(*inMsisdn!='\0'){if((*inMsisdn>='0')&&(*inMsisdn<='9'))inMsisdn++;elsereturn 2 ;}}elsereturn 3;}elsereturn 1;return 0;}int main(){char *pchar=NULL;unsigned char ichar=0;int result;switch(ichar){case 0:pchar="8612345363789";break; case 1:pchar="861111111111111";break; case 2:pchar="86s1234536366"; break; default:break;}result =verifyMsisdn(pchar);printf("result is %d\n",result);}华赛面试:1.char m[]={"I", "LOVE", "CHINA"} char* p=m;printf("%s", *p++);printf("%c", **p);int main(){double x=1;double y;y=x+3/2;printf("%f\n",y);return 0;} //////结果为2.0000003.4.找错unsigned int f(){unsigned char a=123;unsigned char res;while(a-->=0){res+=a;}return res;}//res没有初始化5.struct node{int data;node* pre;node* next;}结构体数组转双向循环链表1. 数组比较(20 分)•问题描述:比较两个数组,要求从数组最后一个元素开始逐个元素向前比较,如果2 个数组长度不等,则只比较较短长度数组个数元素。

【试题】从网上整理的华为机试题目

【试题】从网上整理的华为机试题目

【关键字】试题一、华为机试——2018年校招10号参加的华为的机试,这次的3道题难度适中。

第一题字符串,第二题贪心算法(会不会?),dp可以解,第三题长整数相乘。

因为题主做过第三题原题,刚开始就把第三题秒了~~然后开始做第一题,一般10分钟就可以搞定。

第二题要想一下,不过也差不多是原题,Le etcode上第55题jump game应该是此题原型。

因为都刷过几乎是原题的原故,一个小时不到3题就AC完了下面是完整题目和代码题目一、给你一个原始字符串,根据该字符串内每个字符出现的次数,按照ASCII码递增顺序重新调整输出。

举例!假设原始字符串为eeefgghhh则每种字符出现的次数分别是1.eee 3次2.f 1次3.gg 1次4.hhh 3次重新排序后输出的字符串如下:efghegheh编写程序,实现上述功能。

【温馨提示】1.原始字符串中仅可能出现“数字”和“字母”;2.请注意区分字母大小写。

1.#include <iostream>2.#include <map>3.#include <vector>4.#include <algorithm>ing namespace std;6.int main(){7. string str;8. int a[128]={0};9. while (cin >> str){10. for(int i=0;i<str.length();i++){11. a[str[i]]++;12. } //caculate the number of each character13. int max = *max_element(a, a+128);14. sort(str.begin(),str.end());15. long i =unique(str.begin(), str.end()) - str.begin();//the location of the "maxium number" character16. str=str.substr(0,i);17. for(int j=0;j<max;j++)18. for(int i=0;i<str.length();i++){19. if(a[str[i]]){20. cout<<str[i];21. a[str[i]]--;22. }23. }24. cout <<endl;25. }26. return 0;27.}题目2、给出一组正整数,你从第一个数向最后一个数方向跳跃,每次至少跳跃1格,每个数字的值表示你这个位置可以跳跃的最大长度。

华为校招技术类机试题及解题思路

华为校招技术类机试题及解题思路

华为校招技术类机试题及解题思路职位类型:技术类机试时间:2021校招(2021年9月)招聘公司:华为机试共三道题,楼主写了一下解题思路,如果有什么错误或者大家有什么别的解题方法,可以在评论中提出来,大家互相交流探讨。

1.括号合法性判断给定一个只有'('和')'的字符串,判断其在语法逻辑上是否合法。

解答:这题只要判断左括号和右括号的数是否相等即可。

用两个变量int a,b存储左右括号数。

一个for循环遍历字符串,遇到左括号a++;遇到右括号b++。

最后若a==b,合法;若a!=b,不合法。

2.整数排序输入一组大于等于0的整数,根据从大到小的顺序排序后输出;如果排序后有连续数时,只输出连续输的最大和最小数。

输入的所有整数都各不相同,即不用考虑两个整数相同的情况。

如:输入4,7,2,1,5,8,9,11 输出11,9,7,5,4,2,1解答:第一步当然是先排序,各种排序法都行。

用Java的话最方便啦,调用Arrays.sort(int[]),一步完成(当然这个是顺着排,输出的时候倒过来就行了)。

接下来是去掉连续数的中间数字。

注意排序后数组的头和尾必然要输出的,于是循环从1:length-2,判断这些元素跟它前后的元素是否都相差1。

System.out.print(arr[length-1] ","); for(i = arr.length - 2; i >0; i --){ if((arr== arr[i 1] -1)&&arr == arr[i-1] 1){ continue; }System.out.print(arr ","); } System.out.print(arr[0]);3.设计一个定时器管理系统,可以动态启动、停止定时器,并能根据已失去的时长自动调整剩余的时间。

运行时间限制:1Sec 内存限制:无限制输入:启动定时器:starttimmer: ID, time举例: starttimmer: 1, 1000启动一个定时器,其ID为1,定时时长time为1000ms 注:定时器ID用例保证非负整数,定时时长一定为正整数停止定时器:stoptimmer: ID举例: stoptimmer: 1停止一个ID为1的定时器注:定时器ID用例保证非负整数,如果停止的定时器ID不存在,则忽略。

华为常见面试问题及参考答案

华为常见面试问题及参考答案

华为常见面试问题有什么_华为常见面试问题及参考答案1、华为公司的全称为()A、深圳市华为技术有限公司B、华为技术有限公司C、华为公司D、我司(答案:B,答A、C者酌情给分,答D者立即辞退,我司三令五申禁止使用该华为内部土语,屡禁不止,老员工不可教也,只好从新员工抓起,格杀勿论)2、华为公司的企业性质是()A、民营B、私营C、国营D、上市公司(答案:A,本题主要让考生了解公司的性质)3、华为公司的商标象征()A、红太阳B、菊花C、扇贝(答案:B,答A者酌情给分,答C者立即辞退,天天就想着吃)4、从下列选项中选择出公司的常务副总裁()A、任正非B、孙亚芳C、李一男D、郑宝用E、张燕燕(答案:BD,答C者立即辞退,让他到李一男的公司去报到吧)5、华为公司的年终奖一般是在每年的什么时候发()(答案:C,切记,因为是年中奖,而不是年终奖)A、**发的B、用自己的奖金去买(答案:B)7、老板常说的土八路,是指()B、本地化的用服兄弟(答案:B)1、你所在的一级部门为()A、技术支援部C、国际技术支援部国内分部D、用服(答案:B,答A、C者酌情给分,答D者作不合格处理,为了提高技术支援部形象,公司早就取消用服这个字眼,而且于2001年春节后悄悄地将技术支援部前加“国际”二字)2、你所在的二级部门为()A、传输产品技术支援管理部B、传输工程部C、传输用服工程中心D、光网络产品技术支援管理部(答案:A,首先得把自己的部门搞清楚,答D者,有远见,有潜力,可以酌情给分,很可能在2001年未就改成这个名字,因为市场中研已经改了,就差技术支援部了)3、传输的商标为()A、SBSB、SDHC、OptiXD、Metro(答案:C,答A者酌情给分,最起码还知道老商标)4、技术支援部与国际技术支援部的关系()A、国际技术支援部是技术支援部下面的一个部门,负责海外B、技术支援部是国际技术支援部下面的一个部门,负责国内C、技术支援部是国际技术支援部的前身D、国际技术支援部是技术支援部的前身(答案:C)1、SBS是()A、传输产品的老商标B、同步骨干系统C、傻不傻的拼音缩写D、帅不帅的拼音缩写(答案:AB,答CD者立即辞退)2、SDH是()A、传输产品商标B、同步数字序列C、傻得很的拼音缩写D、傻得好的拼音缩写(答案:B,答CD者立即辞退)3、由于你是新员工,没有公配手机时,当你在现场遇到紧急事故时,你会()向公司求助A、打用户机房内的电话B、借用户手机C、拔110D、拔200或300E、立即打车回办事处(答案:D,答CE者立即辞退,按照公司规定,不能随便使用用户的电话,以提高公司形象)4、在开局时,用户问你在华为干几年了,你会回答()A、我是新员工B、1年多了C、2年多了D、3年多了(答案:B,答A者按不合格处理,按照公司规定,不能说自己是新员工,几千万的设备,怎能让一个新员工用来练兵,用户知道鼻子不气歪才怪,答CD 者,用户会哼之以鼻,在华为做了2、3年,还在下面撅个腚开局,鬼才相信你的话呢!)5、接上题,假如你回答说在华为干1年多了,用户会说()A、那你一定是新员工了B、那你一定是老员工了(答案:B,用户对华为很了解,都知道你如果在华为做一年,就已经是老员工了)6、接上题及上上题,用户会继续问,“那你咋连手机、便携机,一个都没有呢?”,你会回答()A、啊,我还没有转正咧,等俺转正时,误码仪、手机、便携机,一个都不能少B、啊,没有关系,正是由于我是老员工,所以开局用不着C、啊,真倒霉,在来的路上,被土匪打劫了D、啊,被我的两个徒弟拿走了,因为他们是新员工,没有工具胆小,有了工具好壮胆(答案:BCD,答A者,立即辞退,这么点事都搞不定)7、当你发现用户的机房中没有拖鞋时,你会()A、入乡随俗,直接进机房B、光脚丫C、马上出去自己花钱买几双拖鞋送给用户D、马上出去买几双拖鞋送给用户,之后开票回来贴票报销E、马上出去买几双拖鞋送给用户,之后开票找局长报销(答案:C,答A者,立即辞退,答B者,酌情给分,答D者,不合格处理,答E者,简直是在找死,立即辞退)8、技术支援工程师工作的特点()A、白天睡觉,晚上干活B、用户随叫随到C、用户就是上帝,用户怎么说,我们就怎么做D、我是上帝,我想咋干就咋干(答案:ABC,答D者,立即辞退)9、在与客户开会及纸面件交流时,你会使用()来称呼对方A、局方B、用户C、客户D、贵公司(答案:BCD,答A者,立即辞退,我司三令五申禁止使用该华为内部土语,屡禁不止,老员工不可教也,只好从新员工抓起,格杀勿论)10、工程师甲对乙说:“晚上不去泡吧吗”,乙说:“哦,真不巧,我晚上要去市局割接,下次吧”。

华为上机题整理大全及答案解析

华为上机题整理大全及答案解析

1、数组中最大数与最小数之和 (4)2、两个长整型的和 (5)3、删除串中重复出现的字符 (6)4、将串中重复出现的字符进行压缩 (8)5、操作数1 运算符操作数2 (9)6、约瑟夫环问题 (11)7、去掉数字串中的最大数和最小数 (13)8、身高差值最小的两个身高 (14)9、删除子串 (15)10. 实现高精度的十进制加法 (17)11、10个学生及格线 (23)12、亮着的电灯数 (24)14、字符串按照特殊规则转换 (25)15、字符串中查找单词 (27)16、数组中不同的一个数 (28)17、数组中不同的两个数 (29)18、链表以k翻转 (31)19、链表相邻元素翻转 (34)20、字符串中小括号中括号匹配 (36)21、一行数字中找子数 (38)22、字符串M化成以N为单位的段 (40)23将电话号码 one two 。

nine zero (41)24.将整数倒序输出 (44)25、括号匹配 (46)26约瑟夫问题 (47)27.统计数字出现的次数,最大次数的统计出来 (48)28. .字符串首字母转换成大写 (50)29. 子串分离 (50)29. 子串分离题目描述:通过键盘输入任意一个字符串序列,字符串可能包含多个子串,子串以空格分隔。

请编写一个程序,自动分离出各个子串,并使用’,’将其分隔,并且在最后也补充一个’,’并将子串存储。

如果输入“abc def gh i d”,结果将是abc,def,gh,i,d,要求实现函数:void DivideString(const char *pInputStr, long lInputLen, char *pOutputStr); 【输入】 pInputStr:输入字符串lInputLen:输入字符串长度【输出】 pOutputStr:输出字符串,空间已经开辟好,与输入字符串等长;方法一:void DivideString(char*pInputStr,long iInputLen,char*pOutputStr){int cnt;while(*pInputStr!='\0')//用空来判断串结束,并没有用到串长{if(*pInputStr!=' '){cnt=0;*pOutputStr++=*pInputStr++;}else{cnt++;if(cnt==1)//用cnt来实现两个单词之间有多个空格时也只替换一个空格为, *pOutputStr++=',';pInputStr++;}}*pOutputStr++=',';*pOutputStr='\0';}方法二:void DivideString(char*pInputStr,long iInputLen,char*pOutputStr){int i,cnt=0,k=0;For(i=0;pInputStr[i]!=’’;i++);//不要忘了把串首的空格给剔除for(i<iInputLen;i++)//利用长度这个参数,i指示输入指针{if(pInputStr[i]!=' '){cnt=0;pOutputStr[k++]=pInputStr[i];//k指示输出指针,与i的增加并非同步}else{cnt++;if(cnt==1)pOutputStr[k++]=',';}}pOutputStr[k++]=',';pOutputStr[k]='\0';}void main(){char *a="I am a good boy";char*b=(char*)malloc(strlen(a)+1);//应该加2吧,末尾要存放一个,一个串结束标识符DivideString(a,strlen(a),b);printf("%s\n",b);}27.统计数字出现的次数,最大次数的统计出来输入:323324423343输出:3,6#include <stdio.h>#include <string.h>int main(){char *pInputStr="2343545466666789";int hash[10]={0};int max,max_n,i;//统计次数for(i=0;i<strlen(pInputStr);i++)hash[pInputStr[i]-'0']++;//串转化为数字//寻找最大的次数max=hash[0];for(i=0;i<10;i++){if(hash[i]!=0)//有些数字的出现次数可能为0,使用此句可以避免下面的比较{if(hash[i]>max)//等价语句:max=max>hash[i]?max,hah[i];{max=hash[i];max_n=i;}printf("the number %d 出现%d次\n",i,hash[i]);}}printf("数字%d出现次数最多:%d\n",max_n,max);return 0;}28. .字符串首字母转换成大写举例:输入:this is a book返回:This Is A Book#include <stdio.h>int main(){char a[]="i am is a boy";int i;//int n=strlen(a);char b[256]={0};for(i=0;i<strlen(a);i++){if(a[i]==' ')a[i+1]=a[i+1]-32;b[i]=a[i];}b[0]=a[0]-32;printf("原串为:%s\n",a);printf("新串为:%s\n",b);return 0;}1、数组中最大数与最小数之和1.第一题的题目大概是输入整型数组求数组的最小数和最大数之和,例如输入1,2,3,4则输出为5,当输入只有一个数的时候,则最小数和最大数都是该数,例如只输入1,则输出为2;另外数组的长度不超过50#include<stdio.h>main(){int num[50]={0};int i,n;printf("请输入整型数组的长度(1~50):");scanf("%d",&n);printf("请输入整型数组的元素:");for (i=0;i<n;i++){scanf("%d",&num[i]);}int min_num=num[0];int max_num=num[0];for(int j=0;j<n;j++){if(max_num<num[j])max_num=num[j];else if(min_num>num[j])min_num=num[j];}int sum=min_num+max_num;printf("数组中最大与最小值之和:%d\n",sum);return 0;}2、两个长整型的和2.求两个长长整型的数据的和并输出,例如输入1233333333333333 。

华为常考面试题及答案解析

华为常考面试题及答案解析

华为常考面试题及答案解析1. 请介绍一下华为公司的发展历程。

华为公司成立于1987年,是一家全球领先的ICT解决方案供应商。

公司起初专注于通信设备的制造和销售,随着市场的发展,逐渐扩展到电信网络、企业网络、消费者业务等多个领域。

华为在全球范围内建立了广泛的合作伙伴网络,为全球客户提供高质量的产品和服务。

2. 请介绍一下华为公司的核心竞争力。

华为公司的核心竞争力主要体现在以下几个方面:- 技术创新能力:华为在ICT领域拥有强大的技术研发实力,持续推动技术创新,不断推出具有竞争力的产品和解决方案。

- 全球化运营能力:华为在全球范围内建立了完善的销售和服务网络,能够快速响应客户需求,提供定制化的解决方案。

- 人才优势:华为高度重视人才培养和引进,拥有一支专业素质高、经验丰富的团队,为公司的发展提供了强大支持。

- 业务多元化:华为业务涵盖了电信网络、企业网络、消费者业务等多个领域,实现了多元化的业务发展,降低了市场风险。

3. 请谈谈你对5G技术的理解和应用前景。

5G技术是第五代移动通信技术,具有更高的速度、更低的延迟和更大的连接密度。

它将为各行各业带来巨大的变革和机遇。

在应用前景方面,5G技术将广泛应用于智能制造、智慧城市、智能交通、物联网等领域。

它将加速工业自动化和数字化转型,提升生产效率和产品质量;改善城市管理和公共服务,提升城市运行效率和居民生活质量;实现车联网和智能交通系统,提高交通安全和交通效率;连接更多的物联网设备,实现智能家居、智慧医疗等应用。

总之,5G技术将为人们的生活和工作带来更多便利和可能性。

4. 请谈谈你对人工智能的理解和应用前景。

人工智能是一门研究如何使计算机具有智能的学科。

它通过模拟人类的智能行为和思维过程,实现了诸如语音识别、图像识别、自然语言处理等功能。

在应用前景方面,人工智能具有广泛的应用前景。

它可以应用于医疗健康、金融、智能交通、智能制造等多个领域。

例如,在医疗领域,人工智能可以辅助医生进行疾病诊断和治疗方案选择;在金融领域,人工智能可以实现风险评估和智能投资;在智能交通领域,人工智能可以实现智能驾驶和交通管理。

华为面试问题汇总 (终极版)

华为面试问题汇总 (终极版)

·1、LTE的架构?●IP头压缩和用户数据流加密●UE附着时的MME选择●用户面数据向S-GW的路由●寻呼消息和广播信息的调度和发送●移动性测量和测量报告的配置⏹MME 功能:●分发寻呼信息给eNB●安全控制●空闲状态的移动性管理●SAE 承载控制●非接入层(NSA)信令的加密及完整性保护⏹S-GW 功能:●终止由于寻呼原因产生的用户平面数据包●支持由于UE移动性产生的用户面切换2、LTE物理信道?3、LTE中三个频段的频点,及计算方法?首先介绍一下频点38050的换算成真实频率的方法。

在TD-LTE协议中给出了照频段指示分别为32:2545, 33:1900, 34:2010, 35:1850, 36:1930, 37:1910, 38:2570, 39:1880, 40:2300,Offset的取值按照频段指示分别为 32:35700, 33:36000, 34:36200, 35:36350, 36:36950, 37:37550, 38:37750, 39:38250, 40:38650。

可知上图中38050=(P-Low)*10+Offset,经过推算38050为频段指示为38,对应频段为2570MHz~2620MHz,所以Low取值为2570,Offset为37750,计算P=2600MHz,38050对应的中心频点为2600MHz。

4、TTE中RB和RE的关系及计算方法?答:RE:最小资源粒子;RB:物理层数据传输资源分配的频域频域最小单位;1个RB=84个RE(常规CP)1个RB=72个RE(拓展CP)1个RB时域上一个时隙,频域上12个连续的子载波1个RB时域上一个OFDM符号,频域上1个子载波5、速率过低的原因?答:1. 电脑是否已经进行TCP窗口优化;2. 检查测试终端是否工作在TM3模式,RANK2条件下;如不:检查小区配置和测试终端配置;3. 观察天线接收相关性,可以调整终端位置和方向,找到天线接收相关性最好的角度,天线相关性最好小于0.1,最大不超过0.3;4. 更换下载服务器,采用FTP+迅雷双多线程下载的方法来提升吞吐量,如果无改善,可以通过命令检查下行给水量,是否服务器给水量问题;5.尝试使用UDP灌包排查是否是TCP数据问题导致;6、单站验证的详细流程及需要注意的问题?1、将UE与电脑连接好确保可以上网;7、Probe软件测试流程?1.打开UE驱动2.打开probe,新建一个空的模板3.导入地图4.导入工参5.添加设备(GPS、UE)6.连接设备7.开始测试8、灌包的概念及作用?Miperf操作指导操作系统要求该工具必须在XP、win 2003、win7系统下使用。

华为机试题库及答案

华为机试题库及答案

华为机试题库及答案华为是全球领先的信息与通信技术(ICT)解决方案提供商。

作为一家创新型企业,华为一直重视人才培养和招聘,为了筛选出最优秀的人才,华为设立了机试题库。

以下是华为机试题库的一些题目及其答案供参考。

一、Java基础1. 输出"Hello, Huawei!"的Java代码如下:```javapublic class HelloWorld {public static void main(String[] args) {System.out.println("Hello, Huawei!");}}```2. 计算1到100的和的Java代码如下:```javapublic class SumOfNumbers {public static void main(String[] args) {int sum = 0;for (int i = 1; i <= 100; i++) {sum += i;}System.out.println("Sum of numbers from 1 to 100: " + sum); }}```3. 实现斐波那契数列的Java代码如下:```javapublic class FibonacciSeries {public static void main(String[] args) {int n = 10;int first = 0;int second = 1;System.out.print("Fibonacci series of " + n + " terms: ");for (int i = 1; i <= n; i++) {System.out.print(first + " ");int next = first + second;first = second;second = next;}}}```二、数据结构和算法1. 实现冒泡排序的Java代码如下:```javapublic class BubbleSort {public static void main(String[] args) { int[] array = {5, 2, 8, 3, 1};int n = array.length;for (int i = 0; i < n - 1; i++) {for (int j = 0; j < n - 1 - i; j++) { if (array[j] > array[j + 1]) {int temp = array[j];array[j] = array[j + 1];array[j + 1] = temp;}}}System.out.print("Sorted array: "); for (int i = 0; i < n; i++) {System.out.print(array[i] + " "); }}}```2. 实现二分查找的Java代码如下:```javapublic class BinarySearch {public static void main(String[] args) { int[] array = {1, 3, 5, 7, 9};int target = 5;int low = 0;int high = array.length - 1;while (low <= high) {int mid = (low + high) / 2;if (array[mid] == target) {System.out.println("Target found at index: " + mid); break;} else if (array[mid] < target) {low = mid + 1;} else {high = mid - 1;}}if (low > high) {System.out.println("Target not found in the array."); }}}```三、网络和操作系统1. 解释TCP和UDP的区别:TCP(传输控制协议)提供可靠的、面向连接的数据传输服务,确保数据的完整性和有序性,适用于对数据传输要求较高的场景,如文件传输、网页加载。

华为机考试题+答案

华为机考试题+答案

1、选秀节目打分,分为专家评委和大众评委,score[] 数组里面存储每个评委打的分数,judge_type[] 里存储与score[] 数组对应的评委类别,judge_type[i] == 1,表示专家评委,judge_type[i] == 2,表示大众评委,n表示评委总数。

打分规则如下:专家评委和大众评委的分数先分别取一个平均分(平均分取整),然后,总分= 专家评委平均分* 0.6 + 大众评委* 0.4,总分取整。

如果没有大众评委,则总分= 专家评委平均分,总分取整。

函数最终返回选手得分。

函数接口int cal_score(int score[], int judge_type[], int n)#include<iostream>int cal_score(int score[], int judge_type[], int n){int i =0;int sum1=0, sum2=0;int count1=0,count2=0;int zhongfen=0;for(i =0; i<n; i++){if(1==judge_type[i]){sum1+=score[i];count1++;}else //if(2==judge_type[i]){sum2+=score[i];count2++;}}if(count2==0){zhongfen = sum1;}else{zhongfen = int ((sum1/count1)*0.6 +(sum2/count2)*0.4);}return zhongfen;}int main(){int score[]={1,1,1,1,1,1};int judge_type[] = {2,2,2,1,2,2};printf("%d", cal_score(score, judge_type, 6) );} 2、给定一个数组input[] ,如果数组长度n为奇数,则将数组中最大的元素放到output[] 数组最中间的位置,如果数组长度n为偶数,则将数组中最大的元素放到output[] 数组中间两个位置偏右的那个位置上,然后再按从大到小的顺序,依次在第一个位置的两边,按照一左一右的顺序,依次存放剩下的数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.第一题的题目大概是输入整型数组求数组的最小数和最大数之和,例如输入1,2,3,4则输出为5,当输入只有一个数的时候,则最小数和最大数都是该数,例如只输入1,则输出为2;另外数组的长度不超过50#include<stdio.h>main(){intnum[50]={0};inti,n;printf("请输入整型数组的长度(1~50):");scanf("%d",&n);printf("请输入整型数组的元素:");for(i=0;i<n;i++){scanf("%d",&num[i]);}intmin_num=num[0];intmax_num=num[0];for(intj=0;j<n;j++){if(max_num<num[j])max_num=num[j];elseif(min_num>num[j])min_num=num[j];}intsum=min_num+max_num;printf("数组中最大与最小值之和:%d\n",sum);return0;}2.求两个长长整型的数据的和并输出,例如输入1233333333333333。

3111111111111111111111111.。

,则输出。

#include<stdio.h>#include<string.h>#include<malloc.h>main(){char*num1,*num2; //两个长长整型数据char*sum;// inttemp;int len_num1,len_num2; // 两个长长整型数据的长度intlen_max,len_min;num1=(char*)malloc(sizeof(char));num2=(char*)malloc(sizeof(char));printf("输入两个长长整型数据:");scanf("%s",num1);printf("输入两个长长整型数据:");scanf("%s",num2);len_num1=strlen(num1);len_num2=strlen(num2);len_max=(len_num1>=len_num2)?len_num1:len_num2;len_min=(len_num1<=len_num2)?len_num1:len_num2;int len_max1=len_max;sum=(char*)malloc(sizeof(char)*len_max);memset(sum,0x00,len_max+1);//切忌初始化for(;len_num1>0&&len_num2>0;len_num1--,len_num2--){sum[len_max--]=((num1[len_num1-1]-'0')+(num2[len_num2-1]-'0'));}if(len_num1>0){sum[len_max--]=num1[len_num1- 1 ]-'0';len_num1--;}if(len_num2>0){sum[len_max--]=num1[len_num2- 1]-'0';len_num2--;}for(intj=len_max1;j>=0;j--) //实现进位操作{// temp=sum[j]-'0';if(sum[j]>=10){sum[j-1]+=sum[j]/10;sum[j]%=10;}}char*outsum=(char*)malloc(sizeof(char)*len_max1);j=0;while(sum[j]==0) //跳出头部0元素j++;for(int m=0;m<len_max1;j++,m++)outsum[m]=sum[j]+'0';outsum[m]='\0';printf("输出两长长整型数据之和:%s\n",outsum);return0;}3.通过键盘输入一串小写字母(a~z)组成的字符串。

请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。

比如字符串“abacacde”过滤结果为“abcde”。

要求实现函数:void stringFilter(const char *pInputStr,long lInputLen, char *pOutputStr);【输入】pInputStr:输入字符串lInputLen:输入字符串长度【输出】pOutputStr:输出字符串,空间已经开辟好,与输入字符串等长;#include <stdio.h>#include<string.h>#include<malloc.h>void stringFilter(const char *p_str, longlen, char *p_outstr){intarray[256]={0};const char *tmp = p_str;for(int j=0;j<len;j++){if(array[tmp[j]]==0)*p_outstr++=tmp[j];array[tmp[j]]++;}*p_outstr= '\0';}void main(){char *str = "cccddecc";intlen = strlen(str);char* outstr = (char *)malloc(len*sizeof(char));stringFilter(str,len,outstr);printf("%s\n",outstr);free(outstr);outstr= NULL;}4.通过键盘输入一串小写字母(a~z)组成的字符串。

请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。

压缩规则:1. 仅压缩连续重复出现的字符。

比如字符串"abcbc"由于无连续重复字符,压缩后的字符串还是"abcbc".2. 压缩字段的格式为"字符重复的次数+字符"。

例如:字符串"xxxyyyyyyz"压缩后就成为"3x6yz"要求实现函数:void stringZip(const char*pInputStr, long lInputLen, char *pOutputStr);【输入】pInputStr:输入字符串lInputLen:输入字符串长度【输出】pOutputStr:输出字符串,空间已经开辟好,与输入字符串等长;#include <stdio.h>#include<string.h>#include<malloc.h>void stringZip(const char *p_str, long len,char *p_outstr){intcount=1;for(inti=0;i<len;i++){if(p_str[i]==p_str[i+1]){count++;}else{if(count>1){*p_outstr++= count +'0';*p_outstr++=p_str[i];}else{*p_outstr++=p_str[i];}count = 1;//注意其位置}}*p_outstr= '\0';}void main(){char*str = "cccddecc";printf("压缩之前的字符串为:%s\n",str);intlen = strlen(str);char* outstr = (char*)malloc(len*sizeof(char));stringZip(str,len,outstr);printf("压缩之后的字符串为:%s\n",outstr);free(outstr);outstr= NULL;}5.通过键盘输入100以内正整数的加、减运算式,请编写一个程序输出运算结果字符串。

输入字符串的格式为:“操作数1 运算符操作数2”,“操作数”与“运算符”之间以一个空格隔开。

补充说明:1. 操作数为正整数,不需要考虑计算结果溢出的情况。

2. 若输入算式格式错误,输出结果为“0”。

要求实现函数:void arithmetic(const char*pInputStr, long lInputLen, char *pOutputStr);【输入】pInputStr:输入字符串lInputLen:输入字符串长度【输出】pOutputStr:输出字符串,空间已经开辟好,与输入字符串等长;#include <stdio.h>#include<string.h>#include<stdlib.h>void arithmetic(const char *input, longlen, char *output){chars1[10];chars2[10];chars3[10];intcnt = 0;intlen_input=strlen(input);for(inti=0;i<len_input;++i){if(input[i]=='')cnt++;}if(cnt!=2){*output++= '0';*output= '\0';return;}sscanf(input,"%s %s %s",s1,s2,s3);if(strlen(s2)!=1||(s2[0]!='+'&&s2[0]!='-')) {*output++= '0';*output= '\0';return;}int len_s1=strlen(s1);for(i=0;i<len_s1;i++){if(s1[i]<'0'||s1[i]>'9'){*output++= '0';*output= '\0';return;}}intlen_s3=strlen(s3);for(i=0;i<len_s3;i++){if(s3[i]<'0'||s3[i]>'9'){*output++= '0';*output= '\0';return;}}int x = atoi(s1);int y = atoi(s3);if(s2[0]=='+'){intresult = x+y;itoa(result,output,10);}elseif(s2[0]=='-'){intresult = x-y;itoa(result,output,10);}else{*output++= '0';*output= '\0';return;}}void main(){charstr[] = {"10 - 23"};charoutstr[10];intlen = strlen(str);arithmetic(str,len,outstr);printf("%s\n",str);printf("%s\n",outstr);}6.一组人(n个),围成一圈,从某人开始数到第三个的人出列,再接着从下一个人开始数,最终输出最终出列的人(约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。

相关文档
最新文档