REKURSIYA YORDAMIDA DASTURLASH 82. Quyidagi so'zlarning qaysi biri noto'g'ri?
A) Har bir rekursive funksiyasi bazaviy holatga yoki to'xtash shartiga ega bo'lishi kerak.
B) Har bir rekursiv chairuv bazaviy xolati mavjud va bazaviy xolatga yetgunga qadar amal bajariladi.
C) Har bir rekursiv funksiyaning qaytuvchi qiymati bo'lishi kerak.
D) Recursiv funksiyani rekursiv bo'lmagan funksiyadan farqli ravishda chaqirish mumkin.
83. Quyidagi funksiyani bajarish uchun kodni to'ldiring.
/** Ko'rsatilgan indeks uchun factorialni qaytaring */
long factorial(int n)
{
if (n == 0) // Base case
return 1;
else
return _____________; // Recursiv funksiya } 84. Quyidagi rekursiv funksiyada bazaviy holatlar qanday?
void f(int n)
{ if (n > 0)
{cout << n % 10;
f(n / 10); }} 85.Quyidagi rekursiv funksiyani tahlil qiling.
long factorial(int n)
{ return n * factorial(n - 1);} 86. Quyidagi javoblardan qaysi biri to`g`ri?
A) Fibonachi soni 0 va indeksi 1 dan boshlanadi va keyingi sonlar ketma-ket oldingi ikki raqamning yig'indisini hisoblaydi.
B) Fibonacchi soni 1 va indeksi dan boshlanadi va keyingi sonlar ketma-ket oldingi ikki raqamning yig'indisini hisoblaydi.
C)Fibonacchi soni 1 va indeksi 2 dan boshlanadi va keyingi sonlar ketma-ket oldingi ikki raqamning yig'indisini hisoblaydi.
D) Fibonacchi soni 2 va ndeksi 3 dan boshlanadi va keyingi sonlar ketma-ket oldingi ikki raqamning yig'indisi.
87. Fibonachchi sonlarini hisoblaydigan quyidagi funksiyani bajarish uchun kodni to'ldiring.
long fib(long index)
{ if (index == 0) // Base case
return 0;
else if (index == 1) // Base case
return 1;
else // Reduction and recursive calls
return __________________; } 88. Quyidagi funksiyaning bazaviy xolati qanday?
int xFunction(int n)
{ if (n == 1)
return 1;
else return n + xFunction(n - 1);} 89. XFunction(4) uchun quyidagi funksiyani chaqirgandan keyin qaytariladigan qiymat nima?
int xFunction(int n)
{ if (n == 1)
return 1; else
return n + xFunction(n - 1); } 90. Satr palindrom yoki palindrom emasligini aniqlovchi quyidagi funksiya matnidagi bo`sh joyni to`ldiring.
bool isPalindrome(const char * const s)
{ if (strlen(s) <= 1) // Base case
return true;
else if _____________________________ // Base case
return false;
else return isPalindrome(substring(s, 1, strlen(s) – 2)); } 91. Quyidagi dasturni tahlil qiling.
#include using namespace std; void xFunction(int x[], int length) { cout << " " << x[length - 1]; xFunction(x, length - 1); } int main() { int x[] = {1, 2, 3, 4, 5}; xFunction(x, 5); } 92. Dasturda kiritilgan satr polindromliogini tekshirish uchun bo`sh satrni to`ldiring.
bool isPalindrome(const char * const s, int low, int high) { if (high <= low) // Bazaviy holat return true; else if (s[low] != s[high]) // Bazaviy holat return false; else return ____________________________; } bool isPalindrome(const char * const s) { return isPalindrome(s, 0, strlen(s) - 1); } 93. Agarda “Xanoy minorasi” masalasida 3 xalqadan iborat bo`lsa rekursya yordamida disklarni ko`cherish jarayoni necha bora amalga oshadi?
94. Agarda “Xanoy minorasi” masalasida 4 xalqadan iborat bo`lsa rekursya yordamida disklarni ko`cherish jarayoni necha bora amalga oshadi?
95. Quyidagi ikkita kodi qanday natijani chop etadi?.
A:
void xFunction(int length) { if (length > 1) { cout << (length - 1) << " "; xFunction(length - 1);} } int main() { xFunction(5);} B:
public static void xFunction(int length) { while (length > 1) { cout << (length - 1) << " "; xFunction(length - 1); } } int main() { xFunction(5); } 96.Quyidagi javoblardan qaysi biri to`g`ri?
A) Rekursiv funksiya rekursiv bo`lmagan funksiyaga qaraganda yaxshiroq ishlaydi.
B) Odatda rekursiv funksiya rekursiv bo`lmagan funksiyaga nisbatan ko`proq xotiradan joy oladi
C)Rekursiv funksiya rekursiv bo`lmagan funksiyaganing o`rnini bosishi mumkin.
D) Ayrim hollarda bizga qo`yilgan murakkab masalalarni rekursiya yordamida oson yechimini topishga yordam beradi.
97. Quyidagi dastur satrni saralash uchun dasturda tushirib qoldirilgan satrni to`ldiring.
void sort(char list[], int high) { if (high > 1) { int indexOfMax = 0; char max = list[0]; for (int i = 1; i <= high; i++) { if (list[i] > max) { max = list[i]; indexOfMax = i; } } list[indexOfMax] = list[high]; list[high] = max; sort(list, high - 1); } } void sort(char list[]) { ____________________________; } void sort(double[] list) { ___________________________; } 98. Quyidagi dasturda binar qidiruv amalga oshirilishi tushirib qoldirilgan satrini to`ldiring.
int binarySearch(const int list[], int key, int low, int high){ if (low > high) return -low - 1; int mid = (low + high) / 2; if (key < list[mid]) return binarySearch(list, key, low, mid - 1); else if (key == list[mid]) return mid; else return binarySearch(list, key, mid + 1, high);} int binarySearch(const int list[], int key, int size){ int low = 0; int high = size - 1; return __________________________; }