這是某嵌入式開發公司的一套面試題,很顯然對于嵌入式工程師來說這都是"小菜",那么您可以測試一下,這樣會對公司出的面試題不那么恐懼...
一、選擇題
1.下述程序執行后的輸出結果是
#include
main()
{
int x='f';
printf("%c\n",'a'+(x-'a'+1));
}
A.g
B.h
C.i
D.j
參考答案:A
2.下列程序代碼在Linux系統執行后"*"會被輸出多少次()
void main()
{
int i;
for(i=0;i<3;i++)
{
fork();
printf("*\n");
}
return;
}
A.14
B.16
C.30
D.32
參考答案:A
3.下面有關孤兒進程和僵尸進程的描述,說法錯誤的是?
A.孤兒進程:一個父進程退出,而它的一個或多個子進程還在運行,那么那些子進程將成為孤兒進程。
B.僵尸進程:一個進程使用fork創建子進程,如果子進程退出,而父進程并沒有調用wait或waitpid獲取子進程的狀態信息,那么子進程的進程描述符仍然保存在系統中。這種進程稱之為僵死進程。
C.孤兒進程將被init進程(進程號為1)所收養,并由init進程對它們完成狀態收集工作。
D.孤兒進程和僵尸進程都可能使系統不能產生新的進程,都應該避免
參考答案:D
4.假如你需要找出/etc/my.conf文件屬于哪個包(package),你可以執行:()
A.rpm -requires/etc/my.conf
B.rpm -q/etc/my.conf
C.rpm -q|grep /etc/my.conf
D.rpm -qf /etc/my.conf
參考答案:D
5.表達式 strcmp( " 3.14 "," 3.278 " ) 的值是一個
A.非零整數
B.浮點數
C.0
D.字符
參考答案:A
6.調用recv(int sockfd, void *buf, size_t len, int flags)的過程中,一共進行了幾次內存復制操作?
A.1
B.2
C.3
D.4
參考答案:B
7.打印一個N*N的方陣,N為每邊字符的個數( 3〈N〈20 ),要求外層為"X",第二層為"Y",從第三層起每層依次打印數字0,1,2,3,...
例子:當N =5,打印出下面的圖形:
A.X X X X X
B.X Y Y Y X
C.X Y 0 Y X
D.X Y Y Y X
參考答案:X X X X X
8.設#define N 3
#define Y(n) ((N+1)*n)
則表達式2*(N+Y(5+1))的值是
A.42
B.48
C.54
D.出錯
參考答案:B
二、簡答題
1、關鍵字const有什么含意?
2、.h頭文件中的ifndef/define/endif?的作用?
3、多態類中的虛函數表是Compile-Time,還是Run-Time時建立的?
參考答案:
1、表示常量不可以修改的變量。
2、防止該頭文件被重復引用。
3、虛擬函數表是在編譯期就建立了,各個虛擬函數這時被組織成了一個虛擬函數的入口地址的數組。而對象的隱藏成員--虛擬函數表指針是在運行期--也就是構造函數被調用時進行初始化的,這是實現多態的關鍵。