テキストの問題について質問があります。
某問題集を解いていると、以下のような問題がありました。
次の手続きproAの処理が終了した直後に、「A」が何文字出力されたか答えなさい。
(疑似言語で書かれていましたが、そのまま使うとまずい気がするのでpythonのプログラムに置き換えます。
グローバル変数は関数内で使えない等色々あると思いますが、目を瞑っていただけると助かります)
大域変数:a = "A"
def proA():
print(a)
a = "B"
print(a)
proB(a)
proC()
def proB(b):
print(b)
a = b
print(a)
def proC():
print(a)
a = "C"
print(a)
proA()
上記の問題にて、答えは"ABBBAC"であると記載されています。
しかし、aは大域変数として定義されており、関数proA内で操作されているため、答えは"ABBBBC"になるのではないかと思っています。
恐らく大域変数として関数外で定義されているため、proAから参照したときとproCから参照したときで出力される文字列が違うという趣旨の問題だと思うのですが、proA内で大域変数にBを代入しているため、proC内から参照したときもBで出力される認識でした。
この場合どちらが正しいのでしょうか。
また、言語によって出力される内容が違う可能性などもあるのでしょうか。
そもそも大域変数=グローバル変数という認識であっているのでしょうか。
拙い質問で申し訳ありませんが、ご回答いただけると助かります。
回答1件
あなたの回答
tips
プレビュー