搜索
您的当前位置:首页正文

华为笔试题

来源:爱go旅游网
华为笔试题

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

2.请你详细地解释一下IP协议的定义,在哪个层上面?主要有什么作用?TCP与UDP呢? 3.请问交换机和路由器各自的实现原理是什么?分别在哪个层次上面实现的? 4.请问C++的类和C里面的struct有什么区别? 5.请讲一讲析构函数和虚函数的用法和作用。

6.全局变量和局部变量有什么区别?是怎么实现的?操作系统和编译器是怎么知道的? 7.8086是多少位的系统?在数据总线上是怎么实现的? 联想笔试题

1.设计函数 int atoi(char *s)。

2.int i=(j=4,k=8,l=16,m=32); printf(“%d”, i); 输出是多少? 3.解释局部变量、全局变量和静态变量的含义。 4.解释堆和栈的区别。

5.论述含参数的宏与函数的优缺点。

普天C++笔试题

1.实现双向链表删除一个节点P,在节点P后插入一个节点,写出这两个函数。 2.写一个函数,将其中的 都转换成4个空格。

3.Windows程序的入口是哪里?写出Windows消息机制的流程。 4.如何定义和实现一个类的成员函数为回调函数?

5.C++里面是不是所有的动作都是main()引起的?如果不是,请举例。 6.C++里面如何声明const void f(void)函数为C程序中的库函数? 7.下列哪两个是等同的 int b;

A const int* a = &b; B const* int a = &b; C const int* const a = &b; D int const* const a = &b;

8.内联函数在编译时是否做参数类型检查? void g(base & b){ b.play; }

