[問題] 2題程式不懂,是要怎麼看呢?
1.#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int a=11,b=11;
a+=a+=b+=b%=b<<2;
printf(" %d ", a );
system("pause");
return 0;
}
為甚麼答案是66? 是不是計算過程是
a=a+a=a+b=b%b<<2 然後運算順序% << + =(右到左)
a=22=22=22=0 ,,a=0;
2.
#include <stdio.h>
#include <stdlib.h>
#define M(a,b) (a)<(b)?( a ) : ( b )
int main(void)
{
int a=4,b=3,c=2,d=4;
printf("%d\n",M(a+b,c+d));
system("pause");
return 0;
}
A.6 B.7 C.13 D.0
為甚麼答案是 D
作法是不是 呼叫M(a+b,c+d) 找定義define M(a,b) a是a+b
b是c+d 然後 (a+b < c+d) ? (a+b,c+d) 判斷否傳回c+d == 6
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 49.217.1.224
推
07/20 19:32, , 1F
07/20 19:32, 1F
→
07/20 19:33, , 2F
07/20 19:33, 2F
→
07/20 19:35, , 3F
07/20 19:35, 3F
推
07/21 00:36, , 4F
07/21 00:36, 4F
→
07/21 07:38, , 5F
07/21 07:38, 5F
→
07/21 07:38, , 6F
07/21 07:38, 6F
※ 編輯: irene6524 來自: 180.206.152.8 (07/22 15:09)
→
07/22 15:13, , 7F
07/22 15:13, 7F
推
07/23 20:21, , 8F
07/23 20:21, 8F
推
07/25 21:38, , 9F
07/25 21:38, 9F
推
07/25 21:45, , 10F
07/25 21:45, 10F
推
08/16 21:20, , 11F
08/16 21:20, 11F
→
10/02 16:30, , 12F
10/02 16:30, 12F
討論串 (同標題文章)
CSSE 近期熱門文章
PTT數位生活區 即時熱門文章