下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第六章 預(yù)處理命令6 1 選擇題1 下面敘述中正確的是( )。A. 帶參數(shù)的宏定義中參數(shù)是沒有類型的B. 宏展開將占用程序的運(yùn)行時間C. 宏定義命令是 C 語言中的一種特殊語句D. 使用 #include 命令包含的頭文件必須以“ .h ”為后綴2 下面敘述中正確的是( )。A. 宏定義是 C 語句,所以要在行末加分號B. 可以使用 #undef 命令來終止宏定義的作用域C. 在進(jìn)行宏定義時,宏定義不能層層嵌套D. 對程序中用雙引號括起來的字符串內(nèi)的字符,與宏名相同的要進(jìn)行置換3 在“文件包含”預(yù)處理語句中,當(dāng) #include 后面的文件名用雙引號括起時,尋找被包含文件 的方式為( )。A.
2、 直接按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索目錄B. 先在源程序所在目錄搜索,若找不到,再按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索C. 僅僅搜索源程序所在目錄D. 僅僅搜索當(dāng)前目錄4 下面敘述中不正確的是( )。A. 函數(shù)調(diào)用時,先求出實(shí)參表達(dá)式,然后帶入形參。 而使用帶參的宏只是進(jìn)行簡單的字符替 換B. 函數(shù)調(diào)用是在程序運(yùn)行時處理的,分配臨時的內(nèi)存單元。而宏展開則是在編譯時進(jìn)行的, 在展開時也要分配內(nèi)存單元,進(jìn)行值傳遞C. 對于函數(shù)中的實(shí)參和形參都要定義類型, 二者的類型要求一致,而宏不存在類型問題, 宏 沒有類型D. 調(diào)用函數(shù)只可得到一個返回值,而用宏可以設(shè)法得到幾個結(jié)果5 下面敘述中不正確的是( )。A. 使用宏的次
3、數(shù)較多時,宏展開后源程序長度增長。而函數(shù)調(diào)用不會使源程序變長B. 函數(shù)調(diào)用是在程序運(yùn)行時處理的,分配臨時的內(nèi)存單元。而宏展開則是在編譯時進(jìn)行的, 在展開時不分配內(nèi)存單元,不進(jìn)行值傳遞C. 宏替換占用編譯時間D. 函數(shù)調(diào)用占用編譯時間6 下面敘述中正確的是 ( ) 。A. 可以把 define 和 if 定義為用戶標(biāo)識符B. 可以把 define 定義為用戶標(biāo)識符,但不能把 if 定義為用戶標(biāo)識符C. 可以把 if 定義為用戶標(biāo)識符,但不能把 define 定義為用戶標(biāo)識符D. define 和 if 都不能定義為用戶標(biāo)識符7 下面敘述中正確的是( )。A. #define 和 printf 都
4、是 C 語句B.#define是 C 語句,而 printf 不是C.printf 是 C 語句,但 #define 不是 D .#define 和 printf 都不是 C 語句 8 以下敘述中正確的是( )。A. 用 #include 包含的頭文件的后綴不可以是“ .a ”包含此B. 若一些源程序中包含某個頭文件;當(dāng)該頭文件有錯時,只需對該頭文件進(jìn)行修改, 頭文件所有源程序不必重新進(jìn)行編譯C. 宏命令行可以看作是一行 C 語句D. C 編譯中的預(yù)處理是在編譯之前進(jìn)行的 9 下列程序運(yùn)行結(jié)果為( )。#define R 3.0#define PI 3.1415926#define L 2*P
5、I*R#define S PI*R*Rmain()printf(L=%f S=%fn,L,S);A. L=18.849556 S=28.274333B. 18.849556=18.849556 28.274333=28.274333C. L=18.849556 28.274333=28.274333D. 18.849556=18.849556 S=28.274333 10以下程序執(zhí)行的輸出結(jié)果是 ( ) 。#define MIN(x,y) (x)(y)?(x):(y)main()int i,j,k;i=10;j=15;k=10*MIN(i,j);printf(%dn,k);A.15 B.100
6、 C.10 D.150 11下列程序執(zhí)行后的輸出結(jié)果是 ( ) 。#define MA(x) x*(x-1)main()int a=1,b=2;printf(%d n,MA(1+a+b);A. 6B. 8 C. 10D. 1212以下程序的輸出結(jié)果是 ( ) 。#define M(x,y,z) x*y+zmain()int a=1,b=2, c=3; printf(%dn, M(a+b,b+c, c+a);A. 19 B. 17 C. 15 D. 12 13程序中頭文件 typel.h 的內(nèi)容是 ( ) 。#define N 5#define M1 N*3 程序如下:#include type
7、1.h#define M2 N*2main()int i; i=M1+M2; printf(%dn,i); 程序編譯后運(yùn)行的輸出結(jié)果是( )。A. 10 B. 20 C. 25 D. 30 14請讀程序 :#include#define SUB(X,Y) (X)*Y main()int a=3, b=4; printf(%d, SUB(a+, b+); 上面程序的輸出結(jié)果是( )。A. 12 B. 15 C. 16 D. 20 15執(zhí)行下面的程序后 ,a 的值是 ( ) 。#define SQR(X) X*Xmain( )int a=10,k=2,m=1; a/=SQR(k+m)/SQR(k+
8、m); printf(%dn,a);A. 10 B. 1 C. 9 D. 0 16設(shè)有以下宏定義#define N 3#define Y(n) (N+1)*n)則執(zhí)行語句:z=2 * (N+Y(5+1); 后,z的值為()。A. 出錯 B. 42C. 48D. 541 7以下程序的輸出結(jié)果是 ( )。#define f(x) x*xmain( )int a=6,b=2,c; c=f(a) / f(b); printf(%dn,c);A. 9 B. 6 C. 36D. 1818有如下程序#define N 2 #define M N+1 #define NUM 2*M+1 main() int
9、i; for(i=1;i=NUM;i+) printf(%dn,i); 該程序中的 for 循環(huán)執(zhí)行的次數(shù)是 ( ) 。A. 5 B. 6 C. 7 D. 8 19執(zhí)行如下程序后,輸出結(jié)果為()。#include #define N 4+1 #define M N*2+N #define RE 5*M+M*N main() printf(%d,RE/2);以上結(jié)果都不正確A.150 B.100 C. 41 D. 20以下程序的輸出結(jié)果是()。#define LETTER 0 main() char str20= C Language,c; int i; i=0;while(c=stri)!=
10、0) i+;#if LETTERif(c= a &c=A&c(y)?(x):(y) main()int a=5,b=2,c=3,d=3,t; t=MAX(a+b,c+d)*10; printf(%dn,t);2 下面程序的運(yùn)行結(jié)果是 。#define N 10 #define s(x) x*x #define f(x) (x*x) main()int i1,i2; i1=1000/s(N); i2=1000/f(N);printf(%d,%dn,i1,i2);3 設(shè)有如下宏定義#define MYSWAP(z,x,y) z=x; x=y; y=z;以下程序段通過宏調(diào)用實(shí)現(xiàn)變量a、b內(nèi)容交換,請
11、填空。float a=5,b=16,c;MYSWAP( 【1】 ,a,b);4 計(jì)算圓的周長、面積和球的體積【1】 main() float l,r,s,v;printf(input a radus: ); scanf(%f ,【 2】 );l=2.0*PI*r; s=PI*r*r; v=4.0/3*(【 3】 );printf(l=%.4fn s=%.4fn v=%.4fn,l,s,v);5 計(jì)算圓的周長、面積和球的體積#define PI 3.1415926#define 【 1】 L=2*PI*R; 【2】 ; main()3】 );float r,l,s,v; printf(input
12、 a radus: ); scanf(%f,&r); CIRCLE(r,l,s,v);printf(r=%.2fn l=%.2fn s=%.2fn v=%.2fn, 63 答案及部分解析一選擇題答案1.A2.B3.B4.B5.D6.B7.D8.D9.A10.A11.B12.D13.C14.A15.B16.C17.C18.B19.C20.B1. 解析:關(guān)于宏的習(xí)題,我們要牢記一點(diǎn):宏展開只是簡單的字符串替換。宏名無類型,宏的參 數(shù)也沒有類型,所以選項(xiàng)A) 是正確的。宏展開是在正式編譯以前進(jìn)行的,不會占用程序的運(yùn)行時間,而會占用編譯時間,所以選項(xiàng)B)錯誤。規(guī)定所有的編譯預(yù)處理命令都不是C語言中的語句,因而,編譯預(yù)處理命令不以分號作為結(jié)束符,所以選項(xiàng)C)錯誤。頭文件習(xí)慣上以“ .h ”為后綴,但它只是習(xí)慣而不是規(guī)定。所以選項(xiàng)D)錯誤。9. 解析:注意雙引號中的宏名不被展開,所以輸出結(jié)果為L=18.849556 S=28.274333 ,而不是18.849556=18.849556 28.274333=28.274333 。10. 解 析 : 宏 展 開 就 是 簡 單 的 字 符 串 替 換 。 語 句 k=10*MIN(i,j); 經(jīng) 過 宏 展 開 為k=10*(i)(j)?(i):(j);。由于 *號的優(yōu)先級要高于 號的優(yōu)先級,因此要先進(jìn)行
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024零星工程勞務(wù)分包合同范本
- 健康飲食的營養(yǎng)搭配
- 心腦血管藥理、食管癌放療增敏研究放療后復(fù)發(fā)食管癌三維適形放射治療的療效分析知識講解
- 二零二五版門面房屋租賃合同租賃雙方合同解除條件及程序4篇
- 2025年度紡織面料回收與再生利用合同4篇
- 2025年度環(huán)保型綠化材料供應(yīng)合同4篇
- 6 傳統(tǒng)游戲我會玩2023-2024學(xué)年二年級下冊道德與法治同步說課稿(統(tǒng)編版)
- 中國鐵路行車安全監(jiān)控系統(tǒng)行業(yè)發(fā)展監(jiān)測及投資戰(zhàn)略研究報(bào)告
- 4《神奇的紙》說課稿-2023-2024學(xué)年科學(xué)二年級上冊教科版
- 20 美麗的小興安嶺 第一課時(說課稿)2024-2025學(xué)年統(tǒng)編版語文三年級上冊
- 稱量與天平培訓(xùn)試題及答案
- 超全的超濾與納濾概述、基本理論和應(yīng)用
- 2020年醫(yī)師定期考核試題與答案(公衛(wèi)專業(yè))
- 2022年中國育齡女性生殖健康研究報(bào)告
- 各種靜脈置管固定方法
- 消防報(bào)審驗(yàn)收程序及表格
- 教育金規(guī)劃ppt課件
- 呼吸機(jī)波形分析及臨床應(yīng)用
- 常用緊固件選用指南
- 私人借款協(xié)議書新編整理版示范文本
- 自薦書(彩色封面)
評論
0/150
提交評論