版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、嵌入式軟件筆試TOC o 1-5 h z/2#2#2#2#2#2#V卜VVrjJwVChapterl語法類2#2#2#2#/rjwrrwrfwrywrjw%rjwrjwrjrjw%rjrjw%rjw/1.volatile作用?應(yīng)用場合舉3例volatile修飾的變量表示這個(gè)變量可能會被意想不到的改變,對該變量的操作將不作優(yōu)化,用到該變量時(shí)都從這個(gè)變量的原始地址讀取,而不是用保存在寄存器里的備份。Volatile常用在:.碩件寄存器(如:狀態(tài)寄存器)。.中斷程序中會訪問到的非自動變量(Non-autoniaticvariables)。.多線程應(yīng)用中幾個(gè)任務(wù)共享的變量2.一個(gè)參數(shù)既可以是const
2、還可以是volatile嗎?解釋為什么。是的。比如只讀的狀態(tài)寄存器。它是volatile因?yàn)樗赡鼙灰庀氩坏降馗淖儭K莄onst因?yàn)槌绦虿粦?yīng)該試圖去修改它。3個(gè)指針可以是volatile嗎?解釋為什么。是的。比如一個(gè)中斷服務(wù)子程序修該一個(gè)指向一個(gè)buffer的指針時(shí)。4.用變量a給出下面的定義a)個(gè)整型數(shù)b)個(gè)指向整型數(shù)的指針c)一個(gè)指向指針的指針,它指向的指針是指向一個(gè)整型數(shù)d)個(gè)有10個(gè)整型數(shù)的數(shù)組e)個(gè)有10個(gè)指針的數(shù)組,該指針是指向一個(gè)整型數(shù)的f)一個(gè)指向有10個(gè)整型數(shù)數(shù)組的指針g)個(gè)指向函數(shù)的指針,該函數(shù)有一個(gè)整型參數(shù)并返回一個(gè)整型數(shù)h)個(gè)有10個(gè)指針的數(shù)組,該指針指向一個(gè)函數(shù),該
3、函數(shù)有一個(gè)整型參數(shù)并返回一個(gè)整型數(shù)inta;/Anintegerint*a;/Apointertoanintegerint*a;/Apointertoapointertoanintegerinta10;/Anarrayof10integersint*(a10);/Anarrayof10pointerstointegersint(*a)10;/Apointertoanarrayof10integersint(*a)(int);/Apointertoafunctionathattakesanintegerargumentandreturnsanintegerint(*a10)(int);/Anar
4、rayof10pointerstofunctionsthattakeanintegerargumentandreturnaninteger5什么是存儲機(jī)制里的大、小端模式?試舉例說明人端模式(big-edian):MSE存放在最低端的地址上。舉例,雙字節(jié)數(shù)0 x1234以big-endian的方式存在起始地址0 x00002000中:|data|address|0 xl2|-0 x00002000|0 x34|-0 x00002001在Big-Endian中,對于bit序列中的序號編排方式如下(以雙字節(jié)數(shù)0 x8B8A為例):bit|01234567|89101112131415MSBLSBv
5、al|10001011|10001010|=0 x8B8A小端模式(little-endian):LSE存放在最低端的地址上。舉例,雙字節(jié)數(shù)0 x1234以httle-enduui的方式存在起始地址0 x00002000中:|data|address|0 x34|-0 x00002000|0 xl2|-0 x00002001在Little-Endian中,對于bit序列中的序號編排和Big-Endiaii剛好相反,其方式如下(以雙字節(jié)數(shù)0 x8B8A為例):bit|15141312111098|76543210MSBLSBval|10001011|10001010|=0 x8B8A寫一段用來判
6、斷內(nèi)存存儲方式是大端還是小段的代碼。聯(lián)合體umon的存放順序是所有成員都從低地址開始存放,利用該特性就可以輕松地獲得了CPU對內(nèi)存采用Little-endiaii還是Big-endian模式讀寫。代碼如下:mtcheckCPUendianQunionunsignedmta;unsignedcharb;c;c.a=1;return(c.b=1);/*remin1:little-endian,returnO:big-endian*/定義一個(gè)返回值是指向函數(shù)的指針且有一個(gè)指向函數(shù)的指針作參數(shù)的函數(shù)。通用形式如下:typedefint(*P)();/定義一個(gè)函數(shù)指針P類型Pftinction(mt(*
7、p)();/定義一個(gè)函數(shù)返回值P類型,且定義一個(gè)指向函數(shù)的指針p作參數(shù)用預(yù)處理指define聲明一個(gè)常數(shù),用以表明1年中有多少秒(忽略閏年問題)#defuieSECONDS_PER_YEAR(60*60*24*365)UL/UL怎么個(gè)用法?你暫不要加寫一個(gè)“標(biāo)準(zhǔn)”宏MIN,這個(gè)宏輸入兩個(gè)參數(shù)并返回較小的一個(gè)。特defineMIN(A.B)(A)6)?puts(H6J:puts(M6,原因是當(dāng)表達(dá)式中存在有符號類型和無符號類型時(shí)所有的操作數(shù)都自動轉(zhuǎn)換為無符號類型。-20成了一個(gè)非常人的正數(shù)。此題的輸出確實(shí)是這樣,但單純輸出a+b時(shí)結(jié)果又是-14很怪異迷惑!16.評價(jià)下面的代碼片斷:unsigne
8、dintzero=0;unsignedintcompzero=OxFFFF:如呆碰巧int型是16位則上述代碼沒有問題,否則上面的代碼不正確。應(yīng)寫成:unsignedintcompzero=0;17下面代碼執(zhí)行后a,b,c的值各是多少?inta=5,b=7,c;c=a+b;/c=(a+)+ba=6,b=7,c=12./吾已試,結(jié)果確如此Typedef和#define的區(qū)別define在預(yù)編譯的時(shí)候處理作機(jī)械的字符替換。Typedef在編譯的時(shí)候處理,并不是作簡單的字符替換。而是如同定義變量一樣聲明一個(gè)類型。然后用它去定義這種類型的變量。比如下面的例子:#defiiiedPSstructs*ty
9、pedefstmcts*tPS;以上兩句都是定義dPS和tPS為一個(gè)指向結(jié)構(gòu)s的指針。typedef更好。比如:dPSpl,p2;tPSp3,p4;第一句擴(kuò)展為structs*pl,p2;這條代碼定義pl為指向結(jié)構(gòu)的指針,p2為一個(gè)實(shí)際的結(jié)構(gòu)體。第二句定義p3和p4為指向結(jié)構(gòu)體s的指針。/aVrtw$、$、VChapter2編程類rjwrjwrjwrjrjwrjwrjw$、rjwrjw$、rjwrjwrjw$、rjwrjw$、$、rjwrjwJ在字符串中找出所有與給定字符相同字符的位置。Sincludechars6=hello;voidsearch_char(chargiven)(inti二0
10、,j二0;while(si-0?)if(si=given)printf(location=%dn,i);j+;i+;if(j=O)printf(,zNo%cfoundn/z,given);intmain(void)(search_char(o);return0;/*E*/將一個(gè)字符串自身逆序.SincludeSdefineLEX12intmain(void)(intm,i;chartemp;charsLEM二hellotiger;m二(LENT)/2;printf($sn,s);for(i=0;im;i+)temp二si;si二sLEN-2-i;sLEN-2-i二temp;printf(“$s
11、n,s);return0;/*E*/鏈表的基本操作及鏈表自身逆序。/*chainoperatefromDataStrueture*/SincludeSincludeSincludetypedefintDataType;typedefstructNode(DataTypedata;struetNode*next;SLNode;/initiatevoidListInitiate(SLNode*head)exit(l);if(*head=(SLNode*)malloc(sizeof(SLNode)=NULL)elseprintfC,0Kn,z);(*head)-next=NULL;/lengthca
12、lintListLngth(SLNode*head)(SLNode*p=head;intsiz己二0;whi.le(pnext!二NULL)p二p_next;size+;returnsize;/insertanodeintListlnsert(SLNode*head,inti,DataTypex)(SLNode*p,*q;intj;p二head;j二T;while(p-next!二NULL)&(j(i-l)p=pnext;j+;辻(j!二(i-l)printf(Positionerrornz,);return0;辻(q二(SLNode*)malloc(sizeof(SLNode)二二NULL)
13、exit(1);q-data=x;q-next二pnext;p_next二q;return1;/deleteanodeintListDlete(SLNode*head,inti,DataType*x)SLNode*p,*s;intj;p二head;j二T;while(pnext!=NULL)&(p-next-next!二NULL)&)p二p_next;j+;if(j!=i-l)printf(z,Positionerrornz/);return0;s=p-next;*x=sdata;p-next=pnextnext;free(s);return1;/datagetintListGt(SLNode
14、*head,inti,DstaType*x)SLNode*p;intj;p二head;j二T;while(pnext!二NULL)&(ji)p二p_next;j+;辻(j!二i)printf(Positionerrornz/);return0;*x=p-data;return1;/stroyachainvoidDestroy(SLNode*head)SLNode*p,*pl;p二*head;while(p!=NULL)pl=P;p二p_next;free(pl);*head二NULL;/converseachainvoidconverse(SLNode*head)SLNode*p,*q;p=h
15、eadnext;head一next二NULL;while(p!=NULL)q二P;p=pnext;qnext二headnext;headnext二q;/compositeoperationintmain(void)(SLNode*head;inti,x;Listlnitiate(&head);for(i=0;i10;i+)if(Listlnsert(head,i,i)二二0)printf(Errorn,z);return1;if(ListDelete(head,0,&x)=0)/chain,position,dataaddressprintf(Errorn);return1;if(Listin
16、sert(head,0,100)=0)printf(Errorn);return1;converse(head);for(i=0;iListLength(head);i+)if(ListGet(head,i,&x)=0)/chain,position,dataaddressprintf(,zErrornz,);return1;elseprintfC%d,x);printf(*n*);Destroy(&head);return0;/*E*/寫一個(gè)二分査找算法。Sinclude#definesize10intgsize=0,1,2,3,4,5,6,7,8,9;intsearch(intx)(int
17、low=0;inthigh二sizeT;intmid;while(low=high)mid(low+high)/2;if(gmid=x)returnmid;elseif(gmidx)high二mid-1;return一1;intmain(void)(printfsearch(7);return0;/*E*/5.計(jì)算一個(gè)字節(jié)里(byte)里面有多少bit被置1.Sincludeintcal_bit(chara)(inti,j二0;for(i=0;i8;i+)if(a&0 x01)=0 x01)j+;a=al;returnj;/_intmain(void)(printf($dn,cal_bit(2
18、55);zturn0;/*E*/字符串轉(zhuǎn)換為整數(shù),比如“1234”轉(zhuǎn)換成1234.Sincludecharstr6=12345;intstring_to_int(chars)(inti;intsum二0;for(i=0;si!=0;i+)sum二sum*10+si-0;returnsum;/intmain(void)(printf(,z%dn/z,string_to_int(str);zturn0;/*e*/整數(shù)轉(zhuǎn)換為字符串,比如1234轉(zhuǎn)換成234”.SincludeSincludeSdefineLEX4charstr二“;char*int_to_string(intgiven)(inti;
19、inttemp;bothsideoffor(i=0;iLEN;i+)temp=given/pow(10,LEN-l-i);/從最高位開始given=given%(int)pow(10,LENT-i);/intmustbestri=temp+,O;returnstr;/intmain(void)(printf(”sn,int_to_string(9876);return0;/*e*/C語言實(shí)現(xiàn)插入排序算法(從大到小,從小到大)#includeSdefineLEN5intaLEN二7,4,8,4,5;voidinsertion_sort(void)inti,j,key;for(j=l;j=0)&(
20、aikey)/aikey從小到大;aikey從大到小ai+l=ai;i;ai+l=key;printf(z,%d,%d,%d,%d,%dn,a0,al,a2,a3,a4);/intmain(void)insertion_sort();return0;/*E*/9C語言實(shí)現(xiàn)冒泡排序算法(從大到小,從小到大)#includeSdefineLEN5intaLEN=5,4,3,2,1;voidbubble_sort(void)inti,j,flag二1;inttemp;for(i=l;(iLEN)&(flag=l);i+)flag=0;for(j=0;jaj+l)/ajaj+l從小到大;ajaj+l從犬到小flagFl;temp二aj;aj二aj+l;aj+l二temp;printf(,z%d,%d,%d,%d,%dn,a0,al,a2,a3,a4);/intmain(void)bubble_sort();return0;/*E*/在一個(gè)字符串中找一個(gè)字符串計(jì)算一個(gè)數(shù)的階乘遞歸實(shí)現(xiàn):intfactorial(intn)if(n=0)return1;elseintrecurse=factorial(n-1);intresult=n*recurse;returnresult;循環(huán)實(shí)現(xiàn):intfactorial(intn)intresult=1;wh
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 護(hù)理遠(yuǎn)程會診的效果評估
- 財(cái)政涉農(nóng)資金培訓(xùn)課件
- 職業(yè)健康防護(hù)的行業(yè)推廣策略
- 金華浙江金華永康市人民政府東城街道辦事處編外人員招聘13人筆試歷年參考題庫附帶答案詳解
- 通化2025年吉林通化市事業(yè)單位招聘應(yīng)征入伍高校畢業(yè)生33人筆試歷年參考題庫附帶答案詳解
- 湖南2025年湖南大眾傳媒職業(yè)技術(shù)學(xué)院高層次人才招聘42人筆試歷年參考題庫附帶答案詳解
- 成都2025年四川成都市公安局機(jī)關(guān)處隊(duì)招聘警務(wù)輔助人員208人筆試歷年參考題庫附帶答案詳解
- 廣州2025年廣東廣州市天河區(qū)四海小學(xué)編外聘用制專任教師招聘筆試歷年參考題庫附帶答案詳解
- 安徽2025年安徽省第二人民醫(yī)院專業(yè)技術(shù)人員招聘60人筆試歷年參考題庫附帶答案詳解
- 四川四川省骨科醫(yī)院招聘組織人事部招投標(biāo)采購辦公室職員(參照事業(yè)編制管理)筆試歷年參考題庫附帶答案詳解
- 2026中國電信四川公用信息產(chǎn)業(yè)有限責(zé)任公司社會成熟人才招聘備考題庫及參考答案詳解1套
- 思政教師培訓(xùn)心得課件
- 2025年廣東省生態(tài)環(huán)境廳下屬事業(yè)單位考試真題附答案
- 2026年安徽省公務(wù)員考試招錄7195名備考題庫完整參考答案詳解
- 2026國家國防科技工業(yè)局所屬事業(yè)單位第一批招聘62人備考題庫及參考答案詳解
- 【地理】期末模擬測試卷-2025-2026學(xué)年七年級地理上學(xué)期(人教版2024)
- LoRa技術(shù)教學(xué)課件
- 統(tǒng)籌發(fā)展與安全課件
- 弱電項(xiàng)目實(shí)施管理方案
- 2025年山西省公務(wù)員考試《申論》試題及答案解析(縣鄉(xiāng)卷)
- 2025年法考客觀題真題回憶版(含答案)
評論
0/150
提交評論