לדלג לתוכן

3.3 - פוינטרים - תרגול

תרגול - פוינטרים, מערכים, מחרוזות ו-scanf

תרגול 1 - שימוש ב-scanf והצבה למשתנה

  1. כתבו תוכנה שמבקשת מהמשתמש להכניס מספר שלם.

  2. שמרו את המספר במשתנה מסוג int.

  3. הדפיסו את המספר באמצעות printf.

תרגול 2 - scanf עם כתובת

  1. אתחלו משתנה מסוג char.

  2. בקשו מהמשתמש להכניס תו, וקראו אותו בעזרת scanf.

  3. הדפיסו את ערך ה-ASCII של התו בעזרת %d.

תרגול 3 - מחרוזות ומצביעים (char*)

  1. אתחלו משתנה מסוג char* עם הערך "hello".

  2. הדפיסו את המחרוזת עם %s.

  3. הדפיסו את המצביע עצמו עם %p.

תרגול 4 - מערכים ו-scanf

  1. הגדירו מערך מסוג int בגודל 3.

  2. בקשו מהמשתמש להכניס 3 מספרים, כל אחד עם scanf.

  3. הדפיסו את כל שלושת המספרים.

תרגול 5 - קשר בין פוינטרים ומערכים

  1. הגדירו מערך מסוג int בגודל 3 והכניסו לתוכו ערכים ידנית (ללא scanf).

  2. אתחלו פוינטר מסוג int* שמצביע על המערך.

  3. הדפיסו את הערכים של המערך גם בעזרת הסינטקס arr[i] וגם בעזרת *(p + i) (ללא לולאה - שורה שורה).

תרגול 6 - scanf עם מחרוזות

  1. צרו מערך מסוג char בגודל 100.

  2. בקשו מהמשתמש להכניס מחרוזת אחת עם scanf.

  3. הדפיסו את המחרוזת.

טיפ: אין צורך ב-& כאשר עושים scanf למערך תווים, כי הוא כבר מצביע.

תרגול 7 - argv ו-argc

  1. כתבו תוכנית שמדפיסה את כמות הארגומנטים שהתקבלו (argc).

  2. הדפיסו את שם התוכנית (argv[0]) ואת הארגומנט הראשון שהוזן (אם קיים).

תרגול 8 - char** וניתוח מחרוזות

  1. כתבו תוכנית שמקבלת ארגומנט מ-argv[1] שהוא מחרוזת.

  2. אתחלו פוינטר מסוג char* שמצביע על argv[1].

  3. הדפיסו את התו הראשון, השני והשלישי מהמחרוזת.

בונוס: תרגול מסכם

  1. בקשו מהמשתמש להכניס שם (מחרוזת), גיל (int) ומספר אהוב (int).

  2. הדפיסו משפט:
    "שלום %s, אתה בן %d, והמספר האהוב עליך הוא %d"

  3. הסבר את הקוד אסמבלי שנוצרה מהתוכנה.