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

רשומה רגילה

1. באיזו תצורת תקשורת פועלת תוכנת Kazaa?

  • server-based
  • peer-to-peer
  • ring topology
  • bus topology
2. מה עושה הפונקציה הבאה:ב – C:

int f(int n)
{
	int k = sqrt(n);
	int i;
	for (i = 2; i <= k; i++)
		if (!(n%i))
			return 0;
	return 1;
}

בפסקל:

function f(n : integer) : boolean;
var
	k, i : integer;
begin
	k := trunc(sqrt(n));
	f := true;
	for i := 2 to k do
		if (n mod i) = 0 then
			f := false;
end;
  • בודקת האם מספר הוא מספר מושלם
  • בודקת האם מספר הוא חזקה של 2
  • בודקת האם מספר הוא ריבוע שלם
  • בודקת האם מספר הוא ראשוני
3. בכיתה של יוסי יש 17 תלמידים. מה יש יותר: בנים או בנות?

  • בנים
  • בנות
  • אותו דבר
  • ג' לא נכון
4. מהו מספר ההשוואות המינימלי הנחוץ לשם מיון מערך בן 4 איברים?
5. למה קשור המושג PageRank?

  • פרס "אתר השנה" האמריקאי
  • שרתי פרוקסי
  • מנוע חיפוש
  • Spyware ו – Adware
6. על מנת להעריך את מספר הילדים הממוצע במשפחה חושב 1+ ממוצע מספר האחים של כל התלמידים בבית ספר גדול. האם התוצאה מדוייקת?

  • כן, כי בית הספר גדול
  • כן, כי מספר הילדים הוא 1+ מספר האחים
  • לא, כי אין ייצוג למשפחות ללא ילדים
  • תלוי בכמות המשפחות החד-הוריות
7. מה עושה הפונקציה הבאה:ב – C:

void f(int n)
{
	int i, s;
	for(s = i = 1; i <= n; i++) {
		printf("%d\n", s);
		s += 2*i+1;
	}
}

בפסקל:

procedure f(n : integer);
var
	i, s : integer;
begin
	s := 1;
	for i := 1 to n do
	begin
		writeln(s);
		s := s + 2*i+1;
	end;
end;
  • מדפיסה סדרה חשבונית
  • מדפיסה מספרים מהצורה: 2n-1
  • מדפיסה ריבועים עוקבים
  • מדפיסה סדרה הנדסית
8. * מהו מספר ההשוואות המינימלי הנחוץ למציאת האיבר השני בגודלו במערך בן 8 איברים?
9. רוצים לצרוב מידע על תקליטור בסקטורים של 1024 ביט. ככל שאיכות החומר ממנו הוא עשוי תהיה נמוכה יותר, כך הוא יהיה זול יותר, אבל הסיכוי לשגיאות יהיה רב יותר. מהו המספר המקסימלי של ביטים שגויים לסקטור שאפשר להרשות, כדי שניתן יהיה לצרוב ואז לקרוא בצורה אמינה לחלוטין את המידע שנצרב?
10. למה משמש הסימן | בפקודות unix?

  • המתנה ללחיצת מקש בכל פעם שהפלט ממלא את המסך
  • חילוץ שדות המופרדים באמצעות מרווח-לבן
  • הפעלת שתי פקודות (או יותר) בשורה אחת
  • העברת הפלט כקלט של פקודה נוספת
11. אבטיח מכיל 97 אחוזי מים ושלושה אחוזי קליפה. הכיצד?

  • זה לא יכול להיות
  • יש מים גם בקליפה
  • לסוכר משקל שלילי
  • יש גם גרעינים
12. * הפונקציה הבאה אמורה להחזיר את המיקום של האיבר הגדול ביותר במערך, אבל יש בה באג:ב – C:

unsigned int find_max(unsigned int A[20])
{
	unsigned int max = 0;
	unsigned int imax;
	int i;
	for (i = 0; i < 20; i++) { if (A[i]> max) {
			imax = i;
			max = A[i];
		}
	}
	return imax;
}

בפסקל:

type
	word20 = array[0..19] of word;
function find_max(A : word20) : word;
var
	max, imax : word;
	i : integer;
begin
	max := 0;
	for i := 0 to 19 do
	begin
		if A[i] > max then
		begin
			imax := i;
			max := A[i];
		end;
	end;
	find_max := imax;
end;

כמה מערכים קיימים, עבורם היא תחזיר תשובה לא נכונה?

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

  • מבעל הכד הגדול (שימלא ראשון) ועד לבעל הכד הקטן (שימלא אחרון)
  • מבעל הכד הקטן (שימלא ראשון) ועד לבעל הכד הגדול (שימלא אחרון)
  • הסדר לא משנה, הזמן הממוצע יישאר זהה
  • מסתדרים לפי גודל הכדים ואז לוקחים אחד מההתחלה ואחד מהסוף לסירוגין
14. סכום הזויות במשולש על גבי כדור הוא:

  • תמיד קטן מ 200 מעלות
  • 200 מעלות
  • תמיד גדול מ 180 מעלות
  • 270 מעלות
15. בחר את השלשה המתאימה לשלשה: python, c++, java

  • interpreted, byte code, machine code
  • byte code, interpreted, machine code
  • interpreted, machine code, byte code
  • byte code, machine code, interpreted
16. בשמיים ישנן 3 דלתות. אחת מהדלתות מובילה לגן עדן ושתי הדלתות האחרות מובילות לגיהינום. השטן, שיודע לאן מובילה כל דלת, טוען שדלת מספר 2 מובילה לגיהינום. ידוע לכל כי השטן משקר בהסתברות 1/4. מה ההסתברות שדלת מספר 1 מובילה לגן עדן?

  • 1/4
  • 1/2
  • 0
  • 3/8
17. עבור כמה ערכים של n הפונקציה הבאה תסתיים (בסביבת 16bit):ב – C:

void be_useless(unsigned int n)
{
	while (n) n *= n;
}

בפסקל:

procedure be_useless(n : word);
begin
	while (n <> 0) do n := n * n;
end;
18. מה משמעות הביטוי הבא:

y1*x2-y2*x1 > 0
  • חישוב היקף של מקבילית
  • בדיקה האם וקטורים נמצאים באותו הרביע
  • בדיקת כיוון של פניה
  • השוואה בין גדלי וקטורים
19. כמה פתרונות טבעיים יש למשוואה הבאה:

(15 * X) mod 17 = 1
  • פתרון יחיד
  • אינסוף פתרונות
  • אין פתרונות בכלל – כי 15 > 1
  • אין פתרונות כי Z17 אינו שדה
20. מה היה שוק המניות האלקטרוני הראשון בעולם?

  • NASDAQ
  • הבורסה בטוקיו
  • NYSE
  • הבורסה בת"א
21. אם כוס שוקו שהוכנסה לחלקו הקדמי של מיקרוגל מסתובב הופיעה בצידו השמאלי לאחר 15 שניות, להיכן הייתה מגיעה לאחר 30 שניות?

  • לחלק הקדמי
  • לחלק האחורי
  • לחלק הימני
  • תלוי בכיוון הסיבוב
22. מה עושה הקוד הבא באסמבלי 80×86, תחת DOS:

mov ax, 3
int 10
  • מאתחל התקשרות סיריאלית
  • מקצה מערך בגודל 30 בתים
  • מקצה מערך בגודל 3 בתים
  • עובר למצב טקסט
23. (מחווה לאייזק אסימוב): אם 1.5 תרנגולות מטילות 1.5 ביצים ב-1.5 יום, אז כמה תטילנה 9 תרנגולות ב-9 יום?

  • 27
  • 54
  • 81
  • 108
24. האם ניתן לכתוב תוכנית מחשב בשפת C שהפלט שלה היא התוכנית עצמה? ובשפת פסקל?

  • כן, כן
  • כן, לא
  • לא, כן
  • לא, לא
25. באיזו שפה כתובה השורה הבאה:

/codeguru6/stage_a/contestant[@score>55]
  • Python
  • TCShell
  • XPath
  • Perl
26. בשתי פינות נגדיות של אולם מלבני שגודלו 9×10 מ2 בנו ארון על ריבוע שאורך כל צלע שלו הוא 0.5 מ'. "שלמה הרצף" אמור לרצף (לכסות את כל שטח האולם – לא כולל שטח שני הארונות – בלי לשבור אף אריח ובלי שאריחים יחפפו זה לזה), באריחי שיש שגודלם 1.0×0.5 מ2. בקצב הנחת אריחים של 2.47 אריחים בשעה, הוא יסיים את הריצוף תוך:

  • יותר מ – 140 שעות עבודה
  • פחות מ – 53 שעות עבודה
  • אף פעם
  • אף אחת מהתשובות א'-ג' אינה נכונה
27. מה עושה הקוד הבא בשפת אסמבלי 80×86:

xor ax, bx
xor bx, ax
xor ax, bx
  • מפעיל פונקציית גיבוב פשוטה
  • שוזר את ax ו – bx
  • מחליף בין ערכי אוגרים
  • מבצע פעולת איפוס מהירה
28. מהי הנגזרת של xx?

  • xxln(x + 1)
  • xx(ln(x) + 1)
  • xln(x + 1)
  • x(ln(x) + 1)
29. טבעת המונחת על האדמה והאוקיאנוסים מקיפה את כל כדור הארץ. יש להוסיף לה תוספת שתאפשר לחתול שגובהו 30 ס"מ לעבור תחתיה בלי להתכופף, תוך שמירה על צורתה העגולה של הטבעת. מה אורך הקטע שיש להוסיף לטבעת?

  • בערך 30 ס"מ
  • בערך 2 מטר
  • בערך 900 מטר
  • בערך 12 ק"מ
30. כיצד מתבצע תיקון השגיאות ב-CD?

  • בעזרת קודי האפמן (Huffman Coding)
  • בעזרת קודי ריד-סולומון (Reed-Solomon Coding)
  • בעזרת קוד אריתמטי (Arithmetic Coding)
  • בעזרת קוד דה-וינצ'י (Da-Vinci Code)
31. מה קרה למשפט הבא?

רבםו חציקטצ בםגקעורו
  • אצבעות זזו בכתיבה עיוורת
  • ביט lsb התהפך
  • כתיבת אנגלית באותיות עבריות
  • לכל מילה תשובה אחרת
32. כמה כוכביות ידפיס הקוד הבא בשפת C:

unsigned char i;
for (i = 0; i <= 255; i++)
	printf("*");
  • 255
  • 256
  • אינסוף
  • 0
33. מהו המספר הבא בסדרה:

8, 49, 216, 625, 1024, 729, ..
34. מה מהבאים נכון לומר על פונקציות סטטיות:

  • לא ניתן לשנות את הקוד שלהן בזמן ריצה
  • הן מפחיתות את כמות הזכרון המוקצה להחזקת קוד
  • הן אינן יכולות לשנות את הפרמטרים המוכנסים אליהן
  • הן אינן יכולות לגשת למשתנים חברים במחלקה שלהן
35. ברזולוציית מסך של 320×200, פלטתי 64000 פיקסלים, כל אחד במקום אקראי. מהו הסיכוי שמילאתי את כל המסך?

  • 1 ל – 64000
  • 1 ל – 64000!
  • 1 ל – 6400064000
  • 64000! ל – 6400064000
36. מה עושה הפונקציה הבאה:ב – C:

struct node {
	node* left;
	node* right;
	int val;
};
int traverse(node* root)
{
	int current_max = root->val;
	if (root->left != NULL)
		current_max = max(current_max, traverse(root->left));
	else if (root->right != NULL)
		current_max = max(current_max, traverse(root->right));
	return current_max;
}

בפסקל:

type
	nodeptr = ^node;
	node = 	record
			left, right : nodeptr;
			val : integer;
		end;
function traverse(root : nodeptr) : integer;
var
	current_max : integer;
begin
	current_max := root^.val;
	if root^.left <> NIL then
		current_max := max(current_max, traverse(root^.left))
	else if root^.right <> NIL then
		current_max := max(current_max, traverse(root^.right));
	traverse := current_max;
end;
  • מוצאת את הערך המקסימלי בעץ בינארי
  • מוצאת את הצומת השמאלי ביותר מבין הצמתים שערכם מקסימלי
  • מוצאת את הערך המקסימלי במעטפת הימנית של עץ בינארי
  • אף אחת מהתשובות הקודמות אינה נכונה
37. האם יכול להיות קצב ירידת המים באסלה גדול משמעותית מקצב אספקת המים לשירותים?

  • לא, משום שחלק מהמים מתאדה (בדומה לחוסר יעילות בתכנות)
  • לא, כי תוספת הנוזלים הנובעת מהשימוש בשירותים זניחה
  • כן (זמנית), בגלל מתקני ה"ניאגרה" (או בעברית: מיכלי ההדחה) המתפקדים כחוצצים (buffers)
  • כן (באופן מתמשך), כפי שאפשר לשחרר יותר זיכרון מאשר הוקצה
38. מהי הדרך הטובה ביותר להשתמש בגרביים כדי להבטיח שימוש אחיד ככל האפשר?

  • להכניסם מהכביסה בצד שמאל של המגרה ולהוציא מצד ימין (כמו תור)
  • להכניסם מהכביסה בצד שמאל של המגרה ולהוציא מצד שמאל (כמו מחסנית)
  • להכניסם מהכביסה בצד שמאל של המגרה ולהוציא באופן מקרי
  • להכניסם מהכביסה באופן מקרי ולהוציאם באופן מקרי
39. נתונה הפונקציה הבאה על רשימות מקושרות:ב – C:

struct node {
	int data;
	node* next;
};
int f(node* h, int c)
{
	node* p = h;
	int i;
	while (1) {
		for (i = 0; i < c; i++) { if (p == NULL) return h->data;				
			p = p->next;
		}
		h = h->next;
	}	
}

בפסקל:

type
	nodeptr = ^node;
	node = record
 data : integer;
		 next : nodeptr;
	 end;
function func(h : nodeptr; c : integer) : integer;
var
	p : nodeptr;
 i : integer;
begin
	p := h;
	while true do
	begin
		for i := 0 to c-1 do
		begin
			if p = NIL then
			begin
				func := h^.data;
				exit;
			end;
			p := p^.next;
		end;
		h := h^.next;
	end;
end;

מהו הביטוי המקביל על המערך A שמוגדר כך:
ב – C:

int A[N];

בפסקל:

var
	A : array[0..N-1] of integer;
  • ב – C: A[N%c], בפסקל: A[N mod c]
  • ב – C: A[N-c], בפסקל: A[N-c]
  • ב – C: A[N/c], בפסקל: A[N div c]
  • ב – C: A[c%N], בפסקל: A[c mod N]
40. חברת "מאכלים" מצרפת מספר לכל מוצר, ומחלקת פרסים לכל מי שיקנה מוצרים כך שסכום המספרים יהיה 111. כיצד יכולה החברה לוודא שלא יהיו יותר מדי זוכים?

  • להשתמש רק במספרים דו ספרתיים נמוכים
  • לוודא שרק מעט מבין המספרים יתחלקו ב – 37
  • לוודא שרק מעט מבין המספרים לא יתחלקו ב – 13
  • לשים את המספר 111 בעשרה מוצרים בלבד
41. אבטיח מקולף התייבש יומיים כך שאחוז המים בו ירד מ 99 אחוז ל 98 אחוז. כמה איבד ממשקלו?

  • כמעט אחוז אחד
  • אחוז אחד
  • כשלושים אחוז
  • חמישים אחוז
42. מכונת קולה מופעלת על מטבעות של שקל אחד. מחיר פחית הוא 4.30 והמכונה לא מחזירה עודף, אלא זוכרת את העודף לקניה הבאה. לאחר שימוש ממושך במכונה, מה יהיה העודף השכיח?

  • 30 אגורות
  • או 0 או 50 אגורות
  • 70 אגורות
  • כל עשרת האפשרויות שוות הסתברות
43. אם יש 15 אפשרויות שונות לאורכן של צלעות מלבן, כמה ביטים דרושים על מנת לייצג את השטח?

  • 225, כי שטח הוא כפולת אורך ברוחב
  • 15, כי x כפול y = y כפול x
  • 8, כי אפשר לייצג 2x אפשרויות ב x ביטים
  • 7, כי 120 קטן מ 128
44. 98 אחוז מהבנות בכיתה של יהושוע אינן ג'ינג'יות. כמה ג'ינג'יות יש בכיתה?

  • לפחות 4, כי יש גם בנים בכיתה
  • בדיוק 2, כי 100-98=2
  • לכל היותר 2, כי יהושוע הוא בן
  • אפס, כי אין כיתה מעל 50 תלמידים
45. במערכת שמש כלשהי ישנם שלושה כוכבי לכת אשר מסתובבים סביב השמש. לשלושת הכוכבים מחזורי סיבוב של שנה, חמש שנים, ו- פאי שנים בהתאמה. בראש השנה של שנת 0 כל שלושת הכוכבים נמצאו על קו אחד עם השמש. באיזה שנה יפגשו שוב על קו אחד עם השמש?

  • בין שנת 0 לשנת 314
  • בין שנת 314 לשנת 5000
  • בשנת התשס"ה
  • לעולם לא
46. שמש וירח גדולים יותר בשעת זריחה או שקיעה. מדוע?

  • שכבת האטמוספרה העבה יותר קרוב לאופק משמשת כעדשה המגדילה את מראה השמש והירח
  • בגלל הכבידה השמש והירח גדלים כאשר הם מתקרבים לאדמה
  • זה סתם נדמה לנו. הם לא באמת נראים גדולים יותר – הכל פסיכולוגיה!
  • העין שלנו רואה גופים בעלי גוון אדמדם כגדולים יותר
47. ** נתון בניין בן 129 קומות. הקומה הקריטית בבניין היא הקומה שהטלת ביצה ממנה ומעלה תביא לשבירתה ולעומת זאת, הטלה מכל קומה נמוכה יותר לא תביא לשבירת הביצה.לרשותך עומדות שלוש ביצים אשר ניתן להטיל כל אחת מהן מכל קומה אפשרית כל עוד לא נשברה. משימתך היא לגלות את הקומה הקריטית (אם קיימת), במספר מינימלי של הטלות ביצים.
מהו מספר ההטלות הנמוך ביותר שניתן להתחייב לא לחרוג ממנו (כאשר נוקטים באסטרטגיה אופטימלית)?
48. ** בהמשך לשאלה הקודמת, מאיזה קומה יש להטיל בפעם הראשונה, כדי להיות מסוגל להתחייב על מספר ההטלות המינימלי?
49. מי אמר: אך מוזר ונבער מדעת הוא האדם בעיני התולעת
על כי את ספריו לא יכרסם

  • חיים נחמן ביאליק
  • רבינדרנט טאגור
  • סמואל בקט
  • שאול טשרניחובסקי

 

שאלון קודגורו 6 שלב ב' – נוסח מבוטל

רשומה רגילה

1. מה המשמעות המקובלת בתכנות של המילה VOID?

  • מולטימדיה מאוד חכמה
  • חלל או ריק
  • טיפוס לא מוגדר
  • בדיקה של עמידות

2. מה המשמעות המקובלת בתכנות של int?

  • לייצג מספרים שלמים
  • להגדרות בינלאומיות
  • לצורכי בנקאות מקוונת
  • לארגון הבריאות העולמי
3. (*) מהו מספר ההשוואות המינימלי הנחוץ, במקרה הקשה ביותר, למיון מערך בן 5 איברים שונים?
4. (**) רוצים למיין מערך במספר גדול ככל האפשר של השוואות, אבל אסור להשוות בין שני איברים אם ניתן להסיק את היחס ביניהם מהשוואות קודמות. מהו המספר הגדול ביותר של השוואות אליו ניתן להגיע במיון של 5 איברים שונים?

5. נתונה הפונקציה הבאה, בסביבת 16bit:ב – C:

int f(unsigned char a, unsigned char b, unsigned char c)
{
	return ((a*b)/c) == (a*(b/c));
}

בפסקל:

function f(a, b, c : byte) : boolean;
var
	a0, b0, c0 : word;
begin
	a0 := a; b0 := b; c0 := c;
	f := ( ((a0*b0) div c0) = (a0*(b0 div c0)) );
end;

פונקציה זו תחזיר "אמת" אם ורק אם:

  • a=1 או (b mod c) = 0 או a=0
  • a*(b mod c) < c
  • (b mod c) = 0
  • תחזיר אמת תמיד
6. (*) במדינה שמספר תושביה עצום יש שני מתמודדים על הנשיאות ו – 50 ערים שגודלי אוכלוסיותיהן שווים. הבחירות נערכות בכל עיר בנפרד, והמתמודד שניצח ברב הערים הוא הזוכה בבחירות. דני ניצח בבחירות עם כמות הקולות המינימלית המאפשרת ניצחון. כמה קולות קיבל בממוצע במדגם אקראי של 3600 בוחרים מרחבי המדינה (עגל למספר השלם הקרוב ביותר)?

7. דני ניסה לחשב ממוצע של רשימה של N מספרים (N > 2) בצורה הבאה: הוא חישב את הממוצע של שני המספרים הראשונים, ואז את הממוצע של התוצאה עם המספר השלישי, ואת הממוצע של התוצאה החדשה עם המספר הרביעי וכך הלאה. למרות ששיטה זו לחישוב ממוצע אינה נכונה בעוד שלדני לא היו טעויות חישוב, המורה (שיודע לחשב ממוצע בצורה נכונה) בדק את התוצאה ושיבח את דני על התשובה הנכונה. דני, שחשד שהשיטה שלו אינה נכונה עבור המקרה הכללי, החליף את אחד המספרים במספר אחר (וסיפר על כך למורה), חישב את הממוצע החדש (בדרכו השגויה), וביקש מהמורה שיבדוק את התוצאה. אך איזה פלא – שוב שיבח המורה את דני על התוצאה הנכונה! איזה טענה נכונה בהכרח?

  • אם יוציאו את המספר שהוחלף, יהיה בין המספרים שנותרו מספר מספר השווה לממוצע של שאר המספרים (ללא המספר שהוצא)
  • N הוא 4, 5 או 8
  • המספר שהוחלף הוא המספר ה – lg(N)-י מסוף הרשימה (כאשר lg מייצג לוגריתם בבסיס 2)
  • המצב המתואר אינו אפשרי

8. על גבי תמונה ברזולוציה של 8×8, פלטתי 64 פיקסלים, כל אחד במקום אקראי ובלתי תלוי. מהו הסיכוי שמילאתי בדיוק מחצית מהפיקסלים שבתמונה?

  • פחות מ – 1 למיליון
  • בערך 1 ל – 2,500
  • בערך 1 ל – 100
  • בדיוק 1 ל – 2

9. נתון הפסאודו-קוד הבא (עם שלוש פונקציות חסרות):

א <- 1000000000
כל-עוד (אמת) בצע:
 אם ק, אזי:
 א <- 1000000000
 בצע פ
 אם א שווה ל - 0, אזי:
 בצע ס
 א <- 1-א

למה סביר להניח שהוא מיועד:

  • הקצאת מספרים סידוריים
  • פירוק מספרים גדולים לגורמים
  • תפעול דלת הזזה אוטומטית
  • הגרלת מספרי לוטו

10. (*) הפונקציה הבאה אמורה להחזיר את המיקום של האיבר שערכו x במערך A שמכיל N איברים ממוינים בסדר עולה (ומכיל איבר שערכו x). אבל יש בה באג.ב – C:

int get_index(int x, int A[], int N)
{
	int L = 0, H = N-1;
	while (L != H) {
		int M = (L+H)/2;
		if (x >= A[M])
			L = M;
		else
			H = M-1;
	}
	return L;
}

בפסקל (כאשר האיבר הראשון במערך A הוא האיבר במיקום ה – 0):

function get_index(x : integer; A : array of integer; N : integer) : integer;
var
	L, H, M : integer;
begin
	L := 0; H := N-1;
	while L <> H do
	begin
		M := (L+H) div 2;
		if x >= A[M] then
			L := M
		else
			H := M-1;
	end;
	get_index := L;
end;

עבור כמה ערכים של N, הפונקציה, בכל זאת, תחזיר תשובה נכונה תמיד?

11. מה עושה קטע הקוד הבא בשפת אסמבלי בסביבת 16bit?:

	mov bx, offset var_ptr
	xor ax, ax
l:
	xchg [bx], ax
	or ax, ax
	jz l
  • מחשב את שורש שלוש
  • תופס בעלות על משאב
  • מבצע מיון בועות
  • הופך רשימה מקושרת

12. מה עושה קטע הקוד הבא בשפת אסמבלי בסביבת 32bit?:

	xor ebx, ebx
start:
	test eax, eax
	jz end
	xchg ebx, [eax]
	xchg ebx, eax
	jmp start
end:
  • מחשב את שורש שלוש
  • תופס בעלות על משאב
  • מבצע מיון בועות
  • הופך רשימה מקושרת

13. מהן שלוש הפונקציות הבאות בשפת C:

void a(type1* s)
{
	p[0] = (type2*) malloc(sizeof(type2));
	p[1] = (type2*) malloc(sizeof(type2));
	p[0].a = p[1]; p[1].a = p[0];
	p[1].b = s;
}
void b(type1* s)
{
	type2* n = (type2*) malloc(sizeof(type2));
	p[0].b = s;
	n.a = p[0]; p[0].a = p[1]^n;
	p[1] = p[0]; p[0] = n;
}
int c(int d)
{
	if (p[!d].a != p[d]) {
		p[d] ^= p[!d].a;
		swap(p[d], p[!d]);
		return 1;
	}
	return 0;
}
  • מערכת Undo ו – Redo
  • מימוש של ערימה
  • מנגנון garbage collection
  • בינה מלאכותית ל – "ארבע בשורה"
14. (*) הוטל עליך לתכנן מערכת תקשורת רציפה בין רכיב כותב לרכיב דוגם. התקשורת מתבצעת דרך בלוקים של 64000 בתים. בזמן נתון, כל בלוק יכול להיות במצב "כתיבה" או במצב "קריאה" (אך לא בשניהם בו-זמנית). בכל פעם שהרכיב הדוגם מסיים לעבד בלוק, הוא מעוניין לקרוא את הבלוק האחרון שנכתב במלואו.מהו מספר הבלוקים המינימלי ההכרחי כדי למנוע מצב בו רכיב אחד מחכה לסיום פעולתו של הרכיב השני?
15. (**) דני מביט, ממרחק של מטר, במחיצת קרטון ממנה גזרו פס צר. דרך הפס הוא יכול לראות חלק קטן מכרזת פרסומת לקודגורו 6. הנקודה הנראית לדני כשמאלית ביותר בפס נמצאת במרחק של 260 ס"מ מהמחיצה. הנקודה הנראית לדני כימנית ביותר בפס נמצאת במרחק של 440 ס"מ מהמחיצה. המרחק בין שתי נקודות אלו הוא שני מטרים. מהו המרחק בסנטימטרים בין הנקודה הנראית לדני בצדו השמאלי של הפס לבין הנקודה הנראית לו במרכז הפס?

16. למה משמשות שלוש הפונקציות הבאות:

בשפת C
בשפת פסקל

void a()
{
	x1 = x2 = 0;
}
procedure a;
begin
 x1 := 0;
 x2 := 0;
end;
int b()
{
	if (x1) return F[--x1];
	return x2++;
}

 

function b : integer;
begin
 if x1 <> 0 then
 begin
 x1 := x1 - 1;
 b := F[x1];
 end
 else
 begin
 b := x2;
 x2 := x2 + 1;
 end;
end;
void c(int x)
{
	F[x1++] = x;
}
procedure c(x : integer);
begin
 F[x1] := x;
 x1 := x1 + 1;
end;
  • מימוש של תור מעגלי
  • התמרת פוריה בדידה
  • פעולות על מספרים גדולים
  • טיפול יעיל בהקצאת זיכרון

17. (*) נתונה הפונקציה הבאה בסביבת 32bit:ב – C:

unsigned int div_by_17(unsigned int a)
{
	return (MUL*a)>>SHIFT;
}

ניתן למצוא ערכים של MUL ו – SHIFT עבורם ערך החזרה של הפונקציה יהיה a חלקי 17 (מעוגל כלפי מטה), בהנחה ש – 16 הביטים העליונים של a כבויים.
מצא ערך מתאים של MUL:

18. (*) בהמשך לשאלה הקודמת, מצא ערך של SHIFT המתאים לערך של MUL שמצאת:

19. (**) המורה של דני השתמש בשיטה הבאה כדי לכווץ הודעה המורכבת מ – 26 אותיות ה – ABC (אותיות גדולות בלבד):

הגדרה:
	מילון0 הוא מילון היודע לקחת מחרוזת ולמצוא מספר שהותאם לה קודם לכן
	(או להגיד שעדיין לא הותאם לה מספר)
עבור כל אות מה - ABC, בצע:
	התאם למחרוזת המכילה את האות הזו בלבד את האינדקס שלה ב - ABC
	(כלומר, ל - "A" יותאם 1 ול - "Z" יותאם 26)
הכנס למשתנה קוד0 את המספר 26
קרא את התו הראשון מהמסר ושמור אותו ב - מחרוזת0
כל עוד ישנם עדיין תווים במסר שלא נקראו, בצע:
	קרא את התו הבא מהמסר ושמור אותו ב - תו0
	הכנס ל - מחרוזת1 את מחרוזת0 עם תו0 משורשר בסופה
	אם כבר הותאם מספר ל - מחרוזת1 ב - מילון0 אזי:
		החלף את הערך של מחרוזת0 בערך של מחרוזת1
	אחרת:
		פלוט את המספר שהותאם ל - מחרוזת0 לפי מילון0
		הוסף אחד לערך של קוד0
		התאם במילון0 את המספר קוד0 למחרוזת מחרוזת1
		החלף את הערך של מחרוזת0 בערך של תו0
פלוט את המספר שהותאם למחרוזת0 לפי מילון0 

המסר המכווץ נראה כך (משמאל לימין):

3, 7, 27, 24, 29, 31, 7

דני רוצה לפענח את המסר, בתקווה שמשמעותו היא שהמורה מבטל את השיעור הקרוב. עזרו לדני!
מהו המסר המקורי אותו כיווץ המורה?

20. נתונות שתי דרכים לממש פונקציה מסוימת:ב – C:

unsigned int f1(unsigned int n)
{
	unsigned int x = 1;
	for (unsigned int i = 1; i <= n; i++) {
		x *= i;
	}
	return x;
}
unsigned int f2(unsigned int n)
{
	if (n == 0) return 1;
	return n*f2(n-1);
}

בפסקל:

function f1(n : word) : word;
var
 x, i : word;
begin
 x := 1;
 for i := 1 to n do x := x*i;
 f1 := x;
end;
function f2(n : word) : word;
begin
 if n = 0 then f2 := 1
 else f2 := n*f2(n-1);
end;

בחר את הטענה הנכונה:

  • אחת הפונקציות גורמת לביצוע של פעולות כפל רבות יותר מהשנייה
  • אחת הפונקציות עלולה לדרוש זיכרון רב יותר מהשנייה
  • במקרה של overflow בתוצאה, ערך החזרה של הפונקציות עלול להיות שונה
  • לא קיים הבדל מהותי בין המימושים, פרט לזמן הריצה

21. מה הקשר בין d – ממוצע הזמן בדקות בין פגיעת שני מטאורים, לבין m – ממוצע מספר המטאורים הפוגעים בדקה?

  • תמיד מתקיים m = d
  • יכול להיות ש m = 1/d
  • אף פעם לא d = 1/m
  • כל התשובות נכונות

22. אם תוכנת המגב (וישר) של מכונית פועלת על ידי מצמוץ אם ורק אם מספר השניות מאז 1.1.1970 מתחלק ב-d, כאשר d הוא מספר שלם בין 1 ל-10 הניתן לכיוונון על ידי הנהג. מהו קצב המצמוץ האיטי ביותר שניתן להשיג אם הנהג יכול לשנות את d כל שניה?

  • 10 שניות
  • 42 דקות
  • 42 יום
  • אינסוף

23. אני מחפש ספגטי מסוים בסופרמרקט, יש לי את ה-Bar-Code שלו ואני מנסה להשוות מול המוצרים שעל המדף. איזו שיטה יעילה יותר?

  • לבדוק את הספרה הראשונה (msb) ורק אם מתאימה לבדוק את הספרות הבאות
  • לבדוק את הספרה האחרונה (lsb) ורק אם מתאימה לבדוק את הספרות הבאות
  • תלוי איזה רוטב אני מעדיף
  • כל התשובות נכונות

24. ולמה?

  • כי הספרות האחרונות הם ספרות ביקורת
  • כי הספרות הראשונות קבועות למוצרים רבים
  • כי יש קשר בין הרוטב המועדף ל-Bar-Code
  • כל התשובות נכונות

25. להלן אלגוריתם הפעולה של מיקרוגל

start:
 time = 0
loop:
 if (time == 0 and program_time) time = user_input
 if (time > 0) {heat; time--; wait_a_second; if (time == 0) beep_end}
 goto loop
 
On cancel_pressed Interrupt:
 if (time>0) beep_abort; time=0
 goto loop

האם ניתן לעצור את המיקרוגל מרגע שהחל לחמם מבלי לצפצף?

  • לא, כי סיום הזמן או הפסקה לפני סיום גורמת לצפצוף
  • קימת שנייה בה ניתן לעשות זאת
  • רק אם time הוא בן 32 ביט
  • על ידי תכנות הזמן מחדש באמצע חימום

26. האם יכול להיות ש-30% מהגברים בגילאים 30 עד 40 הם רווקים ו-40% מהגברים בגילאי 40 עד 50 הם רווקים?

  • לא, כי יציאה מרווקות היא תהליך בלתי הפיך (אלמן וגרוש אינם רווקים)
  • לא, כי 50% מהאוכלוסייה הן נשים (ו 30+40 > 50)
  • כן, כי המצב לא חייב להיות יציב (עוד 10 שנים המספרים ישתנו)
  • כן, אבל רק אם מתמקדים באוכלוסיית תל-אביב בלבד

27. לפני קו עצירה של רמזור יש מספר גלאי מתכת. מה יקרה אם תוכנת הרמזור מתחשבת רק בגלאי המרוחק ביותר מהרמזור המגלה מתכת?

  • נהגים שיעצרו רחוק מהרמזור יקבלו ירוק מהר יותר
  • תנועת המכוניות תהיה רגישה פחות לשגיאות מדידה
  • הרמזור עלול ל"התקע" לנצח באור ירוק
  • כל התשובות נכונות

28. מה מחשבת הנוסחא הבאה?

(x0*y1-x1*y0)/sqrt((x0*x0+y0*y0)*(x1*x1+y1*y1))
  • אורך של אלכסון במחומש משוכלל
  • חוצה זווית של משולש שווה שוקיים
  • מרחק ממנו רואים פסל בזוית מירבית
  • קוסינוס של זוית שקודקודה בראשית

29. מה מחשב הקטע הבא

xm=0
for x = 0 to 100 {
	xx = x*(y2-y1)/sqrt((x*x+y1*y1)*(x*x+y2*y2))
	if (xx > xm) xm = xx; a=x
}
  • אורך של אלכסון במחומש משוכלל
  • חוצה זווית של משולש שווה שוקיים
  • מרחק ממנו רואים פסל בזוית מירבית
  • קוסינוס של זוית שקודקודה בראשית

30. נתון קטע הקוד (החסר) הבא בשפת C++:

class A { ... };
class B { ... };
class C { ... };
class Container {
	Container() : a(), c(), b() {
		c.start();
		b.start();
		a.start();
	}
	A a;
	B b;
	C c;
};

כאשר יוצרים מופע של המחלקה Container, באיזה סדר ייקראו הבונים (constructors) של האובייקטים המוכלים a, b, c?

  • קודם a, אח"כ b ולבסוף c
  • קודם c, אח"כ b ולבסוף a
  • קודם a, אח"כ c ולבסוף b
  • קודם b, אח"כ a ולבסוף c

31. כיצד ניתן לבצע TLB Priming?

  • לקרוא את המילה האחרונה של העמוד ממנו רוצים לקרוא ומיד לקרוא את העמוד מתחילתו ועד סופו
  • לקרוא מילה כלשהי מעמוד אותו רוצים לקרוא, ואז לעבוד על זיכרון אחר לפני שניגשים לעמוד הנ"ל
  • לקרוא עמוד בצרור (burst) מתחילתו ועד סופו, ואז לעבור עליו מסופו לתחילתו
  • לקרוא מילה אחת מכל שורת מטמון (cache line) בעמוד לפני שעוברים עליו

32. (*) מה תחזיר התוכנית הבאה?ב – C:

int f(int p, int p1)
{
	int i,j,i1,j1;
	i =p >>3; j =p &7;
	i1=p1>>3; j1=p1&7;
	return (i-i1)*(i-i1)+(j-j1)*(j-j1) == 5;
}

בפסקל:

function f(p, p1 : integer) : boolean;
var
 i, j, i1, j1 : integer;
begin
 i := p shr 3; j := p and 7;
 i1 := p1 shr 3; j1 := p1 and 7;
 f := (i-i1)*(i-i1)+(j-j1)*(j-j1) = 5;
end;
  • האם p גדול מ p1 כמספרים מרוכבים
  • האם אפשר להגיע במהלך פרש מ – p אל p1
  • האם p ניתן לייצוג כ p1 ספרות בבסיס 7
  • כל התשובות נכונות

33. (**) מה תחזיר התוכנית הבאה?

int s(unsigned __int64 x){return (!x || x&(x-1));}
int r()
{
	unsigned __int64 i,m1,m2;
	int r = 0;
	int j;
	for (i=1; i; i++,r+=j==8)
		for (j=0,m1=0xff,m2=0x101010101010101; j<8; j++,m1<<=8, m2<<=1)
			if (s(i&m1) || s(i&m2)) break;
	return r;
}

34. מה ספרת העשרות הנפוצה בין מליון חזקות 2 הראשונות?

  • 1
  • 2
  • 9
  • כולן מופיעות בערך בשכיחות שווה

35. מה הספרה הנפוצה ביותר כספרה ראשונה (Most Significant) בין מיליון חזקות 2 הראשונות?

  • 1
  • 2
  • 9
  • כולן מופיעות בערך בשכיחות שווה

36. מה מיוחד במספר 26334878?

  • כשמתרגמים אותו לאוקטלית, לא מכיל את הספרות 0 ו-7
  • תרגום של שם התחרות מאנגלית לספרות
  • מכפלה של שני מספרים ראשוניים
  • כל התשובות נכונות

37. מדוע השורה הבאה בשפת C גורמת לתוכנית לקרוס בארכיטקטורת x86?

void*x=(*((void*(*)())&(x=(void*)0xfdeb58)))();
  • Access Violation
  • Stack Underflow
  • Invalid Opcode
  • ביט Mod R/M משובש

38. מה זה 2001:0db8:85a3:08d3:1319:8a2e:0370:7334?

  • כתובת בפרוטוקול IPv6
  • נגטיב של חתול
  • המספר הראשוני הגדול ביותר הידוע כיום, בייצוג הקסדצימלי
  • בקשה לסנכרון, בפרוטוקול V.42 (מודם)

39. איזו מהאפשרויות הבאות אינה מבנה נתונים ידוע?

  • ערימה בינארית
  • ערימה מקושרת
  • ערימה בינומית
  • ערימת פיבונאצ'י
40. (*) צריח נע על לוח שח-מט סטנדרטי מהפינה השמאלית-עליונה אל הפינה הימנית-תחתונה. בכל צעד, הצריח יכול לזוז משבצת אחת ימינה או משבצת אחת למטה. כמה מסלולים אפשריים יש לצריח?

41. מה המקור של הביטוי SPAM?

  • דואר זבל זה מגעיל כמו בשר משומר
  • Shit Posing As Mail
  • סקיצה של "מונטי פייטון"
  • אף תשובה אינה נכונה

42. לאחר הרצת הקוד הבא בשפת C:

FILE* fp = fopen("1.txt", "w");
char ch = 0xa;
fwrite(&ch, sizeof(ch), 1, fp);
fclose(fp);

גודל הקובץ שנוצר היה שני בתים ולא בית אחד, מדוע?

  • מכיוון ש – fwrite מיועד לכתיבת בלוקים
  • מכיוון ש – fclose מוסיף בית מסיים
  • מכיוון שהקובץ נפתח במצב כתיבה טקסטואלי
  • מכיוון שהקוד רץ על מעבד AMD

43. (***) מה עושה הפונקציה הבאה, למה זה שימושי?ב – C:

int B[1<<7];
void f()
{
	int c, i, j;
	for (c = 0; c < (1<<7); c++) {
		if (B[c] == 0) {
			printf("%d\n", c);
			B[c] = 1;
			for (i = 1<<6; i != 0; i>>= 1) {
				for (j = 1<<6; j != 0; j>>= 1) {
					B[c^(i|j)] = 1;
				}
			}
		}
	}
}

בפסקל:

var
	b : array[0..(1 shl 7)] of integer;
procedure f;
var
	i, j, c : integer;
begin
	for c := 0 to (1 shl 7)-1 do
	begin
		if B[c] = 0 then
		begin
			writeln(c);
			B[c] := 1;
			i := 1 shl 6;
			while i <> 0 do
			begin
				j := 1 shl 6;
				while j <> 0 do
				begin
					B[c xor (i or j)] := 1;
					j := j shr 1;
				end;
				i := i shr 1;
			end;
		end;
	end;
end;

44. (****) מה עושה הפונקציה הבאה:ב – C:

int O[4] = {1, -1, 128, -128};
void f(unsigned char A[1<<14], int B[1<<14])
{
	int C[1<<8] = {0x3F7E};
	unsigned char X = 0, Y = 1;
	int j, m;
	for (j = 0; j < 1<<14; j++)
		B[j] = -1;
	while (X != Y) {
		int c = C[X++];
		for (j = 0; j < 4; j++) {
			m = c + O[j];
			if ((A[m] == 0) && (B[m] == -1) && (m != B[c]))
				{B[m] = c; C[Y++] = m; }
		}
	}
}

בפסקל:

const
 O : array[0..3] of integer = (1, -1, 128, -128);
type
 typeA = array[0..(1 shl 14)-1] of byte;
 typeB = array[0..(1 shl 14)-1] of integer;
procedure f(var a : typeA; var b : typeB);
var
 C : array[0..(1 shl 8)-1] of integer;
 X, Y : byte;
 j, m, k: integer;
begin
 C[0] := $3F7E;
 X := 0; Y := 1;
 for j := 0 to (1 shl 14)-1 do
 B[j] := -1;
 while (X <> Y) do
 begin
 k := C[X]; X:=X+1;
 for j := 0 to 3 do
 begin
	 m := k + O[j];
	 if (A[m] = 0) and (B[m] = -1) and (m <> B[k]) then
 begin
		 B[m] := k; C[Y] := m; Y:=Y+1;
 end;
	 end;
 end;
end;

 

שאלון קודגורו 6 שלב ב' – סופי

רשומה רגילה

1. מה המשמעות המקובלת בתכנות של המילה VOID?

  • מולטימדיה מאוד חכמה
  • חלל או ריק
  • טיפוס לא מוגדר
  • בדיקה של עמידות

2. מה המשמעות המקובלת בתכנות של int?

  • לייצג מספרים שלמים
  • להגדרות בינלאומיות
  • לצורכי בנקאות מקוונת
  • לארגון הבריאות העולמי
3. (*) מהו מספר ההשוואות המינימלי הנחוץ, במקרה הקשה ביותר, למיון מערך בן 5 איברים שונים?
4. (**) רוצים למיין מערך במספר גדול ככל האפשר של השוואות, אבל אסור להשוות בין שני איברים אם ניתן להסיק את היחס ביניהם מהשוואות קודמות. מהו המספר הגדול ביותר של השוואות אליו ניתן להגיע במיון של 5 איברים שונים?

5. נתונה הפונקציה הבאה, בסביבת 16bit:ב – C:

int f(unsigned char a, unsigned char b, unsigned char c)
{
	return ((a*b)/c) == (a*(b/c));
}

בפסקל:

function f(a, b, c : byte) : boolean;
var
	a0, b0, c0 : word;
begin
	a0 := a; b0 := b; c0 := c;
	f := ( ((a0*b0) div c0) = (a0*(b0 div c0)) );
end;

פונקציה זו תחזיר "אמת" אם ורק אם:

  • a=1 או (b mod c) = 0 או a=0
  • a*(b mod c) < c
  • (b mod c) = 0
  • תחזיר אמת תמיד
6. (*) במדינה שמספר תושביה עצום יש שני מתמודדים על הנשיאות ו – 50 ערים שגודלי אוכלוסיותיהן שווים. הבחירות נערכות בכל עיר בנפרד, והמתמודד שניצח ברב הערים הוא הזוכה בבחירות. דני ניצח בבחירות עם כמות הקולות המינימלית המאפשרת ניצחון. כמה קולות קיבל בממוצע במדגם אקראי של 3600 בוחרים מרחבי המדינה (עגל למספר השלם הקרוב ביותר)?

7. דני ניסה לחשב ממוצע של רשימה של N מספרים (N > 2) בצורה הבאה: הוא חישב את הממוצע של שני המספרים הראשונים, ואז את הממוצע של התוצאה עם המספר השלישי, ואת הממוצע של התוצאה החדשה עם המספר הרביעי וכך הלאה. למרות ששיטה זו לחישוב ממוצע אינה נכונה בעוד שלדני לא היו טעויות חישוב, המורה (שיודע לחשב ממוצע בצורה נכונה) בדק את התוצאה ושיבח את דני על התשובה הנכונה. דני, שחשד שהשיטה שלו אינה נכונה עבור המקרה הכללי, החליף את אחד המספרים במספר אחר (וסיפר על כך למורה), חישב את הממוצע החדש (בדרכו השגויה), וביקש מהמורה שיבדוק את התוצאה. אך איזה פלא – שוב שיבח המורה את דני על התוצאה הנכונה! איזה טענה נכונה בהכרח?

  • אם יוציאו את המספר שהוחלף, יהיה בין המספרים שנותרו מספר מספר השווה לממוצע של שאר המספרים (ללא המספר שהוצא)
  • N הוא 4, 5 או 8
  • המספר שהוחלף הוא המספר ה – lg(N)-י מסוף הרשימה (כאשר lg מייצג לוגריתם בבסיס 2)
  • המצב המתואר אינו אפשרי

8. על גבי תמונה ברזולוציה של 8×8, פלטתי 64 פיקסלים, כל אחד במקום אקראי ובלתי תלוי. מהו הסיכוי שמילאתי בדיוק מחצית מהפיקסלים שבתמונה?

  • פחות מ – 1 למיליון
  • בערך 1 ל – 2,500
  • בערך 1 ל – 100
  • בדיוק 1 ל – 2

9. נתון הפסאודו-קוד הבא (עם שלוש פונקציות חסרות):

א >- 1000000000
כל-עוד (אמת) בצע:
	אם ק, אזי:
		א >- 1000000000
		בצע פ
	אם א שווה ל - 0, אזי:
		בצע ס
	א >- 1-א

למה סביר להניח שהוא מיועד:

  • הקצאת מספרים סידוריים
  • פירוק מספרים גדולים לגורמים
  • תפעול דלת הזזה אוטומטית
  • הגרלת מספרי לוטו

10. (*) הפונקציה הבאה אמורה להחזיר את המיקום של האיבר שערכו x במערך A שמכיל N איברים ממוינים בסדר עולה (ומכיל איבר שערכו x). אבל יש בה באג.ב – C:

int get_index(int x, int A[], int N)
{
	int L = 0, H = N-1;

	while (L != H) {
		int M = (L+H)/2;
		if (x >= A[M])
			L = M;
		else
			H = M-1;
	}

	return L;
}

בפסקל (כאשר האיבר הראשון במערך A הוא האיבר במיקום ה – 0):

function get_index(x : integer; A : array of integer; N : integer) : integer;
var
	L, H, M : integer;
begin
	L := 0; H := N-1;

	while L <> H do
	begin
		M := (L+H) div 2;
		if x >= A[M] then
			L := M
		else
			H := M-1;
	end;
	get_index := L;
end;

עבור כמה ערכים של N, הפונקציה, בכל זאת, תחזיר תשובה נכונה תמיד?

11. מה עושה קטע הקוד הבא בשפת אסמבלי בסביבת 16bit?:

	mov bx, offset var_ptr
	xor ax, ax
l:
	xchg [bx], ax
	or ax, ax
	jz l
  • מחשב את שורש שלוש
  • תופס בעלות על משאב
  • מבצע מיון בועות
  • הופך רשימה מקושרת

12. מה עושה קטע הקוד הבא בשפת אסמבלי בסביבת 32bit?:

	xor ebx, ebx
start:
	test eax, eax
	jz end
	xchg ebx, [eax]
	xchg ebx, eax
	jmp start
end:
  • מחשב את שורש שלוש
  • תופס בעלות על משאב
  • מבצע מיון בועות
  • הופך רשימה מקושרת

13. מהן שלוש הפונקציות הבאות בשפת C:

void a(type1* s)
{
	p[0] = (type2*) malloc(sizeof(type2));
	p[1] = (type2*) malloc(sizeof(type2));
	p[0].a = p[1]; p[1].a = p[0];
	p[1].b = s;
}
void b(type1* s)
{
	type2* n = (type2*) malloc(sizeof(type2));
	p[0].b = s;
	n.a = p[0]; p[0].a = p[1]^n;
	p[1] = p[0]; p[0] = n;
}
int c(int d)
{
	if (p[!d].a != p[d]) {
		p[d] ^= p[!d].a;
		swap(p[d], p[!d]);
		return 1;
	}
	return 0;
}
  • מערכת Undo ו – Redo
  • מימוש של ערימה
  • מנגנון garbage collection
  • בינה מלאכותית ל – "ארבע בשורה"

14. (*) הוטל עליך לתכנן מערכת תקשורת רציפה בין רכיב כותב לרכיב דוגם. התקשורת מתבצעת דרך בלוקים של 64000 בתים. בזמן נתון, כל בלוק יכול להיות במצב "כתיבה" או במצב "קריאה" (אך לא בשניהם בו-זמנית). בכל פעם שהרכיב הדוגם מסיים לעבד בלוק, הוא מעוניין לקרוא את הבלוק האחרון שנכתב במלואו.מהו מספר הבלוקים המינימלי ההכרחי כדי למנוע מצב בו רכיב אחד מחכה לסיום פעולתו של הרכיב השני?

15. (**) דני מביט, ממרחק של מטר, במחיצת קרטון ממנה גזרו פס צר. דרך הפס הוא יכול לראות חלק קטן מכרזת פרסומת לקודגורו 6. הנקודה הנראית לדני כשמאלית ביותר בפס נמצאת במרחק של 260 ס"מ מהמחיצה. הנקודה הנראית לדני כימנית ביותר בפס נמצאת במרחק של 440 ס"מ מהמחיצה. המרחק בין שתי נקודות אלו הוא שני מטרים. מהו המרחק בסנטימטרים בין הנקודה הנראית לדני בצדו השמאלי של הפס לבין הנקודה הנראית לו במרכז הפס?

16. למה משמשות שלוש הפונקציות הבאות:

בשפת C
בשפת פסקל

void a()
{
	x1 = x2 = 0;
}
procedure a;
begin
 x1 := 0;
 x2 := 0;
end;
int b()
{
	if (x1) return F[--x1];
	return x2++;
}

 

function b : integer;
begin
 if x1 <> 0 then
 begin
 x1 := x1 - 1;
 b := F[x1];
 end
 else
 begin
 b := x2;
 x2 := x2 + 1;
 end;
end;
void c(int x)
{
	F[x1++] = x;
}
procedure c(x : integer);
begin
 F[x1] := x;
 x1 := x1 + 1;
end;
  • מימוש של תור מעגלי
  • התמרת פוריה בדידה
  • פעולות על מספרים גדולים
  • טיפול יעיל בהקצאת זיכרון

17. (*) נתונה הפונקציה הבאה בסביבת 32bit:ב – C:

unsigned int div_by_17(unsigned int a)
{
	return (MUL*a)>>SHIFT;
}

ניתן למצוא ערכים של MUL ו – SHIFT עבורם ערך החזרה של הפונקציה יהיה a חלקי 17 (מעוגל כלפי מטה), בהנחה ש – 16 הביטים העליונים של a כבויים.
מצא ערך מתאים של MUL:

18. (*) בהמשך לשאלה הקודמת, מצא ערך של SHIFT המתאים לערך של MUL שמצאת:

19. (**) המורה של דני השתמש בשיטה הבאה כדי לכווץ הודעה המורכבת מ – 26 אותיות ה – ABC (אותיות גדולות בלבד):

הגדרה:
	מילון0 הוא מילון היודע לקחת מחרוזת ולמצוא מספר שהותאם לה קודם לכן
	(או להגיד שעדיין לא הותאם לה מספר)

עבור כל אות מה - ABC, בצע:
	התאם למחרוזת המכילה את האות הזו בלבד את האינדקס שלה ב - ABC
	(כלומר, ל - "A" יותאם 1 ול - "Z" יותאם 26)

הכנס למשתנה קוד0 את המספר 26

קרא את התו הראשון מהמסר ושמור אותו ב - מחרוזת0

כל עוד ישנם עדיין תווים במסר שלא נקראו, בצע:
	קרא את התו הבא מהמסר ושמור אותו ב - תו0
	הכנס ל - מחרוזת1 את מחרוזת0 עם תו0 משורשר בסופה
	אם כבר הותאם מספר ל - מחרוזת1 ב - מילון0 אזי:
		החלף את הערך של מחרוזת0 בערך של מחרוזת1
	אחרת:
		פלוט את המספר שהותאם ל - מחרוזת0 לפי מילון0
		הוסף אחד לערך של קוד0
		התאם במילון0 את המספר קוד0 למחרוזת מחרוזת1
		החלף את הערך של מחרוזת0 בערך של תו0
פלוט את המספר שהותאם למחרוזת0 לפי מילון0 

המסר המכווץ נראה כך (משמאל לימין):

3, 7, 27, 24, 29, 31, 7

דני רוצה לפענח את המסר, בתקווה שמשמעותו היא שהמורה מבטל את השיעור הקרוב. עזרו לדני!
מהו המסר המקורי אותו כיווץ המורה?

20. נתונות שתי דרכים לממש פונקציה מסוימת:ב – C:

unsigned int f1(unsigned int n)
{
	unsigned int x = 1;
	for (unsigned int i = 1; i <= n; i++) {
		x *= i;
	}
	return x;
}

unsigned int f2(unsigned int n)
{
	if (n == 0) return 1;
	return n*f2(n-1);
}

בפסקל:

function f1(n : word) : word;
var
 x, i : word;
begin
 x := 1;
 for i := 1 to n do x := x*i;
 f1 := x;
end;

function f2(n : word) : word;
begin
 if n = 0 then f2 := 1
 else f2 := n*f2(n-1);
end;

בחר את הטענה הנכונה:

  • אחת הפונקציות גורמת לביצוע של פעולות כפל רבות יותר מהשנייה
  • אחת הפונקציות עלולה לדרוש זיכרון רב יותר מהשנייה
  • במקרה של overflow בתוצאה, ערך החזרה של הפונקציות עלול להיות שונה
  • לא קיים הבדל מהותי בין המימושים, פרט לזמן הריצה

21. מה הקשר בין d – ממוצע הזמן בדקות בין פגיעת שני מטאורים, לבין m – ממוצע מספר המטאורים הפוגעים בדקה?

  • תמיד מתקיים m = d
  • יכול להיות ש m = 1/d
  • אף פעם לא d = 1/m
  • כל התשובות נכונות

22. אם תוכנת המגב (וישר) של מכונית פועלת על ידי מצמוץ אם ורק אם מספר השניות מאז 1.1.1970 מתחלק ב-d, כאשר d הוא מספר שלם בין 1 ל-10 הניתן לכיוונון על ידי הנהג. מהו קצב המצמוץ האיטי ביותר שניתן להשיג אם הנהג יכול לשנות את d כל שניה?

  • 10 שניות
  • 42 דקות
  • 42 יום
  • אינסוף

23. אני מחפש ספגטי מסוים בסופרמרקט, יש לי את ה-Bar-Code שלו ואני מנסה להשוות מול המוצרים שעל המדף. איזו שיטה יעילה יותר?

  • לבדוק את הספרה הראשונה (msb) ורק אם מתאימה לבדוק את הספרות הבאות
  • לבדוק את הספרה האחרונה (lsb) ורק אם מתאימה לבדוק את הספרות הבאות
  • תלוי איזה רוטב אני מעדיף
  • כל התשובות נכונות

24. ולמה?

  • כי הספרות האחרונות הם ספרות ביקורת
  • כי הספרות הראשונות קבועות למוצרים רבים
  • כי יש קשר בין הרוטב המועדף ל-Bar-Code
  • כל התשובות נכונות

25. להלן אלגוריתם הפעולה של מיקרוגל

start:
 time = 0
loop:
 if (time == 0 and program_time) time = user_input
 if (time > 0) {heat; time--; wait_a_second; if (time == 0) beep_end}
 goto loop
 
On cancel_pressed Interrupt:
 if (time>0) beep_abort; time=0
 goto loop

האם ניתן לעצור את המיקרוגל מרגע שהחל לחמם מבלי לצפצף?

  • לא, כי סיום הזמן או הפסקה לפני סיום גורמת לצפצוף
  • קימת שנייה בה ניתן לעשות זאת
  • רק אם time הוא בן 32 ביט
  • על ידי תכנות הזמן מחדש באמצע חימום

26. האם יכול להיות ש-30% מהגברים בגילאים 30 עד 40 הם רווקים ו-40% מהגברים בגילאי 40 עד 50 הם רווקים?

  • לא, כי יציאה מרווקות היא תהליך בלתי הפיך (אלמן וגרוש אינם רווקים)
  • לא, כי 50% מהאוכלוסייה הן נשים (ו 30+40 > 50)
  • כן, כי המצב לא חייב להיות יציב (עוד 10 שנים המספרים ישתנו)
  • כן, אבל רק אם מתמקדים באוכלוסיית תל-אביב בלבד

27. לפני קו עצירה של רמזור יש מספר גלאי מתכת. מה יקרה אם תוכנת הרמזור מתחשבת רק בגלאי המרוחק ביותר מהרמזור המגלה מתכת?

  • נהגים שיעצרו רחוק מהרמזור יקבלו ירוק מהר יותר
  • תנועת המכוניות תהיה רגישה פחות לשגיאות מדידה
  • הרמזור עלול ל"התקע" לנצח באור ירוק
  • כל התשובות נכונות

28. מה מחשבת הנוסחא הבאה?

(x0*y1-x1*y0)/sqrt((x0*x0+y0*y0)*(x1*x1+y1*y1))
  • אורך של אלכסון במחומש משוכלל
  • חוצה זווית של משולש שווה שוקיים
  • מרחק ממנו רואים פסל בזוית מירבית
  • קוסינוס של זוית שקודקודה בראשית

29. מה מחשב הקטע הבא

xm=0
for x = 0 to 100 {
	xx = x*(y2-y1)/sqrt((x*x+y1*y1)*(x*x+y2*y2))
	if (xx > xm) xm = xx; a=x
}
  • אורך של אלכסון במחומש משוכלל
  • חוצה זווית של משולש שווה שוקיים
  • מרחק ממנו רואים פסל בזוית מירבית
  • קוסינוס של זוית שקודקודה בראשית

30. נתון קטע הקוד (החסר) הבא בשפת C++:

class A { ... };
class B { ... };
class C { ... };

class Container {
	Container() : a(), c(), b() {
		c.start();
		b.start();
		a.start();
	}
	A a;
	B b;
	C c;
};

כאשר יוצרים מופע של המחלקה Container, באיזה סדר ייקראו הבונים (constructors) של האובייקטים המוכלים a, b, c?

  • קודם a, אח"כ b ולבסוף c
  • קודם c, אח"כ b ולבסוף a
  • קודם a, אח"כ c ולבסוף b
  • קודם b, אח"כ a ולבסוף c

31. כיצד ניתן לבצע TLB Priming?

  • לקרוא את המילה האחרונה של העמוד ממנו רוצים לקרוא ומיד לקרוא את העמוד מתחילתו ועד סופו
  • לקרוא מילה כלשהי מעמוד אותו רוצים לקרוא, ואז לעבוד על זיכרון אחר לפני שניגשים לעמוד הנ"ל
  • לקרוא עמוד בצרור (burst) מתחילתו ועד סופו, ואז לעבור עליו מסופו לתחילתו
  • לקרוא מילה אחת מכל שורת מטמון (cache line) בעמוד לפני שעוברים עליו

32. (*) מה תחזיר התוכנית הבאה?ב – C:

int f(int p, int p1)
{
	int i,j,i1,j1;
	i =p >>3; j =p &7;
	i1=p1>>3; j1=p1&7;
	return (i-i1)*(i-i1)+(j-j1)*(j-j1) == 5;
}

בפסקל:

function f(p, p1 : integer) : boolean;
var
 i, j, i1, j1 : integer;
begin
 i := p shr 3; j := p and 7;
 i1 := p1 shr 3; j1 := p1 and 7;
 f := (i-i1)*(i-i1)+(j-j1)*(j-j1) = 5;
end;
  • האם p גדול מ p1 כמספרים מרוכבים
  • האם אפשר להגיע במהלך פרש מ – p אל p1
  • האם p ניתן לייצוג כ p1 ספרות בבסיס 7
  • כל התשובות נכונות

33. (**) מה תחזיר התוכנית הבאה?

int s(unsigned __int64 x){return (!x || x&(x-1));}

int r()
{
	unsigned __int64 i,m1,m2;
	int r = 0;
	int j;
	for (i=1; i; i++,r+=j==8)
		for (j=0,m1=0xff,m2=0x101010101010101; j<8; j++,m1<<=8, m2<<=1)
			if (s(i&m1) || s(i&m2)) break;
	return r;
}

 

34. מה ספרת העשרות הנפוצה בין מליון חזקות 2 הראשונות?

  • 1
  • 2
  • 9
  • כולן מופיעות בערך בשכיחות שווה

35. מה הספרה הנפוצה ביותר כספרה ראשונה (Most Significant) בין מיליון חזקות 2 הראשונות?

  • 1
  • 2
  • 9
  • כולן מופיעות בערך בשכיחות שווה

36. מה מיוחד במספר 26334878?

  • כשמתרגמים אותו לאוקטלית, לא מכיל את הספרות 0 ו-7
  • תרגום של שם התחרות מאנגלית לספרות
  • מכפלה של שני מספרים ראשוניים
  • כל התשובות נכונות

37. מדוע השורה הבאה בשפת C גורמת לתוכנית לקרוס בארכיטקטורת x86?

void*x=(*((void*(*)())&(x=(void*)0xfdeb58)))();
  • Access Violation
  • Stack Underflow
  • Invalid Opcode
  • ביט Mod R/M משובש

38. מה זה 2001:0db8:85a3:08d3:1319:8a2e:0370:7334?

  • כתובת בפרוטוקול IPv6
  • נגטיב של חתול
  • המספר הראשוני הגדול ביותר הידוע כיום, בייצוג הקסדצימלי
  • בקשה לסנכרון, בפרוטוקול V.42 (מודם)

39. איזו מהאפשרויות הבאות אינה מבנה נתונים ידוע?

  • ערימה בינארית
  • ערימה מקושרת
  • ערימה בינומית
  • ערימת פיבונאצ'י
40. (*) צריח נע על לוח שח-מט סטנדרטי מהפינה השמאלית-עליונה אל הפינה הימנית-תחתונה. בכל צעד, הצריח יכול לזוז משבצת אחת ימינה או משבצת אחת למטה. כמה מסלולים אפשריים יש לצריח?

41. מה המקור של הביטוי SPAM?

  • דואר זבל זה מגעיל כמו בשר משומר
  • Shit Posing As Mail
  • סקיצה של "מונטי פייטון"
  • אף תשובה אינה נכונה

42. לאחר הרצת הקוד הבא בשפת C:

FILE* fp = fopen("1.txt", "w");
char ch = 0xa;
fwrite(&ch, sizeof(ch), 1, fp);
fclose(fp);

גודל הקובץ שנוצר היה שני בתים ולא בית אחד, מדוע?

  • מכיוון ש – fwrite מיועד לכתיבת בלוקים
  • מכיוון ש – fclose מוסיף בית מסיים
  • מכיוון שהקובץ נפתח במצב כתיבה טקסטואלי
  • מכיוון שהקוד רץ על מעבד AMD

43. (***) מה עושה הפונקציה הבאה, למה זה שימושי?ב – C:

int B[1<<7];

void f()
{
	int c, i, j;
	for (c = 0; c < (1<<7); c++) {
		if (B[c] == 0) {
			printf("%d\n", c);
			B[c] = 1;
			for (i = 1<<6; i != 0; i>>= 1) {
				for (j = 1<<6; j != 0; j>>= 1) {
					B[c^(i|j)] = 1;
				}
			}
		}
	}
}

בפסקל:

var
	b : array[0..(1 shl 7)] of integer;

procedure f;
var
	i, j, c : integer;
begin
	for c := 0 to (1 shl 7)-1 do
	begin
		if B[c] = 0 then
		begin
			writeln(c);
			B[c] := 1;
			i := 1 shl 6;
			while i <> 0 do
			begin
				j := 1 shl 6;
				while j <> 0 do
				begin
					B[c xor (i or j)] := 1;
					j := j shr 1;
				end;
				i := i shr 1;
			end;
		end;
	end;
end;

44. (****) מה עושה הפונקציה הבאה:ב – C:

int O[4] = {1, -1, 128, -128};

void f(unsigned char A[1<<14], int B[1<<14])
{
	int C[1<<8] = {0x3F7E};
	unsigned char X = 0, Y = 1;
	int j, m;
	for (j = 0; j < 1<<14; j++)
		B[j] = -1;
	while (X != Y) {
		int c = C[X++];
		for (j = 0; j < 4; j++) {
			m = c + O[j];
			if ((A[m] == 0) && (B[m] == -1) && (m != B[c]))
				{B[m] = c; C[Y++] = m; }
		}
	}
}

בפסקל:

const
 O : array[0..3] of integer = (1, -1, 128, -128);

type
 typeA = array[0..(1 shl 14)-1] of byte;
 typeB = array[0..(1 shl 14)-1] of integer;

procedure f(var a : typeA; var b : typeB);
var
 C : array[0..(1 shl 8)-1] of integer;
 X, Y : byte;
 j, m, k: integer;
begin
 C[0] := $3F7E;
 X := 0; Y := 1;
 for j := 0 to (1 shl 14)-1 do
 B[j] := -1;
 while (X <> Y) do
 begin
 k := C[X]; X:=X+1;
 for j := 0 to 3 do
 begin
	 m := k + O[j];
	 if (A[m] = 0) and (B[m] = -1) and (m <> B[k]) then
 begin
		 B[m] := k; C[Y] := m; Y:=Y+1;
 end;
	 end;
 end;
end;

 

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

רשומה רגילה
1. ב – ‏C++‎, אם נצהיר על מתודה כ – pure virtual וגם נממש אותה:

  • נקבל שגיאת קומפילציה – אסור לממש פונקציות pure
  • נקבל שגיאת ריצה – אם תהיה קריאה לפונקציה ה – runtime יזרוק exception
  • יתקמפל וירוץ בלי בעיות, אך מהדרים מסוימים יזרקו warning – לעולם לא ניתן להריץ את הפונקציה
  • שימושי במקרים מסוימים, אין שגיאות בזמן קומפילציה או בזמן ריצה
2. מה עושה הקוד הבא:

int f(unsigned int x)‎
‎{‎
‎ if (x == 0) return 0;‎
‎ return (f(x/2) + (x%2));‎
‎}‎

  • מחזיר כמה ספרות זוגיות יש במספר
  • מחזיר את מספר הביטים הדלוקים
  • מחזיר את מספר הביטים הכבויים
  • מחזיר האם המספר מתחלק בשתיים ללא שארית
3. מה לא בסדר הקוד הבא בשפת C++ (הניחו שקיימים ה-include-ים המתאימים):

int rand(void)‎
‎{‎
‎	std::auto_ptr<char> arr = new char[100];‎
‎	int i;‎
‎	for (i = 0; i < 100; ++i)‎
‎	{‎
‎		arr[i] = rand();‎
‎	}
‎ ‎
‎	for (i = 0; i < 100; ++i)‎
	{‎
		std::cout<<int(arr[i])<<std::endl;‎
	}‎
‎}‎
  • יש חריגה מתחום המערך – באחת מלולאות ה – for
  • יש דליפת זיכרון – אסור להחזיק מערכים ב-auto_ptr
  • אסור להכניס ints למשתנה char ללא type-cast – זה זורק מידע
  • אסור להדפיס משתנה char כ-int – המידע החסר לא מוגדר
4. אילו מהצעדים הבאים נחוץ כדי להשתמש ב – dynamic_cast ב-C++‎:

  • קיום מתודה וירטואלית כלשהי ב-class האב
  • קיום destructor וירטואלי
  • קיום constructor וירטואלי
  • אף אחד, ניתן להשתמש ב-dynamic_cast על כל אובייקט
5. מה עושה הקוד הבא:

bool f(unsigned int x) {‎
‎ if (x == 0) return false;‎
‎ return ((x & (x-1)) == 0);‎
‎}‎
  • בודק האם X הוא חזקה של 2
  • בודק האם ב-X יש שני ביטים דולקים צמודים
  • בודק האם ל-X יש ביט אחד דולק לפחות
  • בודק האם ל-X יש מספר זוגי של ביטים דולקים
6. מה התפקיד של INT 3h במחשבי PC של IBM?

  • זה ה- Video Interrupt
  • זה ה- Keyboard Interrupt
  • זה ה- Disc Interrupt
  • זה ה-Breakpoint Interrupt ‎
7. מה ההבדל בין Intel Assembly ל- AT&T Assembly?

  • יש Opcodes שונים
  • תחביר שונה
  • יש אוגרים שונים
  • מיועדות למעבדים שונים
8. איזה קוד שקול לפעולה של הפקודה LEAVE?

  • NOP; POP EBP
  • MOV ESP, EBP; POP EBP‎
  • MOV EBP, ESP; POP ESP
  • LEA EBP, [EBP]; POP EBP‎
9. אם ‎[EBP-4]‎ הנו המשתנה המקומי הראשון בפונקצית C, מה זה ‎[EBP+4]‎?

  • כתובת חזרה
  • משתנה גלובלי ראשון
  • פרמטר ראשון לפונקציה
  • Saved EBP
10. בשביל שהתוכנית הבאה תפעל באופן תקין, השלם את החסר.

‎.DATA‎
	HelloWorld DB "HelloWorld", 0x0‎
‎.TEXT‎
	MOV ESI, HelloWorld
	MOV EDI, ESP
	‎???‎
	CHAR_LOOP:‎
		LODSB
		CMP AL, 0x0‎
		JE _EOF
		STOSB
		JMP CHAR_LOOP
	‎_EOF:‎
		RET
  • MOV ESI, 0‎
  • CLD
  • STD
  • XOR EDI, EDI
11. יש שתי מעטפות, באחת יש פי שתיים יותר כסף מהשנייה. פתחת מעטפה אחת ואתה רואה בתוכה ‏1000 שקל, האם כדאי לעבור למעטפה שנייה?

  • כן, כי יש במעטפה השנייה 500 שקל או 2000 שקל ולכן תוחלת הרווח היא חיובית
  • רק אם השיקולים שלך הם להרוויח כמה שיותר כסף, לא משנה באיזה סיכוי
  • אפשר לעבור ואפשר לא לעבור, זה לא משנה
  • רק אם משחקים יותר מאיטרציה אחת של המשחק (אבל כל פעם הסכומים במעטפות מוגרלים מחדש)
12. יש תחנת אוטובוסים שבתחילת כל דקה יוצא ממנה אוטובוס בהסתברות 1/6. מה הפרש הזמנים בתוחלת בין יציאה של שני אוטובוסים סמוכים?

  • 6 דקות
  • 5 דקות
  • 12 דקות
  • 10 דקות
13. הגעת לאותה תחנת אוטובוסים באמצע דקה כלשהי. מה הפרש הזמנים בתוחלת בין האוטובוס שיצא לפני שהגעת לאוטובוס הבא שיגיע?

  • 6 דקות
  • 5 דקות
  • 12 דקות
  • 10 דקות
14. מה מודדים ביחידות וואט (w)?

  • מתח
  • התנגדות
  • הספק
  • זרם
15. מה תפקיד הפקודה הבאה הרשומה בשפת HTML:

‎<marquee direction="right"> HELLO </marquee>‎
  • הפקודה מציגה על המסך את המילה HELLO כאשר המילה נטוייה לצד ימין
  • הפקודה מציגה בצד ימין של המסך את המילה HELLO
  • הפקודה מציגה על המסך את המילה HELLO כאשר המילה נעה משמאל לימין
  • הפקודה מציגה על המסך את המילה HELLO כאשר המילה נעה מימין לשמאל
16. מה יציג הדפדפן עבור הקטע הבא בשפת HTML:

‎<body>‎
‎	<script language="javascript">‎
		Window.alert("Good Luck");‎
	</script>‎
‎</body> ‎
  • הדפדפן יציג הודעת שגיאה למשתמש מפני שהקטע לא תקין
  • הדפדפן יפתח הודעה למשתמש שבה רשום Good Luck
  • הדפדפן יפתח חלון חדש שבו רשום Good Luck בצבע שחור
  • הדפדפן לא יעבוד עד שהמשתמש לא יקליד Good Luck
17. מה פירוש המילה ASP?

  • Active Search Pages
  • Active Support Pages
  • Active System Pages
  • Active Server Pages
18. איזה מהבאים הוא אינו‎ ‎טופולוגיה המגדירה חיבור של מחשבים ברשת?

  • BUS
  • SQUARE
  • STAR
  • RING
19. איזה מהבאים הוא אינו סוג של כבל תקשורת?

  • Twisted Pair
  • Coaxial
  • RJ45‎
  • Optic Fiber
20. מה פירוש ראשי התיבות SMC בשפה Assembly?

  • Self Machine Check
  • Self Modifying Code
  • Single Machine Connection
  • Single Machine Circle
21. כמה פעמיים תתבצע הלולאה הבאה?

MOV EAX, 6
MOV EBX, 5‎
MOV ECX, 4‎
MOV EDX, 3‎
MOV ESI, 2‎
MOV EDI, 1‎

LOOP_ME:‎
 	DEC EAX
 	DEC EBX
 	DEC ECX
 	DEC EDX
 	DEC ESI
 	DEC EDI
	LOOP LOOP_ME
  • 1
  • 4
  • 3
  • 2
22. במקום LOOP, נשתמש ב LOOPZ ‎. כמה פעמיים עכשיו הלולאה תבצע?

  • 0
  • 1
  • 3
  • אין סוף
23. באיזה אוגר משתמשים להעברת ערך חזרה ‎(Return Value)‎ בקוד שנכתב בשפת C?

  • EDX
  • ESI
  • ECX
  • EAX
24. מה הערך של האוגר AH בקוד הבא?

MOV EAX, 0xabcddcba
PUSH 0x1‎
POP EAX
  • הערך ‎0xBA
  • הערך ‎0x0‎
  • הערך ‎0x1‎
  • הערך ‎0xB1‎
25. באיזה מדינה פותח וירוס המחשב הראשון – ‎"brain virus"‎ ?

  • רוסיה
  • ארה"ב
  • פקיסטן
  • סין
26. באיזו שנה פותח משחק המחשב הראשון ששמו "מלחמת החלל" ?

  • 1962
  • 1946
  • 1989
  • 1950
27. לאיזה מהרכיבים הבאים רוחב פס הנתונים ‎(DATA BUS)‎ הוא 16 סיביות?

  • 8051
  • 8086
  • 8088
  • כל התשובות נכונות
