1樓:匿名使用者
main()
的時候,c語言自動把你這裡的else和最近的if關聯所以這個else也就是if(b<0)的else,因為if(b<0)這個判斷不執行,所以else的內容也跳過,所以程式實際上就是直接執行了printf
以下程式的輸出結果是()main(){ int a=3,b=2,c=1;
2樓:莘振梅果琴
你把**這麼寫應該能看的清晰一點12
3456
78910
1112
1314
1516
1718
1920
21main()
3樓:匿名使用者
我測試出來的結果不是2,5,1,2,2,3, -2
4樓:小陸仁
我沒看明白 你宣告2個int b 是怎麼通過的
別弄的眼花繚亂了 讓人去看,我一看語法已經不對 了 就看不下去了
5樓:謊言一樣的誓言
我輸出的時18,而且我覺得也應該是18
++b之後b=3,b*=(a+b) b=b*(a+b)=3*(3+3)=18
6樓:匿名使用者
不對吧?第二個b應該是18啊
7樓:我是胡歌粉
c-=++b//b=3,c=c-(++b)=-2
b*=a+b//b=b*(a+b)=3
8樓:夏若樹森
題錯了吧,要想b=3先把題改一下,b*=a+c
b=3,是因為在c-=++b處,b自增了,++b//b=b+1=2+1=3
b*=a+c//b=b*(a+c)=3*(3-2)=3
以下程式執行後的輸出結果是 main() {int a,b,c; a=1;b=3;c=5; printf(「%d,%d\n」,(++a,b++
9樓:塗增嶽牢嬋
我執行了下復
,結果是3,10
#include
main()
這裡面制的(++a,b++)是個bai逗號表示式du,a++和b++都執行了但最後輸出zhib++的結果所以daoa+b+c就是2+3+5
10樓:友玉花凌鸞
如果你在下面再加一句printf(「%d,%d\n」,(++a,b++),a+b+c);a,b的值就會變。
而這樣的話應該printf函式對變數只讀一遍,就是在一個printf中a都是1了。
11樓:初起雲尤丙
結果是來3,10啊。這主要是由於自增
操作源符++前置還是後置決定的,比如說++a,就是先自增再使用,而a++就是說先使用再自增。執行printf(「%d,%d\n」,(++a,b++),a+b+c)這條語句的過程中,a=2(就是說已經自增了),b=3(還沒自增)。等這條語句執行完之後,那麼a=2
b=4~
12樓:羅夕古卯
printf(「%d,%d\n」,(++a,b++),a+b+c);其中的(++a,b++)是什麼東東,有這麼寫的嗎?
++a表示先a=a+1再輸出,b++表示先輸出再b=b+1
以下程式的輸出結果是( ). #main() { int a=2,b=-1,c=2;
13樓:稽宛絲柔靖
我輸出的時18,而且我覺得也應該是18
++b之後b=3,b*=(a+b)
b=b*(a+b)=3*(3+3)=18
以下程式的輸出結果是 main() { int a,b,c; int s,w,t; s=w=t=0; a=-1,b=3,c=3;
14樓:聽不清啊
程式最後的輸出語句有誤,其一,三個%d連在一起寫而中間沒有空位,會導致輸出連到一起;其二要輸出值的變數要寫在雙引號外面,寫到雙引號裡面會照 原樣輸出字母而不是變數的值。
如下修改後會輸出 :2 0 0
main()
else if(c>0)w=a-b; else t=c;
printf("%d %d %d",s,w,t);}
15樓:匿名使用者
為什麼不自己去電腦上試試呢?
分析以下程式的輸出結果是().main() {int a=5,b=-1,c; c=add(a,b);printf("%d",c)
16樓:匿名使用者
main()
int adds( int x,int y)整個計算過程是這樣的:
第一次呼叫adds(a,b);
n*=++m //m=1 n=n*1=3m=n%x+y++; // n%x+y++=n%x+y=3%5-1=2
return(m); //m=2,所以c=2,第一次結果為2第二次呼叫adds(a,b);
n*=++m //m=3 n=n*3=3*3=9m=n%x+y++; // n%x+y++=n%x+y=9%5-1=3
return(m); //m=3,所以c=3,第二次結果為3
下列程式的輸出結果是 1 main() { int a=2,b=-1,c=2; if (a
17樓:匿名使用者
樓主好!
此題的完整寫法是:
#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.
不知道樓主是否可以理解!嘿嘿
18樓:匿名使用者
請你把程式黏貼完整,不要黏貼到問題標題中呢,問題標題的長度限制很短的,請把問題黏貼在問題詳情裡面
另外,要知道程式的輸出結果,直接自己用vc把這段程式執行一遍是最好的,那樣還能加深印象
19樓:薯條的逃離
下列程式段的輸出
結果是()。
int main(void)
main() { int a=2,b=-1,c=2; if(a
20樓:匿名使用者
else關鍵字總是與它前面最接近的一個if組成一對在這題中else語句與if(b<0) c=0組成一對它們這個整體同屬於上一個if(a
因為a=2,b=-1,不能進入if(a
執行printf("%d\n",c)
這個時候c未做任何改變,
所以值為2
21樓:匿名使用者
這樣寫你看的更清楚:
main()
{int a=2,b=-1;c=2;
if(a原則,是第二if不成立時的選項。
而執行時,第一個if不成立,所以後面就不執行,直接執行printf語句,輸出2.
22樓:傾聽的你
void main() {
int a=2,b=-1,c=2;
if (a意思是如果a且b<0,才執行c=0。題意不滿足,所以不執行,else於離著它最近的if配對,所以這個程式時一個大的if裡面巢狀一個if—else語句。
所以當a
23樓:匿名使用者
#pragma hdrstop
#include
#include
#pragma argsused
main()
若想他等於3,則
main()
//****************
else c++;
printf("%d\n",c);
system("pause");}
24樓:匿名使用者
if(a
在沒有加大括號的情況下else會自動與最近的if匹配。
有以下程式 程式執行後的輸出結果是
加上 你就非copy常容bai易明白 main else 恩,是2啊。c語言規定,如果if後面沒有 那就只包括if後面的那條語句內,但由於這道題if後面還是if else語句 他們是一條語容句 所以相當於 main printf d n d 第一個if條件就不符合了,所以直接執行最後的輸出語句,所以...
以下程式執行後的輸出結果是mainint a,b,c a 1 b 3 c 5 printfd,d na,b
結果是3,10啊。這主要是由於自增操作符 前置還是後置決定的,比如說 a,就是先自增再使用,而a 就是說先使用再自增。執行printf d,d n a,b a b c 這條語句的過程中,a 2 就是說已經自增了 b 3 還沒自增 等這條語句執行完之後,那麼a 2 b 4 我執行了下,結果是3,10 ...
以下程式的執行結果是inta1b2c
因為c a是賦值語句,一定為true,c被賦值為a,所以輸出為1 以下程式的執行結果是 int a 1,b 2,c 3 if c a 執行結果 應該是2 如果3 1成立列印3 否則列印2 明顯不成立 結果是2 c a是賦值語句恆為真,此時c 1 所以輸出為1 以下程式的輸出結果是 main int ...