下列程式的輸出結果是1 mainint a 2,b 1,c 2 if a

2021-03-26 02:28:03 字數 4060 閱讀 3429

1樓:匿名使用者

樓主好!

此題的完整寫法是:

#include

void main()

輸出的結果是8 11這兩個數。

首先你要知道指標的含義,和陣列中陣列名的作用。

第一:你定義了一個指標p,並且把a的值賦予給p,這就相當於把一維陣列a[5]的首地址賦予給哦指標p,因為陣列名a就相當於陣列的首地址。所以p指向陣列a[5]的首元素,既p指向a[0],同理可以知道*p=a[0]=8;

第二:p指向a[0],則*p=a[0],

那麼p+1指向a[1],則*(p+1)=a[1]依此推下去,

所以題目中的*(p+2)+=2;就相當於 a[2]+=2,也就相當於 a[2]=a[2]+2=9+2=11

這樣陣列中a[2]的值就變為11儲存了起來。

綜上,你最後輸出是*p和*(p+2),就相當於數出a[0],a[2],所以為8,11.

不知道樓主是否可以理解!嘿嘿

2樓:匿名使用者

請你把程式黏貼完整,不要黏貼到問題標題中呢,問題標題的長度限制很短的,請把問題黏貼在問題詳情裡面

另外,要知道程式的輸出結果,直接自己用vc把這段程式執行一遍是最好的,那樣還能加深印象

3樓:薯條的逃離

下列程式段的輸出

結果是()。

int main(void)

main() { int a=2,b=-1,c=2; if(a

4樓:匿名使用者

else關鍵字總是與它前面最接近的一個if組成一對在這題中else語句與if(b<0) c=0組成一對它們這個整體同屬於上一個if(a

因為a=2,b=-1,不能進入if(a

執行printf("%d\n",c)

這個時候c未做任何改變,

所以值為2

5樓:匿名使用者

這樣寫你看的更清楚:

main()

{int a=2,b=-1;c=2;

if(a原則,是第二if不成立時的選項。

而執行時,第一個if不成立,所以後面就不執行,直接執行printf語句,輸出2.

6樓:傾聽的你

void main() {

int a=2,b=-1,c=2;

if (a意思是如果a且b<0,才執行c=0。題意不滿足,所以不執行,else於離著它最近的if配對,所以這個程式時一個大的if裡面巢狀一個if—else語句。

所以當a

7樓:匿名使用者

#pragma hdrstop

#include

#include

#pragma argsused

main()

若想他等於3,則

main()

//****************

else c++;

printf("%d\n",c);

system("pause");}

8樓:匿名使用者

if(a

在沒有加大括號的情況下else會自動與最近的if匹配。

有如下程式 main() { int a=2,b=-1,c=2; if(a < b) if(b<0) c=0; else c++ printf("%d\n",c); } 該程式的輸

9樓:匿名使用者

main()

這樣就清楚了吧,輸出 2

10樓:匿名使用者

結果是 2

if(a

11樓:makka丶

else與離它最近的if構成if…else語句,而當a為2時,第一個if語句不成立,因此什麼也不做,即c的值仍然為2,故選擇c選項。

void main() { int a=2,b=-1,c=2; if (a

12樓:依

void main()

{int a=2,b=-1,c=2;

if (a結果: 2

當第一個if的條件滿足時,才能去判斷第二個if的條件是否滿足。

else是與第二個if配對形成一條語句,這條語句是屬於第一個if語句的,

像上面把語句一層一層分開來看就很清楚了

這段程式結果為什麼是2 #include main() {int a=2,b=-1,c=2; if(a

13樓:匿名使用者

因為 a= 2,b= -1

if(a

便是 2

14樓:餘錦斌

#include

main()

printf("%d\n",c);}

main() { int a = 2,b =- 1,c = 2; if(a

15樓:風簫雨音

你把**這麼寫應該能看的清晰一點

main()

// else總是與離他最近的if匹配

// 如果b是不小於0,是則執行裡面的內容else

}// 通過上面註釋可以知道,a>b,所以第一個if裡面的內容都不執行,及c=2

printf("%d\n",c);

// 輸出結果:2}

16樓:聽不清啊

main()

該程式的輸出結果是__2__。

include main() {int a=2,b=-1,c=2; if(a

17樓:

你寫的這段**有一些問題(語法錯誤),把語法問題改正後:

#include

int main() //推薦主函式用int main()

printf("%d\n",c);

return 0;

} 當a

顯然a=2,b=-1 所以沒執行:

if(b<0) c=0;

else c+=1;

接下來程式輸出c的值,c還是2。如果那邊值是1,那我肯定你是什麼地方打錯了,或者求助的問題和你執行的**存在不一致!

18樓:匿名使用者

樓主,要麼就是你給的**弄錯了,要麼就是答案錯了,無論走的是哪一條語句,結果都不會是1的。

如果按你寫的這個**來看的話。c應該是2

至於你說的答案是1,

如果走if(b<0) c=0這句話結果就是0如果走else c+=1這句話,結果就是3樓主再看看是不是**敲錯了。。。

19樓:

你確定你的程式沒有抄錯?按照格式再貼一遍吧 不要貼在標題上 太亂

20樓:匿名使用者

你確定你沒有手誤啊?

以下程式的執行結果為什麼會是3啊,請高手詳細分析一下 main() { int a=2,b=-1,c=3; if(a

21樓:匿名使用者

main()

的時候,c語言自動把你這裡的else和最近的if關聯所以這個else也就是if(b<0)的else,因為if(b<0)這個判斷不執行,所以else的內容也跳過,所以程式實際上就是直接執行了printf

1有如下程式,該程式的輸出結果是main

int main i,j,s 0 for i 1 i 3 i for j 0 j i j s a i j printf d n s a 2 2 沒賦值為0 include void main i,j,s 0 for i 1 i 3 i for j 0 j printf d n s 執行結果14 以下...

下列程式段執行後的輸出結果是什麼,為什麼

1 3dowhile 型,必定執行一次,所以第一次迴圈,一定會進入這時 printf 2d a 3 等價於 a a 3 因為a初值為4,所以a 1 printf 2d a 輸出1while a 等價 while a 1 等價 while 0 因為 0的值為 true 所以再迴圈1次 a a 3 等價...

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

選ddo while語句 先執行do裡面的迴圈體,再去判斷while條件是否成立,如果成立,一直執行下去,直到不成立終止迴圈 選d.c語言書上寫有,do 語句 while 表示式 其中語句是迴圈體,先執行後判斷,先執行一次指定的迴圈體語句,然後判別表示式,當表示式的值為非零 真 時,返回重新執行迴圈...