9 巨集定義define PI 31 14159中,巨集名PI代替2分

2021-04-17 17:36:28 字數 3736 閱讀 6128

1樓:菜刀撒

這句話的意思就是 用pi來取代31.14159 當然是常量了 c

在巨集定義#define pi 3.14159中,巨集名pi代替的是乙個() a.常量 b.單精度

2樓:匿名使用者

d 巨集定義是在預編譯階段,把給定的符號常量代替的字串把源程式中的該符號進行字串的替換也就是簡單的文字替換,不檢查語法錯誤

3樓:匿名使用者

#define 識別符號 字串 ;

書上的定義

4樓:青春染紅手指

巨集定義定義的是常量,是沒有資料型別的。

在巨集定義#define pi3.14159中,用巨集名pi代替乙個

5樓:匿名使用者

因為巨集定義define做的是最簡單的文字替換,單純的就是把這行以後的**中,出現的pi換成3.14159這個文字(也就是字串)。

6樓:

float能有6-7有效數copy字

double能有15位

比如πbai=3.1415926535897932384626433832795

float 3.141593 如果du

顯示的更多的話就是zhi不一定的數值了daodouble 3.1415926535897

7樓:匿名使用者

答案不是數值,而是字串,至於為什麼我還不知道,所以到這來看,結果也是沒有。

8樓:匿名使用者

答案是:字串啊帥鍋。。。

9樓:匿名使用者

const double pi=3.14159;

在巨集定義#define pi 3.1415926中,用巨集名pi代替了乙個()。

10樓:那年丶人已散盡

c語言中有明確規定,巨集定義是利用#define命令,用乙個指定的標識代替乙個字串。對應到題目上就是#define 識別符號 字串,所以pi是識別符號,3.1415926是字串。

所以這題選b

關於c選項,如果3.1415926不在巨集函式定義中,那麼它就是乙個常量,只是因為它在#define命令中,所以它是乙個字串。

a選項,單精度數是指計算機表達實數近似值的一種方式,而不是只明確的值,故錯。

d選項,雙精度數也是值計算機表達實數近似值的一種方式,而不是只明確的值,故錯。但是和單精度數有一點區別。具體體現在數字的範圍上。

擴充套件資料

巨集是一種預處理指令,它提供了一種機制,可以用來替換源**中的字串。

1、條件編譯:

c語言中,預處理過程讀入源**,檢查包含預處理指令的語句和巨集定義,並對源**進行相應的轉換,預處理過程還會刪除程式中的注釋和多餘的空白符號。

預處理指令是以#開頭的**行,#必須是該行除了空白字元外的第乙個字元。#後是指令關鍵字,在#和指令關鍵字之間允許存在若干空白字元。

2、巨集函式:

函式的呼叫是需要一定的時間和空間代價的。因為系統在呼叫函式時,需要保留"現場",即將程式要執行的指令的下一條指令的位置壓入棧,然後轉入呼叫函式去執行,呼叫完函式後再返回主調函式,恢復"現場",返回到棧裡儲存的的下一條指令的位置繼續執行。

所以函式的呼叫需要額外的時間和空間代價。

而巨集函式則不存在上述問題,巨集函式在預編譯時,同函式定義的**來替換函式名,將函式**段嵌入到當前程式,不會產生函式呼叫。

11樓:呵呵呵呵

在#define中,標準只定義了#和##兩種操作。#用來把引數轉換成字串,##則用來連線前後兩個引數,把它們變成乙個字串。

執行結果如下:

12樓:奕讓端雪

寫錯了吧。pi和3之間有個空格。

#define

pi3.14159

你的巨集沒有引數,不需要代替為()

13樓:匿名使用者

我剛剛翻了《c程式設計(第三版)》,裡面對巨集的具體定義是: #define 識別符號 字串。

。。我覺得應該果斷相信書裡面的定義

14樓:無敵理工男

c語言上有明確定義,巨集定義是利用#define命令,用乙個指定的標識代替乙個字串。

