华为2017年10月校招软件岗位线上笔试题

合集下载

华为公司面试笔试题

华为公司面试笔试题

华为公司面试笔试题《一》Q1:请你分别划划OSI的七层网络结构图,和TCP/IP的五层结构图?Q2:请你详细的解释一下IP协议的定义,在哪个层上面,主要有什么作用? TCP与UDP呢?Q3:请问交换机和路由器分别的实现原理是什么?分别在哪个层次上面实现的?Q4:请问C++的类和C里面的STRUCT有什么区别?05:请讲一讲析构函数和虚函数的用法和作用?Q6:全局变量和局部变量有什么区别?实怎么实现的?操作系统和编译器是怎么知道的?Q7:一些寄存器的题目,主要是寻址和内存管理等一些知识。

Q8:8086是多少位的系统?在数据总线上是怎么实现的?《二》1、测试设计(任选一题)A、规则说明一号通功能是指用户的多个终端(手机、固定电话)可以挂在一个虚拟或实际号码下面、这个号码称为引导号码。

当其它用户拨打引导号码时,用户的多个终端会同时振铃,当用户接听其中一个终端后,其它终端将停止振铃。

一号通最多只支持有2个成员;一号通的成员可以是固定电话或移动电话;引导号码长度为4-16请设计相应测试用例验证一号通功能(写出分析过程)B、规则说明假设需要实现操作系统中的一个进程调度器,根据如下规则来确定如何进行测试设计、进程可处于5种状态;1、就绪随时可以被调度器选中,从而获得CPU得到执行2、运行已经获得CPU,正在执行3、阻塞进程申请系统中的资源,如果资源暂时无法获得,则进入阻塞状态4、终止进程结束,则进入终止状态,等待操作系统回收进程在创建或运行时申请的资源5、死亡处于终止状态的进程资源被回收后,进程彻底消失,等价于没有被创建请设计用例测试进程调度器(写出分析过程)。

2、英文翻译1、Round RobinSpecifies that the system passes each mew commection request to the next server in line eventually distributing connections evenly across the array of machines being load balanced. This method works well in most configurations , especially if the equipment that you are load balancing is roughly equal in processing speed and memory.2、The maximum number of HTTP/HTTPS transactions per connection ,before the clientcloses the TCP connection with the proxy , regardless of whether or not the destination is from the same sever).3、程序设计题(可选)不使用任何库,编写一个函数char*remove(const char* src,char c )参数src为输入的字符串,长度不确定,不为空。

华为IT软件测试笔试题

华为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模型软件测试过程活动完全*,贯穿产品整个生命周期,与其他流程并发地进行。

华为面试笔试题

华为面试笔试题

华为软件测试笔试题Posted on 2010年04月1日, 22:29, by admin, under Test.华为软件测试笔试题前面几道大题是基础形的判断、选择、阅读理解题,涉及到网络、通信、软件工程等等,都是大英文。

不过不难,CET4的水平就差不多了,但是重要的还是计算机方面的一些基础知识。

后面的几道大题如下:1、有A、B两个水杯,都没有刻度,也不允许做刻度。

A杯装满水是5升,B杯装满水是3升。

不借助别的任何工具,只用这两个杯子如何精确的得到4升水?A满5 B空A将B满 A2清空BA2移于BA满5A5满BA42、软件工程中,根据软件开发的 V 模型,有哪些基本的阶段划分?3、软件测试方法有哪些分类?各有什么特点?设计测试用例的主要方法有哪些?4、网络安全方面,简述Syn_FLOOD攻击的原理。

你还知道哪些类型的网络攻击?一、根据一张“策略—收获”图,张三可以选择横向的方案A和方案B,李四可以选择纵向的方案1、方案2、方案3。

两人选择方案的交叉点就是两人各自的收获。

比如张三选择方案B,李四选择方案1,交叉点是(50,80),则张三收获50元,李四收获80元。

两人都想让自己的收获尽可能的高,选择方案时两人均不知对方的选择。

问两人最终的收获各是多少?二、桌上排列着一行乒乓球,一共100个。

两个人轮流拿球装入口袋,拿到第100个球的人是胜利者。

每次拿球最少拿1个,最多拿5个。

