12-dars: Oylik imtihon (C tili asoslari)
Dars haqida
Davomiyligi: 90 daqiqa Format: Test + amaliy ish Maqsad: 4-oy davomida o'rganilgan C tili asoslarini baholash.
Imtihon tuzilmasi
| Qism | Vaqt | Ball |
|---|---|---|
| 1-qism: Test | 25 daqiqa | 25 ball |
| 2-qism: Kod yozish (3 ta vazifa) | 35 daqiqa | 35 ball |
| 3-qism: Mini loyiha (yangi) | 30 daqiqa | 40 ball |
| Jami | 90 daqiqa | 100 ball |
O'tish chegarasi: 60 ball
1-qism: Test (25 ball)
20 ta savol, har biri 1.25 ball. Vaqt — 25 daqiqa.
Asoslar (savol 1–5)
1. Har C dasturda kerakli funksiya:
- a)
start() - b)
main() - c)
program() - d)
init()
2. Statement oxiriga qaysi belgi qo'yiladi?
- a)
.(nuqta) - b)
,(vergul) - c)
;(nuqtali vergul) - d)
:(ikki nuqta)
3. Kompilyatsiya buyrug'i (gcc):
- a)
gcc hello.c - b)
gcc hello.c -o hello - c)
gcc compile hello.c - d)
gcc -compile hello.c
4. printf qaysi header'da?
- a)
<string.h> - b)
<math.h> - c)
<stdio.h> - d)
<stdlib.h>
5. %d qaysi tur uchun?
- a) double
- b) float
- c) int
- d) char
O'zgaruvchilar va operatorlar (savol 6–10)
6. int x = 5; x++; natija:
- a) 5
- b) 6
- c) 4
- d) 10
7. 10 % 3 natija:
- a) 3.33
- b) 3
- c) 1
- d) 0
8. Quyidagi koddan keyin x qancha?
int x = 10;
x += 5;
x *= 2;
x -= 10;- a) 10
- b) 15
- c) 20
- d) 25
9. int natija = 5 / 2; natija:
- a) 2.5
- b) 2
- c) 3
- d) 2.0
10. AND operatori:
- a)
& - b)
&& - c)
and - d)
||
Sikllar va shartlar (savol 11–15)
11. for (int i = 0; i < 5; i++) — sikl necha marta ishlaydi?
- a) 4
- b) 5
- c) 6
- d) Cheksiz
12. do-while va while farqi:
- a) Farq yo'q
- b) do-while kamida bir marta ishlaydi
- c) while kamida bir marta ishlaydi
- d) do-while tez
13. switch'da break ishlatish nima uchun?
- a) Switch'ni boshlash
- b) Switch'dan chiqish
- c) Programni to'xtatish
- d) Default case
14. Quyidagi natija:
int x = 5;
if (x > 3 && x < 10) printf("A");
else if (x == 5) printf("B");
else printf("C");- a) A
- b) B
- c) AB
- d) C
15. continue operatori:
- a) Sikldan chiqish
- b) Keyingi iteratsiyaga o'tish
- c) Funksiyani to'xtatish
- d) Boshlash
Funksiyalar (savol 16–20)
16. Funksiya prototype:
- a) Funksiya ichidagi kod
- b) Funksiya nomi va parametrlarni e'lon qilish
- c) Funksiyani chaqirish
- d) Funksiyani o'chirish
17. void func(void) ning ma'nosi:
- a) func hech narsa qaytarmaydi va parameter yo'q
- b) func bo'sh
- c) func ishlamaydi
- d) Xato
18. Rekursiyada base case:
- a) Funksiyani boshlash
- b) Funksiyani to'xtatish sharti
- c) Funksiya nomi
- d) Yangi rekursiya
19. scanf("%d", x) da xato:
- a)
&xbo'lishi kerak - b) Format noto'g'ri
- c) Funksiya nomi
- d) Xato yo'q
20. string.h qaysi funksiya bermaydi?
- a)
strlen - b)
strcpy - c)
strcmp - d)
strprint
Test javoblari (o'qituvchi uchun)
1-b, 2-c, 3-b, 4-c, 5-c, 6-b, 7-c, 8-c, 9-b, 10-b, 11-b, 12-b, 13-b, 14-a, 15-b, 16-b, 17-a, 18-b, 19-a, 20-d
2-qism: Kod yozish (35 ball)
Vaqt: 35 daqiqa. 3 ta vazifa.
Vazifa 1: O'rtacha (10 ball)
average.c faylida quyidagini yozing:
- Foydalanuvchi 10 ta raqam kiritsin
- Ularning yig'indi, o'rtacha, eng katta va eng kichigini topib chiqaring
Misol:
Raqam 1: 5
Raqam 2: 10
Raqam 3: 3
...
Yig'indi: 50
O'rtacha: 5.00
Eng katta: 10
Eng kichik: 1Baholash:
- Input to'g'ri o'qiladi: 2 ball
- Yig'indi to'g'ri: 2 ball
- O'rtacha to'g'ri (float): 2 ball
- Max va Min: 2 ball
- Toza kod (funksiyalar): 2 ball
Vazifa 2: Tub son tekshirish (10 ball)
prime-checker.c:
- Funksiya
int is_prime(int n)yarating - Foydalanuvchi raqam kiritsin
- Tub yoki yo'qligini ayting
- Bonus: 1 dan kiritilgan raqamgacha barcha tub sonlarni chiqaring
Misol:
Raqam: 17
17 — tub son
1-17 oraligida tub sonlar: 2 3 5 7 11 13 17Baholash:
is_primefunksiya to'g'ri: 4 ball- main'da chaqirish: 2 ball
- Bonus (barcha tub sonlar): 4 ball
Vazifa 3: String tahlili (15 ball)
string-analyzer.c:
- Foydalanuvchidan string oling (
fgets) - Quyidagilarni hisoblang:
- Belgilar soni
- So'zlar soni
- Unli harflar soni
- Undosh harflar soni
- Raqamlar soni
- Maxsus belgilar (boshqa)
Misol:
Matn: Hello World 123!
Tahlil:
- Belgilar: 16
- So'zlar: 3
- Unli: 3
- Undosh: 7
- Raqamlar: 3
- Maxsus: 3Baholash:
- Input olish (fgets): 2 ball
- Belgilar soni: 2 ball
- So'zlar soni: 3 ball
- Unli/undosh: 4 ball
- Raqam va maxsus: 2 ball
- Funksiyalarga bo'lingan: 2 ball
3-qism: Mini loyiha — yangi (40 ball)
Vaqt: 30 daqiqa
Vazifa: To-Do List
todo.c faylida To-Do List dasturini yarating.
Imkoniyatlari:
- Vazifa qo'shish (max 20 ta)
- Vazifa ro'yxati
- Bajarilgan deb belgilash
- O'chirish
- Statistika (jami, bajarilgan, qolgan)
- Chiqish
Skeleton
#include <stdio.h>
#include <string.h>
#define MAX_TASKS 20
#define MAX_LEN 100
char tasks[MAX_TASKS][MAX_LEN];
int done[MAX_TASKS];
int task_count = 0;
void print_menu(void);
void add_task(void);
void show_tasks(void);
void mark_done(void);
void delete_task(void);
void show_stats(void);
int main(void) {
int choice;
do {
print_menu();
scanf("%d", &choice);
getchar(); // \n tozalash
switch (choice) {
case 1: add_task(); break;
case 2: show_tasks(); break;
case 3: mark_done(); break;
case 4: delete_task(); break;
case 5: show_stats(); break;
case 0: printf("Xayr!\n"); break;
default: printf("Noma'lum\n");
}
} while (choice != 0);
return 0;
}
// ... funksiyalarni to'ldiringBaholash
| Mezon | Ball |
|---|---|
add_task ishlaydi | 7 |
show_tasks ko'rsatadi (✓ bajarilganlar) | 7 |
mark_done to'g'ri | 6 |
delete_task to'g'ri | 6 |
show_stats to'g'ri | 5 |
| Validation (limit, bo'sh) | 4 |
| Kod toza (funksiyalar) | 3 |
| Hech qanday crash | 2 |
| Jami | 40 |
Bonus (qo'shimcha 5 ball)
- Vazifalarni faylga saqlash va o'qish
- Priority darajalari (yuqori, o'rta, past)
- Tanlash bilan saralash
Imtihondan oldin tayyorgarlik
Tavsiyalar
- Yaxshi uxlang
- Compiler tekshiring:
gcc --version - VS Code tayyor
- GitHub tayyor
- Vaqtni boshqaring:
- Test: 25 daqiqa
- Kod yozish: 35 daqiqa
- Loyiha: 30 daqiqa
Topshirish
- GitHub'ga repo:
4-oy-imtihon - Fayllar:
average.cprime-checker.cstring-analyzer.ctodo.cREADME.md— qisqacha tavsif
- Hammasi commit'lar bilan
- Email orqali repo URL'ni o'qituvchiga
Subject: 4-oy imtihon — [Ism Familiya]
Imtihondan keyin
Natijalar
- 90+ — A+, ajoyib
- 80–89 — A
- 70–79 — B
- 60–69 — C
- < 60 — F, qayta topshirish
5-oyga tayyorgarlik
5-oy: C davomi — massiv (array), string'lar chuqurroq, algoritmlar (sort, search), pointer asoslari.
Tayyorgarlik:
- 4-oy darslarini takror ko'ring
c-darslarirepo'ngizni tartibga keltiring- README'ni to'liq qiling
- O'zingizni
mini loyiha'ga qaytib o'tib ko'ring
Refleksiya
Drive'da: "4-oy refleksiya"
- Eng yoqqan mavzu?
- Eng qiyin mavzu?
- C va Scratch farqi nima?
- 5-oyga maqsadlar?
Aloqa
Imtihon vaqtida muammo bo'lsa — o'qituvchini chaqiring.
Yutuqlar tilab qolaman! 🚀