#include <stdio.h>
int x;
void mondai1(int b){
x = b;
}
void mondai2(void){
static int c = 10;
x = c;
c++;
}
int mondai3(int d){
x++;
d++;
return d;
}
int main(void){
x = 101;
printf("x=%d[G:前行で値101を代入]\n", x
);
mondai1(102);
printf("x=%d[G:前行でmondai1(102)が呼ばれる。]\n", x
);
mondai2();
mondai2();
mondai2();
printf("x=%d[G:mondai2が3回呼ばれ、x=cがc++の前で行われているため、xに12が代入される。]\n", x
); // (4)
for (int i = 103; i < 104; i++){
int x = i;
printf("x=%d[L:引数103にd++で104が代入される。]\n", x
); x = mondai3(i);
printf("x=%d[L:mondai2で12まで行ってるため、+1をして13が代入される。]\n", x
); }
printf("x=%d[G:mondai3内で13に更新済。]\n",x
); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CmludCB4OwoKdm9pZCBtb25kYWkxKGludCBiKXsKICAgIHggPSBiOwp9Cgp2b2lkIG1vbmRhaTIodm9pZCl7CiAgICBzdGF0aWMgaW50IGMgPSAxMDsgCiAgICB4ID0gYzsKICAgIGMrKzsKfQoKaW50IG1vbmRhaTMoaW50IGQpewogICAgeCsrOwogICAgZCsrOwogICAgcmV0dXJuIGQ7Cn0KCmludCBtYWluKHZvaWQpewogICAgcHJpbnRmKCJ4PSVkW0c65Yid5pyf5YyWXVxuIiwgeCk7IAogICAgeCA9IDEwMTsKICAgIHByaW50ZigieD0lZFtHOuWJjeihjOOBp+WApDEwMeOCkuS7o+WFpV1cbiIsIHgpOyAgCgogICAgbW9uZGFpMSgxMDIpOwogICAgcHJpbnRmKCJ4PSVkW0c65YmN6KGM44GnbW9uZGFpMSgxMDIp44GM5ZG844Gw44KM44KL44CCXVxuIiwgeCk7IAoKICAgIG1vbmRhaTIoKTsgCiAgICBtb25kYWkyKCk7CiAgICBtb25kYWkyKCk7IAogICAgcHJpbnRmKCJ4PSVkW0c6bW9uZGFpMuOBjDPlm57lkbzjgbDjgozjgIF4PWPjgYxjKyvjga7liY3jgafooYzjgo/jgozjgabjgYTjgovjgZ/jgoHjgIF444GrMTLjgYzku6PlhaXjgZXjgozjgovjgIJdXG4iLCB4KTsgIC8vICg0KQoKICAgIGZvciAoaW50IGkgPSAxMDM7IGkgPCAxMDQ7IGkrKyl7CiAgICAgICAgaW50IHggPSBpOyAgCiAgICAgICAgcHJpbnRmKCJ4PSVkW0w65byV5pWwMTAz44GrZCsr44GnMTA044GM5Luj5YWl44GV44KM44KL44CCXVxuIiwgeCk7ICAKICAgICAgICB4ID0gbW9uZGFpMyhpKTsgICAgIAogICAgICAgIHByaW50ZigieD0lZFtMOm1vbmRhaTLjgacxMuOBvuOBp+ihjOOBo+OBpuOCi+OBn+OCgeOAgSsx44KS44GX44GmMTPjgYzku6PlhaXjgZXjgozjgovjgIJdXG4iLCB4KTsgCiAgICB9CgogICAgcHJpbnRmKCJ4PSVkW0c6bW9uZGFpM+WGheOBpzEz44Gr5pu05paw5riI44CCXVxuIix4KTsKICAgIHJldHVybiAwOwp9