如果你先开始拿球,你要拿几个?以后你要怎样拿球,才能保证你能拿到第100个?三、冒泡排序。

用C 或 Java 语言。

(从小到大排序)C#includevoid main(){int a[10];int temp;int i;int j;int x;a[0] = 3;a[1] = 4;a[2] = 54;a[3] = 654;a[4] = 77;a[5] = 8;a[6] = 9;a[7] = 366;a[8] = 90;a[9] = 32;for( i=0;i<9;i++){for( j =0; j<9-i;j++){if(a[j] > a[j+1]){temp = a[j];a[j] = a[j+1];a[j+1] =temp;}}}for(x=0;x<10;x++){printf("%d\t",a[x]);}}JAVA:package pck;//打开pck数据包public class Bubble {//建立一个名为Bubble的类public static void main(String args[]){//建立main函数int nums[]={99,-10,100123,18,-978,5623,463,-9,287,49};//建立名为nums的数组,包含10个数,并为这10个数初始化值int a,b,t;建立3个整型变量System.out.print("Original array is:");//屏幕输出Original array is:这段字符for(int i=0;i<10;i++)//循环System.out.print(" "+nums[i]);//屏幕上依次显示空格+nums[0]的数值空格+nums[1]……+nums[9]System.out.println();for(a=1;a<10;a++)for(b=10-1;b>=a;b--){if(nums[b-1]>nums[b]){//当后面的数大于前面的数是执行调换t=nums[b-1];nums[b-1]=nums[b];nums[b]=t;}}//一段for语句循环,意思是把数组里大的数吊到前面,小的放到后面System.out.print("Sroted array is:");屏幕上输出Sroted array is:这段字符for(int i=0;i<10;i++)//循环语句为后面输出nums里的数作准备System.out.print(" "+nums[i]);//在屏幕上输出空格+nums[0]空格+nums[1]……nums[9] System.out.println();//这句不太清楚,可能是输出空白行}}C#/**/////// 冒泡排序////// 源数组 /// 是否倒序 /// 返回数组private int[] Order(int[] src,bool isDesc){for (int i = 0; i < src.Length - 1; i++){for (int j = 0; j < src.Length - 1; j++){if (isDesc){if (src[j] < src[j + 1])//倒序排列:如果左边小于右边则交换位置{int tmp = src[j]; src[j] = src[j + 1]; src[j + 1] = tmp;}}else{if (src[j] > src[j + 1])//顺序排列:如果左边小于右边则交换位置{int tmp = src[j]; src[j] = src[j + 1]; src[j + 1] = tmp;}}}}return src;}华为软件测试笔试题主要分三部分:软件基础题、数据结构编程题、数据库题其中软件基础题题型有:选择(约50题,多为软件工程知识:黑盒测试、软件测试流程等、数据库SQL语言、二叉树中序遍历、数据类型在内存中存储情况、面向对象的含义、队列、栈、堆等)、程序填空(1题,二叉树先序遍历)、写运行结果,还有一个忘记了。

华为软件测试工程师笔试题一

华为软件测试工程师笔试题一

华为软件测试工程师笔试题一华为软件测试工程师笔试题一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、同一层中的各网络节点都有相同的层次结构,具有同样的功能。

华为校园招聘上机笔试题

华为校园招聘上机笔试题

华为校园招聘上机笔试题华为校园招聘上机笔试题上机时间两小时,3道题1 字串转换问题描述:将输入的字符串(字符串仅包含小写字母‘a’到‘z’),按照如下规则,循环转换后输出:a->b,b->c,…,y->z,z->a;若输入的字符串连续出现两个字母相同时,后一个字母需要连续转换2次。

例如:aa 转换为 bc,zz 转换为 ab;当连续相同字母超过两个时,第三个出现的字母按第一次出现算。

