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
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
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 表示式 其中語句是迴圈體,先執行後判斷,先執行一次指定的迴圈體語句,然後判別表示式,當表示式的值為非零 真 時,返回重新執行迴圈...