您的位置:首页 > 职场人生

嵌入式的笔试/面试经典题目

2011-06-21 21:59 344 查看
转自:http://blog.163.com/softwaredep@126/blog/static/474112722007102593541438/



输出

char s1[]="2kgames";

char* s2[]={"2kgames" };

char s3[20]="2kgames";

sizeof(s1)==?

sizeof(s2)==?

sizeof(s3)==?

strlen(s1)==?

strlen(s3)==?

<答案:8 4 20 7 7



2.输出

class A

{

public:

A() { p(); }

~A(){ p(); }

virtual void p() { q(); }

virtual void q() { cout<<''A'' }

};

class B:public A

{

public:

B() { p(); }

~B() { p(); }

void q() { cout<<''B'' }

};

int main()

{

A* p=new B;

delete p;

}

答案:ABA



3. 用一个C语言表达式判断一个数是否位2的N次幂。

答案:x == (((x ^ (~0x0)) + 1) & x)



4. 写一个高性能的函数把一个int乘以9

答案:

int Multiply_9(int a)

{

return ((a<<3)+a);

}



5.请写一个C函数,若处理器是Big_endian的,则返回0;若是Little_endian的,则返回1

解答:

int checkCPU()

{

  union w

  {

    int a;

    char b;

  } c;

  c.a = 1;

  return (c.b == 1);

}



6.int (* (*f)(int, int))(int)这里的f是什么?

答案:f是指针,指向一个参数为(int,int),返回值为一个指针的函数

这个返回的指针指向一个参数为(int),返回值为int的函数

我的笔试之二:思科篇

1.

typedef struct

{

char data[10];

}T1;



typedef struct

{

T1* p;

char data[0];

}T2;

sizeof(T2)==?



答案:4



2.含N个元素的一个数组,数组的值的范围是1~N-1,找出重复的那个值。

答案:

int array
;

int FindRepeat(void)

{

int flag
={0};

int i;

for(i=0;i小于N;i++)//由于此论坛系统问题直接有小于号出现显示不正常,故此用汉字描述

{

if(flag[array[i]]==1)

return array[i];

else

flag[array[i]]=1;

}

}

3.下面哪些编译通不过?

(A).

void T()

{

const int N=100;

int a
;

a[2]=42;

}

(B).

void T()

{

*((int* const)0x23567890)=5;

}



(C).

char* fuc(void)

{

char a[4];

strcpy(a,"abcd");

return a;

}



答案:ABC都可以通过编译。

我的笔试之三:趋势科技篇

1. 找错误

(1) void Test(const int v)

{

int* p;

p=v;

}

答案:不能把非const指针指向const变量。应该是:const int* p;



(2) void Test(const int& v)

{

const int& p;

p=v;

}

答案:引用必须在定义的时候初始化。应该是:const int& p=v;



2. 编程题,翻转链表。

答案:

typedef struct node

{

int value;

struct node* next;

}SLink;



SLink* ReverseLink(SLink* h)

{

SLink* pre,*cur,*next;

pre=NULL;

cur=h;

next=cur->next;

while(next)

{

cur->next=pre;

pre=cur;

cur=next;

next=next->next;

}

return cur;

}



3.写出输出结果

class A

{

public:

A()

{

f(0);

}

virtual void f(int n)

{

cout<<"A0:"<< }

virtual void f(int n) const

{

cout<<"A1:"<< }

virtual void f(char* s)

{

cout<<"A2:"<< }

};

class B:public A

{

public:

void f(int n)

{

cout<<"B0:"<< }

void f(char* s)

{

cout<<"B1:<< }

};

int main()

{

A* p;

const A* cp;

B b;

p=&b;

p->f(1);

p->f("test");

A().f(2);

cp=&b;

cp->f(2);

}

答案:

A0:0

B0:1

B1:test

A0:0

A0:2

A1:2



4. UTP(非屏蔽双绞线)的传输距离是?

答案:100m



5.176.68.160.0/22的子网掩码是:

答案:255.255.252.0

我的笔试之四:先锋商泰篇

1.下面表达式正确的是:

A. char* const s="hello";

*s=''''''''w''''

B. char* const s="hello";

s="world";

C. const char* s="hello";

*s=''''''''w''''

D. const char* s="hello";

s="world";

答案:D



2.下面表达式正确的是:

A. char* const s="hello";

*s=''''''''w''''

B. char* const s="hello";

s="world";

C. char s[]="hello";

*s=''''''''w''''

D. char s[]="hello";

s="world";

答案:C



3.写出程序输出结果:

char t[]="abcdefghijklmno";

t[12]=''/0''//这里本该也没有这么多单引号

int i=0;

while(t[++i]!=''/0'')//这里也是

{

printf("%c",t[i++]);

}

答案:bdfhjln

我的笔试之五--展讯篇

1. 编程求两个字符串的最大公共字符串。

答案:

#include "stdio.h"

#include "string.h"



/* 函数功能:求两个字符串的最大公共字符串 */

void CommonStr(char* str1,char* str2)

{

char* s1,*s2;

int i,j,k; // i--最大公共字符串的长度

int len1; // j--子串s2的开始位置

int len2; // k--子串s1的开始位置

int p;

len1=strlen(str1);

len2=strlen(str2);

if(len1
{

s1=str2;

s2=str1;

len2=len1;

}

else

{

s1=str1;

s2=str2;

}

for(i=len2;i>0;i--) // 从最大的开始找

{

for(j=0;j+i<=len2;j++)

{

for(k=0;k+i<=len1;k++)

{

p=0;

while(s1[k+p]==s2[j+p])

{

p++;

}

if(p>=i)

{

for(p=0;p小于i;p++)

printf("%c",s1[k+p]);

printf("/n");

return;

}

}

}

}

}

int main(void)

{

char* s1="worlld";

char* s2="hello,cjw";

CommonStr(s1,s2);

return 0;

}



2.计算一个字节里1的个数。

方法一:

int Num_1(char data)

{

int i,j;

int sum=0;

j=1;

for(i=0;i<8;i++)

{

j=1<
if(data&j)

sum++;

}

return sum;

}

方法二:

unsigned int FindOneInNumber_02(unsigned char x)

{

unsigned int n;

for(n=0; x; n++)

x &= x-1;

return n;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: