שאלון קודגורו 11 שלב ב'

רשומה רגילה
1. נתונים שני קטעי הקוד הבאים בשפת C שהורצו על מערכת חלונות x86:

char *buff = (char*)malloc(255);
scanf("%s", buff);
char *buff2 = (char*)malloc(255);
buff2 = "hello world!";

באילו כתובות ישמרו המחרוזות?

  1. buff ישמר בכתובת שהוקצה ואילו buff2 ישמר ב reloc
  2. גם buff וגם buff2 ישמרו בכתובות שהוקצו להם
  3. buff ישמר בכתובת שהוקצתה וbuff2 ישמר בtext
  4. גדלי הזכרון שהוקצו לא עברו את ה 255 ולכן שניהם יוקצו על ה stack
2. כיצד יודעת הפונקציה free ב C כמה זיכרון לשחרר בחלונות X86?
  1. מידע זה נשמר ב stack, מתחת לפויינטר המצביע לbuffer
  2. מידע זה נשמר ב stack, מעל לפויינטר המצביע ל buffer
  3. מידע זה נשמר ב heap, בכתובת הנמצאת מתחת לbuffer
  4. מידע זה נשמע ב heap, בכתובת נמצאת מעל לbuffer
3. כמה אפשריות יש למהלך הראשון (צעד לבן וצעד שחור) במשחק שח-מט?
  1. 49
  2. 400
  3. 8,192
  4. 3,628,800
4. כמה פאות יש לקוביה?
  1. 2*3
  2. 2^3
  3. 3^2
  4. 2^2*3
5. כמה מספרים ראשוניים תלת-ספרתיים יש?
  1. פחות מ-160
  2. יותר מ-170
  3. בערך 165
  4. כל התשובות נכונות
6. * איך אומרים בסווהילית צלופחים ?
  1. anguillas
  2. crowal
  3. mikunga
  4. ploion
7. מה שוקל יותר, ליטר ניאוביום או ליטר ונדיום?
  1. ליטר הניאוביום
  2. ליטר הונדיום
  3. אותו הדבר
  4. אין מספיק נתונים
8. * מה יכול להיות היחס בין אורך הצלע הארוכה במשולש לאורך הצלע הקצרה?
  1. כל מספר גדול מ-1
  2. כל מספר חוץ משורש 2
  3. כל מספר בין 1 ל-2
  4. כל מספר שלם
9. plotter הוא:
  1. אמצעי פלט
  2. אמצעי קלט
  3. אמצעי עיבוד
  4. כל התשובות נכונות
10. מה יהיה ערכו של eax לאחר ביצוע הקוד הבא על ארכיטקטורת 32bit x86:
xor eax, eax
mov ax, 1
  1. 1000-0000-0000-0000-0000-0000-0000-0000
  2. 0000-0000-0000-0000-0000-0000-0000-0001
  3. 0000-0000-0000-0000-0000-0001-0000-0000
  4. 0000-0000-0000-0001-0000-0000-0000-0000
11. בהצפנת מפתח חד פעמי:
  1. שימוש במפתח באורך זהה למסר מועבר
  2. שימוש באותה endianess של שני המעבדים
  3. זמן פיענוח רב השוואה לשיטות הצפנה אחרות
  4. יכולת חיזוי של המפתח מהפלט המוצפן
12. ** מה יהיה ערך rcx לאחר ביצוע הקוד הבא על ארכיטקטורת x86-32?

mov ecx, 1
push rcx
  1. ב 32bit, 16 הסיביות העליונות מאופסות.
  2. ב 32bit, 16 הסיביות העליונות ישארו מהערך הקודם באוגר.
  3. הפעולה איננה תקינה, הפקודה mov מחייבת ששני האופרנדים יהיו בעלי גודל זהה.
  4. הפעולה אינה סטנדרטית, אסמבלרים מסויימים ידחפו 32 סביות למחסנית ואחרים יציגו שגיאה.
13. כאשר מדברים על file system virus, הכוונה
  1. לווירוס שתוקף מערכות קבצים ומשנה את הגדרתם
  2. לתופעה שגורמת למידע ליותר מפוזר על גבי הדיסק
  3. לווירוסים המופעלים עם קריאת ה metadata של אותו קובץ
  4. סוג של שפעת חדשה שחולים בה מפתחי מערכות קבצים
14. במתאם Ethernet תקין חייבים להיות מחוברים הפינים הבאים לפחות (פין 1 הוא הכי שמאלי כאשר מחזיקים את המתאם עם התפס כלפי מטה):
  1. 1, 2, 7, 8
  2. 1, 2, 3, 6
  3. 1, 6, 7, 8
  4. 3, 4, 5, 6
