12-dars: Oylik imtihon
Dars haqida
Davomiyligi: 90 daqiqa Format: Test + amaliy ish Maqsad: 5-oy mavzularini baholash.
Imtihon tuzilmasi
| Qism | Vaqt | Ball |
|---|---|---|
| Test | 25 daq | 25 ball |
| Kod yozish (3 vazifa) | 35 daq | 35 ball |
| Mini loyiha | 30 daq | 40 ball |
| Jami | 90 daq | 100 ball |
O'tish: 60 ball
1-qism: Test (25 ball)
20 ta savol, har biri 1.25 ball.
Massiv (1-5)
1. Massivning birinchi elementi:
- a) arr[1]
- b) arr[0]
- c) arr[-1]
- d) arr.first
2. int arr[5]; necha byte (int = 4 byte)?
- a) 5
- b) 20
- c) 25
- d) 4
3. arr[i] ekvivalent:
- a) *arr + i
- b) arr + i
- c) *(arr + i)
- d) &arr[i]
4. 2D massiv int m[3][4] umumiy elementlar:
- a) 7
- b) 12
- c) 16
- d) 3
5. Massiv funksiyaga uzatishda:
- a) Nusxa olinadi
- b) Pointer uzatiladi
- c) Faqat birinchi element
- d) Xato
Algoritmlar (6-10)
6. Binary search talab qiladi:
- a) Sortlangan massiv
- b) Tub sonlar
- c) Pointer
- d) Hech narsa
7. Bubble sort tezligi:
- a) O(1)
- b) O(log n)
- c) O(n)
- d) O(n²)
8. Eng tez sort:
- a) Bubble
- b) Selection
- c) Insertion
- d) Quick (qsort)
9. Selection sort har iteration'da nima qiladi?
- a) Qo'shni swap
- b) Eng kichikni topib birinchi joyga
- c) Ikki yarmga bo'ladi
- d) Random tanlaydi
10. O(log n) — bu:
- a) Doimiy vaqt
- b) Logarifmik
- c) Chiziqli
- d) Kvadratik
Pointer va struct (11-15)
11. int *p — bu:
- a) int o'zgaruvchi
- b) int uchun pointer
- c) int massivi
- d) Funksiya
12. &x — bu:
- a) x ning qiymati
- b) x ning manzili
- c) x ga 1 qo'shish
- d) x ni dereference
13. Pointer'ni NULL tekshirish:
- a) Kerak emas
- b) Xavfli, ishlatmang
- c) Doim kerak
- d) Faqat ba'zan
14. Struct'da maydonga kirish:
- a) struct.field
- b) struct->field
- c)
.(oddiy) - d)
::
15. Pointer orqali struct maydoniga:
- a)
. - b)
-> - c)
:: - d)
*.
Memory va File (16-20)
16. malloc dan keyin:
- a) Hech narsa
- b) free
- c) calloc
- d) realloc
17. Memory leak — bu:
- a) Xato xabari
- b) free unutilgan xotira
- c) Tezlik muammosi
- d) Compiler xatosi
18. fopen muvaffaqiyatsiz bo'lsa:
- a) Xato xabari chiqaradi
- b) NULL qaytaradi
- c) Crash bo'ladi
- d) Boshqa fayl ochadi
19. Faylni yopish:
- a) free
- b) fclose
- c) end
- d) close
20. "a" mode — bu:
- a) Read
- b) Write
- c) Append
- d) All
Test javoblari (o'qituvchi uchun)
1-b, 2-b, 3-c, 4-b, 5-b, 6-a, 7-d, 8-d, 9-b, 10-b, 11-b, 12-b, 13-c, 14-c, 15-b, 16-b, 17-b, 18-b, 19-b, 20-c
2-qism: Kod yozish (35 ball)
Vazifa 1: Min/Max indekslari (10 ball)
min-max-idx.c:
void find_min_max(int arr[], int n, int *min_idx, int *max_idx);Massivdagi eng kichik va eng katta elementlarning indekslarini topish.
Baholash:
- Pointer ishlatish: 3
- Min idx to'g'ri: 3
- Max idx to'g'ri: 3
- Test va chiqarish: 1
Vazifa 2: Selection Sort (10 ball)
selection-sort.c:
Foydalanuvchi N kiritsin (max 100), keyin N ta raqam. Selection Sort bilan sortlash.
Baholash:
- Input olish: 2
- Algoritm to'g'ri: 5
- Output: 2
- Funksiyaga bo'lish: 1
Vazifa 3: String funksiyalar (15 ball)
string-stats.c — Foydalanuvchi qator kiritsin, hisoblang:
- Belgilar soni
- Unli harflar
- Undosh harflar
- Raqamlar
- Bo'shliqlar
- Boshqa belgilar
Funksiyalar bilan bo'ling:
int count_chars(const char *s);
int count_vowels(const char *s);
int count_consonants(const char *s);
int count_digits(const char *s);
int count_spaces(const char *s);Baholash:
- Har funksiya to'g'ri: 2 × 5 = 10
- fgets ishlatish: 2
- Output chiroyli: 2
- Edge cases (bo'sh qator, faqat raqamlar): 1
3-qism: Mini loyiha (40 ball)
Phone Book (Telefon kitobi)
Imkoniyatlari:
- Kontakt qo'shish
- Barcha kontaktlarni ko'rsatish
- Ism bo'yicha qidirish
- Telefon bo'yicha qidirish
- Kontaktni o'chirish
- Faylga saqlash
- Fayldan yuklash
- Chiqish
Struct
typedef struct {
char name[50];
char phone[20];
char email[50];
} Contact;Talab qilingan
- Static massiv (max 100)
- CRUD funksiyalar
- File I/O (binary yoki text)
- Input validation
- Menu loop
Baholash
| Mezon | Ball |
|---|---|
| Add | 5 |
| Show all | 4 |
| Search by name | 5 |
| Search by phone | 5 |
| Delete | 5 |
| Save to file | 6 |
| Load from file | 5 |
| Validation | 3 |
| Menu va loop | 2 |
| Jami | 40 |
Topshirish
GitHub: 5-oy-imtihon repo
Fayllar:
min-max-idx.cselection-sort.cstring-stats.cphonebook.cREADME.md
Email: 5-oy imtihon — [Ism]
Imtihondan keyin
Refleksiya
- Eng yoqimli mavzu?
- Eng qiyin: pointer, malloc, struct, qaysi?
- 6-oyga maqsadlar?
6-oyga tayyorgarlik
6-oy — Python va yakuniy loyiha.
C dan keyin Python — juda oson. Lekin asosiy farq:
- C — manual memory
- Python — auto (garbage collection)
- C — sintaksis qat'iy
- Python — sintaksis erkin
- C — tez
- Python — sekin, lekin tezroq yozasiz
Tayyorgarlik:
- Python o'rnatish (
python --version) - VS Code'ga Python extension
python3ekranda ishlamoqdami- Birinchi Python kodi:
print("Salom dunyo!")$ python3 hello.py
Salom dunyo!Aloqa
Imtihonda muammo — o'qituvchini chaqiring.
Yutuqlar tilab qolaman! Python kelmoqda! 🐍