版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、姓名1.C語言的目標程序在運行環(huán)境下的存儲空間大致分為目標代碼區(qū)和數(shù)據(jù)區(qū),數(shù)據(jù)區(qū)又分為全局/靜態(tài)區(qū)域、棧(假設進程棧的最大值為1K)和堆;下圖所示的是目標程序運行時環(huán)境一個簡單和不是很嚴格的示意圖,請舉出程序中分別屬于全局/靜態(tài)區(qū)域、棧區(qū)和堆區(qū)變量的例子;并指出程序中的錯誤;還有要指明main函數(shù)執(zhí)行那個分支(if.else.)(錯誤和答案可以以代碼走查形式直接在程序中標出來,后面的問題相同處理)。constintMAX=1024;int*Sum(intiSumLValue,intiSumRValue)/計算兩個數(shù)的和intiSum;iSum=iSumLValue+iSumRValue;ret
2、urn&iSum;voidSub(intiSubLValue,intiSubRValue)/計算兩個數(shù)的差值staticintiSub;iSub=iSubLValue-iSubRValue;int*Mem()/分配內(nèi)存int*pMen;pMen=malloc(sizeof(int)*MAX+1);*(pMen+MAX)=10;returnpMen;voidmain()intiIndex=0;intiNext=5;intarrMAX;memcpy(arr,Mem(),1+sizeof(int)*MAX);if(0=iNext&iNext=5)for(;iIndex=MAX;iIndex+)int
3、*pSum=Sum(*(arr+iIndex),*(arr+iIndex+1);printf(%dn,*pSum);elsefor(;iIndex=MAX;iIndex+)Sub(*(arr+iIndex),*(arr+iIndex+1);for(iIndex=0;iIndex=MAX;iIndex+)printf(%dn,*(long*)arr+iIndex);2.指出下面程序可能會發(fā)生的錯誤,程序執(zhí)行時候需要輸入兩個參數(shù),其中第1個參數(shù)表示第2個參數(shù)所表示字符串的長度。程序目的是將輸入的字符串放入緩沖區(qū)(buf)中。#include#includeintmain(intargc,char*
4、argv)unsignedshortusLength;intiInput;charbuf0 xFFFF;if(argc0 xFFFF)/*w1*/return-1;memcpy(buf,argv2,iInput);bufusLength=0;return0;3指出下面程序的錯誤,函數(shù)Fun返回成功(SUCCESS)或者失敗(FAILURE);其中else分支沒有任何代碼處理。函數(shù)LoopUp根據(jù)ucInputVar值在內(nèi)存的數(shù)據(jù)結(jié)構(gòu)中查找某種數(shù)據(jù),返回查找成功或者失敗。(BYTE定以為unsignedchar)#defineSUCCESS0#defineFAILURE1BYTEFun(BYTE
5、ucInputVar)BYTEucResult;/*定義函數(shù)返回值變量*/if(SUCCESS=LoopUp(ucInputVar)ucResult=SUCCESS;elsereturnucResult;4指出下面兩段程序有什么樣的區(qū)別。注:a和b都是int類型,而且都是非負數(shù),判斷語句目的是在異常情況下(a+b0)執(zhí)行保護倒換操作;而且該程序運行環(huán)境下的CPU中存在一個寄存器,表示加法計算結(jié)果的狀態(tài),包括“正”,“負”,“零”和“溢出”狀態(tài)。【1】if(a+b0)/執(zhí)行保護倒換操作【2】if(int)(unsigned)a+(unsigned)b)0)/執(zhí)行保護倒換操作指出下面程序的錯誤,修
6、改源程序,增加檢測手段使得能夠預防該問題出現(xiàn)#defineMAX60#defineNUM_SET50#defineSIZE10int*fun()intiSize=SIZE;return&iSize;voidmain()unsignedcharucIndex;unsignedcharaucSetInfoNUM_SET;for(ucIndex=0;ucIndexMAX;ucIndex+)aucSetInfoucIndex=aucSetInfoucIndex+1;for(ucIndex=0;ucIndex*fun();ucIndex+)aucSetInfoucIndex=aucSetInfoucIn
7、dex+1;指出下面程序的錯誤#defineSIZE5structStringchar*pData;voidmain()characValue1SIZE=H,E,L,L,O;characValue2SIZE=W,O,R,L,D;structStringa,b,c;a.pData=malloc(SIZE*sizeof(char);memcpy(a.pData,acValue1,SIZE);b.pData=malloc(SIZE*sizeof(char);memcpy(b.pData,acValue2,SIZE);b=a;free(a.pData);c=b;指出下面程序的錯誤,這樣的錯誤會引起什么
8、后果,并將程序修正。嵌入式軟件試題main()intloop=1;while(loop5)intarr1000;inti=0;for(;i=0;ucCount-)iCount+;9.指出下面程序的錯誤(函數(shù)GetValue返回unsignedchar類型的值)#defineMAXNUM400;unsignedcharucIndex,ucInputVar,aucArrayMAXNUM;for(ucIndex=0;ucIndex(ucInputVar-1);ucIndex+)aucArrayucIndex=aucArrayucIndex*2+1;10指出下面程序的錯誤,其中結(jié)構(gòu)RetSize表示矩
9、形大小,用來表示窗口大小typedefstructRetSizeWORDlength;WORDwidth;voidmain()RetSizeszMin;/*定義最小窗口變量*/SetMinSize(&szMin);/*初始化(設定)最小窗口的長和寬*/SetWindowSize(&szMin);/*將當前窗口大小置為最小值*/科室姓名嵌入式軟件試題11.指出下面程序中可能出現(xiàn)的溢出問題,這樣的錯誤會引起什么樣的后果。#defineMAX0 x40000000intmyfunction(intlen)int*myarray,i;myarray=malloc(len*sizeof(int);/*1
10、*/if(myarray=0)return-1;for(i=0;i0)response=malloc(nresp*sizeof(char*);for(i=0;inresp;i+)packet_get_string(response,i);指出下面程序由于符號問題可能引起的溢出問題,copymem函數(shù)主要完成從堆中拷貝一段內(nèi)存到用戶區(qū)。#defineMAX256char*copymem(intiLength)char*pMem=0;嵌入式軟件試題if(iLengthMAX)/*1*/pMem=malloc(unsignedint)iLength);returnpMem;elsereturn0;v
11、oidmain()char*pMem;pMem=copymem(0 xffffffff);指出下面兩段程序的區(qū)別【1】main()intloop=1;intarr10;inti=0;while(loop5)for(;i=10;i+)arri=1;loop+;【2】main()intarr10;intloop=1;inti=0;while(loop5)for(i=0;i=10;i+)arri=1;loop+;指出下面三個結(jié)構(gòu)分別占用的字節(jié)數(shù)【1】typedefstructunsignedshortwItemOne;unsignedlongdwItemTwo;unsignedcharbItemThree;unsignedcharbItemFour;unsignedcharbItemFive;CPerf1;【2】#pragmapack(1)typedefstructunsignedshortwItemOne;unsignedlongdwItemTwo;unsignedcharbItemThree;unsignedcharbI
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年德宏州瑞麗市幼兒教育集團招聘合同制臨聘人員(16人)考試備考試題及答案解析
- 2026福建福州市教育局公費師范生專項招聘92人參考考試題庫及答案解析
- 安徽清明活動策劃方案(3篇)
- 2026江蘇南京市秦淮區(qū)朝天宮街道食品安全執(zhí)法輔助人員招聘1人備考考試試題及答案解析
- 2026中國金幣集團有限公司及所屬單位春季校園招聘22人(深圳6人)備考考試題庫及答案解析
- 2026年上半年黑龍江事業(yè)單位聯(lián)考大慶市招聘164人考試參考題庫及答案解析
- 2026山東濟寧魚臺縣事業(yè)單位招聘初級綜合類崗位人員備考考試試題及答案解析
- 2026廣西桂林市陽朔縣人民法院書記員招聘2人備考考試試題及答案解析
- 2026上半年云南事業(yè)單位聯(lián)考能源職業(yè)技術學院招聘21人參考考試題庫及答案解析
- 2026山東事業(yè)單位統(tǒng)考濰坊臨朐縣招聘19人備考考試題庫及答案解析
- 工程款糾紛專用!建設工程施工合同糾紛要素式起訴狀模板
- 地坪漆施工方案范本
- 【《自適應巡航系統(tǒng)ACC的SOTIF風險的識別與評估分析案例》4100字】
- 阿壩州消防救援支隊2026年面向社會公開招聘政府專職消防員(69人)筆試備考試題及答案解析
- 2025寧波市甬北糧食收儲有限公司公開招聘工作人員2人筆試參考題庫及答案解析
- 供應鏈年底總結(jié)與計劃
- 院區(qū)病房改造提升項目節(jié)能評估報告
- 2026年中考語文一輪復習:閱讀理解萬能答題模板
- 增殖放流效果評估體系
- 酒店餐飲收銀合同范本
- 2025年低壓電工理論考試1000題(附答案)
評論
0/150
提交評論