Grundlagen der Programmierung (Pseudocode nachverfolgen)

Wie oft wird c einschließlich des ersten Aufrufs aufgerufen, wenn die folgende Funktion c als c(4, 2) aufgerufen wird?

○integer: c(integer: n, integer: k)
  if (k = 0 or k = n)
    return 1
  endif
  return c(n − 1, k − 1) + c(n − 1, k)
  1. A5
  2. B6
  3. C11
Antwort und Erläuterung anzeigen

Antwort: C. 11

c(n, k) berechnet die Zahl der Möglichkeiten, k aus n Elementen auszuwählen (den Binomialkoeffizienten), mit der Beziehung des pascalschen Dreiecks. c(4, 2) ruft c(3, 1) und c(3, 2) auf; diese rufen c(2, 0) und c(2, 1) bzw. c(2, 1) und c(2, 2) auf, und jeder der beiden Aufrufe c(2, 1) ruft c(1, 0) und c(1, 1) auf. 6 Aufrufe geben 1 zurück, und 5 Aufrufe lösen zwei weitere Aufrufe aus, insgesamt also 11. Der Rückgabewert ist 6 und entspricht der Zahl der Aufrufe, die 1 zurückgeben.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Grundlagen der Programmierung (Pseudocode nachverfolgen)

  1. ⊕ ist das bitweise exklusive ODER. Welche Werte haben x und y, nachdem das folgende Programm ausgeführt wurde?
  2. x und y sind vorzeichenlose 8-Bit-Ganzzahlen. << und >> sind logische Verschiebungen: Frei werdende Bits werden mit 0 gefüllt, und Bits, die aus den 8 Bit hinausgeschoben werden, werden verworfen. ∨ ist das bitweise ODER. Welchen Wert hat y, nachdem das folgende Programm ausgeführt wurde?
  3. ∧ ist das bitweise UND. Welchen Wert hat c, nachdem das folgende Programm ausgeführt wurde?
  4. x und y sind vorzeichenlose 8-Bit-Ganzzahlen. << und >> sind logische Verschiebungen: Frei werdende Bits werden mit 0 gefüllt, und Bits, die aus den 8 Bit hinausgeschoben werden, werden verworfen. ∨ ist das bitweise ODER. Welchen Wert hat y bei x = 75 nach der folgenden Zuweisung?
  5. Die folgende Prozedur bubble ist ein Bubblesort, der das ganzzahlige Array data aufsteigend sortiert. swap(data, j, k) ist eine Prozedur, die die Werte von data[j] und data[k] vertauscht. Die Array-Indizes beginnen bei 1. Was gehört an die Stelle von 【a】 im Programm?