华为c笔试题目.docx
《华为c笔试题目.docx》由会员分享,可在线阅读,更多相关《华为c笔试题目.docx(80页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、华为1.static有什么用途?(请至少说明两种)1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。2)在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。3)在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用2.引用与指针有什么区别?1)引用必须被初始化,指针不必。2)引用初始化以后不能被改变,指针可以改变所指的对象。3)不存在指向空值的引用,但是存在指向空值的指针。3 .描述实时系统的基本特性在特定时间内完成特定的任务,实时性与可
2、靠性。4 .全局变量和局部变量在内存中是否有区别?如果有,是什么区别?全局变量储存在静态数据库,局部变量在堆栈。5 .什么是平衡二叉树?左右子树都是平衡二叉树且左右子树的深度差值的绝对值不大于lo6 .堆栈溢出一般是由什么原因导致的?没有回收垃圾资源。7 .什么函数不能声明为虚函数?constructor函数不能声明为虚函数。8 .冒泡排序算法的时间复杂度是什么?时间复杂度是0(心2).9 .写出float x与“零值”比较的if语句。if(x0.000001&x-0.000001)lO.Internet采用哪种网络协议?该协议的主要层次结构?Tcp/ip协议主要层次结构为:应用层/传输层/网
3、络层/数据链路层/物理层。11.Internet物理地址和IP地址转换采用什么协议?ARP (Address Resolution Protocol)(地址解析愤12.IP地址的编码分为哪俩部分?IP地址由两部分组成,网络号和主机号。不过是要和“子网掩码”按位与上之后才能区分哪些是网络位哪些是主机位。13 .用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。写出C程序。循环链表,用取余操作做14 .不能做switch。的参数类型是:switch的参数不能为实型。上海华为的一道关于指针方面的编程题int AnSize,其中隐藏着若干0,其余非0整数,写一个函数int
4、Func(int* A, int nSize),使A把0移至后面,非。整数移至数组前面并保持有序,返回值为原数据中第一个元素为0的下标。(尽可能不使用辅助空间且考虑效率及异常问题,注释规范且给出设计思路)华为笔试题含答案软件工程题写一个程序,要求功能:求出用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+
5、)for (y=0; y=50; y+)for (z=0; z=20; z+)if (x+2*y+5*z)=100)number+;cout number endl;上面这个程序一共要循环10CT 50*20次,效率实在是太低了事实上,这个题目是道明显的数学问题,而不是单纯的编程问题。我的解法如下:因为 x+2y+5z=100所以 x+2y=1005z,且zv =20 x=100 y=50所以(x+2y)v =100,且(x+5z)是偶数对Z作循环,求X的可能值如下:z=0, x=100,98,96,.0z=1, x=95,93,1z=2, x=90,88,0z=3, x=85,83,.,1z
6、=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
7、 next = NULL;p=h;for(i=0;i next = s;printf(HPlease input the information of the student: name sex no age nH); scanf(H%s %c %d %dH,s-name,&s-sex,&s-no,&s-age);s- next = NULL;P = s;printf(MCreate successful!*);return(h);void deletelist(struct stu *s,int a)(struct stu * p;while(s-age!= a)(p = s;s = s-
8、next;)if(s= NULL)printf(RThe record is not exist.”);elsep- next = s- next;printf(HDelete successful!*);) void display(struct stu *s)s = s- next;while(s!=NULL)(printf(H%s %c %d %dnH,s- name,s- sex,s- no,s-age);s = s- next;)int main()(struct stu * s;int n,age;printf(Please input the length of seqlist:
9、n);scanf(%d,&n);s = creatlist(n);display(s);printf(Please input the age:n);scanf(%d,&age);deletelist(s,age);display(s);return 0;)2、实现一个函数,把一个字符串中的字符从小写转为大写。# include stdio.h* include “conio.hvoid uppers(char * s,char * us)(for(;* s!=,0,;s+,us+)(if(*s=,a,&*s=z,)* us =* s-32;else* us =* s;)*us =0;int
10、main()(char * s,* us;char ss20;printf(Please input a string:n);scanf(%s,ss);s = ss;uppers(s.us);printf(The result is:n%sn,us);getch();)随机输入一个数,判断它是不是对称数(回文数)(如3,121,12321,45254).不能用字符串库函数1.函数名称:Symmetry功能:判断一个数时候为回文数(121,35653)输入:长整型的数输出:若为回文数返回值为1 esle 0A*/unsigned char Symmetry (long n)(long i,tem
11、p;i= n; temp=0;while(i)不用出现长度问题,将数按高低位掉换(temp=temp*10+i%10;i/=10;return(temp= n);)方法一功能:判断字符串是否为回文数字实现:先将字符串转换为正整数,再将正整数逆序组合为新的正整数,两数相同则为回文数字输入:char *s:待判断的字符串输出:无返回:0:正确;1:待判断的字符串为空;2:待判断的字符串不为数字;3:字符串不为回文数字;4:待判断的字符串溢出 unsigned lsSymmetry(char *s)(char * p = s;long nNumber =0;long n =0;long nTemp
12、=0;/*判断输入是否为空*/return 1;/*将字符串转换为正整数*/while (*p !=*0)(/*判断字符是否为数字*/if (*p,9,)return 2;/*判断正整数是否溢出*/if (*p-,0,)(4294967295-(nNumber*10)return 4;nNumber =(* p-*0)+(nNumber *10);P+;/*将数字逆序组合,直接抄楼上高手的代码,莫怪,呵呵*/n = nNumber;while(n)(/*判断正整数是否溢出*/if (n%10)(4294967295-(nTemp*10)return 3;nTemp = nTemp*10+ n%
13、10;n/=10 j/*比较逆序数和原序数是否相等*/if (nNumber != nTemp)return 3;return 0;)方法二功能:判断字符串是否为回文数字实现:先得到字符串的长度,再依次比较字符串的对应位字符是否相同输入:char *s:待判断的字符串输出:无返回:0:正确;1:待判断的字符串为空;2:待判断的字符串不为数字;3:字符串不为回文数字 unsigned IsSymmetry_2(char *s)(char * p = s;int nLen =0;int i =0;判断输入是否为空*/if (*s =*0)return 1;/*得到字符串长度*/while (*p
14、!=0)(/*判断字符是否为数字*/if (*p,9,)return 2;nLen+;P+;/*长度不为奇数,不为回文数字/if (nLen%2=0) return 4;/*长度为1,即为回文数字*/if (nLen =1) return 0;/*依次比较对应字符是否相同*/P = s;i = nLen/2-1;while (i)(if (*(p+ i)!=*(p+ nLen-i-1) return 3;;return 0;求22000的所有素数.有足够的内存,要求尽量快答案:int findvalue2000=2;static int find=1;bool adjust(int value
15、)(assert(value=2);if(value=2) return true;for(int i=0;iipconfig/all 其中 physical address 就是 mac 地址。5、以下属于数据链路层功能的是()A、定义数据传输速率B、定义物理地址C、描述网络拓扑结构D、流控制数据链路层的主要功能有:1 .数据链路的建汇和拆除在两个或多个网络实体间建立一条逻辑通道,发方发M建立和拆除链路的请求指示,收方收到后给出应答信号。2 .帧传输和帧同步帧是具有一定长度和格式的信息块,是数据链路层的传输单位,由一些字段和标志组成,.不同网络其帧格式或长度可不同,但将位流组成帧的方法基本相
16、同,常用的有:带填充字符的首尾定界法,带填充位的首尾标志法等。其目的是使接收方能够准确的从收到的比特流中识别出帧的边界,达到帧同步。3 .差错与流量控制常用的差错控制方法有自动重发请求(ARQ)技术和前向纠错技术(FEC);常用的流量控制方法有停止等待协议和滑动窗口协议。4 .数据链路管理提供各种服务质量参数,包括检测到不可纠正错误的平均时间、漏检差错率、传输延迟和吞吐量等,以及对异常情况的处理数据链路层通过物理网络链路提供可靠的数据传输。不同的数据链路层定义了不同的网络和协议特征,其中包括物理编址、网络拓扑结构、错误校验、帧序列以及流控。物理编址(相对应的是网络编址)定义了设备在数据链路层的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 华为 笔试 题目
限制150内