版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、本文檔為精品文檔,如對(duì)你有幫助請(qǐng)下載支持,如有問(wèn)題請(qǐng)及時(shí)溝通,謝謝支持!本文檔為精品文檔,如對(duì)你有幫助請(qǐng)下載支持,如有問(wèn)題請(qǐng)及時(shí)溝通,謝謝支持! PAGE PAGE 10選擇題根據(jù)編碼規(guī)范,下面說(shuō)法正確的a。typedef重命名用戶類(lèi)型;typedefcharNAME20; 是正確的定義;typedef的功能;typedef是在預(yù)編譯時(shí)完成的。(a)下面關(guān)于宏定義的說(shuō)法正確的是abcd #include #include 指令包含類(lèi)型名不是.h的文件,因?yàn)檫@樣不容易區(qū)分哪些文件是用于編譯預(yù)處理的;宏表達(dá)式及其參數(shù)應(yīng)該使用括號(hào)括起來(lái)以避免二義性;盡量避免直接在代碼中使用數(shù)字,應(yīng)使用有意義的宏定義
2、名字;宏所定義的多條表達(dá)式應(yīng)放在大括號(hào)內(nèi)。(下面宏定義符合規(guī)范的d #define REC_AREA(a, b) a *b;#define REC_AREA(a, b) (a *b);#define REC_AREA(a, b) (a) *(b);#define REC_AREA(a, b) (a) * (b) (d)以下敘述正確的c。-行上可以出現(xiàn)多個(gè)有效的預(yù)處理命令行參數(shù)的類(lèi)型應(yīng)與宏定義時(shí)的一致,只占編譯時(shí)間在以下定義中CR是稱(chēng)為宏名的標(biāo)識(shí)#defineCR045(c)閱讀下面程序b #define LETTER 0main()char str20=MultiMedia,c; int I;
3、I=0;While(c=strI)!=0)I+; #if LETTERif(c=a&c=A&cy?x:y(在下列有關(guān)宏替換的敘述中,正確的說(shuō)法d。宏替換占用運(yùn)行時(shí)間宏名有類(lèi)型帶參數(shù)的宏替換和函數(shù)等價(jià)宏替換只是字符替換(d)設(shè)有以下宏定義a #define N 3#define Y(n)(N1)*n)則執(zhí)行語(yǔ)句:z=2 *(NY(51);后,z 的值為a. 出錯(cuò)b.42c.48d. (a)宏定#define PI 31.14159中,宏名PI代替d。a. 單精度b. 雙精度c. 常量d. 字符串(d)編譯預(yù)處理命令d結(jié)尾。a. ;bcd. 回車(chē)(d)填空題:#define WIDTH 80#de
4、fine LENGTH WIDTH+40則執(zhí)行賦值語(yǔ):v=LENGTH*20;(v為int型變后,v的值。以下程序運(yùn)行結(jié)果。#define DEBUGmain()int a=20,b=10,c; c=a/b;#ifndef DEBUG printf(a=%o,b=%o,a,b);#endifprintf(c=%dn,c);,為使之正確運(yùn)行,請(qǐng)?jiān)诶ㄌ?hào)中填入應(yīng)包含的命令行。其中函數(shù)try_me 在 myfile.h 中定義。main()printf(n); try_me(); printf(n);下面程序的運(yùn)行結(jié)果#define MUL(z)(z)*(z)main()printf(%dn,MUL(
5、1+2)+3);下列程序段的輸出。#define f(a,b,x)a*x+bprintf(%d, %dn, f(3,2,1), f(6, 5, f(3, 2, 1);若有以下宏定義:#defineSTR#defineA97已知字符a的ASCII碼值為97,則語(yǔ)句printf(STR,A,A+2);的輸出結(jié)果。)宏定義有效范圍從定義處開(kāi)始,到本源程序結(jié)束處中止。但可以用 來(lái)提前解除宏定義的作用。下面程序的輸出結(jié)果。#define FMT %d, main()int b4 = 1,3,5,7,9,11,13,15,17,19,21,23;printf(FMT, *(*(b+1)+1);printf
6、(FMT, b22);問(wèn)答與設(shè)計(jì)下面類(lèi)型定義語(yǔ)句,哪種方法更好?為什么?#define dPS struct s * typedef struct s * tPS;ifndef/define/endif語(yǔ)句是干什么用的?判斷下面預(yù)編譯條件語(yǔ)句是否正確,并改正:if (cond = GLRUN) #ifdef DEBUG| (cond = GLWAIT) #endif)判斷下面預(yù)編譯條件語(yǔ)句是否正確,并改正:#define INIT_RECT_VALUE(a, b) a = 0;b = 0;typedefFP。while的條件部分進(jìn)行賦值的編譯程序選擇項(xiàng),為什么可以查出下面代碼中的運(yùn)算優(yōu)先級(jí)錯(cuò)誤
7、?While(ch = getchar() !=EOF)怎樣使用編譯程序查出下面無(wú)意使用的空語(yǔ)句和賦值語(yǔ)句?if (nCome = 063)630使06351。If(pb != NULL & pb != &鍵入為&pbNULL還會(huì)執(zhí)行*pb != 0 xff。quot = numer/*pdenom號(hào)結(jié)果使被解釋為注釋的開(kāi)始。word = bHigh8 + = bHigh 65535U#endif怎樣使預(yù)處理程序報(bào)告出這一錯(cuò)誤?(macro)?請(qǐng)說(shuō)明有參宏和有參函數(shù)的區(qū)別。請(qǐng)說(shuō)明宏定義的有效范圍。文件包含的優(yōu)點(diǎn)是什么?請(qǐng)寫(xiě)出條件編譯的宏命令。指針作為函數(shù)參數(shù)時(shí)能夠改變實(shí)參的值,請(qǐng)說(shuō)明其原理。?
8、(preprocessor)?標(biāo)準(zhǔn)預(yù)定義FILE有什么作?標(biāo)準(zhǔn)預(yù)定義LINE有什么作?標(biāo)準(zhǔn)預(yù)定義DATE和TIME有什么作?怎樣判斷一個(gè)程序是用CC+?#include?#include和#includefile?#pragma?#line? ?用#define?#defineenum?#pragma?#line?#?typedef與#define的共同點(diǎn)和不同點(diǎn)。switch case條件。怎樣才能使用斷言幫助查出這個(gè)問(wèn)題?請(qǐng)指出下面函數(shù)中的斷言的錯(cuò)誤并改正。/* getline n */ void getline(char* pch)intch;/ 必須intdoASSERT( (ch =
9、 getchar() != EOF );While( (*pch+=ch) != n )每當(dāng)使用FILE就產(chǎn)生一個(gè)唯一的文件名字符串。怎樣實(shí)ASSERT宏,才能使文件名字符串在每個(gè)文件中只被定義一次?#define 1(忽略閏年問(wèn)題。MIN ,這個(gè)宏輸入兩個(gè)參數(shù)并返回較小的一個(gè)。#define MIN(A,B) ( A)= (B) ? (A) : (B) )(763)預(yù)處理器標(biāo)識(shí)#error 的目的是什么?(764)#defineA寫(xiě)出下列程序段的輸出結(jié)果。10#defineB(AA+2)-2printf(%d, B*2);ifndef/define/endif 干什么用?#include 和
10、 #includefilename.h 有什么區(qū)別?typedefFPI。內(nèi)存管理填空題下面程序的輸出,為什么?char *ptr;if (ptr = (char *)malloc(0) = NULL)puts(Got a null pointer);elseputs(Got a valid pointer);以下程序運(yùn)行后的輸出結(jié)果。main()char m;m=B+32; printf(%cn,m);已有定義如下:struct nodeint data;struct node *next; *p;malloc 函數(shù),使指針p struct node 類(lèi)型的動(dòng)態(tài)存儲(chǔ)空間。請(qǐng)?zhí)羁?。p = (s
11、tructnode*)malloc();在絕對(duì)地址0 xXXXXXXXX上寫(xiě)入字符的語(yǔ)句是unsigned char *p = (unsigned char*)0 xF000FF00;*p = a;問(wèn)答與設(shè)計(jì)對(duì)下面程序段進(jìn)行解釋?zhuān)簍ypedef void (*lpFunction)();lpFunction lpReset = (lpFunction)0 xF000FFF0; lpReset();結(jié)合編譯優(yōu)化原理,指出下面程序存在的問(wèn)題并修改。int a,b,c;a = inWord(0 x100); / I/O0 x100端口的內(nèi)容存入a變量ba;a = inWord (0 x100); /
12、 I/O0 x100端口的內(nèi)容存入a變量ca;以下為常見(jiàn)的內(nèi)存錯(cuò)誤,請(qǐng)分別給出解決措施:內(nèi)存分配未成功,卻使用了它;內(nèi)存分配雖然成功,但是尚未初始化就引用它;忘記了釋放內(nèi)存,造成內(nèi)存泄露;內(nèi)存釋放成功,卻繼續(xù)使用它。嵌入式系統(tǒng)中動(dòng)態(tài)分配內(nèi)存可能發(fā)生的問(wèn)題有哪些?請(qǐng)分析下面代碼,指出問(wèn)題并改正:void GetMemory(T_S8 *p, T_S16 nNum)p = (T_S8 *)malloc(sizeof(T_S8) * nNum);void Test(void)T_S8 *str = NULL; GetMemory(str, 100); strcpy(str, hello);mallo
13、c()calloc()?(memory)中的什么地方。什么是堆?什么是棧?什么是頁(yè)抖動(dòng)?如 UNIX Windows)地址空間大于實(shí)際內(nèi)存的技術(shù), 它是通過(guò)用磁盤(pán)空間模擬 memory)來(lái)實(shí)現(xiàn)的。在 80386 和更高級(jí)的 Intel CPU 芯片中,在現(xiàn)有的大多數(shù)其它微處理器(如 Motorola Power (Memory Management Unit,縮寫(xiě)為 MMU “(page)”組成的來(lái)處理。一4096 或 8192 每個(gè)正在運(yùn)行的程序建立并維護(hù)一張被稱(chēng)為進(jìn)程內(nèi)存映射(Process Memory Map,縮與PMM)的表,表中記錄了程序可以存取的所有內(nèi)存頁(yè)以及它們的實(shí)際位置。(傳
14、送給 MMU, MMU PMM 必須把包含該地址的頁(yè)從磁盤(pán)上讀到內(nèi)存中,并且必須更新 PMM (pagefault)。RAM 以操作系統(tǒng)會(huì)試圖在 RAM (或),那么可能沒(méi)有足夠的 RAM 來(lái)承擔(dān)程序要使用的全部?jī)?nèi)存,因此RAM (pagingout)。RAM 頻繁存取內(nèi)存中大量散布的位置的程序更容易在系統(tǒng)中造成頁(yè)抖動(dòng)結(jié)構(gòu)的查找算法,或者使用效率更高的 malloc()函數(shù)。當(dāng)然,你也可以考慮增加系統(tǒng)的RAM,以減少頁(yè)出動(dòng)作?free()?(flag)?8、1632?請(qǐng)指出下面代碼的錯(cuò)誤,并給出修改措施:T_S8 *itoa (T_S16 n)T_S8 retbuf20;sprintf(ret
15、buf%dn);/ 將整數(shù)轉(zhuǎn)化為字符串returnretbuf;/ 希望返回字符串請(qǐng)指出下面代碼的錯(cuò)誤,并給出修改措施:T_S8 *p = NULL;T_S16 nMemSize = 0;p = malloc(1024);nMemSizesizeof(p);/ 希望得到這個(gè)指針變量所分配的內(nèi)存塊的大小malloc()據(jù)類(lèi)型?malloc()的函數(shù)原型。行訪問(wèn)。剛才被懸掛的指針又指向了新分配的內(nèi)存塊。請(qǐng)?jiān)O(shè)計(jì)一種方案查出這類(lèi)錯(cuò)誤。Testvoid GetMemory(char*p)p = (char *)malloc(100);void Test(void)char *str = NULL; GetMemory(str); strcpy(str, hello world); printf(str);Testchar*GetMemory(void)char p = hello world; return p;void Test(void)char *str = NULL; str = GetMemory(); printf(str);TestVoid GetMemory2(char *p, intnum)*p = (char *)malloc(num);void Test(void)char *str = NULL; GetMemory(&str, 100); strcpy(
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度酒店消防系統(tǒng)設(shè)備更新與優(yōu)化合同3篇
- 2025年度私人承包數(shù)據(jù)中心節(jié)能減排建筑合同范本3篇
- 2025年教育培訓(xùn)機(jī)構(gòu)銷(xiāo)售居間代理協(xié)議3篇
- 2025年度個(gè)人股份質(zhì)押合同標(biāo)準(zhǔn)范本4篇
- 2025年度個(gè)人二手車(chē)轉(zhuǎn)讓協(xié)議書(shū)(全新升級(jí)版)3篇
- 美容院消防安全責(zé)任及管理協(xié)議書(shū)(二零二五年度)4篇
- 濕地湖施工方案
- 畢業(yè)答辯指導(dǎo)模板
- 2025年度個(gè)人裝修借款合同答辯狀編制指南4篇
- 2024年中級(jí)經(jīng)濟(jì)師考試題庫(kù)含答案(能力提升)
- pcs-985ts-x說(shuō)明書(shū)國(guó)內(nèi)中文版
- GB 11887-2012首飾貴金屬純度的規(guī)定及命名方法
- 小品《天宮賀歲》臺(tái)詞劇本手稿
- 醫(yī)院患者傷口換藥操作課件
- 欠薪強(qiáng)制執(zhí)行申請(qǐng)書(shū)
- 體檢報(bào)告單入職體檢模板
- 礦山年中期開(kāi)采重點(diǎn)規(guī)劃
- 資源庫(kù)建設(shè)項(xiàng)目技術(shù)規(guī)范匯編0716印刷版
- GC2級(jí)壓力管道安裝質(zhì)量保證體系文件編寫(xiě)提綱
- 預(yù)應(yīng)力混凝土簡(jiǎn)支小箱梁大作業(yè)計(jì)算書(shū)
- 燃燒機(jī)論文定型機(jī)加熱論文:天然氣直燃熱風(fēng)技術(shù)在定型機(jī)中的應(yīng)用
評(píng)論
0/150
提交評(píng)論