版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第九章編譯預(yù)處理9.1 選擇題【題9.1 以下敘述中不正確的是 。A預(yù)處理命令行都必須以#開始B)在程序中凡是以#號(hào)開始的語(yǔ)句行都是預(yù)處理命令行C) C程序在執(zhí)行過(guò)程中對(duì)預(yù)處理命令行進(jìn)行處理D)以下是正確的宏定義#define IBM_PC【題9.2 以下敘述中正確的是 。A 在程序的一行上可以出現(xiàn)多個(gè)有效的預(yù)處理命令行B)使用帶參的宏時(shí),參數(shù)的類型應(yīng)與宏定義時(shí)的一致C)宏替換不占用運(yùn)行時(shí)間,只占編譯時(shí)間D)在以下定義中C R是稱為“宏名”的標(biāo)識(shí)符#define C R 045【題9.3】請(qǐng)讀程序:#define ADD(x) x+x main()int m=1,n=2,k=3;int sum
2、=ADD(m+n)*k;printf("sum=%d ,sum);上面程序的運(yùn)行結(jié)果是 。A) sum=9B) sum=10C) sum=12D) sum=18【題9.4】以下程序的運(yùn)行結(jié)果是 。#define MIN(x,y) (x)<(y)?(x):(y) main() int i=10,j=15,k;k=10*MIN(i,j);printf( "%d n" ,k);A) 10B) 15C) 100D) 150【題9.5 在宏定義#define PI 3.14159 中,用宏名PI代替一個(gè)A)常量B)單精度數(shù)C)雙精度數(shù)D)字符串【題9.6】以下程序的運(yùn)
3、行結(jié)果是#include <stdio.h>2.84+yprintf("%d ,(int)(a)PR(a); putchar( 'n')#define FUDGE(y)#define PR(a)#define PRINT1(a) main()int x=2;PRINT1(FUDGE(5)*x);A) 11B) 12C) 13D) 15OB)宏名無(wú)類型D)宏名必須用大寫字母表示【題9.7】以下有關(guān)宏替換的敘述不正確的是A)宏替換不占用運(yùn)行時(shí)間C)宏替換只是字符替換【題9.8】C語(yǔ)言的編譯系統(tǒng)對(duì)宏命令的處理是 A)在程序運(yùn)行時(shí)進(jìn)行的B)在程序連接時(shí)進(jìn)行的C)和
4、C程序中的其它語(yǔ)句同時(shí)進(jìn)行編譯的D)在對(duì)源程序中其它成份正式編譯之前進(jìn)行的【題9.9 若有宏定義如下:#define X 5#define Y X+1#define Z Y*X/2則執(zhí)行以下printf語(yǔ)句后,輸出結(jié)果是 int a; a=Y;printf("d n”,Z);printf("%d n” , -a);A) 7B) 12C) 12D) 76655【題9.10若有以下宏定義如下:#define N 2 #define Y(n) (N+1)*n)則執(zhí)行語(yǔ)句z=2*(N+Y(5);后的結(jié)果是。A)語(yǔ)句有錯(cuò)誤B) z=34C) z=70D) z無(wú)定值【題 9.11 若有
5、宏定義:#define MOD(x,y) x%y 則執(zhí)行以下語(yǔ)句后的輸出為 int z,a=15,b=100;z=MOD(b,a);printf( "%d n” ,z+);A) 11B) 10C) 6D)宏定義不合法【題9.12】以下程序的運(yùn)行結(jié)果是 。#define MAX(A,B) (A)>(B)?(A):(B)#define PRINT(Y) printf( "Y=%d t”,丫) main()int a=1,b=2,c=3,d=4,t;t=MAX(a+b,c+d);PRINT(t);A) Y=3B)存在語(yǔ)法錯(cuò)誤C) Y=7D) Y=0【題9.13】以下程序段中
6、存在錯(cuò)誤的是 。A) #define array_size 100int array1array_size;B) #define PI 3.14159#define S(r) PI*(r)*(r) ,area=S(3.2);C) #define PI 3.14159#define S(r) PI*(r)*(r) ,area=S(a+b);D) #define PI 3.14159#define S(r) PI*(r)*(r) ,area=S(a);【題9.14】請(qǐng)讀程序:#include <stdio.h>#define MUL(x,y) (x)*y main() int a=3,
7、b=4,c;c=MUL(a+,b+); printf( "%d n" ,c);上面程序的輸出結(jié)果是 。A) 12B) 15C) 20D) 16【題9.15 #define能作簡(jiǎn)單的替代,用宏替代計(jì)算多項(xiàng)式 4*x*x+3*x+2之值的函數(shù)f,正 確的宏定義是 。A) #define f(x) 4*x*x+3*x+2B) #define f 4*x*x+3*x+2C) #define f(a) (4*a*a+3*a+2)D) #define (4*a*a+3*a+2) f(a)【題9.16】對(duì)下面程序段:#define A 3#define B(a) (A+1)*a) , x
8、=3*(A+B(7);正確的判斷是。A)程序錯(cuò)誤,不許嵌套宏定義B) x=93C) x=21D)程序錯(cuò)誤,宏定義不許有參數(shù)2) 【題9.17】以下程序中,第一個(gè)輸出值是(1) ,第二個(gè)輸出值是( #include <stdio.h># define M 3# define N (M+1)# define NN N*N/2 main() printf( "d n”,NN);printf( "d , 5*NN); 【1】A)3B)4Q 6D)82 A)17B)18Q 30D)40【題9.18】以下程序的輸出結(jié)果為 。#include <stdio.h>#
9、define F(y) 3.84+y#define PR(a) printf( "%d ,(int)(a)#define PRINT(a) PR(a); putchar( 'n')main() int x=2;PRINT(F(3)*x); A) 8B) 9C) 10D) 11【題9.19】以下程序的輸出結(jié)果為 。#define PT 5.5#define S(x) PT*x*x main()int a=1,b=2;printf( "4.1f n",S(a+b);A) 12.0B) 9.5C) 12.5D) 33.5【題9.20】以下在任何情況下計(jì)算
10、平方數(shù)時(shí)都不會(huì)引起二義性的宏定義是 。 A) #define POWER(x) x*x B) #define POWER(x) (x)*(x) C) #define POWER(x) (x*x) D) #define POWER(x) (x)*(x)【題9.21】在“文件包含”預(yù)處理語(yǔ)句的使用形式中,當(dāng)#3后面的文件名用“ ”(雙引號(hào))括起時(shí),尋找被包含文件的方式是 。 A)直接按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索目錄 B)先在源程序所在目錄搜索,再按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索 C)僅僅搜索源程序所在目錄 D)僅僅搜索當(dāng)前目錄【題9.22】在“文件包含”預(yù)處理語(yǔ)句的使用形式中,當(dāng) #include后面的文件名
11、用 < > (尖 括號(hào))括起時(shí),尋找被包含文件的方式是 。 A)僅僅搜索當(dāng)前目錄 B)僅僅搜索源程序所在目錄 C)直接按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索目錄 D)先在源程序所在目錄搜索,再按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索【題9.23】請(qǐng)讀程序: #define LETTER 0 main() char str20="C Language” ,c;int i; i=0; while(c=stri)!= 0') i+; #if LETTER if(c>= 'a' &&c<= 'z') c=c-32;#else if(c>
12、='A' &&c<= 'Z')c=c+32;#endif printf("%C ,c);上面程序的運(yùn)行結(jié)果是 。A C LanguageB) c languageC) C LANGUAGE D) c lANGUAGE【題9.24】以下正確的描述是。A) C語(yǔ)言的預(yù)處理功能是指完成宏替換和包含文件的調(diào)用B)預(yù)處理指令只能位于 C源程序文件的首部C)凡是C源程序中行首以“ #"標(biāo)識(shí)的控制行都是預(yù)處理指令D) C語(yǔ)言的編譯預(yù)處理就是對(duì)源程序進(jìn)行初步的語(yǔ)法檢查【題9.25】C語(yǔ)言提供的預(yù)處理功能包括條件編譯,其基本形式為:#XX
13、X標(biāo)記符程序段1#else程序段2#endif這里XXX可以是。A)define 或 includeB)ifdef或 includeC)ifdef 或 ifndef 或define D)ifdef或 ifndef或 if9.2 填空題【題9.26 設(shè)有以下宏定義:#define WIDTH 80#define LENGTH WIDTH+40則執(zhí)行賦值語(yǔ)句:v=LENGTH*20; (v為int型變量)后,v的值是【題9.27】設(shè)有以下宏定義:#define WIDTH 80#define LENGTH (WIDTH+40)則執(zhí)行賦值語(yǔ)句:k=LENGTH*20; (k為int型變量)后,k的值
14、是【題9.28】下面程序的運(yùn)行結(jié)果是 。#define DOUBLE(r) r*r main() int x=1,y=2,t;t=DOUBLE(x+y); pri ntf( "%d n" ,t);【題9.29】下面程序的運(yùn)行結(jié)果是 。#define MUL(z) (z)*(z)main()printf( "d n”,MUL(1+2)+3);【題9.30】下面程序的運(yùn)行結(jié)果是 。#define POWER(x) (x)*(x) main() int i=1;while(i<=4) printf( "%d t",POWER(i+); prin
15、tf( “ n”);【題9.31】下面程序的運(yùn)行結(jié)果是 。#define EXCH (a,b ) int t; t=a; a=b; b=t; main() int x=5,y=9;EXCH(x,y); printf( "x=%d,y=%d n” ,x,y);【題9.32】下面程序的運(yùn)行結(jié)果是 。#define MAX(a,b,c) (a)>(b)?(a)>(c)?(a):(c):(b)>(c)?(b):(c) main() int x,y,z;x=1;y=2;z=3;printf("%d,” ,MAX(x,y,z);printf("%d,” ,M
16、AX(x+y,y,y+x);printf( "%d n” ,MAX(x,y+z,z);【題9.33】下面程序的運(yùn)行結(jié)果是 。#define SELECT(a,b) a<b?a:b main() int m=2,n=4;printf( "%d n",SELECT(m,n);【題9.34】下面程序的運(yùn)行結(jié)果是 。#define MAX(a,b) (a>b?a:b)+1main()int i=6,j=8,k; printf( "%d n”,MAX(i,j);【題9.35 設(shè)有宏定義如下:#define MIN(x,y) (x)<(y)?(x)
17、:(y)#define T(x,y,r) x*r*y/4則執(zhí)行以下語(yǔ)句后,s1的值為【1,s2的值為【2】。int a=1,b=3,c=5,s1,s2;s1=MIN(a=b,b-a);s2=T(a+,a*+b,a+b+c);【題9.36】請(qǐng)讀程序:#include <stdio.h>#define BOT (-2)#define TOP (BOT+5)#define PRI(arg) printf("%d n" ,arg)#define FOR(arg) for(;(arg);(arg)-) main()int i=BOT產(chǎn)TOP;FOR(j) switch(j
18、) case 1: PRI(i+);case 2: PRI(j); break;default: PRI(i);執(zhí)行FOR1環(huán)時(shí),j的初值是【1】,終值是【2】?!绢}9.37】下面程序的運(yùn)行結(jié)果是 。#define PR(ar) printf("%d ,ar)main()int j,a=1,3,5,7,9,11,13,15,i=5;for(j=3;j;j-)switch(j)case 1:case 2: PR(ai+); break;case 3: PR(a-i);【題9.38】下面程序的運(yùn)行結(jié)果是 #define PRI printf#define NL " n"
19、;#define D"%d#define D1 D NL#define D2 D D NL#define D3 D D D NL#define D4 D D D D NL#define S"%S'main()int a,b,c,d;char string尸 "TABLE ; a=1; b=2; c=3; d=4;PRI(D1,a);PRI(D2,a,b);PRI(D3,a,b,c);PRI(D4abed); PRI(S,string);【題9.39】以下程序的運(yùn)行結(jié)果是 #define A 4#define B(x) A*x/2 main() float
20、c,a=4.5;c=B(a);printf( "%5.1f n" ,c);【題9.40】以下程序的運(yùn)行結(jié)果是 #include <stdio.h>#define sw(x,y) xA=y; yA=x; xA=y; main()int a=10,b=01;sw(a,b);printf( "%d,%d n” ,a,b);【題9.41】以下程序的輸出結(jié)果是 。#define PR(a) printf( "%d t",(int)(a)#define PRINT(a) PR(a); printf("ok! ”)main()int i
21、,a=1;for(i=0;i<3;i+)PRINT(a+i); printf( “ n”);【題9.42】以下程序的輸出結(jié)果是 。main()int b=5;#define b2#define f(x) b*(x) int y=3;printf("%d n” ,f(y+1);#undef b printf("%d n” ,f(y+1);#define b3 printf("%d n” ,f (y+1);【題9.43】設(shè)有以下程序,為使之正確運(yùn)行,請(qǐng)?jiān)诳谥刑钊霊?yīng)包含的命令行。(注:try_me() 函數(shù)在a:myfile.txt中有定義。)口main() pr
22、intf(“ n”);try_me(); printf(“ n”);【題9.44】設(shè)有以下程序,為使之正確運(yùn)行,請(qǐng)?jiān)诳谥刑钊霊?yīng)包含的命令行。/* a.c */ 【1】 【2】main() printf( “ n”); try_me();/* 函數(shù)調(diào)用 */printf( “ n”);注:try_me()函數(shù)在 myfile.txt 中有定義,其內(nèi)容如下:/* myfile.txt */ try_me()char c;if(c=getchar()!= , n )try_me(); putchar(c);【題9.45】設(shè)有以下程序,為使之正確運(yùn)行,請(qǐng)?jiān)诳谥刑钊霊?yīng)包含的命令行。 口main()int
23、 x=2,y=3;printf( "d n”,pow(x ,y);【題9.46】以下程序的運(yùn)行結(jié)果是 。main()int a=10,b=20,c;c=a/b;#ifdef DEBUGprintf( "a=%d,b=%d: ,a,b);#endif printf( "c=%d n” ,c);【題9.47】以下程序的運(yùn)行結(jié)果是 。#define DEBUGmain()int a=14,b=15,c;c=a/b;#ifdef DEBUGprintf( "a=%o,b=%o: ,a,b);#endif printf( "c=%d n” ,c);【題9
24、.48】以下程序的運(yùn)行結(jié)果是 。#define DEBUG main()int a=20,b=10,c;c=a/b;#ifndef DEBUGprintf("a=%o,b=%o: ,a,b);#endifprintf("c=%d n” ,c);9.3 編程題【題9.49】輸入兩個(gè)整數(shù),求它們相除的余數(shù)。用帶參的宏來(lái)編程實(shí)現(xiàn)?!绢}9.50】試定義一個(gè)帶參的宏 swap(x,y),以實(shí)現(xiàn)兩個(gè)整數(shù)之間的交換,并利用它將一維數(shù)組a和b的值進(jìn)行交換。9. 3編程越isa7r9. 49輸入兩個(gè)整數(shù).求它們扣除的余數(shù).用帶參的宏來(lái)編理實(shí)現(xiàn).【遮U-E?!吭嚩x一個(gè)帶拶的宏川“力.以實(shí)現(xiàn)兩
25、個(gè)假數(shù)之間的交換,并利用它帶一維 數(shù)割a和b的他進(jìn)行交挾.??冀獯穑侯}色1 C【建9H【題9. 1LE題9. 16】題鞏21【題9. 26 IHBB 880題 52J C IS 軋 71 0 r題樂(lè)12 I5 9.171 9.22 趣 &. 27:DD9 9. 31 B «9.8 D 虺立L31 口 題9, 18】B 9.231 RIS B. 4 B1題9.9】D【題9一 14 J A【題9. 191B 9. 24 CCJ£9. 5 D畫90】 工題9. 15 【題9. 20 E趣 9.252400 1胭 蟲曲】5 【題9.源】12 1題 注蚪2 12鹿見 31 x=9r y=59. 35:1 39. 36: 1 3【旦32】3,3,52 282 0【囿9.332 1庖9, 3419【題9.37】 991
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度牛糞生態(tài)農(nóng)業(yè)合作合同范本4篇
- 2025年度工業(yè)廠房鋼管架施工與維護(hù)合同范本
- 2025年度土地租賃擔(dān)保與交通樞紐用地合同
- 2025年閑置高性能注塑機(jī)轉(zhuǎn)讓及操作培訓(xùn)合同3篇
- 二零二五年度企業(yè)文化活動(dòng)策劃與執(zhí)行合同2篇
- 2025年度拌合料生產(chǎn)環(huán)境監(jiān)測(cè)與改善合同4篇
- 二零二五年度建材產(chǎn)品銷售居間代理合同范本3篇
- 2025年度苗木種植與農(nóng)產(chǎn)品溯源合同4篇
- 二零二五年度停車場(chǎng)停車費(fèi)用結(jié)算與代收代付合同
- 2025版智能建筑幕墻安裝與維護(hù)一體化服務(wù)合同4篇
- DB32-T 4444-2023 單位消防安全管理規(guī)范
- 臨床三基考試題庫(kù)(附答案)
- 合同簽訂執(zhí)行風(fēng)險(xiǎn)管控培訓(xùn)
- DB43-T 3022-2024黃柏栽培技術(shù)規(guī)程
- 九宮數(shù)獨(dú)200題(附答案全)
- 人員密集場(chǎng)所消防安全管理培訓(xùn)
- 《聚焦客戶創(chuàng)造價(jià)值》課件
- PTW-UNIDOS-E-放射劑量?jī)x中文說(shuō)明書
- JCT587-2012 玻璃纖維纏繞增強(qiáng)熱固性樹脂耐腐蝕立式貯罐
- 典范英語(yǔ)2b課文電子書
- 員工信息登記表(標(biāo)準(zhǔn)版)
評(píng)論
0/150
提交評(píng)論