請詳細解釋如圖程式執行的過程(為什麼是這個結果),十分感謝

2022-05-21 20:10:22 字數 4317 閱讀 9213

1樓:匿名使用者

#define n 4 定義巨集n,值為4

int bb [n] [n];  bb為儲存地圖的4*4二維陣列

int i, j;  i和j為兩個計數的變數

for (i = 0; i < n; i++)  這句是行迴圈,每行都會迴圈一次,直到設定了n行

for (j = 0; j < n; i++)  這句是列迴圈,每列都會迴圈一次,直到設定了n列

i==0是最上面一行,i==n-1是最下面一行,j==0是最左邊一列,j==n-1是最右邊一列

if (i == 0 || i == n - 1 || j == 0 || j == n - 1)  如果滿足這些條件,則

bb [i] [j] = 1;  二維陣列bb的第i行第j列賦值為1

else

bb [i] [j] = 0;  否則賦值為0

for (i = 0; i < n; i++)  這句是行迴圈,每行都會迴圈一次,直到輸出了n行

for (j = 0; j < n; i++)  這句是列迴圈,每列都會迴圈一次,直到輸出了n列

printf ("%4d", bb [i] [j]);  右對齊4格輸出二維陣列bb的第i行第j列

printf ("\n");  每行輸出完畢後都會輸出\n(換行符)

2樓:匿名使用者

建立bb二維陣列

如果i或j在邊線(邊長-1或者0)上,值為1.否則為0

輸出二維陣列

[c語言] 請詳細解釋如圖程式執行的過程(為什麼是這個結果),十分感謝!

3樓:戊欣笑

國二上機的c程式設計,是按程式的執行結果給分的,不執行,就沒結果,當然就沒有分了

c語言問題求教,請說明過程解釋,謝謝

4樓:匿名使用者

開始時初始化了一個字元陣列;

c[0] = '1'; c[1] = 『2';c[2] ='a';c[3] = 'b'; c[4] = 『5';c[5] ='6';c[6] ='\0';

接下來就是迴圈了

當i= 0時,c[0] == '1' > '0' && < =' 9'

執行下面的語句:s = 10*s + c[i] - '0'

即 s = 10 * 0 + '1' - '0' ;

s = 1;

printf(「%d\n」,s);輸出1

這是i += 2,於是i到了2;

接著判斷c[2] ='a' 不滿足ch[i]>='0' && ch[i]<= '9';跳出迴圈,迴圈結束;

所以程式的執行結果是1

5樓:匿名使用者

你這個寫的有問題,你想要幹嘛,提取數字嗎?

求c語言中這個程式執行的結果!!如果哪位是自己分析的,請給出分析過程,感激不盡!

6樓:匿名使用者

結果:t=189,s=175

語句:for(k=1;k<=j;k++)

相當於s=s+j;t=t+2*j;

故迴圈for(j=1;j<=i;j++)

s+=j;

}相當於:

for(j=1;j<=i;j++)

再簡化為:s=s+i*(i+1)+2*i;t=t+3*i*(i+1)/2;

原語句簡化為:

for(i=1;i<=6;i++)

這下能看懂了吧?

7樓:匿名使用者

結果: t=189,s=175

縮排一下就好看多了,這個程式實在是沒有任何意義,沒必要深究的#include

int main ()

s += j;

}t = t + i;

return 0;}

8樓:

t = 189;

s = 175;

要從外層迴圈層層往裡執行.

迴圈一: i = 1, j = 1, k = 1;

迴圈二: i = 2, j = 1, k = 1;

迴圈三: i = 2, j = 2, k = 1;

迴圈四: i = 2, j = 2, k = 2;

迴圈五: i = 3, j = 1, k = 1;

迴圈六: i = 3, j = 2, k = 1;

... i = 3, j = 2, k = 2;

... i = 3, j = 3, k = 1;

i = 3, j = 3, k = 2;

i = 3, j = 3, k = 3;

依次執行

9樓:匿名使用者

程式稍微改下順序:

#include

main()}}

printf("t=%d,s=%d\n",t,s);

}易於看出變化。以s的變化為例

第一個迴圈是的s=1+2+3+4+5+6=21第二層迴圈的第一個表示式s=s+2

的結果是21*2=42

s=s+j最後是1+1+2+1+2+3……+5+6=56最能層的s=s+1結果是56

