執行以下程式後輸出的結果是mainint y 10 do ywhileyprintfd n ,y

2021-04-11 15:47:17 字數 2299 閱讀 5124

1樓:匿名使用者

y最終值為-1

y--是先抄作運

bai算然後減變

du量值

--y是先減變數值然後再作運算zhi

printf("%d\n",y--);運算到這裡時,y是的dao值為0,由於是先算後減,所以在輸出y值後,再作減1運算,就成了-1

如果 y的初始值是不是偶的話,那就是死迴圈了.

以下程式的輸出結果是 #define min(x, y) (x) < (y) ? (x) : (y) main() { int i , j, k; i = 10; j = 15;

2樓:匿名使用者

結果為15。

程式的第一行進行帶參巨集定義,用巨集名min表示條件表示式(x) < (y) ? (x) : (y) ,形參x,y均出版現在條件表示式中。

權程式中 min(i,j) 為巨集呼叫,實參i,j,將代換形參x,y。

巨集後該語句為: 10*(i) < (j) ? (i) : (j),運算結束的結果為15。

巨集只是做了簡單的替換操作。而函式的引數只在函式呼叫時求值一次,並將結果傳遞給函式即可。

define,無參巨集定義的一般形式為:#define 識別符號 字串define 函式定義一個常量。

常量類似變數,不同之處在於:

在設定以後,常量的值無法更改。

3樓:匿名_熱心網友

綜合下面兩個你再稍微改一下吧,現在沒時間專門弄個完全專扣題的了,見諒#include

#include

#include

struct stu

{屬int num;

int wuli;

int huaxue;

int math;

4樓:匿名使用者

把巨集定義帶入 k = 10 * min(i, j)得k=10*icopy由於算數運算子(*)的優先順序高於比較運算子(<)和三目運算子(?:),所以應該先計算10*i得100,然後進行三目運算,因為100<15為假,所以結果等於j,即k=15

5樓:匿名使用者

巨集定義是按字串完全。完全的字串替換內。

所以k = 10 * min(i, j);

是容:k=10*(i) < (j) ? (i) : (j);

i是10,10*i 是100,

100<15,是假,所以k=j 所以是15.

6樓:匿名使用者

巨集定義最重要的就是要把握原樣代入的原則,不要主觀的加括號#define min(x, y) (x) < (y) ? (x) : (y)

所以:回

10 * min(i, j)

=10*i在10*i被結合了,答

將i = 10; j = 15代入,變成:

=10*10<15?10:15

=100<15?10:15

由於100<15為假,所以k=15

7樓:馮冶

首先你要明白#define min(復x,y) (x)<(y)?(x):(y).的意思,這是制一個帶引數的

bai巨集定義,起作用就du

是一個簡單的替換。其次你要zhi明白dao ? :是一個三目運算子。問號前面的表示式為真的話表示式的值就是?後面的值,要是假的話就是:後面的值。所以有:

k=10*min(j,k)=10*min(10,15)=10*10<15?10:15=15

8樓:匿名使用者

我被繞進去了

抄半個多小時,終於清醒了,bai答案是

du15.

關鍵在 (x) < (y) ? (x) : (y)對min(x,y)進行巨集定義的時zhi候,保險起見,應該寫成((x)dao

<(y)?(x):(y))。

為什麼外面再加個大括號呢,我一開始算的時候就是按照10小於15成立,所以min(i,j)等於i等於10,所以k=100。但是這是外面加了個大括號才這麼算的。沒加的話,就是這道題,結果就是k=10*x

x:y;即k=10*i

j,先計算乘法,k=100<15?10:15,也就是說100<15不成立,所以k=j=15。

所以巨集定義的時候最外面有沒有大括號很關鍵。

9樓:匿名使用者

c.15

k = 10 * (i) < (j) ? (i) : (j) = (10 * (i) ) < (j) ?

(i) : (j) = (100) < (15) ? (10) :

(15) = 15

以下程式段執行後輸出結果是char sinfo 0misprintfd ,strlen sA 4 B 5 C 8 D

a分析 在c語言中當遇到 0 時,即結束,所以在s info 0mis 中,只有 info 計數了即為4 選擇a,因為c語言字串以 0結束。有以下程式段,輸出結果是 char s 141 141abc t printf d n strlen s char s 141 141abc t 轉義字元 14...

下列程式執行後的輸出結果是c語言,以下程式執行後的輸出結果是

n j n t 1就是把n t 的值加上1賦給n j 首先迴圈 for t 0 t 3 t n t 0 之後,n 0 n 1 n 2 0,這是一個清零的操作 接下來是一個巢狀迴圈 因為k 2,所以for t 0 t for j 0 j 3 j n j n t 1 依次給n 0 n 1 n 2 賦予新...

執行以下程式後,其輸出結果是int a 0,b 0,c 0 c a a

a a 5 即a a a 5 5 所以c 5 a b 0 所以選b 希望對你有幫助,有問題歡迎追問 大哥題都不對。du inta 0,b 0,c 0 zhi c a a 5 a b,b 3 printf dao d,d,d n a,b,c 按程式執行來講吧。回 第一句不說了 答.第二句為逗號表示式。...