华为软件机试试题及答案

合集下载

华为测试工程师机试真题

华为测试工程师机试真题

华为测试工程师机试题目汇总-附答案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.删除字符串中所有给定的子串(40分)问题描述:在给定字符串中查找所有特定子串并删除,如果没有找到相应子串,则不作任何操作。

要求实现函数:int delete_sub_str(const char *str, const char *sub_str, char *result_str)【输入】:str(输入的被操作字符串)、sub_str(需要查找并删除的特定子字符串)【输出】:result_str(在str字符串中删除所有sub_str子字符串后的结果)【返回】:删除的子字符串的个数注:I、子串匹配只考虑最左匹配情况,即只需要从左到右进行字串匹配的情况。

比如:在字符串"abababab"中,采用最左匹配子串"aba",可以匹配2个"aba"字串。

如果匹配出从左到右位置2开始的"aba",则不是最左匹配,且只能匹配出1个"aba"字串。

II、输入字符串不会超过100 Bytes,请不用考虑超长字符串的情况。

示例输入:str = "abcde123abcd123"sub_str = "123"输出:result_str = "abcdeabcd"返回:2输入:str = "abcde123abcd123"sub_str = "1234"输出:result_str = "abcde123abcd123"返回:0我的答案:#include#includeint delete_sub_str(const char *str, const char *sub_str, char *result_str);int main(int argc, char *argv[]){char *st = "12fuck345fuck678fuck9";char *sub = "fuck3";char res[50] ="";int count = delete_sub_str(st, sub, res);printf("子字符串的个数是:%d\n", count);printf("删除子字符串后:\n%s\n", res);return 0;}int delete_sub_str(const char *str, const char *sub_str, char *result_str){int num = 0;int i = 0;int j = 0;int k = 0;int index = 0;for(i = 0; str[i] != '\0'; i++){index = i;j = 0;while(str[i] != '\0' && sub_str[j] != '\0' && str[i] == sub_str[j]) {i++;j++;}if(sub_str[j] != '\0'){i = index;result_str[k] = str[i];k++;}else{num++;i--;}}return num;}2.大数加减问题描述:在计算机中,由于处理器位宽限制,只能处理有限精度的十进制整数加减法,比如在32位宽处理器计算机中,参与运算的操作数和结果必须在-231~231-1之间。

华为测试面试题目(有答案)

华为测试面试题目(有答案)

1。

什么是预编译,何时需要预编译:答案:1、总是使用不经常改动的大型代码体。

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

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

2。

char * const pchar const * pconst char *p上述三个有什么区别?答案:char * const p; //常量指针,p的值不可以修改char const * p;//指向常量的指针,指向的常量值不可以改const char *p;//和char const *p3。

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 1str1,str2,str3,str4是数组变量,它们有各自的内存空间;而str5,str6,str7,str8是指针,它们指向相同的常量区域。

4。

以下代码中的两个sizeof用法有问题吗?[C易]void UpperCase( char str[] ) // 将str 中的小写字母转换成大写字母{for( size_t i=0; i<sizeof(str)/sizeof(str[0]); ++i )if( 'a'<=str[i] && str[i]<='z' )str[i] -= ('a'-'A' );}char str[] = "aBcDe";cout << "str字符长度为: " << sizeof(str)/sizeof(str[0]) << endl;UpperCase( str );cout << str << endl;答案:函数内的sizeof有问题。

华为机试题目

华为机试题目

华为机试题【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 个数组长度不等,则只比较较短长度数组个数元素。

华为机试试题汇总

华为机试试题汇总

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)组成的字符串。

华为面试题及答案最新

华为面试题及答案最新

华为面试题及答案最新# 华为面试题及答案最新## 一、技术面试题### 1. 编程题:二叉树的遍历问题描述:给定一个二叉树,实现其前序、中序和后序遍历。

解题思路:使用递归或栈来实现二叉树的遍历。

前序遍历的顺序是根-左-右;中序遍历的顺序是左-根-右;后序遍历的顺序是左-右-根。

示例代码:```pythonclass TreeNode:def __init__(self, x):self.val = xself.left = Noneself.right = Nonedef preorderTraversal(root):if not root:return []return [root.val] + preorderTraversal(root.left) + preorderTraversal(root.right)def inorderTraversal(root):if not root:return []return inorderTraversal(root.left) + [root.val] + inorderTraversal(root.right)def postorderTraversal(root):if not root:return []return postorderTraversal(root.left) + postorderTraversal(root.right) + [root.val]```### 2. 网络题:TCP和UDP的区别问题描述:简述TCP和UDP两种协议的主要区别。

答案要点:- TCP是面向连接的协议,提供可靠的数据传输服务;UDP是无连接的协议,传输速度快但不可靠。

- TCP提供全双工通信,UDP是单向传输。

- TCP有拥塞控制和流量控制机制,UDP没有。

- TCP有数据确认机制,UDP没有。

## 二、非技术面试题### 1. 团队合作问题描述:描述一次你与团队合作解决复杂问题的经历。

华为OD机试真题1-10

华为OD机试真题1-10

华为OD机试真题1-10(JavaScript)本文档的题目都是真题(非练习题),考到原题的概率很大,通过的几率也很大。

1.I PV4地址转换成整数存在一种虚拟IPv4地址,由4小节组成,每节的范围为0~255,以#号间隔,虚拟IPv4地址可以转换为一个32位的整数,例如:128#0#255#255,转换为32位整数的结果为2147549183(0x8000FFFF),1#0#0#0,转换为32位整数的结果为16777216(0x01000000),现以字符串形式给出一个虚拟IPv4地址,限制第1小节的范围为1~128,即每一节范围分别为(1~128)#(0~255)#(0~255)#(0~255),要求每个IPv4地址只能对应到唯一的整数上。