要求实现函数:void convert(char *input,char* output)【输入】 char *input , 输入的字符串【输出】 char *output ,输出的`字符串【返回】无示例输入:char*input="abcd"输出:char*output="bcde"输入:char*input="abbbcd"输出:char*output="bcdcde"void convert(char *input,char *output){char c='\0';int tag=0;int len=strlen(input);for(int i=0;i{if(input[i]!=c)//当前字符与前一个字符不相等,则该字符+1{output[i]=(input[i]-'a'+1)%26+'a';c=input[i];tag=1;}else{if(tag==1)//当前字符与前一个字符相等,且前面只有一个字符相同{output[i]=(input[i]-'a'+2)%26+'a';c='\0';tag=0;}else//当前字符与前一个字符相等,且前面已有2n个字符相同。

则按第一次出现算{output[i]=(input[i]-'a'+1)%26+'a';c=output[i];tag=1;}}}}void convert(char *input,char *output){char c='\0';int tag=0;int len=strlen(input);for(int i=0;i{if(input[i]!=c)//当前字符与前一个字符不相等,则该字符+1{output[i]=(input[i]-'a'+1)%26+'a';c=input[i];tag=1;}else{if(tag==1)//当前字符与前一个字符相等,且前面只有一个字符相同{output[i]=(input[i]-'a'+2)%26+'a';c='\0';tag=0;}else//当前字符与前一个字符相等,且前面已有2n个字符相同。

2017华为软件测试笔试题

2017华为软件测试笔试题

2017华为软件测试笔试题准备去华为面试软件测试的朋友,你做好准备了吗?今天,CN 人才网小编为大家带来的是2017华为软件测试笔试题,希望对大家有帮助~一、判断题1.软件测试的目的是尽可能多的找出软件的缺陷。

()2.Beta 测试是验收测试的一种。

()3.验收测试是由最终用户来实施的。

()4.项目立项前测试人员不需要提交任何工件。

()5.代码评审是检查源代码是否达到模块设计的要求。

()6.自底向上集成需要测试员编写驱动程序。

()7.负载测试是验证要检验的系统的能力最高能达到什么程度。

()8.测试人员要坚持原则,缺陷未修复完坚决不予通过。

()9.代码评审员一般由测试员担任。

()二、不定项选择题(每题2 分,10分)1.软件验收测试的合格通过准则是:()A. 软件需求分析说明书中定义的所有功能已全部实现,性能指标全部达到要求。

B. 所有测试项没有残余一级、二级和三级错误。

C. 立项审批表、需求分析文档、设计文档和编码实现一致。

D. 验收测试工件齐全。

2.软件测试计划评审会需要哪些人员参加?()A.项目经理B.SQA 负责人C.配置负责人D.测试组3.测试设计员的职责有:()A.制定测试计划项目组长B.设计测试用例C.设计测试过程、脚本D.评估测试活动4.软件实施活动的进入准则是:()A.需求工件已经被基线化B.详细设计工件已经被基线化C.构架工件已经被基线化D.项目阶段成果已经被基线化三、填空题1.软件验收测试包括___、___、____三种类型。

2.对面向过程的系统采用的集成策略有___、___两种。

3.设计系统测试计划需要参考的项目文挡有___、___、___。

四、简答题1.区别阶段评审的与同行评审2.什么是软件测试3简述集成测试的过程4 怎么做好文档测试5 白盒测试有几种方法五、设计题在三角形计算中,要求三角型的三个边长:A、B 和C。

当三边不可能构成三角形时提示错误,可构成三角形时计算三角形周长。

2017华为软件测试工程师笔试题

2017华为软件测试工程师笔试题

2017华为软件测试工程师笔试题华为软件测试工程师笔试题有哪些?下面CN人才网小编为大家带来的是2017华为软件测试工程师笔试题,希望对大家有所帮助~1、怎么来设计测试方案根据测试需求(包括功能需求和非功能性需求),识别测试要点,识别测试环境要求,安排测试轮次,根据项目计划和开发计划做整体的测试安排。

被测试的特性:通过对需求规格说明书进行分析,列出本次测试需要进行测试的各部分特性(如要测试的功能需求、性能需求、安全性需求等等);不被测试的特性:由于资源、进度等方面原因,本次测试不列入测试范围的特性;测试组网图:进行本次系统测试所需要的软硬件设备、配置数据已及相互间的逻辑、物理连接。

今后测试执行时需要依据这个组网图来进行环境的搭建。

2、如果给你一个B/S系统你怎么来进行测试此题答案还可用于回答测试流程,测试流程题亦可参考15题。

阅读系统需求,充分理解需求,记录问题,并与项目需求人员充分沟通。

编写测试需求,包括系统功能和非功能测试要点、测试类型、测试进度质量要求等。

制定测试计划,包括熟悉测试业务、设计测试用例、执行测试用例、进行测试小结、编写测试报告,任务颗粒度一般应小于5人天编写测试用例,根据测试方案设计用例,即便没有明确的性能和安全测试要求,也应识别进行此两项测试。

执行软件测试,进行测试小结,如果测试持续时间较长,每个版本间隙总结本轮测试。

编写测试报告,总结测试过程,汇总度量数据。

3、怎么进行工作流的测试把握需求,找准结点,理清流程,画出流转图,弄清节点间的数据流转,设计测试用例的时候必须覆盖所有可能的流程。

工作流:如果问到有没有做过,根据对工作流的了解情况回答,如果比较了解,可以把参与的某个项目中说上一些有工作流的,如果不是很了解就说没有做过,但是学习过相关知识。

4、做性能测试的时候都需要关注哪些参数并发访问量,服务器响应时间(最小、平均、最大)并发性能测试的过程是一个负载测试和压力测试的过程,即逐渐增加负载,直到系统的瓶颈或者不能接收的性能点,通过综合分析交易执行指标和资源监控指标来确定系统并发性能的过程。

华为校招历年机试题目

华为校招历年机试题目

华为历年笔试题目总结因最近要参加华为的招聘,便从网上搜集了一些华为笔试历年题目,现总结献给大家,因本人非软件出生,水平有限,仅供参考,若有误处,请海涵。

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

∙要求实现函数:void my_string(char* input, char* output)【输入】char* input,输入的字符串【输出】char* output,输出的字符串【返回】无∙示例输入:inp ut = “A*(BC&De+_fg/*”输出:output = “ABCDefg”输入:input = “aB+_9”输出:output = “aB9”程序如下:void my_string(char* input, char* output){int i,j;i=j=0;while(*(input+i)!='\0'){if((*(input+i)>='A'&&*(input+i)<='Z')||(*(input+i)>='a'&&*(input+i)<='z')||(*(input+i)>='0'&&*(input+i)<='9')){*(output+j)=*(input+i);j++;}i++;}*(output+j+1)='\0';}题目描述:输入一个字符串,将其中大写字母转换为对应小写字母之后的第五个字母,若原始大写字母为V~Z, 则转换为对应小写字母的值减21。

其他字符不变,输出转换后的字符串。

例如,对于字母A,则转换为小写字母f;若形参是字母W,则转换为小写字母b要求实现函数:void TransferString(const char * pInputStr, long lInputLen, char * pOutputStr);【输入】pInputStr:输入字符串lInputLen:输入字符串长度【输出】pOutputStr:输出字符串,空间已经开辟好,与输入字符串等长;【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出示例输入:“Axs3mWss”输出:“fxs3mbss”void TransferString(const char * pInputStr, long lInputLen, char * pOutputStr){int i=0;for(i=0;i<lInputLen;i++){if(pInputStr[i]>='A'&&pInputStr[i]<'V')pOutputStr[i]=pInputStr[i]+'a'-'A'+5;else if(pInputStr[i]>='V'&&pInputStr[i]<='Z')pOutputStr[i]=pInputStr[i]+'a'-'A'-21;elsepOutputStr[i]=pInputStr[i];}}3. 单词统计题目描述:输入一段英文文本,用程序统计出现频率最高和最低的两个单词;英文文本中仅出现这四类字符:空格( )、英文逗号(,)、英文句号(.)、英文大小写字母(a-z、A-Z)单词之间的分隔符仅考虑这三种:空格( )、英文逗号(,)、英文句号(.);仅大小写不同的单词算同一个单词;如果两个单词出现次数相同,则在文本中首次出现的单词优先返回。

华为笔试题大全(史上最齐全)

华为笔试题大全(史上最齐全)

华为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输出该数值,直至全部输出。

华为公司软件笔试试卷 精品

华为公司软件笔试试卷 精品

华为公司软件笔试试卷(C/C++)一、填空题1-11-2、头文件中#ifndef/#define/#endif1-3、在如下的二叉数树中:请写出前序遍历为:ABDCEGFHI(也称前序周游)扩展知识:前序遍历首先访问根结点然后遍历左子树,最后遍历右子树。

在遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。

若二叉树为空则结束返回,否则:(1)访问根结点(2)前序遍历左子树(3)前序遍历右子树注意的是:遍历左右子树时仍然采用前序遍历方法。

如上图所示二叉树前序遍历,也叫先根遍历,遍历的顺序是:根,左子树,右子树遍历结果:ABDECF中序遍历,也叫中根遍历,顺序是:左子树,根,右子树遍历结果:DBEAFC后序遍历,也叫后根遍历,遍历顺序,左子树,右子树,根遍历结果:DEBFCA1-4、以下为32位操作系统下的C 程序,请计算sizeof的值a)char str[]=”hello”;char *p = str;int n = 10;请计算:sizeof { str } =6sizeof { p } = 4sizeof { n } = 4b)void Func { char str[100]}{sizeof { str } =4}c)void *p = malloc { 100}sizeof {p}=4二、选择题2-1、在一种语言中,运算符是从右向左结合的(例如:a+b+c=a+(b+c));下面表达式“7-(16/(3+10*2)-4”的结果是:(C)A -1B 1C 3D 7E 92-2、某些操作系统把一条命令的执行结果输出给下一条命令,作为它的输入,并加以处理,这种机制称为A,使命令执行的结果不在屏幕上显示,而引入另外一个文件,这种机制称为B。

使命令所需要的处理信息不从键盘接收,而取自另一个文件,这种机制称为C。

操作系统不从键盘逐条接收命令,而调用一个正文文件,执行其中保存的一系列命令,这种方式属于D方式,编写这样的文件应符合E 的语法规则。

华为笔试题含答案软件工程题

华为笔试题含答案软件工程题

华为笔试题含答案 [软件工程题]写一个程序, 要求功能:求出用1,2,5这三个数不同个数组合的和为100的组合个数。

如:100个1是一个组合,5个1加19个5是一个组合。

请用C++语言写。

答案:最容易想到的算法是:设x是1的个数,y是2的个数,z是5的个数,number 是组合数注意到0<=x<=100,0<=y<=50,0<=z=20,所以可以编程为: number=0; for (x=0; x<=100; x++) for (y=0; y<=50; y++) for (z=0; z<=20; z++) if ((x+2*y+5*z)==100)number++; cout<<number<<endl;上面这个程序一共要循环100*50*20次,效率实在是太低了事实上,这个题目是一道明显的数学问题,而不是单纯的编程问题。

我的解法如下:因为x+2y+5z=100所以x+2y=100-5z,且z<=20 x<=100 y<=50所以(x+2y)<=100,且(x+5z)是偶数对z作循环,求x的可能值如下:z=0, x=100, 98, 96, ... 0 z=1, x=95, 93, ..., 1z=2, x=90, 88, ..., 0 z=3, x=85, 83, ..., 1z=4, x=80, 78, ..., 0 ...... z=19, x=5, 3, 1 z=20, x=0 因此,组合总数为100以内的偶数+95以内的奇数+90以内的偶数+...+5以内的奇数+1,即为:(51+48)+(46+43)+(41+38)+(36+33)+(31+28)+(26+23)+(21+18)+(16+13)+(11+8)+(6+3)+1某个偶数m以内的偶数个数(包括0)可以表示为m/2+1=(m+2)/2 某个奇数m以内的奇数个数也可以表示为(m+2)/2 所以,求总的组合次数可以编程为:number=0; for (int m=0;m<=100;m+=5) { number+=(m+2)/2;} cout<<number<<endl;这个程序,只需要循环21次, 两个变量,就可以得到答案,比上面的那个程序高效了许多倍----只是因为作了一些简单的数学分析这再一次证明了:计算机程序=数据结构+算法,而且算法是程序的灵魂,对任何工程问题,当用软件来实现时,必须选取满足当前的资源限制,用户需求限制,开发时间限制等种种限制条件下的最优算法。

华为笔试题(有答案)

华为笔试题(有答案)

华为笔试题(有答案)华为笔试题1.写出判断ABCD四个表达式的是否正确, 若正确, 写出经过表达式中 a的值(3分)int a = 4;(A)a += (a++); (B) a += (++a) ;(C) (a++) += a;(D) (++a) += (a++);a = ?答:C错误,左侧不是一个有效变量,不能赋值,可改为(++a) += a;改后答案依次为9,10,10,112.某32位系统下, C++程序,请计算sizeof 的值(5分).char str[] = “/”char *p = str ;int n = 10;请计算sizeof (str ) = ?(1)sizeof ( p ) = ?(2)sizeof ( n ) = ?(3)void Foo ( char str[100]){请计算sizeof( str ) = ?(4)}void *p = malloc( 100 );请计算sizeof ( p ) = ?(5)答:(1)17 (2)4 (3) 4 (4)4 (5)43. 回答下面的问题. (4分)(1).头文件中的 ifndef/define/endif 干什么用?预处理答:防止头文件被重复引用(2). #include <filename.h> 和 #include "filename.h" 有什么区别?答:前者用来包含开发环境提供的库头文件,后者用来包含自己编写的头文件。

(3).在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern “C”声明?答:函数和变量被C++编译后在符号库中的名字与C语言的不同,被extern "C"修饰的变量和函数是按照C语言方式编译和连接的。

由于编译后的名字不同,C++程序不能直接调用C 函数。

C++提供了一个C 连接交换指定符号extern“C”来解决这个问题。

(4). switch()中不允许的数据类型是?答:实型4. 回答下面的问题(6分)(1).Void GetMemory(char **p, int num){*p = (char *)malloc(num);}void Test(void){char *str = NULL;GetMemory(&str, 100);strcpy(str, "hello");printf(str);}请问运行Test 函数会有什么样的结果?答:输出“hello”(2). void Test(void){char *str = (char *) malloc(100);strcpy(str, “hello”);free(str);if(str != NULL){strcpy(str, “world”);printf(str);}}请问运行Test 函数会有什么样的结果?答:输出“world”(3). char *GetMemory(void){char p[] = "hello world";return p;}void Test(void){char *str = NULL;str = GetMemory();printf(str);}请问运行Test 函数会有什么样的结果?答:无效的指针,输出不确定5. 编写strcat函数(6分)已知strcat函数的原型是char *strcat (char *strDest, const char *strSrc);其中strDest 是目的字符串,strSrc 是源字符串。

华为笔试题及答案

华为笔试题及答案

华为笔试题及答案一、选择题1. 下列哪种编程范式主要关注程序的计算过程和程序状态的变化?A. 面向对象编程B. 函数式编程C. 命令式编程D. 声明式编程答案:C解析:命令式编程是一种编程范式,主要关注程序的计算过程和程序状态的变化。

与之相对的是声明式编程,它更关注程序的结果而非过程。

2. 下列哪种排序算法的时间复杂度是O(nlog n)?A. 冒泡排序B. 快速排序C. 选择排序D. 插入排序答案:B解析:快速排序的平均时间复杂度为O(nlog n),而冒泡排序、选择排序和插入排序的时间复杂度都是O(n^2)。

二、填空题3. 在计算机科学中,二叉树中的节点个数n与边数e的关系为______。

答案:e = n - 1解析:在二叉树中,每个节点都有两个子节点(可能为空),因此节点数n与边数e之间的关系为e = n - 1。

4. 一个具有1024个节点的完全二叉树,其深度为______。

答案:10解析:完全二叉树的深度可以通过以下公式计算:深度 = log2(节点数) + 1。

对于1024个节点的完全二叉树,深度为log2(1024) + 1 = 10 + 1 = 11。

三、算法题5. 编写一个C++程序,实现一个函数,该函数接收一个整数数组和一个目标值,返回数组中和为目标值的两个数的索引。

答案:```cpp#include <iostream>#include <vector>#include <unordered_map>std::vector<int> twoSum(const std::vector<int>& nums, int target) {std::unordered_map<int, int> hash_map;for (int i = 0; i < nums.size(); ++i) {int complement = target - nums[i];if (hash_map.find(complement) !=hash_map.end()) {return {hash_map[complement], i};}hash_map[nums[i]] = i;}return {};}int main() {std::vector<int> nums = {2, 7, 11, 15};int target = 9;std::vector<int> result = twoSum(nums, target);std::cout << "Indices are: " << result[0] << " and " << result[1] << std::endl;return 0;}```解析:本题考查哈希表的应用。