void main(){ son s;

发信人: wildboy 标 题: 上午润汇的笔试题

发信站: BBS 水木清华站 (Sat Nov 30 13:18:53 2002), 站内

c++最后几个大题目是

1,实现双向链表删除一个节点P,在节点P后插入一个节点,这两个函数。 2,写一个函数将其中的\都转换成4个空格。

3,windows程序的入口是哪里?写出windows消息机制的流程。 4,如何定义和实现一个类的成员函数为回调函数。

还有前面的几个: 1. class A{ int a; int b; }

问的是编译时的default constructor function的问题。

还有一个说,A有其他自己定义的构造函数,问是否还有default constructor function 还是什么来着,记不清乐。

2. c++里面是不是所有的动作都是main()引起的?如果不是,请举例。

3. c++里面如何声明const void f(void)函数为C库函数?(这个我前几天还看来着, 居然就忘记乐, )

对了,还考乐一些关于const的问题 问下列哪两个是等同的 int b;

A const int* a = &b; B const* int a = &b; C const int* const a = &b; D int const* const a = &b;

还有一个是考类的成员函数是 void f() const;型的时候调用的问题。

幸好昨天刚刚看乐这部分的内容,呵呵

内联函数考了一题,问内联函数在编译时是否做参数类型检查。

虚函数也考了一题,不过不难。 class base{ public:

virtual void play(){ cout<<\"base\"; } }

class son: public base{ public:

void play(){cout<<\"son\";} }

void g(base & b){ b.play;

}

void main(){ son s; g(s); return; }

我所收集的intel比试题&面试题:

(熟悉大公司的题目,并不仅仅是为了进这些公司,而是很多国内公司考察内容都很接近而已.)

2005笔试 :

1。高效的内存管理 2。8皇后问题 面试q:

(2) 编译中的问题:全局变量如int i=5; int*(pf)()=foo; 分别在何时被初始化?设计时候如何具体的实现。

(3) OS相关的问题,内存访问,cache等(包括cache在整个系统中的位置,画出来,并解释)

(4) 解释例如mov ax,100H 这样一条指令的cpu, os, memory等都完成了什么样的工作。

(5) Strlen()的C语言实现,不能使用任何变量。

(6) 编译中display表的一些问题

(7) 一个hash函数,输入随机,现发生冲突,如数据集中在某几条中,问怎样处理hash函数保证高效的访问,怎样实现?

(8) 把Switch()case…语句翻译成三元组。

(9) 一个byte(用C语言实现计数其中1的个数),给出最高效的实现方法。(位域)或者查表最快的;

(10) 上海有多少个加油站?你是怎样解决这一问题?

(11) C语言参数的入栈顺序?为什么这么实现?

(12) 你的最大的优点和缺点分别是什么?

(13) C语言中字符串的翻转,最高效率(时间和空间)的实现? 2004

1. 三个float:a,b,c 问值 (a+b)+c==(b+a)+c (a+b)+c==(a+c)+b

2. 把一个链表反向填空

3. 设计一个重采样系统,说明如何anti-alias

4. y1(n)=x(2n), y2(n)=x(n/2),问:

如果y1为周期函数,那么x是否为周期函数 如果x为周期函数,那么y1是否为周期函数 如果y2为周期函数,那么x是否为周期函数 如果x为周期函数,那么y2是否为周期函数

5. 如果模拟信号的带宽为5KHZ,要用8K的采样率,怎么办。

4. 某个程序在一个嵌入式系统(200M的CPU,50M的SDRAM)中已经最化了,换到另一个系统

(300M的CPU,50M的SDRAM)中运行,还需要优化吗?

5. x^4+a*x^3+x^2+c*x+d最少需要作几次乘法

6. 什么情况下,sin(x+y)+y ~ ....

7. 下面哪种排序法对12354最快 a quick sort b.buble sort c.merge sort

8. 哪种结构,平均来讲,获取一个值最快 a. binary tree b. hash table c. stack

1。 pipeline 2。 程序流程图题目 3。 哲学家进餐

4。 32bit,64bit,两个平台上complier,linker,os kernel,library,debuger的性质 5。 const char * vs char const * (?) 6。 GDT and LDT 7。 1+1<<1 8。 Stack性质

9。 ???

10。正方体中压力什么的。。。 大题

1。f[40,400],log10变换 2。ACPI 3。读程序

4。频谱,采样分析 大题

1。写出下列信号的奈亏斯特频率

(1)f(t)=1+cos(2000pait)+sin(4000pait) (2)f(t)=sin(4000pait)/pait (3)f(t)=(sin(4000pait)的平方)/pait 2.填程序

把一个计算m^n的程序填充完整 大概的意思是:

有一个全局数组char s[BUFSIZE]

利用这个数组计算,就是每个单元存放计算结果的一位,index小的存放低位,index大 的存放高位 3。有两个线程 void producer() { while(1) {

GeneratePacket(); PutPacketIntoBuffer(); Signal(customer); } }

void customer() { while(1) {

WaitForSignal(); if(PacketInBuffer>10) {

ReadAllPackets(); ProcessPackets(); } } }

(1)有没有其他方法可以提高程序的性能

(2)可不可以不使用信号之类的机制来实现上述的功能 4。优化下面的程序 (0)sum=0 (1)I=1 (2)T1=4*I

(3)T2=address(A)-4 (4)T3=T2[T1] (5)T4=address(B)-4 (6)T5=4*I (7)T6=T4[T5] (8)T7=T3*T5 (9)sum=sum+T6 (10)I=I+1

(10)IF I<20 GOTO (2)

1。关于c的main函数

2。15个人循环报数,报到N的出列,找出最后留下的那个人,算法填空题 2。找出一个给出的并行解决方案的错误情况 3。关于GPIO,intel的四种体系结构

选择题10题

有关vc和c,指针,HyporThreading Dual-core等等 看也看不懂的

2003年的

1:概率题。x,y为随机变量,联合概率密度 f(x,y) = intig(0,1)*dx*intig(0,x)*k*d y,k为常数,求k=? E(xy)=? 注:intig(a,b)为a到b的定积分。

2:概率题。A,B为随机事件,以下哪个正确 A. P(A U B)*p(AB) <= P(A)P(B) B. P(A U B)*p(AB) >= P(A)P(B) C. P(A U B)*p(AB) <= P(A) + P(B) D. P(A U B)*p(AB) >= P(A) + P(B)

3: 信道带宽200kHz,信噪比10dB,求信道波特率=?

4:以下代码运行结果是什么 int main() {

int a,b,c,abc = 0;

a=b=c=40; if(c) { int abc; abc = a*b+c; }

printf(\"%d,%d\return 0; }

5:给出了从纽约出发和到达落山鸡的各种航班信息,写出找到一条从纽约到落山鸡的最 短距离的航班组合的代码。

6:从计算机图形上截取某个物体边缘的若干个坐标,求这个物体面积,并跟判断是方形 还是圆形,为啥。(坐标不记得,大概是个圆 )。

7:离散卷机与DFT的区别与关系。快速求不满足2^N长度的离散傅立叶变换的方法有哪些 ?如何用fft求N*M点的离散卷机?

8:给出fir和iir的优缺点。

9:如何计算线性标量量化器的量化噪声?需要那些假设

suningin详解华为笔试题(4)

2006-10-31 23:24:01

大 中 小

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 256 DSN get_SRM_no() {

static int SRM_no; int I;

for(I=0;ISRM_no %= MAX_SRM; if(MY_SRM.state==IDLE) {

break; } }

if(I>=MAX_SRM)

return (NULL_SRM); else

return SRM_no; }

答:我不知道这段代码的具体功能,但明显有两个错误 1,SRM_no没有赋初值

2,由于static的声明,使该函数成为不可重入(即不可预测结果)函数,因为SRM_no变量放在程序的全局存储区中,每次调用的时候还可以保持原来的赋值。这里应该去掉static声明。

3. 写出程序运行结果 int sum(int a) {

auto int c=0; static int b=3; c+=1; b+=2;

return(a+b+c); }

void main() {

int I; int a=2;

for(I=0;I<5;I++) {

printf(\"%d,\ } }

答:8,10,12,14,16

该题比较简单。只要注意b声明为static静态全局变量,其值在下次调用时是可以保持住原来的赋值的就可以。 4.

int func(int a) {

int b; switch(a) {

case 1: b=30; case 2: b=20; case 3: b=16; default: b=0; }

return b; }

则func(1)=?

答:func(1)=0,因为没有break语句,switch中会一直计算到b=0。这是提醒我们不要忘了break。呵呵。 5:

int a[3];

a[0]=0; a[1]=1; a[2]=2; int *p, *q; p=a; q=&a[2]; 则a[q-p]=?

答:a[q-p]=a[2]=2;这题是要告诉我们指针的运算特点 6.

定义 int **a[3][4], 则变量占有的内存空间为:_____

答:此处定义的是指向指针的指针数组,对于32位系统,指针占内存空间4字节,因此总空间为3×4×4=48。 7.

编写一个函数,要求输入年月日时分秒,输出该年月日时分秒的下一秒。如输入2004年12月31日23时59分59秒,则输出2005年1月1日0时0分0秒。 答:

/*输入年月日时分秒,输出年月日时分秒的下一秒,输出仍然在原内存空间*/

void NextMinute(int *nYear,int *nMonth,int *nDate,int *nHour,int *nMinute,int *nSecond) {

int nDays;

(*nSecond)++; // 秒加1

if(*nSecond>=60) // 秒满60,做出特殊处理,下面时,日,月等类同 {

*nSecond=0; (*nMinute)++; if(*nMinute>=60) {

*nMinute=0; (*nHour)++; if(*nHour>=24) {

*nHour=0; (*nDate)++; switch(*nMonth) {

case 1: case 3: case 5: case 7: case 8:

case 10: case 12: nDays=31; break;

case 2:// 判断闰年

if(*nYear%400==0||*nYear%100!=0&&*nYear%4==0) {

nDays=29; } else {

nDays=28; } break; default: nDays=30; break; }

if(*nDate>nDays) {

*nDate=1; (*nMonth)++; if(*nMonth>12) {

*nMonth=1; (*nYear)++; } } } } } }

/*示例可运行代码*/ void main() {

int nYear=2004,nMonth=12,nDate=31,nHour=59,nMinute=59,nSecond=59; NextMinute(&nYear,&nMonth,&nDate,&nHour,&nMinute,&nSecond); printf(\"The

result:%d-%d-%d %d:%d:%d\}

因篇幅问题不能全部显示,请点此查看更多更全内容

Top