วันพฤหัสบดีที่ 15 กรกฎาคม พ.ศ. 2553

เฉลยวิชาการโปรแกรมคอมพิวเตอร์ 1 (การเขียนโปรแกรมภาษาซี)

เฉลยวิชาการโปรแกรมคอมพิวเตอร์ 1/การเขียนโปรแกรมภาษาซี
รหัสวิชา 3901-1002
หลักสูตรประกาศนียบัตรวิชาชีพชั้นสูง พุทธศักราช 2546


บทที่ 1 ระบบคอมพิวเตอร์
ตอนที่ 1 อธิบาย(หมายถึง การให้รายละเอียดเพิ่มเติม ขยายความ ถ้ามีตัวอย่างให้
ยกตัวอย่างประกอบ)
1. จงอธิบายถึงระบบคอมพิวเตอร์สามารถแบ่งออกได้เป็นกี่ส่วน และแต่ละส่วนคืออะไร
ตอบ 2 ส่วน คือ ส่วนของฮาร์ดแวร์และส่วนของซอฟต์แวร์
2. จงอธิบายถึงระบบคอมพิวเตอร์ในส่วนของฮาร์ดแวร์ว่ามีส่วนประกอบอะไรบ้าง
ตอบ 1. อุปกรณ์รับข้อมูล (Input device)
2. หน่วยประมวลผลกลาง (CPU : Central processing unit)
3. หน่วยความจำหลัก (Primary storage)
4. อุปกรณ์แสดงข้อมูล (Output device)
5. หน่วยความจำสำรอง (Auxiliary storage)
3. จงอธิบายถึงระบบคอมพิวเตอร์ในส่วนของซอฟต์แวร์ว่ามีลักษณะเป็นอย่างไร
ตอบ ซอฟต์แวร์ก็จะสามารถแบ่งออกได้เป็น 2 ประเภทคือ ซอฟต์แวร์ระบบ (System
Software) และซอฟต์แวร์ประยุกต์ (Application Software)
ซอฟต์แวร์ระบบ ทำหน้าที่ในการจัดการทรัพยากรของเครื่องคอมพิวเตอร์ และทำ
หน้าที่ติดต่อระหว่างฮาร์ดแวร์กับผู้ใช้ด้วย เช่น ระบบปฏิบัติการ
ซอฟต์แวร์ประยุกต์ เป็นซอฟต์แวร์สร้างขึ้นมาให้ผู้ใช้ทำงานต่างๆ เช่น พิมพ์งาน
วาดภาพ
4. จงอธิบายถึงลักษณะของคอมพิวเตอร์ว่าสามารถแบ่งออกได้เป็นกี่ประเภท และแต่ละ
ประเภทเป็นอย่างไร
ตอบ แบ่งเป็น 3 ประเภท ดังนี้
1. แบบคอมพิวเตอร์ส่วนบุคคลเป็นระบบคอมพิวเตอร์ที่มีเครื่องคอมพิวเตอร์เพียง
เครื่องเดียว และไม่ได้ทำการติดต่อกับเครื่องคอมพิวเตอร์เครื่องอื่น ๆ
2. แบบ Time-Sharing เป็นลักษณะที่มีเครื่องคอมพิวเตอร์หลายๆ เครื่องมา
ต่อกับเครื่องคอมพิวเตอร์ศูนย์กลาง ซึ่งคอมพิวเตอร์เหล่านั้นจะเรียกว่า Terminal ซึ่งการ
ทำงานของระบบคอมพิวเตอร์แบบนี้ คือ การประมวลผลที่อยู่ที่เครื่องคอมพิวเตอร์
ศูนย์กลางเพียงเครื่องเดียว และTerminal ทุกเครื่องจะส่งคำสั่งที่ต้องการมาประมวลผลที่
เครื่องศูนย์กลาง เพราะการประมวลผลของเครื่องคอมพิวเตอร์ศูนย์กลางจะต้องมีการแบ่ง
เวลาในการประมวลคำสั่งต่างๆ ที่ส่งมาจาก Terminal ทุกเครื่อง
3. แบบ Client/Server จะมีเครื่องคอมพิวเตอร์หนึ่งที่ทำหน้าเป็น Server ดูแลจัด
ทรัพยากรของระบบทั้งหมดและเครื่อง Clients ต่อเข้าเครื่อง Server และใช้ทรัพยากรต่าง ๆ
ที่เครื่อง Server มีอยู่ได้ ตามสิทธิของผู้ใช้แต่ละคน และการประมวลผลจะไม่ทำอยู่บน
เครื่อง Server แต่จะประมวลผล อยู่ที่เครื่อง Clients แต่ละเครื่องเอง แล้วอาจจะทำข้อมูล
ต่าง ๆ ที่ไปเก็บที่เครื่อง Server
5. จงอธิบายถึงขั้นตอนการพัฒนาโปรแกรมแบบ System Development Life Cycle มาอย่าง
เข้าใจ
ตอบ 1. หาความต้องการของระบบ (System Requirements) คือ การศึกษาและเก็บ
ความต้องการของผู้ใช้โปรแกรมว่ามีความต้องการอะไรบ้าง
2. วิเคราะห์ (Analysis) คือ การเอาความต้องการของผู้ใช้โปรแกรมมี วิเคราะห์
ว่าจะพัฒนาเป็นโปรแกรมตามที่ผู้ใช้ต้องการได้หรือไม่ถ้าทำได้จะทำได้มากน้อยเพียงใด
3. ออกแบบ (Design) เมื่อสรุปได้แล้วว่าโปรแกรมที่จะสร้างจะมีลักษณะเป็น
อย่างไร ขั้นต่อมา ก็คือ การออกแบบการทำงานงานของโปรแกรมให้เป็นไปที่ความต้องการ
ที่วิเคราะห์ไว้ ซึ่งการออกแบบอาจจะออกแบบเป็นผังงาน (Flowchart) ก็ได้
4. เขียนโปรแกรม (Code) เมื่อได้ผังงานแล้ว ต่อมาก็ทำงานเขียนโปรแกรมตาม
ผังงานที่ออกแบบไว้
5. ทดสอบ (System Test) เมื่อเขียนโปรแกรมเสร็จแล้ว จะต้องมีการทดสอบ
เพื่อหาข้อผิดพลาดต่างๆ เช่น ตรงตามที่ผู้ใช้ต้องการหรือไม่ และถ้าพบข้อผิดพลาดก็จะต้อง
กลับไปที่เริ่มที่การออกแบบอีกครั้ง
6. ดูแล (Maintenance) เมื่อโปรแกรมผ่านการทดสอบแล้ว และผู้ใช้ได้นำ
โปรแกรมดังกล่าวไปใช้ ผู้พัฒนาจะต้องคอยดูแล เพื่อว่าอาจจะมีข้อผิดพลาดทีหาไม่พบใน
ตอนการทดสอบ
ตอนที่ 2 อธิบายคำศัพท์(หมายถึง การแปลคำศัพท์ ขยายความ อธิบายเพิ่มเติมถ้ามี
ตัวอย่างให้ยกตัวอย่างประกอบ)
1. Computer System
ตอบ ระบบที่พัฒนามาจาก 2 ส่วนใหญ่ๆ คือ ฮาร์ดแวร์และซอฟต์แวร์ ฮาร์ดแวร์เป็น
ส่วนประกอบของคอมพิวเตอร์ที่สามารถจับต้องได้ส่วนซอฟต์แวร์เป็นโปรแกรมที่ทำงานอยู่
ในระบบคอมพิวเตอร์ซึ่งจะทำงานตามที่ผู้ใช้ได้กำหนดไว้
2. Hardwar
ตอบ ส่วนประกอบของคอมพิวเตอร์ที่สามารถจับต้องได้
3. Software
ตอบ โปรแกรมที่ทำงานอยู่ในระบบคอมพิวเตอร์ซึ่งจะทำงานตามที่ผู้ใช้ได้กำหนดไว้
4. Personal Computer
ตอบ เป็นระบบคอมพิวเตอร์ที่มีเครื่องคอมพิวเตอร์เพียงเครื่องเดียวและไม่ได้ทำการ
ติดต่อกับเครื่องคอมพิวเตอร์เครื่องอื่น ๆ
5. Time-sharing
ตอบ เป็นลักษณะที่มีเครื่องคอมพิวเตอร์หลาย ๆ เครื่องมาต่อกับเครื่องคอมพิวเตอร์
ศูนย์กลาง โดยคอมพิวเตอร์เหล่านั้นเรียกว่า Terminal การทำงานของระบบคอมพิวเตอร์
แบบนี้ คือ การประมวลผลที่อยู่ที่เครื่องคอมพิวเตอร์ศูนย์กลางเพียงเครื่องเดียว และ
Terminal ทุกเครื่องจะส่งคำสั่งที่ต้องการมาประมวลผลที่เครื่องคอมพิวเตอร์ศูนย์กลาง
เพราะการประมวลผลของเครื่องคอมพิวเตอร์ศูนย์กลางจะต้องมีการแบ่งเวลาในการ
ประมวลคำสั่งต่าง ๆ ที่ส่งมาจาก Terminal ทุกเครื่อง
6. Client/server
ตอบ เป็นเครื่องคอมพิวเตอร์เครื่องหนึ่งที่ทำหน้าเป็น Server ค่อยดูแลจัดทรัพยากรของ
ระบบทั้งหมด และมีเครื่อง Clients ต่อเข้าที่เครื่อง Server โดยใช้ทรัพยากรต่าง ๆ ที่เครื่อง
Server มีอยู่ ตามสิทธิของผู้ใช้แต่ล่ะคน และการประมวลผลจะไม่ทำอยู่บนเครื่อง Server
แต่จะประมวลผลที่เครื่อง Clients แต่ล่ะเครื่องเอง แล้วอาจจะส่งข้อมูลต่างๆ ที่ไปเก็บที่
เครื่อง Server
7. Computer Languages
ตอบภาษาที่ใช้สำหรับเขียนเพื่อสร้างเป็นโปรแกรมขึ้นมา เพื่อใช้งานบนเครื่องคอมพิวเตอร์
8. Computer
ตอบโปรแกรมที่ทำหน้าที่ในการแปลงภาษาระดับสูงให้เป็นเป็นภาษาเครื่อง
9. Loader
ตอบเป็นโปรแกรมที่ทำหน้าที่โหลดตัว Source Code ลงไปในหน่วยความจำ
10. System Development Life Cycle
ตอบเป็นขั้นตอนในการพัฒนาโปรแกรมหรือระบบขึ้นมาใช้งาน
บทที่ 2 โครงสร้างของภาษา C
ตอนที่ 1 อธิบาย(หมายถึง การให้รายละเอียดเพิ่มเติม ขยายความ ถ้ามีตัวอย่างให้
ยกตัวอย่างประกอบ)
1. จงอธิบายโครงสร้างในภาษา C ว่ามีส่วนใดบ้างและแต่ละส่วนมีรายละเอียดอย่างไร
ตอบ 1. เฮดเดอร์ไฟล์ (Header Files) เป็นส่วนที่เก็บไลบรารีมาตรฐานของภาษา C
ซึ่งจะถูกดึงเข้ามารวมกับโปรแกรมในขณะที่กำลังทำการคอมไพล์ โดยจะใช้คำสั่งซึ่งเฮด
เดอร์ไฟล์นี้จะมีส่วนขยายเป็น .h เสมอ และเฮดเดอร์ไฟล์เป็นส่วนที่จำเป็นต้องมีอย่างน้อย
1 เฮดเดอร์ไฟล์ ก็คือ เฮดเดอร์ไฟล์ stdio.h ซึ่งจะเป็นที่เก็บไลบราลีมาตรฐานที่จัดการ
เกี่ยวกับอินพุตและเอาท์พุต
2. ส่วนตัวแปรแบบ Global (Global Variables) เป็นส่วนที่ใช้ประกาศตัวแปร
หรือค่าต่างๆ ที่ ให้ใช้ได้ทั้งโปรแกรม ซึ่งในส่วนไม่จำเป็นต้องมีก็ได้
3. ฟังก์ชัน (Functions) เป็นส่วนที่เก็บคำสั่งต่างๆ ไว้ ซึ่งในภาษา C จะบังคับให้มี
ฟังก์ชันอย่างน้อย 1 ฟังก์ชัน นั้นก็คือ ฟังก์ชัน Main() และในโปรแกรม 1 โปรแกรมสามารถ
มีฟังก์ชันได้มากกว่า 1 ฟังก์ชัน
4. ส่วนตัวแปรแบบ Local (Local Variables) เป็นส่วนที่ใช้สำหรับประกาศตัว
แปรที่จะใช้ในเฉพาะฟังก์ชันของตนเอง ฟังก์ชันอื่นไม่สามารถเข้าถึงหรือใช้ได้ ซึ่งจะต้องทำ
การประกาศตัวแปรก่อนการใช้งานเสมอ และจะต้องประกาศไว้ในส่วนนี้เท่านั้น
5. ตัวโปรแกรม (Statements) เป็นส่วนที่อยู่ถัดลงมาจากส่วนตัวแปรภายใน ซึ่ง
จะประกอบไปด้วยคำสั่งต่างๆ ของภาษา C และคำสั่งต่างๆ จะใช้เครื่องหมาย ; เพื่อเป็น
การบอกให้รู้ว่าจบคำสั่งหนึ่งๆ แล้ว โดยส่วนใหญ่คำสั่งต่างๆ ของภาษา C เขียนด้วย
ตัวพิมพ์เล็ก เนื่องจากภาษา C จะแยกความแตกต่างของตัวพิมพ์เล็กและพิมพ์ใหญ่หรือ
Case Sensitive นั่นเอง ยกตัวอย่างใช้ Test, test หรือ TEST จะถือว่าเป็นตัวแปรคนละตัว
กัน นอกจากนี้ภาษา C ยังไม่สนใจกับการขึ้นบรรทัดใหม่ เพราะฉะนั้นผูใช้สามารถพิมพ์
คำสั่งหลายคำสั่งในบรรทัดเดียวกันได้ โดยมีเครื่องหมาย ; เป็นตัวจบคำสั่ง
6. ค่าส่งกลับ (Return Value) เป็นส่วนที่บอกให้รู้ว่า ฟังก์ชันนี้จะส่งค่าอะไร
กลับไปให้กับฟังก์ชันที่เรียกฟังก์ชันนี้ ซึ่งเรื่องนี้ผู้เขียนจะยกไปกล่าวในเรื่องฟังก์ชันอย่าง
ละเอียดอีกที่หนึ่ง
7. หมายเหตุ (Comment) เป็นส่วนที่ใช้สำหรับแสดงข้อความเพื่ออธิบายสิ่งที่
ต้องการในโปรแกรม ซึ่งจะใช้เครื่อง /* และ */ ปิดหัวและปิดท้ายของข้อความที่ต้องการ
2. จงยกตัวอย่างการตั้งชื่อของตัวแปรหรือฟังก์ชั่นที่ถูกต้องตามกฎเกณฑ์ของภาษา C มา 5
ตัวอย่าง
ตอบ sum, F_name, _SystemName, System__Name, SUM
3. ในภาษา C มีชนิดข้อมูลกี่แบบและแต่ละแบบมีลักษณะเป็นอย่างไร จงอธิบายมาอย่าง
ละเอียด
ตอบ 4 ประเภท ดังนี้
1. ชนิดข้อมูลแบบไม่มีค่า หรือ Void Type (void) ข้อมูลชนิดนี้ จะไม่มีค่า และ
จะไม่ใช้ในการกำหนดชนิดของตัวแปร แต่ส่วนใหญ่จะใช้เกี่ยวกับฟังก์ชัน ซึ่งจะขอยกไป
อธิบายในเรื่องฟังก์ชัน
2. ชนิดข้อมูลแบบจำนวนเต็ม หรือ Integer Type (int) เป็นชนิดข้อมูลที่เป็น
ตัวเลขจำนวนเต็มไม่มีทศนิยม ซึ่งภาษา C จะแบ่งข้อมูลชนิดนี้ออกได้เป็น 3 ระดับ คือ
short int, int และ long int ซึ่งแต่ละระดับนั้นจะมีขอบเขตที่แตกต่างกันในการใช้งาน ซึ่ง
แสดงที่ตารางด้านล่าง
3. ชนิดข้อมูลแบบตัวอักษร หรือ Character Type (char) ข้อมูลชนิดนี้ก็คือ
ตัวอักษรตั้งแต่ A-Z เลข 0-9 และสัญลักษณ์ต่างๆ ตามมาตรฐาน ASCII (American
Standard Code For Information Interchange) ซึ่งเมื่อกำหนดให้กับตัวแปรแล้ว ตัวแปร
ตัวนั้นจะรับค่าได้เพียง 1 ตัวอักษรเท่านั้น และสามารถรับข้อมูลจำนวนเต็มตั้งแต่ –128 ถึง
127 จะใช้ขนาดหน่วยความจำ 1 ไบต์หรือ 8 บิต
4. ชนิดข้อมูลแบบทศนิยม หรือ Floating Point Type (float) เป็นข้อมูลชนิด
ตัวเลขที่มีจุดทศนิยม ซึ่งสามารถแบ่งออกเป็น 3 ระดับ คือ float, double และ long double
แต่ละระดับนั้นจะมีขอบเขตที่แตกต่างกันในการใช้งาน ซึ่งแสดงที่ตารางด้านล่าง
4. จงอธิบายถึงการประกาศตัวแปรในภาษา C ว่าสามารถทำได้กี่แบบและแต่ละแบบนั้น
แตกต่างกันอย่างไร
ตอบ 2 แบบ คือ
1. แบบ Global
2. แบบ Local
ซึ่งตัวแปรแบบ Global นั้นจะสามารถเรียกใช้ได้ทุกฟังก์ชันของโปรแกรม แต่ตัวแปรแบบ
Local จะสามารถใช้ในเฉพาะฟังก์ชันที่ประกาศตัวแปรนั้น
5. การกำหนดชนิดข้อมูลแบบชั่วคราวทำอย่างไรและมีประโยชน์อะไร จงอธิบายอย่างละเอียด
ตอบ ทำได้ดังนี้ (ชนิดข้อมูลที่ต้องการ) ตัวแปร เช่น (float)x; ประโยชน์ไม่จำเป็นต้อง
ประกาศตัวแปรเป็นจำนวนมาก ทำให้เปลืองหน่วยความจำ
ตอนที่ 2 อธิบายคำศัพท์(หมายถึง การแปลคำศัพท์ ขยายความ อธิบายเพิ่มเติมถ้ามี
ตัวอย่างให้ยกตัวอย่างประกอบ)
1. Compiled Language
ตอบ ภาษาที่มีคอมไพลเลอร์ (Compiler) ทำหน้าที่ในการคอมไพล์ (Compile) หรือ
แปลงคำสั่งทั้งหมดในโปรแกรมให้เป็นภาษาเครื่อง (Machine Language) เพื่อให้เครื่อง
คอมพิวเตอร์นำคำสั่งเหล่านั้นไปทำงานต่อไป
2. Header Files
ตอบ ส่วนที่เก็บไลบรารีมาตรฐานของภาษา C ซึ่งจะถูกดึงเข้ามารวมกับโปรแกรมใน
ขณะที่กำลังทำการคอมไพล์
3. Global Variables
ตอบ ตัวแปรที่สามารถเรียกใช้ได้ทุกฟังก์ชันของโปรแกรม
4. Functions
ตอบ ส่วนที่เก็บคำสั่งต่างๆ ไว้ ซึ่งในภาษา C จะบังคับให้มีฟังก์ชันอย่างน้อย 1 ฟังก์ชัน
นั่นก็คือ ฟังก์ชัน Main() และในโปรแกรม 1 โปรแกรมสามารถมีฟังก์ชันได้มากกว่า 1 ฟังก์ชัน
5. Local Variables
ตอบ ตัวแปรที่จะสามารถเรียกใช้ได้เฉพาะฟังก์ชันที่ประกาศตัวแปรตัวนั้น
6. Return value
ตอบ เป็นส่วนที่บอกให้รู้ว่า ฟังก์ชันนี้จะมีการส่งค่าอะไรกลับไปให้กับฟังก์ชันที่เรียก
ฟังก์ชันนี้
7. Identifier
ตอบ เป็นกฎการตั้งชื่อของตัวแปรและฟังก์ชัน
8. Constants
ตอบ ชนิดข้อมูลแบบค่าคงที่ ผู้ใช้จะไม่สามารถเปลี่ยนแปลงค่าของตัวแปรตัวนั้น ในขณะ
ที่โปรแกรมทำงานอยู่
9. Statements
ตอบ คือ คำสั่งต่างๆ ที่ประกอบขึ้นจนเป็นตัวโปรแกรม
10. Flowchart
ตอบ คือ ผังงาน มีไว้เพื่อให้ผู้ใช้ออกแบบขั้นตอนการทำงานของโปรแกรมก่อนที่จะลงมือ
เขียนโปรแกรม ซึ่งจะช่วยให้ผู้ใช้เขียนโปรแกรมได้ง่ายขึ้นและไม่สับสน
บทที่ 3 การพิมพ์และการรับข้อมูล
ตอนที่ 1 อธิบาย(หมายถึง การให้รายละเอียดเพิ่มเติม ขยายความ ถ้ามีตัวอย่างให้
ยกตัวอย่างประกอบ)
1. จงยกตัวอย่างของ Standard Input File และ Standard Output File
ตอบ Standard Input File คือ Buffered และ Standard Output File คือ จอภาพ
2. จงอธิบายการทำงานของฟังก์ชั่น printf
ตอบ จะทำการแสดงข้อมูลที่อยู่ใน รูปแบบข้อความออกมา ถ้าตรงไหนมีตัวกำหนดชนิด
ข้อมูลอยู่ก็จะไปนำค่าที่อยู่ตัวแปรด้านหลังออกมาแสดงแทน
3. จงอธิบายการทำงานของฟังก์ชั่น scanf
ตอบ เมื่อถึงคำสั่งนี้โปรแกรมจะหยุดการทำงาน แล้วรอให้ผู้ใช้พิมพ์ข้อมูลลงไปซึ่งข้อมูล
จะถูกเก็บลงไปที่หน่วยความจำของตัวแปรตัวนั้นๆ
4. จงหาสิ่งที่ทำให้โปรแกรมต่อไปนี้ผิดพลาด
#include
int main (void)
{
printf (‘We are to learn correct’);
printf (‘C language here’);
return O;
}
ตอบ ในฟังก์ชันจะต้องใช้เครื่องหมาย ” ไม่ใช้ ‘’
5. จงหาสิ่งที่ทำให้โปรแกรมต่อไปนี้ผิดพลาด
Int main (void)
{
integer a;
floating-point b;
character c;
printf (‘The end of the program.’);
return O;
}
ตอบ การประกาศตัวแปรผิด เพราะจะต้องใช้คำของภาษา C เอง เช่น
Integer จะใช้ int
floating-point จะใช้ float
character จะใช้ char
ตอนที่ 2 อธิบายคำศัพท์(หมายถึง การแปลคำศัพท์ ขยายความ อธิบายเพิ่มเติมถ้ามี
ตัวอย่างให้ยกตัวอย่างประกอบ)
1. Standard Input File
ตอบ Buffered นั่นเอง ซึ่งจะทำหน้าที่ในการเก็บข้อมูลที่ได้รับจากคีย์บอร์ดไปเก็บไว้ โดย
เรียงลำดับกันเข้าไป
2. Standard Output File
ตอบ จอภาพ ซึ่งก็เหมือนกับคีย์บอร์ด ซึ่งจะเป็นเท็กซ์ไฟล์ เมื่อต้องการจะแสดงข้อมูลนั้น
จะทำการแปลงข้อมูลเป็นข้อความก่อนแล้วค่อยพิมพ์แสดงออกมา
3. printf
ตอบ เป็นคำสั่งที่ใช้สำหรับแสดงค่าต่างๆ ออกทางจอภาพ
4. Back-slash character
ตอบ ชุดค่าคงที่ของตัวอักษร ที่จะใช้ในการควบคุมการพิมพ์และแสดงเครื่องหมาย
บางอย่างที่ไม่สามารถพิมพ์เครื่องหมายนั้นตรงๆ
5. scanf
ตอบ คำสั่งในการรับข้อมูลจากผู้ใช้เข้ามาทางคีย์บอร์ด
6. getch
ตอบ โปรแกรมจะหยุดให้ผู้ใช้พิมพ์ข้อมูล 1 ตัวอักษร และเมื่อป้อนเสร็จแล้วไม่ต้องกดปุ่ม
Enter และเคอร์เซอร์จะไม่ขึ้นบรรทัดใหม่ และตัวอักษรที่พิมพ์ลงไปจะไม่แสดงออกทาง
จอภาพด้วย
7. getche
ตอบ เป็นฟังก์ชันที่ทำงานเหมือนกับฟังก์ชัน getch แต่จะแสดงตัวอักษรที่พิมพ์เข้าไป
ออกทางจอภาพด้วย
8. getchar
ตอบ โปรแกรมจะหยุดให้ผู้ใช้พิมพ์ข้อมูล 1 ตัวอักษร และเมื่อป้อนเสร็จแล้ว จะต้องกด
ปุ่ม Enter ด้วย และเคอร์เซอร์ก็จะขึ้นบรรทัดใหม่ ส่วนตัวอักษรที่พิมพ์ลงไปก็จะแสดงออก
ทางจอภาพด้วย
บทที่ 4 นิพจน์ทางคณิตศาสตร์
ตอนที่ 1 อธิบาย(หมายถึง การให้รายละเอียดเพิ่มเติม ขยายความ ถ้ามีตัวอย่างให้
ยกตัวอย่างประกอบ)
1. จงหาคำตอบของนิพจน์ต่อไปนี้
ก. 6.2 + 5.1 * 3.2
ข. 2.0 + 3.0 / 1.2
ค. 4.0 * (3.0 + 2.0 / 6.0)
ง. 6.0 / (2.0 + 4.0 / 1.2)
จ. 2.7 + 3.2 – 5.3 * 1.1
ตอบ
+ บวก
- ลบ
* คูณ
/ หาร
% หารเอาเศษหรือ Modulus
++ เพิ่มค่าครั้งละ 1
-- ลดค่าครั้งละ 1
2. ถ้า x = 2, y = 3 และ z = 2 จงหาคำตอบของนิพจน์ต่อไปนี้
ก. x++ + y++
ข. ++x - --z
ค. --x + y++
ง. x-- + x-- - y-
จ. x +y - --x + x++ - ++y
ตอบ การทำงานของ Compound Assignments ก็จะเหมือนการทำงานแบบ Simple
Assignments แต่การเขียนจะสั่นและง่ายกว่า
เช่น
x = x + y; ก็จะเขียนเป็นแบบ Compound Assignments ได้ x += y
3. ถ้า x = 2945 จงหาคำตอบของแต่ละนิพจน์
ก. x % 10
ข. x / 100
ค. x / 10
ง. (x / 100) % 10
จ. (x / 10) % 10
ตอบ ก. 22.5
ข. 4.5
ค. 13.333
ง. 0.882353
จ. 0.07
4.
ตอบ ก. 5
ข. 3
ค. 7
ง. 0
จ. 2
5.
ตอบ ก. 5
ข. 29
ค. 294
ง. 9
จ. 4
ตอนที่ 2 อธิบายคำศัพท์(หมายถึง การแปลคำศัพท์ ขยายความ อธิบายเพิ่มเติมถ้ามี
ตัวอย่างให้ยกตัวอย่างประกอบ)
1. Expressions
ตอบ นิพจน์
2. Operand
ตอบ ตัวถูกดำเนินการ
3. Operater
ตอบ ตัวดำเนินการ
4. Precedence
ตอบ ลำดับความสำคัญของตัวดำเนินการ
5. Simple Assignments
ตอบ การกำหนดค่าแบบง่าย
6. Compound Assignments
ตอบ การกำหนดค่าแบบผสม
บทที่ 5 ฟังก์ชั่นของภาษา C
ตอนที่ 1 อธิบาย(หมายถึง การให้รายละเอียดเพิ่มเติม ขยายความ ถ้ามีตัวอย่างให้
ยกตัวอย่างประกอบ)
1. การเขียนโปรแกรมในภาษา C สามารถเขียนได้กี่แบบและแต่ละแบบมีลักษณะเป็นอย่างไร
จงอธิบายมาอย่างละเอียด
ตอบ 2 แบบ
แบบที่ 1 เขียนเป็นโครงสร้าง หรือเป็นบรรทัดไปเรื่อย หรือทั้งโปรแกรมมีเพียงหนึ่ง
ฟังก์ชัน คือ ฟังก์ชัน main() ซึ่งการเขียนแบบนี้มีข้อดี คือ เหมาะสำหรับโปรแกรมที่สั่นๆ แต่
เมื่อนำไปใช้กับโปรแกรมที่มีขนาดยาว ถ้าในโปรแกรมมีชุดคำสั่งทีซ้ำกัน และการตรวจสอบ
หาข้อ ผิดพลาดนั้นทำได้ยาก เพราะจะต้องรันทั้งโปรแกรม
แบบที่ 2 คือเขียนแบบฟังก์ชัน เป็นการเขียนโปรแกรมโดยการแบ่งการทำงานของ
โปรแกรมออกเป็นฟังก์ชันย่อย แต่จะยังต้องมีฟังก์ชัน main() อยู่เหมือนเดิม แต่ฟังก์ชัน
main() นี้จะไปเรียกฟังก์ชันอื่นขึ้นมาทำงานต่อไป ซึ่งการเขียนแบบนี้จะมีข้อดี คือ การ
ทำงานของโปรแกรมนั้นตรวจสอบได้ง่าย เพราะสามารถรันเฉพาะฟังก์ชันได้ และทำให้ตัว
โปรแกรมนั้นสั้นลงในกรณีที่ชุดคำสั่งที่เหมือนกัน ซึ่งโปรแกรมเมอร์เกือบทั้งหมดจะนิยมเขียน
โปรแกรมในแบบนี้
2. การเขียนโปรแกรมแบบฟังก์ชั่นมีขั้นตอนอย่างไรบ้าง จงอธิบายมาอย่างละเอียด
ตอบ 1. ประกาศฟังก์ชันที่ต้องการ ไว้ในส่วนแรกของโปนแกรม
2. เรียกใช้ฟังก์ชันที่ประกาศไว้
3. กำหนดหรือสร้างรายละเอียดของฟังก์ชันนั้น
3. จงอธิบายถึงส่วนประกอบต่าง ๆ ของฟังก์ชั่นว่ามีกี่ส่วนและแต่ละส่วนมีรายละเอียด
อะไรบ้าง
ตอบ มี 2 ส่วน
1. ส่วนหัวของฟังก์ชันประกอบไปด้วย 3 ส่วนหลัก คือ ชนิดข้อมูลของค่าที่ส่งกลับ,
ชื่อฟังก์ชันและรายชื่อพารามิเตอร์ ซึ่งจะต้องมีการบอกชนิดข้อมูล เหมือนการประกาศตัว
แปร และสามารถมีได้หลายตัวโดยใช้เครื่อง , ขั้นระหว่างแต่ละพารามิเตอร์ ถ้าไม่ได้ใช้
Return Type ภาษา C จะถือว่าฟังก์ชันมีค่าที่ส่งกลับเป็นชนิดข้อมูลแบบ Integer แล้วใน
ส่วนรายละเอียดของฟังก์ชันจะต้องมี คำสั่ง Return ด้วยในบรรทัดที่ต้องการออกจาก
ฟังก์ชัน ซึ่งถ้าไม่ต้องการให้ฟังก์ชันนั้นต้องมีการส่งค่ากลับ ให้ใส่ Return Type เป็น Void
และไม่ต้องใส่คำสั่ง Return และในส่วนของรายชื่อพารามิเตอร์ ถ้าไม่ก็ไม่ต้องใส่ก็ได้ หรือใส่
เป็น Void ไว้
2. ส่วนรายละเอียดของฟังก์ชัน ประกอบด้วย การประกาศตัวแปรแบบ Local และ
ชุดคำสั่งต่างๆ ของฟังก์ชันนั้น เมื่อต้องการจบฟังก์ชัน ถ้ามีการใส่ Return Type ไว้ ก็ให้ส่ง
ค่ากลับตามชนิดของ Return Type ที่ใส่
4. การส่งค่าแบบกำหนดค่ามีลักษณะเป็นอย่างไร จงอธิบายอย่างละเอียด
ตอบ การส่งค่าในแบบนี้ เมื่อใดที่ทำการส่งค่า จะทำการคัดลอกข้อมูลไปให้กับ
พารามิเตอร์ในฟังก์ชันที่ถูกเรียก ซึ่งการส่งค่าแบบนี้จะไม่ทำให้ค่าเดิมถูกเปลี่ยนแปลง
5. การส่งค่าแบบอ้างอิงมีลักษณะอย่างไร จงอธิบายอย่างละเอียด
ตอบ การส่งค่าแบบนี้จะทำการเชื่อมระหว่าง ตัวแปรที่ประกาศในฟังก์ชันที่เรียก กับ
พารามิเตอร์ในฟังก์ชันที่ถูกเรียก เมื่อไรที่พารามิเตอร์ในฟังก์ชันที่ถูกเรียกมีการเปลี่ยนค่า ก็
จะทำให้ค่าในตัวแปรของฟังก์ชันที่เรียกเปลี่ยนตามไปด้วย
ตอนที่ 2 อธิบายคำศัพท์(หมายถึง การแปลคำศัพท์ ขยายความ อธิบายเพิ่มเติมถ้ามี
ตัวอย่างให้ยกตัวอย่างประกอบ)
1. Function
ตอบ เป็นตัวโปรแกรมส่วนหนึ่ง ที่นำไปเขียนแยกไว้ ถ้าจะใช้จะต้องมีการเรียกใช้ โดยใน
ฟังก์ชันจะมีพารามิเตอร์ที่ใช้รับค่าจากฟังก์ชันที่เรียกใช้ และอาจจะมีค่าที่ส่ง หรือ Return
Value
2. Function Header
ตอบ เป็นส่วนหัวของฟังก์ชัน ซึ่งประกอบไปด้วย 3 ส่วนหลัก คือ ชนิดข้อมูลของค่าที่
ส่งกลับ (Return Type), ชื่อฟังก์ชัน (Function Name) และรายชื่อพารามิเตอร์
3. Function Body
ตอบ คือส่วนที่ประกอบขึ้นเป็นฟังก์ชัน การประกาศตัวแปรแบบ Local และ ชุดคำสั่ง
ต่างๆ ของฟังก์ชันนั้น
4. Prototype Declarations
ตอบ เป็น การประกาศฟังก์ชัน โดยจะประกาศอยู่ตรงส่วนบนสุดของโปรแกรม หรือก่อน
ส่วนการประกาศตัวแปรแบบ Global
5. Function Call
ตอบ เป็นการเรียกใช้ฟังก์ชัน
6. Pass by Value
ตอบ การส่งค่าแบบกำหนดค่า
7. Pass by Reference
ตอบ การส่งค่าแบบอ้างอิง
8. abs
ตอบ ฟังก์ชันนี้ จะส่งค่ากลับเป็นค่า Absolute ของตัวเลขที่ส่งไปให้ค่า Absolute คือ ค่า
ทางบวกของค่านั้น โดยจะต้องมีการส่งพารามิเตอร์ที่มีชนิดข้อมูลเป็นตัวเลขจำนวนเต็มหรือ
Integer
9. ceil
ตอบ เป็นฟังก์ชันที่จะหาค่าจำนวนเต็มที่มากกว่าหรือเท่ากับค่าที่ส่งไปให้
10. floor
ตอบ เป็นฟังก์ชันที่จะหาค่าจำนวนเต็มที่น้อยกว่าหรือเท่ากับค่าที่ส่งไปให้
บทที่ 6 คำสั่งเงื่อนไข
ตอนที่ 1 อธิบาย(หมายถึง การให้รายละเอียดเพิ่มเติม ขยายความ ถ้ามีตัวอย่างให้
ยกตัวอย่างประกอบ)
1. จงอธิบายถึงข้อมูลทางตรรกะในภาษา C ว่าเป็นอย่างไร
ตอบ ในภาษา C นั้นจะไม่มีตัวแปรชนิดข้อมูลแบบตรรกะ แต่ภาษา C จะใช้ชนิดข้อมูล
อื่นแทน โดยจะใช้ชนิดข้อมูล int และ char แทน ถ้าข้อมูลเป็น 0 แสดงว่าเป็นเท็จ ถ้าข้อมูล
ไม่เป็น 0 แสดงว่าเป็นจริง
2. ถ้า x = -2, y = 5, z = 0 และ t = -4 จงหาคำตอบของนิพจน์ต่อไปนี้
ก. x +y < z + t
ข. x – 2 * y + y < z * 2 / 3
ค. 3 * y / 4 % 5 && y
ง. t ll z < (y + 5) && y
จ. ! (4 + 5 * y > = z – 4) && (z – 2)
ตอบ ก. จริง
ข. จริง
ค. จริง
ง. จริง
จ. จริง
3. ถ้าค่าเริ่มต้นของ x = 4, y = 0 และ z = 2 จงหาค่าของ x, y และ z หลังจากรันคำสั่ง
ดังต่อไปนี้แล้ว
if (x ! = 0)
y = 3;
else
z = 2;
ตอบ x = 4, y = 3, z = 2
4. ถ้าค่าเริ่มต้นของ x = 0, y = 0 และ z = 1 จงหาค่าของ x, y และ z หลังจากรันคำสั่ง
ดังต่อไปนี้แล้ว
if (z <> = z && z = = 1)
if (z && y)
y = 1;
else
x = 1;
ตอบ x = 0, y = 0, z = 1
5. ถ้าค่าเริ่มต้นของ x = 0, y = 0 และ z = 1 จงหาค่าของ x, y และ z หลังจากรันคำสั่ง
ดังต่อไปนี้แล้ว
switch (x)
{
case O: x = 2;
y = 3;
case 1: x = 4;
default: y = 3;
x = 1;
}
ตอบ x = 1, y = 3, z = 1
6. ถ้าค่าเริ่มต้นของ x = 1, y = 3 และ z = 0 จงหาค่าของ x, y และ z หลังจากรันคำสั่ง
ดังต่อไปนี้แล้ว
switch (x)
{
case O: x = 2;
y = 3;
case 1: x = 4;
break;
default: y = 3;
x = 1;
}
ตอบ x = 4, y = 3, z = 1
ตอนที่ 2 อธิบายคำศัพท์(หมายถึง การแปลคำศัพท์ ขยายความ อธิบายเพิ่มเติมถ้ามี
ตัวอย่างให้ยกตัวอย่างประกอบ)
1. Logical Data
ตอบ ข้อมูลทางตรรกะ
2. not
ตอบ คำสั่งที่เปลี่ยนค่าจากที่เป็นจริงให้เป็นเท็จ หรือกลับกัน หรือเปลี่ยนจาก 0 เป็น 1
3. and
ตอบ ใช้เชื่อม 2 เงื่อนไขหรือมากกว่า จะให้เป็นผลลัพธ์จริงเมื่อเงื่อนไขทั้งสองหรือทั้งหมด
เป็นจริง และจะให้เป็นเท็จ เมื่อมีอย่างน้อย 1 เงื่อนไขเป็นเท็จ
4. or
ตอบ ใช้เชื่อม 2 เงื่อนไขหรือมากกว่า จะให้เป็นผลลัพธ์จริง เมื่อมีอย่างน้อย 1 เงื่อนไข
เป็นจริง และจะให้เป็นเท็จ เมื่อเงื่อนไขทั้งสองหรือทั้งหมดเป็นเท็จ
5. if…else
ตอบ เป็นคำสั่ง 2 ทางเลือกอันหนึ่ง ซึ่งถ้าเงื่อนไขเป็นจริงจะทำคำสั่งหนึ่ง แต่ถ้าเงื่อนไข
เป็นเท็จจะไปทำอีกคำสั่งหนึ่ง
6. if
ตอบ เป็นคำสั่ง 2 ทางเลือกอันหนึ่ง ซึ่งถ้าเงื่อนไขเป็นจริงจะทำคำสั่งหนึ่ง แต่ถ้าเงื่อนไข
เท็จเป็นจะกระโดดออกจากชุดคำสั่ง if
7. Nested if
ตอบ เป็นคำสั่ง if…else ที่มีคำสั่ง if…else หรือคำสั่ง if ซ้อนอยู่ด้านในอีกทีหนึ่ง
8. Switch
ตอบ เป็นคำสั่งหลายทางเลือก ซึ่งเป็นคำสั่งที่แปลงมาจากคำสั่ง Nested if คำสั่งนี้จะมี
ตัวแปรหนึ่งตัวที่ใช้หาว่าจะไปทำที่คำสั่งไหนหรือ Case ไหน
9. Case
ตอบ เป็นส่วนหนึ่งของคำสั่ง Switch
10. else-if
ตอบ เป็นคำสั่งที่ใช้แทนคำสั่ง switch เนื่องจากตัวแปรที่ใช้ในคำสั่ง switch นั้นจะต้อง
เป็นชนิดข้อมูลที่เป็นจำนวนเต็มเท่านั้น แต่ถ้าเมื่อไรที่ต้องใช้ตัวแปรที่เป็นชนิดข้อมูลทศนิยม
ก็จะไม่สามารถใช้คำสั่ง switch ได้ แต่ภาษา C ก็ได้มีคำสั่งอีกคำสั่งหนึ่งที่เป็นคำสั่งหลาย
ทางเลือกและสามารถใช้ได้กับชนิดข้อมูลทุกประเภท คำสั่งนั้นก็คือ else-if ซึ่งชุดคำสั่ง
เหมือนกับคำสั่ง if…else แต่ต่างกันตรงที่ในคำสั่ง else ใช้ต่อด้วยคำสั่ง if ได้เลย
บทที่ 7 คำสั่งวนลูป
ตอนที่ 1 อธิบาย(หมายถึง การให้รายละเอียดเพิ่มเติม ขยายความ ถ้ามีตัวอย่างให้
ยกตัวอย่างประกอบ)
1. จงอธิบายการทำงานของลูปในแบบ Pretest Loop และ Post-test Loop
ตอบ 1. Pretest Loop ลูปประเภทนี้จะทำการตรวจสอบเงื่อนไขก่อนว่าเป็นจริง หรือเป็น
เท็จ ถ้าเป็นจริงก็ให้เข้าไปทำคำสั่งหรือชุดคำสั่งต่อไป และเมื่อทำคำสั่งหรือชุดคำสั่งเสร็จแล้ว
ก็จะกลับมาทำการตรวจสอบเงื่อนไขอีกครั้ง และจะทำเช่นนี้ไปเรื่อยๆ จนกว่าเงื่อนไขจะเป็น
เท็จ ก็จบการทำงานของลูป
2. Post-Test Loop ลูปประเภทนี้จะทำคำสั่งหรือชุดคำสั่งก่อน เมื่อเสร็จแล้วถึงจะ
มาตรวจสอบเงื่อนไขว่าเป็นจริงหรือเป็นเท็จ ถ้าเป็นจริงก็จะกลับไปทำคำสั่งหรือชุดคำสั่งเดิม
อีกครั้ง และจะทำจนกว่าเงื่อนไขจะเป็นเท็จเช่นเดียวกัน
2. จงอธิบายถึงการกระทำที่สำคัญ 2 อย่าง ที่ไม่ใช้สามารถจะขาดได้เลยในการใช้คำสั่งวนลูป
ตอบ 1. การกำหนดค่า ก่อนที่เริ่มใช้ลูป จะต้องมีการกำหนดค่าที่จะใช้เป็นตัวควบคุมลูป
ก่อน ซึ่งตัวควบคุมนี้จะทำหน้าที่ในการตรวจสอบว่าลูปนั้นได้ทำงานจนจบ ดังแสดงในรูปที่
7-3
2. การปรับปรุง หลังจากที่ทำคำสั่งหรือชุดคำสั่งไปแล้ว แล้วไม่มีการปรับปรุงค่า
ของตัวควบคุมลูป ก็จะทำให้ลูปนั้นกลายเป็นลูปไม่มีวันจบได้ เพราะฉะนั้นจะต้องการทำการ
ปรับปรุงค่าของตัวควบคุมลูปทุกครั้ง เพื่อจะได้นำค่าของตัวควบคุมไปตรวจสอบกับเงื่อนไข
เพื่อจบการทำงานของลูป
3. จงเขียนผลลัพธ์ของโปรแกรมต่อไปนี้
ก. for (x = 1; x <= 20; x++) ข. for (x = 20; x >= 1; x- -)
{ {
for (y = 1; y <= 5; y++) for (y = x; y >= 1; y- -)
printf (“%d”,x); printf (“%3d”,x);
printf(“\n”); printf(“\n”);
} }
ตอบ ก. 11111
22222
33333
44444
55555
66666
77777
88888
99999
1010101010
1111111111
1212121212
1313131313
1414141414
1515151515
1616161616
1717171717
1818181818
1919191919
2020202020
ข. 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19
18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17
16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16
15 15 15 15 15 15 15 15 15 15 15 15 15 15 15
14 14 14 14 14 14 14 14 14 14 14 14 14 14
13 13 13 13 13 13 13 13 13 13 13 13 13
12 12 12 12 12 12 12 12 12 12 12 12
11 11 11 11 11 11 11 11 11 11 11
10 10 10 10 10 10 10 10 10 10
9 9 9 9 9 9 9 9 9
8 8 8 8 8 8 8 8
7 7 7 7 7 7 7
6 6 6 6 6 6
5 5 5 5 5
4 4 4 4
3 3 3
2 2
1
4. จงเขียนผลลัพธ์ของโปรแกรมต่อไปนี้
ก. for (x = 1; x <= 20; x++) ข. for (x = 20; x >= 1; x- -)
{ {
for (y = 1; y <= 5; y++) for (y = x; y >= 1; y- -)
printf (“ ”); printf (“ ”);
printf(“%d\n”,x); printf(“%3d\n”,x);
} }
ตอบ ก. 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
ข. 20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
5. จงเขียนผลลัพธ์ของโปรแกรมต่อไปนี้
ก. for (x = 1; x < 100; x++)
printf(“%d\n”,x);
ข. for (; scanf (“%d”,&x)! = EOF;)
printf(“%d\n”,x);
ตอบ ก. x= 1;
while(x < 100)
{
printf(“%d\n”, x);
x++;
}
ข. scanf(“%d”, &x);
while(x != EOF)
{
printf(“%d\n”, x);
scanf(“%d”, &x);
}
ตอนที่ 2 อธิบายคำศัพท์(หมายถึง การแปลคำศัพท์ ขยายความ อธิบายเพิ่มเติมถ้ามี
ตัวอย่างให้ยกตัวอย่างประกอบ)
1. Loop
ตอบ การวนทำคำสั่งเดิมหลายๆ ครั้ง
2. Pretest
ตอบ ลูปประเภทนี้จะทำการตรวจสอบเงื่อนไขก่อนว่าเป็นจริง หรือเป็นเท็จ ถ้าเป็นจริงก็
ให้เข้าไปทำคำสั่งหรือชุดคำสั่งต่อไป และเมื่อทำคำสั่งหรือชุดคำสั่งเสร็จแล้วก็จะกลับมาทำ
การตรวจสอบเงื่อนไขอีกครั้ง และจะทำเช่นนี้ไปเรื่อยๆ จนกว่าเงื่อนไขจะเป็นเท็จ ก็จบการ
ทำงานของลูป
3. Post-Test
ตอบ ลูปประเภทนี้จะทำคำสั่งหรือชุดคำสั่งก่อน เมื่อเสร็จแล้วถึงจะมาตรวจสอบเงื่อนไข
ว่าเป็นจริงหรือเป็นเท็จ ถ้าเป็นจริงก็จะกลับไปทำคำสั่งหรือชุดคำสั่งเดิมอีกครั้ง และจะทำ
จนกว่าเงื่อนไขจะเป็นเท็จเช่นเดียวกัน
4. While
ตอบ ลูป while นี้ใช้เงื่อนไขเป็นตัวควบคุมลูป และเป็นลูปแบบ Pretest Loop ซึ่งจะทำ
การตรวจสอบเงื่อนไขก่อนที่จะเข้าไปทำคำสั่งในลูป
5. for
ตอบ คำสั่ง for นั้นจะเป็นลูปแบบ Pretest Loop ที่ใช้นิพจน์ 3 นิพจน์ นิพจน์แรกเป็นการ
กำหนดค่า นิพจน์ที่ 2 เป็นเงื่อนไขในการตรวจสอบตัวควบคุมลูป และส่วนที่ 3 เป็นการ
ปรับปรุงค่าของตัวควบคุมลูป
6. do…while
ตอบ คำสั่ง do…while เป็นลูปแบบ Post-Test Loop ลูปแบบนี้จะมีคำสั่งก่อนที่จะไปทำ
การตรวจสอบตัวควบคุมลูป
7. Break
ตอบ เป็นคำสั่งในการกระโดดออกจากชุดคำสั่ง Switch และมันก็สามารถนำมาใช้ใน
คำสั่งวนลูปได้เหมือนกัน เพื่อใช้กระโดดออกจากลูปในกรณีต่างได้
8. Continue
ตอบ คำสั่งนี้จะไม่ได้กระโดดออกจากลูปเลย แต่จะกระโดดคำสั่งอื่นๆ ในลูปไปทำการ
ตรวจสอบตามนิพจน์เลย
บทที่ 8 อาร์เรย์
ตอนที่ 1 อธิบาย(หมายถึง การให้รายละเอียดเพิ่มเติม ขยายความ ถ้ามีตัวอย่างให้
ยกตัวอย่างประกอบ)
1. จงอธิบายถึงการประกาศตัวแปรอาร์เรย์ว่ามีวิธีการประกาศอย่างไร
ตอบ การประกาศอาร์เรย์มีรูปแบบชนิดข้อมูล ชื่ออาร์เรย์ [จำนวน Element]
เช่น int number[10]
2. จงอธิบายวิธีการเข้าถึงแต่ละ Element ของอาร์เรย์ว่ามีวิธีการอย่างไร
ตอบ ทำได้โดยการอ้างชื่อแล้วตามด้วยลำดับของ Element ที่ต้องการ เช่น ถ้าต้องการ
เข้าอาร์เรย์ที่ชื่อ number ใน Element ที่ 0 ให้เขียนดังนี้ number[0]
3. การกำหนดค่าเริ่มต้นให้กับอาร์เรย์มีกี่แบบและแต่ละแบบมีวิธีอย่างไร
ตอบ มี 4 แบบ ดังนี้
1. Basic Initialization เป็นการประกาศและกำหนดลักษณะ พร้อมทั้ง
กำหนดค่าเริ่มต้นให้กับอาร์เรย์เลย จะกำหนดว่ามีจำนวน Element กี่ Element พร้อม
กำหนดค่าให้แต่ละ Element เลย
2. Initialization Without Size เป็นการประกาศและกำหนดลักษณะ พร้อมทั้ง
กำหนดค่าเริ่มต้นให้กับอาร์เรย์ แต่ไม่กำหนดว่าจำนวน Element ใดเท่าไร แต่จะกำหนดค่า
ให้ไปเลย แล้วตัวคอมไพเลอร์จะกำหนดจำนวนของ Element ตามจำนวนค่าที่กำหนดให้
3. Partial Initialization เป็นการประกาศและกำหนดลักษณะ พร้อมทั้ง
กำหนดค่าเริ่มต้นให้กับอาร์เรย์ โดยกำหนดเลยว่ามีจำนวน Element กี่ Element แต่จะ
กำหนดค่าให้ไม่ครบตามจำนวนของ Element ฉะนั้น Element ที่เหลือจะมีค่าเป็น 0
4. Initialization to All Zero เป็นการประกาศและกำหนดลักษณะ พร้อมทั้ง
กำหนดค่าเริ่มต้นให้กับอาร์เรย์ โดยกำหนดเลยว่ามีจำนวน Element กี่ Element แต่ค่าที่
กำหนดให้ มีเลข 0 เพียงตัวเดียว ตัวคอมไพเลอร์จะกำหนดให้ Element ทุกตัวมีค่าเป็น 0
ทั้งหมด
4. จงอธิบายถึงการส่งค่าของอาร์เรย์ 1 มิติไปให้กับฟังก์ชั่นมาอย่างเข้าใจ
ตอบ สามารถทำได้ 2 แบบ คือ
1. การส่งค่าแบบ Element เดียว (Passing Individual Elements)
2. การส่งค่าแบบทั้งอาร์เรย์ (Passing The Whole Array)
5. จงอธิบายถึงการส่งค่าของอาร์เรย์ 2 มิติไปให้กับฟังก์ชั่นมาอย่างเข้าใจ
ตอบ สามารถทำได้ 3 แบบ ดังนี้
1. การส่งค่าแบบ Element เดียว (Passing Individual Elements) ซึ่งมีการกระทำ
เหมือนกับอาร์เรย์ 1 มิติ คือ ให้ลูปวนส่งค่าไปที่ละ Element
2. การส่งค่าที่แถว (Passing a Row) เป็นการส่งค่าทั้งแถว โดยการใช้ลำดับของ
แถวเป็นตัวส่งไป ซึ่งพารามิเตอร์ที่รับจะเป็นอาร์เรย์ 1 มิตินั้น ในฟังก์ชันที่ถูกเรียงก็จะใช้ลูป
for เพียง 1 ลูปในการทำงานเหมือนกับการส่งอาร์เรย์ 1 มิติมาให้
3. การส่งค่าแบบทั้งอาร์เรย์ (Passing The Whole Array) เมื่อผู้ใช้ต้องการส่งค่า
อาร์เรย์ 2 มิติไปให้กับฟังก์ชันอื่น จะใช้ชื่อของอาร์เรย์เป็นพารามิเตอร์ที่ส่งไปให้ เหมือนกับ
อาร์เรย์ 1 มิติซึ่งฟังก์ชันที่ถูกเรียกใช้จะต้องมีการประกาศพารามิเตอร์ที่เป็นอาร์เรย์ 2 มิติ
ตอนที่ 2 อธิบายคำศัพท์(หมายถึง การแปลคำศัพท์ ขยายความ อธิบายเพิ่มเติมถ้ามี
ตัวอย่างให้ยกตัวอย่างประกอบ)
1. Element
ตอบ สมาชิกของอาร์เรย์
2. Basic Initialization
ตอบ เป็นการประกาศและกำหนดลักษณะ พร้อมทั้งกำหนดค่าเริ่มต้นให้กับอาร์เรย์เลย
จะกำหนดว่ามีจำนวน Element กี่ Element พร้อมกำหนดค่าให้แต่ละ Element เลย
3. Initialization Without Size
ตอบ เป็นการประกาศและกำหนดลักษณะ พร้อมทั้งกำหนดค่าเริ่มต้นให้กับอาร์เรย์ แต่
ไม่กำหนดว่าจำนวน Element ใดเท่าไร แต่จะกำหนดค่าให้ไปเลย แล้วตัวคอมไพเลอร์จะ
กำหนดจำนวนของ Element ตามจำนวนค่าที่กำหนดให้
4. Partial Initialization
ตอบ เป็นการประกาศและกำหนดลักษณะ พร้อมทั้งกำหนดค่าเริ่มต้นให้กับอาร์เรย์ โดย
กำหนดเลยว่ามีจำนวน Element กี่ Element แต่จะกำหนดค่าให้ไม่ครบตามจำนวนของ
Element ฉะนั้น Element ที่เหลือจะมีค่าเป็น 0
5. Initialization to All Zero
ตอบ เป็นการประกาศและกำหนดลักษณะ พร้อมทั้งกำหนดค่าเริ่มต้นให้กับอาร์เรย์ โดย
กำหนดเลยว่ามีจำนวน Element กี่ Element แต่ค่าที่กำหนดให้ มีเลข 0 เพียงตัวเดียว ตัว
คอมไพเลอร์จะกำหนดให้ Element ทุกตัวมีค่าเป็น 0 ทั้งหมด
6. Passing Individual Elements
ตอบ การส่งค่าแบบ Element เดียว ซึ่งมีการกระทำเหมือนกับอาร์เรย์ 1 มิติ คือ ให้ลูปวน
ส่งค่าไปที่ละ Element
7. Passing The Whole Array
ตอบ การส่งค่าแบบทั้งอาร์เรย์ เมื่อผู้ใช้ต้องการส่งค่าอาร์เรย์ 2 มิติไปให้กับฟังก์ชันอื่น จะ
ใช้ชื่อของอาร์เรย์เป็นพารามิเตอร์ที่ส่งไปให้ เหมือนกับอาร์เรย์ 1 มิติซึ่งฟังก์ชันที่ถูกเรียกใช้
จะต้องมีการประกาศพารามิเตอร์ที่เป็นอาร์เรย์ 2 มิติ
8. Passing a Row
ตอบ การส่งค่าที่แถว เป็นการส่งค่าทั้งแถว โดยการใช้ลำดับของแถวเป็นตัวส่งไป ซึ่ง
พารามิเตอร์ที่รับจะเป็นอาร์เรย์ 1 มิตินั้น ในฟังก์ชันที่ถูกเรียงก็จะใช้ลูป for เพียง 1 ลูปใน
การทำงานเหมือนกับการส่งอาร์เรย์ 1 มิติมาให้
บทที่ 9 พอยเตอร์
ตอนที่ 1 อธิบาย(หมายถึง การให้รายละเอียดเพิ่มเติม ขยายความ ถ้ามีตัวอย่างให้
ยกตัวอย่างประกอบ)
1. จงอธิบายความหมายของพอยเตอร์มาอย่างเข้าใจ
ตอบ พอยเตอร์คือ ต้นฉบับของชนิดข้อมูล คือ ชนิดข้อมูลที่สร้างจากข้อมูลมาตรฐาน
ชนิดหนึ่ง ค่าของมันก็คือ ตำแหน่ง (Address) ที่อยู่ในหน่วยความจำของคอมพิวเตอร์ ซึ่งจะ
ใช้สำหรับกำหนดค่า หรือเข้าถึงข้อมูล พอยเตอร์นั้นสร้างจากแนวความคิดพื้นฐานของ
Pointer Constants
2. จงอธิบายความหมายของ Pointer Values มาอย่างเข้าใจ
ตอบ ค่าตำแหน่ง Address ของตัวแปรนั้น ถ้าต้องการค่าของ Address ของตำแหน่ง
ของตัวแปรใด หรือจะกำหนดค่าที่รับเข้ามาทางคีย์บอร์ดให้ไปเก็บไว้ที่ตัวแปรนั้น จะต้องใช้
เครื่องหมาย Address หรือ &
4. จงอธิบายว่าการใช้พอยเตอร์กับฟังก์ชั่นมีกี่แบบและแต่ละแบบทำได้อย่างไร
ตอบ เมื่อไรที่ผู้ใช้ต้องการพอยเตอร์ และต้องการที่เข้าค่าที่พอยเตอร์ตัวนั้นชี้อยู่ จะต้องใช้
ตัวดำเนินการ Indirection หรือ * การใช้พอยเตอร์มี 2 แบบ คือ
1. การใช้พอยเตอร์เป็นพารามิเตอร์
2. ฟังก์ชันที่มีการส่งค่ากลับเป็นพอยเตอร์
ตอนที่ 2 อธิบายคำศัพท์(หมายถึง การแปลคำศัพท์ ขยายความ อธิบายเพิ่มเติมถ้ามี
ตัวอย่างให้ยกตัวอย่างประกอบ)
1. Pointer
ตอบ ต้นฉบับของชนิดข้อมูล เป็นชนิดข้อมูลที่สร้างจากข้อมูลมาตรฐานชนิดหนึ่ง ค่าของ
มันก็คือตำแหน่ง (Address) ที่อยู่ในหน่วยความจำของคอมพิวเตอร์ ซึ่งจะใช้สำหรับ
กำหนดค่าหรือเข้าถึงข้อมูล พอยเตอร์นั้นสร้างจากแนวความคิดพื้นฐานของ Pointer
Constants
2. Address
ตอบ เป็นตำแหน่งหน่วยความจำที่ใช้เก็บข้อมูล
3. Pointer Values
ตอบ คือ ค่าตำแหน่ง Address ของตัวแปรนั้น ถ้าต้องการค่าของ Address ของตำแหน่ง
ของตัวแปรใด หรือจะกำหนดค่าที่รับเข้ามาทางคีย์บอร์ดให้ไปเก็บไว้ที่ตัวแปรนั้น จะต้องใช้
เครื่องหมาย Address หรือ &
4. Pointer Variable
ตอบ ตัวแปรที่มีลักษณะเป็นพอยเตอร์
5. Indirection
ตอบ เป็นการประกาศและกำหนดลักษณะ พร้อมทั้งกำหนดค่าเริ่มต้นให้กับอาร์เรย์ โดย
กำหนดเลยว่ามีจำนวน Element กี่ Element แต่ค่าที่กำหนดให้ มีเลข 0 เพียงตัวเดียว ตัว
คอมไพเลอร์จะกำหนดให้ Element ทุกตัวมีค่าเป็น 0 ทั้งหมด
6. Pointers To Pointers
ตอบ การใช้พอยเตอร์ตัวหนึ่งชี้ไปยังพอยเตอร์อีกตัวหนึ่ง ซึ่งพอยเตอร์นั้นชี้ไปยังตัวแปร
7. Pointer as Formal Parameters
ตอบ การใช้พอยเตอร์เป็นพารามิเตอร์
8. Functions Returning Paramenters
ตอบ ฟังก์ชันที่มีการส่งค่ากลับเป็นพอยเตอร์
บทที่ 10 สตริง
ตอนที่ 1 อธิบาย(หมายถึง การให้รายละเอียดเพิ่มเติม ขยายความ ถ้ามีตัวอย่างให้
ยกตัวอย่างประกอบ)
1. จงอธิบายความหมายของสตริงมาอย่างเข้าใจ
ตอบ พอยเตอร์คือต้นฉบับของชนิดข้อมูล มันคือชนิดข้อมูลที่สร้างจากข้อมูลมาตรฐาน
ชนิดหนึ่ง ค่าของมันก็คือตำแหน่ง (Address) ที่อยู่ในหน่วยความจำของคอมพิวเตอร์ ซึ่งจะ
ใช้สำหรับกำหนดค่าหรือเข้าถึงข้อมูล พอยเตอร์นั้นสร้างจากแนวความคิดพื้นฐานของ
Pointer Constants
2. จงอธิบายถึงการเก็บข้อมูลสตริงในหน่วยความจำว่ามีการจัดเก็บอย่างไร
ตอบ ในการเก็บข้อมูลของสตริงนั้น จะมีการเก็บข้อมูลอยู่ 2 ส่วน ส่วนแรกจะเป็นข้อมูล
ตัวอักษรเรียงกันไป และส่วนที่ 2 จะเก็บจุดสิ้นสุดของสตริง ซึ่งจุดสิ้นสุดของสตริงจะใช้ Null
Character หรือ ‘\0’
3. จงอธิบายถึงความแตกต่างระหว่างสตริงกับอาร์เรย์ว่ามีความแตกต่างกันอย่างไรบ้าง
ตอบ ข้อมูลชนิดตัวอักษรต้องการหน่วยความจำเพียง 1 ส่วน ส่วนข้อมูลชนิดสตริง
ตัวอักษร 1 ตัว ต้องการหน่วยความจำ 2 ส่วน ส่วนแรกใช้เก็บข้อมูล และส่วนที่สองใช้เก็บ
จุดสิ้นสุดของสตริง
4. จงอธิบายถึงการประกาศสตริงเพื่อใช้งานว่ามีข้อควรคำนึงอะไรบ้าง
ตอบ จะต้องมีพื้นที่อีก 1 ไบต์ ในการใช้เก็บจุดสิ้นสุดของสตริงด้วย เพราะภาษา C จะ
ข้อบังคับอยู่ว่า ไบต์สุดท้ายจะเป็นส่วนที่เก็บจุดสิ้นสุดของสตริงเสมอ เช่น ผู้ใช้มีข้อมูลขนาด
10 ไบต์หรือ 10 ตัวอักษร ผู้ใช้จะต้องกำหนดขนาดของตัวแปรสตริงตัวนั้นเป็น 11 ไบต์
ตอนที่ 2 อธิบายคำศัพท์(หมายถึง การแปลคำศัพท์ ขยายความ อธิบายเพิ่มเติมถ้ามี
ตัวอย่างให้ยกตัวอย่างประกอบ)
1. String
ตอบอาร์เรย์ของตัวอักษร ที่มีข้อมูลชนิดตัวอักษรเรียงกันไป แต่จะต้องมีจุดสิ้นสุดด้วย โดยจะใช้
ตัวอักษรวางหรือ Null Character เป็นจุดสิ้นสุดของสตริง
2. Null Character
ตอบตัวอักษรวาง
3. strlen
ตอบ เป็นฟังก์ชันที่ส่งค่ากลับเป็นจำนวนความยาวของสตริงที่ส่งไปให้ โดยจะรวม
จุดสิ้นสุดของสตริงหรือ Null Character ด้วย ถ้าเป็นสตริงว่างจะส่งค่ากลับเป็น 0
4. strcpy
ตอบ เป็นฟังก์ชันในการคัดลอกสตริงพื้นฐาน การทำงาน คือ จะทำการคัดลอกสตริงต้น
ทางหมด ซึ่งจะรวมไปถึง Null Character ด้วย ไปใส่ในสตริงปลายทาง
5. strncpy
ตอบ เป็นฟังก์ชันในการคัดลอกสตริงที่จะสามารถแก้ไขปัญหาของฟังก์ชัน strcpy ได้
เนื่องจากฟังก์ชันนี้ ผู้ใช้สามารถกำหนดความยาวในการคัดลอกได้
6. strcmp
ตอบ ฟังก์ชันที่ทำการเปรียบเทียบสตริง
7. strncmp
ตอบ ฟังก์ชันที่ทำการเปรียบเทียบสตริงแต่จะกำหนดความยาวในการเปรียบเทียบได้
8. strcat
ตอบ ฟังก์ชันที่ใช้ในการต่อสตริง
บทที่ 11 ข้อมูลแบบโครงสร้างและยูเนียน
ตอนที่ 1 อธิบาย(หมายถึง การให้รายละเอียดเพิ่มเติม ขยายความ ถ้ามีตัวอย่างให้
ยกตัวอย่างประกอบ)
1. จงอธิบายความหมายของข้อมูลแบบโครงสร้างพร้อมทั้งยกตัวอย่างประกอบด้วย
ตอบ การรวมตัวแปรหรือ Element ที่มีชนิดข้อมูลหลายแบบมารวมกันให้เป็นโครงสร้าง
เดียวกัน แล้วโครงสร้างนั้นก็จะมีชื่อประจำตัวของโครงสร้างนั้นด้วย แต่ละตัวแปรหรือ
Element ในโครงสร้าง จะเรียกว่าฟิลด์ ซึ่งในหนึ่งโครงสร้างนั้นสามารถมีตัวแปรหรือสมาชิก
ได้ไม่จำกัด และแต่ละฟิลด์จะใช้หน่วยความจำของใครของมัน
2. จงอธิบายถึงการเข้าถึงสมาชิกของโครงสร้างว่าสามารถทำได้อย่างไรบ้าง
ตอบ ทำได้ 3 แบบ
แบบที่ 1 Dot notation ใช้จุด เช่น ชื่อโครงสร้าง . ชื่อสมาชิก
แบบที่ 2 Indirection notation ใช้พอยเตอร์ เช่น (*ชื่อพอยเตอร์) . ชื่อสมาชิก
แบบที่ 3 Selection notation ใช้พอยเตอร์เหมือนแบบที่ 2 แต่จะใช้เครื่องหมาย
select แทน เช่น ชื่อพอยเตอร์ -> ชื่อสมาชิก
3. จงอธิบายความหมายของข้อมูลแบบยูเนียนพร้อมทั้งยกตัวอย่างประกอบด้วย
ตอบ ข้อมูลแบบยูเนียนเป็นข้อมูลที่มีลักษณะคล้ายกับข้อมูลแบบโครงสร้าง แต่ตัวแปร
หรือสมาชิกต่างในยูเนียนนั้น จะใช้หน่วยความจำเดียวที่เดียวกัน คือจะมีตัวแปรหรือสมาชิก
ใดสมาชิกหนึ่งเท่านั้นที่ใช้หน่วยความจำในช่วงนเวลานั้น
typedef union
{
short num;
char chAry[2];
} SH_CH2;
SH_CH2 data;
4. จงอธิบายถึงการเข้าถึงสมาชิกของยูเนียนว่าสามารถทำได้อย่างไรบ้าง
ตอบ ทำได้เหมือนกับข้อมูลแบบโครงสร้าง
ตอนที่ 2 อธิบายคำศัพท์(หมายถึง การแปลคำศัพท์ ขยายความ อธิบายเพิ่มเติมถ้ามี
ตัวอย่างให้ยกตัวอย่างประกอบ)
1. Typedef
ตอบ เป็นคำสั่งในการสร้างชนิดข้อมูลชนิดใหม่ จากชนิดข้อมูลพื้นฐาน
2. Structure
ตอบ การรวมตัวแปร ที่มีชนิดข้อมูลหลายแบบมารวมกันให้เป็นโครงสร้างเดียวกัน แล้ว
โครงสร้างนั้นก็จะมีชื่อประจำตัวของโครงสร้างนั้นด้วย แต่ละตัวแปรในโครงสร้าง จะเรียกว่า
สมาชิก ซึ่งในหนึ่งโครงสร้างนั้นสามารถมีตัวแปรหรือสมาชิกได้ไม่จำกัด และแต่ละสมาชิก
จะมีหน่วยความจำของตัวเอง
3. Indirection
ตอบ การเข้าสมาชิกในโครงสร้างที่ใช้เครื่องหมาย .
4. Selection
ตอบ การเข้าสมาชิกในโครงสร้างที่ใช้เครื่องหมาย ->
5. Union
ตอบ เป็นข้อมูลที่มีลักษณะคล้ายกับข้อมูลแบบโครงสร้าง แต่ตัวแปรหรือสมาชิกต่าง ๆ
ในยูเนียนนั้น จะใช้หน่วยความจำเดียวที่เดียวกัน คือจะมีตัวแปรหรือสมาชิกใดสมาชิกหนึ่ง
เท่านั้นที่ใช้หน่วยความจำในช่วงเวลานั้น
บทที่ 12 ไฟล์
ตอนที่ 1 อธิบาย(หมายถึง การให้รายละเอียดเพิ่มเติม ขยายความ ถ้ามีตัวอย่างให้
ยกตัวอย่างประกอบ)
1. จงอธิบายความหมายของไฟล์และไฟล์มีกี่ประเภทและแต่ละประเภทเป็นอย่างไร
ตอบ ไฟล์(File) ก็คือที่เก็บข้อมูลต่างๆ ของคอมพิวเตอร์ และในภาษา C นั้น ไฟล์ก็จะมี
ความหมายรวมไปถึงอุปกรณ์ต่างที่ต่อกับเครื่องคอมพิวเตอร์ด้วย เช่น คีย์บอร์ด จอภาพ
มี 2 ประเภท
1. Text files
จะเป็นไฟล์ของตัวอักษร เพราะมันที่โครงสร้างในการเก็บข้อมูลเป็นตัวอักษร มันจึงไม่
สามารถที่จะเก็บข้อมูลที่ค่าคัวเลขจำนวนเต็ม จุดทศนินม หรือในลักษณะที่เป็นโครงสร้าง ซึ่ง
ในการเก็บข้อมูลจะถูกแปลงเป็นเลขฐานสองตามรหัส ASCII
2. Binary Files
จะเป็นไฟล์ที่เก็บข้อมูลที่อยู่รูปแบบของคอมพิวเตอร์ ซึ่งประกาศไว้ ซึ่งข้อมูลที่ไฟล์ประเภทนี้
จัดเก็บ จะสามารถเป็นได้ทั้งตัวเลขจำนวนเต็ม ตัวเลขทศนิยม ตัวอักษร อาร์เรย์ และข้อมูล
แบบโครงสร้าง โดยการจัดเก็บนั้นจะเก็บเหล่านั้นลงไปตรงๆ เลย
2. จงอธิบายคำว่า File Table มาพอเข้าใจ
ตอบ File Table ก็คือส่วนของหน่วยความจำที่เก็บข้อมูลเกี่ยวกับไฟล์ที่จะใช้ ซึ่งเก็บ
ข้อมูลต่างๆ ที่เกี่ยวกับไฟล์ เช่น ชื่อไฟล์ เป็นตัวชี้ตำแหน่งของไฟล์ เป็นต้นซึ่งจะมีตัวแปรที่
เป็นไฟล์พอยเตอร์ชี้อยู่ ซึ่งไฟล์พอยเตอร์ตัวนี้จะมีข้อมูลเป็นโครงสร้างชนิด FILE
3. จงอธิบายการเปิดไฟล์ด้วยโหมดต่าง ๆ ว่าแต่ละโหมดมีลักษณะเป็นอย่างไร
ตอบ 1. โหมด r หรือ rb
เปิดไฟล์ขึ้นมาเพื่ออ่าน ถ้าเปิดสำเร็จ ไฟล์พอยเตอร์จะชี้ไปที่ต้นไฟล์ แต่ถ้าเปิดไม่ได้ จะส่งค่า
กลับเป็นค่า Error (Null) ถ้าเปิดไม่ได้ จะสร้างไฟล์ที่ต้องการให้ใหม่
2. โหมด w หรือ wb
เปิดไฟล์ขึ้นมาเพื่อเขียน ถ้าเปิดสำเร็จ จะได้ไฟล์ว่างๆ แต่ถ้าเปิดไม่ได้ จะสร้างไฟล์ที่ต้องการ
ให้ใหม่
3. โหมด a หรือ ab
เปิดไฟล์ขึ้นมาเพื่อเขียนต่อ ถ้าเปิดสำเร็จ ไฟล์พอยเตอร์จะชี้ไปที่ปลายไฟล์ถ้าเปิดไม่ได้ จะ
สร้างไฟล์ที่ต้องการให้ใหม่
4. จงอธิบายถึงความแตกต่างระหว่าง Text Files และ Binary Files
ตอบ Text File จะเก็บข้อมูลในลักษณะที่เป็นตัวอักษรเท่านั้น ไม่สามารถเก็บค่าตัวเลข
ได้ แต่ Binary File สามารถเก็บได้ทั้งข้อมูลที่เป็นขตัวอักษรและตัวเลข
ตอนที่ 2 อธิบายคำศัพท์(หมายถึง การแปลคำศัพท์ ขยายความ อธิบายเพิ่มเติมถ้ามี
ตัวอย่างให้ยกตัวอย่างประกอบ)
1. File
ตอบคือ ที่เก็บข้อมูลต่างๆ ของคอมพิวเตอร์ และในภาษา C นั้น ไฟล์ก็จะมีความหมายรวม
ไปถึงอุปกรณ์ต่างที่ต่อกับเครื่องคอมพิวเตอร์ด้วย
2. Logical Interfaces
ตอบ เป็นตัวกลางในการติดต่อกับไฟล์
3. Text files
ตอบเป็นไฟล์ของตัวอักษร เพราะโครงสร้างในการเก็บข้อมูลจะเป็นตัวอักษร จึงไม่สามารถ
ที่จะเก็บข้อมูลที่ค่าคัวเลขจำนวนเต็ม จุดทศนินม หรือในลักษณะที่เป็นโครงสร้าง ซึ่งการ
เก็บ ข้อมูลจะถูกแปลงเป็นเลขฐานสองตามรหัส ASCII
4. Binary Files
ตอบเป็นไฟล์ที่เก็บข้อมูลที่อยู่ในรูปแบบของค่าตรงๆ ซึ่งข้อมูลที่ไฟล์ประเภทนี้จัดเก็บ จะ
สามารถเป็นได้ทั้งตัวเลขจำนวนเต็ม ตัวเลขทศนิยม ตัวอักษร อาร์เรย์ และข้อมูลแบบ
โครงสร้าง โดยการจัดเก็บนั้นจะเก็บเหล่านั้นลงไปตรงๆ เลย เช่น 16706 ก็จะเก็บเป็นค่าที่
เหมือนอ่านกลับมาเป็นค่าเดิม แต่ Text Files จะเก็บเป็นตัวอักษร 1 6 7 0 6
5. File Table
ตอบคือ ส่วนของหน่วยความจำที่เก็บข้อมูลต่าง ๆ ที่เกี่ยวกับไฟล์ เช่น ชื่อไฟล์ เป็นตัวชี้
ตำแหน่งของไฟล์ เป็นต้น โดยจะมีตัวแปรที่เป็นไฟล์พอยเตอร์ชี้อยู่ ซึ่งไฟล์พอยเตอร์ตัวนี้จะ
มีข้อมูลเป็นโครงสร้างชนิด FILE ซึ่งลักษณะของ File Table
6. fopen
ตอบฟังก์ชันในการเปิดไฟล์ คือ ฟังก์ชัน fopen ฟังก์ชันนี้ต้องการพารามิเตอร์ 2 ตัว ตัวแรก
คือชื่อไฟล์ที่ต้องการจะเปิด ซึ่งอาจจะรวมที่อยู่ของไฟล์ (Path) ในกรณีที่ไฟล์ที่ต้องการใช้
ไม่ได้อยู่ที่เดียวกับไฟล์โปรแกรม และตัวที่ 2 จะเป็นโหมดในการเปิด ซึ่งจะมีโหมดการเปิด
อยู่ 3 โหมด
7. fclose
ตอบ เป็นฟังก์ชันที่ใช้ปิดไฟล์ ที่เปิดไว้
8. fread
ตอบ เป็นฟังก์ชันในการอ่านข้อมูลจาก Binary File
9. fwrite
ตอบ เป็นฟังก์ชันในการเขียนข้อมูลลง Binary File

ไม่มีความคิดเห็น:

แสดงความคิดเห็น