15. * מה עושה הקוד הבא בשפת C (כאשר
random_double(x,y)
היא פונקציה שמגרילה ערך אקראי בין x ל-y כולל)

const unsigned int TRIES = 3e9;
double try_me() {
 double x, y;
 unsigned int i, ctr = 0;
 srand(time(NULL));
 for(i = 0; i < tries; i++) {
 x = random_dobule(0,1);
 y = random_double(0,1);
 if ( x * x + y * y < 1.0)
 ctr++;
 }
 return (4.0 * ctr) / (1.0 * TRIES)
}
  1. מחשבת מספר אקראי באופן שאינו קשור ספציפית לכל אחד מהקלטים
  2. מחשבת את השורש של 10
  3. מחשבת מספר אי-רציונלי שאינו אלגברי
  4. מוודאת תקינות של עבודת המעבד.
16. למה BSD Sockets נקראים כך?
  1. Bind, Socket, Disconnect – שלושת הקריאות העיקריות
  2. Boolean Serial Device
  3. הופיעו כחלק מה-Berkley Standard Distribution
  4. מארמית, בסיעתא דשמיא
17. נניח שבפונקצית C מופיעה ההגדרה הבאה:

void f() { 
 for(int i = 0; i <= 12; i++) {
 unsigned long k;
 unsigned long t[12];
 k = i;
 if(i == 12)
 printf("%08x", t[k]);
 }
}

קוד זה

  1. יחזיר תמיד את אותו הערך
  2. יחזיר ערך שלא ניתן לחזות אותו
  3. יגרום לשגיאת קומפילציה
  4. יגרום לשגיאת זמן-ריצה
18. נניח שבפונקצית C מופיעה ההגדרה הבאה:

void f() 
{
 unsigned long t[12];
 for(int i = 0; i <= 12; i++) {
 char buffer[2048];
 unsigned long k = 0xFFFFFFFF - i;
 if(i == 12)
 printf("%08x", t[k]);
 }
}

קוד זה

  1. יחזיר תמיד את אותו הערך
  2. ידפיס ערך שלא ניתן לצפות אותו מראש
  3. יגרום לשגיאת קומפילציה
  4. יגרום לשגיאת זמן-ריצה
19. נתונה הפונקציה:


char f(unsigned long a, unsigned long b) {
 if((b | a) == 0)
 return 1;
 else if(b == 0)
 return 1 + f(a - 1, 0xFFFFFFFF);
 else
 return 1 + f(a, b-1)
}

הפונקציה נקראת f(0xFFFFFFFF, 0xFFFFFFF)

  1. בלא אופטימיזציות, תוכנית זו תקרוס על כל מחשב בעולם.
  2. התוכנית מבצעת רקורסיית זנב (tail recursion), ולכן ניתן להמירה לצורה שלא תקרוס, אך תרוץ זמן ארוך.
  3. קיימת דרך לכתוב את אותה התוכנית כך שתרוץ זמן קצר מאוד.
  4. כל התשובות נכונות
20. אנטנת WiFi שעשויה מפחית Pringles נותנת שבח (gain) כיווני מרבי של 9dB. אם נכוון אותה טוב, פי כמה תגדל עוצמת האות שהיא קולטת?
  1. פי 1.5
  2. פי 2
  3. פי 4
  4. פי 8
21. * ב-x86, מה יהיה ערכו של eax לאחר הרצת הקוד הבא:

xor eax, eax
mov [myptr], eax
mov bx, 1
mov [myptr], bx
mov eax, [myptr]
  1. 1000-0000-0000-0000-0000-0000-0000-0000
  2. 0000-0000-0000-0000-0000-0000-0000-0001
  3. 0000-0000-0000-0001-0000-0000-0000-0000
  4. 0000-0000-0000-0000-0000-0001-0000-0000
22. * מה הקוד הבא עושה?

ror ax, 1
xor ax, 0x8000
sub ax, 2
cmp ax, 3
jbe my_label
  1. מחשב shr ax, 1 בלי לבצע shr
  2. מחשב כתובת ב-jump table
  3. קופץ בתנאי ש-ax אינו אחד משלושה ערכים מסויימים
  4. קופץ בתנאי ש-ax הוא אחד משלושה ערכים מסויימים
23. מה עושה הקוד הבא?

boolean f(double x) {
 double u, t;
 u = x;
 t = -315;
 t += 143 * x;
 u *= x;
 t -= 21 * u;
 u *= x;
 t += u;
 return (t == 0);
}
  1. מחזיר true לשלושה מספרים שלמים קטנים יחסית ו-false לכל קלט אחר
  2. מחזיר true לשלושה מספרים שלמים ומספר לא-שלם נוסף
  3. מחזיר false לכל המספרים הגדולים מ-3
  4. מחזיר ערך אקראי
24. מעבד בעל פקודה (instruction) אחת:
  1. לא אפשרי גם תיאורטית, צריך לפחת שתי פקודות – test ו-set
  2. אפשרי תיאורטית, אבל כל-כך לא יעיל שלא מומש אף פעם
  3. אפשרי תיאורטית ואף מומש, אבל לא משמש במחשוב מסחרי
  4. אפשרי ומומש ומשמש בארכיטקטורת RISC
25. מחשב Windows בתצורה ביתית רגילה לא עונה לאף חבילת SYN ב-TCP אבל עונה ל-ICMP. מאי נפקא מינה?
  1. מחשב זה כבוי
  2. על מחשב זה יש firewall
  3. מחשב זה נמצא מאחורי NAT
  4. על מחשב זה לא מופעל אף שירות TCP
26. נניח ששדה TTL של חבילת IP מאותחל כולו באחדות. כמה hopים (באמצע המסלול) תבצע הודעה?
  1. 0
  2. 254
  3. 255
  4. 65535
27. ** נניח שנתב הקטין את ה-TTL בהודעת IP. איך ישתנה ה-checksum?
  1. ב-IP אין checksum
  2. יגדל ב-0x100
  3. יפחת ב-0x100
  4. ישתנה באופן אחר
28. מה זה?

PD FD 100 PU BK 100 RT 90 FD 10 LT 90 PD
FD 100 RT 90 FD 40 RT 90 FD 50 LT 90 BK 40 FD 50 RT 90
FD 50 RT 90 FD 50 RT 90 FD 100
PU BK 100 RT 90 FD 60 LT 90 PD
FD 100 RT 135 FD 70 LT 90 FD 70 RT 135 FD 100 PU
  1. פרסומת סמויה של נותנת חסות
  2. קוד מקור של תוכנית
  3. משחק של ילדים
  4. כל התשובות נכונות
29. אנטנה שעשויה מפחית Pringles נותנת שבח כיווני מרבי (gain) של 9dB. ביחס לאנטנה רב-כיוונית (omni-directional) :-
  1. היא תהיה טובה יותר, לא משנה מאיזה כיוון מגיע האות;
  2. יש כיוונים ספציפיים (blind spots) שבהן אנטנת omni תהיה יותר טובה;
  3. אנטנת Pringles לא מועילה לקליטת WiFi, אז זה פשוט לא יעבוד.
  4. בממוצע על פני כל כיווני הגעת האות, שתיהן זהות.
30. * מה לא הגיוני בקוד הבא?

char data[200];
read_from_pipe(data, sizeof(data));
int k = *((int *)data);
if(0x633a5c00 == k) {
...
}
  1. אי-אפשר להמיר בין char ל-int
  2. ניתן לחרוג מגודל המערך
  3. x86 הוא little-endian
  4. הקוד הוא דווקא הגיוני
31. איזה מידע על אודות שרת HTTP לא ניתן לקבל מ-nmap?
  1. מערכת ההפעלה שעל השרת היא Windows XP
  2. מועד תפוגת התוקף של ה-Server Certificate ב-HTTPS
  3. השרת נמצא מאחורי Firewall
  4. השרת נגיש ב-SSH
32. בהינתן מספר באוגר SI, מה מספר פקודות האסמבלי המינימלי שנדרש לביצוע BITWISE NOT רק לבית התחתון שלו? (מותר לשנות אוגרים אחרים)
  1. 1
  2. 2
  3. 3
  4. 4
33. בהינתן מספר כלשהו באוגר SI, מה מספר פקודות האסמבלי המינימלי שנדרש כדי לספור את כמות הביטים הדלוקים בו? (ניתן להסתמך על אתחולים)
  1. 1
  2. 4
  3. 7
  4. 12
34. כמה מקום תופס התו "B" ב-UTF-16?
  1. בית אחד
  2. שני בתים
  3. ארבעה בתים
  4. שמונה בתים
35. כמה מקום תופס התו העברי "ב" ב-UTF-8?
  1. בית אחד
  2. שני בתים
  3. ארבעה בתים
  4. שמונה בתים
36. מה קצב הקידוד (coding rate) של base64?
  1. 1/4
  2. 3/4
  3. 4/3
  4. 4/1
37. היכן סביר שתראו שימוש ב-UTF-7?
  1. במחשבי IBM ישנם
  2. בעורכי טקסט משנות ה-90
  3. ביישומי דואר אלקטרוני
  4. אין אף תוכנה מודרנית שתומכת בו.
