嵌入式开发—C语言面试题

时间:2023-03-08 16:27:47
嵌入式开发—C语言面试题

1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) 
#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 
我在这想看到几件事情: 
1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等) 
2). 懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出实际的值,是更清晰而没有代价的。 
3). 意识到这个表达式将使一个16位机的整型数溢出-因此要用到长整型符号L,告诉编译器这个常数是的长整型数。 
4). 如果你在你的表达式中用到UL(表示无符号长整型),那么你有了一个好的起点。记住,第一印象很重要。

2. 写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个。 
#define MIN(A,B) ((A) <= (B) (A) : ))

这个测试是为下面的目的而设的:

1). 标识#define在宏中应用的基本知识。这是很重要的,因为直到嵌入(inline)操作符变为标准C的一部分,宏是方便产生嵌入代码的唯一方法,对于嵌入式系统来说,为了能达到要求的性能,嵌入代码经常是必须的方法。 
2). 三重条件操作符的知识。这个操作符存在C语言中的原因是它使得编译器能产生比if-then-else更优化的代码,了解这个用法是很重要的。 
3). 懂得在宏中小心地把参数用括号括起来 
4). 我也用这个问题开始讨论宏的副作用,例如:当你写下面的代码时会发生什么事? 
least = MIN(*p++, b);

3. 预处理器标识#error的目的是什么?

如果你不知道答案,请看参考文献1。这问题对区分一个正常的伙计和一个书呆子是很有用的。只有书呆子才会读C语言课本的附录去找出象这种 
问题的答案。当然如果你不是在找一个书呆子,那么应试者最好希望自己不要知道答案。

死循环(Infinite loops)

4. 嵌入式系统中经常要用到无限循环,你怎么样用C编写死循环呢?

这个问题用几个解决方案。我首选的方案是: 
while(1) { } 
一些程序员更喜欢如下方案: 
for(;;) { } 
这个实现方式让我为难,因为这个语法没有确切表达到底怎么回事。如果一个应试者给出这个作为方案,我将用这个作为一个机会去探究他们这样做的 
基本原理。如果他们的基本答案是:“我被教着这样做,但从没有想到过为什么。”这会给我留下一个坏印象。 
第三个方案是用 goto 
Loop: 
... 
goto Loop; 
应试者如给出上面的方案,这说明或者他是一个汇编语言程序员(这也许是好事)或者他是一个想进入新领域的BASIC/FORTRAN程序员。

数据声明(Data declarations)

5. 用变量a给出下面的定义 
a) 一个整型数(An integer) 
b) 一个指向整型数的指针(A pointer to an integer) 
c) 一个指向指针的的指针,它指向的指针是指向一个整型数(A pointer to a pointer to an integer) 
d) 一个有10个整型数的数组(An array of 10 integers) 
e) 一个有10个指针的数组,该指针是指向一个整型数的(An array of 10 pointers to integers) 
f) 一个指向有10个整型数数组的指针(A pointer to an array of 10 integers) 
g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数(A pointer to a function that takes an integer as an argument and returns an integer) 
h) 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数( An array of ten pointers to functions that take an integer argument and return an integer )

答案是: 
a) int a; // An integer 
b) int *a; // A pointer to an integer 
c) int **a; // A pointer to a pointer to an integer 
d) int a[10]; // An array of 10 integers 
e) int *a[10]; // An array of 10 pointers to integers 
f) int (*a)[10]; // A pointer to an array of 10 integers 
g) int (*a)(int); // A pointer to a function a that takes an integer argument and returns an integer
h) int (*a[10])(int); // An array of 10 pointers to functions that take an integer argument and return an integer

人们经常声称这里有几个问题是那种要翻一下书才能回答的问题,我同意这种说法。当我写这篇文章时,为了确定语法的正确性,我的确查了一下书。 
但是当我被面试的时候,我期望被问到这个问题(或者相近的问题)。因为在被面试的这段时间里,我确定我知道这个问题的答案。应试者如果不知道 
所有的答案(或至少大部分答案),那么也就没有为这次面试做准备,如果该面试者没有为这次面试做准备,那么他又能为什么出准备呢?

Static

6. 关键字static的作用是什么?

这个简单的问题很少有人能回答完全。在C语言中,关键字static有三个明显的作用: 
1). 在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。 
2). 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。 
3). 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。 
大多数应试者能正确回答第一部分,一部分能正确回答第二部分,同是很少的人能懂得第三部分。这是一个应试者的严重的缺点,因为他显然不懂得本地化数据和代码范围的好处和重要性。

Const

7.关键字const是什么含意? 
我只要一听到被面试者说:“const意味着常数”,我就知道我正在和一个业余者打交道。去年Dan Saks已经在他的文章里完全概括了const的所有用法,因此ESP(译者:Embedded Systems Programming)的每一位读者应该非常熟悉const能做什么和不能做什么. 
如果你从没有读到那篇文章,只要能说出const意味着“只读”就可以了。尽管这个答案不是完全的答案,但我接受它作为一个正确的答案。(如果你想知道更详细的答案,仔细读一下Saks的文章吧。)如果应试者能正确回答这个问题,我将问他一个附加的问题:下面的声明都是什么意思?

const int a; 
int const a; 
const int *a; 
int * const a; 
int const * a const;

前两个的作用是一样,a是一个常整型数。第三个意味着a是一个指向常整型数的指针(也就是,整型数是不可修改的,但指针可以)。第四个意思a是一个指向整型数的常指针(也就是说,指针指向的整型数是可以修改的,但指针是不可修改的)。最后一个意味着a是一个指向常整型数的常指针(也就是说,指针指向的整型数是不可修改的,同时指针也是不可修改的)。如果应试者能正确回答这些问题,那么他就给我留下了一个好印象。顺带提一句,也许你可能会问,即使不用关键字 const,也还是能很容易写出功能正确的程序,那么我为什么还要如此看重关键字const呢?我也如下的几下理由: 
1). 关键字const的作用是为给读你代码的人传达非常有用的信息,实际上,声明一个参数为常量是为了告诉了用户这个参数的应用目的。如果你曾花很多时间清理其它人留下的垃圾,你就会很快学会感谢这点多余的信息。(当然,懂得用const的程序员很少会留下的垃圾让别人来清理的。) 
2). 通过给优化器一些附加的信息,使用关键字const也许能产生更紧凑的代码。 
3). 合理地使用关键字const可以使编译器很自然地保护那些不希望被改变的参数,防止其被无意的代码修改。简而言之,这样可以减少bug的出现。

Volatile

8. 关键字volatile有什么含意 并给出三个不同的例子。

一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子: 
1). 并行设备的硬件寄存器(如:状态寄存器) 
2). 一个中断服务子程序中会访问到的非自动变量(Non-automatic variables) 
3). 多线程应用中被几个任务共享的变量 
回答不出这个问题的人是不会被雇佣的。我认为这是区分C程序员和嵌入式系统程序员的最基本的问题。嵌入式系统程序员经常同硬件、中断、RTOS等等打交道,所用这些都要求volatile变量。不懂得volatile内容将会带来灾难。 
假设被面试者正确地回答了这是问题(嗯,怀疑这否会是这样),我将稍微深究一下,看一下这家伙是不是直正懂得volatile完全的重要性。 
1). 一个参数既可以是const还可以是volatile吗?解释为什么。 
2). 一个指针可以是volatile 吗?解释为什么。 
3). 下面的函数有什么错误: 
int square(volatile int *ptr) 
{ return *ptr * *ptr; 
} 下面是答案: 
1). 是的。一个例子是只读的状态寄存器。它是volatile因为它可能被意想不到地改变。它是const因为程序不应该试图去修改它。 
2). 是的。尽管这并不很常见。一个例子是当一个中服务子程序修该一个指向一个buffer的指针时。 
3). 这段代码的有个恶作剧。这段代码的目的是用来返指针*ptr指向值的平方,但是,由于*ptr指向一个volatile型参数,编译器将产生类似下面的代码: 
int square(volatile int *ptr) 
{ int a,b; 
a = *ptr; 
b = *ptr; 
return a * b; 
} 由于*ptr的值可能被意想不到地该变,因此a和b可能是不同的。结果,这段代码可能返不是你所期望的平方值!正确的代码如下: 
long square(volatile int *ptr) 
{ int a; 
a = *ptr; 
return a * a; 
}

位操作(Bit manipulation)

9. 嵌入式系统总是要用户对变量或寄存器进行位操作。给定一个整型变量a,写两段代码,第一个设置a的bit 3,第二个清除a 的bit 3。在以上两个操作中,要保持其它位不变。

对这个问题有三种基本的反应 
1). 不知道如何下手。该被面者从没做过任何嵌入式系统的工作。 
2). 用bit fields。Bit fields是被扔到C语言死角的东西,它保证你的代码在不同编译器之间是不可移植的,同时也保证了的你的代码是不可重用的。我最近不幸看到 Infineon为其较复杂的通信芯片写的驱动程序,它用到了bit fields因此完全对我无用,因为我的编译器用其它的方式来实现bit fields的。从道德讲:永远不要让一个非嵌入式的家伙粘实际硬件的边。 
3). 用 #defines 和 bit masks 操作。这是一个有极高可移植性的方法,是应该被用到的方法。最佳的解决方案如下: 
#define BIT3 (0x1<<3) 
static int a; 
void set_bit3(void) 
{ a |= BIT3; 
} void clear_bit3(void) 
{ a &= ~BIT3; 
} 一些人喜欢为设置和清除值而定义一个掩码同时定义一些说明常数,这也是可以接受的。我希望看到几个要点:说明常数、|=和&=~操作。

10. 嵌入式系统经常具有要求程序员去访问某特定的内存位置的特点。在某工程中,要求设置一绝对地址为0x67a9的整型变量的值为0xaa66。编译器是一个纯粹的ANSI编译器。写代码去完成这一任务。

这一问题测试你是否知道为了访问一绝对地址把一个整型数强制转换(typecast)为一指针是合法的。这一问题的实现方式随着个人风格不同而不同。典型的类似代码如下: 
int *ptr; 
ptr = (int *)0x67a9; 
*ptr = 0xaa55;

一个较晦涩的方法是: 
*(int * const)(0x67a9) = 0xaa55;

即使你的品味更接近第二种方案,但我建议你在面试时使用第一种方案。

中断(Interrupts)

11. 中断是嵌入式系统中重要的组成部分,这导致了很多编译开发商提供一种扩展—让标准C支持中断。具代表事实是,产生了一个新的关键字 __interrupt。下面的代码就使用了__interrupt关键字去定义了一个中断服务子程序(ISR),请评论一下这段代码的。

__interrupt double compute_area (double radius) 
{ double area = PI * radius * radius; 
printf(" Area = %f", area); 
return area; 
}

这个函数有太多的错误了,以至让人不知从何说起了: 
1). ISR 不能返回一个值。如果你不懂这个,那么你不会被雇用的。 
2). ISR 不能传递参数。如果你没有看到这一点,你被雇用的机会等同第一项。 
3). 在许多的处理器/编译器中,浮点一般都是不可重入的。有些处理器/编译器需要让额处的寄存器入栈,有些处理器/编译器就是不允许在ISR中做浮点运算。此外,ISR应该是短而有效率的,在ISR中做浮点运算是不明智的。 
4). 与第三点一脉相承,printf()经常有重入和性能上的问题。如果你丢掉了第三和第四点,我不会太为难你的。不用说,如果你能得到后两点,那么你的被雇用前景越来越光明了。

代码例子(Code examples) 
12 . 下面的代码输出是什么,为什么?

void foo(void) 
{ unsigned int a = 6; 
int b = -20; 
(a+b > 6) puts("> 6") : puts("<= 6"); 
}

这个问题测试你是否懂得C语言中的整数自动转换原则,我发现有些开发者懂得极少这些东西。不管如何,这无符号整型问题的答案是输出是“>6”。原因是当表达式中存在有符号类型和无符号类型时所有的操作数都自动转换为无符号类型。因此-20变成了一个非常大的正整数,所以该表达式计算出的结果大于6。这一点对于应当频繁用到无符号数据类型的嵌入式系统来说是丰常重要的。如果你答错了这个问题,你也就到了得不到这份工作的边缘。

13. 评价下面的代码片断:

unsigned int zero = 0; 
unsigned int compzero = 0xFFFF; 
/*1's complement of zero */

对于一个int型不是16位的处理器为说,上面的代码是不正确的。应编写如下:

unsigned int compzero = ~0;

这一问题真正能揭露出应试者是否懂得处理器字长的重要性。在我的经验里,好的嵌入式程序员非常准确地明白硬件的细节和它的局限,然而PC机程序往往把硬件作为一个无法避免的烦恼。 
到了这个阶段,应试者或者完全垂头丧气了或者信心满满志在必得。如果显然应试者不是很好,那么这个测试就在这里结束了。但如果显然应试者做得不错,那么我就扔出下面的追加问题,这些问题是比较难的,我想仅仅非常优秀的应试者能做得不错。提出这些问题,我希望更多看到应试者应付问题的方法,而不是答案。不管如何,你就当是这个娱乐吧…

动态内存分配(Dynamic memory allocation)

14. 尽管不像非嵌入式计算机那么常见,嵌入式系统还是有从堆(heap)中动态分配内存的过程的。那么嵌入式系统中,动态分配内存可能发生的问题是什么?

这里,我期望应试者能提到内存碎片,碎片收集的问题,变量的持行时间等等。这个主题已经在ESP杂志中被广泛地讨论过了(主要是 P.J. Plauger, 他的解释远远超过我这里能提到的任何解释),所有回过头看一下这些杂志吧!让应试者进入一种虚假的安全感觉后,我拿出这么一个小节目:下面的代码片段的输出是什么,为什么?

char *ptr; 
if ((ptr = (char *)malloc(0)) == NULL) 
puts("Got a null pointer"); 
else 
puts("Got a valid pointer");

这是一个有趣的问题。最近在我的一个同事不经意把0值传给了函数malloc,得到了一个合法的指针之后,我才想到这个问题。这就是上面的代码,该代码的输出是“Got a valid pointer”。我用这个来开始讨论这样的一问题,看看被面试者是否想到库例程这样做是正确。得到正确的答案固然重要,但解决问题的方法和你做决定的基本原理更重要些。

Typedef

15. Typedef 在C语言中频繁用以声明一个已经存在的数据类型的同义字。也可以用预处理器做类似的事。例如,思考一下下面的例子: 
#define dPS struct s * 
typedef struct s * tPS;

以上两种情况的意图都是要定义dPS 和 tPS 作为一个指向结构s指针。哪种方法更好呢?(如果有的话)为什么? 
这是一个非常微妙的问题,任何人答对这个问题(正当的原因)是应当被恭喜的。答案是:typedef更好。思考下面的例子: 
dPS p1,p2; 
tPS p3,p4;

第一个扩展为 
struct s * p1, p2;

上面的代码定义p1为一个指向结构的指,p2为一个实际的结构,这也许不是你想要的。第二个例子正确地定义了p3 和p4 两个指针。

晦涩的语法

16. C语言同意一些令人震惊的结构,下面的结构是合法的吗,如果是它做些什么? 
int a = 5, b = 7, c; 
c = a+++b;

这个问题将做为这个测验的一个愉快的结尾。不管你相不相信,上面的例子是完全合乎语法的。问题是编译器如何处理它?水平不高的编译作者实际上会争论这个问题,根据最处理原则,编译器应当能处理尽可能所有合法的用法。因此,上面的代码被处理成: 
c = a++ + b; 
因此, 这段代码持行后a = 6, b = 7, c = 12。 
如果你知道答案,或猜出正确答案,做得好。如果你不知道答案,我也不把这个当作问题。我发现这个问题的最大好处是:这是一个关于代码编写风格,代码的可读性,代码的可修改性的好的话题

What will print out?

main() 
{ char *p1=“name”; 
char *p2; 
p2=(char*)malloc(20); 
memset (p2, 0, 20); 
while(*p2++ = *p1++); 
printf(“%sn”,p2);

}

Answer:empty string.

What will be printed as the result of the operation below:

main() 
{ int x="20",y=35; 
x=y++ + x++; 
y= ++y + ++x; 
printf(“%d%dn”,x,y); 
}

Answer : 5794

What will be printed as the result of the operation below:

main() 
{ int x="5"; 
printf(“%d,%d,%dn”,x,x< <2,x>>2); 
}

Answer: 5,20,1

What will be printed as the result of the operation below:

#define swap(a,b) a="a"+b;b=a-b;a=a-b; 
void main() 
{ int x="5", y="10"; 
swap (x,y); 
printf(“%d %dn”,x,y); 
swap2(x,y); 
printf(“%d %dn”,x,y); 
}

int swap2(int a, int b) 
{ int temp; 
temp=a; 
b=a; 
a=temp; 
return 0;

}

Answer: 10, 5 
10, 5

What will be printed as the result of the operation below:

main() 
{ char *ptr = ” Cisco Systems”; 
*ptr++; printf(“%sn”,ptr); 
ptr++; 
printf(“%sn”,ptr); 
}

Answer:Cisco Systems 
isco systems

What will be printed as the result of the operation below:

main() 
{ char s1[]=“Cisco”; 
char s2[]= “systems”; 
printf(“%s”,s1); 
} Answer: Cisco

What will be printed as the result of the operation below:

main() 
{ char *p1; 
char *p2; 
p1=(char *)malloc(25); 
p2=(char *)malloc(25);

strcpy(p1,”Cisco”); 
strcpy(p2,“systems”); 
strcat(p1,p2);

printf(“%s”,p1);

}

Answer: Ciscosystems

The following variable is available in file1.c, who can access it?:

static int average;

Answer: all the functions in the file1.c can access the variable.

WHat will be the result of the following code?

#define TRUE 0 // some code 
while(TRUE) 
{

// some code

}

Answer: This will not go into the loop as TRUE is defined as 0.

What will be printed as the result of the operation below:

int x; 
int modifyvalue() 
{ return(x+=10); 
} int changevalue(int x) 
{ return(x+=1); 
}

void main() 
{ int x="10"; 
x++; 
changevalue(x); 
x++; 
modifyvalue(); 
printf("First output:%dn",x);

x++; 
changevalue(x); 
printf("Second output:%dn",x); 
modifyvalue(); 
printf("Third output:%dn",x);

}

Answer: 12 , 13 , 13

What will be printed as the result of the operation below:

main() 
{ int x="10", y="15"; 
x = x++; 
y = ++y; 
printf(“%d %dn”,x,y); 
}

Answer: 11, 16

What will be printed as the result of the operation below:

main() 
{ int a="0"; 
if(a==0) 
printf(“Cisco Systemsn”); 
printf(“Cisco Systemsn”); 
}

Answer: Two lines with “Cisco Systems” will be printed.

再次更新C++相关题集

1. 以下三条输出语句分别输出什么?[C易] 
char str1[] = "abc"; 
char str2[] = "abc"; 
const char str3[] = "abc"; 
const char str4[] = "abc"; 
const char* str5 = "abc"; 
const char* str6 = "abc"; 
cout << boolalpha << ( str1==str2 ) << endl; // 输出什么? 
cout << boolalpha << ( str3==str4 ) << endl; // 输出什么? 
cout << boolalpha << ( str5==str6 ) << endl; // 输出什么?

13. 非C++内建型别 A 和 B,在哪几种情况下B能隐式转化为A?[C++中等] 
答: 
a. class B : public A { ……} // B公有继承自A,可以是间接继承的 
b. class B { operator A( ); } // B实现了隐式转化为A的转化 
c. class A { A( const B& ); } // A实现了non-explicit的参数为B(可以有其他带默认值的参数)构造函数 
d. A& operator= ( const A& ); // 赋值操作,虽不是正宗的隐式类型转换,但也可以勉强算一个

12. 以下代码中的两个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;

7. 以下代码有什么问题?[C难] 
void char2Hex( char c ) // 将字符以16进制表示 
{ char ch = c/0x10 + '0'; if( ch > '9' ) ch += ('A'-'9'-1); 
char cl = c%0x10 + '0'; if( cl > '9' ) cl += ('A'-'9'-1); 
cout << ch << cl << ' '; 
} char str[] = "I love 中国"; 
for( size_t i="0"; i<strlen(str); ++i ) 
char2Hex( str[i] ); 
cout << endl;

4. 以下代码有什么问题?[C++易] 
struct Test 
{ Test( int ) {} 
Test() {} 
void fun() {} 
}; 
void main( void ) 
{ Test a(1); 
a.fun(); 
Test b(); 
b.fun(); 
}

5. 以下代码有什么问题?[C++易] 
cout << (true?1:"1") << endl;

8. 以下代码能够编译通过吗,为什么?[C++易] 
unsigned int const size1 = 2; 
char str1[ size1 ]; 
unsigned int temp = 0; 
cin >> temp; 
unsigned int const size2 = temp; 
char str2[ size2 ];

9. 以下代码中的输出语句输出0吗,为什么?[C++易] 
struct CLS 
{ int m_i; 
CLS( int i ) : m_i(i) {} 
CLS() 
{ CLS(0); 
} }; 
CLS obj; 
cout << obj.m_i << endl;

10. C++中的空类,默认产生哪些类成员函数?[C++易] 
答: 
class Empty 
{ public: 
Empty(); // 缺省构造函数 
Empty( const Empty& ); // 拷贝构造函数 
~Empty(); // 析构函数 
Empty& operator=( const Empty& ); // 赋值运算符 
Empty* operator&(); // 取址运算符 
const Empty* operator&() const; // 取址运算符 const 
};

3. 以下两条输出语句分别输出什么?[C++难] 
float a = 1.0f; 
cout << (int)a << endl; 
cout << (int&)a << endl; 
cout << boolalpha << ( (int)a == (int&)a ) << endl; // 输出什么? 
float b = 0.0f; 
cout << (int)b << endl; 
cout << (int&)b << endl; 
cout << boolalpha << ( (int)b == (int&)b ) << endl; // 输出什么?

2. 以下反向遍历array数组的方法有什么错误?[STL易] 
vector array; 
array.push_back( 1 ); 
array.push_back( 2 ); 
array.push_back( 3 );

for( vector::size_type i="array".size()-1; i>=0; --i ) // 反向遍历array数组 
{ cout << array[i] << endl; 
}

6. 以下代码有什么问题?[STL易] 
typedef vector IntArray; 
IntArray array; 
array.push_back( 1 ); 
array.push_back( 2 ); 
array.push_back( 2 ); 
array.push_back( 3 ); 
// 删除array数组中所有的2 
for( IntArray::iterator itor="array".begin(); itor!=array.end(); ++itor ) 
{ if( 2 == *itor ) array.erase( itor ); 
}

11. 写一个函数,完成内存之间的拷贝。[考虑问题是否全面] 
答:

void* mymemcpy( void *dest, const void *src, size_t count )   
{   
char* pdest = static_cast<char*>( dest );   
const char* psrc = static_cast<const char*>( src );   
if( pdest>psrc && pdest<psrc+cout ) 能考虑到这种情况就行了   
{   
for( size_t i="count-1"; i!=-1; --i )   
pdest[i] = psrc[i];   
}   
else  
{   
for( size_t i="0"; i<count; ++i )   
pdest[i] = psrc[i];   
}   
return dest;   
}   
int main( void )   
{   
char str[] = "0123456789";   
mymemcpy( str+1, str+0, 9 );   
cout << str << endl;   
  
system( "Pause" );   
return 0;   
}

 
系统分类: 资源共享
用户分类: 电子企业面试专题
标签: 无标签
来源: 转贴
发表评论 阅读全文(1049) | 回复(1)

50

嵌入式开发—C语言面试题

发表于 2007-1-31 20:48:33
********************************************************************************************************
说明:
1、笔试共分两部分:第一部分为基础篇(必答题);第二部分为专业篇(选答题)。
2、应聘芯片设计岗位的同学请以书面形式回答问题并附简历参加应聘面试。
3、如不能参加现场招聘的同学,请将简历和答卷邮寄或发e-mail的形式(请注明应聘标题)给我们,以便我们对您作出客观、全面的评价。
********************************************************************************************************
第一部分:基础篇
(该部分共有试题8题,为必答题,每位应聘者按自己对问题的理解去回答,尽可能多回答你所知道的内容。若不清楚就写不清楚)。

1、我们公司的产品是集成电路,请描述一下你对集成电路的认识,列举一些与集成电路相关的内容(如讲清楚模拟、数字、双极型、CMOS、MCU、RISC、CISC、DSP、ASIC、FPGA等的概念)。

2、你认为你从事研发工作有哪些特点?

3、基尔霍夫定理的内容是什么?

4、描述你对集成电路设计流程的认识。

5、描述你对集成电路工艺的认识。

6、你知道的集成电路设计的表达方式有哪几种?

7、描述一个交通信号灯的设计。

8、我们将研发人员分为若干研究方向,对协议和算法理解(主要应用在网络通信、图象语音压缩方面)、电子系统方案的研究、用MCU、DSP编程实现电路功能、用ASIC设计技术设计电路(包括MCU、DSP本身)、电路功能模块设计(包括模拟电路和数字电路)、集成电路后端设计(主要是指综合及自动布局布线技术)、集成电路设计与工艺接口的研究。
    你希望从事哪方面的研究?(可以选择多个方向。另外,已经从事过相关研发的人员可以详细描述你的研发经历)。

第二部分:专业篇
(根据你选择的方向回答以下你认为相关的专业篇的问题。一般情况下你只需要回答五道题以上,但请尽可能多回答你所知道的,以便我们了解你的知识结构及技术特点。)

1、请谈谈对一个系统设计的总体思路。针对这个思路,你觉得应该具备哪些方面的知识?

2、现有一用户需要一种集成电路产品,要求该产品能够实现如下功能:y=lnx,其中,x为4位二进制整数输入信号。y为二进制小数输出,要求保留两位小数。电源电压为3~5v假设公司接到该项目后,交由你来负责该产品的设计,试讨论该产品的设计全程。

3、简单描述一个单片机系统的主要组成模块,并说明各模块之间的数据流流向和控制流流向。简述单片机应用系统的设计原则。

4、请用方框图描述一个你熟悉的实用数字信号处理系统,并做简要的分析;如果没有,也可以自己设计一个简单的数字信号处理系统,并描述其功能及用途。

5、画出8031与2716(2K*8ROM)的连线图,要求采用三-八译码器,8031的P2.5,P2.4和P2.3参加译码,基本地址范围为3000H-3FFFH。该2716有没有重叠地址?根据是什么?若有,则写出每片2716的重叠地址范围。

6、用8051设计一个带一个8*16键盘加驱动八个数码管(共阳)的原理图。

7、PCI总线的含义是什么?PCI总线的主要特点是什么?

8、请简要描述HUFFMAN编码的基本原理及其基本的实现方法。

9、说出OSI七层网络协议中的四层(任意四层)。

10、中断的概念?简述中断的过程。

11、说说对数字逻辑中的竞争和冒险的理解,并举例说明竞争和冒险怎样消除。

12、要用一个开环脉冲调速系统来控制直流电动机的转速,程序由8051完成。简单原理如下:由P3.4输出脉冲的占空比来控制转速,占空比越大,转速越快;而占空比由K7-K0八个开关来设置,直接与P1口相连(开关拨到下方时为"0",拨到上方时为"1",组成一个八位二进制数N),要求占空比为 N/256。
  下面程序用计数法来实现这一功能,请将空余部分添完整。

   MOV P1,#0FFH
   LOOP1 :MOV R4,#0FFH
   --------
   MOV R3,#00H
   LOOP2 :MOV A,P1
   --------
   SUBB A,R3
   JNZ SKP1
   --------
   SKP1:MOV C,70H
   MOV P3.4,C
   ACALL DELAY :此延时子程序略
   --------
   --------
   AJMP LOOP1

13、用你熟悉的设计方式设计一个可预置初值的7进制循环计数器,15进制的呢?

14、请用HDL描述四位的全加法器、5分频电路。

15、简述FPGA等可编程逻辑器件设计流程。

16、同步电路和异步电路的区别是什么?

17、电压源、电流源是集成电路中经常用到的模块,请画出你知道的线路结构,简单描述其优缺点。

18、描述反馈电路的概念,列举他们的应用。19、放大电路的频率补偿的目的是什么,有哪些方法?

20、画出CMOS电路的晶体管级电路图,实现Y=A.B+C(D+E)

21、请分析如下电路所实现的功能。

22、A)
  #i nclude
  void testf(int*p)
  {
  *p+=1;
  }
  main()
  {
  int *n,m[2];
  n=m;
  m[0]=1;
  m[1]=8;
  testf(n);
  printf("Data value is %d ",*n);
  }
  ------------------------------
  B)
  #i nclude
  void testf(int**p)
  {
  *p+=1;
  }
  main()
  {int *n,m[2];
  n=m;
  m[0]=1;
  m[1]=8;
  testf(&n);
  printf(Data value is %d",*n);
  }
  下面的结果是程序A还是程序B的?
  Data value is 8
  那么另一段程序的结果是什么?

23、用简单电路实现,当A为输入时,输出B波形为:A: B:
24、LC正弦波振荡器有哪几种三点式振荡电路,分别画出其原理图。
25、锁相环有哪几部分组成?
26、人的话音频率一般为300~3400HZ,若对其采样且使信号不失真,其最小的采样频率应为多大?若采用8KHZ的采样频率,并采用8bit的PCM编码,则存储一秒钟的信号数据量有多大?
27、在CMOS电路中,要有一个单管作为开关管精确传递模拟低电平,这个单管你会用P管还是N管,为什么?
28、画出由运放构成加法、减法、微分、积分运算的电路原理图。并画出一个晶体管级的运放电路。
29、数字滤波器的分类和结构特点。
30、DAC和ADC的实现各有哪些方法?
31、描述CMOS电路中闩锁效应产生的过程及最后的结果?
32、什么叫做OTP片、掩膜片,两者的区别何在?
33、列举几种集成电路典型工艺。工艺上常提到0.25,0.18指的是什么?
34、请描述一下国内的工艺现状。
35、请简述一下设计后端的整个流程?
36、有否接触过自动布局布线?请说出一两种工具软件。自动布局布线需要哪些基本元素?
37、半导体工艺中,掺杂有哪几种方式?
38、什么是NMOS、PMOS、CMOS?什么是增强型、耗尽型?什么是PNP、NPN?他们有什么差别?
39、为什么一个标准的倒相器中P管的宽长比要比N管的宽长比大?
40、硅栅COMS工艺中N阱中做的是P管还是N管,N阱的阱电位的连接有什么要求?

汉王笔试
1、下面是一些基本的数字电路知识问题,请简要回答之。
a) 什么是Setup 和Holdup时间?

Setup/hold time 是测试芯片对输入信号和时钟信号之间的时间要求。建立时间是指触发器的时钟信号上升沿到来以前,数据稳定不变的时间。输入信号应提前时钟上升沿(如上升沿有效)T时间到达芯片,这个T就是建立时间-Setup time。如不满足setup time,这个数据就不能被这一时钟打入触发器,只有在下一个时钟上升沿,数据才能被打入触发器。
      保持时间是指触发器的时钟信号上升沿到来以后,数据稳定不变的时间。如果holdtime不够,数据同样不能被打入触发器。
b) 什么是竞争与冒险现象?怎样判断?如何消除?
c) 请画出用D触发器实现2倍分频的逻辑电路?
d) 什么是"线与"逻辑,要实现它,在硬件特性上有什么具体要求?
e) 什么是同步逻辑和异步逻辑?
f) 请画出微机接口电路中,典型的输入设备与微机接口逻辑示意图(数据接口、控制接口、所存器/缓冲器)。
g) 你知道那些常用逻辑电平?TTL与COMS电平可以直接互连吗?
2、 可编程逻辑器件在现代电子设计中越来越重要,请问:
a) 你所知道的可编程逻辑器件有哪些?
b) 试用VHDL或VERILOG、ABLE描述8位D触发器逻辑。
3、设想你将设计完成一个电子电路方案。请简述用EDA软件(如PROTEL)进行设计(包括原理图和PCB图)到调试出样机的整个过程。在各环节应注意哪些问题?

飞利浦-大唐笔试
1、用逻辑们和cmos电路实现ab+cd
2、用一个二选一mux和一个inv实现异或
3、给了reg的setup,hold时间,求中间组合逻辑的delay范围。
4. 如何解决亚稳态
5. 用verilog/vhdl写一个fifo控制器
6. 用verilog/vddl检测stream中的特定字符串

信威dsp软件面试题
1)DSP和通用处理器在结构上有什么不同,请简要画出你熟悉的一种DSP结构图
2)说说定点DSP和浮点DSP的定义(或者说出他们的区别)
3)说说你对循环寻址和位反序寻址的理解
4)请写出【-8,7】的二进制补码,和二进制偏置码。用Q15表示出0.5和-0.5

扬智电子笔试
第一题:用mos管搭出一个二输入与非门。
第二题:集成电路前段设计流程,写出相关的工具。
第三题:名词IRQ,BIOS,USB,VHDL,SDR
第四题:unix 命令cp -r, rm,uname
第五题:用波形表示D触发器的功能
第六题:写异步D触发器的verilog module
第七题:What is PC Chipset?
第八题:用传输门和倒向器搭一个边沿触发器
第九题:画状态机,接受1,2,5分钱的卖报机,每份报纸5分钱。

华为面试题
研发(硬件)
全都是几本模电数电信号单片机题目
1.用与非门等设计全加法器
2.给出两个门电路让你分析异同
3.名词:sram,ssram,sdram
4.信号与系统:在时域与频域关系
5.信号与系统:和4题差不多
6.晶体振荡器,好像是给出振荡频率让你求周期(应该是单片机的,12分之一周期....)
7.串行通信与同步通信异同,特点,比较
8.RS232c高电平脉冲对应的TTL逻辑是?(负逻辑?)
9.延时问题,判错
10.史密斯特电路,求回差电压
11.VCO是什么,什么参数(压控振荡器?)
12. 用D触发器做个二分颦的电路.又问什么是状态图
13. 什么耐奎斯特定律,怎么由模拟信号转为数字信号
14. 用D触发器做个4进制的计数
15.那种排序方法最快?
16.时钟周期为T,触发器D1的建立时间最大为T1max,最小为T1min。组合逻辑电路最大延
迟为T2max,最小为T2min。问,触发器D2的建立时间T3和保持时间应满足什么条件。

研发(软件)
用C语言写一个递归算法求N!;
给一个C的函数,关于字符串和数组,找出错误;
防火墙是怎么实现的?
你对哪方面编程熟悉?

新太硬件
(1)d触发器和d锁存器的区别
(2)有源滤波器和无源滤波器的原理及区别
(3)sram,falsh memory,及dram的区别?
(4)iir,fir滤波器的异同
(5)冒泡排序的原理
(6)操作系统的功能
(7)学过的计算机语言及开发的系统
(8)拉氏变换和傅立叶变换的表达式及联系。

系统分类: *话题
用户分类: 电子企业面试专题
标签: 诺基亚面试题目
来源: 转贴
发表评论 阅读全文(6493) | 回复(10)

0

嵌入式开发—C语言面试题

发表于 2007-1-31 20:46:26
它是我面试最爽的一个公司,那天晚上我和gyw去参加他的宣讲会,害怕交大不让早进,我们还特意晚去了10几分,没看见前面
的宣传片很可惜。宣讲会讲了2个小时,开场由hr简单介绍公司情况,随后由一个自身的工程师讲了很久,听得我都快睡着了。不过
马上又上来了一个帅外国人,他是负责天津的。他的英语英语发音很标准,我基本都能听都,这时大家都很静,仔细听他讲,最后
我又投了简历,虽然已经网投了,但是为了保险,不就多一张纸吗,呵呵。他们说晚上12点收不到电话通知面试就没戏了。
晚上我等到了12点,竟然没电话,没机会了,故而睡之。没想到12点半,电话吵醒了我,fsl的面试电话,通知明天下午2点面试。
我简直兴奋极了,好久都没睡着。到了第二天,问了其他人才知道只有我让去面试了,虽然下午面试,感觉排到后面就没机会,
我可要珍惜这珍贵的机会,因为我相信只要努力就有机会。下午到了交大,看到登记表上竟然面试的人才20人左右,我觉得我
能去面试时很大的luck呀。在外面等了会,有人叫我进去,第一面见了个jj,她很干练,也比较有气质,起初以为是技术manager,
后来问了fsl里的人才知道,她是hr manager,知到后非常佩服fsl,它们的hr都懂这么多技术。她对我说的第一句话就是“看了你
的简历,觉得你是最适合我们的人”,但是很高兴,就先作了自我介绍,讲了教育背景和项目经历,这时她也看了我的简历。完了
后她问了很多项目的问题,还有时序、综合、asic设计流程、低功耗、验证等多方面的知识,由构架问到细节,自我感觉打得很不
错,很少打板子,当然也有不会的,毕竟学校条件差,很多还没接触过。所以我就虚心和她交流,她也仔细得给我讲,感觉受益匪浅。
然后我们又聊了我在学校的学习和生活,后面节奏基本由我控制了,聊得谈笑风生,感觉很好。1小时后,她说我这边没问题,很希
望我去fsl,还说了他们的offer给得很晚(12月中旬),希望我耐心等,我也说了我的难处,然后让我出去等下一个manager的面试,
我说4点还要去hw3面,希望他们能面试快点,她就笑着答应我,放心马上安排你面试。我刚出去就有被叫了进来,这次是一个很沉稳的gg,
他说话很稳重,也是让我最我介绍,随后问了些项目的问题,我这时已经进入状态,说起话来也很振奋。她对我的印象也很好,一直在劝
我耐心等offer,最后握手分别。面试完后,我就兴致勃勃的去做402到高新面hw3面。
过了5天,我就有收到苏州那个2面经理的电话confirm,到了12月就顺利拿到offer。
整体感觉,面fsl要知识面广点、对自己的课题要很熟悉,而且你的态度要非常自信+aggressive。这样才有可能。
系统分类: *话题
用户分类: 电子企业面试专题
标签: 面试
来源: 转贴
发表评论 阅读全文(2552) | 回复(6)

1

嵌入式开发—C语言面试题

发表于 2007-1-13 23:16:00
面试威盛--2002年1月29号 By  totty

声明:以下的所有言论仅仅基于个人经历,本人尽力记录真实发生的一切,但可能因记
忆不准确会和真实情况有所差别,对此,作者并不负责。另外,本人的经历可能并不具
有代表性,请切记。未经作者同意不许转载,否则所引起的一切后果自负。
--
威盛电子(www.viatech.com)是一家*的微电子企业。昨天下午接到一个电话,电话
里有一个甜甜的声音说是看到我网上的简历了,希望我去面试一下。既然面试,那就面
试吧,没什么大不了的,正好也有其它事情要到上地去一趟,于是就开始了下午的这个
故事:
--
预约的时间本来是下午1点,但据说是因为上午出车祸了,而且正好是修路,所以从中关
村到上地的那条路一直堵着,走走停停,到上地七街都已是12:50了。又因为不晓得得实
大厦到底是在马路的哪边,在路口转了一个圈,问了一个骑三轮车的大哥才找到那栋楼
的后门。外面的阳光很好,但风非常大,吹得人很不爽,绕着楼走了一圈,才找到正门

--
到了via的门口,前台小姐让我先填一张表,虽然仅仅是一页纸,但这表也可谓是中西合
壁了,既有“你妈贵姓?”的问题,也有“请提供你的推荐人”之类的东东。偶大致将
就着填了,也跳过若干无关问题。把表再交回给前台小姐后,偶傻傻的在那个小黑房子
里面坐了十几分钟。然后就开始了今天的面试。
--

(房子外远远的走来一位先生,渐渐的看清是直奔偶过来的。偶起身,拉开门。)
偶(以下简称为o):你好。
奈(以下简称为n):你好。你是...XXX?(坐下)
o:是的。(也坐下)
......(n简要的问了些教育背景,经历啦什么的,o也简要回答了些,略去)
n:我看到你预定的论文题目是《******》,能不能介绍一下你在这方面的工作?
o:好的。(画了很多图,大概说明了一下做的东西,但n先生可能不是很明白,我后来
才知道,因为这都是模拟电路设计方面的,呵呵)。
...
n:你提到采样速率是信号带宽的两倍就一定能够还原这个信号,能不能证明一下?
o:(//faint,so easy)当然可以,这是信号与系统的基本常识了。画图就可以很明显的
看出了(画图证明之)。
...
n:在你的设计中,应该遇到很多trade-off,ok?你能不能介绍一下你碰见了哪些trad
e-off以及你是如何解决的呢?
o:当然有了,(//Thinking),首先这整个design的architecture就是一个大的trade
-off的结果,然后设计中许多电路结构的选择也是tradeoff的结果。(解释如何的trad
e-off)
...
n:ok,你在这张表上的应聘职位没有填写,你大概希望从事什么方向的工作?
o:哦,是这样的,我是昨天下午接到您公司人事部门的面试通知的。他们是通过51job
网站得到我的简历,因此我现在还不知道贵公司希望我从事的方向。
n:我主要是负责logic design方面的,我们主要是招聘logic design engineer。ok,
我想知道你的working expectation。
o:(//ft again,早说啊,早说我不就和你侃logic design了么?呵呵)在我pub的简历
上提到的工作预期...预.期.(ok?)是模拟电路ananlog circuit design Engineer和数字
design方面的project manager.
n:(//吃惊)project manager? no,no,我们这里现在没有project manager的职位。
我们现在需要的是logic design engineer。
o:哦。
n:(//smile)当然,我很高兴你有这个ambition希望做project manager。但我们这里的
工作也是不可能提供project manager的职位的,因为我们这里的project需要的知识在
学校里面是完全学习不到的。就是我们刚招聘进来的XXX Dr.在XX大学工作了n年,也是
从头坐起,每个人的起点都是一样的。
o:(//失望),哦。但也未必吧,学校和学校是不一样的(反击)。在数字设计方面我也
做过几个不大的项目,对于这方面,偶也是很熟悉的。
n:那么你对logic design engineer的职位还有兴趣吗?
o:(//Thinking)我觉得这也是一种选择,如果合适,我想还是会接受这样的工作的。但
是我希望能够详细了解一下你们的project具体的内容,以及作为一个logic desing en
gineer在具体的project中从事的任务。还有,我想知道在您公司里面,一个典型的pro
ject是如何管理的,而作为一个design engineer在公司中,又是如何表现自己并成长的
呢?我想这些信息对我的决定也有所影响。
n:ok。我们的logic设计主要是XXX方面的,在这方面我们有三个小组,usa,tw,和北
京。
o:(//打断)对不起,我打断一下,我想问问您的logic设计小组一共有多少人,现在有
多少和计划最终有多少人?
n:我们在beijing的team大概有20几人左右,我们到今年年底可能会扩到30~40人。因为
tw和usa的小组力量比较weak,也就是人比较少,所有有一些工作要beijing的eng和他们
一起完成。
o:明白了。那您在北京rd部门的员工主要是从事什么样的工作呢?
n:我们的工作主要是(??一个什么bus吧,听得不是很清楚)的Application的设计。刚
进来的员工首先是需要read documentation和protocal,撰写??list。
o:??list?
n:就是接口的规范,(例如接口的信号、时序等等接口规范)。阅读文档后需要写出硬
件的接口描述,这样,才能够进行整体的model。在一个project中,阅读doc和撰写??l
ist后,eng就应该比较了解它们的了。然后就可以进行一些app的设计......(以下具体
不详,大致是介绍via的logic设计中的一个典型project流程)。我们的team一般在完成
一个project之前会有另外的project在(排队)的,所以会比较的tough。
o:(//smile)随便问问,你们project中的小组成员经常加班吗?
n:我们logic小组的人都是很(niu)的人,在招聘员工上我们宁缺毋滥。我们的小组中既
会非常的cooperative,也会非常的competetive,有。在这样的小组中,我想你是可以
学到很多的东西的。可以学到很多在学校里接触不到的东西。
o:那当然,工作和学习是不一样的。我的工作经历也教会过了我很多事情。(提醒n先
生不要同一化偶)出于对个人发展的考虑,我当然也希望能够在一个地方学习很多的新
东西。
n:在我们这里logic design方面的工作不光需要有硬件设计的背景,也需要软体softw
are的background。我们招了几个XX大学的CS的。你们学过Computer Arch吗?
o:(//node),当然。我们还学过****(计算机方面的一些课程)。
n:那么熟悉内存管理吗?
o:知道一些东西,因为在课程XXXX里面有很详细的说明。偶做过的课程设计里面包括了
一个os的进程管理、文件、内存和其他资源的一个简单系统。(其实早忘记了,多少年
前的课程了啊?呵呵)
n:那么在内存分配方面有几中算法呢?
o:应该有很多种,看不同的系统需要了,例如贪.心.算法,......
n:内存的fragment回收你知道吗?能不能介绍一下?
o:当然,其实内存的gragment回收和磁盘disk的fragment recover是一样的,或者是类
似的。(想了一想windows的磁盘清理工具的运行图)内存的fragment recoverage就是
......
n:ok,你做过数字方面的设计,可以具体的介绍一下吗?
o:当然。偶做过XX,*万std_cell的一个设计,XX,*万std_cell的一个设计, 和*万std_
cell的一个设计。
n:你主要是负责什么呢?
o:综合和综合后的后端流程和验证。
n:验证?你们是如何验证你的design的?
o:后端设计主要就是时序验证啊,通过版图可以得到design的时间延迟信息。
n:sdf?你是用什么工具做的呢?
o:(这也用问)我们使用的是XXX公司的XXX,XXX,XXX等软件。同时我也熟悉使用XXX....
..
n:时序验证是static timing analysis吗?
o:当然了,我只能做到这一步,在不知道具体的设计描述的情况下,我只能通过这样验
证设计啊?我们用的是****Time进行时序分析......
n:那在你的设计中用了latch了没有?
o:考虑使用latch过,在我们后来的版本中,使用latch。但是在教科书中的建议是在设
计中尽量避免使用latch。
n:是的,但是不用latch是不可能实现高速的设计的。那么你知道time borrowing的概
念吗?能不能给我解释一下?
o:(解释time borrowing......)
n:ok,你还有什么问题要问我的吗?
o:想了半天,没有。
n:那好。你给我的感觉是有点过于自信。(o nod)但是,我想我是会给你offer的。你
在这里等一会,一会人事经理会和你面谈的。
o:好的。

--
以下和他们的hr经理(Wang XX)的谈话略去。总体感觉是不太好,个人以为via对大陆学
生还是有许多的偏见和歧视的。在他们的谈话中不会说出,但是可以感觉得到,我很不
喜欢这种隐隐流露出的歧视和偏见(或许也可能是因为我太敏感了吧?但我不喜欢,所以
我也不会接受)。这次面试的结局是今天收到了via的拒信,原因是他们的这种偏见有些
激怒了我,从而在我和他们的人事经理讨论问题时在一些地方产生争执并让双方感觉不
太爽。
--
如果仅就面试而言,我后来和hr manager的很多言论和行为是多余和愚蠢的。但是我并
不认为这种错误是我的失败,呵呵,我觉得是他们的失败,我们得教教他们一些我们的
文化。当然,每次经历必然也会带来很多的经验的,我的经验如下:
--
结论:
1、对于via中我所了解的logic设计部门来讲,他们的设计方法和设计流程对于国内的很
多数字设计house来讲要正规很多。客观来说,在这里也是可以学习到一些设计方法和许
多pc/io的原理性知识的,但方向也的确是非常的狭窄。
2、via给出的薪酬水平是很低的,我所了解(wang xx说的)典型的80%的员工(硕士毕
业生)税前工资是7000,也就是说,税后工资是5300左右(以北京的税收政策为例)。

3、*公司对大陆员工有一些偏见(文化的偏见?很奇怪)包括薪水和职位的偏见(或
者是歧视)。在via这个非常典型的*公司中,表现得尤为明显,甚至可能有技术上的
歧视(作者猜测)。在面试中不论是和技术人员交谈还是和管理人员交谈,我都屡次感
觉到这种歧视和偏见的存在并试图反击,最后以失败告终,呵呵,但也很爽。

系统分类: *话题
用户分类: 电子企业面试专题
标签: 面试
来源: 转贴
发表评论 阅读全文(608) | 回复(0)

1

嵌入式开发—C语言面试题

发表于 2007-1-13 23:14:35
下午就要签约了,上午一个人在教研室整理了一下这段时间的生活,发觉还是有很多收
获的。
这期间经历过一些公司,有过一些感受,在这里记载下来,也算为师弟师妹们做个参考

准确的说我的求职过程应该从今年9月28号开始算起,到现在已经是两个多月过去了。
第一次面试,呵呵,其实我一直都不把它当作一次面试的,
是9月28号在宁波人才交流会上。提到宁波人才交流会,我想多说两句。
每年九月份或者十月份,宁波都会举办一次所谓的万人交流会,就是由宁波出车费,
请全国各著名高校(今年大概有二十多所吧)到宁波参加两天左右的人才交流。
实际上就我所知,高校去的人有百分之七十以上都是抱着有人给车费,
顺便去那边旅游的心理过去的,实际效果可想而知。
我早上去了会场,找老师报了道,因为事先安排的是下午到上海,上午没事就和舍友在
会场里面顺便逛了逛
呵呵,没想到还真碰到两个招微电子的公司。一个是宁波立立电子,另一个就是中纬积
体电路。
前者,我投了简历,一位老总和我聊了会,然后还很时髦的用e文和我交谈,大庭广众,

就我那磕磕巴巴的e文,真是非常尴尬,不过好在那位老总e文也很粑,总算糊弄过去了

后来听舍友说,他与老总英文交流以后,老总对交大学生的评价是e文不错,呵呵,当时
听了真是寒啊。
另一个中纬积体就不这么给面子了,一位还挺pp的mm只是用眼角扫了一眼我的简历,
直接就退回来了,说他们不招设计的。呵呵,这该是我收到的第一份拒信吧。
结果:宁波立立电子要我去工厂干上一年,美其名曰:基层锻炼。呵呵
第二次面试就到了10月6号了,地点是西安喜来登饭店,
我发觉好多公司到西安都是去喜来登,可能是世界连锁的原因。
坐了近一个小时的公共汽车,好不容易到了面试房间。
面试官是普诚科技的黄总,普诚科技的母公司是*的prinston,
老实说以前并没有听说过,普诚科技是今年才在深圳成立的子公司。
因为他们是今年在交大bbs上面最早出现的公司,所以就去了。
面试过程中,一个技术问题没有问,就大体谈了谈自己做过的课题。
黄总问得最多的话该是,你做了这么多数字的工作转模拟你愿意吗?
呵呵,我当然不愿意,不过还是很勉强的说,其实我也挺喜欢模拟的。
后来的结果证明了面试官还真的是有火眼睛睛的,我直接被bs了。
结论:千万别为了得到一个工作而去迎合任何人,特别是违心的迎合。
普诚事件以后好长时间都没有公司过来,我也就安心的工作了二十来天。
不过期间在网上投过两三分简历,其中一份带来了另外一次机会,这是后话了,后面会
提到。
第三次面试时间是11月6号,地点是交大南洋大酒店,面试公司就是今天下午就将和我签
约的苏州瑞晟。
当然面试官就是早就如雷贯耳的郭经理了,呵呵,马上就是我的上司了,我是不敢直呼
其名了。
因为早就听过以前师兄们面试的艰辛历程,所以我也算是早做准备。
面试过程比我想象中来得随和,平静。刚开始,就是问课题情况,不过,问得十分细致

每一个接口信号流向,来源,适应情况都无一遗漏。
接下来就是即兴题目,我做的只是一个数字电路的组合逻辑题。
入手处很easy,但随着不断的深入,不断地增加条件,我的头也是越来越大。
整个过程我被卡住过一次,想了两分钟还是不知道怎么办,只好告诉面试官我不会。
瑞晟面试过程中最好的地方就是一个交流的过程,不会的时候,面试官会提醒你,
然后你继续往下做,直到共同完成这道题。我感觉这些题完全是即兴出的,因为在我解
题过程中,
很多时候面试官也不知道答案,他也是一步一步推下去的。
结论:瑞晟面试一定要对自己的课题极为熟悉,千万别想着敷衍过去。
再有就是重视基础,包括一些必要的器件知识。
因为在最后我还被问道body effect的问题,问题不是直接问,是变着花样问,
所以深入吃透物理原理很重要。
面试了瑞晟,过了几天瑞晟的兄弟公司炬力也过来了,炬力要先通过笔试,然后才参加
面试。
我记得面试那天是11月11号,地点还是南洋大酒店。
面试中,面试官和我主要是针对笔试中的题目完成情况进行了讨论。
顺带的他问了问课题上的情况,不过问得不如 痍上晗 ,只需要大致说说就可以了。
炬力面试还有一个最重要目的就是要了解被面试者是否愿意立即和他们签约。
因为他们在来学校以前都会事先找已经在他们公司工作的师兄师姐摸底,
而且事先他们也会借着到交大来检查三楼联合实验室成员工作情况的机会,向老师们了
解将毕业学生的详细情况。
所以他们对系里面的学生的情况应该是比较了解的。所以只要参加了面试,他们都会直
接要求马上签约。
这也为师弟师妹们提个醒:如果有人有兴趣去炬力工作的话,不妨事先联络一下已经在
炬力工作的师兄师姐们。
老实说,除了珠海地方不是太好以外,其他任何方面炬力在国内都算是比较好的公司了
,而且对交大学生特别客气。
另外还要提一下炬力的笔试题目:做ic方面的话,研究生题目包括很杂,
今年既有管子级电路功能的识别,又有两道写代码的题(包括三、五分频、和一个类似
于选择译码器的题)
还有两道模拟电路的题,一个电流镜应用方面的,和一个放大器方面的。
上面提到了我在网上投过几分简历,其中一份就是给威盛的。当然我也就收到了威盛的
笔试通知。
我投的是logic,笔试题目在bbs上面可以找到我也就不多说了。
我说说面试过程,VIA的面试分三轮,两轮技术面试,一轮人力资源面试。采用类似于p
ipeline方式进行。
第一个面试官,是一位刚从美国赶过来的*人。国语不是很好,面试过程中常用e文。

刚开始是问课题方面的问题,看我比较熟练,说了两分钟,他就换了话题。
开始问一个类似于交通灯的题目,不过不像我们普通碰到的交通灯,问题方式和瑞晟十
分类似,
逐步深入,状态机从两个到四个,再到八个,再加各种条件。
幸运的是,这次我没有卡壳,面试过程进行得比较顺利,
半个小时左右他就让我去二面房间了。
二面的是一个刚从*赶过来的更纯的*人,这个*人比较傲慢,眼睛盯着电脑,
不用抬头,就直接发问。
问题倒是挺简单,一个是关于cache的理解,再一个是关于时钟树方面的问题,最后还问
了一个极为easy的iq题。
呵呵,当时我就告诉他,这个题到处都能找到,
不过*人坚持说他就想看看我的思维过程。
呵呵,答案都知道,这还用说,当然是非常敏捷了。
末了,就该是三面了,是一个人力资源部的女士做的面试官。
三面气氛非常轻松,因为她刚好是绵阳人,我们算是老乡,一下子关系倒是拉近了不少
她问得倒是挺细,包括我的期望待遇,和有没有别的公司给我offer这些情况。
我也没有一点隐瞒,是什么就说什么。
可能是我的坦率让她让她很欣赏,她也给我说了一些当时还相对属于秘密的事情。呵呵

结论:其实每个公司做HR的人,都是阅人无数的,
很多事情不用问都知道面试者是怎么想的,
这个时候遮遮掩掩反而没什么意思了。
快吃午饭了,还有两家公司就等到下午签完回来再写吧。

呵呵,还有两家公司继续写。
两家公司一家是杰得微电子,另一家就是Intel了。
杰得微电子在上海,是一家刚成立的公司。
我想很多人都和我一样,目标城市排在第一的肯定是上海。
杰得是我捞到面试机会的第一家上海公司,所以也比较重视这个机会。
面试前打听了很多相关的情况,杰得的背景是夏新投资,由一个归国
博士办起来的。公司规模很小,只有24名员工,其中有12名来自清华。
公司主要是做多媒体,视频音频方面的ic。可能清华学生的推积效应
的原故,面试那天早上交大电信学院去了近20个人。
杰得的面试和笔试是在一个周五的早上,而且是同时进行的。
听公司作宣讲的人说,这样安排是为了节省时间。他们星期天还要赶回去
加班把损失的时间补回来。呵呵,好高效的公司,好紧张的节奏。
宣讲会上那个清华背景的软件部主管,大吹公司人员素质多高多高,
不过论据说来说去主要就是一个:因为他们是清华的。真是ft!
然后就是边笔试边面试,笔试题目倒是很简单,都是些数字电路的东西
面试的时候,也是一个清华的小伙。小伙倒是挺和蔼的。
刚开始也是从课题入手,感觉他对MCU懂得也不多,也问不出什么来,
基本都是我在讲。课题讲完了,就轮到他发问了,第一个问题是:
你知道什么是商编码吗?我答:没听说过;然后接着是mpeg2协议你了解多少?
我答:没接触过。那基于ARM核的嵌入式系统你知道多少?
这个我就知道ARM核是个risc结构,网上能够找到ARM7的源码,其他的我就不知道了。
呵呵,小伙笑:“arm7?人家arm9都早做出来了。”我晕。
最后的一个问题是:“你在软件方面有什么擅长的?开发过什么样的程序?”
我kao,我要软硬兼通,什么都会的话,我早去intel了,还跑你这来面个屁啊。
小伙最后意味深长的说:“我们公司的员工无论学硬件毕业的,还是软件毕业的,
都是两方面都很精通的。”
这次面试的结果是最烂的,不过我也真的很怀疑,真的有那样的员工会去杰得吗?
这次面试基本也就打消了我去上海的希望。我发觉今年找工作和上海老是对不上路。
要么是像IPCORE,汉芯之流的根本就不给我面试机会,要么就是杰得这样牛逼哄哄,
根本瞧不上我的。

又过了几天Intel来了交大,25号下午和几个同学到宪梓堂听了一下午的宣讲会
并投了一份简历。当天晚上就收到电话说第二天早上去喜来登面试。
因为我投的是成都和上海的factory,不是研发中心,所以不需要笔试,直接面试。
面试前后就持续了半个小时,全英文的。面试官是一个中年人,口语连音很多,
好多都听不清楚。因为是英文面试,问题倒是挺简单的,无非就是问做过什么工作,
工作进展怎么样,是否是team leader,怎么处理人际关系。与其说是一次interview,
更不如说是一个conversation。气氛还是挺好的。
面试结束,说三个礼拜以后给结果,三个礼拜肯定是等不了的那,
而且在工厂做PE毕竟不是我的最爱。整个过程就权当是一次practice吧。

面试经历叙述到这里就该打住了。
总结一下,前前后后面试过7个公司,除去宁波立立电子不说,其余几个公司中
面试过程气氛最随和,但是思维最紧张的该算是瑞晟;
HR部门效率最高,态度最好,操作最规范的则是威盛;
笔试题最难的肯定是Intel(虽然我没做过,不过网上可以找得到);
呵呵,当然要求最高的也是Intel,不过杰得也差不了多少。

最后我选择的公司是瑞晟(苏州)。
前面有人问为什么不选择威盛,要选瑞晟?
这两家公司不同人有不同看问题的角度。从我自己的角度看,
瑞晟最吸引我的地方是公司的培训,还有发展方向也很好,
公司工作重心以后主要会放在视频方面,这也该是当前最热门的
方向之一了吧。
威盛,公司比较大,管理比较规范。
但是北威给的offer里面提到logic的工作主要是做
verification和写testing vector。
当然还有一点:那就是待遇问题,瑞晟给的待遇应该是这些公司中最高的了。
呵呵,这点该也是很吸引人的地方了。

写了这么多,就是想给师弟师妹们稍稍引个路。
还是那句话,各人有自己看问题的角度,也难免会有偏颇。
所以更重要的体验还是需要自己在求职过程中自己领会。

系统分类: *话题
用户分类: 电子企业面试专题
标签: 面试
来源: 转贴
发表评论 阅读全文(2111) | 回复(0)

1

嵌入式开发—C语言面试题

发表于 2007-1-13 18:02:34
各大公司电子类招聘题目精选[转]
模拟电路 
1、基尔霍夫定理的内容是什么?(仕兰微电子) 
2、平板电容公式(C=εS/4πkd)。(未知) 
3、最基本的如三极管曲线特性。(未知) 
4、描述反馈电路的概念,列举他们的应用。(仕兰微电子) 
5、负反馈种类(电压并联反馈,电流串联反馈,电压串联反馈和电流并联反馈)
;负反馈的优点(降低放大器的增益灵敏度,改变输入电阻和输出电阻,改善放
大器的线性和非线性失真,有效地扩展放大器的通频带,自动调节作用)(未知
) 
6、放大电路的频率补偿的目的是什么,有哪些方法?(仕兰微电子) 
7、频率响应,如:怎么才算是稳定的,如何改变频响曲线的几个方法。(未知)
8、给出一个查分运放,如何相位补偿,并画补偿后的波特图。(凹凸) 
9、基本放大电路种类(电压放大器,电流放大器,互导放大器和互阻放大器),
优缺点,特别是广泛采用差分结构的原因。(未知) 
10、给出一差分电路,告诉其输出电压Y+和Y-,求共模分量和差模分量。(未知)
11、画差放的两个输入管。(凹凸) 
12、画出由运放构成加法、减法、微分、积分运算的电路原理图。并画出一个晶
体管级的 运放电路。(仕兰微电子) 
13、用运算放大器组成一个10倍的放大器。(未知) 
14、给出一个简单电路,让你分析输出电压的特性(就是个积分电路),并求输
出端某点 的  rise/fall时间。(Infineon笔试试题) 
15、电阻R和电容C串联,输入电压为R和C之间的电压,输出电压分别为C上电压和
R上电压,要求制这两种电路输入电压的频谱,判断这两种电路何为高通滤波器
,何为低通滤波器。当RC<<T时,给出输入电压波形图,绘制两种电路的输出波
形图。(未知) 
16、有源滤波器和无源滤波器的原理及区别?(新太硬件) 
17、有一时域信号S=V0sin(2pif0t)+V1cos(2pif1t)+V2sin(2pif3t+90),当其通过
低通、带通、高通滤波器后的信号表示方式。(未知) 
18、选择电阻时要考虑什么?(东信笔试题) 
19、在CMOS电路中,要有一个单管作为开关管精确传递模拟低电平,这个单管你
会用P管还是N管,为什么?(仕兰微电子) 
20、给出多个mos管组成的电路求5个点的电压。(Infineon笔试试题) 
21、电压源、电流源是集成电路中经常用到的模块,请画出你知道的线路结构,
简单描述 其优缺点。(仕兰微电子) 
22、画电流偏置的产生电路,并解释。(凹凸) 
23、史密斯特电路,求回差电压。(华为面试题) 
24、晶体振荡器,好像是给出振荡频率让你求周期(应该是单片机的,12分之一周期
....)  (华为面试题) 
25、LC正弦波振荡器有哪几种三点式振荡电路,分别画出其原理图。(仕兰微电
子) 
26、VCO是什么,什么参数(压控振荡器?) (华为面试题) 
27、锁相环有哪几部分组成?(仕兰微电子) 
28、锁相环电路组成,振荡器(比如用D触发器如何搭)。(未知) 
29、求锁相环的输出频率,给了一个锁相环的结构图。(未知) 
30、如果公司做高频电子的,可能还要RF知识,调频,鉴频鉴相之类,不一一列
举。(未知) 
31、一电源和一段传输线相连(长度为L,传输时间为T),画出终端处波形,考虑
传输线无损耗。给出电源电压波形图,要求绘制终端波形图。(未知) 
32、微波电路的匹配电阻。(未知) 
33、DAC和ADC的实现各有哪些方法?(仕兰微电子) 
34、A/D电路组成、工作原理。(未知) 
35、实际工作所需要的一些技术知识(面试容易问到)。如电路的低功耗,稳定,
高速如何做到,调运放,布版图注意的地方等等,一般会针对简历上你所写做过的
东西具体问,肯定会问得很细(所以别把什么都写上,精通之类的词也别用太多
了),这个东西各个人就不一样了,不好说什么了。(未知)
_______________________________________________________________________
                      数字电路 
1、同步电路和异步电路的区别是什么?(仕兰微电子) 
2、什么是同步逻辑和异步逻辑?(汉王笔试) 
同步逻辑是时钟之间有固定的因果关系。异步逻辑是各时钟之间没有固定的因果
关系。 
3、什么是"线与"逻辑,要实现它,在硬件特性上有什么具体要求?(汉王笔试)
线与逻辑是两个输出信号相连可以实现与的功能。在硬件上,要用oc门来实现,
由于不用 oc门可能使灌电流过大,而烧坏逻辑门。同时在输出端口应加一个上
拉电阻。 
4、什么是Setup 和Holdup时间?(汉王笔试) 
5、setup和holdup时间,区别.(南山之桥) 
6、解释setup time和hold time的定义和在时钟信号延迟时的变化。(未知) 
7、解释setup和hold time violation,画图说明,并说明解决办法。(威盛VIA
2003.11.06 上海笔试试题) 
Setup/hold time 是测试芯片对输入信号和时钟信号之间的时间要求。建立时间
是指触发器的时钟信号上升沿到来以前,数据稳定不变的时间。输入信号应提前
时钟上升沿(如上升沿有效)T时间到达芯片,这个T就是建立时间-Setup time.
如不满足setup time,这个数据就不能被这一时钟打入触发器,只有在下一个时钟
上升沿,数据才能被打入触发器。保持时间是指触发器的时钟信号上升沿到来以
后,数据稳定不变的时间。如果hold time 不够,数据同样不能被打入触发器。 
建立时间(Setup Time)和保持时间(Hold time)。建立时间是指在时钟边沿前,
数据信号需要保持不变的时间。保持时间是指时钟跳变边沿后数据信号需要保持
不变的时间。如果不满足建立和保持时间的话,那么DFF将不能正确地采样到数据
,将会出现 metastability的情况。如果数据信号在时钟沿触发前后持续的时间
均超过建立和保持时间,那么超过量就分别被称为建立时间裕量和保持时间裕量
。 
8、说说对数字逻辑中的竞争和冒险的理解,并举例说明竞争和冒险怎样消除。(
仕兰微 电子) 
9、什么是竞争与冒险现象?怎样判断?如何消除?(汉王笔试) 
在组合逻辑中,由于门的输入信号通路中经过了不同的延时,导致到达该门的时
间不一致叫竞争。产生毛刺叫冒险。如果布尔式中有相反的信号则可能产生竞争
和冒险现象。解决方法:一是添加布尔式的消去项,二是在芯片外部加电容。 
10、你知道那些常用逻辑电平?TTL与COMS电平可以直接互连吗?(汉王笔试) 
常用逻辑电平:12V,5V,3.3V;TTL和CMOS不可以直接互连,由于TTL是在0.3-
3.6V之间,而CMOS则是有在12V的有在5V的。CMOS输出接到TTL是可以直接互连。
TTL接到CMOS需要在输出端口加一上拉电阻接到5V或者12V。 
11、如何解决亚稳态。(飞利浦-大唐笔试) 
亚稳态是指触发器无法在某个规定时间段内达到一个可确认的状态。当一个触发
器进入亚 
稳态时,既无法预测该单元的输出电平,也无法预测何时输出才能稳定在某个正
确的电平 
上。在这个稳定期间,触发器输出一些中间级电平,或者可能处于振荡状态,并
且这种无 
用的输出电平可以沿信号通道上的各个触发器级联式传播下去。 
12、IC设计中同步复位与异步复位的区别。(南山之桥) 
13、MOORE 与 MEELEY状态机的特征。(南山之桥) 
14、多时域设计中,如何处理信号跨时域。(南山之桥) 
15、给了reg的setup,hold时间,求中间组合逻辑的delay范围。(飞利浦-大唐
笔试) 
Delay < period - setup – hold 
16、时钟周期为T,触发器D1的建立时间最大为T1max,最小为T1min。组合逻辑电
路最大延 
迟为T2max,最小为T2min。问,触发器D2的建立时间T3和保持时间应满足什么条件
。(华 
为) 
17、给出某个一般时序电路的图,有Tsetup,Tdelay,Tck->q,还有 clock的delay,
写出决 
定最大时钟的因素,同时给出表达式。(威盛VIA 2003.11.06 上海笔试试题) 
18、说说静态、动态时序模拟的优缺点。(威盛VIA 2003.11.06 上海笔试试题)
19、一个四级的Mux,其中第二级信号为关键信号如何改善timing。(威盛VIA  
2003.11.06 上海笔试试题) 
20、给出一个门级的图,又给了各个门的传输延时,问关键路径是什么,还问给
出输入, 
使得输出依赖于关键路径。(未知) 
21、逻辑方面数字电路的卡诺图化简,时序(同步异步差异),触发器有几种(
区别,优 
点),全加器等等。(未知) 
22、卡诺图写出逻辑表达使。(威盛VIA 2003.11.06 上海笔试试题) 
23、化简F(A,B,C,D)= m(1,3,4,5,10,11,12,13,14,15)的和。(威盛) 
24、please show the CMOS inverter schmatic,layout and its cross
sectionwith P- 
well process.Plot its transfer curve (Vout-Vin) And also explain the  
operation region of PMOS and NMOS for each segment of the transfer
curve? (威 
盛笔试题circuit design-beijing-03.11.09) 
25、To design a CMOS invertor with balance rise and fall time,please
define  
the ration of channel width of PMOS and NMOS and explain? 
26、为什么一个标准的倒相器中P管的宽长比要比N管的宽长比大?(仕兰微电子
) 
27、用mos管搭出一个二输入与非门。(扬智电子笔试) 
28、please draw the transistor level schematic of a cmos 2 input AND
gate and  
explain which input has faster response for output rising edge.(less
delay  
time)。(威盛笔试题circuit design-beijing-03.11.09) 
29、画出NOT,NAND,NOR的符号,真值表,还有transistor level的电路。
(Infineon笔 
试)  
30、画出CMOS的图,画出tow-to-one mux gate。(威盛VIA 2003.11.06 上海笔
试试题) 
31、用一个二选一mux和一个inv实现异或。(飞利浦-大唐笔试) 
32、画出Y=A*B+C的cmos电路图。(科广试题) 
33、用逻辑们和cmos电路实现ab+cd。(飞利浦-大唐笔试) 
34、画出CMOS电路的晶体管级电路图,实现Y=A*B+C(D+E)。(仕兰微电子) 
35、利用4选1实现F(x,y,z)=xz+yz’。(未知) 
36、给一个表达式f=xxxx+xxxx+xxxxx+xxxx用最少数量的与非门实现(实际上就
是化 
简)。 
37、给出一个简单的由多个NOT,NAND,NOR组成的原理图,根据输入波形画出各点
波形。 
(Infineon笔试) 
38、为了实现逻辑(A XOR B)OR (C AND D),请选用以下逻辑中的一种,并说
明为什 
么?1)INV   2)AND   3)OR   4)NAND   5)NOR   6)XOR  答案:NAND(未
知) 
39、用与非门等设计全加法器。(华为) 
40、给出两个门电路让你分析异同。(华为) 
41、用简单电路实现,当A为输入时,输出B波形为…(仕兰微电子) 
42、A,B,C,D,E进行投票,多数服从少数,输出是F(也就是如果A,B,C,D,E中1的
个数比0 
多,那么F输出为1,否则F为0),用与非门实现,输入数目没有限制。(未知) 
43、用波形表示D触发器的功能。(扬智电子笔试) 
44、用传输门和倒向器搭一个边沿触发器。(扬智电子笔试) 
45、用逻辑们画出D触发器。(威盛VIA 2003.11.06 上海笔试试题) 
46、画出DFF的结构图,用verilog实现之。(威盛) 
47、画出一种CMOS的D锁存器的电路图和版图。(未知) 
48、D触发器和D锁存器的区别。(新太硬件面试) 
49、简述latch和filp-flop的异同。(未知) 
50、LATCH和DFF的概念和区别。(未知) 
51、latch与register的区别,为什么现在多用register.行为级描述中latch如何
产生的。 
(南山之桥) 
52、用D触发器做个二分颦的电路.又问什么是状态图。(华为) 
53、请画出用D触发器实现2倍分频的逻辑电路?(汉王笔试) 
54、怎样用D触发器、与或非门组成二分频电路?(东信笔试) 
55、How many flip-flop circuits are needed to divide by 16?  (Intel) 16
分频? 
56、用filp-flop和logic-gate设计一个1位加法器,输入carryin和current-
stage,输出 
carryout和next-stage. (未知) 
57、用D触发器做个4进制的计数。(华为) 
58、实现N位Johnson Counter,N=5。(南山之桥) 
59、用你熟悉的设计方式设计一个可预置初值的7进制循环计数器,15进制的呢?
(仕兰 
微电子) 
60、数字电路设计当然必问Verilog/VHDL,如设计计数器。(未知) 
61、BLOCKING NONBLOCKING 赋值的区别。(南山之桥) 
62、写异步D触发器的verilog module。(扬智电子笔试) 
module dff8(clk , reset, d, q); 
input        clk; 
input        reset; 
input  [7:0] d; 
output [7:0] q; 
reg   [7:0] q; 
always @ (posedge clk or posedge reset) 
   if(reset) 
     q <= 0; 
   else 
     q <= d; 
endmodule 
63、用D触发器实现2倍分频的Verilog描述?(汉王笔试) 
module divide2( clk , clk_o, reset); 
   input     clk , reset; 
   output   clk_o; 
   wire in;  
reg out ; 
   always @ ( posedge clk or posedge reset) 
     if ( reset) 
       out <= 0; 
         else 
           out <= in; 
       assign in = ~out; 
       assign clk_o = out; 
     endmodule 
64、可编程逻辑器件在现代电子设计中越来越重要,请问:a) 你所知道的可编程
逻辑器 
件有哪些? b) 试用VHDL或VERILOG、ABLE描述8位D触发器逻辑。(汉王笔试) 
PAL,PLD,CPLD,FPGA。 
module dff8(clk , reset, d, q); 
input        clk; 
input        reset; 
input   d; 
output  q; 
reg q; 
always @ (posedge clk or posedge reset) 
   if(reset) 
     q <= 0; 
   else 
     q <= d; 
endmodule 
65、请用HDL描述四位的全加法器、5分频电路。(仕兰微电子) 
66、用VERILOG或VHDL写一段代码,实现10进制计数器。(未知) 
67、用VERILOG或VHDL写一段代码,实现消除一个glitch。(未知) 
68、一个状态机的题目用verilog实现(不过这个状态机画的实在比较差,很容易
误解 
的)。(威盛VIA 2003.11.06 上海笔试试题) 
69、描述一个交通信号灯的设计。(仕兰微电子) 
70、画状态机,接受1,2,5分钱的卖报机,每份报纸5分钱。(扬智电子笔试) 
71、设计一个自动售货机系统,卖soda水的,只能投进三种硬币,要正确的找回
钱 
数。       (1)画出fsm(有限状态机);(2)用verilog编程,语法要符合
fpga设计 
的要求。(未知) 
72、设计一个自动饮料售卖机,饮料10分钱,硬币有5分和10分两种,并考虑找零
:(1) 
画出fsm(有限状态机);(2)用verilog编程,语法要符合fpga设计的要求;(
3)设计 
工程中可使用的工具及设计大致过程。(未知) 
73、画出可以检测10010串的状态图,并verilog实现之。(威盛) 
74、用FSM实现101101的序列检测模块。(南山之桥) 
a为输入端,b为输出端,如果a连续输入为1101则b输出为1,否则为0。 
例如a: 0001100110110100100110 
       b: 0000000000100100000000 
    请画出state machine;请用RTL描述其state machine。(未知) 
75、用verilog/vddl检测stream中的特定字符串(分状态用状态机写)。(飞利
浦-大唐 
笔试) 
76、用verilog/vhdl写一个fifo控制器(包括空,满,半满信号)。(飞利浦-大
唐笔试) 
77、现有一用户需要一种集成电路产品,要求该产品能够实现如下功能:y=lnx,
其中,x 
为4位二进制整数输入信号。y为二进制小数输出,要求保留两位小数。电源电压
为3~5v假 
设公司接到该项目后,交由你来负责该产品的设计,试讨论该产品的设计全程。
(仕兰微 
电子) 
78、sram,falsh memory,及dram的区别?(新太硬件面试) 
79、给出单管DRAM的原理图(西电版《数字电子技术基础》作者杨颂华、冯毛官
205页图9 
-14b),问你有什么办法提高refresh time,总共有5个问题,记不起来了。(降
低温 
度,增大电容存储容量)(Infineon笔试) 
80、Please draw schematic of a common SRAM cell with 6
transistors,point out  
which nodes can store data and which node is word line control? (威盛
笔试题 
circuit design-beijing-03.11.09) 
81、名词:sram,ssram,sdram 
名词IRQ,BIOS,USB,VHDL,SDR 
IRQ:   Interrupt ReQuest 
BIOS:  Basic Input Output System 
USB:  Universal Serial Bus 
VHDL: VHIC Hardware Description Language 
SDR:  Single Data Rate 
  压控振荡器的英文缩写(VCO)。 
  动态随机存储器的英文缩写(DRAM)。 
名词解释,无聊的外文缩写罢了,比如PCI、ECC、DDR、interrupt、pipeline、 
IRQ,BIOS,USB,VHDL,VLSI VCO(压控振荡器) RAM (动态随机存储器),FIR IIR
DFT(离散 
傅立叶变换)或者是中文的,比如:a.量化误差  b.直方图  c.白平衡 
_______________________________________________________________________

文章引用自: http://www.blogcn.com/user82/yangbiaocn/index.html

系统分类: *话题
用户分类: 电子企业面试专题
标签: 面试技巧
来源: 转贴
发表评论 阅读全文(890) | 回复(1)

0

嵌入式开发—C语言面试题

发表于 2007-1-13 18:00:35
     IC设计基础(流程、工艺、版图、器件) 
1、我们公司的产品是集成电路,请描述一下你对集成电路的认识,列举一些与集
成电路 
相关的内容(如讲清楚模拟、数字、双极型、CMOS、MCU、RISC、CISC、DSP、
ASIC、FPGA 
等的概念)。(仕兰微面试题目) 
2、FPGA和ASIC的概念,他们的区别。(未知) 
答案:FPGA是可编程ASIC。 
ASIC:专用集成电路,它是面向专门用途的电路,专门为一个用户设计和制造的。
根据一 
个用户的特定要求,能以低研制成本,短、交货周期供货的全定制,半定制集成
电路。与 
门阵列等其它ASIC(Application Specific IC)相比,它们又具有设计开发周期短
、设计 
制造成本低、开发工具先进、标准产品无需测试、质量稳定以及可实时在线检验
等优点 
3、什么叫做OTP片、掩膜片,两者的区别何在?(仕兰微面试题目) 
4、你知道的集成电路设计的表达方式有哪几种?(仕兰微面试题目) 
5、描述你对集成电路设计流程的认识。(仕兰微面试题目) 
6、简述FPGA等可编程逻辑器件设计流程。(仕兰微面试题目) 
7、IC设计前端到后端的流程和eda工具。(未知) 
8、从RTL synthesis到tape out之间的设计flow,并列出其中各步使用的tool.(
未知) 
9、Asic的design flow。(威盛VIA 2003.11.06 上海笔试试题) 
10、写出asic前期设计的流程和相应的工具。(威盛) 
11、集成电路前段设计流程,写出相关的工具。(扬智电子笔试) 
先介绍下IC开发流程: 
1.)代码输入(design input) 
用vhdl或者是verilog语言来完成器件的功能描述,生成hdl代码 
语言输入工具:SUMMIT   VISUALHDL 
            MENTOR   RENIOR 
图形输入:    composer(cadence);  
            viewlogic (viewdraw) 
2.)电路仿真(circuit simulation) 
将vhd代码进行先前逻辑仿真,验证功能描述是否正确 
数字电路仿真工具: 
    Verolog:  CADENCE     Verolig-XL 
               SYNOPSYS    VCS 
               MENTOR      Modle-sim 
     VHDL :    CADENCE     NC-vhdl 
               SYNOPSYS    VSS 
               MENTOR      Modle-sim 
模拟电路仿真工具: 
               ***ANTI HSpice pspice,spectre micro microwave:  
eesoft : hp 
3.)逻辑综合(synthesis tools) 
逻辑综合工具可以将设计思想vhd代码转化成对应一定工艺手段的门级电路;将初
级仿真 中所没有考虑的门沿(gates delay)反标到生成的门级网表中,返回电路
仿真阶段进行再仿真。最终仿真结果生成的网表称为物理网表。 
12、请简述一下设计后端的整个流程?(仕兰微面试题目) 
13、是否接触过自动布局布线?请说出一两种工具软件。自动布局布线需要哪些
基本元 素?(仕兰微面试题目) 
14、描述你对集成电路工艺的认识。(仕兰微面试题目) 
15、列举几种集成电路典型工艺。工艺上常提到0.25,0.18指的是什么?(仕兰微
面试题 目) 
16、请描述一下国内的工艺现状。(仕兰微面试题目) 
17、半导体工艺中,掺杂有哪几种方式?(仕兰微面试题目) 
18、描述CMOS电路中闩锁效应产生的过程及最后的结果?(仕兰微面试题目) 
19、解释latch-up现象和Antenna effect和其预防措施.(未知) 
20、什么叫Latchup?(科广试题) 
21、什么叫窄沟效应? (科广试题) 
22、什么是NMOS、PMOS、CMOS?什么是增强型、耗尽型?什么是PNP、NPN?他们
有什么差 
别?(仕兰微面试题目) 
23、硅栅COMS工艺中N阱中做的是P管还是N管,N阱的阱电位的连接有什么要求?
(仕兰微 
面试题目) 
24、画出CMOS晶体管的CROSS-OVER图(应该是纵剖面图),给出所有可能的传输
特性和转 
移特性。(Infineon笔试试题) 
25、以interver为例,写出N阱CMOS的process流程,并画出剖面图。(科广试题) 
26、Please explain how we describe the resistance in semiconductor.
Compare  
the resistance of a metal,poly and diffusion in tranditional CMOS
process.(威 
盛笔试题circuit design-beijing-03.11.09) 
27、说明mos一半工作在什么区。(凹凸的题目和面试) 
28、画p-bulk 的nmos截面图。(凹凸的题目和面试) 
29、写schematic note(?),越多越好。(凹凸的题目和面试) 
30、寄生效应在ic设计中怎样加以克服和利用。(未知) 
31、太底层的MOS管物理特性感觉一般不大会作为笔试面试题,因为全是微电子物
理,公 
式推导太罗索,除非面试出题的是个老学究。IC设计的话需要熟悉的软件:
Cadence,  
Synopsys, Avant,UNIX当然也要大概会操作。 
32、unix 命令cp -r, rm,uname。(扬智电子笔试)
_______________________________________________________________________
____ 
                          单片机、MCU、计算机原理 
1、简单描述一个单片机系统的主要组成模块,并说明各模块之间的数据流流向和
控制流 
流向。简述单片机应用系统的设计原则。(仕兰微面试题目) 
2、画出8031与2716(2K*8ROM)的连线图,要求采用三-八译码器,8031的
P2.5,P2.4和 
P2.3参加译码,基本地址范围为3000H-3FFFH。该2716有没有重叠地址?根据是什
么?若 
有,则写出每片2716的重叠地址范围。(仕兰微面试题目) 
3、用8051设计一个带一个8*16键盘加驱动八个数码管(共阳)的原理图。(仕兰
微面试 
题目) 
4、PCI总线的含义是什么?PCI总线的主要特点是什么?(仕兰微面试题目) 
5、中断的概念?简述中断的过程。(仕兰微面试题目) 
6、如单片机中断几个/类型,编中断程序注意什么问题;(未知) 
7、要用一个开环脉冲调速系统来控制直流电动机的转速,程序由8051完成。简单
原理如 
下:由P3.4输出脉冲的占空比来控制转速,占空比越大,转速越快;而占空比由
K7-K0八 
个开关来设置,直接与P1口相连(开关拨到下方时为"0",拨到上方时为"1",组
成一个八 
位二进制数N),要求占空比为N/256。  (仕兰微面试题目) 
下面程序用计数法来实现这一功能,请将空余部分添完整。   
MOV P1,#0FFH   
LOOP1 :MOV R4,#0FFH   
--------   
MOV R3,#00H   
LOOP2 :MOV A,P1   
--------   
SUBB A,R3   
JNZ SKP1   
--------   
SKP1:MOV C,70H   
MOV P3.4,C   
ACALL DELAY :此延时子程序略   
--------   
--------   
AJMP LOOP1   
8、单片机上电后没有运转,首先要检查什么?(东信笔试题) 
9、What is PC Chipset? (扬智电子笔试) 
芯片组(Chipset)是主板的核心组成部分,按照在主板上的排列位置的不同,通
常分为 
北桥芯片和南桥芯片。北桥芯片提供对CPU的类型和主频、内存的类型和最大容量
、 
ISA/PCI/AGP插槽、ECC纠错等支持。南桥芯片则提供对KBC(键盘控制器)、RTC
(实时时 
钟控制器)、USB(通用串行总线)、Ultra DMA/33(66)EIDE数据传输方式和ACPI
(高级 
能源管理)等的支持。其中北桥芯片起着主导性的作用,也称为主桥(Host
Bridge)。 
  除了最通用的南北桥结构外,目前芯片组正向更高级的加速集线架构发展,
Intel的 
8xx系列芯片组就是这类芯片组的代表,它将一些子系统如IDE接口、音效、MODEM
和USB直 
接接入主芯片,能够提供比PCI总线宽一倍的带宽,达到了266MB/s。 
   10、如果简历上还说做过cpu之类,就会问到诸如cpu如何工作,流水线之类的
问题。 
(未知) 
11、计算机的基本组成部分及其各自的作用。(东信笔试题) 
12、请画出微机接口电路中,典型的输入设备与微机接口逻辑示意图(数据接口
、控制接 
口、所存器/缓冲器)。 (汉王笔试) 
13、cache的主要部分什么的。(威盛VIA 2003.11.06 上海笔试试题) 
14、同步异步传输的差异(未知) 
15、串行通信与同步通信异同,特点,比较。(华为面试题) 
16、RS232c高电平脉冲对应的TTL逻辑是?(负逻辑?) (华为面试题)
_______________________________________________________________________
____ 
                                     信号与系统 
1、的话音频率一般为300~3400HZ,若对其采样且使信号不失真,其最小的采样频
率应为 
多大?若采用8KHZ的采样频率,并采用8bit的PCM编码,则存储一秒钟的信号数据
量有多 
大?(仕兰微面试题目) 
2、什么耐奎斯特定律,怎么由模拟信号转为数字信号。(华为面试题) 
3、如果模拟信号的带宽为 5khz,要用8K的采样率,怎么办? (lucent) 两路? 
4、信号与系统:在时域与频域关系。(华为面试题) 
5、给出时域信号,求其直流分量。(未知) 
6、给出一时域信号,要求(1)写出频率分量,(2)写出其傅立叶变换级数;(
3)当波 
形经过低通滤波器滤掉高次谐波而只保留一次谐波时,画出滤波后的输出波形。
(未知) 
7、sketch 连续正弦信号和连续矩形波(都有图)的傅立叶变换。(Infineon笔试
试题) 
8、拉氏变换和傅立叶变换的表达式及联系。(新太硬件面题)
_______________________________________________________________________
__ 
                               DSP、嵌入式、软件等 
1、请用方框图描述一个你熟悉的实用数字信号处理系统,并做简要的分析;如果
没有, 
也可以自己设计一个简单的数字信号处理系统,并描述其功能及用途。(仕兰微
面试题 
目) 
2、数字滤波器的分类和结构特点。(仕兰微面试题目) 
3、IIR,FIR滤波器的异同。(新太硬件面题) 
4、拉氏变换与Z变换公式等类似东西,随便翻翻书把如.h(n)=-a*h(n-1)+b*δ(n)
a.求h 
(n)的z变换;b.问该系统是否为稳定系统;c.写出FIR数字滤波器的差分方程;(
未知) 
5、DSP和通用处理器在结构上有什么不同,请简要画出你熟悉的一种DSP结构图。
(信威 
dsp软件面试题) 
6、说说定点DSP和浮点DSP的定义(或者说出他们的区别)(信威dsp软件面试题
) 
7、说说你对循环寻址和位反序寻址的理解.(信威dsp软件面试题) 
8、请写出【-8,7】的二进制补码,和二进制偏置码。用Q15表示出0.5和-0.5.
(信威 
dsp软件面试题) 
9、DSP的结构(哈佛结构);(未知) 
10、嵌入式处理器类型(如ARM),操作系统种类(Vxworks,ucos,winCE,linux),
操作系 
统方面偏CS方向了,在CS篇里面讲了;(未知) 
11、有一个LDO芯片将用于对手机供电,需要你对他进行评估,你将如何设计你的
测试项 
目? 
12、某程序在一个嵌入式系统(200M CPU,50M SDRAM)中已经最优化了,换到零
一个系 
统(300M CPU,50M SDRAM)中是否还需要优化?(Intel)  
13、请简要描述HUFFMAN编码的基本原理及其基本的实现方法。(仕兰微面试题目
) 
14、说出OSI七层网络协议中的四层(任意四层)。(仕兰微面试题目) 
15、A)  (仕兰微面试题目) 
#i nclude   
void testf(int*p)   
{   
*p+=1;   
}   
main()   
{   
int *n,m[2];   
n=m;   
m[0]=1;   
m[1]=8;   
testf(n);   
printf("Data value is %d ",*n);   
}   
------------------------------   
B)   
#i nclude   
void testf(int**p)   
{   
*p+=1;   
}   
main()   
{int *n,m[2];   
n=m;   
m[0]=1;   
m[1]=8;   
testf(&n);   
printf(Data value is %d",*n);   
}   
下面的结果是程序A还是程序B的?   
Data value is 8   
那么另一段程序的结果是什么?   
16、那种排序方法最快? (华为面试题) 
17、写出两个排序算法,问哪个好?(威盛) 
18、编一个简单的求n!的程序。(Infineon笔试试题) 
19、用一种编程语言写n!的算法。(威盛VIA 2003.11.06 上海笔试试题) 
20、用C语言写一个递归算法求N!;(华为面试题)  
21、给一个C的函数,关于字符串和数组,找出错误;(华为面试题)  
22、防火墙是怎么实现的? (华为面试题) 
23、你对哪方面编程熟悉?(华为面试题) 
24、冒泡排序的原理。(新太硬件面题) 
25、操作系统的功能。(新太硬件面题) 
26、学过的计算机语言及开发的系统。(新太硬件面题) 
27、一个农夫发现围成正方形的围栏比长方形的节省4个木桩但是面积一样.羊的
数目和正方形围栏的桩子的个数一样但是小于36,问有多少羊?(威盛) 
28、C语言实现统计某个cell在某.v文件调用的次数(这个题目真bt) (威盛VIA  
2003.11.06 上海笔试试题) 
29、用C语言写一段控制手机中马达振子的驱动程序。(威胜) 
30、用perl或TCL/Tk实现一段字符串识别和比较的程序。(未知) 
31、给出一个堆栈的结构,求中断后显示结果,主要是考堆栈压入返回地址存放
在低端地 址还是高端。(未知) 
32、一些DOS命令,如显示文件,拷贝,删除。(未知) 
33、设计一个类,使得该类任何形式的派生类无论怎么定义和实现,都无法产生
任何对象 实例。(IBM) 
34、What is pre-emption? (Intel) 
35、What is the state of a process if a resource is not available?
(Intel) 
36、三个 float a,b,c;问值(a+b)+c==(b+a)+c, (a+b)+c==(a+c)+b。(Intel)
  
37、把一个链表反向填空。  (lucent) 
38、x^4+a*x^3+x^2+c*x+d 最少需要做几次乘法? (Dephi)
_______________________________________________________________________
_____ 
                                  主观题 
1、你认为你从事研发工作有哪些特点?(仕兰微面试题目) 
2、说出你的最大弱点及改进方法。(威盛VIA 2003.11.06 上海笔试试题) 
3、说出你的理想。说出你想达到的目标。题目是英文出的,要用英文回答。(
威盛VIA  2003.11.06 上海笔试试题)
4、我们将研发人员分为若干研究方向,对协议和算法理解(主要应用在网络通信
、图象语音压缩方面)、电子系统方案的研究、用MCU、DSP编程实现电路功能、
用ASIC设计技术设计电路(包括MCU、DSP本身)、电路功能模块设计(包括模拟
电路和数字电路)、集成电路后端设计(主要是指综合及自动布局布线技术)、
集成电路设计与工艺接口的研究。
你希望从事哪方面的研究?(可以选择多个方向。另外,已经从事过相关研发的
人员可以详细描述你的研发经历)。(仕兰微面试题目)
5、请谈谈对一个系统设计的总体思路。针对这个思路,你觉得应该具备哪些方面
的知 识?(仕兰微面试题目)
6、设想你将设计完成一个电子电路方案。请简述用EDA软件(如PROTEL)进行设
计(包括原理图和PCB图)到调试出样机的整个过程。在各环节应注意哪些问题
?电源的稳定,电容的选取,以及布局的大小。(汉王笔试)
共同的注意点
1.一般情况下,面试官主要根据你的简历提问,所以一定要对自己负责,把简历
上的东西搞明白;
2.个别招聘针对性特别强,就招目前他们确的方向的人,这种情况下,就要投其
所好,尽 量介绍其所关心的东西。
3.其实技术面试并不难,但是由于很多东西都忘掉了,才觉得有些难。所以最好
在面试前 把该看的书看看。
4.虽然说技术面试是实力的较量与体现,但是不可否认,由于不用面试官/公司所
专领域及爱好不同,也有面试也有很大的偶然性,需要冷静对待。不能因为被拒
,就否认自己或 责骂公司。
5.面试时要take it easy,对越是自己钟情的公司越要这样。
系统分类: *话题
用户分类: 电子企业面试专题
标签: 面试技巧
来源: 转贴
发表评论 阅读全文(906) | 回复(0)

0

嵌入式开发—C语言面试题

发表于 2007-1-13 17:56:34
[转贴]IT知名企业常见面试题实例与详解
一、 通用面试例题分析

1. 在学校里你学习了哪些课程,成绩如何?

答:首先看看计算机专业的课程:系统原理、微机原理、汇编语言、网络基础、Visual Basic编程、SQL、HTML语言、高等数学……基本上以对计算机科学结构性、设计性的课程为主。然后是自动化专业,这张课表上少了汇编语言等系统基础的课程,增加了POWER BUILDER、NT Sever等网络方面的内容,毕竟现在的自动化与网络密不可分。而信息管理工程专业的课程就显然偏重应用的色彩。除VB、VC编程语言的课程外,Windows、Photoshop、Flash/Firework/Dreamweaver网页制作工具等课程也赫然在目。4b5ce2fe28&copy;应届生求职网YingJieSheng.COM&copy;261cbd5717

2. 想着手编写一个程序,在整个开发过程中,其中包含了大量细节,并推荐了许多步骤和文档,那么,时刻提醒自己注意的是什么问题?整个过程是什么?

答:时刻提醒自己注意的问题是:

(1) 对象是什么?(怎样将自己的项目分割成一系列单独的组件?)5a880faf6f&copy;应届生求职网YingJieSheng.COM&copy;c350ade2a4

(2) 它们的接口是什么?(需要将什么消息发给每一个对象?)

整个过程可划分为四个阶段,阶段0刚刚开始采用某些形式的结构。

阶段0:拟出一个计划2e2d7fbdea&copy;应届生求职网YingJieSheng.COM&copy;63a9a786b6

第一步是决定在后面的过程中采取哪些步骤。

在这个阶段,可能要决定一些必要的附加处理结构。在整个过程中设置几个标志,或者“路标”,将更有益于你集中注意力。经过了一个接一个的路标以后,可对自己的进度有清晰的把握。

阶段1:要制作什么?6fe97759aa&copy;应届生求职网YingJieSheng.COM&copy;b922cfa312

在上一代程序设计中(即“过程化或程序化设计”),这个阶段称为“建立需求分析和系统规格”。应尽可能总结出自己系统的一套完整的“使用条件”或者“应用场合”。

阶段2:如何构建?

在这一阶段,必须拿出一套设计方案,并解释其中包含的各类对象在外观上是什么样子,以及相互间是如何沟通的。f062936a96&copy;应届生求职网YingJieSheng.COM&copy;86607aa54c

阶段3:开始创建

全面的思考、周密的准备、良好的构造不仅使程序更易构建与调试,也使其更易理解和维护,而那正是一套软件赢利的必要条件。

构建好系统,并令其运行起来后,必须进行实际检验,以前做的那些需求分析和系统规格便可派上用场了。全面地考察自己的程序,确定提出的所有要求均已满足。现在一切似乎都该结束了?5568161a8c&copy;应届生求职网YingJieSheng.COM&copy;d5792c152c

阶段4:校订

第一次做的东西并不完善,所以需为自己留下一个深入学习、认知的空间,再回过头去作一些改变”。对于要解决的问题,随着对它的学习和了解愈加深入,可能需要作出大量改动。进行这些工作的一个动力是随着不断的改革优化,终于能够从自己的努力中得到回报,无论这需要经历一个较短还是较长的时期,达到理想的状态。

3. 什么是UML?8e8850243b&copy;应届生求职网YingJieSheng.COM&copy;8aa0d594fc

答:是一种能够描述问题、描述解决方案、起沟通作用的语言。这就是UML。

UML(Unified Modeling Language 统一建模语言)是由Rational公司发明,目前由OMG(标准化对象管理机构)维护。作为一种建模语言,UML的定义包括UML语义和UML表示法两个部分:

UML语义4005f8da13&copy;应届生求职网YingJieSheng.COM&copy;60d149af1f

描述基于UML的精确元模型定义。元模型为UML的所有元素在语法和语义上提供了简单、一致、通用的定义性说明,使开发者能在语义上取得一致,消除了因人而异的最佳表达方法所造成的影响。此外UML还支持对元模型的扩展定义。

UML表示法

定义UML符号的表示法,为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。这些图形符号和文字所表达的是应用级的模型,在语义上它是UML元模型的实例。标准建模语言UML的重要内容可以由下列五类图(共9种图形)来定义:用例图、静态图、行为图、交互图、实现图。e0327ad868&copy;应届生求职网YingJieSheng.COM&copy;e0bcd30097

从应用的角度看,当采用面向对象技术设计系统时,首先是描述需求;其次根据需求建立系统的静态模型,以构造系统的结构;第三步是描述系统的行为。其中在第一步与第二步中所建立的模型都是静态的,包括用例图、类图(包含包)、对象图、组件图和配置图等五个图形,是标准建模语言UML的静态建模机制。其中第三步中所建立的模型或者可以执行,或者表示执行时的时序状态或交互关系。它包括状态图、活动图、顺序图和合作图等四个图形,是标准建模语言UML的动态建模机制。因此,标准建模语言UML的主要内容也可以归纳为静态建模机制和动态建模机制两大类。

4. 什么是软件重用?

答:软件重用(Reuse)是软件工程中最重要的思想之一,只有软件重用,才能降低软件成本,提高软件的质量。你在对一个软件进行分析的时候,找出可以重用的对象,有助于你开发高效的软件系统。正如前面所说的,你不必把软件分析的过分细致,你只需从中找出关键性的、能够重用的对象就足够了。剩下的事情,就是对这些对象分配属性和方法,并充分的使用这些对象就好了。8f07f89ddb&copy;应届生求职网YingJieSheng.COM&copy;4c20a920bf

1) 编写项目视图和范围文档

系统的需求包括四个不同的层次:业务需求、用户需求和功能需求、非功能性需求。

2) 用户群分类cdcd5072bb&copy;应届生求职网YingJieSheng.COM&copy;036ebd0562

用户分成不同的用户类。与UML中Usecase的Actor概念一样,用户类不一定都指人,也可以包括其他应用系统、接口或者硬件,这样做使得与系统边界外的接口也成为系统需求。

3) 选择用户代表

4) 建立核心队伍ea6328a42e&copy;应届生求职网YingJieSheng.COM&copy;4c65f8a52f

5) 确定使用实例

6) 召开联合会议

7) 分析用户工作流程f4c10bf22a&copy;应届生求职网YingJieSheng.COM&copy;652dd80fca

8) 确定质量属性

9) 检查问题报告

10) 需求重用3f027327d8&copy;应届生求职网YingJieSheng.COM&copy;e85d8ecacd

5. 谈谈CMMI的起源

答:随着人们对CMM研究的不断深入,其他学科也结合本系统的特点,陆续推出了自己的CMM模型。例如,人力资源能力成熟度模型、系统工程能力成熟度模型等等:

(1) SW-CMM (Software CMM) 软件CMM7260ae62e3&copy;应届生求职网YingJieSheng.COM&copy;6292a10b0e

(2) SE-CMM (System Engineering CMM) 系统工程CMM

(3) SA-CMM (Software Acquisition CMM) 软件采购CMM

(4) IPT-CMM (Integrated Product Team CMM) 集成产品群组CMMb794217348&copy;应届生求职网YingJieSheng.COM&copy;92ff12784d

(5) P-CMM (People CMM) 人力资源能力成熟度模型

为了以示区别,国内外很多资料把CMM叫做SW-CMM。

6. ERP是个什么概念?778dfaecdc&copy;应届生求职网YingJieSheng.COM&copy;dbe242ca3b

答:本世纪90年代初,美国著名的IT分析公司Gartner Group Inc根据当时计算机信息处理技术IT(Information Technology)的发展和企业对供应链管理的需要,对信息时代以后制造业管理信息系统的发展趋势和即将发生的变革作了预测,提出了企业资源计划ERP(Enterprise Resources Planning)这个概念。

7. ERP系统与MRP-Ⅱ的区别是什么?

答:ERP是在MRP-Ⅱ基础上进一步发展起来的企业管理信息系统,为了进一步理解ERP系统的概念及其主要功能,需要弄清ERP与MRP-Ⅱ之间的区别。 e76fc52277&copy;应届生求职网YingJieSheng.COM&copy;2555b7c98f

1) 在资源管理范围方面的差别

MRP-Ⅱ主要侧重对企业内部人、财、物等资源的管理,ERP系统提出了供应链(Supply Chain)的概念,即把客户需求和企业内部的制造活动以及供应商的制造资源整合在一起,并对供应链上的所有环节进行有效管理,这些五一节包括订单、采购、库存、计划、生产制造、质量控制、运输、分销、服务与维护、财务管理、人事管理、实验室管理、项目管理、配方管理等。

2) 在生产方式管理方面的差别 754ba1c09b&copy;应届生求职网YingJieSheng.COM&copy;2400da7143

MRP-Ⅱ系统把企业归类为几种典型的生产方式来进行管理,如重复制造、批量生产、按订单生产、按订单装配、按库存生产等,针对每一种类型都有一套管理标准。而在80年代末、90年代初期,企业为了紧跟市场的变化,多品种、小批量生产以及看板式生产成为企业主要采用的生产方式,而ERP则能很好地支持和管理这种混合型制造环境,满足了企业多元化经营需求。

3) 在管理功能方面的差别

ERP除了MRP-Ⅱ系统的制造、分销、财务管理功能外,还增加了支持整各个环节之间的运输管理和仓库管理;支持生产保障体系的质量管理、实验室管理、设备维修和备品备件管理;支持对工作流(业务处理流程)的管理。 a126b2f4b2&copy;应届生求职网YingJieSheng.COM&copy;3e5415eb55

4) 在事务处理控制方面的差别

MRP-Ⅱ是通过计划的及时滚动来控制整个生产过程,它的实时性较差,一般只有实现事中控制。而ERP系统支持在线分析处理OLAP(Online Analytical Processing)、售后服务及质量反馈,强调企业的事前控制能力,它可以将设计、制造、销售、运输等通过集成来并行地进行各种相关的作业,为企业提供了对质量、适应变化、客户满意、效绩等关键问题的实时分析能力。

此外,在MRP-Ⅱ中,财务系统只是一个信息的归结者,它的功能是将供、产、销中的数量信息转变为价值信息,是物流的价值反映。而ERP系统则将财务计划功能和价值控制功能集成到整个供应链上,如在生产计划系统中,除了保留原有的主生产计划、物料需求计划和能力计划外还扩展了销售执行计划SOP和利润计划。6e7929b125&copy;应届生求职网YingJieSheng.COM&copy;afddbe1c45

5) 在跨国(或地区)经营事务处理方面的差别

现代企业的发展,使得企业内部各个组织单元之间、企业与外部的业务单元之间的协调变得越来越多和越来越重要,ERP系统运用完善的组织架构,从而可以支持跨国经营的多国家地区、多工厂、多语种、多币制应用需求。

6) 在计算机信息处理技术方面的差别cbf4caaed3&copy;应届生求职网YingJieSheng.COM&copy;17fda73c03

随着IT技术的飞速发展,网络通信技术的应用,使得ERP系统的以实现对整个供应链信息进行集成管理。ERP系统应用客户/服务器(C/S)体系结构和分布式数据处理技术,支持Internet/Intranet/Extranet、电子商务(E-busincss,E-commerce)、电子数据交换EDI,此外,还能实现在不同平台上的互操作。我们就讨论了“路标”的概念,当你的第一个路标达成之后,剩下的应该都是属于校订的事了。通过和用户的交互,确定新的“路标”,不断的改进系统功能,优化系统结构,修正系统Bug。

通过使用WWF,你可以创建基于处理器流的工作流并且把它们部署在任何类型的.NET应用程序中。此外,本文还讨论了ASP.NET开发者面对的一些特有的问题-这些问题可能通过使用工作流得到解决,如维持状态和页面导航等。

8. WWF,Windows工作流基础是什么?14875e45bb&copy;应届生求职网YingJieSheng.COM&copy;57d84ec662

答:在2005年9月,微软在它的一年两次的专业开发者会议上公开了Windows Workflow Foundation(WWF,Windows工作流基础)。作为WinFX API的支柱之一,WWF提供给开发者一个普通框架-在其上开发过程驱动的和以工作流为中心的应用程序。

当前,有些组织力图把整个商业过程自动化;他们的标准答案就是集合一队开发者来开发相应的代码。尽管这种方式对于这些组织带来良好的作用,然而也有一些固有的问题。为了深入理解这一问题,你需要理解一个工作流的基本特征。

一个工作流本质是一种方法-用来归档包含在完成一个单元的工作中的活动。典型地,在处理过程中,工作"流"流过一项或更多活动。这些活动可以通过机器或人工来实现,并且有可能象在一个互联网应用程序定义页面顺序一样得简单,也有可能象管理必须为任何数目的人都要看到、更改并同意的文件或产品一样得复杂。976aab5298&copy;应届生求职网YingJieSheng.COM&copy;5ebbcd3a1b

因为如此多的工作流程必须考虑到人工参预,所以可能需要花费很长工期才能完成,时间可能为几小时到数月或更长。例如,参预在该过程中的人可能无法找到,不在本地或忙于另外的任务;因此,工作流必须在所有非活动期间能够把自身持续性存储。而且,通过编码独立实现的过程可能对非技术人员难于理解而对开发者却难于更改。这一点和其它一些因素正是例如Windows WF等通用工作流框架的目标-其目的就在于使创建、改变和管理工作流更容易-这是通过向它们提供一个可视化接口或通过定义一组普通API来实现的。

你可以把WWF工作流放置在任何类型的.NET应用程序中-包括Windows表单程序,控制台应用程序,Windows服务和ASP.NET Web应用程序。每种类型都需要专门的考虑。尽管一些现有示例已经足够说明如何把工作流宿主到Windows表单程序和控制台应用程序中,但是本文将集中于讨论ASP.NET开发者的问题-他们希望把工作流集成到自己的应用程序中。

Windows WF和MVC模式:在开发一个ASP.NET应用程序时,你可能使用WWF的一个普通的方法是实现一种模型-视图-控制器(MVC)方法。实质上,MVC的目标是把描述层、应用程序逻辑和应用程序流逻辑分离开来。44a3365a46&copy;应届生求职网YingJieSheng.COM&copy;13c8261511

搞清楚这个将十分有益于一个ASP.NET应用程序的开发,请考虑一个帮助桌面票工作流的场所。假定有一个商业用户通过填写一个ASP.NET Web表单并点击一个提交按钮来启动该工作流。接下来,服务器就会通知一个使用Windows表单应用程序和帮助桌面的雇员—“有新票可用了”。该帮助桌面雇员然后将在这一问题上工作,并在最后关闭该票。如果使用Windows WF来开发这个工作流情形,那么所有的处理逻辑和流程可以被包含在工作流本身,而该ASP.NET应用程序将完全不需要了解这一逻辑。

这种场所提供了一些稳固的证据-把描述与逻辑相分离是一件好事情。因为这个处理帮助桌面请求的过程是非常普通的,如果使用C#或VB.NET代码在若干不同的.NET应用程序中实现这一逻辑,那么你将会冒着重复编码的危险甚至更坏的情形--用完全不同的代码导致同样的商业处理过程的不同实现。但是如果你使用WWF来实现这一过程,那么需要这一过程的应用程序开发者将仅需在一处修改这些步骤-工作流本身-而不必担心这样会改变应用程序逻辑。代码复制和在哪里实现该过程可以通过Windows WF的使用来加以缓和。

当使用Windows WF在ASP.NET中实现MVC架构时,开发者应该尝试构建独立于应用程序的工作流-而该工作流仍然宿主于该应用程序中。这将有助于保持逻辑独立于描述并且保持在该Web应用程序中的工作步骤顺序和页面流之间的高度独立性。65e6e1edc0&copy;应届生求职网YingJieSheng.COM&copy;c241e73e84

一个WWF开发新手可能试图用一固定数目的活动以某种顺序去开发一个工作流,然后开发一组ASP.NET Web表单--这些表单以与之相同的顺序从一个表单流向另一个表单。很遗憾,尽管这看上去挺符合逻辑,但是实际上这是非常不具有生产效率的,因为你将会再次实现这个工作流逻辑。Web页面X不需要知道是否它需要转到页面Y或页面Z来正确地实现该工作流步骤。代之的是,该工作流(模型)应该告诉ASP.NET(控制器)下一步该干什么;然后ASP.NET应该决定要显示哪个页面。这样,每个页面几乎不需要了解整个过程;它仅需要知道怎样完成一个不同的活动并且让该工作流来关心页面是如何从一处流向另一处的。这种分离在开发者处理页面流时带来了一种极大的灵活性。例如,如果你决定改变该页面显示顺序,那么你可以从工作流中容易地实现这一点,而不需要改变该ASP.NET应用程序中的一行代码。

9. 陈述一下软件架构的概念

答:软件架构(software architecture)是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。 软件架构是一个系统的草图。软件架构描述的对象是直接构成系统的抽象组件。各个组件之间的连接则明确和相对细致地描述组件之间的通讯。在实现阶段,这些抽象组件被细化为实际的组件,比如具体某个类或者对象。在面向对象领域中,组件之间的连接通常用接口_(计算机科学)来实现。68b6edd301&copy;应届生求职网YingJieSheng.COM&copy;7473b74f32

软件体系结构是构建计算机软件实践的基础。与建筑师设定建筑项目的设计原则和目标,作为绘图员画图的基础一样,一个软件架构师或者系统架构师陈述软件构架以作为满足不同客户需求的实际系统设计方案的基础。

软件构架是一个容易理解的概念,多数工程师(尤其是经验不多的工程师)会从直觉上来认识它,但要给出精确的定义很困难。特别是,很难明确地区分设计和构架:构架属于设计的一方面,它集中于某些具体的特征。

在“软件构架简介”中,David GArlan 和 Mary Shaw 认为软件构架是有关如下问题的设计层次:“在计算的算法和数据结构之外,设计并确定系统整体结构成为了新的问题。结构问题包括总体组织结构和全局控制结构;通信、同步和数据访问的协议;设计元素的功能分配;物理分布;设计元素的组成;定标与性能;备选设计的选择。”[GS93]94728bc39a&copy;应届生求职网YingJieSheng.COM&copy;6dea6e2210

但构架不仅是结构;IEEE Working Group on Architecture 把其定义为“系统在其环境中的最高层概念”[IEEE98]。构架还包括“符合”系统完整性、经济约束条件、审美需求和样式。它并不仅注重对内部的考虑,而且还在系统的用户环境和开发环境中对系统进行整体考虑,即同时注重对外部的考虑。

在 Rational Unified ProcESs 中,软件系统的构架(在某一给定点)是指系统重要构件的组织或结构,这些重要构件通过接口与不断减小的构件与接口所组成的构件进行交互。

从和目的、主题、材料和结构的联系上来说,软件架构可以和建筑物的架构相比拟。一个软件架构师需要有广泛的软件理论知识和相应的经验来事实和管理软件产品的高级设计。软件架构师定义和设计软件的模块化,模块之间的交互,用户界面风格,对外接口方法,创新的设计特性,以及高层事物的对象操作、逻辑和流程。fc03eb9ded&copy;应届生求职网YingJieSheng.COM&copy;0b322dacbb

10. 软件系统的架构(ArchitECture)有两个要素是什么?

答:

1) 它是一个软件系统从整体到部分的最高层次的划分。c49eb8f757&copy;应届生求职网YingJieSheng.COM&copy;e6b7bd168a

一个系统通常是由元件组成的,而这些元件如何形成、相互之间如何发生作用,则是关于这个系统本身结构的重要信息。

详细地说,就是要包括架构元件(Architecture Component)、联结器(Connector)、任务流(TASk-flow)。所谓架构元素,也就是组成系统的核心"砖瓦",而联结器则描述这些元件之间通讯的路径、通讯的机制、通讯的预期结果,任务流则描述系统如何使用这些元件和联结器完成某一项需求。

2) 建造一个系统所作出的最高层次的、以后难以更改的,商业的和技术的决定。a57b0395e1&copy;应届生求职网YingJieSheng.COM&copy;ccaa938134

在建造一个系统之前会有很多的重要决定需要事先作出,而一旦系统开始进行详细设计甚至建造,这些决定就很难更改甚至无法更改。显然,这样的决定必定是有关系统设计成败的最重要决定,必须经过非常慎重的研究和考察。

卡内基梅隆大学和加州大学埃尔文分校在这个领域作了很多研究。卡内基·梅隆大学的Mary Shaw和David Garlan于1996年写了一本叫做 Software Architecture perspective on an emerging DIscipline的书,提出了软件架构中的很多概念,例如软件组件、连接器、风格等等。 加州大学埃尔文分校的软件研究院所做的工作则主要集中于架构风格、架构描述语言以及动态架构。

11. 架构的目标是什么f9020d2abe&copy;应届生求职网YingJieSheng.COM&copy;7ebe61b7aa

答:要达到如下的目标:

·可靠性(Reliable)。软件系统对于用户的商业经营和管理来说极为重要,因此软件系统必须非常可靠。

·安全行(Secure)。软件系统所承担的交易的商业价值极高,系统的安全性非常重要。ccbdb62ec9&copy;应届生求职网YingJieSheng.COM&copy;1cf9f0fcd1

·可扩展性(SCAlable)。软件必须能够在用户的使用率、用户的数目增加很快的情况下,保持合理的性能。只有这样,才能适应用户的市场扩展得可能性。

·可定制化(CuSTomizable)。同样的一套软件,可以根据客户群的不同和市场需求的变化进行调整。

·可扩展性(Extensible)。在新技术出现的时候,一个软件系统应当允许导入新技术,从而对现有系统进行功能和性能的扩展7a99787bd1&copy;应届生求职网YingJieSheng.COM&copy;6721579732

·可维护性(MAIntainable)。软件系统的维护包括两方面,一是排除现有的错误,二是将新的软件需求反映到现有系统中去。一个易于维护的系统可以有效地降低技术支持的花费

·客户体验(Customer Experience)。软件系统必须易于使用。

·市场时机(Time to Market)。软件用户要面临同业竞争,软件提供商也要面临同业竞争。以最快的速度争夺市场先机非常重要。e1cc6bb9f0&copy;应届生求职网YingJieSheng.COM&copy;b0bf7b01d4

12. 什么是构架风格

答:软件构架(或仅是构架视图)可以具有名为构架风格的属性,该属性减少了可选的形式,并使构架具有一定程度的一致性。样式可以通过一组模式或通过选择特定构件或连接器作为基本构件来定义。对给定系统,某些样式可作为构架描述的一部分记录在构架风格指南(Rational Unified Process 中设计指南文档的一部分)中。样式在构架的可理解性与完整性方面起着主要的作用。

13. 什么是构架设计图 ?有哪些组成?74270fd093&copy;应届生求职网YingJieSheng.COM&copy;ffef459384

答:构架视图的图形描述称为构架设计图。对于以上描述的各种视图,设计图由以下统一建模语言图组成 [UML99]:

逻辑视图:类图、状态机和对象图。

进程视图:类图与对象图(包括任务 - 进程与线程)。9d8a121ce5&copy;应届生求职网YingJieSheng.COM&copy;9a2c9e2e99

实施视图:构件图。

部署视图:配置图。

用例视图:用例图描述用例、主角和普通设计类;顺序图描述设计对象及其协作关系。d7dbbb00f9&copy;应届生求职网YingJieSheng.COM&copy;4bc016b14b

14. 谈谈构架设计流程。

答:在 Rational Unified Process 中,构架主要是分析设计工作流程的结果。当项目再次进行此工作流程时,构架将在一次又一次迭代中不断演化、改进、精炼。由于每次迭代都包括集成和测试,所以在交付产品时,构架就相当强壮了。构架是精化阶段各次迭代的重点,构架的基线通常会在此阶段结束时确定。

http://www.blog.edu.cn/user3/skywalkzf/archives/2007/1613826.shtml

系统分类: *话题
用户分类: 电子企业面试专题
标签: 面试
来源: 转贴
发表评论 阅读全文(771) | 回复(0)

1

嵌入式开发—C语言面试题

发表于 2007-1-13 17:55:12
[转帖]16个经典面试问题回答思路
面试过程中,面试官会向应聘者发问,而应聘者的回答将成为面试官考虑是否接受他的重
要依据。对应聘者而言,了解这些问题背后的“猫腻”至关重要。本文对面试中经常出现
的一些典型问题进行了整理,并给出相应的回答思路和参考答案。读者无需过分关注分析
的细节,关键是要从这些分析中“悟”出面试的规律及回答问题的思维方式,达到“活学
活用”。

  问题一:“请你自我介绍一下”

  思路: 1、这是面试的必考题目。 2、介绍内容要与个人简历相一致。 3、表述方式
上尽量口语化。 4、要切中要害,不谈无关、无用的内容。 5、条理要清晰,层次要分明
。6、事先最好以文字的形式写好背熟。

  问题二:“谈谈你的家庭情况”

  思路:1、 况对于了解应聘者的性格、观念、心态等有一定的作用,这是招聘单位问
该问题的主要原因。 2、 简单地罗列家庭人口。 3、 宜强调温馨和睦的家庭氛围。 4、
宜强调父母对自己教育的重视。 5、 宜强调各位家庭成员的良好状况。 6、 宜强调家庭
成员对自己工作的支持。 7、 宜强调自己对家庭的责任感。

  问题三:“你有什么业余爱好?”

  思路: 1、 业余爱好能在一定程度上反映应聘者的性格、观念、心态,这是招聘单位
问该问题的主要原因。 2、 最好不要说自己没有业余爱好。 3、 不要说自己有那些庸俗
的、令人感觉不好的爱好。 4、 最好不要说自己仅限于读书、听音乐、上网,否则可能令
面试官怀疑应聘者性格孤僻。 5、 最好能有一些户外的业余爱好来“点缀”你的形象。

  问题四:“你最崇拜谁?”

  思路: 1、 最崇拜的人能在一定程度上反映应聘者的性格、观念、心态,这是面试官
