华为软研题库
华为校园招聘软件研发上机测试题及部分解答+
以下是收集到的两套题(没有添加答案),上机测试只有应聘软件研发的才会碰到。
有的写了点自己的解法,如果大家有好的想法欢迎讨论!大家一起学习嘛!以下是上机考试的一些注意事项:(1)考试时长为2个小时,总共有3个题(去年是2个题,难度要比今年大些),编译环境为VC 6.0(C语言)/ Eclipse(Java);(2)3个题目中大致第一个题是最简单的,第三个题是最难的;(3)从服务器上下载题目下来后最好能把工程保存到在电脑重启后不会自动还原的磁盘分区下面,这样不致由于各种意外因素电脑重启过后编的程序不会消失;(4)不要改动所给函数的原型,可以自己添加函数。
另外,华为提供的工程是将Main函数隐藏了的,所以自己不用再添加Main函数。
试题1:2011.9.6 转载自:/liuqiqi677/article/details/67554981、选秀节目打分,分为专家评委和大众评委,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)(这个问题很简单,应该只是涉及了下double/int转换)2、给定一个数组input[] ,如果数组长度n为奇数,则将数组中最大的元素放到output[] 数组最中间的位置,如果数组长度n为偶数,则将数组中最大的元素放到output[] 数组中间两个位置偏右的那个位置上,然后再按从大到小的顺序,依次在第一个位置的两边,按照一左一右的顺序,依次存放剩下的数。
华为IT软件测试笔试题
华为IT软件测试笔试题it名企软件测试快开始了,下面人才网小编为大家带来的是华为it 软件测试笔试题,希望对大家有所帮助~判断题(10*1分):1、软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象*。
(√)2、白盒测试侧重于程序结构,黑盒测试侧重于功能,其中白盒测试需要程序员参与,黑盒测试不需要(×)3、单元测试通常应该先进行“人工走查”,再以白盒法为主,辅以黑盒法进行动态测试。
(√)4、集成测试也叫做组装测试,通常在编码完成的基础上,将所有的程序模块进行有序的、递增的测试(×)5、系统测试应尽可能在实际运行使用环境下进行(√)6、详细设计的目的是为软件结构图中的每一个模块确定使用的算法和块内数据结构,并用某种选定的表达工具给出清晰的描述。
(√)7、测试人员在测试过程中发现一处问题,如果问题影响不大,而自己又可以修改,应立即将此问题正确修改,以加快、提高开发的进程。
(×)8、程序、需求规格说明、设计规格说明都是软件测试的对象(√)9、第三方测试是在开发方与用户方的测试基础上进行的验*测试(×)10、数据流图和数据字典共同构成系统的逻辑模型。
(√)选择题(20*2分):1、软件测试的目的正确的是(d)①测试是为了发现程序中的错误而执行程序的过程;②好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;③成功的测试是发现了至今为止尚未发现的错误的测试④测试并不仅仅是为了找出错误.通过分析错误产生的原因和错误的发生趋势,可以帮助项目管理者发现当前软件开发过程中的缺陷,以便及时改进;a、①b、①②③c、②③④d、①②③④2、软件测试的对象包括(b)a.目标程序和相关文档b.源程序、目标程序、数据及相关文档c.目标程序、*作系统和平台软件d.源程序和目标程序3、从是否关心软件内部结构和具体实现的角度划分。
(b)a、静态测试、动态测试b、黑盒测试、白盒测试、灰盒测试c、单元测试、集成测试、确认测试、系统测试、验收测试d、以上都不对4、关于软件测试模型,描述正确的是(c)a、v模型测试的对象就是程序本身,测试与开发可以同一阶段进行b、w模型测试的对象是程序,需求、设计等,可以支持迭代的开发模型c、h模型软件测试过程活动完全*,贯穿产品整个生命周期,与其他流程并发地进行。
2012最新最全华为校园招聘软件研发笔试题(2)
2012最新最全华为校园招聘软件研发笔试题(2)m=p- //printf( %5d ,m); output_array[j++]=m; s=p; q- next=p- next; p=p- next; free(s); s=NULL; } m=p- // printf( %5d\n ,m); output_array[j]=p- k=j; for(j=0 ; j j++) { printf( %5d ,output_array[j]); } }int main() { int input_array[]={3,1,2,4}; int len=4; int m=7; int output_array[4]; array_iterate(len, input_array, m); }8、简单四则运算问题描述:输入一个只包含个位数字的简单四则运算表达式字符串,计算该表达式的值注:1、表达式只含+, -, *, / 四则运算符,不含括号2、表达式数值只包含个位整数(0-9),且不会出现0作为除数的情况3、要考虑加减乘除按通常四则运算规定的计算优先级4、除法用整数除法,即仅保留除法运算结果的整数部分。
比如8/3=2。
输入表达式保证无0作为除数情况发生5、输入字符串一定是符合题意合法的表达式,其中只包括数字字符和四则运算符字符,除此之外不含其它任何字符,不会出现计算溢出情况要求实现函数:int calculate(int len,char *expStr) 【输入】int len: 字符串长度; char *expStr: 表达式字符串; 【输出】无【返回】计算结果示例1) 输入:char *expStr = 1+4*5-8/3 函数返回:192) 输入:char *expStr = 8/3*3 函数返回:6#include #include using namespace std;int calculate(int len,char *expStr) { struct { char opdata[200];int top; }opstack; //定义操作符栈opstack.top = -1; int i=0;//遍历字符串的下标int t=0;//当前后缀表达式的长度char ch = expStr[i]; while (ch!= \0 ){ switch (ch) { case + : case - : while (opstack.top != -1) { expStr[t] = opstack.opdata[opstack.top]; opstack.top--; t++; } opstack.top++; opstack.opdata[opstack.top] = ch; break; case * : case / : while (opstack.top != -1 (opstack.opdata[opstack.top] == * || opstack.opdata[opstack.top] == / ) ) { expStr[t] = opstack.opdata[opstack.top]; opstack.top--; t++; } opstack.top++; opstack.opdata[opstack.top] = ch; break; default: expStr[t] = ch; t++; break; } i++; ch = expStr[i]; } while (opstack.top != -1)//将栈中所有的剩余的运算符出栈{ expStr[t] = opstack.opdata[opstack.top]; opstack.top--; t++; } expStr[t]= \0 struct { int numeric[200]; int top; }data; data.top = -1; i=0; ch = expStr[i]; while (ch!= \0 ) { if (ch = 0 ch = 9 ){ data.top++; data.numeric[data.top] = ch- 0 } else if( + == ch) { int tmp = data.numeric[data.top-1] + data.numeric[data.top]; data.top--; data.numeric[data.top] = tmp; }else if( - == ch) { int tmp = data.numeric[data.top-1] - data.numeric[data.top]; data.top--; data.numeric[data.top] = tmp; } else if( * == ch) { int tmp = data.numeric[data.top-1] * data.numeric[data.top]; data.top--; data.numeric[data.top] = tmp; } else if( / == ch) { if(data.numeric[data.top] == 0) { printf( cannot be zero of the divide\n exit(1); } int tmp = data.numeric[data.top-1] / data.numeric[data.top]; data.top--; data.numeric[data.top] = tmp; } i++; ch = expStr[i]; } return data.numeric[data.top]; }void main() { char expStr[] = 9/3*5 printf( %s\n ,expStr); int result = calculate(strlen(expStr),expStr); printf( %d\n ,result); }9、选秀节目打分,分为专家评委和大众评委,score[] 数组里面存储每个评委打的分数,judge_type[] 里存储与score[] 数组对应的评委类别,judge_type[i] == 1,表示专家评委,judge_type[i] == 2,表示大众评委,n表示评委总数。
华为软件测试工程师笔试题一
华为软件测试工程师笔试题一华为软件测试工程师笔试题一1:请你分别划OSI的七层网络结构图,和TCp/Ip的五层结构图?OSI的七层网络结构图,和TCp/Ip的五层结构图OSIOSI 是Open System Interconnect的缩写,意为开放式系统互联。
在OSI出现之前,计算机网络中存在众多的体系结构,其中以IBM公司的SNA(系统网络体系结构)和DEC公司的DNA(Digital Network Architecture)数字网络体系结构最为著名。
为了解决不同体系结构的网络的互联问题,国际标准化组织ISO(注意不要与OSI搞混))于 1981年制定了开放系统互连参考模型(Open System Interconnection Reference Model,OSI/RM)。
这个模型把网络通信的工作分为7层,它们由低到高分别是物理层(physical Layer),数据链路层(Data Link Layer),网络层(Network Layer),传输层(Transport Layer),会话层(Session Layer),表示层(presen tation Layer)和应用层(Application Layer)。
第一层到第三层属于OSI参考模型的低三层,负责创建网络通信连接的链路;第四层到第七层为OSI参考模型的高四层,具体负责端到端的数据通信。
每层完成一定的功能,每层都直接为其上层提供服务,并且所有层次都互相支持,而网络通信则可以自上而下(在发送端)或者自下而上(在接收端)双向进行。
当然并不是每一通信都需要经过OSI的全部七层,有的甚至只需要双方对应的某一层即可。
物理接口之间的转接,以及中继器与中继器之间的连接就只需在物理层中进行即可;而路由器与路由器之间的连接则只需经过网络层以下的三层即可。
总的来说,双方的通信是在对等层次上进行的,不能在不对称层次上进行通信。
OSI参考模型的各个层次的划分遵循下列原则:1、同一层中的各网络节点都有相同的层次结构,具有同样的功能。
华为笔试题xx华为软件测试笔试题及答案0527一、判断题1软
华为笔试题xx华为软件测试笔试题及答案0527一、判断题1软xx华为软件测试笔试题及答案05-27一、判断题1.软件测试的目的是尽可能多的找出软件的缺陷。
()2.Beta 测试是验收测试的一种。
()3.验收测试是由最终用户来实施的。
()4.项目立项前测试人员不需要提交任何工件。
1、华为公司的全称为()A、深圳市华为技术有限公司 B、华为技术有限公司C、华为公司 D、我司(答案:B,答A、C者酌情给分,答D者立即辞退,我司三令五申禁止使用该华为内部土语,屡禁不止,华为c语言笔试面试题05-271、局部变量能否和全局变量重名答:能,局部会屏蔽全局。
要用全局变量,需要使用"::"局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到xx华为招聘会笔试题05-27一、判断题1.软件测试的目的是尽可能多的找出软件的缺陷。
()2.Beta 测试是验收测试的一种。
()3.验收测试是由最终用户来实施的。
()4.项目立项前测试人员不需要提交任何工件。
笔试题一1.请你分别画出OSI的七层网络结构图和TCP/IP的五层结构图。
2.请你详细地解释一下IP协议的定义,在哪个层上面?主要有什么作用?TCP 与UDP呢 ?3.请问交换机和路由华为软件测试笔试题05-27选择题:下面那种文件不是符合PE格式的是A.exe B.xls C.dll D.vdx(?)文件操作的唯一依据是A文件名 B文件句柄 C物理地址 D?下面哪个操作不会启动触发器华为历年笔试题05-27(1)什么是预编译,何时需要预编译:答案:1、总是使用不经常改动的大型代码体。
2、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。
在这种情况下,可以将所有包含文件xx年华为校园招聘笔试题05-27题目描述(60分):通过键盘输入一串小写字母(a~z)组成的字符串。
请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。
华为HCNA、HCIA考试真题库
(易错题)5、对于刀片式服务器,以下哪一项描述是错误的?A.超高密度计算B.可扩展性与可配置性较弱C.体积小,高度低D.适用于空间有限、IT资源负载增加、供电和冷却条件有限、现有环境复杂及电缆难以管理的客户环境6、以下哪一项是用于大数据分析的开源框架?A.HadoopB.HDFSC.MapReduceD.Hive7、OpenStack的Neutron可提供以下哪一种能力?A.计算管理B.网络管理C.存储管理D.资产管理8、以下用于表示灾难发生后恢复系统运行所需要的时间指标是哪一项?A.RIOB.RTOC.RPOD.TCO10、以下哪一项不符合Openstack的描述?A.架构开放B.可扩展性好C.异构接入能力强D.生态尚不成熟20、医疗影像云解决方案可以为医疗卫生行业客户解决哪些业务难点?全选错误、BCD 错A.医疗行业投资不足和医技水平低下(无关)B.影像资料保存成本较高,维护困难;C.影像存储时间有限,无法提供准确全面的数据支撑D.医生异地诊疗时,快速获得资料支持E.患者拍片等待时间长,无法实现影像协作和分级诊疗;(易错题)23、云计算是对以下哪几项技术的发展和应用?A.并行计算B.网络计算C.分布式计算25、以下哪些内容属于网络安全的范畴?A.WEB应用防火墙B.防火墙C.流量清洗D.安全域划分26、教育行业云化数据中心,相较于传统数据中心几大质的飞越,描述准确的有以下哪些项?ABDEA.资源供给速度加快B.服务器使用效率提升C.使用者的技术门槛变高D.维护效率提升E.使用成本降低27、互联网给传统IT带来的挑战包括以下哪几项?A.超大规模用户B.海量数据C.用户位置确定D.业务快速增长和变化28、以下哪些商业模式适合运营商发展物联网业务?A.供应商商业模式B.纯连接商业模式C.增值型商业模式D.构建通用IoT平台模式(易错题)29、地市/区县教委教育云存储资源池中的数据有结构化数据和非结构化数据之分,以下属于结构化数据的有以下哪些项?AE错ADE错ACE错A.数据库数据B.多媒体C.视频点播D.教学课件E.题库32、以下哪一项不是桌面云的特性?A.集中化管理B.安全性提高C.提高了性能D.应用更环保33、以下哪些是华为云计算解决方案中提供的迁移工具?A.BCManagerB.RainbowC.ManageOneD.eSight(易错题)38、分布式拒绝攻击(DDOS)的常用手段有以下哪几项?A.IP欺骗B.连接耗尽C.ICMP Flood39、云计算带来了以下哪些安全威胁?BCD错BD错A.租户失去对资源的控制B.虚拟化安全C.应对地震等灾害更为困难D.DDOS攻击更为突出(易错题)40、以下哪几项是成熟的虚拟化解决方案?A.Hyper-VB.FusionsphereC.MysqlD.ESX41、以下选项中,关于路由器和交换机的功能描述错误的是以下哪些项?A.同一网段中的设备可以通过交换机实现互通B.路由器用于连接不同网段设备以实现网络互通C.交换机之所以称之为二层设备是因为它只能工作在网络分层的第二层D.路由器接口下的IP地址可以属于相同网段42、以下不属于云数据中心的优点的是一项?A.使用大型服务器以提高性能B.虚拟化提高了资源利用率C.分布式计算和存储提高了系统可靠性D.统一资源管理提高了运维效率43、随着业务向云迁移、安全面临新形势、随时随地接入等需求,给教育网络带来了全新的挑战,你认为存在以下哪些方面的挑战?A.如何支撑新型业务B.如何提升服务质量C.如何安全管理运维D.如何接入互联网络44、医疗云平台设计需考虑以下哪些特征?A.虚拟化技术,驱动医院IT资源池化B.资源复用,弹性伸缩,提高医院IT资源利用率C.模板化、自动化业务部署,加快医院业务发放速度D.全面的系统可靠性设计,保障医院核心系统持续运行E.减少医院IT投资和控制运维支出46、以下可以支持同时和IP SAN以及FC SAN存储服务器对接的交换机是哪一项?BA.FC 交换机B.FCOE交换机C.普通的Ethernet交换机D.Vswitch 虚拟交换机(错)47、关于IP路由的描述,以下正确的是哪些项?全选错、ABC错BC错ACA.路由是OSI模型中第三层的概念B.IP路由是指导IP报文转发的路径信息C.任何一条路由都必须包括如下三部分的信息:源地址、目的地址和下一跳D.在局域网中,路由包括了以下两部分的内容:IP地址和MAC地址确认√48、区域卫生信息平台建设目标和提供服务有以下哪些?BCDA.限制医保开支B.实现及时查询电子健康档案信息C.双向转诊时电子病历共享D.实现跨机构、跨系统的居民健康信息共享与医疗卫生协同服务49、在医疗卫生行业提供影像云服务,以下哪几项是电信运营商的核心优势?ABDEA.提供海量存储空间B.提供电信级保障C.低廉的服务价格不是低廉D.提供本地化服务E.提供大带宽传输50、计算机获取IP地址的方式有以下哪些项?A.手工配置B.出厂时IP地址已固定C.自动获取D.根据MAC地址计算得出51、服务器虚拟化之后哪几项特点?ACD错ADA.资源抽象成共享资源池B.IT资源独立隔离不隔离C.操作系统必须与硬件紧耦合解耦D.上层操作系统与硬件解耦,操作系统从资源池中分配资源。
华为 最新笔试题汇总(软件类和研发类岗位)
华为1.static有什么用途?(请至少说明两种)1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。
2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。
它是一个本地的全局变量。
3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。
那就是,这个函数被限制在声明它的模块的本地范围内使用2.引用与指针有什么区别?1) 引用必须被初始化,指针不必。
2) 引用初始化以后不能被改变,指针可以改变所指的对象。
3) 不存在指向空值的引用,但是存在指向空值的指针。
3.描述实时系统的基本特性在特定时间内完成特定的任务,实时性与可靠性。
4.全局变量和局部变量在内存中是否有区别?如果有,是什么区别?全局变量储存在静态数据库,局部变量在堆栈。
5.什么是平衡二叉树?左右子树都是平衡二叉树且左右子树的深度差值的绝对值不大于1。
6.堆栈溢出一般是由什么原因导致的?没有回收垃圾资源。
7.什么函数不能声明为虚函数?constructor函数不能声明为虚函数。
8.冒泡排序算法的时间复杂度是什么?时间复杂度是O(n^2)。
9.写出float x 与“零值”比较的if语句。
if(x>0.000001&&x<-0.000001)10.Internet采用哪种网络协议?该协议的主要层次结构?Tcp/Ip协议主要层次结构为:应用层/传输层/网络层/数据链路层/物理层。
11.Internet物理地址和IP地址转换采用什么协议?ARP (Address Resolution Protocol)(地址解析協議)12.IP地址的编码分为哪俩部分?IP地址由两部分组成,网络号和主机号。
不过是要和“子网掩码”按位与上之后才能区分哪些是网络位哪些是主机位。
13.用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。
2012最新最全华为校园招聘软件研发笔试题(4)
2012最新最全华为校园招聘软件研发笔试题(4)flag = (flag + 1) % 2; p++; } printf( \n ); return 0; }17、编写一个程序实现功能:将两个字符串合并为一个字符串并且输出,用指针实现。
char str1[20]={ Hello }, str2[20]={ World }; 答案:#includeint main() { char str1[20]={ Hello }, str2[20]={ World };char *p=str1, *q=str2;while( *p ) p++; while( *q ) {*p = *q; p++; q++; }*p = \0printf( %s\n , str1);return 0; }18、算分数的问题,去掉一个最高分一个最低分,求平均分#includefloat avescore(float score[],int n) {float min=0; float max=0;int minindex=0; int maxindex=0; float sum=0; min=score[0];for(int i=0;imin=score[i]; minindex=i; }score[minindex]=0; max=score[0]; for(i=0;iif(score[i] max) {max=score[i]; maxindex=i; }score[maxindex]=0; for(i=0;ireturn sum; }void main() {float score[6]={70,80,90,98,87,86}; float lastscore; lastscore=avescore(score,6);printf( the last score is :%5.2f\n ,lastscore); }运行结果:the last score is :85.75 19、对一个数组,将数组中偶数从大到小排序,奇数从小到大排序,奇数和偶数交叉着放且输出数组第一位放奇数若奇数和偶数不等长,则把剩下的直接放到数组中。
华为软件研发面试题大全
华为软件研发面试题大全1、局部变量能否和全局变量重名?答:能,局部会屏蔽全局。
要用全局变量,需要使用"::" ;局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。
对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。
2、如何引用一个已经定义过的全局变量?答:extern 可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变理,假定你将那个编写错了,那么在编译期间会报错,如果你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错。
3、全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么?答:可以,在不同的C文件中以static形式来声明同名全局变量。
可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时连接不会出错.4、请写出下列代码的输出内容#includeint main(void){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,1205、static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?答: 1) 全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。
全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式。
这两者在存储方式上并无不同。
这两者的区别在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。
华为软件研发岗笔试题总结修订版
华为软件研发岗笔试题总结集团标准化小组:[VVOPPT-JOPP28-JPPTL98-LOPPNN]操作系统(OperatingSystem,简称OS)是管理计算机系统的全部硬件资源包括软件资源及数据资源;控制程序运行;改善人机界面;为其它应用软件提供支持等,使计算机系统所有资源最大限度地发挥作用,为用户提供方便的、有效的、友善的服务界面。
操作系统通常是最靠近硬件的一层系统软件,它把硬件裸机改造成为功能完善的一台虚拟机,使得计算机系统的使用和管理更加方便,计算机资源的利用效率更高,上层的应用程序可以获得比硬件提供的功能更多的支持。
操作系统是一个庞大的管理控制程序,大致包括5个方面的管理功能:进程与处理机管理、作业管理、存储管理、设备管理、文件管理。
目前微机上常见的操作系统有DOS、OS/2、U N I X、X E N I X、L I N U X、W i n d o w s2000、N e t w a r e等。
华为软件笔试题一、判断题(对的写T,错的写F并说明原因,每小题4分,共20分)1、有数组定义inta[2][2]={{1},{2,3}};则a[0][1]的值为0。
(正确)2、int(*ptr)(),则ptr是一维数组的名字。
(错误)3、指针在任何情况下都可进行>,<,>=,<=,==运算。
(正确)4、switch(c)语句中c可以是int,long,char,float,unsignedint类型。
(错误)5、#defineprint(x)printf("theno,"#x",is")(正确)二、填空题(共30分)1、在windows下,写出运行结果,每空2分,共10分。
charstr[]="Hello";char*p=str;intn=10;sizeof(str)=(6)sizeof(p)=(4)sizeof(n)=(4)voidfunc(charstr[100]){}sizeof(str)=(4)2、voidsetmemory(char**p,intnum){*p=(char*)malloc(num);}voidtest(void){char*str=NULL;getmemory(&str,100);strcpy(str,"hello");printf(str);}运行test函数有什么结果(hello)10分3、设intarr[]={6,7,8,9,10};int*ptr=arr;(ptr++)+=123;printf("%d,%d",*ptr,*(++ptr));(8,8)10分二、编程题(第一小题20,第二小题30分)1、不使用库函数,编写函数intstrcmp(char*source,char*dest)相等返回0,不等返回-1;2、写一函数intfun(char*p)判断一字符串是否为回文,是返回1,不是返回0,出错返回-1(1)什么是预编译,何时需要预编译:答案:1、总是使用不经常改动的大型代码体。
华为软挑2020之深度学习题目
华为软挑2020之深度学习题⽬1.1 输⼊信息输⼊分为三部分:l train_data.txt为已经做好特征⼯程处理的本地训练集⽂件。
每⼀⾏为⼀条数据记录,以逗号分开。
最后⼀列为类别(⼆分类),前⾯的列为特征值。
l test_data.txt 为需要预测的本地测试集⽂件。
特征数和训练集⼀致。
不含类别信息。
l ⽰例代码为准确率和性能待优化的参考代码,⽀持的语⾔分别为C++/Python/JAVA。
answer.txt为test_data.txt的⼆分类结果,⽤于练习的时候使⽤。
1.1 输出信息输出信息为⼀个⽂件result.txt,按⾏顺序放置测试集记录的预测结果,每⼀⾏代表⼀条训练数据的⼆分类结果。
1.2 限制条件l 选⼿拿到的训练集和测试集并不是最终判题⽤的数据。
l ⽰例代码的算法实现为LR(逻辑回归),选⼿可以将其改为其它的机器学习算法,但程序中定义的输⼊输出⽂件路径不能改。
l 不允许使⽤外部机器学习库。
⽰例代码(LR,逻辑回归)1import math2import datetime3import sys4import numpy as np567class LR:8def__init__(self, train_file_name, test_file_name, predict_result_file_name):9 self.train_file = train_file_name10 self.predict_file = test_file_name11 self.predict_result_file = predict_result_file_name12 self.max_iters = 76013 self.rate = 0.114 self.feats = []15 bels = []16 self.feats_test = []17 bels_predict = []18 self.param_num = 019 self.weight = []2021def loadDataSet(self, file_name, label_existed_flag):22 feats = []23 labels = []24 fr = open(file_name)25 lines = fr.readlines()26for line in lines:27 temp = []28 allInfo = line.strip().split(',')29 dims = len(allInfo)30if label_existed_flag == 1:31for index in range(dims-1):32 temp.append(float(allInfo[index]))33 feats.append(temp)34 labels.append(float(allInfo[dims-1]))35else:36for index in range(dims):37 temp.append(float(allInfo[index]))38 feats.append(temp)39 fr.close()40 feats = np.array(feats)41 labels = np.array(labels)42return feats, labels4344def loadTrainData(self):45 self.feats, bels = self.loadDataSet(self.train_file, 1)4647def loadTestData(self):48 self.feats_test, bels_predict = self.loadDataSet(49 self.predict_file, 0)5051def savePredictResult(self):52print(bels_predict)53 f = open(self.predict_result_file, 'w')54for i in range(len(bels_predict)):55 f.write(str(bels_predict[i])+"\n")56 f.close()5758def sigmod(self, x):59return 1/(1+np.exp(-x))6061def printInfo(self):62print(self.train_file)63print(self.predict_file)64print(self.predict_result_file)65print(self.feats)66print(bels)67print(self.feats_test)68print(bels_predict)6970def initParams(self):71 self.weight = np.ones((self.param_num,), dtype=np.float)7273def compute(self, recNum, param_num, feats, w):74return self.sigmod(np.dot(feats, w))7576def error_rate(self, recNum, label, preval):77return np.power(label - preval, 2).sum()7879def predict(self):80 self.loadTestData()81 preval = pute(len(self.feats_test),82 self.param_num, self.feats_test, self.weight)83 bels_predict = (preval+0.5).astype(np.int)84 self.savePredictResult()8586def train(self):87 self.loadTrainData()88 recNum = len(self.feats)89 self.param_num = len(self.feats[0])90#print(self.param_num)91 self.initParams()92 ISOTIMEFORMAT = '%Y-%m-%d %H:%M:%S,f'93for i in range(self.max_iters):94 preval = pute(recNum, self.param_num,95 self.feats, self.weight)96 sum_err = self.error_rate(recNum, bels, preval)97if i%30 == 0:98print("Iters:" + str(i) + " error:" + str(sum_err))99 theTime = datetime.datetime.now().strftime(ISOTIMEFORMAT)100print(theTime)101 err = bels - preval102 delt_w = np.dot(self.feats.T, err)103 delt_w /= recNum104 self.weight += self.rate*delt_w105106107def print_help_and_exit():108print("usage:python3 main.py train_data.txt test_data.txt predict.txt [debug]") 109 sys.exit(-1)110111112def parse_args():113 debug = False114if len(sys.argv) == 2:115if sys.argv[1] == 'debug':116print("test mode")117 debug = True118else:119 print_help_and_exit()120return debug121122123if__name__ == "__main__":124#debug = parse_args()125 train_file = "./data/train_data.txt"126 test_file = "./data/test_data.txt"127 predict_file = "./data/result.txt"128 lr = LR(train_file, test_file, predict_file)129 lr.train()130 lr.predict()131 debug=True132133if debug:134 answer_file ="./data/answer.txt"135 f_a = open(answer_file, 'r')136 f_p = open(predict_file, 'r')137 a = []138 p = []139 lines = f_a.readlines()140for line in lines:141 a.append(int(float(line.strip())))142 f_a.close()143144 lines = f_p.readlines()145for line in lines:146 p.append(int(float(line.strip())))147 f_p.close()148149print("answer lines:%d" % (len(a))) 150print("predict lines:%d" % (len(p))) 151152 errline = 0153for i in range(len(a)):154if a[i] != p[i]:155 errline += 1156157 accuracy = (len(a)-errline)/len(a) 158print("accuracy:%f" %(accuracy))。
华为软件测试笔试题
华为软件测试笔试题
华为软件测试笔试题
华为软件测试笔试题
前面几道大题是基础形的判断、选择、阅读理解题,涉及到网络、通信、软件工程等等,都是大英文。
不过不难,CET4的水平就差不多了,但是重要的还是计算机方面的一些基础知识。
后面的几道大题如下:
1、有A、B两个水杯,都没有刻度,也不允许做刻度。
A杯装满水是5升,B杯装满水是3升。
不借助别的任何工具,只用这两个杯子如何精确的得到4升水?
A满5 B空
A将B满 A2
清空B
A2移于B
A满5
A5满B
A4
2、软件工程中,根据软件开发的` V 模型,有哪些基本的阶段划分?
3、软件测试方法有哪些分类?各有什么特点?设计测试用例的主要方法有哪些?
4、网络安全方面,简述Syn_FLOOD攻击的原理。
你还知道哪些类型的网络攻击?
一、根据一张“策略—收获”图,张三可以选择横向的方案A和方案B,李四可以选择纵向的方案1、方案2、方案3。
两人选择方案
的交叉点就是两人各自的收获。
比如张三选择方案B,李四选择方案1,交叉点是(50,80),则张三收获50元,李四收获80元。
两人都想让自己的收获尽可能的高,选择方案时两人均不知对方的选择。
问两人最终的收获各是多少?
二、桌上排列着一行乒乓球,一共100个。
两个人轮流拿球装入口袋,拿到第100个球的人是胜利者。
每次拿球最少拿1个,最多拿5个。
如果你先开始拿球,你要拿几个?以后你要怎样拿球,才能保证你能拿到第100个?
三、冒泡排序。
用C 或 Java 语言。
(从小到大排序)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
通过键盘输入一串小写字母(a~z)组成的字符串。
请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。
比如字符串“abacacde”过滤结果为“abcde”。
要求实现函数:void stringFilter(const char *pInputStr, long lInputLen, char *pOutputStr);【输入】pInputStr:输入字符串lInputLen:输入字符串长度【输出】pOutputStr:输出字符串,空间已经开辟好,与输入字符串等长;【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出示例输入:“deefd” 输出:“def”输入:“afafafaf” 输出:“af”输入:“pppppppp” 输出:“p”*//* main函数已经隐藏,这里保留给用户的测试入口,在这里测试你的实现函数,可以调用printf打印输出*//* 当前你可以使用其他方法测试,只要保证最终程序能正确执行即可*//* 该函数实现可以任意修改,但是不要改变函数原型。
一定要保证编译运行不受影响*//*题目描述(40分):通过键盘输入一串小写字母(a~z)组成的字符串。
请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。
压缩规则:1. 仅压缩连续重复出现的字符。
比如字符串"abcbc"由于无连续重复字符,压缩后的字符串还是"abcbc".2. 压缩字段的格式为"字符重复的次数+字符"。
例如:字符串"xxxyyyyyyz"压缩后就成为"3x6yz"要求实现函数:void stringZip(const char *pInputStr, long lInputLen, char *pOutputStr);【输入】pInputStr:输入字符串lInputLen:输入字符串长度【输出】pOutputStr:输出字符串,空间已经开辟好,与输入字符串等长;【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出示例输入:“cccddecc” 输出:“3c2de2c”输入:“adef” 输出:“adef”输入:“pppppppp” 输出:“8p”*//*题目描述(50分):通过键盘输入100以内正整数的加、减运算式,请编写一个程序输出运算结果字符串。
输入字符串的格式为:“操作数1 运算符操作数2”,“操作数”与“运算符”之间以一个空格隔开。
补充说明:1. 操作数为正整数,不需要考虑计算结果溢出的情况。
2. 若输入算式格式错误,输出结果为“0”。
要求实现函数:void arithmetic(const char *pInputStr, long lInputLen, char *pOutputStr);【输入】pInputStr:输入字符串lInputLen:输入字符串长度【输出】pOutputStr:输出字符串,空间已经开辟好,与输入字符串等长;【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出示例输入:“4 + 7” 输出:“11”输入:“4 - 7” 输出:“-3”输入:“9 ++ 7” 输出:“0” 注:格式错误1 #include <stdio.h>2 #include <stdlib.h>3 #include <string.h>4#define MAXCHAR 2565void stringFilter(const char *pInputStr, int length, char * pOutputStr) 6 {7int tmp[26] = {0};8int i, j=0, k = 0;9for(i = 0; i < length; i ++)10 {11 k = pInputStr[i] - 'a';12if(tmp[k] == 0)13 {14 tmp[k] ++;15 pOutputStr[j++] = pInputStr[i];16 }1718 }19 pOutputStr[k] = '\0';20 }21void stringZip(const char *pInputStr, int length, char * pOutputStr) 22 {23char last;24int i, j;25 last = pOutputStr[0] = pInputStr[0];26for(i = 1, j = 1; i < length; i++)27 {28if(last != pInputStr[i])29 {30 last = pInputStr[i];31 pOutputStr[j ++] = pInputStr[i];32 }33 }34 pOutputStr[j] = '\0';35 }36void arithmetic(const char *pInputStr, int length, char * pOutputStr) 37 {38int Num1 = 0, Num2 = 0, SUM, i, j, res = 0;39char flag;40/*sscanf() - 从一个字符串中读进与指定格式相符的数据.41函数原型:42int sscanf(const char *buffer,const char *format,[argument ]...); 43buffer 存储的数据44format 格式控制字符串45argument 选择性设定字符串46sscanf会从buffer里读进数据,依照argument的设定将数据写回。
47头文件:48#include<stdio.h>49返回值:50成功则返回参数数目,失败则返回0,错误原因存于errno中。
*/51 res = sscanf(pInputStr, "%d %c %d", &Num1, &flag, &Num2);52if(res < 3 || (flag != '+' && flag != '-'))53 {54 strcpy(pOutputStr, "0");55return;56 }57 printf("%d %c %d \n", Num1, flag, Num2);58if(flag == '+')59 SUM = Num1 + Num2;60else61 SUM = Num1 - Num2;62/* 函数原型:63char *itoa(int value, char *string, int radix);64 int value 被转换的整数,char *string 转换后储存的字符数组,int radix 转换进制数,如2,8,10,16 进制等65头文件:66<stdlib.h>*/67 itoa(SUM, pOutputStr, 10);6869 }70int main()71 {72char pInputStr1[] = {"aaabbbcccdde"};73char pInputStr2[] = {"aaabbcddde"};74char pInputStr3[] = {"+13 -+ 14"};75char pOutputStr1[MAXCHAR] = {0};76char pOutputStr2[MAXCHAR] = {0};77char pOutputStr3[MAXCHAR] = {0};7879/* TODO: 调用被测函数 */80 stringFilter(pInputStr1, strlen(pInputStr1), pOutputStr1);81 stringZip(pInputStr2, strlen(pInputStr2), pOutputStr2);82 arithmetic(pInputStr3, strlen(pInputStr3), pOutputStr3);8384/* TODO: 执行完成后可比较是否是你认为正确的值 */85 printf(pOutputStr1); //abcde86 printf("\n");87 printf(pOutputStr2); //3a3b3c2de88 printf("\n");89 printf(pOutputStr3); //790return;91 }2012年华为上机题1.给定一个数组input[],如果数组长度n为奇数,则将数组中最大的元素放在output[]中间位置,如果数组长度n为偶数,则将数组中最大元素放在两个中间位置偏右的位置。
然后再从大到小的顺序,一次在第一个位置的两边,按照一左一右的顺序,一次存放剩下的数。
1 #include <stdio.h>2void bubule_sort(int arry[], int length)//冒泡排序3 {4int i, j, tmp, flag = 0;5for(i = 0; i < length; i++)6 {7 flag = 0;8for(j = length - 1; j > i; j--)9 {10if( arry[j - 1] < arry[j])11 {12 flag = 1;13 tmp = arry[j - 1];14 arry[j - 1] = arry[j];15 arry[j] = tmp;16 }17 }18if(flag == 0)19break;20 }21 }22void movetoarray(int input[], int output[], int length)23 {24int i, m = length/2, n= length/2 + 1, flag = 0;25 bubule_sort(input, length);26//当flag=0,放在右侧。
当flag=1,放在左侧。
27for(i = 1; i <= length; i++)28 {29if(flag == 0)30 {31 flag = 1;32 output[n - 1] = input[i - 1];33 n ++;34 }35else36 {37 flag = 0;38 output[m - 1] = input[i - 1];39 m --;40 }41 }42 }43int main()44 {45int i;46int arry1[5] = {5, 4, 3, 2, 1}, res1[5], arry2[6] = {6, 4, 3, 2, 5, 1}, res2[6];47 movetoarray(arry1, res1, 5);48 movetoarray(arry2, res2, 6);49for(i = 0; i < 5; i ++)50 printf("%d\t", res1[i]);51 printf("\n");52for(i = 0; i < 6; i ++)53 printf("%d\t", res2[i]);54 printf("\n");55return0;56 }2. 对一个数组,将数组中偶数从小到大排序,奇数从小到大排序,奇数和偶数交叉着放且第一位放奇数。