c開發經典面試題集合(he)
時間:2018-08-14 來源(yuan):未知
學嵌入式找工作,面試最重要,下面是我在文思海輝公司面試時遇到的一些c開發面試題,都是我之前面試時見過的,很常見,都可以看看給自己充充電。
1.關于結構的(de)大小,以下描(miao)述正確的(de)有()
struct A_S struct B_S
{ {
unsigned short us1; unsigned char uc1;
unsigned short us2; unsigned int uc2;
unsigned short us3; unsigned short us3;
}; };
struct C_S struct D_S
{ {
unsigned int ui1 unsigned char uc2;
unsigned char uc2; unsigned short us3;
unsigned short us3; unsigned int ui1;
}; };
A.結(jie)構struct A_S的(de)大小是(shi)6
B.結構struct B_S的大小是12
C.聯(lian)合(he)union C_U的大小是(shi)12
D.聯合union D_U的大小是(shi)12
2.關(guan)于以(yi)下(xia)代碼,描述正確的有()
代碼(ma)(ma)Ⅰ: 代碼(ma)(ma)Ⅲ
const char * pcStr=”abcdefg”; char*pcStr=”abcdefg”
pcStr[3]=”a”;
代碼Ⅱ:
void string_sizeof(char szStr1[10]) 代(dai)碼Ⅳ
{ unsigned int uiA=100;
char szStr2[10]=”12345”; printf(“%s\r\n,”, uiA);
printf(“%u,”, sizeof(szStr1));
printf(“%u\r\n,”, sizeof(szStr2));
return;
}
Int main( )
{
string_ sizeof =(”12345”);
return 0;
}
A. 代碼Ⅰ,const修飾符表明pcStr指針不能(neng)再次被賦值(zhi),也就是(shi)說(shuo)不能(neng)指向其他緩沖區(qu).
B. 代碼(ma)Ⅱ,程序的運(yun)行(xing)結果是(shi)“4,10”.
C. 代碼Ⅲ,對pcStr[3]的(de)賦值會導致程序訪問(wen)非法地址.
D. 代碼Ⅳ,打印unsigned int時不(bu)應該使用“%s”,會導(dao)致(zhi)程序訪問非法地址。
3.以下語句中,能夠判斷(duan)uiNum(unsigned int)可以被8整除的有( )
A、If (((uiNum / 8)*8)== uiNum)
B、if ((uiNum % 8)== 1)
C、if ((uiNum &θ×θ7) ==θ)
D、if (((uiNum >> 3) << 3 )==uiNum )
編程題
數據的(de)節(jie)點定(ding)義如(ru)下(xia)面的(de)tagData所列,該數據節(jie)點有兩個索引值(zhi),分別是index1和(he)index2,請編寫程序,有如(ru)下(xia)要求:
1)據上(shang)下文(wen),由于需要分別以(yi)index1和index2索引查(cha)找,請建立兩個單向鏈表,分別以(yi)index1和index2,索引值(zhi)唯一(yi),且均為從小到大
2)提供增(zeng)加節(jie)點的函(han)數和刪除節(jie)點的操作,請注意增(zeng)加和刪除節(jie)點的操作均會影響這兩(liang)個鏈表。
3)刪除操作數據(ju)是依據(ju)index2刪除的
/*節點數據*/
typedef struct tagData
{
Int index1;
Int index2;
Int iData;
}NODE_S;
/*Description:鏈(lian)表(biao)初始化(hua)*/void init( );
/*De scription:加入節點*/void add( int index1,int index2,int iData);
/*De scription:刪(shan)除節點*/void delete( int index2 );
請寫冒泡排(pai)序算(suan)法(fa),a指向數組第一個元素,n為數組長度
Bubble_sort(int*a,int n)

