(25)有以下程式mainint x 0,y 0,i for i 1iif i 2 0xcontinueif i

2021-04-19 18:59:56 字數 3732 閱讀 1229

1樓:匿名使用者

兩個全都是a

第一bai

個:i=5時du結束,此zhi時y自加一次為1,x自加兩次(daoi=2和4時)為2

第二版個權:三個for迴圈後兩個為乙個排序整體,作用是對第i列元素進行從小到大排序,(第乙個for用來遍歷列),所以最後的結果是每一列按從小到大排序。

輸出為對角線元素 1 6 5 7

2樓:滄海雄風

#include

main()

if (i%5==0)  }

printf (" %d,%d",x,y); }選dua

2,1press any key to continuemain()

,,,},i,j,k,t;

for(i=0;i<4;i++)

for(j=0;j<3;j++)

for(k=j+1;k<4;k++)

if(a[j][i]>a[k][i])/*按列zhi排dao序回

答*/for(i=0;i<4;i++)printf("%d,",a[i][i]);

} 選a

1,6,5,7,press any key to continue

3樓:手機人生

c語言愛好家,可是不懂啊!努力學習ing!呵呵!

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

4樓:匿名使用者

結果為15。

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

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

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

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

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

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

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

5樓:匿名_熱心網友

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

#include

#include

struct stu

{屬int num;

int wuli;

int huaxue;

int math;

6樓:匿名使用者

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

7樓:匿名使用者

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

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

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

i是10,10*i 是100,

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

8樓:匿名使用者

巨集定義最重要的就是要把握原樣代入的原則,不要主觀的加括號#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

9樓:馮冶

首先你要明白#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

10樓:匿名使用者

我被繞進去了

抄半個多小時,終於清醒了,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。

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

11樓:匿名使用者

c.15

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

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

(15) = 15

以下程式的輸出結果是 main( ) { int x=10,y=10,i; for(i=0;x > 8;y=++i) printf("%d,%d ",x--,y)

12樓:匿名使用者

d、10 10 9 1

第一次執行

for(i=0;x > 8;y=++i) // 此時x = 10, 這句y=++i要迴圈體執行完後執行,即執行完printf後,在執行到for時。

printf("%d,%d ",x--,y); // 先輸出後計算,所以輸出10,10,之後x執行減一,x=9.

第二次執行

for(i=0;x > 8;y=++i) // 此時x=9,i=1,y=1,

printf("%d,%d ",x--,y); // x=9,y=1輸出9,1,結束後x=8.

第二次執行

for(i=0;x > 8;y=++i) //由於x=8,不滿足條件所以退出迴圈。

13樓:畢戈夫斯基

我簡單的分析下:

x,y 均初始化為10,

第一次迴圈, i=0; (x=10)>8; y=1 輸出10, 1;

第二次迴圈,i=1; (x=9)>8; y=2; 輸出9, 2;

第三次(x=8)>8 不成立, 退出;

此題考察你 ++ 運算子,

x++ : 先運算x, 再+1;

++x : 先+1, 再運算x;

-- 運算子同理;

(另外說一句, 以後提問最好給分, 一般沒人會高興回答的)

14樓:smile未名湖

d、10 10 9 1 我補充一點 y出現過2次 y=10,y=++i 這是c函式變數作用域 外層**塊的變數總是有效的,除非內層的**對該變數名進行了重新定義,如果內層**對外層**塊中的變數名進行了重新定義,那麼在此內層**塊中,外層**塊的變數就被隱藏

以下程式執行後的輸出結果是,有以下程式程式執行後的輸出結果是

題目寫錯了吧?你確定第二個case是case 10?我覺得應該是case 1吧?第一次迴圈 i 9,i 10 0,執行case 0,此時m 1,n 1 第二次迴圈 i 10,i 10 1,執行case 1,此時m 1,n 2 第三次迴圈 i 11,i 10 1,執行case 1,此時m 1,n 3 ...

以下程式執行後的輸出結果是,有以下程式 程式執行後的輸出結果是

會顯示 yes 不知 if c a b 是否bai題目中所寫要判斷duc是不是等zhi於a b的話 應該是if c a b 這樣才會dao顯示no 而你寫內的程式裡面if c a b 代表將容a b的之賦給c,然後輸出yes 希望能幫助你 程式執行後的輸出結果是 no 有以下程式 程式執行後的輸出結...

有以下程式includestdioh

當輸入12,scanf 函式只接收了12 分別送給了變數a b,而回車則被下面的乙個getchar 函式接收,故c n 回車 第二次輸入時,34getchar 函式只能接收1個字元,其他的被丟棄了。所以d 3 jsp中include指令和include行為的區別 include file heade...