則最終s=56+63+56=175

t可以仿照這種演算法來看

10樓:匿名使用者

3層for迴圈 for(i=1;i<=6;i++)是第一層

2for(j=1;j<=i;j++)

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

11樓:匿名使用者

3層迴圈 ,深究無用

12樓:匿名使用者

t=189,s=175

c語言,以下程式執行的結果是什麼,麻煩詳細解釋一下

13樓:

這個首先,結構體t中存放兩種型別的資料:整型和整型指標,p是t型別的指標專。p=x,就是p指向x陣列屬。

陣列中,每個元素都是結構體t型別,換句話說,現在陣列中的8個數,兩兩一組,前一個是x的之,後一個是y的值。問題:1、++p->x ,p->x取陣列第一個元素的x的值,就是25,++就是26了。

問題2、(++p)->x,(++p),p指向第二個元素,在取x就是30了。問題:3、++(*p->y),p->y取出第二個元素y的值(問題2,p已指向第二個元素),*p->y取出y地址存的值就是10,++就成11了!

挺簡單吧,這其實考的是結構體和指標的知識!

如圖,這個c語言的執行過程解釋一下,謝謝!

14樓:瑚一刀

讓你輸入2個數,然後呼叫比較方法,返回大的一個數。然後在main方法裡面輸出。

?:是三目運算子,true取前,false取後。

[c語言]以下程式輸出的結果是: (請高手們詳細詳細再詳細把過程寫出來(><))

15樓:谷歌地

這種題是中國教育腦殘題,基本可以略過

如果你想懂,繼續往下讀

首先,你要知道前置減減和後置減減的區別

前置減減--a作為表示式的一部分,先減減,然後把值賦給自己後置減減a--作為表示式的一部分,先進行運算,然後減減賦值給自己比如a = 100, b = 100;

c = --a;和d = b--;結果不一樣,前面的結果a = 99, c = 99

後面的結果d = 100, b = 99

第二,雖然有區別,但是程式執行順序是從上到下,那麼進入printf的時候,

while已經執行完了,那麼第一次進入while的時候,n等於幾?等於3!!!

然後給你講下執行原理

第一次進入while迴圈,進入條件判斷前,n = 4進入條件判斷後,先用 n = 4作為條件去判斷是否跳出迴圈,發現不等於0,哦,迴圈可以繼續,我記住了。好的,然後n自減一進入迴圈體,--n前置的,那麼n就先自減等於2,然後列印輸出  2第二次進入while迴圈,進入條件判斷前,n = 2進入條件判斷後,先用 n = 2作為條件去判斷是否跳出迴圈,發現不等於0,哦,迴圈可以繼續,我記住了。好的,然後n自減一進入迴圈體,--n前置的,那麼n就先自減等於2,然後列印輸出  0第三次進入while迴圈,進入條件判斷前,n = 0進入條件判斷後,先用 n = 0作為條件去判斷是否跳出迴圈,發現等於0,哦,迴圈不可以繼續,我記住了。

好的,然後n自減一最後n = -1

給你留個小練習,下面的**執行結果是什麼

#include

#include

int main(void)

下面程式的執行結果是多少,求詳細解釋

一步步來呀 從b 到f 你試一下 k 經歷過 1 0 1 2 0 1 10 11 3 4最後是4哦 將每一步執行的值輸出 則 為 include int main k printf d n k while c g printf k d n k return 0 結果也為如圖 下面程式的執行結果為 c...

c語言題求詳細解釋此程式是如何執行的謝謝

x是個靜態變數,它不會隨f函式執行的結束而銷燬,f中的a是個區域性變數,它會隨f函式執行的結束而銷燬,當第一次執行f a 時,x 3,x x 1,x變為4 a 7,a a 1,a變為8,主函式裡的a還是7 當第二次執行f a 時,x 4,x x 1,x變為5 a 7,a a 1,a變為8,主函式裡的...

程式的執行就是指令執行的迴圈過程。對不對

程式的執行,對於cpu來說就是 取指 譯碼 執行,如此迴圈。所以,從這個角度說,這句話是對的。對。程式就是一個指令一個指令迴圈執行的 判斷題 1.在計算機中,用來解釋,執行程式中指令的部件是控制器。2,windowsxp中,第一題是對的,在電腦中,用來解釋 執行程式中指令的部件為控制器。控制器是 處...