华为软件笔试题精修订

华为软件笔试题精修订

华为软件笔试题标准化管理部编码-[99968T-6889628-J68568-1689N]华为软件笔试题一、判断题(对的写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)=()sizeof(p)=()sizeof(n)=()voidfunc(charstr[100]){}sizeof(str)=()2、voidsetmemory(char**p,intnum){*p=(char*)malloc(num);}voidtest(void){char*str=NULL;getmemory(&str,100);strcpy(str,"hello");printf(str);}运行test函数有什么结果()10分3、设intarr[]={6,7,8,9,10};int*ptr=arr;(ptr++)+=123;printf("%d,%d",*ptr,*(++ptr));()10分二、编程题(第一小题20,第二小题30分)1、不使用库函数,编写函数intstrcmp(char*source,char*dest)相等返回0,不等返回-1;2、写一函数intfun(char*p)判断一字符串是否为回文,是返回1,不是返回0,出错返回-1(1)什么是预编译,何时需要预编译:答案:1、总是使用不经常改动的大型代码体。

华为校园招聘软件测试笔试题分

华为校园招聘软件测试笔试题分

华为软件测试笔试题主要分三部分:软件基础题、数据结构编程题、数据库题其中软件基础题题型有:选择(约50题,多为软件工程知识:黑盒测试、软件测试流程等、数据库SQL语言、二叉树中序遍历、数据类型在内存中存储情况、面向对象的含义、队列、栈、堆等)、程序填空(1题,二叉树先序遍历)、写运行结果,还有一个忘记了。