问该问题的主要原因。 2、 不宜说自己谁都不崇拜。 3、 不宜说崇拜自己。 4、 不宜说
崇拜一个虚幻的、或是不知名的人。 5、 不宜说崇拜一个明显具有负面形象的人。 6、
所崇拜的人人最好与自己所应聘的工作能“搭”上关系。 7、 最好说出自己所崇拜的人的
哪些品质、哪些思想感染着自己、鼓舞着自己。

  问题五:“你的座右铭是什么?”

  思路: 1、座右铭能在一定程度上反映应聘者的性格、观念、心态,这是面试官问这
个问题的主要原因。 2、不宜说那些医引起不好联想的座右铭。 3、不宜说那些太抽象的
座右铭。 4、不宜说太长的座右铭。 5、座右铭最好能反映出自己某种优秀品质。 6、 参
考答案——“只为成功找方法,不为失败找借口”

  问题六:“谈谈你的缺点”

  思路: 1、 不宜说自己没缺点。 2、 不宜把那些明显的优点说成缺点。 3、 不宜说
出严重影响所应聘工作的缺点。 4、 不宜说出令人不放心、不舒服的缺点。 5、 可以说
出一些对于所应聘工作“无关紧要”的缺点,甚至是一些表面上看是缺点,从工作的角度
看却是优点的缺点。

  问题七:“谈一谈你的一次失败经历”

  思路: 1、 不宜说自己没有失败的经历。 2、 不宜把那些明显的成功说成是失败。
3、 不宜说出严重影响所应聘工作的失败经历, 4、 所谈经历的结果应是失败的。 5、
宜说明失败之前自己曾信心白倍、尽心尽力。 6、 说明仅仅是由于外在客观原因导致失
败。 7、 失败后自己很快振作起来,以更加饱满的热情面对以后的工作。

  问题八:“你为什么选择我们公司?”

  思路: 1、 面试官试图从中了解你求职的动机、愿望以及对此项工作的态度。 2、
建议从行业、企业和岗位这三个角度来回答。 3、 参考答案——“我十分看好贵公司所在
的行业,我认为贵公司十分重视人才,而且这项工作很适合我,相信自己一定能做好。”

  问题九:“对这项工作,你有哪些可预见的困难?”

  思路: 1、 不宜直接说出具体的困难,否则可能令对方怀疑应聘者不行。 2、 可以
尝试迂回战术,说出应聘者对困难所持有的态度——“工作中出现一些困难是正常的,也
是难免的,但是只要有坚忍不拔的毅力、良好的合作精神以及事前周密而充分的准备,任
何困难都是可以克服的。”

  问题十:“如果我录用你,你将怎样开展工作”

  思路: 1、 如果应聘者对于应聘的职位缺乏足够的了解,最好不要直接说出自己开展
工作的具体办法, 2、 可以尝试采用迂回战术来回答,如“首先听取领导的指示和要求,
然后就有关情况进行了解和熟悉,接下来制定一份近期的工作计划并报领导批准,最后根
据计划开展工作。”

  问题十一:“与上级意见不一是,你将怎么办?”

  思路: 1、 一般可以这样回答“我会给上级以必要的解释和提醒,在这种情况下,我
会服从上级的意见。” 2、 如果面试你的是总经理,而你所应聘的职位另有一位经理,且
这位经理当时不在场,可以这样回答:“对于非原则性问题,我会服从上级的意见,对于
涉及公司利益的重大问题,我希望能向更高层领导反映。”

  问题十二:“我们为什么要录用你?”

  思路: 1、 应聘者最好站在招聘单位的角度来回答。 2、 招聘单位一般会录用这样
的应聘者:基本符合条件、对这份共组感兴趣、有足够的信心。 3、 如“我符合贵公司的
招聘条件,凭我目前掌握的技能、高度的责任感和良好的饿适应能力及学习能力 ,完全能
胜任这份工作。我十分希望能为贵 公司服务,如果贵公司给我这个机会,我一定能成为贵
公司的栋梁!”

  问题十三:“你能为我们做什么?”

  思路: 1、 基本原则上“投其所好”。 2、 回答这个问题前应聘者最好能“先发制
人”,了解招聘单位期待这个职位所能发挥的作用。 3、 应聘者可以根据自己的了解,结
合自己在专业领域的优势来回答这个问题。

  问题十四:“你是应届毕业生,缺乏经验,如何能胜任这项工作?”

  思路: 1、 如果招聘单位对应届毕业生的应聘者提出这个问题,说明招聘单位并不真
正在乎“经验”,关键看应聘者怎样回答。 2、 对这个问题的回答最好要体现出应聘者的
诚恳、机智、果敢及敬业。 3、 如“作为应届毕业生,在工作经验方面的确会有所欠缺,
因此在读书期间我一直利用各种机会在这个行业里做兼职。我也发现,实际工作远比书本
知识丰富、复杂。但我有较强的责任心、适应能力和学习能力,而且比较勤奋,所以在兼
职中均能圆满完成各项工作,从中获取的经验也令我受益非浅。请贵公司放心,学校所学
及兼职的工作经验使我一定能胜任这个职位。”

  问题十五:“你希望与什么样的上级共事?”

  思路: 1、 通过应聘者对上级的“希望”可以判断出应聘者对自我要求的意识,这既
上一个陷阱,又上一次机会。 2、 最好回避对上级具体的希望,多谈对自己的要求。 3、
如“做为刚步入社会新人,我应该多要求自己尽快熟悉环境、适应环境,而不应该对环境
提出什么要求,只要能发挥我的专长就可以了。”

  问题十六:“您在前一家公司的离职原因是什么?”

  思路: 1、 最重要的是:应聘者要使找招聘单位相信,应聘者在过往的单位的“离职
原因”在此家招聘单位里不存在。 2、 避免把“离职原因”说得太详细、太具体。

系统分类: *话题
用户分类: 电子企业面试专题
标签: 16个经典面试问题回答思路
来源: 转贴
发表评论 阅读全文(790) | 回复(0)

0

嵌入式开发—C语言面试题

发表于 2007-1-13 17:53:35
[转贴]电子类面试题目
诺基亚面试题目(电子类)

********************************************************************************************************
说明:
1、笔试共分两部分:第一部分为基础篇(必答题);第二部分为专业篇(选答题)。
2、应聘芯片设计岗位的同学请以书面形式回答问题并附简历参加应聘面试。
3、如不能参加现场招聘的同学,请将简历和答卷邮寄或发e-mail的形式(请注明应聘标题)给我们,以便我们对您作出客观、全面的评价。
********************************************************************************************************
第一部分:基础篇
(该部分共有试题8题,为必答题,每位应聘者按自己对问题的理解去回答,尽可能多回答你所知道的内容。若不清楚就写不清楚)。

1、我们公司的产品是集成电路,请描述一下你对集成电路的认识,列举一些与集成电路相关的内容(如讲清楚模拟、数字、双极型、CMOS、MCU、RISC、CISC、DSP、ASIC、FPGA等的概念)。

2、你认为你从事研发工作有哪些特点?

3、基尔霍夫定理的内容是什么?

4、描述你对集成电路设计流程的认识。

5、描述你对集成电路工艺的认识。

6、你知道的集成电路设计的表达方式有哪几种?

7、描述一个交通信号灯的设计。

8、我们将研发人员分为若干研究方向,对协议和算法理解(主要应用在网络通信、图象语音压缩方面)、电子系统方案的研究、用MCU、DSP编程实现电路功能、用ASIC设计技术设计电路(包括MCU、DSP本身)、电路功能模块设计(包括模拟电路和数字电路)、集成电路后端设计(主要是指综合及自动布局布线技术)、集成电路设计与工艺接口的研究。
    你希望从事哪方面的研究?(可以选择多个方向。另外,已经从事过相关研发的人员可以详细描述你的研发经历)。

第二部分:专业篇
(根据你选择的方向回答以下你认为相关的专业篇的问题。一般情况下你只需要回答五道题以上,但请尽可能多回答你所知道的,以便我们了解你的知识结构及技术特点。)

1、 请谈谈对一个系统设计的总体思路。针对这个思路,你觉得应该具备哪些方面的知识?

2、现有一用户需要一种集成电路产品,要求该产品能够实现如下功能:y=lnx,其中,x为4位二进制整数输入信号。y为二进制小数输出,要求保留两位小数。电源电压为3~5v假设公司接到该项目后,交由你来负责该产品的设计,试讨论该产品的设计全程。

3、简单描述一个单片机系统的主要组成模块,并说明各模块之间的数据流流向和控制流流向。简述单片机应用系统的设计原则。

4、请用方框图描述一个你熟悉的实用数字信号处理系统,并做简要的分析;如果没有,也可以自己设计一个简单的数字信号处理系统,并描述其功能及用途。

5、画出8031与2716(2K*8ROM)的连线图,要求采用三-八译码器,8031的P2.5,P2.4和P2.3参加译码,基本地址范围为3000H-3FFFH。该2716有没有重叠地址?根据是什么?若有,则写出每片2716的重叠地址范围。

6、用8051设计一个带一个8*16键盘加驱动八个数码管(共阳)的原理图。

7、PCI总线的含义是什么?PCI总线的主要特点是什么?

8、请简要描述HUFFMAN编码的基本原理及其基本的实现方法。

9、说出OSI七层网络协议中的四层(任意四层)。

10、中断的概念?简述中断的过程。

11、说说对数字逻辑中的竞争和冒险的理解,并举例说明竞争和冒险怎样消除。

12、要用一个开环脉冲调速系统来控制直流电动机的转速,程序由8051完成。简单原理如下:由P3.4输出脉冲的占空比来控制转速,占空比越大,转速越快;而占空比由K7-K0八个开关来设置,直接与P1口相连(开关拨到下方时为"0",拨到上方时为"1",组成一个八位二进制数N),要求占空比为N/256。
  下面程序用计数法来实现这一功能,请将空余部分添完整。

   MOV P1,#0FFH
   LOOP1 :MOV R4,#0FFH
   --------
   MOV R3,#00H
   LOOP2 :MOV A,P1
   --------
   SUBB A,R3
   JNZ SKP1
   --------
   SKP1:MOV C,70H
   MOV P3.4,C
   ACALL DELAY :此延时子程序略
   --------
   --------
   AJMP LOOP1

13、用你熟悉的设计方式设计一个可预置初值的7进制循环计数器,15进制的呢?

14、请用HDL描述四位的全加法器、5分频电路。

15、简述FPGA等可编程逻辑器件设计流程。

16、同步电路和异步电路的区别是什么?

17、电压源、电流源是集成电路中经常用到的模块,请画出你知道的线路结构,简单描述其优缺点。

18、描述反馈电路的概念,列举他们的应用。19、放大电路的频率补偿的目的是什么,有哪些方法?

20、画出CMOS电路的晶体管级电路图,实现Y=A.B+C(D+E)

21、请分析如下电路所实现的功能。

22、A)
  #i nclude
  void testf(int*p)
  {
  *p+=1;
  }
  main()
  {
  int *n,m[2];
  n=m;
  m[0]=1;
  m[1]=8;
  testf(n);
  printf("Data value is %d ",*n);
  }
  ------------------------------
  B)
  #i nclude
  void testf(int**p)
  {
  *p+=1;
  }
  main()
  {int *n,m[2];
  n=m;
  m[0]=1;
  m[1]=8;
  testf(&n);
  printf(Data value is %d",*n);
  }
  下面的结果是程序A还是程序B的?
  Data value is 8
  那么另一段程序的结果是什么?

23、用简单电路实现,当A为输入时,输出B波形为:A: B:
24、LC正弦波振荡器有哪几种三点式振荡电路,分别画出其原理图。
25、锁相环有哪几部分组成?
26、人的话音频率一般为300~3400HZ,若对其采样且使信号不失真,其最小的采样频率应为多大?若采用8KHZ的采样频率,并采用8bit的PCM编码,则存储一秒钟的信号数据量有多大?
27、在CMOS电路中,要有一个单管作为开关管精确传递模拟低电平,这个单管你会用P管还是N管,为什么?
28、画出由运放构成加法、减法、微分、积分运算的电路原理图。并画出一个晶体管级的运放电路。
29、数字滤波器的分类和结构特点。
30、DAC和ADC的实现各有哪些方法?
31、描述CMOS电路中闩锁效应产生的过程及最后的结果?
32、什么叫做OTP片、掩膜片,两者的区别何在?
33、列举几种集成电路典型工艺。工艺上常提到0.25,0.18指的是什么?
34、请描述一下国内的工艺现状。
35、请简述一下设计后端的整个流程?
36、有否接触过自动布局布线?请说出一两种工具软件。自动布局布线需要哪些基本元素?
37、半导体工艺中,掺杂有哪几种方式?
38、什么是NMOS、PMOS、CMOS?什么是增强型、耗尽型?什么是PNP、NPN?他们有什么差别?
39、为什么一个标准的倒相器中P管的宽长比要比N管的宽长比大?
40、硅栅COMS工艺中N阱中做的是P管还是N管,N阱的阱电位的连接有什么要求?

汉王笔试 
1、下面是一些基本的数字电路知识问题,请简要回答之。
a) 什么是Setup 和Holdup时间?

Setup/hold time 是测试芯片对输入信号和时钟信号之间的时间要求。建立时间是指触发器的时钟信号上升沿到来以前,数据稳定不变的时间。输入信号应提前时钟上升沿(如上升沿有效)T时间到达芯片,这个T就是建立时间-Setup time。如不满足setup time,这个数据就不能被这一时钟打入触发器,只有在下一个时钟上升沿,数据才能被打入触发器。
      保持时间是指触发器的时钟信号上升沿到来以后,数据稳定不变的时间。如果holdtime不够,数据同样不能被打入触发器。
b) 什么是竞争与冒险现象?怎样判断?如何消除?
c) 请画出用D触发器实现2倍分频的逻辑电路?
d) 什么是"线与"逻辑,要实现它,在硬件特性上有什么具体要求?
e) 什么是同步逻辑和异步逻辑?
f) 请画出微机接口电路中,典型的输入设备与微机接口逻辑示意图(数据接口、控制接口、所存器/缓冲器)。
g) 你知道那些常用逻辑电平?TTL与COMS电平可以直接互连吗?
2、 可编程逻辑器件在现代电子设计中越来越重要,请问:
a) 你所知道的可编程逻辑器件有哪些?
b) 试用VHDL或VERILOG、ABLE描述8位D触发器逻辑。
3、 设想你将设计完成一个电子电路方案。请简述用EDA软件(如PROTEL)进行设计(包括原理图和PCB图)到调试出样机的整个过程。在各环节应注意哪些问题?

飞利浦-大唐笔试
1、用逻辑们和cmos电路实现ab+cd
2、用一个二选一mux和一个inv实现异或
3、给了reg的setup,hold时间,求中间组合逻辑的delay范围。
4. 如何解决亚稳态
5. 用verilog/vhdl写一个fifo控制器
6. 用verilog/vddl检测stream中的特定字符串

信威dsp软件面试题 
1)DSP和通用处理器在结构上有什么不同,请简要画出你熟悉的一种DSP结构图
2)说说定点DSP和浮点DSP的定义(或者说出他们的区别)
3)说说你对循环寻址和位反序寻址的理解
4)请写出【-8,7】的二进制补码,和二进制偏置码。用Q15表示出0.5和-0.5

扬智电子笔试 
第一题:用mos管搭出一个二输入与非门。
第二题:集成电路前段设计流程,写出相关的工具。
第三题:名词IRQ,BIOS,USB,VHDL,SDR
第四题:unix 命令cp -r, rm,uname
第五题:用波形表示D触发器的功能
第六题:写异步D触发器的verilog module
第七题:What is PC Chipset?
第八题:用传输门和倒向器搭一个边沿触发器
第九题:画状态机,接受1,2,5分钱的卖报机,每份报纸5分钱。

华为面试题
研发(硬件)
全都是几本模电数电信号单片机题目
1.用与非门等设计全加法器
2.给出两个门电路让你分析异同
3.名词:sram,ssram,sdram
4.信号与系统:在时域与频域关系
5.信号与系统:和4题差不多
6.晶体振荡器,好像是给出振荡频率让你求周期(应该是单片机的,12分之一周期....)
7.串行通信与同步通信异同,特点,比较
8.RS232c高电平脉冲对应的TTL逻辑是?(负逻辑?)
9.延时问题,判错
10.史密斯特电路,求回差电压
11.VCO是什么,什么参数(压控振荡器?)
12. 用D触发器做个二分颦的电路.又问什么是状态图
13. 什么耐奎斯特定律,怎么由模拟信号转为数字信号
14. 用D触发器做个4进制的计数
15.那种排序方法最快?
16.时钟周期为T,触发器D1的建立时间最大为T1max,最小为T1min。组合逻辑电路最大延
迟为T2max,最小为T2min。问,触发器D2的建立时间T3和保持时间应满足什么条件。

研发(软件)
用C语言写一个递归算法求N!;
给一个C的函数,关于字符串和数组,找出错误;
防火墙是怎么实现的?
你对哪方面编程熟悉?

新太硬件
(1)d触发器和d锁存器的区别
(2)有源滤波器和无源滤波器的原理及区别
(3)sram,falsh memory,及dram的区别?
(4)iir,fir滤波器的异同
(5)冒泡排序的原理
(6)操作系统的功能
(7)学过的计算机语言及开发的系统
(8)拉氏变换和傅立叶变换的表达式及联系。