c語言問題,C語言問題啊啊

時間 2022-09-17 13:25:07

1樓:匿名使用者

是6和25.

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

i++<=4是先判斷i<=4,然後執行++第一次迴圈,i=1,i<=4條件成立,判斷後i再++;i=2, 再執行最後的i++,i = 3;

第二次迴圈,i=3,i<=4條件成立,++後,i=4,再i++,i的值為5;

第三次迴圈,i=5,i<=4,條件不成立,判斷後++,i=6;因為條件不成立,迴圈終止。

最後i=6;

b=++a*--a,

++ -- 優先順序高於*,

先++a,a本身的值修改為6,再--a的,a值修改為5然後執行乘法,b=a*a=25

2樓:匿名使用者

是6和25.

for(i=1;i++<=4;i++)。for迴圈裡面,

第一次迴圈,i = 1,i++<=4,這時先判斷,判斷後i再++;條件成立,i++,i = 3;

第二次迴圈,i=3,i++<=4,這時條件成立,i++,i的值為5;

第三次迴圈,i=5,i++<=4,條件不成立,但i已經++了,所以i=6;

++ 和 -- ,如果放在變數前面,就是先執行++。--,然後執行語句

如果放在變數後面,就先執行語句,語句執行後再執行++,--

所有的優先順序中,只有三個優先順序是從右至左結合的,它們是單目運算子、條件運算子、賦值運算子。其它的都是從左至右結合。

第二個我真沒搞懂,我感覺是 a先++,然後再--,然後*,不知道上機答案是怎麼樣的。

3樓:匿名使用者

我剛才試了第二個,結果是25,感覺這個可能和編譯器有關。我用的是gcc 4.2,下面是編譯器輸出的彙編**,從這裡可以得到一些解釋。

movl -24(%ebp), %eax // -24(%ebp)就是變數a的地址, 把a的值存到eax暫存器

addl $1, %eax // 把eax暫存器的值加1

movl %eax, -24(%ebp) // 把eax暫存器的值存到a中,這時a=6

movl -24(%ebp), %eax // 把a的值存到eax暫存器

subl $1, %eax // 把eax暫存器的值減1

movl %eax, -24(%ebp) // 把eax暫存器的值存到a中,這時a=5

movl -24(%ebp), %eax // 把a的值放到eax暫存器中,這時eax=5

movl -24(%ebp), %ecx // 把a的值放到ecx暫存器中,這時ecx=5

imull %ecx, %eax // 把eax和ecx兩個暫存器的值相乘,結果儲存到eax中,這時eax=25

movl %eax, -28(%ebp) // 把eax暫存器的值放到變數b中,這時b=25

4樓:有問題wo來答

4,24;

自己上機測試一下吧

c語言問題啊啊

5樓:誰讓我揩油

字串「36+54」 和「a#$」比較大小, 在ascii碼中 前者大, 故 ("36+54")>("a#$")這個表示式為真 其值為1

6樓:永遠的蕾咪

那個("36+54")>("a#$")實際上是個邏輯表示式,其值只可能為0或1,這個邏輯式是true,所以為1

7樓:風之佐

兩個字串比較,結果是bool型別的,所以只可能為0或1

8樓:匿名使用者

("36+54")>(「a#$」) 成立

是字元之間的比較吧!

c語言問題

求助c語言問題

9樓:汝河金採珊

第一次讀入的'1'不等於'0',迴圈結束,共迴圈0次

10樓:lee也夏天

可以考慮下用正規表示式做

c語言問題 10

11樓:

n 越界了,超過了100.

似乎應當把 n=n+i 改成 n=n+1 或 n++還有其他問題:建議這樣修改:

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

每輸入兩個數後回車,如 23,45 回車,最後輸入 0,0 後回車,表示輸入完畢

12樓:天下唯我馳騁

首先你這個程式輸入個數是不可控的,n沒起到作用,因為你控制輸入的迴圈已經規定了i是從0到99,必須要輸入100個。而你這個「自認為統計總人數」的n=n+i,相當於n=1+2+3+...,那是不可能的。

while(xh(i)!='$')

{scanf("%d%d",&xh[i],&sg[i]);

n++;

i++;

sum=sum+sg[i];

)用美元符號做輸入結束符號,n是人數,sg是身高,後面一樣。

求解一個c語言問題

13樓:匿名使用者

a代表陣列a在記憶體中的地址,b代表b陣列在記憶體中的地址

兩個地址是可以比較大小,輸出結果為123

14樓:宛瑩

在 linux 下 gcc 測試過列印 123, 選 a分析如下, 函式的棧裡變數定義是地址自大而小的, 反編譯結果如下, 可以看到 a 被放在 %ebp - 12, 而 b 被放在 %ebp - 17( 即 0x11 ) 的位置, a 的地址大於 b 的地址, 因此會列印 a 的內容

#include

int main()

else

return 0;

8048448:       b8 00 00 00 00          mov    $0x0,%eax}

c語言問題

15樓:匿名使用者

#include

int main(void)

if((d+x+s+t>=3)&&(num>=8)&&(num<=16))

a[i]=true;

else

a[i]=false;

d=x=s=t=0;

num=0;

}for(i=0;ielse if(!a[i])

}return 0;

}感覺你能看懂就沒給註釋,有問題就問我吧!

C語言問題,C語言問題C語言問題

選a首先,空格也是一種字元,b d選項分別把空格賦給了c1,c1 其次,c選項不完整,排除 不僅a這樣,10a20b也是可以的。 聽不清啊 答案a 10a 20b cr 是正確的。因為scanf d c 時,會忽略數字前面的空格,遇到非數字字元就會結束讀取 非數字字元會留待下一次讀取,即被後面的 c...

C語言問題,C語言問題

include void main 最後輸出 1 2 2 3 cca 2,b 2,c 4 2.設計一個程式 計算0xaf 01234567,字元 a 的ascii碼值 十進位制 是多少,101 代表的字元是什麼,32678 1的準確結果是多少,1.456e6 35的準確結果是多少,12345 6的準...

C語言問題,C語言問題

符合,相當於一個字元,ascii字元可以直接轉成short整型數字。101 不符合,這是一個字串,不能作為常數。不符合,因為 會對雙引號轉義,找不到另一個雙引號。會出錯。而且就算是 也不符合,因為編譯器會把它理解成一個字串,而非單個字元。e3不符合。019不符合,0開頭代表8進位制數,不能出現9。0...