1
已知在 x86_64 架構,以下程式碼的執行輸出是 jserv++C
:
#include <stdio.h>
int main() {
puts((char *) &(double []){ 3823806048287157.0, 96 });
}
考慮以下程式碼,假設 puts 函式總是可正確運作,那麼程式輸出為何?
#include <stdio.h>
double m[] = { 3823806048287157.0, 96 };
void gen() {
if (m[1]--) {
m[0] *= 2;
gen();
} else
puts((char *) m);
}
int main() { gen(); return 0; }
作答區
(a)
jserv++A(b)
jserv++B(c)
jserv++C(d)
jserv++D(e)
jserv++E(f)
jserv++F(g)
jserv++G(h)
jserv++H(i)
jserv++I(j)
沒有輸出參考資訊:
延伸題目:
m[]
的內容變為你的英文姓氏 (last name),程式碼應該越短越好,而且不得以字串的形式存在於原始程式碼