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...