一、實驗目的
(1)掌握巨集定義的方法;
(2)掌握檔案包含處理方法;
(3)掌握條件編譯的方法。
二、實驗內容
題目1 定義乙個帶引數的巨集,使兩個引數的值互換,並寫出程式,輸入兩個數作為使用巨集時的實參。輸出已交換後的兩個值。
#define swap(a,b) t=b;b=a;a=t
main( )
執行結果如下:
input two integers a,b:3,4↙
now,a=4,b=3
思考:可否定義乙個能實現形參變數a、b相交換的函式swap(a,b),在主函式中呼叫它實現實引數變數的交換?
題目2 輸入兩個整數,求它們相除的餘數。用帶參的巨集來實現,程式設計序。
#define surplus(a,b) a%b
main( )
執行結果如下:
input two integers a,b:60,13↙
remainder is 8
題目3 給年份year,定義乙個巨集,以判別該年份是否閏年。提示:巨集名可定義為leap_year,形參為y,即定義巨集的形式為:
#define leap_year(y)(讀者設計的字串), 在程式中用以下語句輸出結果:
if(leap_year(year)) printf("%d is a leap year",year);
else printf("%d is not a leap year",year);
#define leap_year(y) (y%4==0)&&(y%100!=0)||(y%400==0)
main( )
執行結果:
input year:1990↙
1990 is not a leap year.
C 實驗報告函式與預處理
實驗報告 1.判別素數的程式 include using namespace std int main if flag cout 用17 34 2 1 0執行和檢驗。執行結果 結果分析 對於0和1來說,兩者都不是素數。其它執行結果均正確。2.驗證歌德 猜想 include include using...
預處理命令詳解
指令用途 空指令,無任何效果 include包含乙個源 檔案 define定義巨集 undef取消已定義的巨集 if如果給定條件為真,則編譯下面 ifdef如果巨集已經定義,則編譯下面 ifndef如果巨集沒有定義,則編譯下面 elif如果前面的 if給定條件不為真,當前條件為真,則編譯下面 end...
編譯原理實驗
實驗三中間的 優化 一 實驗目的 掌握區域性優化方法 提高機器的執行速度 二 相關知識 某些編譯程式在中間 或目標 生產之後要對其進行優化,所謂優化就是對 進行等價的變換。而變換後的 執行結果與變換前的 執行結果相同。而執行速度加快或占用記憶體空間減少。中間的 優化就是對中間 進行等價的變換。基本塊...