PTA教育スーパーマーケット「機能部分」の理論的質問

演習5.11.1
C言語では、呼び出された関数の後に呼び出し元の関数を配置し、関数の宣言を省略できます。
解決:関数定義と関数宣言の違いに注意してください。

1.2 C言語の規定により、パラメータ転送の過程で、実際のパラメータの値を正式なパラメータに渡すことができ、正式なパラメータの値を実際のパラメータに渡すこともできます。このパラメータの転送は双方向です。×
分析:実際のパラメーターの正式なパラメーターへの転送は一方向の転送です。関数呼び出しが表示されない場合、正式なパラメーター変数はメモリを占有しませんが、呼び出された場合にのみ使用されます。通話が終了すると、メモリが解放されます。呼び出された関数を実行するときに、正式なパラメーターの値が変更されても、呼び出し元の関数の実際のパラメーターの値は変更されません。

1〜3個の関数の実際のパラメーターと正式なパラメーターは、変数、定数、および式にすることができます。バツ

分析:実際のパラメーターは、定数、変数、式、関数、およびその他の任意のタイプにすることができます。正式なパラメーターは変数のみにすることができます

1-4 C言語の規定により、実際のパラメータと正式なパラメータの名前を繰り返してはなりません。×
分析:繰り返すことができ、正式なパラメーターは式の記号のようなものであり、実際のパラメーターは記号の特定の値です。
疑問がある場合は、理解を深めるために試してください。

2-1以下の関数の説明では、エラーは(C)です。
A.関数が呼び出されたときに実際に参加している正式なパラメーターが変数である場合、2つの変数は同じメモリスペースを占有できません
。B。関数が呼び出されていない場合、システムは正式なパラメーターにメモリユニットを割り当てません
。C。実際に参加している正式なパラメーター数は等しく、実際のパラメーターのタイプは一貫して
いる必要があります。D。パラメーターが変数の場合、実際のパラメーターは変数、定数、または式の
分析になります。A:正式なパラメーターと実際のパラメーターは2つの異なるストレージユニットです。 、両方ともメモリスペースを占有します。正式なパラメータは実際のパラメータのコピーであり、2つは同じメモリスペースを占有できません。A対
B:関数が呼び出されない場合、システムは正式なパラメータにメモリユニットを割り当てません。はい、呼び出されると、システムはパラメータは動的にメモリを割り当て、関数呼び出しが終了すると、正式なパラメータのメモリスペースも解放されます。パラメータは周期的な寿命を反映します
。C:パラメータと引数のタイプは異なる場合がありますが、タイプの不一致エラーが発生する可能性があります。
例:long longタイプのパラメータ、使用することもできますint引数は
D:パラメータの場合変数の場合、実際のパラメータは変数、定数、式のいずれかになります
。2-2
次の計算三角面積関数の宣言では、(C)が正しいです。

A.
int area(double a、double b、double c)
B。double
area(int a、b、c);
C.
double area(double a、double b、double c);
D.
double area(double a、 b、c)
分析:AとCの違いに注意してください
。Cは関数の宣言であり、セミコロンを追加する必要があります
。Aは関数定義の正式なパラメーターリストであり、セミコロンは必要ありません。

2-3
C言語での関数の戻り値のタイプは、次の(C)によって決定されます。

A.
関数が呼び出されたときの実際のパラメーターのデータタイプ

B.
正式なパラメータのデータタイプ

C.
関数定義で指定されたタイプ

D.return
ステートメントの式タイプ

3-1
関数は、ライブラリ関数カスタム関数などの特定のタスクを完了する独立したプログラムモジュールです

演習5.21-1
C言語の関数定義で、returnステートメントを省略すると、関数は呼び出し元の関数に戻ることができません。×
分析:関数が終了すると、呼び出し元の関数の最後に自動的に戻ります。

1-2 C言語関数の定義で、結果を返す必要がない場合は、returnステートメントを省略できます。

2-1には、次の関数定義があり
ます。voidfun(int n、double x){…}
次のオプションの変数が正しく定義および割り当てられている場合、関数funの正しい呼び出しステートメントは(B)です。
A.
void fun(x、n);
B.
fun(x、n);
C.
k = fun(10,12.5);
D.
fun(int y、double m);

練習5.3
1-1
静的ローカル変数に値が割り当てられていない場合は、そのストレージユニットは、ランダムな値を持つことになります。×
分析静的変数初期値は、関数が初めて呼び出されたときにのみ機能します。初期値が割り当てられていない場合、システムは自動的に0を割り当てます。

1-2コンピュータのストレージ管理を容易にするために、C言語は、すべての変数を格納するデータ領域を動的ストレージ領域と静的ストレージ領域に分割します。静的ローカル変数は動的ストレージ領域に格納されます。×
分析:静的ローカル変数は静的ストレージ領域に格納されます。

1-3グローバル変数は、プログラムの先頭、つまり最初の関数の前でのみ定義できます。×
分析グローバル変数は関数の外部で定義され、オブジェクト関数またはプログラム内の任意の場所で作成できます。グローバル変数は、このプログラムのすべてのオブジェクトまたは関数から参照できます。

1-4自動変数が割り当てられていない場合、その値は自動的に0に割り当てられます。×
分析:

その値が自動的に0に割り当てられるかどうかは、変数のタイプによって異なります。

グローバル変数には、静的グローバル変数と非静的グローバル変数が含まれます。初期値がない場合、その値は自動的に0になります。つまり、すべての関数の外部で定義され、どの関数にも起因しません。初期値がない場合、自動的に0になります。

静的グローバル変数関数で定義されたグローバル変数が静的でマークされている場合、それらはデフォルトで0に初期化されます。

非静的グローバル変数にはデフォルトの初期値がありません。C言語では初期値がランダム値であると指定されていますが、特定の実装はコンパイラによって決定されます。

1-5
グローバル変数とローカル変数は同じスコープを持ち、同じ名前を持つことはできません。×
分析:同じ名前にすることができます

演習52-1
C言語プログラムでは、関数タイプが明示的に指定されていない場合、関数の暗黙タイプは(C)です。
A.void
B.double
C.int
D.char

2-2の下の正しい関数定義フォームは(A)です。
A.double fun(int x、int y)
B.double fun(int x; int y)
C.double fun(int x、int y);
D.double fun(int x、y)

2-3以下の正しい記述は(D)です。
A.
共通のストレージユニットは、対応する正式なパラメータが同じ名前の場合にのみ占有され
ます。B。ストレージユニットは
、対応する正式なパラメータによって占有されます
。C。
正式なパラメータは仮想であり、メモリユニットを占有しません
。D。
実際の参加対応する正式なパラメータは、それぞれ独立したストレージユニットを占有します

2-4次のプログラムの出力結果は(C)です。

fun(int a, int b, int c)
{
    
       c = a * b;  }
int main(void)
{
    
    
      int c;

      fun(2, 3, c);
      printf(%d\n”, c);

      return 0;
}

A.6
B.1
C.判別できません
D.0の
分析:Cは、定義後に変更、そして楽しされていない(2,3、c)は、仮パラメータの変更は、実際のパラメータを返しません。

2-5の
下の間違った記述は(A)です。
A.正式なパラメータは、定数、変数、または式に
することができますB.実際のパラメータは、任意のタイプにすることができます
C.実際のパラメータは、定数、変数、または式にすることができます
D.正式なパラメータは、対応する実際のパラメータタイプと同じである必要があります

おすすめ

転載: blog.csdn.net/weixin_49640089/article/details/112798392