“Dasturlash I” fanidan 7-ma’ruza bo`yicha mustaqil topshiriqlar
1. Quyidagi jumlalarga qisqacha izoh bering:
1.1. Funksiyalarni qayta yuklash : Funksiya e’lonlarda kirish parametrlarining faqat tipi yozish kifoya, huddi square() funksiyasidek. Yoki kiruvchi parametrlarning nomi ham berilishi mumkin, bu nomlar kompilyator tarafidan etiborga olinmaydi, biroq dasturning o'qilishini ancha osonlashtiradi. Bulardan tashqari C++ da funksiya imzosi (function signature) tushunchasi bor. Funksiya imzosiga funksiya nomi, kiruvchi parametrlar tipi, soni, ketma-ketligi kiradi. Funksiyadan qaytuvchi qiymat tipi imzoga kirmaydi.
int foo(); //No1 int foo(char, int); //No2 double foo(); //No3 - No1 funksiya bilan imzolari ayni. void foo(int, char); //No4 - No2 bilan imzolari farqli. char foo(char, int); //No5 - No2 bilan imzolari ayni. int foo(void); //No6 - No1 va No3 bilan imzolari ayni,
2. Test savollariga javob bering.
Quyidagi kodni tahlil qiling:
#include
using namespace std;
int xfunction(int n, long t)
{
cout << "int";
return n;
}
long xfunction(long n)
{
cout << "long";
return n;
}
int main()
{
cout << xfunction(5);
return 0;
}
A. Dastur int turida 5 ni chiqaradi
B. Dastur long turida 5 ni chiqaradi
C. Dastur yaxshi ishga tushadi, lekin hech narsa ko`rsatmaydi
D. Dastur kompilyatsiya qilinmaydi, chunki kompilyator qaysi xfunction ni chaqirishni bilmay qoladi.
Quyidagi kodni tahlil qiling:
#include
using namespace std;
int m(int num)
{
return num;
}
void m(int num)
{
cout << num;
}
int main()
{
cout << m(2);
return 0;
}
A. Dasturda kompilyatsion xatolik bor. Chunki ikkita m funksiyalarning bosh qismlari bir xil
B. Dasturda kompilyatsion xatolik bor. Chunki ikkinchi funksiya e’lon qilingan, lekin main funksiyada chaqirilmagan
C. Dastur ishlaydi va 2 ni bir marta chiqaradi
D. Dastur ishlaydi va 2 ni ikki marta chiqaradi
Ikkita butun sondan kattasini qaytaruvchi funksiyaning prototipi quyidagilarning qaysi birida to`g`ri ko`rsatilgan?
A. int max(int num1, int num2);
B. max(int, int);
C. int max(int, int);
D. int max(num1, num2);
E. A va C javoblar
Faraz qiling, siz kutubxona faylida f.h nomli funksiya aniqlamoqchisiz. Buni _____________ ko`rinishida yozish mumkin.
A. #include f.h;
B. #include "f.h";
C. #include "f.h"
D. include "f.h"
Quyidagi funksiyalarning qaysi biri qoidaga zid ravishda e’lon qilingan?
A. void t1(int x, int y = 0, int z);
B. void t2(int x = 0, int y = 0, int z);
C. void t3(int x, int y = 0, int z = 0);
D. void t4(int x = 0, int y = 0, int z = 0);
Quyidagi kodning bajarilishi natijasida ekranga nima chiqariladi?
inline void print(int i)
{
cout << i << endl;
}
int main()
{
print(1);
return 0;
}
A. 0
B. 1
C. 2
D. hech narsa.
2. Quyidagi masalaning dasturini tuzing:
Kiritilgan sonning juft yoki toqligini aniqlovchi inline funksiya yarating.
Kod:
#include
using namespace std;
int main()
{
int x;
cout<<"x="; cin>>x;
if(x % 2 ==0) cout<<"juft son"<
else cout<<"toq son";
}
Do'stlaringiz bilan baham: |