数据结构编程题:给出一组数据,要求按照降序排列。

写出设计思想和程序。

(冒泡排序)数据库题:多为问答题,有SQL语言查询,关系数据库......(面试官没让我做,但是瞟了一眼题目,有一大版,感觉有点深)面试中涉及:1.介绍过去两年的项目情况(内容、自己担任的工作)2.数据库底层运行(数据在数据库中如何存储,orical和SQL server之间如何联系,如何确定数据库大小以及需要的服务器个数,现场出题『多表间查询,分组』......)----不断纠缠于数据库,头都大了!3.数据结构运用(对排序的认识:说明快速派序的思路,还知道哪些排序方法,现场出题『打印三行*,第一行1个,第二行3个,第三行5个......』)4.面向对象(举例说明面向对象如何进行封装,类的继承,重载,面向对象有哪些好处)面试总结:1.笔试通过(为自己增添信心,要继续看书巩固知识,理顺知识框架)2.面试中语言组织要更加简洁、准确3.将过去两年的项目认真回顾一下,理出一套说法4.面试前准备复习时,听收音机减轻压力5.专业复习要作时间计划有针对性进行对测试人员要求比较简单啦,题目比较少,也不难。

总共只有4道题,第一道测试对整型及指针的字节数掌握第二道题改错题,是对循环次数多一少一的掌握第三道题指出错误题,是对指针及多重指针的掌握第四道是给出一个数组进行从小到大的排序,最简单的冒泡算法即可附加题又是很有意思的数学题,给1000个小球要求放到10个盒子里,问如何放使当别人报出1000以内的数字时都能通过取不同的盒子使盒子里小球的总数为所说的数字。

