筆試題目是根據(jù)公司的定義情況和崗位的情況進行的。接下來CN人才網(wǎng)小編為您整理了關(guān)于嵌入式軟件筆試題目,歡迎您閱讀!
嵌入式軟件筆試題目
1、將一個字符串逆序
2、將一個鏈表逆序
3、計算一個字節(jié)里(byte)里面有多少bit被置1
4、搜索給定的字節(jié)(byte)
5、在一個字符串中找到可能的最長的子字符串
6、字符串轉(zhuǎn)換為整數(shù)
7、整數(shù)轉(zhuǎn)換為字符串
1.什么是平衡二叉樹?編寫一個刪除平衡二叉樹的程序?
2.寫一個程序,求有向有權(quán)圖兩點之間的最小權(quán)?
3.根據(jù)你的理解,寫出Cstring類的構(gòu)造函數(shù)和析構(gòu)函數(shù)?
4.使用C語言實現(xiàn)對ini文件的訪問,使程序可以對int,double,字符串類進行讀寫。
5.n×n個方格(n為任意整數(shù)),定義若兩個格有公共邊則稱兩個格相鄰。現(xiàn)將 個格中的N個格子圖黑,使每個格子都與黑格子相鄰。試編程,使N最小。
1.static變量和static 函數(shù)各有什么特點?
3.描述一下嵌入式基于ROM的運行方式基于ram的運行方式有什么區(qū)別。
4.task 有幾種狀態(tài)?
5.task 有幾種通訊方式?
6.C函數(shù)允許重入嗎?
7.嵌入式操作系統(tǒng)和通用操作系統(tǒng)有什么差別?
一面,技術(shù)面
(1)VxWorks、uc/OS、Palm嵌入式系統(tǒng)操作系統(tǒng)的區(qū)別?
(2)做嵌入式軟件開發(fā)和普通桌面軟件開發(fā)有什么區(qū)別?
(3)c語言問題,union和struct 的區(qū)別?
(4)sizeof(一大堆變量),如果用這個函數(shù)分配內(nèi)存的大小一定與定義相同嗎?
(5)解釋什么是優(yōu)先級反轉(zhuǎn)。
Can structures be passed to the functions by value?
Why cannot arrays be passed by values to functions?
Advantages and disadvantages of using macro and inline functions?
What happens when recursion functions are declared inline?
Scope of static variables?
Difference between object oriented and object based languages?
Multiple inheritance – objects contain howmany multiply inherited ancestor?
What are the 4 different types of inheritance relationship?
How would you find out the no of instance of a class?
Is java a pure object oriented language? Why?
Order of constructor and destructor call in case of multiple inheritance?
Can u have inline virtual functions in a class?
When you inherit a class using private keyword which members of base class are visible to the derived class?
What is the output of printf(“\nab\bcd\ref”); -> ef
#define cat(x,y) x##y concatenates x to y. But cat(cat(1,2),3) does not expand but gives preprocessor warning. Why?
Can you have constant volatile variable? Yes, you can have a volatile pointer?
++*ip increments what? it increments what ip points to
Operations involving unsigned and signed – unsigned will be converted to signed
a+++b -> (a++)+b
malloc(sizeof(0)) will return – valid pointer
main() {fork();fork();fork();printf(“hello world”); } – will print 8 times.
Array of pts to functions – void (*fptr[10])()
Which way of writing infinite loops is more efficient than others? there are 3ways.
# error – what it does?
How is function itoa() written?
Who to know wether systemuses big endian or little endian format and how to convert among them?
What is interrupt latency?
What is forward reference w.r.t. pointers in c?
How is generic list manipulation function written which accepts elements of any kind?
What is the difference between hard real-time and soft real-time OS?
What is interrupt latency? How can you recuce it?
What is the differnce between embedded systems and the system in which rtos is running?
How can you define a structure with bit field members?
What are the features different in pSOS and vxWorks?
How do you write a function which takes 2 arguments – a byte and a field in the byte and returns the value of the field in that byte?
What are the different storage classes in C?
What are the different qualifiers in C?
What are the different BSD and SVR4 communication mechanisms
一位資深的嵌入式項目經(jīng)理曾這樣對我說:搞嵌入式要往下走,要搞底層要搞算法,因為它們比較有前途。
Embedded firmware interview questions
1.Write function in C that gets array of chars, and search for the longest sequence of repeatedly 1 bits. It returns the the first bit place in the sequence and the number of 1 bits in the sequence. – (a) loop of 2^0, 2^1, … , 2^7 is done with 1<
2.You have 16bit register that increment itself and loops about every second. When the register reach 0xffff it will issue an interupt and will run the function update_time(). There is a function unsigned long get_time() that returns the time. You need to implement the two functions. – (a) You need to count every interrupt in order to save the number of seconds. (b) The counter will be the 16bit MSB, and the actual register will be 16bit LSB. (c) If the register will be at ~0xfff0, you will return MSB that is not correct, because you will read the counter, then interrupt will accure and increment by one. Now you have counter that is not correct. (d) You need to check for the (c) problem, and if you catch the problem, you need to read once again the register and the counter before you return them. You depend on the fact the you have about another second until the register will loop.