![C語言編程基礎考試試題_第1頁](http://file4.renrendoc.com/view/4424f4bd3880ae686092e68e57d89070/4424f4bd3880ae686092e68e57d890701.gif)
![C語言編程基礎考試試題_第2頁](http://file4.renrendoc.com/view/4424f4bd3880ae686092e68e57d89070/4424f4bd3880ae686092e68e57d890702.gif)
![C語言編程基礎考試試題_第3頁](http://file4.renrendoc.com/view/4424f4bd3880ae686092e68e57d89070/4424f4bd3880ae686092e68e57d890703.gif)
![C語言編程基礎考試試題_第4頁](http://file4.renrendoc.com/view/4424f4bd3880ae686092e68e57d89070/4424f4bd3880ae686092e68e57d890704.gif)
![C語言編程基礎考試試題_第5頁](http://file4.renrendoc.com/view/4424f4bd3880ae686092e68e57d89070/4424f4bd3880ae686092e68e57d890705.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 、19、#defineMAX_LEN254unsignedcharArrayMAX_LEN;intmain(intargc,char*argv)inti;for(i=0;i=MAX_LEN;i+)Arrayi=i;return;程序的錯誤為():A、B、A、B、C、D、i=MAX_LEN時,賦值溢出return無返回值20、#defineBUFFER_SIZE256voidGetMemory(char*ppszBuf)if(NULL=ppszBuf)ASSERT(0);return;*ppszBuf=(char*)malloc(BUFFER_SIZE);return;voidTest(voi
2、d)char*pszBuf=NULL;GetMemory(&pszBuf);strcpy(pszBuf,helloworldrn);printf(%s,pszBuf);free(pszBuf);return;下面說法正確的是():A、pszBuf的值永遠為NULL;B、malloc內存后沒有判斷是否成功;C、strcpy拷貝越界;D、GetMemory無法將申請的內存地址傳遞給pszBuf;21、如下程序用于把blue字符串打印出來:voidPrintBLUE()charpcBlue=b,l,u,e;printf(%s,pcBlue);return;下面描述正確的是():A、pcBlue數(shù)組初
3、始化時沒有字符串結束符;B、數(shù)組pcBlue定義時必須指明長度;22、請指出下面這段代碼中的錯誤:unsignedlongFUNC_B(unsignedlongulCount)unsignedlongulSum=0;while(024,(ulLocIpAddr16)&0 xff,(ulLocIpAddr8)&0 xff,ulLocIpAddr&0 xff);returnszIpAddr;下面描述正確的是():A、數(shù)組szIpAddr空間不夠;B、函數(shù)返回局部數(shù)組szIpAddr變量地址;C、輸出的IP地址次序顛倒;24、如下程序用于把blue字符串返回:char*GetBLUE(void)ch
4、ar*pcColor;char*pcNewColor;pcColor=blue;pcNewColor=(char*)malloc(strlen(pColor);if(NULL=pcNewColor)returnNULL;strcpy(pcNewColor,pcColor);returnpcNewColor;下面描述正確的是:A、字符串“blue”存放在棧內;B、函數(shù)GetBLUE返回局部變量地址;C、內存空間分配長度不夠,strcpy函數(shù)拷貝越界;25、如下代碼實現(xiàn)中,F(xiàn)UNC_A為每毫秒定時執(zhí)行的函數(shù),在該函數(shù)中,需要實現(xiàn)每TIME_INTERVAL毫秒執(zhí)行一次DO_Something()的
5、操作。請指出段代碼中的錯誤:#defineULONGunsignedlong#defineTIME_INTERVAL200voidDO_Something(void)/*/return;voidFUNC_A()staticULONGulPreCall=0;ULONGulNowInMsHigh=0;ULONGulNowInMsLow=0;(VOID)VOS_Tm_Now(&ulNowInMsHigh,&ulNowInMsLow);/*獲取當前的時間,以毫秒為單位,用64bits表示,ulNowInMsHigh為高32位,ulNowInMsLow為低32位*/if(0=ulPreCall)|(ul
6、NowInMsLow=(ulPreCall+TIME_INTERVAL)ulPreCall=ulNowInMsLow;elsereturn;DO_Something();return;A、函數(shù)FUNC_A第一次被調用時,不執(zhí)行Do_Something()操作;B、函數(shù)FUNC_A功能在一段時間后失效,因為ulNowInMsLow溢出翻轉;C、ulPreCall不應該定義為靜態(tài)變量;26、下面的代碼中,函數(shù)Test執(zhí)行完畢后,希望輸出1。請指出錯誤:voidVarInit(unsignedchar*pucArg)*pucArg=1;return;voidTest()unsignedlongulG
7、lobal;VarInit(&ulGlobal);printf(%lu,ulGlobal);return;下面描述正確的是:()給VarInit()函數(shù)傳遞的參數(shù)類型錯誤printf()輸出格式錯誤傳給VarInit()中參數(shù)pucArg的值為空指針TOC o 1-5 h z27、#defineOK0#defineERR1#defineERROR(-1)#defineBUFFER_SIZE256char*GetMemory(unsignedlongulSize)char*pcBuf=NULL;pcBuf=(char*)malloc(ulSize);if(NULL=pcBuf)returnERR
8、OR;returnpcBuf;voidTest(void)char*pszBuf=NULL;pszBuf=GetMemory(BUFFER_SIZE);if(NULL!=pszBuf)strcpy(pszBuf,HelloWorld!rn);printf(pszBuf);free(pszBuf);return;如下描述正確的是:A、pszBuf指向的內存不能超過255B、GetMemory函數(shù)的異常分支返回了-1,是一個非法地址C、GetMemory中異常分支沒有釋放空間;D、pcBuf為局部指針,指向的內存將在GetMemory被調用后釋放28、voidAddFunc(unsignedint
9、a,unsignedintb,unsignedint*c)*c=a+b;voidmain(void)unsignedchare=200;unsignedcharf=100;unsignedcharg=0;AddFunc(unsignedint)e,(unsignedint)f,(unsignedint*)&g);printf(%d,g);下面說法正確的是():A對g進行類型轉換導致函數(shù)調用時寫內存越界;B對e、f進行類型轉換導致函數(shù)調用時寫內存越界;C函數(shù)調用時不能改變g的值。29、#defineNULL0#defineMEM_OK0#defineMEM_ERR1enumENUM_STAT_I
10、TEMSTAT_ITEM0,STAT_ITEM1,STAT_ITEM_BUTT;typedefstructtag_PERM_COUNT_STAT_INFOunsignedshortstat_item;unsignedshrotnumber;_SPermCountStatInfo;_SPermCountStatInfopcsiSTAT_ITEM_BUTT=STAT_ITEM0,16000,STAT_ITEM1,50000,unsignedlong*pulStatDataBuffer=NULL;unsignedshortAllocPermMemory(void)unsignedshortusBuf
11、ferSize=0;unsignedshortusLoop=0;for(usLoop=0;usLoopSTAT_ITEM_BUTT;usLoop+)usBufferSize+=pcsiusLoop.number;pulStatDataBuffer=(unsignedlong*)malloc(sizeof(unsignedlong)*usBufferSize);if(NULL=pulStatDataBuffer)returnMEM_ERR;returnMEM_OK;下面說法正確的是():Aunsignedshort類型不能表示循環(huán)體中將16000與50000相加的和66000B數(shù)組pcsi的nu
12、mber域是unsignedshort類型,不能表示50000這么大的數(shù)字C循環(huán)條件應該改為usLoopv=STAT_ITEM_BUTT30、設有如下定義:BOOLgstatusA=FALSE;BOOLgstatusB=TRUE;intgvarA=100;intgvarB=100;則執(zhí)行main函數(shù)后后gvarA和gvarB的值分別為()BOOLCheckA()if(gstatusA)gvarA+;elsegvarA-;returngstatusA;BOOLCheckB()if(gstatusB)gvarB+;elsegvarB-;returngstatusB;intmain(intargc,
13、char*argv)if(CheckA()&CheckB()printf(“StatusOK”);return0;99和10099和10199和99101和9931、請問下面函數(shù)中1、2、3應該填入什么語句才合理?()A、不添,不添,不添B、free(pMsg);,free(ptmpMsg);,不添C、free(pMsg);,free(ptmpMsg);,free(ptmpMsg);D、不添,free(pMsg);,free(ptmpMsg);E、free(pMsg);,free(pMsg);,free(ptmpMsg);F、不添,不添,free(ptmpMsg);#defineCOMM_MS
14、G_LEN100char*get_message_buffer(intmalloc_len)char*ptr=NULL;ptr=(char*)malloc(malloc_len)returnptr;intfunc_test(void)intmalloc_len=COMM_MSG_LEN;char*pMsg=NULL;char*ptmpMsg=NULL;pMsg=get_message_buffer(malloc_len);if(NULL=pMsg)1_returnERROR;fillMessage(pMsg);sendMessage(pMsg);ptmpMsg=get_message_buff
15、er(malloc_len);if(NULL=ptmpMsg)2_returnERROR;fillMessage(ptmpMsg);sendMessage(ptmpMsg);free(pMsg);3_returnOK;32、請問下面題目中a,b,c輸出值為多少?()A、10,210,30B、100,210,300C、110,210,310D、100,210,30E、110,200,30#include#definefunc(A)A+;A*=10;intmain(intargc,char*argv)inta=10;intb=20;intc=30;if(a10)func(a);if(b=20)fu
16、nc(b);if(c30)func(c);printf(a=%d,b=%d,c=%drn,a,b,c);return0;33、#defineMAX_MEM_SIZE100intGetMem(intiLen,void*ppMem)if(NULL=ppMem)return-1;if(iLen=0)return0;elseif(iLenMAX_MEM_SIZE)*ppMem=malloc(iLen);returniLen;else*ppMem=malloc(MAX_MEM_SIZE);returnMAX_MEM_SIZE;voidtest()char*pMyMem;inti;intj;i=GetMe
17、m(i,(void*)&pMyMem);if(NULL!=pMyMem)for(j=0;ji;j+)pMyMemj=0;下面說法正確的有;()A、因為pMyMem未初始化,test函數(shù)中的GetMem可能會返回一1;B、因為i未初始化,test函數(shù)中GetMem可能會返回比MAX_MEM_SIZE大的值;C、因為pMyMem未初始化,for循環(huán)內的賦值操作可能會導致寫內存異常;D、無論pMyMem,i,j為何值時,test函數(shù)內都不會出現(xiàn)寫內存異常;34、#defineMAX_MEM_SIZE100intGetMem(intiLen,void*ppMem)if(iLen0)return-1;e
18、lseif(0=iLen)return0;elseif(iLen0)for(k=0;k0)改為if(0vj)&(jv=MAX_MEM_SIZE),可以避免出現(xiàn)for循環(huán)內寫內存異常;C、雖然i和pMyMem均未初始化,只要將test函數(shù)內的for循環(huán)比較由kvi改為kvj,可以避免出現(xiàn)for循環(huán)內寫內存異常;D、上面三種說法都不對。35、#defineBUF_LEN2048structAAAULONGulLen;指示buf中實際占用字節(jié)數(shù)CHARbufBUF_LEN;/存儲緩沖區(qū);函數(shù)PrintBufLen的作用是打印出結構體中的buf的實際占用長度,有下面兩種實現(xiàn)方法:方法一:VOIDPri
19、ntBufLen(structAAA*pBuf)if(NULL=pBuf)printf(Error,pBufisNull.n);return;printf(len=%un,pBuf-ulLen);return;方法二:VOIDPrintBufLen(structAAABuf)printf(len=%un,Buf.ulLen);return;以下說法只有一個正確的是:()A:優(yōu)選方法一,原因是以指針作為入?yún)?,減少函數(shù)參數(shù)壓棧的系統(tǒng)開銷。B:優(yōu)選方法二,原因是可以不做入?yún)⒑戏ㄐ耘袛?,不容易出錯。C:兩種方法差不多,可以任意選擇。D:以上說法都不對。36、voidmain(void)unsigned
20、chara=200;unsignedcharb=100;unsignedcharc=0;c=a+b;printf(%d%d,a+b,c);下列程序的執(zhí)行結果為(C)A300300B4444C30044D4430037、有如下宏定義和結構定義#defineMAX_SIZEA+Bstruct_Record_StructunsignedcharEnv_Alarm_ID:4;unsignedcharPara1:2;unsignedcharstate;unsignedcharavail:1;*Env_Alarm_Record;pointer=(struct_Record_Struct*)malloc(s
21、izeof(struct_Record_Struct)*MAX_SIZE);當A=2,B=3時pointer分配()個字節(jié)的空間。注意:機器是按照4字節(jié)對齊20B)15C)11D)938、在X86,VC+6.0環(huán)境下,有下列程序#includeintmain()charc;unsignedcharuc;unsignedshortus;c=128;uc=128;us=c+uc;printf(0 x%x,us);us=c+(short)uc;printf(0 x%x,us);us=(unsignedchar)c+uc;printf(0 x%x,us);us=c+(char)uc;printf(0
22、x%x,us);return0;輸出結果是()A)0 x00 x00 x1000 xff000 x00 x1000 x1000 xff000 x00 x1000 x1000 x00 x00 x00 x1000 x039、#includestdio.hunsignedshort*sum(unsignedchara,unsignedcharb)unsignedshorts=0;s=a+b;return&s;intmain()unsignedshort*p=NULL;unsignedchara=1,b=2;p=sum(a,b);printf(%u+%u,a,b);printf(=%un,*p);return0;程序執(zhí)行結果是()l+2=0B.l+2=3C.1+2=NULLD.不可預測二、多選題40、voidGetMemory(char*ppcChar,intiLength)if(NULL=ppcChar)return;*ppcChar=(char*)malloc(iLength);return;voidmain()char*szStr=NULL;Get
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電力工程承包協(xié)議書
- 2024-2025學年高中化學專題4硫氮和可持續(xù)發(fā)展第二單元生產(chǎn)生活中的含氮化合物第2課時氮肥的生產(chǎn)和使用學案含解析蘇教版必修1
- 2024-2025學年高中物理第二章1第1節(jié)電源和電流練習含解析新人教版選修3-1
- 項目經(jīng)理年度總結
- 的委托書代收案款
- 行政總監(jiān)年度工作總結
- 2025年年度政治思想工作總結
- 小學四年級暑假學習計劃
- 房地產(chǎn)項目聯(lián)合開發(fā)協(xié)議書范本
- 焦作新材料職業(yè)學院《證券投資進階實訓》2023-2024學年第二學期期末試卷
- 591食堂不合格食品處置制度
- 產(chǎn)業(yè)鏈鏈長分工表
- 國際金融課件(完整版)
- 導向標識系統(tǒng)設計(一)課件
- 220t鍋爐課程設計 李學玉
- 全英文劇本 《劇院魅影》
- 北京城的中軸線PPT通用課件
- 黑布林繪本 Dad-for-Sale 出售爸爸課件
- 京東方頂崗實習報告1
- 超全六年級陰影部分的面積(詳細答案)
- 提高護士對搶救藥品知曉率PDCA案例精編版
評論
0/150
提交評論