28. איך ניתן לדעת שהמספר 0010 הרשום בצורה בינארית הוא זוגי?

  • עפ"י סיבית שמאלית כאשר היא '0' לוגי
  • עפ"י סכום שתי הסיביות השמאליות כאשר הוא '0' לוגי
  • כאשר מספר '0' לוגי במספר יותר גדול ממספר '1' לוגי
  • עפ"י סיבית ימנית כאשר היא '0' לוגי
29. מהו תפקיד הסיכוך העוטף את כבל התקשורת?

  • לחזק את הכבל
  • לאפשר העברת מידע רב ומהיר בכבל
  • לספוג רעשים הנוצרים על הכבל ולהגן על המידע
  • להגדיל את התנגדות הכבל ובכך להחליש את כמות המידע בכבל
30. במודל שבע השכבות ‎(OSI)‎, איזו שכבה נמצאת מתחת לשכבת ה- Transport?

  • Network
  • Application
  • Presentation
  • Physical
31. איזו העברת נתונים מהירה יותר, העברה מקבילית או העברה טורית?

  • העברה מקבילית
  • העברה טורית
  • שני סוגי ההעברות שוות בזמן
  • תלוי בגודל המידע שרוצים להעביר
32. מה עושה התוכנית הבאה בשפת מיקרו 8086 הבאה:

Mov CX, 10 ‎ ‎ ‎
Mov SI, 2000h ‎ ‎
Mov DI, 1000h ‎ ‎ 
Again: Mov AL, [DI]‎
‎ Mov BL, [SI]‎
‎ Mov [DI], BL‎
‎ Mov [SI], AL‎
‎ Inc SI‎
‎ Inc DI‎
‎ Loop Again
  • התוכנית מעבירה בלוק נתונים בגודל 10 מכתובת ‎1000h לכתובת ‎2000h
  • התוכנית מחליפה בלוק נתונים בגודל 10 בין כתובת ‎1000h לבין כתובת ‎2000h
  • התוכנית מעבירה בלוק נתונים בגודל 10 מכתובת ‎2000h לכתובת ‎1000h
  • התוכנית מחליפה בלוק נתונים בגודל 10 בין כתובת ‎1009h לבין כתובת ‎2009h
33. מה ישתנה לאחר שינוי ערך אוגר CX ל- ‎10h?

  • התוכנית לא תשתנה כלל
  • גודל בלוק הנתונים ישתנה ל- 16 תאים
  • התוכנית תשנה את הכתובות ל- ‎1010h ול- ‎2010h
  • התוכנית לא תעבוד מפני שזיכרון המעבד לא מכיר בלוק נתונים בגודל ‎10h
34. נתונה התוכנית הבאה בשפת פסקל:

x:= 0;‎
writeln('Enter a number');‎
readln(num);‎
while num<>0 do‎
begin
‎ x:= x*10+(num mod 10);‎
‎ num:= num div 10;‎
end;‎

מה תפקיד התוכנית הבאה?

  • התוכנית מחשבת את סכום הספרות של המספר num
  • התוכנית מחשבת את סכום ספרת העשרות והאחדות של המספר num
  • התוכנית מפרקת את המספר num לחצי
  • התוכנית מסדרת את המספר num בסדר ספרות הפוך
35. בתוך המעבד ישנה יחידה הנקראת ALU. מה הפירוש של יחידה זו?

  • Arithmetic Large Unit
  • Arithmetic Logic Unit
  • Arithmetic License Unit
  • Arithmetic Login Unit
36. מה ההבדל בין הזיכרונות ROM ו- RAM?

  • ROM זהו זיכרון פנימי, RAM זהו זיכרון חיצוני
  • ROM זהו זיכרון שניתן לכתוב אליו ולקרוא ממנו, RAM זהו זיכרון שניתן לקרוא ממנו בלבד
  • ROM זהו זיכרון שניתן לקרוא ממנו בלבד, RAM זהו זיכרון שניתן לכתוב אליו ולקרוא ממנו
  • ROM זהו זיכרון לכתובות בלבד, RAM זהו זיכרון לנתונים בלבד
37. LED מוגדר כרכיב…?

  • נועל – Latch
  • קלט – Input
  • חוצץ – Buffer
  • פלט – Output
38. בתוכנת WORD, איזה קיצור מבצע בחירת כל המסמך?

  • Alt + S
  • Ctrl + Z
  • Ctrl + A
  • Alt + W
39. בתוכנת EXCEL, כדי לפתוח מסמך שמור משתמשים בקיצור?

  • Ctrl + P
  • Ctrl + O
  • Ctrl + N
  • Ctrl + M
40. על איזו מערכת הפעלה מבוסס מנוע החיפוש של Google?

  • Windows
  • Linux
  • Macintosh
  • מנוע החיפוש עובד ללא שום מערכת הפעלה
41. מה מסתתר תחת השם OLS?

  • מערכת הפעלה
  • שפת תכנות
  • כרטיסייה בתוך המעבד
  • כנס לינוקס המתקיים מדי שנה בקנדה
42. מה זה PHP?

  • מכונה להעשרת אורניום
  • חבילת יישומים של office
  • שפה לבניית אתרים דינאמיים
  • מחלקה מחברת המחשבים HP
43. למה משמש הכלי rsync?

  • סנכרון המחשב עם מכשיר חיצוני (לדוגמא מדפסת)
  • העברה יעילה של קבצים ברשת
  • עוזר בתקנה של מערכת ההפעלה
  • מנוע חיפוש חזק ברשת
44. מה עושה הקוד הבא:

mov cx, 2‎
start:‎
xor dx, dx
div cx
push dx
and ax, ax
jz next
call start
next:‎
pop ax
add al, 30‎
int 29‎
ret
  • מדפיס מספר בבסיס 10
  • מדפיס מספר בביס בינארי
  • פונקציה רקורסיבית שבודקת אם מספר אי זוגי
  • פונקציה רקורסיבית שמדפיסה מספר ראשוני
45. מה היתרון של passive FTP?

  • האנטי-וירוס לא יזהה וירוסים אשר יעברו דרך passive FTP
  • הוא יותר מהיר
  • הוא יותר אמין (תיקון שגיאות)
  • הוא עובד מאחורי firewalls
46. למה צריך את TFTP?

  • אם FTP נחסם בfirewall
  • מימוש פשוט של FTP (במגבלות גודל קוד וזיכרון)
  • הוא יותר יעיל בהעברת קבצים קטנים
  • כדי לבצע העברת קבצים בין שני שרתים מרוחקים
47. למה משמש פורט 443?

  • לתעבורת HTTP מעל SSL
  • נעשה בו שימוש ב OpenSSL
  • לתעבורת RPC
  • לתעבורת HTTP Proxy
48. באיזה הקשר משתמשים במונח IRQL:

  • קוד אשר מטפל בפסיקות
  • פיתוח קוד פתוח בליבה של לינוקס
  • הפונקציה אשר גורמת ל blue screen of death בחלונות
  • קוד של מנהלי התקנים‎ ‎(דרייברים)
49. כשמרימים לחיים במשתה בין עשרה אנשים, כל בן אדם הרים לחיים עם כל האחרים, כמה נקישות בין הכוסות היו סה"כ?

  • 45
  • 35
  • 100
  • !10
50. מה ידפיס קטע הקוד הבא כאשר הוא מורץ ע"י מעבד SPARC?

long a[] = {1, 2, 3, 4};‎
char*p = a;‎
for (int i = 0; i < sizeof(a); i++)‎
‎ printf("%d, ", *(p + i));‎
  • ‎1, 2, 3, 4,‎
  • ‎1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0,‎
  • ‎0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 3,‎
  • ‎4, 3, 2, 1,‎
51. מה ידפיס קטע הקוד הבא כאשר הוא מורץ ע"י מעבד PowerPC?

char a[] = {1, 2, 3, 4};‎
long *p = a;‎
for (int i = 0; i < sizeof(a) / sizeof(long); i++)‎
‎ printf("%x, ", *(p + i));‎
  • ‎01, 02, 03, 04‎
  • ‎1020304,‎
  • ‎4030201,‎
  • ‎04, 03, 02, 01‎
52. כמה אוגרים כלליים יש במעבד AMD64‎ (x86-64‎)?

  • 8
  • 16
  • 32
  • 64
53. דיסאסמבלר הינו כלי שמטרתו:

  • לקמפל קוד אסמבלי לשפת מכונה
  • להריץ קוד מכונה בסימולציה
  • לתרגם קוד מכונה לשפת אסמבלי
  • לבדוק תקינות ריצה של תוכנית אסמבלי
54. Rootkit הינו:

  • וירוס מחשב שמופץ דרך האינטרנט
  • תוכנה זדונית שמטרתה להיות מוסתרת
  • סט כלים שנמצא בידי שימוש אדימיניסטרטור בלינוקס
  • שם של חברת אבטחה הודית
55. מה עושה הקוד C הבא:

unsigned long f(unsigned long a, unsigned long b)‎
‎{‎
‎ long d1 = b - a;‎
‎ long d2 = (d1 & (d1 >> 31)) << 1;‎
‎ return d1 - d2;‎
‎}‎
  • מחזיר את המרחק בין שני המספרים
  • מחזיר את המספר הנמוך מבין השניים
  • מחזיר את המספר הגבוה מבין השניים
  • מחזיר את סכום שני המספרים בלי לגרום לגלישה
56. מה עושה הקוד אסמבלי הבא:

ADD EAX, 3‎
SHR EAX, 2‎
  • מוסיף לאוגר 3 ומחלק אותו בשתיים
  • מחלק את האוגר ב-4, התוצאה מעוגלת כלפי מעלה
  • מוסיף לאוגר 3 ומכפיל אותו בארבע
  • מחלק את האוגר ב-3, מעוגל כלפי מטה
57. מה עושה הקוד אסמבלי הבא:

MOV DX, AX
MOV CL, 15‎
SAR DX, CL
SUB AX, DX
SAR AX, 1‎
  • מחלק מספר signed ב-2
  • מחלק מספר unsigned ב-2
  • מחלק מספר signed ב-2 ומעגל כלפי ה-0
  • מחלק מספר unsigned ב-2 ומעגל כלפי מינוס אינסוף
58. מה זה x-mas פקט‎?‎

  • פקטה שבה כל האופציות בדגלים של פקטת TCP דלוקות
  • פקטה ששולחים בתחילת כל שנה ל ‎ www.times.com
  • פקטת authentication שנשלחת בין רכז (hub) אחד לאחר
  • סוג של וירוס שנשלח מעל רשתות Wireless LAN
59. מה זה QOS?

  • שביעות רצון הצרכן של חברות ספקי אינטרנט
  • פרוטוקול לסינכרון מידע בין נתבים
  • הרכיב של DNS שאחראי על מטמון
  • פרוטוקול תיעדוף בין פקטות בנתבים
60. מה זה ECC?

  • Error Correction Code
  • Elliptic Curve Cryptography
  • תשובות א+ב נכונות
  • אף תשובה לא נכונה
61. למה בבקשת HTTP יש פרמטר HOST?

  • כדי שהאתר יוכל לעשות סטטיסטיקה פנימית
  • אם יש כמה אתרים על אותה הכתובת
  • כדי שהאתר יידע שרצו לפנות אליו אם הייתה בעיה בDNS
  • לצורך אבטחה ברמת הפרוטוקול בשילוב עם RSA
62. למה בVOIP משתמשים בפרוטוקול UDP מאשר TCP?

  • האמינות בפרוטוקול פחות חשובה ולכן כדי שהפקטות יגיעו מהר משתמשים בUDP
  • UDP לא עושה checksum על פקטות וכך הן תמיד יגיעו ליעדן גם עם קשיים בתקשורת
  • TCP לא יכול לעמוד במהירות שצריך בכדי לשלוח פקטות בפרוטוקולי VOIP
  • חברות התקשורת ישלמו יותר אם התעבורה תהיה אמינה ולכן משתמשים בUDP
63. מהי התזה של צ'רץ'?

  • יש בעיות שהן בלתי פתירות
  • יש עובדות שאי-אפשר לדעת אם הן נכונות או לא
  • ניתן לממש כל אלגוריתם שעובד עם מספרים באמצעות שפת C
  • ניתן לכתוב תוכנת מחשב שאם תדבר איתה לא תדע להבדיל אם זה מחשב או בן אדם
64. מי ידוע כתוכניתן הראשון:

  • קובול
  • אדה
  • פסקל
  • ליספ
65. מה עושה הקוד הבא בשפת אסמבלי ‎80×86‎?

ADD EAX, 3‎
AND EAX, -4‎
  • מעגל מספר כלפי מטה לכיוון האפס
  • מיישר (align) את המספר כך שיתחלק ב 4
  • בודק האם מספר מתחלק ב 4
  • מחסיר מ EAX את הערך ‎-1‎
66. מה משמעות ראשי התיבות SP?

  • Stack pointer בשפת סף
  • Service Pack של מערכת הפעלה
  • Short Play בווידאו
  • כל התשובות נכונות
67. בכמויות גדולות, מה יותר זול: קניה ללא מע"מ או קנה אחד וקבל את השני בהנחה של שליש?

  • קניה ללא מע"מ
  • קנה אחד וקבל את השני בהנחה של שליש
  • אותו הדבר
  • התשובה השתנתה עם הורדת המע"מ מ-17 ל-16.5 אחוז
68. בטקס סיום שכבה ח' בבית ספר יסודי השתתפו מאה תלמידים. לשמונה מהם היו אחים בכיתה א' שבאו לברך אותם .לכמה אחוזים מהמשפחות (בערך) יש שני אחים בהפרש של שבע שנים זה מזה ?

  • 4 אחוז
  • 8 אחוז
  • 12 אחוז
  • 16 אחוז
69. אם בשבוע הספר מוכרים עשרה אחוז ממכירת הספרים השנתית, פי כמה גדולה מכירת הספרים בשבוע הספר מאשר בשבוע רגיל ?

  • פי 1.1
  • פי 5.1
  • פי 5.7
  • פי 10
70. אם רוב הכסאות בכיתה הם ורודים, ורוב התלמידים בכיתה הם בנים אז

  • קיים בן שיושב על כיסא ורוד
  • כל הבנות יושבות על כיסאות ורודים
  • אין שני כסאות כחולים צמודים
  • כל התשובות נכונות
71. זכרון מטמון זה כמו

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

  • בלתי אפשרי
  • משתמשים בשטר של שני דולר
  • שטר ישן של אלף לירות
  • אפשר
73. המשמעות של PERL היא:

  • Programmer Efficient Runtime Library
  • Practical Extraction and Reporting Language
  • Partial Equation Resolution Library
  • Productive Execution Runtime Language
74. במערכת WINNT, תוכניות רבות נתקעות בעת הפעלתן, ובעיקר תוכנות התקנה. מה יכולה להיות הסיבה ?

  • הכניסה HKEY_LOCAL_MACHINE\Software\Microsoft\Installer לא מוגדרת כמו שצריך
  • ספריית My Documents אינה קיימת
  • חסר קובץ Install.dll
  • משתני הסביבה TEMP ו-TMP מוגדרים לספריה שלא קיימת
75. איזו מבין מערכות ההפעלה להלן הכי פחות וותיקה ?

  • OpenBSD
  • Linux
  • FreeBSD
  • Windows 95
76. מה הוצע במסמך RFC 2550 שיצא באפריל 1999 ?

  • שיטה לייצוג תאריכים התומכת במיליארדי שנים קדימה
  • פרוטוקול תקשורת מאובטח
  • מערכת קבצים חסכונית, המאפשרת ניצול מיטבי של נפח הדיסק
  • תקן IEEE 2550, המציע אופטימיזציות לקומפיילרים של שפת C++x
77. MX RECORD הוא:

  • שיא העולם בהכפלת מטריצות בשיטת MX (Multiplicative eXtraction)
  • רשומת DNS המציינת את כתובת שרת הדואר של דומיין מסוים
  • רכיב תוספת למעבדי פנטיום, המאיץ ומשפר את ביצועי המעבד
  • שמה של רשומת המפתח בבסיסי נתונים מסוג Mysql-X
78. פורט תקשורת 27015 משמש ל:

  • המשחק Half-Life
  • שיתוף קבצים ב Windows
  • Battle Net של Blizzard
  • פורט לא קיים
79. מה תדפיס התוכנית הבאה:

for (i = 0; i < 10; i++)
 i <<= 1;
printf("%d", i);
  • 10
  • 15
  • 16
  • 17
80. כתבתי והרצתי את התוכנית הבאה במערכת יוניקס. מה יודפס ?

#include <stdio.h>
#include <unistd.h>
int main () {
 int rc;
 while (rc = fork()) {
 printf("%d\n", rc);
 }
}
  • מספר סופי של ערכים זהים
  • מספר סופי של ערכים שונים (לא זהים)
  • מספר אינסופי של ערכים שונים (לא זהים)
  • אף אחת מהתשובות הנ"ל אינה נכונה
81. בכמה ימים בשנה מעוברת אפשר לטעות בין תאריך dd-mm לבין תאריך mm-dd?

  • 31
  • 132
  • 144
  • 366
82. מה הסיכוי שבמספר מכונית מקרי כל הספרות תהיינה שונות?

  • בערך 1 ל-2000
  • בערך 1 ל-16
  • בערך 1 ל-7
  • בערך 3 ל-4
83. לכמה מהחלטות של מועצת הביטחון של האו"ם בשנת 2004 יש שלוש ספרות שונות במספר?

  • 22
  • 24
  • 27
  • 29
84. לאזעקת הרכב שלי יש ארבעה לחצנים עליהם כתוב 1/2/3 4/5 6/7 8/9/0. אני בוחר את קוד האזעקה על ידי בחירת מספר ארבע ספרתי מקרי ולחיצת ארבעת המקשים בהתאמה. האם כל הקודים נבחרים בהסתברות שווה?

  • כן, כי בחרתי מספר מקרי.
  • לא, כי 10,000 לא מתחלק ב 256.
  • כן, פרט לקוד 0000.
  • תלוי בסוג הרכב.
85. האם SSH tunelling לבדו מאפשר לבנות VPN?

  • כן, על-ידי שימוש ב-port forwarding
  • כן, אבל רק בנתב Cisco
  • לא, כי אינו מאובטח דיו
  • לא, כי הוא שירות ברובד ה-TCP, ו-VPN דורש ניתוב IP
86. איזה מהפרוטוקולים הבאים מכיל פונקציונליות מלאה של ניהול קבצים בדיסק מרוחק?

  • SNMP
  • POP
  • Kerberos
  • IMAP

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

רשומה רגילה
1. איזו חברה הואשמה בהשתלת rootkit על דיסק מוזיקה?

  • Microsoft
  • IBM
  • Sony
  • Real
2. איזו מהאפשרויות הבאות אינה שם של רכיב במערכת ההפעלה החדשה Windows Vista?

  • Avalon
  • Indigo
  • Aero Glass
  • Blackcomb
3. איזו חברה תבעה את IBM לפני מספר שנים בטענה ש-IBM תרמו ל – Linux קוד Unix שלהם ללא רשות?

  • SCO
  • Intel
  • Novell
  • AT&T
4. כש – Google הודיעה על Gmail ב – 1 לאפריל 2004, אנשים חשבו שזו בדיחה. מה הייתה הבדיחה?

  • ג'יגה של מקום אחסון
  • מקומות עבודה בגוגל על הירח
  • TCP/IP מעל יוני דואר
  • קניית גוגל ע"י מיקרוסופט
5. מה זה Message Pump?

  • אובייקט ששולח הודעות למחשבים אחרים ברשת
  • תוכנה שמורידה דואר אלקטרוני באופן אוטומטי
  • קטע קוד שמקבל signals שנשלחים לכל ה – processes שרצים ברקע
  • לולאה שמטפלת ב – Windows Messages הנשלחים ל – thread הנוכחי
6. קראתי קובץ מדיסקט באמצעות פונקציות API של Win32. הפונקציה ReadFile נכשלה עם קוד שגיאה 23. מהי ככל הנראה הבעיה?

  • הקובץ נפתח לכתיבה בלבד ולא ניתן לקרוא ממנו
  • אין בעיה – קוד שגיאה 23 מציין סוף קובץ
  • הדיסקט פגום ולא ניתן לקרוא ממנו
  • נסיון לקרוא קובץ Unicode לתוך זיכרון ASCII
7. כל פעם שתוכנית מסוימת טוענת DLL שכתבתי, פונקצית ה – DllMain נקראת 5 פעמים. אפשר למנוע את זה?

  • כן, ע"י החזרת ערך שלילי בקריאה הראשונה
  • לא, הפונקציה תיקרא פעם אחת לכל thread חדש ואי אפשר לבטל את זה
  • כן, ע"י קריאה לפונקציית API מתאימה
  • לא, התוכנית טוענת את ה -DLL מחדש 5 פעמים ולכן DllMain חייבת להיקרא
8. איזו הודעה נשלחת כשלוחצים על כפתור ה-X בפינת החלון?

  • WM_QUIT
  • WM_CLOSE
  • WM_DESTROY
  • WM_XBUTTONDOWN
9. איזו מהאפשרויות הבאות מתארת הבדל בין HKEY_LOCAL_MACHINE לבין HKEY_CURRENT_USER?

  • לאחד מהם יש עותק יחיד לכל המערכת, ולשני יש עותק נפרד לכל משתמש
  • אחד מהם נשמר תמיד על המחשב המקומי, והשני נשמר תמיד ברשת
  • אחד מהם מכיל הגדרות תוכנה, והשני מכיל הגדרות חומרה
  • אחד מהם סטטי ולא משתנה אחרי ההתקנה, והשני דינאמי ויכול להשתנות בכל עת
10. מה המשמעות של PE?

  • Partial Encapsulation (מושג בתכנות מונחה-עצמים)
  • Portable Executable (פורמט קובץ בר-הרצה)
  • Physical Entrance (לוגין שמבוצע פיזית עם מקלדת ולא מרחוק)
  • Port Enumerator (תוכנה שמציגה פורטים פתוחים)
11. ידוע שמטבע מזוייף קצת יותר קל ממטבע אמיתי.בהינתן 9 מטבעות, שאחד מהם מזוייף והשאר אמיתיים, אפשר למצוא את המטבע המזוייף ב-2 שקילות.
כמה שקילות יידרשו כדי למצוא את המטבע המזוייף מבין 81 מטבעות, שאחד מהם מזוייף והשאר אמיתיים?

  • 4
  • 8
  • 9
  • 18
12. לאזרחים של מדינה כלשהי 7 ספרות במספר תעודת הזהות.הספרה הראשונה היא 1, 2 או 3.
הספרה האחרונה היא ספרת האחדות של סכום הספרות הקודמות .
הספרה לפני האחרונה היא ספרת האחדות של מכפלת הספרות הקודמות.
כמה אזרחים יש במדינה?

  • 3,000 או פחות
  • 30,000 או פחות
  • 300,000 או פחות
  • 3,000,000 או פחות
13. ב – UNIX, איזה מהפקודות הבאות תדפיס למסך את רשימת כל הקבצים בספריה הנוכחית ותתי הספריות המוכלות בה, כמו גם את כל הספריות שהגישה אליהן אסורה?

  • ls -ra *.all
  • ls -v | grep [^d] | head -n 1000
  • find ./
  • find ./ |& grep -V "permission denied"
  • find ./ | xargs cat
  • cat `where chmod`
14. ב – DOS, בעת כתיבת קבצי אצווה (batch), מה המשמעות של הביטויים %1, %2 , %3?

  • הקבועים 1, 2, 3
  • הפרמטרים הראשון, השני והשלישי שהועברו לתוכנית
  • האם להריץ את הקובץ אצווה כקובץ compiled, interpreted או obfuscated
  • מצביעים למשתנה הראשון, השני והשלישי של המחסנית
15. ב – Windows, מה ההבדל בין cmd ל – command?

  • command קיים בגרסאות Win98 ו – WinME ו – cmd ב – Win2000 ו – WinXP
  • command הוא של מיקרוסופט ו – cmd הוא open-source
  • command הוא טקסטואלי ו – cmd בעל ממשק חלונאי
  • כל התשובות נכונות
16. ב – Windows, מה ההבדל בין ריצה רגילה לריצה במצב safe-mode?

  • ב – safe-mode ישנה הגנה חזקה יותר על סיסמת הכניסה של המשתמש
  • ב – safe-mode אפליקציות מורצות במצב "כספת", כך שאינן יכולות לבצע נזק למחשב
  • ב – safe-mode ה – FIREWALL מונע סוגים רבים יותר של תעבורת אינטרנט
  • ב – safe-mode נטען רק סט מצומצם של דרייברים בעת עליית המחשב
  • ב – safe-mode יש להקיש סיסמה בעת ביצוע שינויי קונפיגורציה
  • ב – safe-mode מתאפשרת ריצת אפליקציות DOS ישנות על גבי Windows
17. איזה מהפקודות הבאות אינה פקודת UNIX?

  • fsck
  • iptables
  • bash
  • mount
  • awk
  • head
  • bgp
  • sed
  • pico
18. מה מכניסים ל- RIMM SLOT?

  • זיכרון
  • כרטיס מסך
  • כרטיס קול
  • מעבד
19. כיצד ניתן להגדיר בגדול את מודל המחשב?

  • חומרה, שפת סף, שפת מכונה, שפה עילית
  • חומרה, שפה עילית, שפת סף, שפת מכונה
  • חומרה, שפת מכונה, שפת סף, שפה עילית
  • חומרה, שפת סף, שפה עילית, שפת מכונה
20. כאשר נרצה לחבר מדפסת קרובה למחשב, באיזה סוג תקשורת נשתמש?

  • תקשורת מקבילית, כי אין הפרעה אלקטרומגנטית בין כבלים סמוכים
  • תקשורת מקבילית, כי בכל מחזור שעון מעבירים 8 ביטים
  • תקשורת טורית, כי פענוח המידע בצד המחשב קל יחסית
  • תקשורת טורית, כי בכל מחזור שעון מעבירים ביט אחד
21. מהו רוחב פס הכתובות של 8051?

  • 8-ביט
  • 16-ביט
  • 32-ביט
  • 64-ביט
22. איזה מהמושגים הבאים אינו שם של ארכיטקטורת מעבדים?

  • CISC
  • EPIC
  • RISC
  • VLSI
23. גיל רצה לתרגם את הקוד הבא משפת C לשפת סף (80×86):

bool f(unsigned char x)
{
	if (x & 0x80) return 1;
	return 0;
}

הוא כתב 4 פיסות קוד שונות שאמורות לפעול בהתאם לפונקציה f.
כמה מהן עובדות כנדרש?

1)
	mov al, [esp+4]
	or al, al
	sets al
	ret
2)
	mov al, [esp+4]
	movzx eax, al
	cmp eax, 0x80
	setz al
	ret
3)
	mov eax, [esp+4]
	and eax, 0x80
	setnz al
	ret
4)
	mov eax, [esp+4]
	mov ebx, 1
	shl ebx, 31
	movsx eax, al
	and eax, ebx
	cmp eax, 0
	je ret0
	mov al, 1
	ret
ret0:
	mov al, 0
	ret
  • 1
  • 2
  • 3
  • 4
24. האם DLL במערכת ההפעלה חלונות יכול לייצא מידע מלבד פונקציות?

  • ניתן לייצא פונקציות בלבד
  • ניתן לייצא רק משתנים גלובליים ופונקציות
  • ניתן לייצא כל סוג מידע
  • ניתן לייצא פונקציות בלבד, פרט ל – DLL של COM שיכול לייצא גם מחלקות
25. אורן השתמש ב – Turbo Pascal תחת DOS והריץ את הקוד האסמבלי הבא בלבד:

	mov ax, 13h
	int 10h

לפתע השחיר המסך, ומאותו רגע, הכול נראה גרוע, מה קרה?

  • אורן שינה את רזולוזציית כרטיס המסך
  • אורן שיכתב את ה MBR
  • אורן חולם, אי-אפשר להריץ קוד אסמבלי תחת פסקל
  • כל קוד שנכתב ישירות באסמבלי משבש את פעולת מערכת ההפעלה DOS
  • אורן שינה את המצביע לגופן ברירת המחדל ב – BIOS
  • אורן עשה cold reboot למחשב
26. מה עושה הקוד הבא בשפת אסמבלי 80×86?

	xor eax, eax
	mov ecx, 32
label:
	ror ebx, 1
	rcl eax, 1
loop label
  • מעתיק את ebx ל eax דרך ה carry-flag
  • מגבה את ebx, ואז מעתיק את eax ל ebx
  • מעתיק את ebx ל eax בסדר הפוך דרך ה carry-flag
  • ערכם של eax ו ebx נשאר מקורי, כי זה ror של 32
27. מה עושה הקוד הבא בשפת אסמבלי 80×86?

	fldz
	fldpi
	fmul
	fld [esp+4]
	fcomp st(1)
	fnstsw ax
	test ah, 0x41
	setz al
  • בודק האם הפרמטר הראשון במחסנית גדול מפיי
  • בודק האם הפרמטר הראשון במחסנית קטן מפיי
  • בודק האם הפרמטר הראשון במחסנית גדול מ 0
  • בודק האם הפרמטר הראשון במחסנית קטן מ 0
28. לפניך תוכנית בשפת אסמבלי 8051:

 P: SETB P1.0
 LCALL DELAY
 CLR P1.0 
 RETI 
 DELAY: MOV R7,#04H
 AGAIN: DJNZ R7,AGAIN
 RET

מה מבצעת התוכנית?

  • התוכנית בודקת את ערך ההדק P1.0 ומפעילה בהתאם השהיה
  • התוכנית יוצרת דופק שעון בהדק P1.0 בהתאם להשהיה
  • התוכנית מציבה את הערך הבינארי של 04h בהדקP1.0 בהתאם להשהיה
  • התוכנית יוצרת ארבע תנודות בהדק P1.0 בהתאם להשהיה
29. לפניך רצף פקודות בשפת אסמבלי 8051:

 MOV R0,#1000H
 MOV R1,#2000H
 MOVX A,@R0
 XCH A,@R1

מה יהיה תוכן האוגר A לאחר הרצת הפקודות הנ"ל?

  • תוכן אוגר A יהיה תוכן הכתובת הראשונה בזיכרון החיצוני
  • תוכן אוגר A יהיה תוכן הכתובת שעליה מצביע אוגר R0
  • תוכן אוגר A יהיה תוכן הכתובת שעליה מצביע אוגר R1
  • תוכן אוגר A יהיה תוכן הכתובת הראשונה בזיכרון הפנימי
30. מה פירוש הפקודה LEA בשפת אסמבלי 80×86?

  • Little Endian Adjust
  • Lock Exclusion Attributes
  • Leave Environment Application
  • Load Effective Address
31. נתונות הפקודות הבאות בשפת JavaScript:

name="Israel";
ch=name.charAt(3);

למה יהיה שווה המשתנה ch לאחר הרצת הפקודות הנ"ל?

  • s
  • a
  • r
  • e
32. מתי נרצה להשתמש באובייקט Application בשפת ASP?

  • כאשר נרצה לעבוד עם משתנים זרים
  • כאשר נרצה לשמור על נתונים בעת מעבר מדפדפן לדפדפן
  • כאשר נרצה להגדיר משתנים עבור כל משתמש בנפרד
  • כאשר נרצה לאחסן ערכים קבועים ברמת היישום
33. בשפת HTML רשומה הפקודה הבאה:

<marquee direction="right" width="20%" scrollamount="20">
	HELLO
</marquee>

מהי משמעות התכונה scrollamount?

  • מהירות התזוזה של הטקסט
  • רוחב שורת הגלילה
  • משך ההשהייה בין תזוזות של הטקסט
  • גודל קפיצה בודדת של הטקסט
34. מה זה ARJ?

  • שיטת אפנון
  • שיטת דחיסה
  • שיטת בקרת שגיאות
  • שיטת ריבוב
35. מהו MDA?

  • כרטיס קול
  • כרטיס מסך
  • כרטיס רשת
  • כרטיס מולטימדיה
36. מהו החידוש שסיפקו רכיבי SDRAM?

  • מהירות גבוהה יותר
  • זיכרון גדול יותר
  • רוחב פס גדול יותר
  • חסכון במקום פיזי
37. מהו רוחב המילה של DIMM?

  • 32bit
  • 128bit
  • 16bit
  • 64bit
38. באיזה אפיק משתמש בקר EIDE המותקן בלוח אם?

  • BIOS
  • ISA
  • PCI
  • PNP
39. כמה זה BPS לחלק ב – Hz?

  • 1-bit
  • 1-nibble
  • 1-byte
  • 1-word
40. מה נכון לומר על בעיות NP-Complete?

  • פתרת אחת בזמן פולינומיאלי – פתרת את כולן בזמן פולינומיאלי.
  • ידוע כי ניתן לוודא נכונות של פתרון נתון אליהן בזמן פולינומיאלי.
  • כולן NP-קשות.
  • כל התשובות נכונות
41. מה עושה הקוד הבא בשפת C בסביבת 32bit?

unsigned f(unsigned long val) {
 unsigned long temp, g = 0, b = 0x8000, bs = 15;
 do {
 if (val >= (temp = (((g << 1) + b)<<bs--))) {
 g += b;
 val -= temp;
 }
 } while (b >>= 1);
 return g;
}
  • מחשב שורש ריבועי
  • מבצע מיון בועות
  • מחשב hash מושלם
  • סוכם nibble-ים
42. מה עושה הקוד הבא בשפת C בסביבת 32bit?

x^=(x^=(x^=(x^=(x^=(x)>>1)>>2)>>4)>>8)>>16
  • מבצע קידום בבלוק של Linear Feedback Shift Register
  • מוצא מיקום של איבר ב – Binary-Reflected Gray-Code
  • מחשב את האיבר הבא ב – Pseudorandom Number Sequence
  • מרכיב, בהרצה איטרטיבית, סוג של de-Bruijn Sequence
43. מה עושה הקוד הבא בסביבת 32bit?

unsigned int f(unsigned int x)
{
	unsigned int i = 0xCAFEBABE;
	while (i--) {x = (x/8)+(x%8); }
	return x;
}
  • סופר ביטים דולקים
  • מחשב שארית מחלוקה ב – 7
  • מייצר חתימת Java
  • ממיין שלשות ביטים
44. נתונה הפונקציה הבאה המקבלת את מצב הלוח בדמקה ומוצאת מהלך שכדאי לבצע:

function GetBestNextPosition:
	Input:
		CurrentPosition of type PositionType
		ResidualDepth, BestMark, WorstMark of type Integer
	Output:
		BestNextPosition of type PositionType
		CurrentPositionMark of type Integer
	Local Variables:
		BestPositionSoFar, Position of type PositionType
		Mark of type Integer
	Body:
		if ResidualDepth = 0 or GameEnded(CurrentPosition):
			return:
				BestNextPosition = None
				CurrentPositionMark = EvaluatePosition(CurrentPosition)
		
		for each Position in NextPositions(CurrentPosition):
			????
			if (Mark > BestMark):
				BestPositionSoFar = Position
				BeskMark = Mark
			if (Mark < Worst):
				return:
					BestNextPosition = BestPositionSoFar
					CurrentPositionMark = BestMark

		return:
			BestNextPosition = BestPositionSoFar
			CurrentPositionMark = BestMark

איזה שורה צריכה לבוא במקום סימני השאלה?

  • Mark = GetBestNextPosition(Position, ResidualDepth – 1, BestMark, WorstMark).CurrentPositionMark
  • Mark = GetBestNextPosition(Position, ResidualDepth – 1, -BestMark, -WorstMark).CurrentPositionMark
  • Mark = -GetBestNextPosition(Position, ResidualDepth – 1, BestMark, WorstMark).CurrentPositionMark
  • Mark = -GetBestNextPosition(Position, ResidualDepth – 1, -BestMark, -WorstMark).CurrentPositionMark
  • Mark = GetBestNextPosition(Position, ResidualDepth – 1, WorstMark, BestMark).CurrentPositionMark
  • Mark = GetBestNextPosition(Position, ResidualDepth – 1, -WorstMark, -BestMark).CurrentPositionMark
  • Mark = -GetBestNextPosition(Position, ResidualDepth – 1, WorstMark, BestMark).CurrentPositionMark
  • Mark = -GetBestNextPosition(Position, ResidualDepth – 1, -WorstMark, -BestMark).CurrentPositionMark
45. מה עושה הקוד הבא בשפת C?

x = m & -m;
m += x;
y = m & -m;
m |= (y/x - 1) >> 1;
  • מחשב את המספר הבא בעל אותה כמות של ביטים דולקים
  • משחק מהלך אחד במשחק "מגדלי האנוי"
  • הולך צעד אחד על עקומת הילברט הבדידה
  • מחשב קירוב ל – logmx
46. איזה מהביטויים הבאים בשפת C הופך את רצף הביטים הזהים בצד הפחות משמעותי של x?

  • x ^= x&(~x-1)
  • x ^= (x-1)&(~x)
  • x ^= -((x+1)|(-x))
  • x ^= (x+1)^(x-1)
47. נתונים המקרואים A ו – B בשפת C:

#define A(x) ((x)+(x))
#define B(x) (2*(x))

באיזה מהמקרים הבאים נראה הבדל בין A ל – B?

  • A(0) לעומת B(0)
  • A(2*x) לעומת B(2*x)
  • A(x++) לעומת B(x++)
  • A(x=5) לעומת B(x=5)
48. ב – C++, מחלקה B מגדירה פונקציה וירטואלית ומחלקה A יורשת ממחלקה B, לאיזו מחלקה תהיה טבלה וירטואלית?

  • לאף אחת מהן
  • רק ל – A
  • רק ל – B
  • לשתיהן
49. מה הבעיה בקוד הבא בשפת C++?

class A {
	unsigned char* bufA;
public:
	A() {
		bufA = new char[100];
	}
	~A() {
		delete[] bufA;
	}
};

class B {
	unsigned char* bufB;
public:
	B() {
		bufB = new char[100];
	}
	~B() {
		delete[] bufB;
	}
};
  • חסר delete[]
  • חסר virtual
  • [] מיותר
  • public מיותר
50. כמה מספרים ראשוניים יש בין 1 ל – 20,062,006?

  • בערך 10,000
  • בערך 100,000
  • בערך 1,000,000
  • בערך 10,000,000
51. לאיזה מהאלגוריתמים הבאים סיבוכיות זמן הריצה הממוצעת הטובה ביותר?

  • Quick Sort
  • Merge Sort
  • Heap Sort
  • לכולם סיבוכיות זהה
52. מה מהבאים מבדיל בין C# ל – Java?

  • Java פועל מעל virtual machine ו- C# לא
  • ב – C# יש מנגנון מובנה של serialize וב – Java לא
  • ב – C# כל האובייקטים יורשים ממחלקת object וב – Java לא
  • ב – C# יש טיפוסים מסוג signed ו- unsigned וב – Java יש רק signed
53. איזו מהקבוצות הבאות מכילה רק אופרטורים שניתן להעמיס ב- C++?

  • [], ==, /, ->
  • .*, !, &, #
  • new, .*, ::, []
  • *, ##, ?:, =
54. נתונה התוכנית הבאה ב – C++:

#include <string.h>
int main()
{
	int* ptr = new int [3.7];
	ptr = NULL;
	delete ptr;
	return 2;	
}

למה התוכנית תקרוס?

  • כי עושים delete ל – null
  • כי מנסים להקצות מערך בגודל לא שלם
  • כי היה צריך לקרוא ל – delete[] ולא ל – delete
  • כי main חייבת להחזיר 0
  • התכנית לא תקרוס
55. כתבת תוכנית והיא קורסת, מה מבין הכלים הבאים *לא* יעזור לך על מנת לאתר את המקום הבעייתי בקוד?

  • breakpoint
  • watch
  • ICE (InCircuit Emulator)
  • הדפסות ל – log מתוך הקוד
  • core dump
  • העלאת רמת האופטימיזציה
56. איזה מבין הכלים הבאים לא ניתן למצוא בחבילת gcc?

  • קומפיילר
  • לינקר
  • make
  • אסמבלר
  • objdump
  • sed
57. מה עושה makefile?

  • מקמפל קבצי PERL ביעילות
  • יוצר קבצים ריקים
  • מאגד הוראות לתהליך בניית פרוייקט
  • מתרגם XML מ – ASCII ל – Unicode
58. נתונה המחלקה הבאה:

class UberMathenCalculater
{
public:
	virtual int Add(int a, int b);
	static int Mul(int a, int b);
private:
	int Sub(int a, int b);
	static int Div(int a, int b);
};

כמו כן מוגדר מצביע לפונקציה:
int (*funcptr) (int a, int b);
לאיזו מבין הפונקציות הבאות funcptr יכול להצביע?

  • Add
  • Mul
  • Sub
  • Div
  • Add ו – Mul
  • אף אחת מהן
  • כולן
59. נתונה פונקציה בסביבת 32bit:

int what (int a, int b)
{
	int x = 0;
	for (int i = 0; i < 32; i++)
		x += (a & (1 << i)) + (b & (1 << i));
	return x;
}

איזה שם היית נותן לפונקציה במקום what?

  • Add
  • Sub
  • Mul
  • Divide
  • DivideAndConquer
  • CountBitsInAAndB.
60. מה הסיבוכיות של קטע הקוד הבא, בתלות ב – N?

char Str[N * 8 +1] = "";
char Str2 = "Codeguru";
for(int i = 0; i < N; i++)
{
	strcat(str,str2);
}
  • O(logN)
  • O(N)
  • O(N2)
  • O(2n)
  • O(1)
  • O(NlogN)
61. האם ניתן לשפר את הסיבוכיות?

  • לא.
  • כן ל – O(logN)
  • כן ל – O(N)
  • כן ל – O(N2)
  • כן ל – O(NlogN)
  • כן ל – O(1)
62. איך נקבע Sequence Number בפרוטוקול TCP?

  • מתחיל מערך אקראי בכל Session וקטן בערך אקראי בכל פקטה
  • מתחיל מערך קבוע בכל Session וגדל בערך אקראי בכל פקטה
  • מתחיל מערך אקראי בכל Session וקטן ב – 1 בכל פקטה
  • מתחיל מערך קבוע בכל Session וגדל ב – 1 בכל פקטה
  • מתחיל מערך אקראי בכל Session וגדל לפי מספר הבתים שנשלחו בכל פקטה
  • מוגרל באופן אקראי עבור כל פקטה
63. כיצד מזוהה תקלה בשליחת הודעת אתרנט?

  • CRC 32bit
  • CRC 16bit
  • Checksum 16bit
  • Parity bit
64. ריבוב TDM חולק תווך תקשורת על ידי:

  • הקצאת חלון זמן שידור לכל משדר
  • הקצאת תדר שונה לכל משדר
  • Collision detection – שידור ובדיקה האם הייתה התנגשות בערוץ
  • Collision avoidance – בדיקה לפני שידור: האם הערוץ פנוי
65. כמה ריבועים יש בלוח השחמט המקובל בגודל 8×8?

  • 64
  • 114
  • 115
  • 204
66. זורקים קובייה רגילה שעליה המספרים 1 – 6, עד שהסכום המצטבר גדול מ – 12. מה הסכום המצטבר הסביר ביותר?

  • 13
  • 14
  • 15
  • 16
67. נתון הקטע קוד הבא ב – C#:

foreach(string str in months)
 Console.WriteLine(str + "\n ");

על מנת שהקטע יוכל לרוץ, מה מהבאים *חייב* להתקיים?

  • months הוא מערך
  • months הוא רשימה מקושרת
  • months מממש Collection מתוך System.Collections
  • months מממש את IEnumerable
  • הקוד רץ על C# 2005
  • התוכנית מקומפלת עם foreachable flag
68. מה ידפיס קטע הקוד הבא?

#define PRINT(x,y) cout << hex << x << y;
void f()
{
 int x = 1;
 int y = 2;
 PRINT(x << 5, y << 2)
}
  • 12
  • 324
  • 328
  • 1522
  • 208
  • תודפס שגיאה
69. יירטת חבילת IP באמצעות Sniffer, וראית שהבית הראשון של כותרת הIP הוא 0x45.מה תוכל לומר על הפקטה?

  • אורכה 0x45 בתים
  • אורך הכותרת 0x45 בתים
  • אורך הכותרת 5 בתים
  • אורך הכותרת 20 בתים
  • מדובר בהודעת IPv6
  • זוהי הודעת ICMP
70. מתי יקרה Page fault?

  • כאשר מתגלה Corruption בזכרון הראשי
  • כאשר פונים לכתובת בזכרון שאיננה נמצאת ב – Cache
  • כאשר מנסים לפנות ישירות לזכרון ה – Cache במקום לזכרון הראשי
  • כאשר פונים לכתובת בזכרון שאיננה ממופת לכתובת בזכרון הפיסי
  • כאשר נתקע או נקרע דף במדפסת
  • בעליית המחשב בלבד, על מנת לאתחל את הזכרון הראשי
71. נתונה טבלה של מקומות בארץ, גובהם ומידע נוסף עליהם.http://www.10doch.co.il/HeightTable.asp
על מנת לתת תחזית לשלג במקומות הגבוהים, עלייך למצוא כמה עמודות בטבלה נמצאות בגובה של 800 מטר יותר.

  • בערך 20
  • בערך 60
  • בערך 90
  • בערך 150
72. מה נפח התוכן של 195-65R15H כשהוא מלא כמומלץ?

  • בערך 5 ליטר
  • בערך 10 ליטר
  • בערך 20 ליטר
  • בערך 40 ליטר
73. במשחק LIFE, פי כמה יכול לקטון מספר המשבצות המליאות תוך דור אחד?

  • פחות מפי 2
  • פי 3
  • פי 8
  • יותר מפי 9
74. כמה משבצות מליאות תהיינה לאחר 2006 דורות אם בהתחלה יש שלוש משבצות?

  • אחת או שלוש
  • אפס או שלוש או ארבע
  • בין אפס לשלוש
  • 2006
75. אם שמנת מתוקה עולה 6.42 ש"ח, והמחיר הכולל מעוגל לחמש אגורות הקרובות. אז מי שקונה מספר דו ספרתי מקרי של שמנות מתוקות בממוצע

  • יפסיד שתי אגורות
  • יפסיד אגורה
  • לא יפסיד ולא ירוויח
  • ירוויח אגורה
76. לכמה מהחלטות מועצת הביטחון של האו"ם בשנת 2005 יש שלוש ספרות שונות במספר?

  • 22
  • 24
  • 27
  • 29
77. f הנה פונקציה המקיימת f(x)=y.נתון ש:

given x, it is easy to compute y
given y, it is hard to compute x such that f(x)=y
given x, it is hard to find x' such that f(x)=f(x')

f היא פונקציה מסוג:

  • Encryption
  • Public key
  • Basic zero-knowledge
  • Hash
78. אליס ובוב מעוניינים לדבר באופן מוצפן. לאליס יש את המפתח הציבורי של בוב, ולבוב אין את המפתח הציבורי של אליס. לכן:

  • הם יכולים, באמצעות המפתח הציבורי של בוב, לתאם מפתח סימטרי שישמש להצפנה דו-כיוונית
  • הם לא יכולים לדבר באופן מוצפן, כי לא ניתן לתאם מפתח סימטרי עם מפתח ציבורי (=אסימטרי)
  • הם יכולים לדבר באופן מוצפן, אבל רק בכיוון אחד, מכיוון שהמפתח הציבורי הוא אסימטרי
  • מאחר ולאליס יש מפתח פרטי, ולבוב יש מפתח פרטי, הם יכולים לדבר באופן מוצפן ללא תיאום נוסף
79. Packer יכול לשמש ל:

  • התמודדות כנגד Reverse engineering
  • עקיפת אנטי-וירוסים
  • כיווץ מידע
  • כל התשובות נכונות
80. RSA יכול לשמש ל:

  • Reverse system architecture
  • ניסיון להסרת ה- Service pack העדכני ממערכת Windows
  • Random security assesment
  • הצפנת מידע
81. הוספת יכולת של stateful packet inspection ל- Firewall תעזור בעיקר כנגד:

  • Crypto-analysis
  • Packet spoofing
  • גישה מ- Port שאינו מורשה
  • Network address translation
82. מי מבין הבאים לא סביר שיהיה מוסתר ע"י Rootkit:

  • קובץ
  • תהליך
  • שורה ב- Log
  • קלט מהמקלדת
83. הסוס הטרויאני המקורי נבנה ע"י:

  • אודיסאוס
  • רות האפרתי
  • האנלייזר
  • קווין מיתניק
84. אילו מן הבאים לא משמש בדרך-כלל מערכות זיהוי ביומטריות:

  • קול
  • DNA
  • מבנה פנים
  • חתימה
85. אילו מהפונקציות הבאות נחשבות רגישות לתקיפות Buffer overflow?

  • strncpy
  • printf
  • strcpy
  • Cout
86. מי מהבאים אינו נכון:

  • IPSec משמש להצפנת הודעות
  • IPSec משמש לזיהוי הודעות
  • IPSec עובד בשכבת הרשת
  • IPSec חוסם ערוצים סמויים
87. מה מחזירה הפונקציה הבאה:ב – C:

int f(int a, int b)
{
	if (b > a) return 1 + f(a+1, b);
	else if (a > b) return f(a-1, b) + 1;
	else return 0;	
}
  • a+b
  • |a-b|
  • a-b
  • b-a
  • a%b
  • a*b
88. מה משמעות המושג "reference counting"?

  • ספירת ה – memory blocks המוקצים על ה – heap
  • משתנה של הקומפיילר הסופר את מספר המחלקות המוגדרות במערכת כולה
  • טכניקת profiling הסופרת את מס' ההופעות של אופרטור הכתובת (&) בקוד C בכדי להעריך ביצועים
  • ספירת מס' ה – references לאובייקט מסויים בכדי לבצע deallocation כשהדבר אפשרי
  • ספירת ה – task-ים הממתינים על counting semaphore
  • טכניקת profiling המשמשת למיפוי התלויות בין אובייקטים שונים במערכת
89. מה משמעות המושג RTTI?

  • Real Time Tab Indentation
  • Run Time Template Instantiation
  • Relative Truncation and Tabulation Interface
  • Real Time Tick Interval
  • Right on Time Type Instantiation
  • Run Time Type Information
90. מהו קוד reentrant?

  • קוד שעברה קומפילציה, אך עוד לא עבר לינקוג'
  • קוד רקורסיבי
  • קוד המשמש כ – Callback Function
  • קוד שניתן להריצו בכמה מופעים בו זמנית באופן תקין
  • קוד היכול לרוץ על מספר מערכות הפעלה ללא צורך בשינויו
  • כל התשובות נכונות
91. מהו context switch?

  • מתן גישה בלעדית למשאב לתהליך מסוים (למשל באמצעות semaphore)
  • החלפת ה – task/thread הפעיל במערכת מרובת תהליכים
  • יציאה או כניסה לפונקציה בעת שימוש ב – debugger
  • החלפה בין שני משתנים או יותר באופן אטומי
  • החלפת התוכן של שתי הודעות ב – MQ (ללא החלפת פרטי המסגרת)
  • העברת מידע בין pipe אחד ל – pipe שני
92. מהו deadlock?

  • מצב בו קבוצת תהליכים חסומה כתוצאה מהמתנה לאירוע שרק תהליך מאותה הקבוצה יכול לגרום לו
  • תקיפת מחשבים העובדת באמצעות הכנסת תהליכים ממערכת הפעלה למצב pending
  • כניסה של קוד ללולאה אינסופית כתוצאה מדריכה על משתנים שלו על-ידי קוד אחר
  • absolute lock על mutex
  • מצב בו מערכת מרובת תהליכים קורסת כתוצאה מעומס יתר על ה – scheduler
  • קטע קוד הנמצא ב – interrupt lock
93. מה עושה פונקציית fork() של POSIX?

  • גורמת לתעדוף מחדש של התהליך בו היא מורצת באמצעות דיווח על כשלון ל – kernel
  • מקצה מחדש זיכרון עבור מקטעי הקוד בתוכנית בה היא מורצת ומעבירה אותם אל מקומותיהם החדשים
  • פותחת תהליך חדש עם אותו ה – entry point של התהליך ממנו נקראה פונקציית fork
  • ממשיכה להריץ את הפונקציה ממנה היא נקראה בתהליך חדש מאותו המקום
  • מריצה מחדש את התהליך הנוכחי באזור אחר בזכרון החל מה – entry point המקורי
  • מבצעת explicit context switch במערכת הפעלה non-preemptive
