c語言開(kai)發面試題(ti)總結
時(shi)間(jian):2018-08-29 來(lai)源:未知
嵌(qian)入式(shi)開(kai)發(fa)學習(xi)(xi)的(de)(de)(de)人(ren)(ren)據(ju)調(diao)查,每年都有20%的(de)(de)(de)人(ren)(ren)去學嵌(qian)入式(shi)開(kai)發(fa),可以(yi)說是(shi)(shi)很(hen)多的(de)(de)(de),對于(yu)嵌(qian)入式(shi)學習(xi)(xi)來(lai)說,最(zui)(zui)為基礎的(de)(de)(de)就是(shi)(shi)C語(yu)言(yan)了,而c語(yu)言(yan)也是(shi)(shi)很(hen)多公司面試時最(zui)(zui)常見的(de)(de)(de),出現(xian)的(de)(de)(de)面試題(ti)的(de)(de)(de)次數(shu)也是(shi)(shi)最(zui)(zui)多的(de)(de)(de)了,在這(zhe)里總結(jie)了一些常出現(xian)的(de)(de)(de)c開(kai)發(fa)面試題(ti),大部分是(shi)(shi)華三的(de)(de)(de)面試題(ti)哦,可以(yi)收藏來(lai)學習(xi)(xi)哦
1.關于結(jie)構的(de)大小(xiao),以下描(miao)述(shu)正確的(de)有(you)()
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;
}; };
結構struct A_S的大小是(shi)6
結構(gou)struct B_S的(de)大小是(shi)12
聯合union C_U的大(da)小是12
聯合union D_U的大小是12
2.關于以下代碼,描述正確的有()
代(dai)碼(ma)Ⅰ: 代(dai)碼(ma)Ⅲ
const char * pcStr=”abcdefg”; char*pcStr=”abcdefg”
pcStr[3]=”a”;
代碼Ⅱ:
void string_sizeof(char szStr1[10]) 代碼Ⅳ
{ 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;
}
代碼(ma)Ⅰ,const修(xiu)飾符表明pcStr指針不能再次被賦(fu)值,也就是(shi)說(shuo)不能指向其他緩沖區.
代碼Ⅱ,程(cheng)序的運行結果是“4,10”.
代(dai)碼Ⅲ,對pcStr[3]的賦值會導致(zhi)程序訪問非(fei)法地址.
代碼Ⅳ,打印unsigned int時不應該使用“%s”,會導(dao)致(zhi)程序(xu)訪問(wen)非法地址。
3.以(yi)下語句中,能(neng)夠(gou)判斷uiNum(unsigned int)可(ke)以(yi)被8整除的(de)有( )
If (((uiNum / 8)*8)== uiNum)
if ((uiNum % 8)== 1)
if ((uiNum &θ×θ7) ==θ)
if (((uiNum >> 3) << 3 )==uiNum )
4.編程題
數(shu)據(ju)的節(jie)點定義如下(xia)面的tagData所列,該數(shu)據(ju)節(jie)點有兩個(ge)索引值,分別是index1和index2,請編寫程序(xu),有如下(xia)要求(qiu):
1)據上下文,由于需要分別以(yi)(yi)index1和index2索引查找,請建立兩個單向鏈表,分別以(yi)(yi)index1和index2,索引值(zhi)唯一,且均為從小到大
2)提(ti)供增加節點(dian)(dian)的函數和(he)刪除(chu)節點(dian)(dian)的操作(zuo),請注意增加和(he)刪除(chu)節點(dian)(dian)的操作(zuo)均會(hui)影(ying)響這兩個(ge)鏈表。
3)刪除(chu)操作數據是依(yi)據index2刪除(chu)的
/*節點數據*/
typedef struct tagData
{
Int index1;
Int index2;
Int iData;
}NODE_S;
/*Description:鏈(lian)表初始化*/void init( );
/*De scription:加入節點(dian)*/void add( int index1,int index2,int iData);
/*De scription:刪除節點(dian)*/void delete( int index2 );
請寫冒泡排(pai)序算法,a指向(xiang)數(shu)組(zu)第一個元素,n為(wei)數(shu)組(zu)長度
Bubble_sort(int*a,int n)