15樓:東方箭

在巨集定義中是沒有資料型別的,只是純粹的用 3.1415926替換pi

16樓:匿名使用者

我覺得選c,它字元常量,如果真是選b,知道後回帖。

17樓:友人改變自己

我也翻了翻書《c語言程式設計(第三版)》,面對巨集的具體定義是: #define 巨集名 替換文字,其中替換文字是乙個不用雙引號引起來的一串字元(字串)。

選b妥妥的。

18樓:匿名使用者

要注意一下,如果是#define 3.14159那就是常量,但是如果有雙撇號,"3.14159"那是字串

19樓:驕子

選b.在第三版c語言,p204倒數第二段有明確的強調。

在巨集定義 #define pi 3.14159中,用巨集名pi代替乙個 a) 單精度數 b) 雙精度數 c) 常量 d) 字串

20樓:

答案是d 編譯預處理的時候,巨集名pi將被字串「3.14159「代替,這一替換過程稱為巨集

巨集的定義格式為

#define 巨集名 字串或者字元

21樓:匿名使用者

c define是定義常量的

22樓:匿名使用者

不用我說了吧,進來看看。

c語言中,在巨集定義:#define pi 3.141592中,用巨集名pi代替乙個(字串)。為什麼不是常量啊

23樓:

1.要明白c語言中的巨集機制:

c程式編譯分過程分為三個步驟:(1)預處理;(2)編

譯;(3)鏈結。在預處理階段,編譯器中的預處理器會將你定義的巨集,即 原封不動的替換巨集的定義,只是在處理文字,就像word裡面的替換一樣。

2.然後要明白常量的含義:

常量是在程式編譯以後對應的一塊記憶體儲存區域,這塊儲存區域可讀不可寫。將變數寫進儲存區域,要經過編譯成彙編,在彙編成機器語言(二進位制的指令),然後鏈結,當執行時才會真正寫記憶體。所有工作必須在預處理之後。

常量可以這樣定義: const double pi=3.1415;

你是沒明白預處理是怎麼回事,理解的關鍵是:預處理只處理文字,只做文字替換。

隨著你對程式編譯過程的理解,你會慢慢明白的,推薦看看《深入理解計算機系統》,希望我的回答能讓你滿意。

24樓:匿名使用者

巨集本身肯定是常量。。

應該是你使用的時候有什麼不規範或者疏漏的地方。

25樓:匿名使用者

這個pi 是符號常量

在巨集定義#define pi 3.14159中,表示程式中用巨集名pi代替乙個字串

26樓:匿名使用者

好像是代替數字

不是字串

27樓:久力

但是答案上說是代替乙個字串。。。

在c語言中什麼叫巨集定義的常量

在c語言中,bai巨集定義的常量就是du通過如zhi下格式來定義的乙個dao不帶引數的常量 define 識別符號版 字串權 舉例說明如下 include define pi 3.14 巨集定義常量,即pi 3.14 void main 巨集定義bai不佔記憶體空間,因為巨集du 在預處理zhi階段...

c語言中巨集跟常變數的定義有什麼區別

c當中是沒有常變數的,也就是定義的變數賦值了常數但是仍然可以改變值 c 裡邊才有常變數,定義同時初始化,以後就不能改變值了。c中的巨集定義就是一種替換,上的複製替換,可以這樣理解,define a 12345就是凡是a出現的地方都用12345替換,當然巨集替換就不止數值,還可以到字串 函式表示式上去...

9和弦的定義是什麼,樂理裡面的大9和弦是什麼意思

因該是 三和弦的基礎上 加小三度和乙個大三度 比如 1 c g和弦 5 7 2 加4 再加6 還有乙個更簡單的方法 在七和弦的基礎上 用該和弦的根音公升乙個全音 再用七和弦加上這個音 比如 1 c g和弦 5 7 2 根音為5 5公升全音是6 就加上6 就是個 g9和弦 1 c g9和弦 5 7 2...