94. מה מאפשרת טכנולוגיית Crossfire של ATI?

  • לבצע חישובים פיסיקליים מדוייקים במהירות גבוהה (ע"י האצת חומרה)
  • לבצע Fine Tuning מאוד עדין להגדרות כרטיסי המסך מבוססי Radeon
  • להשתמש ביותר מכרטיס גרפי אחד על גבי לוח האם על מנת לקבל ביצועים טובים יותר
  • להגביר את קצב תחלופת המידע בין הזכרון הפנימי של כרטיס המסך לבין הזכרון RAM של המחשב
  • להפעיל אפקטים גרפיים מיוחדים מן הדור החדש ע"י האצת החומרה של הכרטיס
  • תכנות Geometry Shading ע"י HLSL לכרטיסי מסך Radeon תוך כדי גישה ל-Buffer הפנימי של כרטיס המסך באופן ישיר
95. מהי שמה של מערכת ההפעלה הבאה של Microsoft?

  • Windows XP+
  • Windows Avalon
  • Windows 2007
  • Windows 2008
  • Windows Vista
  • Windows Crossbow
96. אלו ממשחקי המחשב הבאים הוא הכי חדש?

  • Pacman
  • Half-Life
  • Battlefield Vietnam
  • Civilization 3
  • Call of Duty
  • World of Warcraft
97. למה משמש Trigger במסדי נתונים?

  • שליחת ערכים ב – Database בפרקי זמן קבועים אל האפליקציה המשתמשת בו
  • ביצוע פעולות על DB כאשר מתקיים תנאי מסויים
  • אובייקט המטפל בממשק של ה-DB אל תוכנות אחרות
  • וידוא אוטומטי של ערכי ה-DB בהתאם לתבניות מסויימות
  • אתחול ה – DB בעת עלייתו הראשונה
  • פונקציה ב – API-ים המטפלים במסדי נתונים שנקראת מממשק המשתמש של האפליקציה ורצה על טבלאות במסד הנתונים
98. נתונה טבלה Persons עם שדות FirstName ו – LastName. איזה SQL Query ימחק את כל הרשומות בטבלה Persons בהן השם הפרטי שווה ל-'Johhny', ושם המשפחה שווה ל-'BeGood'?

  • DELETE FROM Persons WHERE Exists(Values('Johnny', 'BeGood'))
  • DELETE (*) FROM Persons WHERE FirstName='Johnny' AND LastName='BeGood'
  • DELETE FROM Persons WHERE FirstName='Johnny' AND LastName='BeGood'
  • DELETE Persons WHERE (FirstName LIKE 'Johnny') AND (LastName LIKE 'BeGood')
  • DELETE ROW (FirstName='Johnny') AND (LastName='BeGood') FROM Persons
  • כל התשובות נכונות
99. מי כתב את "תמונות מבית מבשל השיכר"?

  • יצחק בשביס-זינגר
  • אשר ברש
  • חיים הזז
  • אהרון אמיר
100. מה עושה הפונקציה הבאה בשפת C, בסביבת 32bit, עבור 0<=n<=128? איך זה עובד?

int f(unsigned int x, unsigned char n)
{
	return ((((x)-~0UL/255*(n))&~(x)&~0UL/255*128) != 0)
}

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

רשומה רגילה

<div>2. מי מהבאים לא למד ברשת אורט?</div><ol style="list-style: hebrew;"><li> אהוד ברק (שר הביטחון).</li>
<li> אלישע ינאי (מנכ"ל מוטורולה ישראל).</li>
<li> חמי פרס (בנו של נשיא המדינה).</li>
<li> עמיעז סגיס (לשעבר ראש אט"ל).</li>
</ol>
<div>3. זיכרון <span dir="ltr">DDR (Double Data Rate)</span> משיג קצב העברת מידע כפול. כיצד?</div><ol style="list-style: hebrew;"><li> מכפיל את תדר השעון.</li>
<li> משתמש במהפיכת ריקוד לשם כך.</li>
<li> מכווץ את המידע לפני ההעברה.</li>
<li> משתמש גם בעלייה וגם בירידה של השעון.</li>
</ol>
<div>4. כמה פונקציות בוליאניות בשני משתנים קיימות?</div><ol style="list-style: hebrew;"><li> 2</li>
<li> 4</li>
<li> 8</li>
<li> 16</li>
</ol>
<div>5. בלינוקס, הפקודה top תציג:</div><ol style="list-style: hebrew;"><li> את כל הערכים מלמעלה למטה.</li>
<li> את כל הערכים בשורה העליונה.</li>
<li> את הפקודות האחרונות שכתבת.</li>
<li> את "מנהל המשימות" של לינוקס.</li>
</ol>
<div>6. כתובת LDAP היא:</div><ol style="list-style: hebrew;"><li> סוג שונה של כתובת אי-מייל.</li>
<li> כתובת שבעזרתה ניגשים לאובייקטים בדומיין.</li>
<li> כתובת שעוזרת להקים דומיין.</li>
<li> כתובת אתר אינטרנט שכתוב ב-LDAP.</li>
</ol>
<div>7. יש לי 4 דיסקים קשיחים בגודל 40 ג"יגה, במערך RAID 5. על כונן C, יש לי:</div><ol style="list-style: hebrew;"><li> 160 ג"יגה בייט.</li>
<li> 120 ג"יגה בייט.</li>
<li> 40 ג"יגה בייט.</li>
<li> 80 ג"יגה בייט.</li>
</ol>
<div>8. מה תחזיר הפונקציה הבאה, כאשר <span dir="ltr">MSB(X)</span> הינו מאקרו שמחזיר את ה-Most Significant Bit של x?<br><br/><br><pre><br>int foo(int x) {<br> return ( MSB(x) | MSB(-x) );<br>}<br></pre>
</div><ol style="list-style: hebrew;"><li><span dir="ltr">1</span></li>
<li><span dir="ltr">sign(x)</span></li>
<li><span dir="ltr">-sign(x)</span></li>
<li><span dir="ltr">!!x</span></li>
</ol>
<div>9. האופרטור <span dir="ltr">sizeof()</span> – היכן מתבצע?</div><ol style="list-style: hebrew;"><li> בזמן ריצה.</li>
<li> בזמן קומפילציה.</li>
<li> בשלב ה-Link.</li>
<li> בזמן ה-Pre-Processing.</li>
</ol>
<div>10. איזו מבין הפעולות (מסומנת ב-$) הבאות תשמר מידע על a, כאשר ידועים לך b ו-c?<br/><pre><br>bool a, b, c;<br>c = a $ b;<br></pre>
</div><ol style="list-style: hebrew;"><li> AND</li>
<li> OR</li>
<li> XOR</li>
<li> NAND</li>
</ol>
<div>11. * באסמבלי של 80×86, מה ההבדל בין הפקודה<br><pre><br>jmp ax<br></pre>
<br>לבין רצף הפקודות הבא:<br><pre><br>push ax<br>ret<br></pre>
</div><ol style="list-style: hebrew;"><li> גודל (מספר הבתים).</li>
<li> ההשפעה על המחסנית.</li>
<li> הפקודה הראשונה חוקית רק אחרי 80×86.</li>
<li> כל התשובות נכונות.</li>
</ol>
<div>12. האם יש ערך אנציקלופדי על קודגורו?</div><ol style="list-style: hebrew;"><li> התחרות מופיעה בכל אנציקלופדיה בעולם.</li>
<li> קיים ערך באנציקלופדיה מקוונת.</li>
<li> אין כרגע, אבל ייכתב בקרוב ערך כזה.</li>
<li> אין, ולא יהיה – זה לא מסוג הערכים המתאימים.</li>
</ol>
<div>13. אם מתכנת אומר שהוא מתכנת ב"טיקל", אזי הוא עוסק ב-</div><ol style="list-style: hebrew;"><li> תכנות בשפת סקריפטים.</li>
<li> תכנות מונחה עצמים.</li>
<li> תכנות מונחה אספקטים.</li>
<li> פיתוח יישומי web.</li>
</ol>
<div>14. על גבינה כתוב "מועד אחרון לשימוש 30 פברואר 2009 12:25:55" – הכיצד?</div><ol style="list-style: hebrew;"><li> טעות בזיהוי שנה מעוברת.</li>
<li> חודש אחרי 30 לינואר 2009.</li>
<li> התהפכו החודש והיום.</li>
<li> כל התשובות נכונות.</li>
</ol>
<div>16. הסימנים (-: לחיוך זה כמו 8 ל-</div><ol style="list-style: hebrew;"><li> משקפיים.</li>
<li> שמונה.</li>
<li> אינסוף.</li>
<li>חיוך.</li>
</ol>
<div>17. אם חצי מהאנרגיה הפוטנציאלית של המים הנופלים במפל הגבוה ביותר באירופה הופכים לחום, בכמה בערך עולה טמפרטורתם?</div><ol style="list-style: hebrew;"><li> מיליונית מעלה.</li>
<li> אלפית מעלה.</li>
<li> מעלה.</li>
<li> מאה מעלות.</li>
</ol>
<div>18. מה מיוחד במקום הראשון ברשימה שפרסם מגזין דה-מרקר על ארבעים האנשים הצעירים המשפיעים ביותר לשנת 2008?</div><ol style="list-style: hebrew;"><li> הוא ראשון אלפביתית.</li>
<li> הוא הצעיר ברשימה.</li>
<li> הוא זוכה קודגורו.</li>
<li> כל התשובות נכונות.</li>
</ol>
<div>19. Java Reflection לחלוטין לא יועיל עבור -</div><ol style="list-style: hebrew;"><li> כתיבת Debugger.</li>
<li> כתיבת Plugins.</li>
<li> כתיבת מימוש חלופי ל-Map.</li>
<li> כל התשובות נכונות.</li>
</ol>
<div>20. כתבתי תוכנה בשפת Java, שאינה טוענת מחלקות חדשות תוך כדי ריצה. האם כדי להריץ אותה נדרש <span dir="ltr">JVM (java.exe)</span>?</div><ol style="list-style: hebrew;"><li> כן, רק JVM יודע להריץ קוד Java.</li>
<li> כן, כדי לבדוק, למשל, חריגות במערכים, נדרש קוד זמן ריצה ב-JVM.</li>
<li> לא, ניתן לכתוב קומפיילר ל-Java לשפת מכונה, לקמפל את התוכנה עמו ולהריץ.</li>
<li> לא, גרסאות חדשות של Windows יכולות להריץ Java בלי JVM.</li>
</ol>
<div>21. יוסי העלה את הרעיון לכתוב מנהל התקן (device driver) לכרטיס מסך בשפת Java. מה דעתכם על הרעיון?</div><ol style="list-style: hebrew;"><li> זה לא יעבוד כי ה-JVM מונע גישה לחומרה.</li>
<li> זה אפשרי אבל יהיה מאוד לא יעיל כי ב-Java חסרים כלים לכתיבה יעילה של מנהלי התקנים.</li>
<li> זה לא יעבוד עבור התקן גרפי בגלל ש-Java דורשת גרפיקה כדי לרוץ.</li>
<li> זה רעיון מעולה, היות וכך ניתן לאחד בין מנהלי התקנים תחת מערכות הפעלה שונות.</li>
</ol>
<div>22. ב-C ו-Java יש גם לולאות for וגם לולאות while (וכן do..while).</div><ol style="list-style: hebrew;"><li> ניתן להמיר כל לולאת while בלולאת for (ואולי עוד כמה פקודות שאינן while).</li>
<li> ניתן להמיר כל לולאת for בלולאת while (ואולי עוד כמה פקודות שאינן for).</li>
<li> יש לולאת while שלא ניתן להמיר ללולאת for שקולה.</li>
<li> תשובות 1 ו-2 נכונות.</li>
</ol>
<div>23. נניח שהורדנו משפת C או שפת Java את כל ה-statements המורכבים – switch, if, for, while, האופרטור <span dir="ltr">?</span> (ומ-Java גם throw, except) – אבל נתיר עדיין שימוש בספרייה הסטנדרטית וקריאה לפונקציות. נקרא לשפות המתקבלת C– ו- Java–. מבחינה תיאורטית (ללא הגבלה על כמות הזיכרון הנדרשת). האם ניתן לייצג את הפקודות for ו-if ב-C– ו-Java–?</div><ol style="list-style: hebrew;"><li> for – לא, if – לא</li>
<li> for – כן, if – לא</li>
<li> for – לא, if – כן</li>
<li> for – כן, if – כן</li>
</ol>
<div>24. נניח שהמחלקה B יורשת את A, והמחלקה C יורשת את B. נניח שהמתודה foo מוגדרת בתור<br><pre><br>public class Whatever {<br> B foo(B) {<br> …<br> }<br>}<br></pre>
<br><br>נניח ש-w, a, c הם בהתאמה מופעים של Whatever,A, C, איזו מהקריאות הבאות חוקית:</div><ol style="list-style: hebrew;"><li><span dir="ltr"><br> C result = w.foo(a);<br></span></li>
<li><span dir="ltr"><br> C result = w.foo(c);<br></span></li>
<li><span dir="ltr"><br> A result = w.foo(c);<br></span></li>
<li><span dir="ltr"><br> A result = w.foo(a);<br></span></li>
</ol>
<div>25. מה החסם התיאורטי על הגודל של String ב-Java?</div><ol style="list-style: hebrew;"><li> 65536 תוים – היות והמחרוזות הן מחרוזות Unicode וכל תו מקבל 16 ביט.</li>
<li> 2147483647 תוים – היות ו-length() מחזיר int.</li>
<li> 4294967295 תוים – היות ו-JVM הוא תוכנת 32 ביט.</li>
<li> אין הגבלה.</li>
</ol>
<div>26. למה משמשת המחלקה HashMap בספרייה הסטנדרטית של Java?</div><ol style="list-style: hebrew;"><li> טעינת מפות מאתרים באינטרנט, למשל Google Maps.</li>
<li> לייצג התאמה בין שתי קבוצות של אובייקטים, למשל בין שמות של אנשים למספרי הטלפון.</li>
<li> זה אובייקט שמאפשר למשתמש לחשב פונקציות Hash למטרות אימות.</li>
<li> מדובר במחלקה שמכילה כלים לציור הסימן "#" (שנקרא גם "hash sign").</li>
</ol>
<div>27. * בהינתן המספר<br><pre><br>36146419899623406382850079917709994738<br>80131493688073595954618706493148819648<br>35929902317375502299755625775443998380<br>42125409216559877186658662956700668814<br>53294859252399269963494314685363411520<br>07531729005094209325569880908800</pre>
<br>מה כמות הסיביות הדלוקות בו?</div><ol style="list-style: hebrew;"><li> 137</li>
<li> 152</li>
<li> 161</li>
<li> 184</li>
</ol>
<div>28. * באיזה קידוד מופיעה המחרוזת שבמספר?</div><ol style="list-style: hebrew;"><li> EBCDIC</li>
<li> ASCII</li>
<li> UCS-2</li>
<li> ASCII/ROT13</li>
</ol>
<div>29. מה סכום (מודולו 256) של מספרי ה-ASCII של כל התוים החל מ-&lt; וכלה ב-&gt;, כולל שניהם:<br><blockquote dir="ltr">&lt;And on the pedestal these words appear–"My name is Ozymandias, king of kings–Look at my works, ye Mighty and despair"&gt;</blockquote></div><ol style="list-style: hebrew;"><li> 32</li>
<li> 101</li>
<li> 195</li>
<li> 333</li>
</ol>
<div>30. הפקודה counter &lt;&lt;= 7 ב-C ו-Java שקולה ל:</div><ol style="list-style: hebrew;"><li> counter = counter &lt; 7 ? 0 : 7</li>
<li> counter *= 2 * 2 * 2 * 2 * 2 * 2 * 2</li>
<li> counter &lt;&lt; 7</li>
<li> counter = counter / 128</li>
</ol>
<div>31. הפקודה goto:</div><ol style="list-style: hebrew;"><li> היא מילה שמורה ב-Java, אך אינה ממומשת.</li>
<li> נחשבה למזיקה על-ידי אדסגר וו. דייסקטרה.</li>
<li> שימשה בשפת C לרוב לאותה המטרה כמו ה-exceptions ב-Java.</li>
<li> כל התשבות נכונות.</li>
</ol>
<div>32. למה ב-Java יש גם int וגם Integer?</div><ol style="list-style: hebrew;"><li> מדובר באותו דבר.</li>
<li> Integer הוא גרסה מתקדמת של int ונועד להחליפו.</li>
<li> כדי לחסוך יצירת class instance עבור כל משתנה int.</li>
<li> Integer נועד לתמוך במשתנים בני יותר מ-32 סיביות.</li>
</ol>
<div>33. נניח שאנחנו כותבים ב-Java תוכנית שממשת שפת פקודות פשוטה (למשל "צייר קו", "המתן", וכד"). מן הסתם תהיה בתוכנית זו לולאה שמחכה לפקודה הבאה ומחליטה מה לעשות הלאה, כלומר:<br><pre><br>while( True ) {<br> command = this.read_input();<br> if this.no_more_input_available(command)<br> break;<br> // else<br> if (command == this.DRAW_LINE_COMMAND) {<br> // code that handles line drawing<br> } else if( command == ??????? ) {<br> continue;<br> } else if ( command == &lt;ANOTHER COMMAND&gt;) {<br> // handle another command<br> }<br> // and so on<br>}</pre>
<br>מהי הפקודה שסומנה בסימני שאלה. כלומר, בשביל טיפול באיזו פקודה כנראה נשתמש ב-continue?</div><ol style="list-style: hebrew;"><li> למימוש פקודה שמציירת עיגול.</li>
<li> למימוש פקודה שלא עושה שום דבר.</li>
<li> אין סיבה להשתמש ב-continue בלולאה הזו.</li>
<li> לשחרור זיכרון שהוקצה מראש.</li>
</ol>
<div>34. מה ידפיס קטע הקוד הבא?<br><pre>public class Elementary {<br> public static void main(String[] args) {<br> System.out.println(12345 + 5432l);<br> }<br>}</pre>
</div><ol style="list-style: hebrew;"><li> 66666</li>
<li> 17777</li>
<li> 66661</li>
<li> 0</li>
</ol>
<div>35. אם שליש מהבדואים הם פוליגמים, כמה מהם צריכים להיות נשואים ליותר משתי נשים כדי שאפשר יהיה להוכיח שרוב הגברים יהיו לא נשואים?</div><ol style="list-style: hebrew;"></ol>
<div>36. בנק לאומי דורש שהסיסמא תהיה שש ספרות, לא תתחיל באפס, לא תכיל ארבע ספרות רצופות זהות, ולא תכיל שלוש ספרות עולות רצופות או יורדות רצופות. כמה אפשרויות שונות יש לסיסמא?</div><ol style="list-style: hebrew;"></ol>
<div>1. מכל המלבנים בעלי אותו היקף מיהו בעל השטח המירבי?</div><ol style="list-style: hebrew;"><li>ריבוע.</li>
<li>מלבן ביחס פיבונאצ"י.</li>
<li>תלוי ביחידות המדידה.</li>
<li>כולם זהים.</li>
</ol>
<div>15. מה הפלט של שורת הקוד הבאה?<br><pre>cout << 4["CodeGuru"];</pre>
</div><ol style="list-style: hebrew;"><li>התכנית תדפיס את הכתובת של התו G.</li>
<li>התכנית תקרוס, בשל גישה לא חוקית לזיכרון.</li>
<li>השורה תדפיס G.</li>
<li>השורה תדפיס Guru.</li>
</ol>

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

רשומה רגילה
1. מכל המלבנים בעלי אותו שטח מיהו בעל ההיקף המזערי?
  1. ריבוע.
  2. מלבן ביחס פיבונאצ"י.
  3. תלוי ביחידות המדידה.
  4. כולם זהים.
2. מי המציא את שפת התכנות פורטרן?
  1. פורטיס מחברת סי.די.סי.
  2. ג"ון מחברת י.ב.מ.
  3. צוות קוד פתוח.
  4. כל התשובות נכונות.
3. פיצה מהי?
  1. כינוי לאחד מהתקני האחסון ששימשו במחשב מיינפריים מסוג IBM System/370.
  2. מאכל איטלקי מועדף על מתכנתים.
  3. מחשב תעשייתי שטוח להתקנה במסד.
  4. כל התשובות נכונות.
4. מהו, בערך, המחיר לצרכן של כמות המים היורדת על גג בית מגורים בחולון בשנה?
  1. שקל
  2. עשרה שקלים
  3. מאה שקלים
  4. אלף שקלים
5. אחרי עליה של חמישה אחוזים במחיר המניה ביום אחד, וירידה של חמישה אחוזים ביום השני לאן הגיעה המניה?
  1. לאותו המקום
  2. קצת יותר
  3. קצת פחות
  4. תלוי במחיר ההתחלתי
6. באג בתוכנה ששיתק למספר שעות ספינת קרב אמריקאית בסוף שנות ה-90 נבע מ:
  1. חלוקה ב-0.
  2. שימוש במשתנה מטיפוס לא מתאים לערך המוכל בו.
  3. race condition.
  4. נקודה-פסיק חסרה בקוד C.
7. איזו מערכת הפעלה הריצה הספינה?
  1. Linux
  2. OS/2
  3. Windows NT
  4. Windows 95
8. * מה זה?


011111
100000
100000
100000
100000
  1. עיגול
  2. משולש
  3. כוכב
  4. לב
9. מה הפלט של שורת הקוד הבאה?


char *codeguru = "CodeGuru";
cout << 4 + codeguru;
  1. התכנית תדפיס את הכתובת של התו G.
  2. התכנית תקרוס, בשל גישה לא חוקית לזיכרון.
  3. השורה תדפיס G.
  4. השורה תדפיס Guru.
10. בשפת C, מה יקרה בסיום קטע הקוד הבא?


int X = 1;
char c = "\\";
// See if the char is \\
if (c == "\\")
X++;
else
X=0;
  1. X יגדל ב-1 (ויהיה שווה ל-2).
  2. X יהיה שווה ל-0.
  3. הערך של X לא ישתנה.
  4. קטע הקוד לא יתקמפל.
11. מה יהיה ערכו של x לאחר ביצוע קטע הקוד הבא בשפת C?


define INC(num) \\
{ \\
int x=1; \\
num+=x; \\
}

int x = 0;
if (x == 0)
INC(x);
  1. 1
  2. 2
  3. 0
  4. קטע הקוד לא יתקמפל.
12. במידה והתקבלה הודעת TCP עם Seq גבוה מה-Ack האחרון ששלחנו, כיצד מנגנון ה-TCP יגיב?
  1. יניח שההודעה התקבלה שלא בסדרה, ישלח את ה-Ack האחרון התקין שלו שוב ויזרוק את ההודעה החדשה.
  2. יניח שמדובר בזיוף של ההודעה, וישלח RST לצד השני על מנת לסגור את החיבור.
  3. יניח שההודעות הקודמות לא התקבלו עדיין, ישלח את ה-Ack האחרון התקין שלו שוב וישמור את ההודעה החדשה אם היא בגבולות החלון שלו.
  4. יניח שההודעות הקודמות לא התקבלו עדיין, ישמור את ההודעה החדשה ואם יש צורך, ייקצה חלון גדול יותר על מנת לקבל את ההודעה.
13. במידה ויש לנו ציוד קצה ברשת (A) שאינו תומך בעבודה מעל נתבים, כיצד נוכל בכל זאת לגרום לו לתקשר עם רשת מרוחקת דרך נתבים?
  1. נגדיר לנתב הקרוב ל-A כתובת ש-A אמור לדבר איתה, וניתוב של ההודעות לרשת המרוחקת.
  2. נגדיר לנתב הקרוב ל-ARP Proxy A של כתובות ברשת המרוחקת וניתוב אליה.
  3. נגדיר לנתב הקרוב ל-tunnel A לרשת המרוחקת.
  4. נגדיר VPN בין הרשת המרוחקת ל-A בעזרת הנתבים.
14. אילו תכונות נוספות מעבר ל-TCP אין בפרוטוקול SCTP?
  1. בחתימה דיגיטלית למען אבטחת התקשורת.
  2. ריבוב של תתי-ערוצים בתוך אותו חיבור.
  3. כתיבה בחתיכות.
  4. שימוש בכתובות מרובות לאותו מחשב.
15. מהי עוגיית SYN?
  1. מאפה סיני, מכילה פתק המעיד על מזל הנוגס בה
  2. פריט קטן של מידע שנשמר בעת גלישה באינטרנט על הדיסק הקשיח
  3. הצפה של מחשב בחיבורים סתמיים
  4. מנגנון שמונע פתיחה סתמית של חיבורי TCP
16. באג בתוכנה שגרם לכשל השיגור הראשון של הטיל אריאן 5 נבע מ:
  1. חלוקה ב-0
  2. המרה לא נכונה של טיפוס משתנה
  3. race condition
  4. נקודה-פסיק חסרה בקוד C
17. מונה בינארי שסופר מ-0 עד 1337 (כולל) – כמה פעמים יתהפך הביט התחתון?
  1. 1024
  2. 1336
  3. 1337
  4. 1573
18. מה צריך להיות הסכום בריבוע קסם שש על שש המכיל את המספרים מ-65 ועד מאה?
  1. 34
  2. 111
  3. 495
  4. 1514
19. משולש לטריז זה כמו עיגול ל-
  1. גליל
  2. כדור
  3. ביצה
  4. אליפסה
20. 1742123762643437888 הוא
  1. מספר ראשוני גדול.
  2. ייצוג ל-π באחד מהפורמטים התקניים.
  3. 25!
  4. 284
21. מהו ההבדל המשמעותי בין PCI Express בדור 1.1 לדור 2.0?
  1. הרחבת מספר החיבורים החשמליים לחריץ רחב יותר – מאפשר להעביר יותר נתונים בו זמנית.
  2. הגדלת קצב העברת הנתונים באמצעות הערוץ ל-8 ג"יגה בתים לשנייה.
  3. הרחבת מספר ההתקנים האפשריים לחיבור למחשב, בין היתר אנדרואיד של גוגל לצורך סינכרון מהיר במיוחד.
  4. דור 2.0 מאפשר להתקנים מדור 1.1 לעבוד בקצב מהיר פי שניים.
22. ברשותי מעבד אינטל Core2 מרובע ליבות, לאחרונה רכשתי מעבד חדש מסוג iCore7 עם שמונה ליבות. כאשר אריץ קוד מתמטי מאוד מורכב, המנצל את כל הליבות, באיזה מעבד האלגוריתם ירוץ מהר יותר?
  1. בכל מקרה במעבד iCore7 מכיוון שהוא יעיל יותר ומנגנון ה-HyperThreading ייתן שיפור ביצועים.
  2. בארכיטקטורת Core2, מכיוון שבמעבדי iCore7 המתח המגיע למעבד הוקטן על חשבון הביצועים, המעבד אמנם חסכוני יותר, אך מספק פחות ביצועים לאותו תדר שעון.
    במעבד
  3. Core2 בו כל הליבות בעלות יכולות זהות, כאשר ב-iCore7 שמונה הליבות הן וירטואליות אך גורמות ליתירות (overhead) הפוגעת בביצועים.
  4. קשה לומר, מעבד
    iCore7 משפר ביצועים בתחומים מסויימים, אך פוגע באיזורים אחרים. לכן צריך לבדוק את האלגוריתם בקפידה.
23. כמה פעמים ביממה מחוג השניות מהווה חוצה זוית של שני המחוגים האחרים?
  1. 720
  2. 1440
  3. 2856
  4. 86400
24. מהו שטח של כל הדיסקים בעולם?
  1. פחות מפטה-בית.
  2. בערך טרה-בית.
  3. יותר מאקסה-בית.
  4. כל התשובות נכונות.
25. מונה בינארי שסופר מ-0 עד
262
(לא כולל) – כמה פעמים יתהפכו כל הביטים?
  1. 261
  2. 262
  3. 263 – 1
  4. 263
26. מהן המספר הגדול ביותר שניתן לייצג בבית אחד (עם סימן)?
  1. 100
  2. 127
  3. 256
  4. 32767
27. מהו המספר הממשי (dobule) הקטן ביותר שגדול מ-

21023 + 1

  1. 21023 + 1
  2. 21023 + 2511
  3. 21023 + 2972
  4. 21024
28. במוזיקה, מרווחים (ההבדלים ב"גובה" של צלילים) נמדדים בטונים. עליה בחצי טון בצליל שקולה להגדרת התדר פי מספר קבוע p. באוקטבה יש 6 טונים. עליה של אוקטבה שקולה להכפלת התדר. במרווח "טרציה גדולה" יש 2 טונים. מה יחס התדרים בין התווים היוצרים אותה?
  1. 1.2599
  2. 1.7071
  3. 1.7321
  4. 2
29. נניח שיש לנו ריבוע בעל 25 משבצות בגוונים שונים של אפור. אנחנו שולחים קרן אור במישור הריבוע, בזוויות שונות לתוכו, ומודדים את העוצמה שלה כאשר היא יוצאת מהצד השני. כאשר קרן עוברת כל משבצת,
העוצמה שלה נחלשת בתור

q-l * s

, כאשר q הוא קבוע ידוע מראש, l הוא אורך הקרן בתוך המשבצת, ו-s הוא רמת האפור (בין 0 ל-1). אם כל המשבצות אפורות (אף אחת לא מעבירה אור באופן מושלם, ואף אחת לא בולעת את הקרן כך שלא נוכל לקלוט אותה), כמה קרניים נצטרך לשלוח לכל הפחות כדי לדעת את רמות האפור של כל המשבצות?

  1. 1
  2. 25
  3. 50
  4. 51
30. * חיים כתב את התוכנה הבאה בשפת C:


#include <stdio.h>

void f() {
long i = 0;
long p[1] = {0xF00DBEEF};

for(i = 0; i < 0x8; i++) {
printf("%04lx %016lx\\n", i*sizeof(long), p[i]);
}
}

void g() {
f();
}

int main() {
long t[10];

g();
return 0;
}

התקבל (לינוקס, ארכיטקטורת x86_64) הפלט הבא:


0000 00000000f00dbeef
0008 0000000000000001
0010 00007fff6cee0800
0018 000000000040052e
0020 00007fff6cee0860
0028 0000000000400542
0030 0000000000000000
0038 00000000004003ab

בזמן ריצת התוכנית, מה הייתה הערך של p?

  1. 0xf00dbeef
  2. 0x7fff6cee07e0
  3. 0x7fff6cee07f0
  4. 0x7fff6cee0800
31. נתונה התוכנית הבאה בשפת סף של x86:


mov eax,esp
push eax
jmp my_func
lock lahf
My_func:
push ebx
push ecx
rdtsc
retn 8
  1. לא יעבוד אף פעם: הפקודה lock lahf אינה חוקית ב X86
  2. יעבוד רק בחלק מהמעבדים: הפקודה lock lahf חוקית רק במעבדים של AMD
  3. יעבוד רק במעבדים בהם אין תמיכה ב- Non Executable Stack
  4. יעבוד רק מתוך Ring() שכן הפקודה rdtsc הינה Privilaged Instruction
32. נתונה הפונקציה הבאה שמטרתה לחלק את המספר a
ב-
5!:


int fact5(int a)
{
int count = 5;
while (count--) {a/=count;}
return a;
}

דני אומר שבפונקציה יש באג.

  1. דני צודק. הפונקציה תעלה שגיאה בעת קומפילציה.
  2. דני צודק. הפונקציה תעלה שגיאה בעת הריצה.
  3. דני צודק. הפונקציה תחזיר ערך שגוי.
  4. דני טועה. אין שגיאה בפונקציה.
33. כיצד נוכל להימנע מזיוף כתובת ה MAC של כתובת IP מסויימת ברשת המקומית בצורה שתפגע כמה שפחות בעבודה ברשת?
  1. לא נקבל ARP reply מכתובת MAC שלא הוגדרה לנו סטטית.
  2. לא נקבל ARP reply מכתובת IP שלא הוגדרה לנו סטטית.
  3. לא נשלח ARP request לכתובת IP שלא הוגדרה לנו סטטית.
  4. לא נקבל ARP reply על request שלא שלחנו.
34. מדעי נוצר בקצב 1kbps משודר דרך ערוץ בעל רעש, שבהסתברות p=90% הופך ביטים (ההסתברות היא בנפרד לכל ביט), בלי תלות באף גורם נוסף. מבלי לשלוח יותר מ-1kbps, באיזו מידה ניתן לשפר את הסיכוי שהצד השני יקבל את המידע הנכון (
כרגע היא
100%-90% = 10%
)?
  1. מבלי לשדר את אותו המידע יותר פעמים (הוספת יתירות), אי אפשר לשפר את המצב.
  2. ניתן להעלות בריבוע את הסיכון לתקלה, ל-81%, אך לא יותר מזה.
  3. ניתן לשפר את הסיכוי ל-10%, אך לא יותר מזה.
  4. ניתן לשפר פי כמה שבא לנו על-ידי שימוש בתיקון שגיאות מקדים (Forward Error Correction)
35. 0571 שקול ל-:
  1. r-xrwx–x
  2. 377
  3. 0x179
  4. כל התשובות נכונות
36. קובץ PAC מכיל:
  1. הגדרות פרוקסי;
  2. המלצות של ועד לפעולה פוליטית;
  3. מיפוי עומק באוקיינוס השקט (Pacific);
  4. פרטי משלוח בפורמט אגודת האורזים הקנדית (Packaging Association of Canada).
37. ** מידע מדעי שנוצר בקצב 1kbps משודר דרך ערוץ בעל רעש, שבהסתברות p=10% הופך ביטים (ההסתברות היא בנפרד לכל ביט), בלי תלות באף גורם נוסף. אנחנו יכולים לשלוח עד 2kbps, עם אותה הסתברות לשגיאה בביט בודד. באיזו מידה ניתן לשפר את הסיכוי שהצד השני יקבל את המידע הנכון ?
  1. אי אפשר לשפר את הסיכוי;
  2. ניתן להעלות בריבוע את הסיכון לתקלה, ל-1%, אך לא יותר מזה;
  3. ניתן לשפר ל-0.31%, בהתאם למשפט שנון;
  4. בתנאים אלה, לכל הסתברות שגיאה גדולה מ-0 קיים מנגנון FEC שמשיג אותה;
38. אם ברצוני לחכות שמשימה כלשהי תתבצע, ב-Java, באיזה טיפוס מהבאים אינו יכול לשמש לזיהוי סיום המשימה?
  1. Object
  2. boolean
  3. CountDownLatch
  4. כולם יכולים
39. האם הקוד הבא מתקמפל ב-Java?


List<String> sl = new LinkedList<String>();
List<Object> ol = sl;
  1. כן, כי כל String הוא Object.
  2. לא, כי לא ניתן להציב LinkedList ב-List.
  3. לא, כי הרשימה הראשונה עלולה להשתבש.
  4. לא, כי Generics לא נמצאים בזמן ריצה.
40. מה ידפיס קטע הקוד הבא?


int i = 255;
byte b = i;
i = b;
System.out.println(i);
  1. לא יתקמפל, כי byte הוא signed.
  2. 127 – כי byte הוא signed.
  3. 255, כי 255 קטן מ-256.
  4. 128, כי byte הוא unsigned.
41. מה ידפיס קטע הקוד הבא?


short x=-32768;
short y;
y = -x;
printf("%d", y);

בהנחה שגודל של short הוא 16bit.

  1. 1
  2. 0
  3. 32768-
  4. 32768
42. מה הבעיה הבקטע הקוד הבא?


List<Integer> l = new LinkedList<Integer>();
l.add(1);
l.add(2);
l.add(3);
l.add(4);
for (int i : l)
if (i % 2 == 0)
l.remove((Integer) i);
  1. i צריך להיות מטיפוס Integer.
  2. ה-cast מיותר כי מתבצע auto-boxing.
  3. נקבל ConcurrentModificationException בגלל שלא השתמשנו ב-Iterator.remove.
  4. מתבצעת קריאה למתודה List.remove לפי אינדקס ולא לפי האובייקט שיש למחוק.
43. למה שימושית, בין היתר, המחלקה WeakReference ב-Java?
  1. להעברת פרמטרים למתודות by-reference ולא by-value.
  2. למימוש מנגנוני cache שקופים למשתמש.
  3. מימוש של מצביעים ב-Java משום שהם לא קיימים בשפה.
  4. הרצת ה-Garbage Collector על אובייקט מסוים שברשותינו.
44. מה הבעיה בקטע ה-Java הבא?


public boolean isOdd(int i) {
return i % 2 == 1;
}
  1. הקטע מחזיר תשובה הפוכה מהמצופה בכל המקרים.
  2. מתבצע auto-boxing שגורם לחישובים להיות שגויים לפעמים.
  3. הקטע מחזיר תשובה לא נכונה עבור חלק מהמספרים השליליים.
  4. אין שום בעיה.
45. * מה זה?


\\u0070\\u0075\\u0062\\u006c\\u0069\\u0063\\u0020\\u0020\\u0020\\u0020
\\u0063\\u006c\\u0061\\u0073\\u0073\\u0020\\u0055\\u0067\\u006c\\u0079
\\u007b\\u0070\\u0075\\u0062\\u006c\\u0069\\u0063\\u0020\\u0020\\u0020
\\u0020\\u0020\\u0020\\u0020\\u0073\\u0074\\u0061\\u0074\\u0069\\u0063
\\u0076\\u006f\\u0069\\u0064\\u0020\\u006d\\u0061\\u0069\\u006e\\u0028
\\u0053\\u0074\\u0072\\u0069\\u006e\\u0067\\u005b\\u005d\\u0020\\u0020
\\u0020\\u0020\\u0020\\u0020\\u0061\\u0072\\u0067\\u0073\\u0029\\u007b
\\u0053\\u0079\\u0073\\u0074\\u0065\\u006d\\u002e\\u006f\\u0075\\u0074
\\u002e\\u0070\\u0072\\u0069\\u006e\\u0074\\u006c\\u006e\\u0028\\u0020
\\u0022\\u0048\\u0065\\u006c\\u006c\\u006f\\u0020\\u0077\\u0022\\u002b
\\u0022\\u006f\\u0072\\u006c\\u0064\\u0022\\u0029\\u003b\\u007d\\u007d
  1. קטע byte-code של תכנית ב-Java.
  2. תכנית שמדפיסה "Hello World".
  3. סימון ל-Java להשתמש בקידוד Unicode.
  4. אוסף של סימנים ללא משמעות.
46. יש צורך לבצע אופטימיזציה בנקודה קריטית בקוד C או Java. בנקודה זו כרגע נמצא switch statement. הערך עליו נעשה ה-switch הוא בן 32 ביט. יש 100 ערכים שונים (שנבדלים בכל הסיביות), מתוכם בזמן הריצה התוכנית תיתקל ב-3 מהם ב-90% מהמקרים.
  1. יש לסדר מחדש את האיברים ב-switch
  2. יש להתחיל להשתמש בטבלת hash שמכילה מצביעים לפונקציות.
  3. יש להוציא את הערכים השכיחים מה-switch, ולעשות if או switch מיוחדים שמתייחס אליהם בהתחלה.
  4. switch הוא תמיד יעיל באופן מרבי, אין פה מה לשפר.
47. יוסי כותב תוכנה שקוראת (באופן blocking) מתוך socket, ומקבל קריאה באורך 0. מה פשר הדבר?
  1. נשלח ACK עם אותו sequence number פעמיים. זאת תופעת Keep-alive תקנית
  2. הצד השני ניתק את החיבור באופן תקני
  3. יש עומס ברשת
  4. לא התקבל מידע במשך פרק זמן מסויים, אך החיבור עדיין קיים
48. "תסמונת החלון הטיפש" היא –
  1. תופעה שגורמת ליצירת תעבורת TCP מיותרת כאשר הצד המקבל אינו מסוגל לקבל את המידע בקצב המתאים
  2. תופעה שגורמת להאטת חיבור TCP כאשר מופעל גם האלגוריתם של Nagle וגם המנגנון DELAYED ACK
  3. תחושת זעזוע אילם בעת מעבר על חדשות תרבות בדפדפן
  4. בעית תקיעה אופיינית לחלונות בסביבת Windows, שמתרחשת כאשר החלון אינו מתייחס להודעות WM_PAINT
49. למה משתמשת קריאת המערכת select במערכות דמויות Unix?
  1. להמתנה של תהליך לקלט.
  2. בחירת שורות מתוך מסד נתונים מובנה (Berkley DB).
  3. להתקנת חבילות תוכנה בפורמט RPM או deb.
  4. כל התשובות נכונות.
50. איזה מהאוגרים הבאים עשוי להצביע על אזור בזיכרון שמופיע בו המידע הבא:


6d 6f 76 20
61 78 2c 20
5b 62 78 5d
3b 0d 0a 69
  1. EIP
  2. MM0
  3. EFLAGS
  4. ESI
51. בקוד הבא:


lea di, [4*ebx+ebx]
shl di, 5
add di, cx
stosw

למה כנראה שווה ES?

  1. 0x0040
  2. 0xA800
  3. 0xB800
  4. 0xF00F
52. בקוד הבא:


lea di, [4*ebx+ebx]
shl di, 6
add di, cx
stosb

למה כנראה שווה ES?

  1. 0x0000
  2. 0xA000
  3. 0xF000
  4. 0xF00F
53. באסמבלי של 8086, האם קטע הקוד הבא תקין? אם כן, למה הקוד שקול? אם לא, למה לא? Foo הינה פרוצדורה רגילה מסוג NEAR, שלא מקבלת פרמטרים.


start:
push offset end
jmp Foo
  1. הקוד אינו תקין, שכן לא ניתן לקרוא לפרוצדורה בעזרת jmp.
  2. הקוד תקין, ושקול לפקודה call Foo.
  3. הקוד תקין, אך ה-push מיותר וניתן להגיע לקוד שקול בלעדיו.
  4. הקוד אינו תקין, שכן לאחר סיום פרוצדורת Foo בעזרת פקודת ret, המעבד לא ידע לאן יש לחזור.
54. *סונט שקספירי הוא שיר בן 14 שורות בנות 10 הברות כל אחת. לסונט יש חריזה מוסכמת – ABAB CDCD EFEF GG. בהנחה שכל הברה מורכבת מתנועה ועיצור, כי יש 5 תנועות ו-15 עיצורים, וכי החריזה מתבטאת בכך שההברה האחרונה בשורות המוחרזות זהה, כמה סונטים קיימים?
  1. 17218
  2. 75266
  3. 412!
  4. 5*819216
55. * מה זה?


0100000100000
1010000000000
0101000000000
0010100000000
0001010000000
0000101000000
0000010100000
1000001000000
0000000000000
0000000000000
0000000000000
0000000000001
0000000000010
  1. דרקון
  2. בית
  3. כוכב
  4. פרצוף
56. ** נניח שערים בישראל מורכבות משטחים רציפים במפה (עיר לא יכולה להיות מחולקת לשני חלקים שאינם משיקים וביניהם עיר אחרת, ועיר לא יכולה להכיל עיר), וכי כל נקודה במפה שייכת לעיר מסויימת. לפי תקנות משרד הפנים, כל עיר צריכה לסגור את החנויות אחרי הצהריים באחד מהימים א"-ד" (כל שבוע באותו היום). הערים מנסות להגיע להסדר בו כל זוג ערים צמודות (בעלות קטע גבול משותף) תסגורנה חנויות בימים שונים (וזאת כדי שתושבי עיר שחנויותיה סגורות יוכלו לקנות בעיר שכנה).

איזו מהטענות הבאות נכונה:

  1. אי אפשר להגיע להסדר.
  2. תמיד אפשר להגיע להסדר.
  3. אפשר היה להגיע להסדר באופן וודאי רק עבור פחות מ-10 ערים.
  4. זה תלוי במפת הערים הספציפית – ייתכן שעבור מפה מסויימת ניתן להגיע להסדר, ועבור מפה אחרת לא.
65. מה הטעות באחת משלושת ההגדרות HASKELL הבאות, ואיך ניתן לתקנה?


sum [] = 0
sum (a:x) = a + sum x

product [] = 0
product (a:x) = a * product x

reverse [] = []
reverse (a:x) = reverse x ++ [a]
    57. נניח שכתבנו תוכנה, ובה שני
    threads שמבצעים את הקוד הבא, כאשר המשתנה c מוקצה על ה-heap ומשותף לשניהם:


    c = 0;
    c = c+1;
    c = c+1;
    c = c+1;

    איזה ערך לא יוכל c לקבל (באף אחד מהם)?

    1. 0
    2. 3
    3. 4
    4. 6
    58. Ethernet 100baseT, המורכבת מ-3 מחשבים שמחוברים ל-switch בודד. A ו-B שולחים פינגים בקצב זהה ל-C. באיזה קצב של pingים נראה חבילות שמתחילות ללכת לאיבוד?
    1. 3 MB/s
    2. 6.25 MB/s
    3. 6.25 MB/s
    4. 100 MB/s
    59. איזו פונקצית רשת עשוייה לגרום לשינוי השדה DPT בחבילות TCP?
    1. PFW
    2. ניתוב IP
    3. LAN switching
    4. NAT
    60. יוסי פותח חיבור telnet לאוניברסיטה שלו. האוניברסיטה אינה יוזמת ניתוק ולא חל timeout. מקבלת איזו הודעת TCP ועד איזו הודעה יש טעם שהאוניברסיטה תחזיר לו תשובות?
    1. SYN, RST
    2. ACK, FIN
    3. SYN, ACK
    4. RST, FIN
    61. איזו פונקציה לא תקרוס עם segmentation fault על פרמטר שהוא מצביע NULL?
    1. scanf
    2. memset
    3. printf
    4. realloc
    62. מה צריכים להיות הערכים במערך כדי ש-r יוכפל פי 14?


    int f(int r) {
    int i = 0, s = 0;
    int array[16] = { ?????, 0, 0, .., 0 };

    for(i = 0; i < 5; i++) {
    if (array[i])
    s += (r << i);
    }
    return s;
    }

    מה אמור להופיע במקום סימני השאלה (שאר האיברים במערך הם 0):

    1. 0, 1, 1, 1
    2. 1, 0, 0, 1, 1
    3. 1, 0, 0, 0
    4. 1, 3, 2
    63. *הקוד הבא מממש את אותה הלוגיקה בשתי דרכים שונות, כתלות במשתנה הקומפילציה
    OPTION.



    int l;
    char output[33];

    while(k) {
    #ifdef OPTION
    output[l++] = (k & 1) + 0x30;
    #else
    if(k & 1)
    output[l] = ''0'';
    else
    output[l] = ''1'';
    l++;
    #endif

    k >>= 1;
    }

    output[l] = ''\\0'';

    מריצים את הקוד ב-4 תצורות – שני מעבדים שונים, וכאשר k מוגרל באופן אקראי בתחומים שונים. מתי ההדלקה של OPTION תעשה הבדל?

    1. מריצים על מעבד Core 2 Duo; בעוד
      k נבחר בתחום
      המספרים 983040..983056
    2. מריצים על מעבד Core 2 Duo; בעוד
      k נבחר בתחום 0..983056
    3. מריצים על מעבד 486;
      בעוד
      k מוגרל בתחום המספרים 983040..983056
    4. מריצים על מעבד 486;
      בעוד
      k מוגרל בתחום 0..983056
    64. לדני יש
    Disk On Key בגודל 4 ג"יגה-בייט, מפורמט במערכת הקבצים FAT32.
    דני החליט לשמור על הקובץ את אוסף המילים לשירים האהובים עליו, כאשר הגודל של כל קובץ עם מילים הוא כ-1000 בתים.
    דני אוסף שירים מכל רחבי העולם, ויש לו מיליון שירים. כמה מקום פנוי יש לדני על הדיסק, בהנחה שמשתמש בהגדרות ברירות המחדל של מערכת הקבצים?
    1. 0 GB
    2. 1 GB
    3. 2 GB
    4. 3 GB

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

    רשומה רגילה
    1. כמה אפשרויות יש למהלך הראשון (צעד לבן וצעד שחור) במשחק דמקה?
    1. 49
    2. 400
    3. 8,192
    4. 3,628,800
    2. כמה ביטים יש בתקליטור רגיל?
    1. מאות אלפים
    2. עשרות מיליונים
    3. מיליארדים
    4. טריליונים
    3. בשפת C, מה משמעות x++?
    1. ש-x חייב להיות חיובי
    2. להגדיל את x באחד
    3. לבדוק האם x זוגי
    4. כל התשובות נכונות
    4. בביטוי
    k = (++c) + (++c)
    מה סדר הפעולות שתתבצענה?
    1. הגדלה, הגדלה, חיבור, השמה
    2. הגדלה, חיבור, הגדלה, השמה
    3. השמה, הגדלה, חיבור, הגדלה
    4. חיבור, השמה, הגדלה, הגדלה
    5. איזה ישראלי זכה בפרס טיורינג?
    1. בעל שם משפחה כמו ראש ממשלה לשעבר
    2. חוקר בנושא אימות נכונות תוכנה
    3. זכה גם בפרס קוביאשי
    4. כל התשובות נכונות
    6. האם שני מרובעים בעלי אותו אורך צלעות חייבים להיות חופפים?
    1. כן, אם הצלעות באותו הסדר
    2. לא, אפילו אם כולן שוות
    3. תלוי במספר הזוויות
    4. כל התשובות נכונות
    7. מה יוצא דופן?
    1. struct
    2. static
    3. until
    4. float
    8. *מה הייתה התשובה הנכונה לשאלה הפתוחה מספר 69 בשאלון קודוגורו ישן?
    1. משולש שווה צלעות
    2. 69

    3. for (i=0; i<n; i–)
    4. CodeGuru
    9. מהו הלוג הטבעי של מספר המורים בישראל?
    1. בערך 9
    2. בערך 12
    3. בערך 15
    4. בערך 18
    10. מה יותר זול, לשלם שמונה שקלים לשעת חניה (או חלק ממנה) או שני שקלים ל-16 דקות (או חלק מהן)?
    1. על פי שעה
    2. על פי 16 דקות
    3. אותו הדבר
    4. תלוי בזמן החניה
    11. בכמה עולה המפלס בזמן צליחת הכנרת?
    1. בעצם המפלס יורד
    2. לא עולה כלל
    3. כמה מיקרונים
    4. כמה מילימטרים
    12. מי מהבאים לא תמך בקודגורו?
    1. יבמ
    2. TIM, מצוינות בניהול
    3. משרד ראש הממשלה
    4. סימנטק
    13. כמה קודקודים יש לקוביה?
    1. 2*3
    2. 2^3
    3. 3^2
    4. 2^2 3
    14. כמה מספרים ראשוניים תלת-ספרתיים יש?
    1. פחות מ-100
    2. יותר מ-500
    3. בערך 150
    4. כל התשובות נכונות
    15. * כמה קיפולים צריך כדי להפוך קרטון שטוח לקרטון מרובע למשלוחי פיצה ?
    1. בערך 6
    2. בערך 10
    3. בערך 14
    4. בערך 18
    16. מה מהרשום מטה מגיע רק עם מחשב ישן ?
    1. כונן דיסקטים
    2. כפתור טורבו
    3. תושבת לכרטיסי ISA
    4. כל התשובות נכונות
    17. ** איך אומרים בסווהילית "הרחפת שלי מלאה בצלופחים" ?
    1. To ploion mou to meteorizomenon esti pleres encheleon
    2. Mi hydroaeroplano es plen de anguillas
    3. Ta my haagh crowal lane dy astan
    4. Gari langu linaloangama limejaa na mikunga
    18. מה שוקל יותר, קילו ניאוביום או קילו ונדיום ?
    1. קילו ונדיום
    2. קילו ניאוביום
    3. אותו דבר
    4. תלוי בטמפרטורה
    19. light-pen הוא:
    1. אמצעי פלט.
    2. אמצעי קלט.
    3. אמצעי עיבוד.
    4. כל התשובות נכונות.
    20. * מהו הערך של NOP באסמבלי של 8086?
    1. אפס
    2. תשעים הקסה
    3. FF
    4. כל התשובות נכונות
    21. * מה יכול להיות היחס בין אורך הצלע הארוכה במשולש לאורך הצלע השנייה באורכה?
    1. כל מספר גדול מ-1
    2. כל מספר חוץ משורש 2
    3. כל מספר בין 1 ל-2
    4. כל מספר שלם
    22. בסטנדרט

    Full HD (High-Definition)
    , מה משמעות הסימול 1080i?
    1. התמונה מוצגת ברזולוציה של 1920×1080, כל פריים מגיע באופן עצמאי.
    2. התמונה מוצגת ברזולוציה של 1920×1080, כל פריים מורכב משני חלקים נפרדים.
    3. זהה לסימול 1080p, אך בשל מאבקים בין מספר חברות בתחום הוידאו הוחלט להפריד לשני שמות שונים.
    4. התמונה יכולה להגיעה במגוון רזולוציות, החל מ-1368×768 ועד 1920×1080 (אך לא יותר).
    23. מה ההבדל בין קידוד תמונה בפורמט YUV ל-RGB?
    1. יש התמרה לינארית ביניהם.
    2. מספר הצבעים לפיקסל שונה.
    3. הרזולוציה של YUV גבוהה יותר.
    4. אין שום הבדל.
    24. התכונה המאפשרת שיתוף של משאבי המחשב בין מספר תוכניות בשימוש מתחרה נקראת:
    1. ריבוי תוכניות – Multiprogramming
    2. ריבוי משימות – Multitasking
    3. ריבוי מעבדים – Multiprocessing
    4. ריבוי תשובות – Multianswering
    25. מחשוב מבוזר ובסיסי נתונים מבוזרים:
    1. הם חידוש של שנות התשעים.
    2. מותנים בתקשורת מחשבים.
    3. א" + ב".
    4. הומצאו במלחמת העולם הראשונה.
    26. Downsizing פירושו:
    1. הקטנת ממדי החומרה.
    2. הקטנת נפחי התוכנה.
    3. א" + ב".
    4. פיטורים ממוחשבים.
    27. * באיזה מן המקרים הבאים חיפוש בינארי יעיל?
    1. קובץ ממוין השמור על סרט מגנטי.
    2. קובץ ממוין שמוצפן על-ידי צופן בלוקים במוד CBC, כשהוא שמור על תקליטור.
    3. קובץ ממוין השמור על תקליטור.
    4. כל התשובות נכונות.
    28. מספר הביטים הנחוץ לייצג שורה זו הוא בערך:
    1. 3
    2. 30
    3. 300
    4. 3000
    29. ASCII היא שיטה :
    1. לשידור מורס.
    2. לקידוד תווים.
    3. לשילוב בין מודם ופקס.
    4. שהומצאה על ידי IBM.
    30. על תקליטור טיפוסי אפשר לשמור:
    1. מליארדי דיסקטים
    2. מיליוני תמונות
    3. מאות אלפי דפי טקסט
    4. כל התשובות נכונות
    31. סרט מגנטי יגבה מהר יותר אם יקושר למחשב בתקשורת:
    1. טורית.
    2. מקבילית.
    3. מקומית.
    4. אלחוטית.
    32. בעת עיבוד באצווה (Batch):
    1. הרשומות נשמרות בקובץ תנועות ומעדכנות תקופתית את קובץ האב.
    2. הרשומות מקובץ תנועות מעובדות ומעדכנות מיידית את קובץ האב.
    3. הרשומות מקובץ האב מעדכנות תקופתית את קובץ התנועות.
    4. הרשומות מקובץ האב מעובדות ומעדכנות מיידית את קובץ התנועות.
    33. הסדר הנכון של אמצעי האחסון לפי זמן הגישה לנתונים הוא:
    1. דיסק קשיח – סרט מגנטי – זכרון מטמון – זכרון ראשי – רגיסטר
    2. סרט מגנטי – דיסק קשיח – זכרון ראשי – זכרון מטמון – רגיסטר
    3. רגיסטר – סרט מגנטי – דיסק קשיח – זכרון מטמון – זכרון ראשי
    4. זכרון ראשי – דיסק קשיח – רגיסטר – סרט מגנטי – זכרון מטמון
    34. בדיסק מגנטי:
    1. מספר הצילינדרים זהה למספר המסילות.
    2. מספר הסקטורים גדול ממספר המסילות.
    3. מספר המסילות גדול ממספר הסקטורים.
    4. מספר ראשי הקריאה גדול ממספר המשטחים המגנטיים.
    35. שפת תכנות שפותחה במיוחד עבור עיבוד נתונים אוטומטי היא:
    1. BASIC
    2. FORTRAN
    3. COBOL
    4. PASCAL
    36. סדר כרונולוגי נכון לגבי דורות מעבדים:
    1. טרנזיסטורים – שפופרות ואקום – מעגלים משולבים
    2. שפופרות ואקום – מעגלים משולבים – טרנזיסטורים
    3. שפופרות ואקום – טרנזיסטורים – מעגלים משולבים
    4. שפופרות ואקום – כרטיסים מנוקבים – טרנזיסטורים
    37. איזו מהטופולוגיות אינה משתמשת במחשב מרכזי?
    1. כוכב
    2. טבעת
    3. ערוץ
    4. ב ו-ג"
    38. בחדר סגור ומבודד יש מקרר מחובר לחשמל עם דלת פתוחה, מה יקרה לטמפרטורת החדר לאחר זמן רב?
    1. לא תשתנה
    2. תעלה
    3. תרד
    4. תלוי אם 110 או 220 וולט
    39. גרף המצב של תהליך מכיל 3 מצבים בסיסיים: Ready, Blocked, Running:
    1. המעבר מ-Running ל-Ready נובע תמיד מפעולה שבוצעה על ידי התהליך עצמו.
    2. המעבר מ-Blocked ל-Ready נובע תמיד מפעולה שבוצעה על ידי התהליך עצמו.
    3. המעבר מ-Ready ל-Running נובע לרוב מפעולה שבוצעה על ידי תהליך עצמו.
    4. המעבר מ-Running ל-Blocked נובע לרוב מפעולה שבוצעה על ידי התהליך עצמו.
    40. כשמשתמשים ב-Socket צורת התקשורת בין לקוח לשרת כוללת בין היתר את השלבים הבאים
    1. שני התהליכים מבצעים פעולת Connect המציינת את התהליך השני.
    2. השרת מבצע Listen על Port מסוים, הלקוח מבצע Connect על ה-Port הזה, ואז השרת מבצע Accept.
    3. הלקוח מבצע Connect על ה-Port של השרת, ואז השרת מבצע Listen.
    4. השרת מבצע Accept על Port, והלקוח מבצע Select בפתיחת הקשר.
    41. תפקיד של רמת ה-Transport במודל 7 השכבות היא:
    1. שליטה בזרימת הנתונים בעורק תוך שמירה על כך שחוצצים (Buffers) לא יעלו על גדותיהם.
    2. ניתוב הנתונים בין המחשבים השונים הנמצאים בקודקודי הרשת.
    3. שבירת הודעות ארוכות למנות (Packets), וידוא שכולן אכן הגיעו ליעדן באופן תקין, ואחידן חזרה לתמסורת אחת.
    4. תרגום הנתונים מפורמט אחד למשנהו בהתאם ליצוג הפנימי של המחשב השולח והמקבל.
    42. בפרוטוקולים המשמשים באינטרנט:
    1. פרוטוקול UDP אינו אמין, אבל אם הודעה (דאטאגרם) מגיעה מובטח שאין בה טעויות.
    2. פרוטוקול UDP עדיף על TCP לאפליקציות מולטימדיה כגון העברת מוזיקה או וידאו.
    3. אחד ההבדלים בין TCP ל-UDP הוא ש-TCP הוא Connection-oriented בעוד ש-UDP הוא Connectionless.
    4. כל השתשובות נכונות.
    43. כאשר Thread מבצע קריאה למערכת ההפעלה מחייבת המתנה (כגון Read), מה קורה לשאר התהליך (Process) שבתוכו הוא רץ?
    1. התהליך כולו נחסם לריצה על לסיום הקריאה.
    2. אם ישנם User Threads נוספים בתהליך, הם ממשיכים לרוץ כרגיל.
    3. אם ישנם Kernel Threads נוספים בתהליך, הם ממשיכים לרוץ כרגיל.
    4. אם ישנם Threads נוספים מסוג כלשהו בתהליך, הם ממשיכים לרוץ כרגיל.
    44. כמה קריאות Blocking Read יכולות להתבצע במקביל ע"י תהליך (Process) אחד?
    1. לכל היותר קריאה אחת, שבו התהליך כולו נחסם לריצה עד לסיום הקריאה.
    2. לכל היותר X קריאות, כאשר X הוא מספר ה-User threads בתהליך.
    3. לכל היותר X קריאות, כאשר X הוא מספר ה-Kernel threads בתהליך.
    4. לכל היותר X קריאות, כאשר X הוא מספר ה-Threads מכל סוג שהוא בתהליך.
    45. במודל 7 השכבות, אמינות התקשורת נמצאת באחריות הרמות הבאות:
    1. הרמה הפיזית דואגת ליצוג הנכון של כל ביט, ורמת הפרזנטציה אחראית לסמנטיקה של היצוג.
    2. רמת העורק (Data link) אחראית על איתור ותיקון שגיאות במנה בודדת, בעוד רמת ה-Transport אחראית לאיתור מנות חסרות.
    3. רמת הפרזנטציה אחראית לשימוש ביצוג הנכון, ורמת ה-Session אחראית לאיתור בעיות בתקשורת.
    4. רמת הרשת אחראית לכך שהנתונים יגיעו למטרתם, ורמת העורק לכך שקטעי המידע לא ילכו לאיבוד.
    46. בעיצוב תכנה, מה ההבדל ב uses ל-inheritance במחלקות?
    1. כאשר משתמשים ב inheritance הקשר בין המחלקות חזק יותר מאשר ב uses.
    2. כאשר משתמשים ב uses הקשר בין מחלקות חזק יותר מאשר inheritance.
    3. כאשר משתמשים ב uses הקישור יכול להיות בין מחלקות סטטיות בלבד לעומת inheritance.
    4. כאשר משתמשים ב inheritance שימוש במחלקות חייב להיות דומה, לעומת uses שאינו מגביל בצורת השימוש של מחלקה.
    47. בסקטור ה MBR נשמרים
    1. partition table, boot code, magic number
    2. boot code, post initialization, magic number
    3. boot code, ram initialization, magic number
    4. boot code, magic number
    48. מה לא בסדר ב


    char * buf = malloc(sizeof(*buf) * 5);
    1. sizeof אינו יכול לקבל משתנה
    2. צריך להיות
      sizeof(buf)
    3. אין התאמה בין הטיפוס המוחזר מ-
      malloc לבין הטיפוס של buf
    4. ההקצאה נעשית לכמות אי-זוגית של בתים
    49. קניתי מחשב חדש בעל 4GB של זיכרון נדיף, והתקנתי עליו מערכת הפעלה מסוג "חלונות 32 ביט", אבל אני רואה שהמערכת מזהה רק 3GB
    של זיכרון, מדוע?
    1. מערכת ההפעלה שומרת לעצמה את 1GB~ העליונים ל IO ולא ממפה באזור זה זיכרון נגיש.
    2. מערכת ההפעלה שומרת לעצמה את 2GB~ העליונים ל-Kernel mode ולא מאפשרת למשתמש נגישות לאזור זיכרון זה.
    3. צוואר הבקבוק, המקרה הספציפי עלול להיות גודל ה bus של לוח האם לזיכרון, המאפשר מיפוי של 3GB זיכרון.
    4. המחשב ביצע boot עם switch /3GB
    50. בשפת
    C++
    , מה משמעות קטע הקוד הבא?

    extern "C" some_function_name(...)

    1. להורות לקומפיילר לא להוסיף C++ decoration לפונקציה some_function_name.
    2. כאשר מופיע לפני מימוש של פונקצייה הפעולה זהה ל virtual
    3. ליחצן מתודות private כפונקציות public כאשר מקמפלים כ-C.
    4. לגרום למשתמש להבחין כי מדובר בקוד C .
    51. ** מה יהיה ערך
    RCX
    לאחר ביצוע הקוד הבא על ארכיטקטורת
    x64?


    mov ecx, 1
    push rcx
    1. ב 64bit, 32 הבתים העליונים מאופסים.
    2. ב 64bit, 32 הבתים העליונים ישארו מהערך הקודם באוגר.
    3. הפעולה איננה תקינה, הפקודה mov מחייבת ששני האופרנדים יהיו בעלי גודל זהה.
    4. הפעולה אינה סטנדרטית, אסמבלרים מסויימים ידחפו 32 ביט למחסנית ואחרים יציגו שגיאה.
    52. ** הגנה על מתודות פרטיות ב
    C++ נעשת
    1. ברמת הקומפיילר, אשר מוודא שאין שום פנייה מחוץ למחלקה למתודה פרטית.
    2. ברמת הלינקר, נוצרת שגיאה כאשר ננסה ללנק"ג מתודה פרטית במחלקה זרה (unresolved external)
    3. ברמת ה CRT – הוא לא יוכל לגשת לכתובת זיכרון זו, מכיוון שחישובה היה רלוונטי רק שמתוך הפונקציה.
    4. ברמת מערכת ההפעלה – פנייה שכזאת תגרום למנגנוני ההגנה של מערכת ההפעלה לפעול.
    53. * מדוע _stdcall c convention אינו מאפשר מספר לא-ידוע של פרמטרים לפונקציה?
    1. הפונקציה אחראית על שחרור המחסנית ואיננה יודעת את מספר הפרמטרים שהועבר אליה.
    2. הפוינטר למחסנית מועבר by value לפונקציה, ולכן גודל הפרמטרים חייב להיות קבוע.
    3. כדי לאפשר תאימות למערכות משובצות, בהם חייבים להגביל את מספר הפרמטרים.
    4. מהסיבה של va_list נוסף ב C89, ועד אז לא הייתה את האפשרות הזו, ולכן העדיפו לאפשר תאימות לאחור.
    54. בקידוד האפמן
    (Huffman Coding)
    מקומו של הסימן הכי שכיח הוא
    1. בשורש העץ
    2. בעלה שנמצא במרחק מינימלי משורש העץ
    3. באחד מהצמתים בעץ
    4. בעלה שנמצא במרחק מירבי משורש העץ

    שאלון קודגורו 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 ביום שישי האחרון מופיע קודגורו?

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

    רשומה רגילה
    1. כמה זמן לוקח למיין מערך בן מיליארד מספרים?
      1. פחות מאשר פי שלושים מאשר למיין מערך של מליון מספרים
      2. בערך פי אלף מאשר למיין מערך של מליון מספרים
      3. יותר מאשר פי מיליון מאשר למיין מערך של מליון מספרים
      4. בדיוק שעה
    2. אם סכום הספרות של מספר מתחלק בשבע ללא שארית אז
      1. המספר חייב להתחלק ב-7
      2. המספר חייב להתחלק ב-9 בשארית 7
      3. המספר יכול להתחלק ל-2011 בשארית 100
      4. כל התשובות נכונות
    3. מה יותר גדול 101000או100010
      1. הראשון
      2. השני
      3. אותו דבר
      4. תלוי בבסיס הספירה
    4. בכמויות גדולות, כמה עולה טרה ביית?
      1. מליוני דולרים
      2. אלפי אירו
      3. מאות שקלים
      4. עשרות אגורות
    5. USB2 נבדל מ-USB1 ב—
      1. מתאם חשמלי שונה מצד המחשב
      2. תמיכה בחיבורים אלחוטיים
      3. תמיכה בטעינה ללא העברת מידע
      4. קצב גבוה בהרבה
    6. מה אין באתר קודגורו?
      1. שמות הזוכים
      2. פורום חידות
      3. קישור לשב"כ
      4. קישור לתרומות
    7. איזו שפת תכנות הכי עתיקה?
      1. C++
      2. FORTRAN
      3. COBOL
      4. APL
    8. ברשותי מכשיר סלולרי (סמארטפון) המריץ אנדרואיד גרסה 2.3, כמה זמן צפויה להחזיק הסוללה בין טעינות בהנחה שמשוחחים בטלפון כשלוש שעות ביום?
      1. שלוש שעות
      2. 10 שעות
      3. יומיים
      4. יום
    9. איזו ארכיטקטורת מעבד סביר למצוא במכשיר Apple iPhone?
      1. Intel x86
      2. TI ARM
      3. FPGA
      4. תשובות ב' ו-ג'
    10. יצרתי מופע של אובייקט חדש בשפת C# ע"י שימוש במילה השמורה new. מתי עלי לשחרר את המשאבים שתפס האובייקט?
      1. בסוף הפונקציה, כאשר קטע הקוד שמשתמש בו מסתיים
      2. בסוף קטע הקוד של הפונקציה הראשית Main
      3. אין צורך לשחרר, כאשר התהליך מסתיים, כל הזיכרון שהוקצה משוחרר אוטומטית מערכת ההפעלה
      4. מנגנון ה-Garbage Collector דואג לסמן ולשחרר אובייקטים שאינם בשימוש
    11. כמה מקום אחסון צריך בשביל לשמור את כל הכרכים בספרייה הלאומית בגבעת רם בייצוג טקסטואלי חסכוני (שאלה מנחה: כמה ספרים יש בספרייה)?
      1. 1TB
      2. 100TB
      3. 1PB
      4. 100PB
    12. 16הביטים התחתונים של החלק השלם של המספר (&pi * 1 000 000 000 000) הם
      1. 1,337
      2. 82,191
      3. 51,240
      4. 40,725
    13. מה כתוב כאן — RW50c2NoZWlkdW5nc3Byb2JsZW0=
      1. תמליל של התעתשות
      2. קללה עסיסית ביידיש
      3. ג'יבריש משובח
      4. שם מדעי לשאלה "איך להחליט"
    14. כמה מספרים ראשוניים יש שהם קטנים מ-20002011?
      1. בערך 12,500
      2. בערך 125,000
      3. בערך 1.25 מיליון
      4. בערך 12.5 מיליון
    15. דפדפנים מודרניים לרוב מאפשרים –
      1. לגלוש באתרי Web
      2. להוריד קבצים ב-FTP
      3. להריץ אפלטים של ג'אוה
      4. כל התשובות נכונות
    16. כמה אותיות אנגליות יכול מחשב שולחני מודרני לשמור בזכרונו בכל רגע נתון (בלי להידרש לדיסק קשיח, ובלי שידרש זכרון למשימות אחרות)?
      1. בערך אלף?
      2. בערך מיליון
      3. בערך מיליארד
      4. בערך טריליון
    17. מה מעמיס על המעבד יותר?
      1. דחסית סרטים
      2. ניגון סרטים
      3. משחק המחשב DOOM2
      4. עריכת מסמך ב-Word
    18. Microsoft Outlook היא —
      1. תוכנת דואר אלקטרוני
      2. תוכנה מתחרה ל-Google Earth
      3. תוכנה לניהול לו"זים
      4. תשובות 1 ו-3 נכונות
    19. קניתי בחנות מוצר שנקרא DLINK DSL-2650U. מה קניתי?
      1. מודם DSL
      2. נתב
      3. Wireless Access Point
      4. כל התשובות נכונות
    20. אילו מפרוטוקולי VPN הבאים בשימוש במדינת ישראל לחיבור מנויים בבית לשירותי אינטרנט?
      1. PPPoE
      2. PPTP
      3. L2TP
      4. כל התשובות נכונות
    21. כאשר מחשבכם משתמש ב-PPPoE וב-PPTP כדי להתחבר לאינטרנט דרך התקן גישה (מודם ADSL או מודם כבלים), באילו רמות במחסנית ימצאו הפרוטוקולים הנ"ל?
      1. PPPoE הוא ברמה 3, PPTP ברמה 4
      2. שניהם ברמה 3
      3. PPPoE הוא ברמה 2, PPTP הוא ברמה 3
      4. PPPoE הוא ברמה 1, ו-PPTP ברמה 4
    22. Promiscuous mode בכרטיס הרשת יאפשר:
      1. לקבל כל מידע המתקבל, גם אם אינו יועד לתחנה עצמה.
      2. לקבל מסגרות מידע (Frames) ללא כל התערבות החומרה.
      3. אף תשובה אינה נכונה.
      4. לאפשר לחומת האש להתאים את עצמה טוב יותר לתצורת המחשב.
    23. האם ניתן לכתוב תוכנית מחשב שהפלט שלה יהיה שביעית ביצוג עשרוני ובדיוק מוחלט? (פלט התוכנית בעבר אינו חייב להישמר במחשב)
      1. אפשר
      2. אפשר, אבל יקח לה זמן ריצה אינסופי
      3. אי אפשר, גם בזמן ריצה אינסופי כי הזכרון סופי
      4. תלוי האם השערת רימן נכונה
    24. האם ניתן לכתוב תוכנית מחשב שהפלט שלה יהיה שורש 2 בייצוג עשרוני ובדיוק מוחלט?
      1. אפשר
      2. אפשר, אבל יקח לה זמן ריצה אינסופי
      3. אי אפשר, גם בזמן ריצה אינסופי כי הזכרון סופי
      4. תלוי האם השערת רימן נכונה
    25. מה תופס יותר מקום בזיכרון מחשב: האות 'א' ב-UTF-8 או המספר שליש בייצוג single precision?
      1. האות
      2. המספר
      3. אותו דבר
      4. תלוי בקצב השעון
    26. באיזו טכנולוגיה הגיוני לפתח את לוגיקת הלקוח של אפליקציית פייסבוק?
      1. C עם DirectX — למען הביצועים
      2. HTML/JavaScript — כי היא חייבת לרוץ בדפדפן
      3. .NET — כדי לתמוך במספר מערכות הפעלה בו-זמנית
      4. objective-C — כדי לתמוך גם בפייסבוק וגם ב-iPhone
    27. מה מהדרכים הבאות יאפשרו לחלק מספר בן 16 ביט במספר 8?
      1. AND עם הקבוע 7
      2. AND עם הקבוע 3
      3. Shift Right עם הקבוע 3
      4. Shift Right עם הקבוע 7
    28. כמה סיביות, לכל הפחות, צריך כדי להעביר ספרה עשרונית אחת?
      1. 16 סיביות
      2. 8 סיביות
      3. 5 סיביות
      4. 4 סיביות