如果是非法IPv4,返回invalid IP示例:输入100#101#1#5输出1684340997输入1#2#3输出invalid IP代码:let strings = readLine().split("#");//let strings = "100#101#1#5".split("#");let len = strings.length;let count = 0;let isF = true;if(len==4){for(let i=0;i<len;i++){let n = Number(strings[i]);if(i==0 && (n<1 || n>128)){ //第一节1~128isF = false;break;}else if(n<0 || n>255){ //二、三、四节0~255isF = false;break;}/*** 首先使用把IP地址分成4个数字:128 199 231 44** 把每个数字转换为2进制,如果转换后这个数字对应的二进制数不够8位,在左侧补0:10000000 11000111 11100111 00101100*/count += n<<(8*(3-i));}}else {isF = false;}if(isF){console.log(count);}else {console.log("invalid IP");}2.素数之积给定一个32位正整数,请对其进行因数分解,找出是哪两个素数的乘积。

华为软件测试工程师笔试及部分答案.doc

华为软件测试工程师笔试及部分答案.doc

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、同一层中的各网络节点都有相同的层次结构,具有同样的功能。

华为软件测试工程师笔试及部分答案

华为软件测试工程师笔试及部分答案

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、同一层中的各网络节点都有相同的层次结构,具有同样的功能。

华为机考试题+答案

华为机考试题+答案

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[] 数组中间两个位置偏右的那个位置上,然后再按从大到小的顺序,依次在第一个位置的两边,按照一左一右的顺序,依次存放剩下的数。

华为机考题

华为机考题

销售网络问题时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte问题描述华为公司积极开拓北美市场,首先在北美建立销售总部,总部在附近地区发展一些销售点,这些销售点可以发展建立下一级销售点,依此类推,最终形成一个新型分级销售网络。

假设在销售网络中,有N个销售点(包括总部),将它们分别编号为1至N。

考虑到金融危机,销售总部决定撤销一些销售点,保留其他销售点。

需要注意是:(1)如果撤销一个销售点,那么该销售点发展的所有下级销售点均要撤销,依此类推;(2)销售总部不能撤销自己;(3)销售总部可以不撤销任何销售点。

请你帮忙告诉华为公司:共存在多少个销售点撤销方案。

问题输入输入包括多个行,首先给出一个整数N,接着N-1行给出销售网络的建立过程,在这N-1行中,第j行(1≤j≤N-1)给出一个整数k(i<k),表示销售点k发展了销售点j。

销售点N就是销售总部。

问题输出输出一行,给出销售点撤销方案数。

样例输入323样例输出3提示:样例有3个销售点(包括总部),“销售点2”发展了“销售点1”,“销售点3”发展了“销售点2”,根据描述,有以下3种销售点撤销方案:(1)不撤销任何销售点;(2)撤销“销售点1”;(3)撤销“销售点1”、“销售点2”。

语言识别问题时间限制(普通/Java):10000MS/30000MS 运行内存限制:65536KByte问题描述给你一段英文或德文文字,你能编程识别它可能是哪种语言吗?研究发现,统计文字中字母“t”(或“T”)与“s”(或“S”)出现的次数,如果给定文字中“t”(或“T”)的出现次数比“s”(或“S”)多,则可能为英文,否则可能为德文。

问题输入输入包括多个行数,首先给出整数N(1<N<10000),接着给出N行文字,每一行文字至少包括一个字符,至多100个字符。

问题输出输出包括一行,如果输入文字可能为英文,则输出English,否则输出Deutsch。

华为笔试题及答案

华为笔试题及答案

华为笔试题及答案一、选择题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;}```解析:本题考查哈希表的应用。

华为android面试题及答案

华为android面试题及答案

华为android面试题及答案华为技术有限公司是一家生产销售通信设备的民营通信科技公司,总部位于中国广东省深圳市龙岗区坂田华为基地。

下面就由店铺为大家介绍一下华为android面试题及答案的文章,欢迎阅读。

华为android面试题及答案篇11、 Android dvm的进程和Linux的进程, 应用程序的进程是否为同一个概念DVM指dalivk的虚拟机。

每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。

而每一个DVM 都是在Linux 中的一个进程,所以说可以认为是同一个概念。

2、sim卡的EF 文件有何作用sim卡的文件系统有自己规范,主要是为了和手机通讯,sim本身可以有自己的操作系统,EF就是作存储并和手机通讯用的3、嵌入式操作系统内存管理有哪几种,各有何特性页式,段式,段页,用到了MMU,虚拟空间等技术4、什么是嵌入式实时操作系统, Android 操作系统属于实时操作系统吗?嵌入式实时操作系统是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统作出快速响应,并控制所有实时任务协调一致运行的嵌入式操作系统。

主要用于工业控制、军事设备、航空航天等领域对系统的响应时间有苛刻的要求,这就需要使用实时系统。

又可分为软实时和硬实时两种,而android是基于linux内核的,因此属于软实时。

5、一条最长的短信息约占多少byte?中文70(包括标点),英文160,160个字节。

6、 android中的动画有哪几类,它们的特点和区别是什么?两种,一种是Tween动画、还有一种是Frame动画。

Tween动画,这种实现方式可以使视图组件移动、放大、缩小以及产生透明度的变化;另一种Frame动画,传统的动画方法,通过顺序的播放排列好的图片来实现,类似电影。

7、handler机制的原理andriod提供了Handler 和Looper 来满足线程间的通信。

华为机试题目全解

华为机试题目全解

华为机试题【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 个数组长度不等,则只比较较短长度数组个数元素。

华为软件测试工程师笔试及部分答案

华为软件测试工程师笔试及部分答案

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、同一层中的各网络节点都有相同的层次结构,具有同样的功能。

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