c語言編譯預處理及位運算習題答案_第1頁
c語言編譯預處理及位運算習題答案_第2頁
c語言編譯預處理及位運算習題答案_第3頁
c語言編譯預處理及位運算習題答案_第4頁
免費預覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、編譯預處理習題1. 一.單項選擇題在宏定義#defineA3.897678中,宏名A代替一個()。2. A)單精度數(shù)B)雙精度數(shù)C)常量D)字符串以下敘述中正確的是A)預處理命令行必須位于源文件的開頭B)在源文件的一行上可以有多條預處理命令3. C)宏名必須用大寫字母表示D)宏替換不占用程序的運行時間C語言的編譯系統(tǒng)對宏命令的處理()。A) 在程序運行時進行的B) 在程序連接時進行的C) 和C程序中的其它語句同時進行的4. 在對源程序中其它語句正式編譯之前進行的在文件包含預處理語句的中,被包含文件名用“<>”括起時,尋找被包含文件的方式是()。A)直接按系統(tǒng)設定的標準方式搜索目錄B

2、)先在源程序所在目錄搜索,再按系統(tǒng)設定的標準方式搜索C)僅僅在源程序所在目錄搜索5. D)僅僅搜索當前目錄以下說法中正確的是A)#define和printf都是C語句B)#define是C語句,而printf不是6. C)printf是C語句,但#define不是D)#define和printf都不是C語句#defineA3.897678#include<stdio.h>main()printf("A=%f",A);程序運行結(jié)果為()。A)3.897678=3.897678B)3.897678=AC)A=3.897678D)無結(jié)果有宏定義:#defineLI(a

3、,b)a*b#defineLJ(a,b)(a)*(b)在后面的程序中有宏引用:x=LI(3+2,5+8);y=LJ(3+2,5+8);則x、y的值是()。7. A)x=65,y=65B)x=21,y=65C)x=65,y=21D)x=21,y=21有以下程序#definef(x)(x*x)main()inti1,i2;i1=f(8)/f(4);i2=f(4+4)/f(2+2);printf("%d,%dn”,i1,i2);程序運行后的輸出結(jié)果是A) 64,28B) 4,4C) 4,3D) 64,64以下程序的輸出結(jié)果是#defineM(x,y,z)x*y+zmain()inta=1,

4、b=2,c=3;printf("%dn”,M(a+b,b+c,c+a);10 A)19B)17C)15D)12.有以下程序# defineN5# defineM1N*3# defineM2N*2main()# inti;i=M1+M2;printf("dn”,i);程序編譯后運行的輸出結(jié)果是:A)10B)20C)25D)30.有如下程序defineN2defineMN+1defineNUM2*M+1#main()inti;for(i=1;i<=NUM;i+)printf("%dn",i);該程序中的for循環(huán)執(zhí)行的次數(shù)是12 A)5B)6C)7D)

5、8.位運算是對運算對象按二進制位進行操作的運算,運算的對象是數(shù)據(jù),以的形式參與運算。13 A)整型原碼B)整型補碼C)數(shù)值原碼D)數(shù)值補碼.在位運算中,若左移時丟棄的高位不包含1,則每左移一位,相當于。14 A)操作數(shù)乘以2B)操作數(shù)除以2C)操作數(shù)除以4D)操作數(shù)乘以4.設intb=8;表達式(b>>2)/(b>>1)的值是。15 A)0B)2C)4D)8.若定義unsignedinta=3,b=10;printf("%dn",a<<2|b=1);則運行結(jié)果為。1. A)13B)12C)8D)14二.填空題C提供的預處理功能主要有宏定義

6、、文件包含、條件編譯等三種。2. C規(guī)定預處理命令必須以#開頭。3. 在預編譯時將宏名替換成宏定義中的“字符串”的過程稱為宏展開。4. 預處理命令不是C語句,不必在行末加;。5. 以頭文件stdio.h為例,文件包含的兩種格式為:_#includestdio.h_,_#6. include"stdio._。”定義宏的關鍵字是define。7. 設有如下運算符:&|、人,則按優(yōu)先級由低到高的排列順序為_、&人、|。8. 設二進制數(shù)i為00101101,若通過運算“咫”,使i的高4位取反低4位不變,則二進制數(shù)j的值應為_11110000。9. 設無符號整型變量a為6,b為

7、3,則表達式b&=a的值為2。10. 整型變量x和y的值相等且為非0值,則表達式xAy的結(jié)果為零。1. 二、閱讀程序題以下程序輸出結(jié)果是150。# includestdio.h# defineMAX(x,y)(x)(y)?(x):(y)main()inti,z,k;z=15;i=z-5;k=10*(MAX(i,z);printf("%dn",k);2. )以下程序輸出結(jié)果是23。# includestdio.h# defineADD(y)3.54+y# definePR(a)printf("%d,(int)(a)# definePR1(a)PR(a);pu

8、tchar('n')main()inti=4;PR1(ADD(5)*i);3. )設有如下宏定義:#defineMYSWAP(z,x,y)z=x;x=y;y=z;以下程序段通過宏調(diào)用實現(xiàn)變量a、b內(nèi)容交換,請?zhí)羁铡?. floata=5,b=16,c;MYSWAP(c,a,b);下列程序的輸出結(jié)果是100010。5. #defineN10#defines(x)x*x#definef(x)(x*x)%d%dn”,i1,i2);main()inti1,i2;i1=1000/s(N);i2=1000/f(N);printf(以下程序輸出結(jié)果是82012。main()intb=5;#d

9、efineb2#definef(x)b*(x)inty=3;printf("d”,f(y+1);#undefbprintf("d”,f(y+1);#defineb3printf("dn”,f(y+1);6. 下列程序的輸出結(jié)果是J1。#defineNX2+3#defineNYNX*NXmain()7. inti=0,m=0;for(;i<NY;i+)m+;printf("%dn",m);下列程序的輸出結(jié)果是MINo#defineMAX(a,b)a>b#defineEQU(a,b)a=b#defineMIN(a,b)a<bmai

10、n()8. inta=5,b=6;if(MAX(a,b)printf("MAXn”);if(EQU(a,b)printf("EQUn”);if(MIN(a,b)printf("MINn");下列程序的輸出結(jié)果是011Q#defineTESTmain()intx=0,y=1,z;z=2*x+y;#ifdefTESTprintf("%d%d”,x,y);#endifprintf("n",z);三.編程題1,定義一個帶參的宏,求兩個整數(shù)的余數(shù)。通過宏調(diào)用,輸出求得的結(jié)果。#defineR(m,n)(m)%(n)#include&l

11、t;stdio.h>voidmain()intm,n;printf("entertwointegers:n");scanf("%d%d",&m,&n);printf("remainder=%dn",R(m,n);)2,分別用函數(shù)和帶參的宏,從3個數(shù)中找出最大者。#include<stdio.h>#defineMAX(a,b)(a)>(b)?(a):(b)/implementationbyMACROintmax3(inta,intb,intc)/implementationbyfunctionin

12、tm;m=a>b?a:b;m=m>c?m:c;returnm;)voidmain()intm,n,k;printf("enter3integer:n");scanf("%d%d%d",&m,&n,&k);printf("1.MACROmax=%dn",MAX(MAX(m,n),k);printf("2.functionmax=%dn",max3(m,n,k);)3,輸入一個整數(shù)m判斷它能否被3整除。要求利用帶參的宏實現(xiàn)。#include<stdio.h>#defineDIVIDEDBY3

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論