版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第六部分 預(yù)處理命令61 選擇題1 下面敘述中正確的是( )。A. 帶參數(shù)的宏定義中參數(shù)是沒有類型的B. 宏展開將占用程序的運(yùn)行時(shí)間C. 宏定義命令是C語言中的一種特殊語句D. 使用#include命令包含的頭文件必須以“.h”為后綴2 下面敘述中正確的是( )。A. 宏定義是C語句,所以要在行末加分號B. 可以使用#undef命令來終止宏定義的作用域C. 在進(jìn)行宏定義時(shí),宏定義不能層層嵌套D. 對程序中用雙引號括起來的字符串內(nèi)的字符,與宏名相同的要進(jìn)行置換3 在“文件包含”預(yù)處理語句中,當(dāng)#include后面的文件名用雙引號括起時(shí),尋找被包含文件的方式為( )。A. 直接按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式
2、搜索目錄B. 先在源程序所在目錄搜索,若找不到,再按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索C. 僅僅搜索源程序所在目錄D. 僅僅搜索當(dāng)前目錄4 下面敘述中不正確的是( )。A. 函數(shù)調(diào)用時(shí),先求出實(shí)參表達(dá)式,然后帶入形參。而使用帶參的宏只是進(jìn)行簡單的字符替換B. 函數(shù)調(diào)用是在程序運(yùn)行時(shí)處理的,分配臨時(shí)的內(nèi)存單元。而宏展開則是在編譯時(shí)進(jìn)行的,在展開時(shí)也要分配內(nèi)存單元,進(jìn)行值傳遞C. 對于函數(shù)中的實(shí)參和形參都要定義類型,二者的類型要求一致,而宏不存在類型問題,宏沒有類型D. 調(diào)用函數(shù)只可得到一個(gè)返回值,而用宏可以設(shè)法得到幾個(gè)結(jié)果5 下面敘述中不正確的是( )。A. 使用宏的次數(shù)較多時(shí),宏展開后源程序長度增長。而函
3、數(shù)調(diào)用不會(huì)使源程序變長B. 函數(shù)調(diào)用是在程序運(yùn)行時(shí)處理的,分配臨時(shí)的內(nèi)存單元。而宏展開則是在編譯時(shí)進(jìn)行的,在展開時(shí)不分配內(nèi)存單元,不進(jìn)行值傳遞C. 宏替換占用編譯時(shí)間D. 函數(shù)調(diào)用占用編譯時(shí)間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都是C語句 B.#define是C語句,而printf不是C.printf是C語句,但
4、#define不是 D.#define和printf都不是C語句8 以下敘述中正確的是( )。A. 用#include包含的頭文件的后綴不可以是“.a”B. 若一些源程序中包含某個(gè)頭文件;當(dāng)該頭文件有錯(cuò)時(shí),只需對該頭文件進(jìn)行修改,包含此頭文件所有源程序不必重新進(jìn)行編譯C. 宏命令行可以看作是一行C語句D. C編譯中的預(yù)處理是在編譯之前進(jìn)行的9 下列程序運(yùn)行結(jié)果為( )。#define L 2*PI*R#define S PI*R*Rmain( printf("L=%f S=%fn",L,S; 10以下程序執(zhí)行的輸出結(jié)果是( 。 #define MIN(x,y (x<(
5、y?(x:(ymain( int i,j,k;i=10;j=15;k=10*MIN(i,j;printf("%dn",k;11下列程序執(zhí)行后的輸出結(jié)果是( 。#define MA(x x*(x-1main( int a=1,b=2; printf("%d n",MA(1+a+b;A. 6 B. 8 C. 10 D. 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.
6、1213程序中頭文件typel.h 的內(nèi)容是( 。#define N 5#define M1 N*3程序如下:#include "type1.h"#define M2 N*2main( int i;i=M1+M2; printf("%dn",i;程序編譯后運(yùn)行的輸出結(jié)果是( )。A. 10 B. 20 C. 25 D. 3014請讀程序:#include #define SUB(X,Y (X*Ymain( int a=3, b=4;printf("%d", SUB(a+, b+;上面程序的輸出結(jié)果是( )。A. 12 B. 15 C.
7、 16 D. 2015執(zhí)行下面的程序后,a的值是( 。#define SQR(X X*Xmain( int a=10,k=2,m=1;a/=SQR(k+m/SQR(k+m;printf("%dn",a; A. 10 B. 1 C. 9 D. 016設(shè)有以下宏定義#define N 3#define Y(n (N+1*n則執(zhí)行語句:z=2 * (N+Y(5+1;后,z的值為( 。A. 出錯(cuò) B. 42 C. 48 D. 5417以下程序的輸出結(jié)果是( 。#define f(x x*xmain( int a=6,b=2,c;c=f(a / f(b;printf("%d
8、n",c;A. 9 B. 6 C. 36 D. 1818有如下程序#define N 2#define M N+1#define NUM 2*M+1main( int i;for(i=1;i<=NUM;i+printf("%dn",i;該程序中的for循環(huán)執(zhí)行的次數(shù)是( 。A. 5 B. 6 C. 7 D. 819執(zhí)行如下程序后,輸出結(jié)果為( )。#include #define N 4+1#define M N*2+N#define RE 5*M+M*Nmain(printf("%d",RE/2;20以下程序的輸出結(jié)果是( )。#def
9、ine LETTER 0main(char str20= "C Language",c;int i;i=0;while(c=stri!=0i+;#if LETTERif(c>=a&&c<=z c=c-32;#elseif(c>=A&&c<=Z c=c+32;#endifprintf("%c",c;A. C Language B. c language C. C LANGUAGE D. c LANGUAGE62 填空題1 以下程序的輸出結(jié)果是_。#define MAX(x,y (x>(y?(x:
10、(ymain( 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*xmain( 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)容交換,請?zhí)羁铡loat a=5,b=16,c;MYSWAP( 【1
11、】 ,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 【1】 L=2*PI*R; 【2】 ; main( float r,l,s,v; printf("input a radus: "scanf(
12、"%f",&r; CIRCLE(r,l,s,v;printf("r=%.2fn l=%.2fn s=%.2fn v=%.2fn", 【3】 ; 63 答案及部分解析一選擇題答案19.C 20.B 1. 解析:關(guān)于宏的習(xí)題,我們要牢記一點(diǎn):宏展開只是簡單的字符串替換。宏名無類型,宏的參數(shù)也沒有類型,所以選項(xiàng)A是正確的。宏展開是在正式編譯以前進(jìn)行的,不會(huì)占用程序的運(yùn)行時(shí)間,而會(huì)占用編譯時(shí)間,所以選項(xiàng)B錯(cuò)誤。規(guī)定所有的編譯預(yù)處理命令都不是C語言中的語句,因而,編譯預(yù)處理命令不以分號作為結(jié)束符,所以選項(xiàng)C錯(cuò)誤。頭文件習(xí)慣上以“.h”為后綴,但它只是習(xí)慣而
13、不是規(guī)定。所以選項(xiàng)D錯(cuò)誤。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)行10*(i的運(yùn)算;把值帶入宏展開式為k=10*10<15?10:15;,條件表達(dá)式的值為15。所以選項(xiàng)A是正確的。20.解析:條件編譯的命令總共有三種:一種是#ifdef 標(biāo)識符#else#endif,作用是當(dāng)標(biāo)識符被定義過,就編譯前一段程序,否則編譯后一段程序;第二種是#ifdef 標(biāo)識符#else#endif,作用是當(dāng)標(biāo)識符未被定義過,就編譯前一段程序,否則編譯后一段程序;第三種是#if 表達(dá)式#else#endif,作用是表達(dá)式的值為“真”時(shí)編譯前一段程序,否則編譯后一段程序。本例題中,由于表達(dá)式LETT
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年滬教新版選修1地理上冊階段測試試卷含答案
- 2025至2031年中國沖模刃磨機(jī)行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025年人教版七年級歷史上冊階段測試試卷
- 船舶維修行業(yè)備品備件需求分析
- JL1901年度技術(shù)研發(fā)審核計(jì)劃
- 青島版五年級上冊科學(xué)主題活動(dòng)計(jì)劃
- 活動(dòng)策劃英文郵件格式范文
- 禁毒法治宣傳與教育實(shí)施計(jì)劃
- 檢驗(yàn)科質(zhì)量管理與風(fēng)險(xiǎn)控制工作計(jì)劃
- 健身房會(huì)員體質(zhì)健康跟蹤計(jì)劃
- 三年級數(shù)學(xué)(上)計(jì)算題專項(xiàng)練習(xí)附答案集錦
- 鋪大棚膜合同模板
- 長亭送別完整版本
- 《鐵路軌道維護(hù)》課件-更換道岔尖軌作業(yè)
- 股份代持協(xié)議書簡版wps
- 職業(yè)學(xué)校視頻監(jiān)控存儲系統(tǒng)解決方案
- 《銷售心理學(xué)培訓(xùn)》課件
- 2024年安徽省公務(wù)員錄用考試《行測》真題及解析
- 你比我猜題庫課件
- 豐順縣鄉(xiāng)鎮(zhèn)集中式飲用水水源地基礎(chǔ)狀況調(diào)查和風(fēng)險(xiǎn)評估報(bào)告
- 無人駕駛航空器安全操作理論復(fù)習(xí)測試附答案
評論
0/150
提交評論