华为笔试题(答案)

华为笔试题(答案)

笔试题选择题1、以下程序的输出结果是:#include <stdio.h>int main(){int n =4;while (n--){printf("%d ", --n); }printf("\r\n");return0;}答案:2 02、设有以下宏定义:#define N 4#define Y(n) ((N+1)*n)则执行语句:Y(5+1)为:答案:263、enum ENUM_A{x1,y1,z1 =5,a1,b1};enum ENUM_A enumA = y1; enum ENUM_A enumB = b1;请问enumA和enumB的值是多少?答案:1,74、若有函数max(a,b),并且函数指针变量p已经指向函数,当调用该函数时正确的调用方法是:答案:(*p)(a,b)或者p(a,b)5、对栈S进行下列操作:push(1), push(5), pop(), push(2), pop(), pop(), 则此时栈顶元素是:答案:没有元素,栈空。

6、在一个32位的操作系统中,设void *p = malloc(100),请问sizeof(p)的结果是:答案:32位操作系统的寻址大小是32位,即4字节。

7、若已定义: int a[9], *p = a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是:A)p+1 B)a+1 C) a++ D) ++p答案:C8、设有如下定义:unsigned long pulArray[] = {6,7,8,9,10};unsigned long *pulPtr;则下列程序段的输出结果是什么?pulPtr = pulArray;*(pulPtr + 2) += 2;printf("%d, %d\r\n", *pulPtr, *(pulPtr + 2));A) 8, 10 B) 6, 8 C) 7, 9 D) 6, 10答案:D9、以下程序运行后,输出结果是什么?void main(){char *szStr = "abcde";szStr += 2;printf("%1u\r\n", szStr);return;}A) cde B) 字符c的ASCII码值C) 字符c的地址D) 出错答案:C10、给出以下定义:char X[] = "hello";char Y[] = {'h', 'e', 'l', 'l', 'o'};则正确的叙述为:A)数组X和数组Y等价B) 数组X和数组Y的长度相同C) 数组X的长度大于数组Y的长度D) 数组X的长度小于数组Y的长度答案:C11、在32位X86下,有下列程序#include <stdio.h>void main(){union{int k;char i[2];} *s, a;s = &a;s->i[0] = 0x39;s->i[1] = 0x38;printf("%x\r\n", a.k);}输出结果是:A) 3839 B) 3938 C) 380039 D) 不可预知答案:A12、有如下函数定义:unsigned long MyFunc(unsigned long ulKey){return (((ulKey & 0x000000ff UL) << 24) |((ulKey & 0x0000ff00UL) << 8) |((ulKey & 0x00ff0000UL) >> 8) |((ulKey & 0xff000000UL) >> 24));}则MyFunc(0x12345678)的返回值是:A) 0x12345678 B) 0x87654321 C) 0x78563412 D) 0x12563478答案:C13、((a>b)?a:b)代表什么含义:A) 代表a,b之中较小的那个值B) 代表a,b之中较大的那个值C) 代表a是否比b大D) 语法错误答案:B14、某系统总线的一个总线周期包含3个时钟周期,每个总线周期可以传送32位数据。

