התוכנית בד"כ מקבלת אותו כפרמטר ל MAIN.להזכירך כדי לפתוח קובץ צריך לדעת באיזה מצב פותחים אותו : קריאה בלבד, כתיבה וקריאה וכו'.
התוכנית לא יכולה לנחש מה אתה צריך, אתה צריך לציין לה מפורשות.
פתיחת קובץ נעשת בעזרת הפונקציה fopen, אתה צריך לספק לה את שם הקובץ ובאיזה מצב אתה רוצה לפתוח אותו. אם הקובץ נמצא בתיקיה שונה מתיקיית ברירת המחדל אז צריך לתת גם את הנתיב של הקובץ.
איך fopen פותחת את הקובץ? לא נראה לי שאתה נדרש לדעת את זה. בדיוק כמו שאתה לא נדרש לדעת איך printf כותבת למסך.. התעמקת בזה פעם? 
אין שום בעיה לפתוח קובץ ב MAIN ולשלוח כפרמטר את הפוינטר FILE במקום את שם המחרוזת. זה כבר סמנטיקה. במקרה שלך הגדירו לך שהפונקציה מקבלת פרמטרים מסוימים - אתה לא יכול להחליט שאתה מתעלם מההוראות.
לשם השוואה, תחשוב שנתנו לך תרגיל בגאומטריה ואמרו לך שאורך צלע מסוימת היא 4, מנגד יכלו לתת משולש ישר זווית ו-2 צלעות אחרות ואתה היית צריך להגיע לבד עם פיתגורס לכך שאורך הצלע המבוקשת הוא 4 ומשם להמשיך במטלה. אתה עובד עם הנתונים שיש לך, אל תתוכח עם השאלה אם זה יעיל או חכם לפתור בעיה בדרך אליה מכוון מי שחיבר את השאלה.
לגבי שאלתך האחרונה.. f,s הם מטיפוס int בגלל שמשתמשים ב getc. פונקציה זו מחזירה int.
http://www.elook.org/programming/c/fgetc.html
חשוב מאוד שתזכור מה הפרמטרים הנדרשים לכל פונקצית ספריה שאתה משתמש בה, אך חשוב לא פחות שתזכור גם מה היא מחזירה אחרת אתה תקבל שגיאות קומפילציה.
אגב, אני חייב לציין שהשאלה מאוד לא ברורה. אם לא הייתה דוגמא בסוף השאלה אני הייתי מבין שצריך לבדוק את התנאי של השאלה לגבי שמות הקבצים עצמם ולא לגבי התוכן שלהם.
קאש-באק ישראלי: https://www.cashback.co.il/?uref=33330
קאשבק לAsos ואמזון דרך Ebates: https://goo.gl/MX87Y7 - מקבלים 10$ לאחר שימוש ראשון.