38. למה אי אפשר ליצור תיקייה בשם con ב-Windows?
  1. זהו שם שמור להתקן שנשמר כתאימות לאחור ל-DOS
  2. כדי להפריע לפושעים לתכנן מעשי מרמה (con) תוך שימוש ב-Windows
  3. שם זה הקריס גרסאות ישנות של Windows, Microsoft לא ידעו מה גורם לכך ולכן פשוט אסרו את השם
  4. כל התשובות נכונות
39. כל מידע שאנו יכולים לקרוא מה-Registry:
  1. קיים בצורה מפורשת ומלאה בקובץ בודד בדיסק הקשיח
  2. קיים בצורה מפורשת ומלאה בתור מספר קבצים בודדים בדיסק הקשיח
  3. חלקו נוצר בזמן ריצה ואינו נשמר לדיסק הקשיח
  4. נוצר מתוך אלפי קבצי ini בזמן עליית המחשב
40. UNIX – כיצד ניתן לדעת כמה hard linkים מובילים לקובץ מסויים?
  1. יש לעבור על כל התיקיות באותה מערכת קבצים
  2. מספר זה מוצג בפלט של הפקודה ls -l
  3. hard link מכיל רק שם של קובץ, ולכן עשויים להיות hard links לאותו קובץ גם מדיסקים אחרים או מחשבים אחרים, כך שאיננו יכולים לדעת.
  4. מידע זה אינו נגיש למשתמש בשום צורה סבירה
41. למה משמש אלגוריתם Mark & Sweep:
  1. מציאת עץ DFS
  2. מציאת עץ פורש
  3. ביצוע איסוף זבל
  4. תכנון הסדרי ניקיון בבניינים
42. מהו Mutex?
  1. מנגנון נעילה שמונע תחרות על משאב.
  2. סוג קובץ נפוץ במערכות מבוססות UNIX
  3. תוכנה להשתקת הרמקולים במחשב (תוכנתית)
  4. פרוטוקול תקשורת שמקטין את כמות התעבורה.
43. מהו קובץ core ב-UNIX:
  1. התקן וירטואלי שמייצג את זכרון המערכת (על שם core memory במחשבים ישנים)
  2. קובץ שמכיל את הגרעין של מערכת ההפעלה.
  3. קובץ הגדרות עיקריות של מערכת ההפעלה.
  4. קובץ תחקור של קריסת תוכנות.
44. על איזו רמת תקשורת משפיע RIP?
  1. רמה 2
  2. רמה 3
  3. רמה 4
  4. כל הרמות – מדובר בפרוטוקול הודעה על ניתוק ציוד (Rest In Peace).
45. מהו Page Table?
  1. טבלה שמכילה את העמודים הפתוחים ב-Word
  2. טבלת הקצאה למשאב לוגי של מערכת ההפעלה (שם אחר ל-file handles)
  3. טבלה שמקשרת בין כתובות וירטואליות לכתובות פיסיות
  4. טבלה שרשומותיה הן התוכנות שרצות כרגע במחשב
46. מהו תהליך zombie?
  1. תהליך הנמצא בלולאה אינסופית
  2. תהליך שלא מקבל זמן ריצה
  3. תהליך שעושה sleepים ארוכים מאוד ולכן אינו עונה לקלט
  4. תהליך שסיים ולא עשו לו wait
47. שלושה אנשים עומדים בתור, כך שהראשון אינו רואה את האנשים מאחוריו, השני רואה את הראשון והשלישי רואה את שניהם. ישנם 2 כובעים שחורים ושלושה לבנים.
שמים כובעים על ראשי שלושת האנשים מבלי שהם ידעו את הצבעים. אם מישהו מהאנשים יכול לדעת בוודאות את צבע הכובע שלו, הוא חייב להגיד זאת תוך דקה אחת.
בתום 10 דקות, רק האיש הראשון ידע להגיד את צבע הכובע שלו.
מהו צבע הכובע שנמצא על ראש האיש הראשון?
  1. בודאות לבן
  2. בודאות שחור
  3. אי אפשר לדעת
  4. בהסתברות גבוהה לבן, אבל אי אפשר להיות בטוח.
48. איזה מנגנון שפה לא קיים בשפת C מודרנית (C99), ויכול היה לייתר את רוב השימושים במאקרואים?
  1. list comprehensions
  2. generators
  3. lambda
  4. פונקציות inline
49. ממשו באופן יעיל בזמן ככל הניתן את הפונקציה

y = pow(x,3) + pow(x,5)

כאשר x הוא unsigned char ו-y הוא double.

50. באיזו שניה בסרט דיבוב של "על תעצור אותי עכשיו" של להקת קווין שצולם בכנס EUREKAMP ביום שישי האחרון מופיע קודגורו?

2 מחשבות על “שאלון קודגורו 11 שלב ב'

כתיבת תגובה