华为笔试题及答案

华为笔试题及答案

华为笔试题及答案2017年华为笔试题及答案华为认证,基于ICT产业链人才个人职业发展生命周期,以层次化的职业技术认证为指引,搭载华为“云-管-端”融合技术,推出的覆盖IP、IT、CT以及ICT融合技术领域的认证体系;是唯一的ICT全技术领域认证体系。

本文为大家分享最新华为笔试考试题及答案,希望对正在备考华为认证的同学们有所帮助!1. 找错void test1(){char string[10];char* str1="0123456789";strcpy(string, str1);}答:表面上并且编译都不会错误。

但如果string数组原意表示的是字符串的话,那这个赋值就没有达到意图。

最好定义为char string[11],这样最后一个元素可以存储字符串结尾符'\0';void test2(){char string[10], str1[10];for(int I=0; I<10;I++){str1[I] ='a';}strcpy(string, str1);}答:strcpy使用错误,strcpy只有遇到字符串末尾的'\0'才会结束,而str1并没有结尾标志,导致strcpy函数越界访问,不妨让str1[9]='\0',这样就正常了。

void test3(char* str1){char string[10];if(strlen(str1)<=10){strcpy(string, str1);}}答:这又会出现第一道改错题的错误了。

strlen(str1)算出来的值是不包含结尾符'\0'的,如果str1刚好为10个字符+1结尾符,string 就得不到结尾符了。

可将strlen(str1)<=10改为strlen(str1)<10。

2. 找错#define MAX_SRM 256DSN get_SRM_no(){static int SRM_no;int I;for(I=0;I {SRM_no %= MAX_SRM;if(MY_SRM.state==IDLE){break;}}if(I>=MAX_SRM)return (NULL_SRM);elsereturn SRM_no;}答:我不知道这段代码的具体功能,但明显有两个错误1,SRM_no没有赋初值2,由于static的声明,使该函数成为不可重入(即不可预测结果)函数,因为SRM_no变量放在程序的全局存储区中,每次调用的时候还可以保持原来的'赋值。

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