SkillStack
テクノロジ系9 / 25問

システムアーキテクト試験 令和7年度 春期 午前II 問9

サブルーチンとの引数の受渡し方のうち、引数として渡した変数の値が、サブルーチンの実行後に変更されないことが保証されているものはどれか。

選択肢を押すと答え合わせができます。

正解と解説を見る

【正解】ア

値呼出しでは、呼出し元の変数がもつ値のコピーを、サブルーチンの仮引数へ渡します。サブルーチン内で仮引数の値を書き換えても、変更されるのはコピーだけであり、呼出し元の変数には反映されません。そのため、引数として渡した変数の値がサブルーチンの実行後も変更されないことが保証されるアが正解です。

イの結果呼出しは誤りです。これは、サブルーチン内で仮引数に設定した結果を、処理の終了時に呼出し元の実引数へ書き戻す方式です。出力用の引数として働くので、呼出し元の変数は変更されます。

ウの参照呼出しは誤りです。これは、呼出し元の変数が格納されている場所への参照を渡す方式です。仮引数と実引数が同じ記憶領域を指すため、サブルーチン内の代入が呼出し元の変数へ直接反映されます。

エの名前呼出しは誤りです。これは、実引数の式を仮引数が使われる場所でその都度評価するような方式です。実引数が変数であれば、仮引数への代入によってその変数が変更される可能性があります。

【ポイント】 値呼出しは「値のコピー」、参照呼出しは「変数の格納場所の共有」と整理します。 呼出し元への副作用があるかどうかを問われた場合は、仮引数の変更が実引数へ書き戻される方式かを確認します。

出典:令和7年度 春期 システムアーキテクト試験 午前II 問9
※ 解説は SkillStack 編集部が作成したものです。Web 表示のため、図表の配置や表記を一部改めています。

この回の25問を、アプリで通しで解く

  • 本番と同じ問題数・制限時間で通し演習(模試モード)
  • 間違えた問題は自動で「復習すべき問題」に回る
  • 解説で分からない点はAIに質問できる
SkillStackで無料で始める