คำถามและคำตอบสัมภาษณ์การเขียนโปรแกรม C 100 อันดับแรก (PDF)
ต่อไปนี้เป็นคำถามและคำตอบในการสัมภาษณ์เกี่ยวกับการเขียนโปรแกรม C สำหรับผู้สมัครใหม่และมีประสบการณ์เพื่อให้ได้งานในฝัน
คำถามและคำตอบสัมภาษณ์การเขียนโปรแกรม C ขั้นพื้นฐานสำหรับนักศึกษาใหม่
1) คุณจะสร้างคำสั่งเพิ่มหรือคำสั่งลดในภาษา C ได้อย่างไร?
จริงๆ แล้ว มีสองวิธีในการทำเช่นนี้ วิธีหนึ่งคือใช้ตัวดำเนินการเพิ่ม ++ และตัวดำเนินการลด – ตัวอย่างเช่น คำสั่ง “x++” หมายถึงการเพิ่มค่าของ x ขึ้น 1 คำสั่ง “x –” หมายถึงการลดค่าของ x ขึ้น 1 อีกวิธีในการเขียนคำสั่งเพิ่มคือการใช้เครื่องหมายบวก + หรือเครื่องหมายลบ – ตามปกติ ในกรณีของ “x++” อีกวิธีในการเขียนคือ “x = x +1”
👉 ดาวน์โหลดไฟล์ PDF ฟรี: คำถามและคำตอบสัมภาษณ์การเขียนโปรแกรม C >>
2) อะไรคือความแตกต่างระหว่างการโทรตามมูลค่าและการโทรโดยการอ้างอิง?
เมื่อใช้ Call by Value คุณกำลังส่งค่าของตัวแปรเป็นพารามิเตอร์ไปยังฟังก์ชัน ในขณะที่ Call by Reference จะส่งที่อยู่ของตัวแปร นอกจากนี้ ภายใต้ Call by Value ค่าในพารามิเตอร์จะไม่ได้รับผลกระทบจากการดำเนินการใดๆ ที่เกิดขึ้น ในขณะที่ในกรณีของ Call by Reference ค่าอาจได้รับผลกระทบจากกระบวนการภายในฟังก์ชัน
3) ผู้เขียนโค้ดบางคนดีบักโปรแกรมของตนโดยใส่สัญลักษณ์ความคิดเห็นบนโค้ดบางตัวแทนที่จะลบออก สิ่งนี้ช่วยในการดีบักได้อย่างไร?
การใส่สัญลักษณ์ความคิดเห็น /* */ รอบๆ โค้ด หรือที่เรียกว่า "การใส่ความคิดเห็น" เป็นวิธีการแยกโค้ดบางส่วนที่คุณคิดว่าอาจก่อให้เกิดข้อผิดพลาดในโปรแกรม โดยไม่ต้องลบโค้ด แนวคิดก็คือหากรหัสถูกต้อง คุณเพียงแค่ลบสัญลักษณ์ความคิดเห็นออกแล้วดำเนินการต่อ นอกจากนี้ยังช่วยประหยัดเวลาและความพยายามในการพิมพ์รหัสซ้ำหากคุณลบรหัสออกไปตั้งแต่แรก
4) รหัสเทียบเท่าของคำสั่งต่อไปนี้ในรูปแบบ WHILE LOOP คืออะไร
for (a=1; a<=100; a++) printf ("%d\n", a * a);
คำตอบ:
a=1; while (a<=100) { printf ("%d\n", a * a); a++; }
5) สแต็คคืออะไร?
สแต็กเป็นรูปแบบหนึ่งของโครงสร้างข้อมูล ข้อมูลจะถูกจัดเก็บไว้ในสแต็กโดยใช้วิธี FILO (เข้าก่อนออกก่อน) ในกรณีใดกรณีหนึ่ง จะเข้าถึงได้เฉพาะส่วนบนสุดของสแต็กเท่านั้น ซึ่งหมายความว่าในการดึงข้อมูลที่จัดเก็บไว้ในสแต็ก ควรแยกข้อมูลที่อยู่ส่วนบนออกก่อน การจัดเก็บข้อมูลในสแต็กยังเรียกว่า PUSH ในขณะที่การดึงข้อมูลเรียกว่า POP
6) ไฟล์การเข้าถึงตามลำดับคืออะไร?
เมื่อเขียนโปรแกรมที่จะจัดเก็บและดึงข้อมูลในไฟล์ คุณสามารถกำหนดไฟล์นั้นให้อยู่ในรูปแบบที่แตกต่างกันได้ ไฟล์การเข้าถึงตามลำดับคือข้อมูลจะถูกบันทึกตามลำดับ: ข้อมูลหนึ่งจะถูกวางลงในไฟล์หลังจากนั้นอีกข้อมูลหนึ่ง ในการเข้าถึงข้อมูลเฉพาะภายในไฟล์การเข้าถึงตามลำดับ จะต้องอ่านข้อมูลครั้งละหนึ่งข้อมูล จนกว่าจะถึงข้อมูลที่ถูกต้อง
7) การเริ่มต้นตัวแปรคืออะไร และเหตุใดจึงสำคัญ
นี่หมายถึงกระบวนการที่ตัวแปรจะได้รับการกำหนดค่าเริ่มต้นก่อนที่จะนำไปใช้ในโปรแกรม หากไม่มีการกำหนดค่าเริ่มต้น ตัวแปรก็จะมีค่าที่ไม่ทราบค่า ซึ่งอาจนำไปสู่ผลลัพธ์ที่ไม่สามารถคาดเดาได้เมื่อใช้ในการคำนวณหรือการดำเนินการอื่นๆ
8 โปรแกรมสปาเก็ตตี้คืออะไร?
การเขียนโปรแกรมแบบสปาเก็ตตี้หมายถึงโค้ดที่มักจะพันกันและทับซ้อนกันตลอดทั้งโปรแกรม วิธีการเขียนโปรแกรมที่ไม่มีโครงสร้างนี้มักเกิดจากขาดประสบการณ์ของโปรแกรมเมอร์ การเขียนโปรแกรมแบบสปาเก็ตตี้ทำให้โปรแกรมซับซ้อนและวิเคราะห์โค้ดได้ยาก ดังนั้นจึงต้องหลีกเลี่ยงให้มากที่สุด
9) แยกแยะซอร์สโค้ดจากโค้ดออบเจ็กต์
ซอร์สโค้ดคือโค้ดที่เขียนโดยโปรแกรมเมอร์ ประกอบด้วยคำสั่งและคำหลักคล้ายภาษาอังกฤษอื่นๆ ที่ควรสั่งคอมพิวเตอร์ว่าต้องทำอย่างไร อย่างไรก็ตาม คอมพิวเตอร์จะไม่สามารถเข้าใจซอร์สโค้ดได้ ดังนั้นซอร์สโค้ดจึงถูกคอมไพล์โดยใช้คอมไพเลอร์ ผลลัพธ์ที่ได้คือรหัสวัตถุซึ่งอยู่ในรูปแบบที่โปรเซสเซอร์คอมพิวเตอร์สามารถเข้าใจได้ ใน การเขียนโปรแกรม Cซอร์สโค้ดจะถูกบันทึกด้วยนามสกุลไฟล์ .C ในขณะที่ออบเจ็กต์โค้ดจะถูกบันทึกด้วยนามสกุลไฟล์ .OBJ
10) ในการเขียนโปรแกรม C คุณจะแทรกเครื่องหมายคำพูด (' และ ") ลงในหน้าจอเอาต์พุตได้อย่างไร
นี่เป็นปัญหาทั่วไปสำหรับผู้เริ่มต้นเนื่องจากเครื่องหมายคำพูดมักเป็นส่วนหนึ่งของคำสั่ง printf หากต้องการแทรกเครื่องหมายคำพูดเป็นส่วนหนึ่งของผลลัพธ์ ให้ใช้ตัวระบุรูปแบบ \' (สำหรับเครื่องหมายคำพูดเดี่ยว) และ \\” (สำหรับเครื่องหมายคำพูดคู่)
11) อักขระ '\0' มีประโยชน์อย่างไร?
เรียกว่าอักขระ null ที่ยุติการทำงาน และใช้เพื่อแสดงจุดสิ้นสุดของค่าสตริงเป็นหลัก
12) สัญลักษณ์ = และสัญลักษณ์ == แตกต่างกันอย่างไร?
สัญลักษณ์ = มักใช้ในการคำนวณทางคณิตศาสตร์ ใช้เพื่อกำหนดค่าให้กับตัวแปรที่กำหนด ในทางกลับกัน สัญลักษณ์ == หรือที่เรียกว่า "เท่ากับ" หรือ "เทียบเท่า" เป็นตัวดำเนินการเชิงสัมพันธ์ที่ใช้เพื่อเปรียบเทียบค่าสองค่า
13) ตัวดำเนินการโมดูลัสคืออะไร
ตัวดำเนินการโมดูลัสจะแสดงผลลัพธ์ของเศษที่เหลือจากการหาร โดยใช้สัญลักษณ์เปอร์เซ็นต์ (%) ตัวอย่างเช่น 10% 3 = 1 หมายความว่าเมื่อคุณหาร 10 ด้วย 3 ผลลัพธ์ที่ได้คือเศษ 1
14) Nested Loop คืออะไร?
ลูปแบบซ้อนคือลูปที่ทำงานภายในลูปอื่น พูดในอีกแง่หนึ่ง คุณมีวงในที่อยู่ภายในวงนอก ในสถานการณ์สมมตินี้ วนรอบภายในจะดำเนินการหลายครั้งตามที่ระบุโดยวงนอก ในแต่ละรอบของวงรอบนอก วงในจะดำเนินการก่อน
15) ตัวดำเนินการใดต่อไปนี้ไม่ถูกต้อง และทำไม ( >=, <=, <>, ==)
<> ไม่ถูกต้อง แม้ว่าตัวดำเนินการนี้จะถูกตีความอย่างถูกต้องว่า "ไม่เท่ากับ" ในการเขียนคำสั่งเงื่อนไข แต่ก็ไม่ใช่ตัวดำเนินการที่เหมาะสมที่จะใช้ใน การเขียนโปรแกรม Cแทนที่จะต้องใช้ตัวดำเนินการ != เพื่อระบุเงื่อนไข “ไม่เท่ากับ”
16) เปรียบเทียบและเปรียบเทียบคอมไพเลอร์จากล่าม
คอมไพเลอร์และล่ามมักจะจัดการกับวิธีดำเนินการโค้ดโปรแกรม ล่ามรันโค้ดโปรแกรมทีละบรรทัด ในขณะที่คอมไพเลอร์จะนำโปรแกรมโดยรวมและแปลงเป็นโค้ดอ็อบเจ็กต์ก่อนที่จะรัน ข้อแตกต่างที่สำคัญคือ ในกรณีของล่าม โปรแกรมอาจพบข้อผิดพลาดทางไวยากรณ์ระหว่างดำเนินการ และจะหยุดจากจุดนั้น ในทางกลับกัน คอมไพเลอร์จะตรวจสอบไวยากรณ์ของโปรแกรมทั้งหมด และจะดำเนินการดำเนินการเมื่อไม่พบข้อผิดพลาดทางไวยากรณ์เท่านั้น
17) คุณจะประกาศตัวแปรที่จะเก็บค่าสตริงได้อย่างไร?
คำสำคัญ char สามารถเก็บค่าอักขระได้ครั้งละ 1 ตัวเท่านั้น โดยการสร้างอาร์เรย์ของอักขระ คุณสามารถเก็บค่าสตริงในนั้นได้ ตัวอย่าง: “char MyName[50]; ” ประกาศตัวแปรสตริงชื่อ MyName ที่สามารถเก็บอักขระได้สูงสุด 50 ตัว
18) สามารถใช้เครื่องหมายวงเล็บปีกกา { } เพื่อล้อมบรรทัดโค้ดเดียวได้หรือไม่
แม้ว่าวงเล็บปีกกาจะใช้เพื่อจัดกลุ่มโค้ดหลายบรรทัดเป็นหลัก แต่วงเล็บปีกกาจะยังทำงานได้โดยไม่มีข้อผิดพลาดหากคุณใช้วงเล็บปีกกาเพียงบรรทัดเดียว โปรแกรมเมอร์บางคนชอบใช้วิธีนี้เพื่อจัดระเบียบโค้ดให้ดูชัดเจนขึ้น โดยเฉพาะในคำสั่งเงื่อนไข
19) ไฟล์ส่วนหัวคืออะไร และมีประโยชน์อย่างไรในการเขียนโปรแกรม C
ไฟล์ส่วนหัวเรียกอีกอย่างว่าไฟล์ไลบรารี ประกอบด้วยสิ่งสำคัญสองประการ: คำจำกัดความและต้นแบบของฟังก์ชันที่ใช้ในโปรแกรม พูดง่ายๆ ก็คือ คำสั่งที่คุณใช้ในการเขียนโปรแกรม C จริงๆ แล้วเป็นฟังก์ชันที่กำหนดจากภายในไฟล์ส่วนหัวแต่ละไฟล์ ไฟล์ส่วนหัวแต่ละไฟล์ประกอบด้วยชุดของฟังก์ชัน ตัวอย่างเช่น: stdio.h เป็นไฟล์ส่วนหัวที่มีคำจำกัดความและต้นแบบของคำสั่ง เช่น printf และ scanf
20) ข้อผิดพลาดทางไวยากรณ์คืออะไร?
ข้อผิดพลาดทางไวยากรณ์เกี่ยวข้องกับข้อผิดพลาดในการใช้ภาษาการเขียนโปรแกรม อาจเป็นคำสั่งที่สะกดผิดหรือคำสั่งที่ต้องป้อนในโหมดตัวพิมพ์เล็กแต่กลับป้อนด้วยอักขระตัวพิมพ์ใหญ่แทน สัญลักษณ์ที่วางผิดตำแหน่งหรือไม่มีสัญลักษณ์ บางแห่งภายในบรรทัดโค้ดอาจทำให้เกิดข้อผิดพลาดทางไวยากรณ์ได้เช่นกัน
21) ตัวแปรคืออะไร และแตกต่างจากค่าคงที่อย่างไร?
ตัวแปรและค่าคงที่อาจดูคล้ายกันในตอนแรก ในแง่ที่ว่าทั้งคู่เป็นตัวระบุที่ประกอบด้วยอักขระหนึ่งตัวหรือมากกว่า (ตัวอักษร ตัวเลข และสัญลักษณ์ที่อนุญาตบางส่วน) ทั้งสองตัวจะเก็บค่าเฉพาะไว้ด้วย ค่าที่ตัวแปรเก็บอยู่สามารถเปลี่ยนแปลงได้ตลอดทั้งโปรแกรม และสามารถใช้ในการดำเนินการและการคำนวณส่วนใหญ่ ค่าคงที่จะได้รับค่าเพียงครั้งเดียวเท่านั้น โดยวางไว้ที่จุดเริ่มต้นของโปรแกรม ค่านี้จะไม่เปลี่ยนแปลงในโปรแกรม ตัวอย่างเช่น คุณสามารถกำหนดค่าคงที่ชื่อ PI และให้ค่า 3.1415 จากนั้นคุณสามารถใช้เป็น PI ในโปรแกรมได้ แทนที่จะต้องเขียน 3.1415 ทุกครั้งที่คุณต้องการ
22) คุณจะเข้าถึงค่าภายในอาร์เรย์ได้อย่างไร?
อาร์เรย์ประกอบด้วยองค์ประกอบจำนวนหนึ่ง ขึ้นอยู่กับขนาดที่คุณให้ไว้ระหว่างการประกาศตัวแปร แต่ละองค์ประกอบถูกกำหนดตัวเลขตั้งแต่ 0 ถึงจำนวนองค์ประกอบ -1 ในการกำหนดหรือดึงค่าขององค์ประกอบเฉพาะ อ้างอิงถึงหมายเลของค์ประกอบ ตัวอย่างเช่น หากคุณมีการประกาศที่ระบุว่า "intscores[5];" แสดงว่าคุณมีองค์ประกอบที่สามารถเข้าถึงได้ 5 รายการ ได้แก่: คะแนน[0] คะแนน[1] คะแนน[2] คะแนน[3] และคะแนน[4 ]
23) ฉันสามารถใช้ชนิดข้อมูล "int" เพื่อเก็บค่า 32768 ได้หรือไม่ ทำไม
ไม่ ประเภทข้อมูล “int” สามารถจัดเก็บค่าได้ตั้งแต่ -32768 ถึง 32767 หากต้องการจัดเก็บ 32768 คุณสามารถใช้ “long int” แทนได้ คุณยังสามารถใช้ “unsigned int” ได้ โดยสมมติว่าคุณไม่ต้องการเก็บค่าลบ
24) สามารถรวมตัวดำเนินการสองตัวหรือมากกว่า เช่น \n และ \t ในโค้ดโปรแกรมบรรทัดเดียวได้หรือไม่
ใช่แล้ว การรวมตัวดำเนินการเข้าด้วยกันนั้นถูกต้องอย่างยิ่ง โดยเฉพาะอย่างยิ่งเมื่อมีความจำเป็น
ตัวอย่างเช่น: คุณสามารถมีรหัสเช่น printf (“Hello\n\n\’World\'”)
เพื่อส่งออกข้อความ “สวัสดี” ในบรรทัดแรกและ “โลก” อยู่ในเครื่องหมายคำพูดเดี่ยวเพื่อให้ปรากฏในสองบรรทัดถัดไป
25) เหตุใดจึงไม่ประกาศไฟล์ส่วนหัวทั้งหมดในทุกโปรแกรม C?
ทางเลือกในการประกาศไฟล์ส่วนหัวที่ด้านบนของโปรแกรม C แต่ละโปรแกรมจะขึ้นอยู่กับคำสั่ง/ฟังก์ชันที่คุณจะใช้ในโปรแกรมนั้น เนื่องจากไฟล์ส่วนหัวแต่ละไฟล์มีคำจำกัดความฟังก์ชันและต้นแบบที่แตกต่างกัน คุณจะใช้เฉพาะไฟล์ส่วนหัวที่จะมีฟังก์ชันที่คุณต้องการเท่านั้น การประกาศไฟล์ส่วนหัวทั้งหมดในทุกโปรแกรมจะเพิ่มขนาดไฟล์โดยรวมและโหลดของโปรแกรมเท่านั้น และไม่ถือเป็นรูปแบบการเขียนโปรแกรมที่ดี
26) เมื่อใดจึงจะใช้คีย์เวิร์ด “void” ในฟังก์ชัน?
เมื่อประกาศฟังก์ชัน คุณจะต้องตัดสินใจว่าฟังก์ชันนั้นจะส่งคืนค่าหรือไม่ หากฟังก์ชันนั้นไม่ส่งคืนค่า เช่น เมื่อจุดประสงค์ของฟังก์ชันคือการแสดงเอาต์พุตบางส่วนบนหน้าจอ ให้วาง “โมฆะ” ไว้ที่ด้านซ้ายสุดของส่วนหัวของฟังก์ชัน เมื่อคาดหวังค่าที่ส่งคืนหลังจากการทำงานของฟังก์ชัน ชนิดข้อมูลของค่าที่ส่งคืนจะถูกวางแทน "โมฆะ"
27) ประโยคประสมคืออะไร?
คำสั่งผสมประกอบด้วยคำสั่งโปรแกรมสองคำสั่งขึ้นไปที่ดำเนินการร่วมกัน โดยปกติจะเกิดขึ้นขณะจัดการเงื่อนไขที่คำสั่งชุดหนึ่งจะถูกดำเนินการเมื่อประเมินผลเป็น TRUE หรือ FALSE คำสั่งผสมสามารถดำเนินการภายในลูปได้เช่นกัน วงเล็บปีกกา { } จะวางไว้ก่อนและหลังคำสั่งผสม
28) อัลกอริธึมมีความสำคัญต่อการเขียนโปรแกรมภาษาซีอย่างไร
ก่อนที่จะเขียนโปรแกรมได้ จะต้องสร้างอัลกอริทึมก่อน อัลกอริธึมจะให้ขั้นตอนทีละขั้นตอนเกี่ยวกับวิธีการหาวิธีแก้ปัญหา นอกจากนี้ยังทำหน้าที่เป็นพิมพ์เขียวว่าโปรแกรมจะเริ่มต้นและสิ้นสุดอย่างไร รวมถึงกระบวนการและการคำนวณที่เกี่ยวข้อง
29) ข้อดีของอาร์เรย์เหนือตัวแปรแต่ละตัวคืออะไร?
เมื่อจัดเก็บข้อมูลที่เกี่ยวข้องหลายรายการ เป็นความคิดที่ดีที่จะใช้อาร์เรย์ เนื่องจากอาร์เรย์ตั้งชื่อโดยใช้เพียง 1 คำตามด้วยหมายเลของค์ประกอบ ตัวอย่างเช่น ในการจัดเก็บผลการทดสอบ 10 รายการของนักเรียน 1 คน เราสามารถใช้ชื่อตัวแปรที่แตกต่างกัน 10 ชื่อ (เกรด 1, เกรด 2, เกรด 3… เกรด 10) สำหรับอาร์เรย์ จะใช้เพียง 1 ชื่อเท่านั้น ส่วนที่เหลือสามารถเข้าถึงได้ผ่านชื่อดัชนี (เกรด[0], เกรด[1], เกรด[2]… เกรด[9])
30) เขียนคำสั่งวนซ้ำที่จะแสดงผลลัพธ์ต่อไปนี้:
1
12
123
1234
12345
คำตอบ:
for (a=1; a<=5; i++) { for (b=1; b<=a; b++) printf("%d",b); printf("\n"); }
คำถามและคำตอบสัมภาษณ์การเขียนโปรแกรม C สำหรับผู้มีประสบการณ์
31) มีอะไรผิดปกติในข้อความนี้? scanf(“%d”,หมายเลขอะไร);
ต้องวางเครื่องหมายและสัญลักษณ์ไว้หน้าชื่อตัวแปร whatnumber การวาง & หมายถึงค่าจำนวนเต็มใดก็ตามที่ผู้ใช้ป้อนจะถูกเก็บไว้ที่ "ที่อยู่" ของชื่อตัวแปร นี่เป็นข้อผิดพลาดทั่วไปสำหรับโปรแกรมเมอร์ ซึ่งมักนำไปสู่ข้อผิดพลาดเชิงตรรกะ
32) คุณสร้างตัวเลขสุ่มใน C ได้อย่างไร?
ตัวเลขสุ่มถูกสร้างขึ้นใน C โดยใช้ rand() command
. ตัวอย่างเช่น: anyNum = rand()
จะสร้างเลขจำนวนเต็มใดๆ ที่เริ่มต้นจาก 0 โดยสมมติว่า anyNum เป็นตัวแปรประเภทจำนวนเต็ม
33) สิ่งที่อาจเป็นปัญหาได้หากคอมไพเลอร์ C รายงานชื่อฟังก์ชันที่ถูกต้องเช่น tolower() ว่าไม่ได้กำหนด
สาเหตุที่เป็นไปได้มากที่สุดเบื้องหลังข้อผิดพลาดนี้คือ ไฟล์ส่วนหัวของฟังก์ชันนั้นไม่ได้ระบุไว้ที่ด้านบนของโปรแกรม ไฟล์ส่วนหัวประกอบด้วยคำจำกัดความและต้นแบบสำหรับฟังก์ชันและคำสั่งที่ใช้ในโปรแกรม C ในกรณีของ “tolower()” รหัส “#include ” จะต้องปรากฏที่จุดเริ่มต้นของโปรแกรม
34) ความคิดเห็นคืออะไร และคุณจะแทรกความคิดเห็นเหล่านั้นลงในโปรแกรม C ได้อย่างไร?
ความคิดเห็น เป็นวิธีที่ดีในการใส่ข้อสังเกตหรือคำอธิบายลงในโปรแกรม มันสามารถทำหน้าที่เป็นตัวเตือนว่าโปรแกรมคืออะไรหรือคำอธิบายว่าทำไมโค้ดหรือฟังก์ชันบางอย่างจึงถูกวางไว้ที่นั่นตั้งแต่แรก ความคิดเห็นขึ้นต้นด้วย /* และลงท้ายด้วย */ ตัวอักษร ความคิดเห็นอาจเป็นบรรทัดเดียวหรืออาจขยายหลายบรรทัดก็ได้ สามารถวางไว้ที่ใดก็ได้ในโปรแกรม
35) การดีบักคืออะไร?
การดีบักเป็นกระบวนการระบุข้อผิดพลาดภายในโปรแกรม ในระหว่างการคอมไพล์โปรแกรม ข้อผิดพลาดที่พบจะทำให้โปรแกรมไม่สามารถดำเนินการได้อย่างสมบูรณ์ ในสถานะนี้ โปรแกรมเมอร์จะพิจารณาส่วนที่เป็นไปได้ที่เกิดข้อผิดพลาด การดีบักช่วยให้มั่นใจได้ว่าจะลบข้อผิดพลาดออก และมีบทบาทสำคัญในการรับประกันว่าผลลัพธ์ของโปรแกรมจะเป็นไปตามที่คาดหวัง
36) ตัวดำเนินการ && ทำอะไรในโค้ดโปรแกรม?
&& เรียกอีกอย่างว่าตัวดำเนินการ AND เมื่อใช้ตัวดำเนินการนี้ เงื่อนไขทั้งหมดที่ระบุจะต้องเป็น TRUE ก่อนจึงจะดำเนินการถัดไปได้ หากคุณมีเงื่อนไข 10 ข้อ แต่มีเพียง 1 ข้อเท่านั้นที่ประเมินผลเป็น TRUE ไม่ได้ คำสั่งเงื่อนไขทั้งหมดจะถูกประเมินผลเป็น FALSE เรียบร้อยแล้ว
37) ในการเขียนโปรแกรมภาษา C คำสั่งหรือโค้ดใดที่สามารถใช้เพื่อกำหนดจำนวนคี่หรือคู่
ไม่มีคำสั่งเดียวหรือ ฟังก์ชันใน C ที่สามารถตรวจสอบว่าตัวเลขนั้นเป็นเลขคี่หรือเลขคู่ อย่างไรก็ตาม สามารถทำได้โดยการหารตัวเลขนั้นด้วย 2 จากนั้นจึงตรวจสอบเศษ หากเศษเป็น 0 แสดงว่าตัวเลขนั้นเป็นเลขคู่ มิฉะนั้น จะเป็นเลขคี่ คุณสามารถเขียนเป็นโค้ดได้ดังนี้:
if (num % 2 == 0) printf("EVEN"); else printf("ODD");
38) รูปแบบ %10.2 หมายถึงอะไรเมื่อรวมอยู่ในคำสั่ง printf?
รูปแบบนี้ใช้สำหรับสองสิ่ง: เพื่อกำหนดจำนวนช่องว่างที่จัดสรรให้กับหมายเลขเอาต์พุต และเพื่อกำหนดจำนวนตำแหน่งทศนิยม ตัวเลขที่อยู่หน้าจุดทศนิยมเป็นตัวเลขสำหรับช่องว่างที่จัดสรร ในกรณีนี้ จะจัดสรร 10 ช่องว่างสำหรับหมายเลขเอาต์พุต หากจำนวนพื้นที่ที่ใช้โดยหมายเลขเอาต์พุตน้อยกว่า 10 อักขระช่องว่างเพิ่มเติมจะถูกแทรกก่อนหมายเลขเอาต์พุตจริง ตัวเลขหลังจุดทศนิยมกำหนดจำนวนตำแหน่งทศนิยม ในกรณีนี้ คือช่องว่างทศนิยม 2 ตำแหน่ง
39) ข้อผิดพลาดเชิงตรรกะคืออะไร และแตกต่างจากข้อผิดพลาดทางไวยากรณ์อย่างไร
โปรแกรมที่มีข้อผิดพลาดเชิงตรรกะมีแนวโน้มที่จะผ่านกระบวนการคอมไพล์ แต่ผลลัพธ์ที่ได้อาจไม่ใช่ผลลัพธ์ที่คาดหวัง สิ่งนี้เกิดขึ้นเมื่อใส่สูตรผิดลงในโค้ด หรือดำเนินการลำดับคำสั่งไม่ถูกต้อง ในทางกลับกัน ข้อผิดพลาดทางไวยากรณ์จะจัดการกับคำสั่งที่ไม่ถูกต้องซึ่งคอมไพเลอร์สะกดผิดหรือไม่รู้จัก
40) โครงสร้างการควบคุมประเภทต่างๆ ในการเขียนโปรแกรมมีอะไรบ้าง?
โครงสร้างการควบคุมหลักในการเขียนโปรแกรมมี 3 โครงสร้าง: ลำดับ การเลือก และการทำซ้ำ การควบคุมตามลำดับจะเป็นไปตามโฟลว์จากบนลงล่างในการรันโปรแกรม โดยให้ทำขั้นตอนที่ 1 ก่อน ตามด้วยขั้นตอนที่ 2 ไปจนถึงขั้นตอนสุดท้าย การเลือกเกี่ยวข้องกับคำสั่งแบบมีเงื่อนไข ซึ่งหมายความว่าโค้ดจะถูกดำเนินการขึ้นอยู่กับการประเมินเงื่อนไขว่าเป็น TRUE หรือ FALSE นอกจากนี้ยังหมายความว่าอาจไม่สามารถดำเนินการโค้ดทั้งหมดได้ และมีขั้นตอนทางเลือกอื่นอยู่ภายใน การทำซ้ำเรียกอีกอย่างว่าโครงสร้างลูป และจะทำซ้ำคำสั่งโปรแกรมหนึ่งหรือสองคำสั่งที่ตั้งค่าโดยตัวนับ
41) ตัวดำเนินการ || คืออะไร และทำหน้าที่อย่างไรในโปรแกรม?
|| เรียกอีกอย่างหนึ่งว่าตัวดำเนินการ OR ในการเขียนโปรแกรม C เมื่อใช้ || เพื่อประเมินเงื่อนไขตรรกะ เงื่อนไขใดๆ ที่ประเมินผลได้เป็น TRUE จะแสดงคำสั่งเงื่อนไขทั้งหมดเป็น TRUE
42) สามารถใช้ฟังก์ชัน “if” ในการเปรียบเทียบสตริงได้หรือไม่?
ไม่ได้ คำสั่ง “if” สามารถใช้เพื่อเปรียบเทียบค่าตัวเลขและค่าอักขระเดี่ยวเท่านั้น สำหรับการเปรียบเทียบค่าสตริง มีฟังก์ชันอื่นที่เรียกว่า strcmp ที่เกี่ยวข้องกับสตริงโดยเฉพาะ
43) คำสั่งพรีโปรเซสเซอร์คืออะไร?
คำสั่งของตัวประมวลผลล่วงหน้าจะถูกวางไว้ที่จุดเริ่มต้นของทุกโปรแกรม C นี่คือตำแหน่งที่ระบุไฟล์ไลบรารี ซึ่งจะขึ้นอยู่กับฟังก์ชันที่จะใช้ในโปรแกรม การใช้คำสั่งตัวประมวลผลล่วงหน้าอีกประการหนึ่งคือการประกาศค่าคงที่ คำสั่งตัวประมวลผลล่วงหน้าเริ่มต้นด้วยสัญลักษณ์ #
44) ผลลัพธ์ของคำสั่งเงื่อนไขต่อไปนี้จะเป็นอย่างไร ถ้าค่าตัวแปร s เท่ากับ 10
s >=10 && s < 25 && s!=12
ผลลัพธ์จะเป็น TRUE เนื่องจากค่าของ s คือ 10 ดังนั้น s >= 10 จึงประเมินผลเป็น TRUE เนื่องจาก s ไม่มากกว่า 10 แต่ก็ยังเท่ากับ 10 ส่วน s< 25 ก็ยังเป็น TRUE เช่นกัน เนื่องจาก 10 น้อยกว่า 25 เช่นเดียวกัน s!=12 ซึ่งหมายความว่า s ไม่เท่ากับ 12 จะประเมินผลเป็น TRUE && คือตัวดำเนินการ AND และปฏิบัติตามกฎที่ว่าหากเงื่อนไขแต่ละรายการเป็น TRUE คำสั่งทั้งหมดจะเป็น TRUE
45) อธิบายลำดับความสำคัญของตัวดำเนินการในภาษา C
ลำดับความสำคัญจะกำหนดว่าการดำเนินการใดจะต้องเกิดขึ้นก่อนในคำสั่งดำเนินการหรือคำสั่งเงื่อนไข ในระดับลำดับความสำคัญสูงสุดคือตัวดำเนินการยูนารี !, +, – และ & ตามด้วยตัวดำเนินการทางคณิตศาสตร์ทั่วไป (*, / และโมดูลัส % ก่อน ตามด้วย + และ -) ตัวดำเนินการเชิงสัมพันธ์ <, <=, >= และ > ตามมาด้วยตัวดำเนินการความเท่าเทียมสองตัวคือ == และ != ตัวดำเนินการตรรกะ && และ || จะถูกประเมินในระดับถัดไป ในระดับสุดท้ายคือตัวดำเนินการกำหนดค่า =
46) ข้อความนี้ผิดอะไร? myName = “โรบิน”;
คุณไม่สามารถใช้เครื่องหมาย = เพื่อกำหนดค่าให้กับตัวแปรสตริงได้ ให้ใช้ฟังก์ชัน strcpy แทน ข้อความที่ถูกต้องจะเป็น: strcpy(myName, “Robin”);
47) คุณจะกำหนดความยาวของค่าสตริงที่ถูกเก็บไว้ในตัวแปรได้อย่างไร?
หากต้องการทราบความยาวของค่าสตริง ให้ใช้ฟังก์ชัน strlen() ตัวอย่างเช่น ถ้าคุณมีตัวแปรชื่อ FullName คุณสามารถรับความยาวของค่าสตริงที่เก็บไว้ได้โดยใช้คำสั่งนี้: I = strlen(FullName); ตัวแปรฉันจะมีความยาวอักขระของค่าสตริง
48) เป็นไปได้ไหมที่จะเริ่มต้นตัวแปรในขณะที่ประกาศ?
ใช่ คุณไม่จำเป็นต้องเขียนคำสั่งกำหนดค่าแยกต่างหากหลังการประกาศตัวแปร เว้นแต่คุณวางแผนที่จะเปลี่ยนแปลงในภายหลัง ตัวอย่างเช่น: char planet[15] = “Earth”; ดำเนินการสองอย่าง: ประกาศตัวแปรสตริงชื่อ planet จากนั้นกำหนดค่าเริ่มต้นด้วยค่า “Earth”
49) เหตุใดภาษา C จึงถือเป็นภาษาระดับกลาง?
เนื่องจากภาษา C มีคุณสมบัติมากมายที่ทำให้ภาษา C ทำงานได้เหมือนภาษาขั้นสูง ในขณะเดียวกันก็สามารถโต้ตอบกับฮาร์ดแวร์โดยใช้เมธอดระดับต่ำได้ การใช้แนวทางการเขียนโปรแกรมที่มีโครงสร้างที่ดี ร่วมกับคำศัพท์ภาษาอังกฤษที่ใช้ในฟังก์ชัน ทำให้ภาษา C ทำงานได้เหมือนภาษาขั้นสูง ในทางกลับกัน ภาษา C สามารถเข้าถึงโครงสร้างหน่วยความจำได้โดยตรง ซึ่งคล้ายกับรูทีนของภาษาแอสเซมบลี
50) นามสกุลไฟล์ต่าง ๆ ที่เกี่ยวข้องกับการเขียนโปรแกรมในภาษา C คืออะไร?
ซอร์สโค้ดในภาษา C จะถูกบันทึกด้วยนามสกุลไฟล์ .C ไฟล์ส่วนหัวหรือไฟล์ไลบรารีมีนามสกุลไฟล์ .H ทุกครั้งที่คอมไพล์ซอร์สโค้ดของโปรแกรมสำเร็จ มันจะสร้างไฟล์อ็อบเจ็กต์ .OBJ และไฟล์ .EXE ที่ปฏิบัติการได้
51) คำสงวนคืออะไร?
คำสงวนคือคำที่เป็นส่วนหนึ่งของไลบรารีภาษา C มาตรฐาน ซึ่งหมายความว่าคำที่สงวนไว้มีความหมายพิเศษ ดังนั้นจึงไม่สามารถใช้เพื่อวัตถุประสงค์อื่นนอกเหนือจากที่ตั้งใจไว้แต่แรกได้ ตัวอย่างของคำสงวน ได้แก่ int, void และ return
52) ลิงค์ลิสต์คืออะไร?
รายการที่เชื่อมโยงประกอบด้วยโหนดที่เชื่อมต่อกับอีกโหนดหนึ่ง ในการเขียนโปรแกรม C รายการลิงก์จะถูกสร้างขึ้นโดยใช้พอยน์เตอร์ การใช้รายการที่เชื่อมโยงเป็นวิธีหนึ่งที่มีประสิทธิภาพในการใช้หน่วยความจำสำหรับจัดเก็บข้อมูล
53) FIFO คืออะไร?
ในการเขียนโปรแกรม C มีโครงสร้างข้อมูลที่เรียกว่าคิว ในโครงสร้างนี้ ข้อมูลจะถูกจัดเก็บและเข้าถึงโดยใช้รูปแบบ FIFO หรือเข้าก่อนออกก่อน คิวแสดงถึงบรรทัดที่ข้อมูลแรกที่ถูกจัดเก็บจะเป็นข้อมูลแรกที่สามารถเข้าถึงได้เช่นกัน
54) ต้นไม้ไบนารีคืออะไร?
ต้นไม้ไบนารีเป็นส่วนขยายของแนวคิดของรายการที่เชื่อมโยง ต้นไม้ไบนารีมีพอยน์เตอร์สองตัว ตัวชี้ทางซ้ายและทางขวา แต่ละด้านสามารถแตกแขนงออกไปเพื่อสร้างโหนดเพิ่มเติมได้ ซึ่งแต่ละโหนดจะมีพอยน์เตอร์สองตัวเช่นกัน เรียนรู้เพิ่มเติมเกี่ยวกับ ต้นไม้ไบนารีในโครงสร้างข้อมูล ถ้าคุณสนใจ.
55) คำสงวนบางคำไม่ได้เขียนด้วยตัวพิมพ์เล็ก จริงหรือเท็จ?
เท็จ คำสงวนทั้งหมดต้องเขียนด้วยตัวพิมพ์เล็ก มิฉะนั้นคอมไพเลอร์ C จะตีความว่าคำนี้ไม่ปรากฏและไม่ถูกต้อง
56) อะไรคือความแตกต่างระหว่างนิพจน์ “++a” และ “a++”?
ในนิพจน์แรก การเพิ่มจะเกิดขึ้นก่อนในตัวแปร a และค่าที่ได้จะเป็นค่าที่จะใช้ ซึ่งเรียกอีกอย่างว่าการเพิ่มค่าพรีฟิกซ์ ในนิพจน์ที่สอง ค่าปัจจุบันของตัวแปร a จะเป็นค่าที่จะใช้ในการดำเนินการ ก่อนที่ค่าของตัว a เองจะเพิ่มขึ้น ซึ่งเรียกอีกอย่างว่าการเพิ่มค่าโพสต์ฟิกซ์
57) จะเกิดอะไรขึ้นกับ X ในนิพจน์นี้: X += 15; (สมมติว่าค่าของ X คือ 5)
X +=15 เป็นวิธีเขียนสั้นๆ X = X + 15 ดังนั้นหากค่าเริ่มต้นของ X คือ 5 ดังนั้น 5 + 15 = 20
58) ในภาษา C ตัวแปร NAME, ชื่อ และ Name เหมือนกันหมด จริงหรือเท็จ?
เท็จ. ภาษา C เป็นภาษาที่คำนึงถึงขนาดตัวพิมพ์ ดังนั้น NAME ชื่อ และ ชื่อ จึงเป็นตัวแปรที่แตกต่างกันสามตัวโดยเฉพาะ
59) การวนซ้ำไม่รู้จบคืออะไร?
การวนซ้ำแบบไม่มีที่สิ้นสุดอาจหมายถึงสองสิ่ง หนึ่งคือได้รับการออกแบบให้วนซ้ำอย่างต่อเนื่องจนกว่าจะตรงตามเงื่อนไขภายในลูป หลังจากนั้น ฟังก์ชัน break จะทำให้โปรแกรมออกจากลูป อีกแนวคิดหนึ่งของการวนซ้ำแบบไม่มีที่สิ้นสุดคือเมื่อมีการเขียนเงื่อนไขการวนซ้ำที่ไม่ถูกต้อง ทำให้ลูปทำงานผิดพลาดตลอดไป การวนซ้ำแบบไม่มีที่สิ้นสุดมักเรียกอีกอย่างว่าการวนซ้ำไม่สิ้นสุด
60) Flowchart ของโปรแกรมคืออะไร และช่วยในการเขียนโปรแกรมอย่างไร?
ผังงานจะแสดงภาพขั้นตอนต่อขั้นตอนในการแก้ปัญหาที่กำหนด ผังงานประกอบด้วยสัญลักษณ์ โดยแต่ละสัญลักษณ์จะมีรูปร่างที่แตกต่างกัน แต่ละรูปร่างอาจเป็นตัวแทนของเอนทิตีเฉพาะภายในโครงสร้างของโปรแกรมทั้งหมด เช่น กระบวนการ เงื่อนไข หรือแม้แต่เฟสอินพุต/เอาท์พุต
61) เกิดอะไรขึ้นกับคำสั่งโปรแกรมนี้? โมฆะ = 10;
คำว่า void เป็นคำสงวนในภาษา C คุณไม่สามารถใช้คำสงวนเป็นตัวแปรที่ผู้ใช้กำหนดได้
62) คำสั่งของโปรแกรมนี้ถูกต้องหรือไม่? อินท์ = 10.50;
สมมติว่า INT เป็นตัวแปรชนิด float คำสั่งนี้จึงใช้ได้ บางคนอาจคิดว่า INT เป็นคำสงวนและจะต้องไม่ใช้เพื่อวัตถุประสงค์อื่น อย่างไรก็ตาม โปรดจำไว้ว่าคำสงวนจะแสดงเป็นตัวพิมพ์เล็ก ดังนั้นคอมไพเลอร์ภาษาซีจะไม่ตีความคำนี้เป็นคำสงวน
63) ข้อโต้แย้งที่แท้จริงคืออะไร?
เมื่อคุณสร้างและใช้ฟังก์ชันที่จำเป็นต้องดำเนินการกับค่าที่กำหนดบางค่า คุณจะต้องส่งค่าที่กำหนดเหล่านี้ไปยังฟังก์ชันนั้น ค่าที่ถูกส่งผ่านไปยังฟังก์ชันที่เรียกว่าเรียกว่าอาร์กิวเมนต์จริง
64) ลำดับการขึ้นบรรทัดใหม่คืออะไร?
ลำดับการขึ้นบรรทัดใหม่จะแสดงด้วยอักขระ \n ใช้เพื่อแทรกบรรทัดใหม่เมื่อแสดงข้อมูลในหน้าจอเอาต์พุต สามารถเพิ่มช่องว่างได้โดยการแทรก \n ตัวอักษรมากขึ้น ตัวอย่างเช่น \n\n จะแทรกช่องว่างสองช่อง สามารถวางลำดับการขึ้นบรรทัดใหม่ได้ก่อนนิพจน์เอาต์พุตจริงหรือหลัง
65) การเปลี่ยนเส้นทางเอาต์พุตคืออะไร?
เป็นกระบวนการถ่ายโอนข้อมูลไปยังแหล่งเอาต์พุตอื่นนอกเหนือจากหน้าจอแสดงผล การเปลี่ยนเส้นทางเอาต์พุตช่วยให้โปรแกรมสามารถบันทึกเอาต์พุตลงในไฟล์ได้ ตัวอย่างเช่น หากคุณมีโปรแกรมชื่อ COMPUTE การพิมพ์คำสั่งนี้ในบรรทัดคำสั่งเป็น COMPUTE >DATA จะสามารถรับอินพุตจากผู้ใช้ ดำเนินการคำนวณบางอย่าง จากนั้นเอาต์พุตจะถูกเปลี่ยนเส้นทางไปยังไฟล์ชื่อ DATA แทนที่จะแสดงบนหน้าจอ
66) ข้อผิดพลาดรันไทม์คืออะไร?
ข้อผิดพลาดเหล่านี้เกิดขึ้นในขณะที่โปรแกรมกำลังดำเนินการ ตัวอย่างทั่วไปอย่างหนึ่งที่ข้อผิดพลาดระหว่างรันไทม์อาจเกิดขึ้นได้คือเมื่อคุณพยายามหารตัวเลขด้วยศูนย์ เมื่อเกิดข้อผิดพลาดระหว่างรันไทม์ การทำงานของโปรแกรมจะหยุดชั่วคราวเพื่อแสดงว่าบรรทัดโปรแกรมใดทำให้เกิดข้อผิดพลาด
67) ฟังก์ชั่น abs() และ fabs() ต่างกันอย่างไร?
ฟังก์ชันทั้ง 2 นี้ทำงานเหมือนกันโดยพื้นฐาน นั่นก็คือการรับค่าสัมบูรณ์ของค่าที่กำหนด Abs() ใช้สำหรับค่าจำนวนเต็ม ในขณะที่ fabs() ใช้สำหรับตัวเลขชนิดลอยตัว นอกจากนี้ ต้นแบบสำหรับ abs() ยังอยู่ภายใต้ ในขณะที่ fabs() อยู่ภายใต้ -
68) พารามิเตอร์ทางการคืออะไร?
ในการใช้ฟังก์ชันในโปรแกรม C พารามิเตอร์เชิงรูปแบบประกอบด้วยค่าที่ส่งผ่านโดยฟังก์ชันที่เรียก ค่าเหล่านี้จะถูกแทนที่ในพารามิเตอร์เชิงรูปแบบเหล่านี้และนำไปใช้ในการดำเนินการใดๆ ตามที่ระบุไว้ในเนื้อหาหลักของฟังก์ชันที่เรียก
69) โครงสร้างการควบคุมคืออะไร?
โครงสร้างการควบคุมมีหน้าที่รับผิดชอบในการดำเนินการตามคำสั่งในโปรแกรม ซึ่งหมายความว่าการไหลของโปรแกรมอาจไม่จำเป็นต้องย้ายจากคำสั่งหนึ่งไปยังคำสั่งถัดไป แต่อาจจำเป็นต้องส่งผ่านส่วนทางเลือกบางส่วนเข้าหรือข้าม ขึ้นอยู่กับผลลัพธ์ของคำสั่งแบบมีเงื่อนไข
70) เขียนโค้ดส่วนย่อยง่ายๆ ที่จะตรวจสอบว่าตัวเลขเป็นบวกหรือลบ
If (num>=0) printf("number is positive"); else printf ("number is negative");
71) เมื่อใดที่คำสั่ง "switch" จะดีกว่าคำสั่ง "if"?
เหตุการณ์ สลับคำสั่ง ใช้ดีที่สุดเมื่อจัดการกับการเลือกตามตัวแปรหรือนิพจน์เดียว อย่างไรก็ตาม คำสั่ง switch สามารถประเมินได้เฉพาะชนิดข้อมูลจำนวนเต็มและอักขระเท่านั้น
72) ตัวแปรโกลบอลคืออะไร และคุณจะประกาศตัวแปรเหล่านี้อย่างไร?
ตัวแปรโกลบอลคือตัวแปรที่สามารถเข้าถึงและจัดการได้ทุกที่ในโปรแกรม หากต้องการทำให้ตัวแปรเป็นโกลบอล ให้วางการประกาศตัวแปรไว้ที่ส่วนบนของโปรแกรม หลังส่วนคำสั่งของตัวประมวลผลล่วงหน้า
73) ประเภทแจกแจงคืออะไร?
ประเภทที่ระบุช่วยให้โปรแกรมเมอร์ใช้คำที่มีความหมายมากขึ้นเป็นค่าของตัวแปร แต่ละรายการในตัวแปรประเภทที่แจงนับนั้นสัมพันธ์กับรหัสตัวเลขจริงๆ ตัวอย่างเช่น เราสามารถสร้างตัวแปรประเภทแจกแจงชื่อ DAYS ซึ่งมีค่าเป็น Monday, วันอังคาร… วันอาทิตย์
74) ฟังก์ชัน toupper() ทำหน้าที่อะไร?
มันถูกใช้เพื่อแปลงตัวอักษรใด ๆ ให้เป็นโหมดตัวพิมพ์ใหญ่ มีการประกาศฟังก์ชันต้นแบบ Toupper() - โปรดทราบว่าฟังก์ชันนี้จะแปลงอักขระเพียงตัวเดียวเท่านั้น ไม่ใช่ทั้งสตริง
75) เป็นไปได้ไหมที่จะมีฟังก์ชันเป็นพารามิเตอร์ในฟังก์ชันอื่น?
ใช่ นั่นได้รับอนุญาตในการเขียนโปรแกรม C คุณเพียงแค่ต้องรวมฟังก์ชันต้นแบบทั้งหมดลงในช่องพารามิเตอร์ของฟังก์ชันอื่นที่จะใช้ฟังก์ชันนั้น
76) อาร์เรย์หลายมิติคืออะไร?
อาร์เรย์หลายมิติสามารถจัดเก็บข้อมูลในโครงสร้างสองมิติขึ้นไปได้ ตัวอย่างเช่น คุณสามารถใช้อาร์เรย์ 2 มิติเพื่อจัดเก็บตำแหน่งปัจจุบันของตัวหมากในเกมหมากรุก หรือตำแหน่งของผู้เล่นในโปรแกรมโอเอกซ์
77) ฟังก์ชันใดในภาษา C ที่สามารถใช้เพื่อต่อท้ายสตริงเข้ากับสตริงอื่นได้
ฟังก์ชัน strcat ต้องใช้พารามิเตอร์สองตัว ได้แก่ สตริงต้นทางและค่าสตริงเพื่อต่อท้ายสตริงต้นทาง
78) ฟังก์ชัน getch() และ getche() ต่างกันอย่างไร?
ทั้งสองฟังก์ชันจะยอมรับค่าอินพุตอักขระจากผู้ใช้ เมื่อใช้ getch() ปุ่มที่ถูกกดจะไม่ปรากฏบนหน้าจอ และจะถูกบันทึกและกำหนดให้กับตัวแปรโดยอัตโนมัติ เมื่อใช้ getche() ปุ่มที่ผู้ใช้กดจะปรากฏบนหน้าจอ ขณะเดียวกันก็ถูกกำหนดให้กับตัวแปร
79) คำสั่งโปรแกรมทั้งสองนี้ให้ผลลัพธ์เหมือนกันหรือไม่? 1) scanf(“%c”, &ตัวอักษร); 2) ตัวอักษร=getchar()
ใช่ ทั้งสองทำสิ่งเดียวกัน นั่นคือยอมรับคีย์ถัดไปที่ผู้ใช้กดและกำหนดให้กับตัวแปรที่มีชื่อตัวอักษร
80) โครงสร้างในภาษาซีมีกี่ประเภท?
ประเภทโครงสร้างส่วนใหญ่ใช้เพื่อจัดเก็บระเบียน ระเบียนประกอบด้วยฟิลด์ที่เกี่ยวข้อง ซึ่งทำให้จัดระเบียบกลุ่มข้อมูลที่เกี่ยวข้องได้ง่ายขึ้น
81) อักขระ “r” และ “w” หมายถึงอะไรเมื่อเขียนโปรแกรมที่จะใช้ประโยชน์จากไฟล์?
“r” หมายถึง “อ่าน” และจะเปิดไฟล์เป็นอินพุตที่ต้องการดึงข้อมูล “w” หมายถึง “เขียน” และจะเปิดไฟล์สำหรับเอาต์พุต ข้อมูลก่อนหน้าที่จัดเก็บไว้ในไฟล์นั้นจะถูกลบ
82) อะไรคือความแตกต่างระหว่างไฟล์ข้อความและไฟล์ไบนารี?
ไฟล์ข้อความประกอบด้วยข้อมูลที่มนุษย์สามารถเข้าใจได้ง่าย ได้แก่ ตัวอักษร ตัวเลข และอักขระอื่นๆ ในทางกลับกัน ไฟล์ไบนารีประกอบด้วยเลข 1 และ 0 ที่คอมพิวเตอร์เท่านั้นที่สามารถตีความได้
83) เป็นไปได้ไหมที่จะสร้างไฟล์ส่วนหัวของคุณเอง?
ใช่ คุณสามารถสร้างไฟล์ส่วนหัวที่กำหนดเองได้ เพียงใส่ฟังก์ชันต้นแบบที่คุณต้องการใช้ในโปรแกรมของคุณลงไป และใช้คำสั่ง #include ตามด้วยชื่อไฟล์ส่วนหัวของคุณ
84) โครงสร้างข้อมูลแบบไดนามิกคืออะไร?
โครงสร้างข้อมูลแบบไดนามิกช่วยให้สามารถจัดเก็บข้อมูลลงในหน่วยความจำได้อย่างมีประสิทธิภาพมากขึ้น การใช้ การใช้ การจัดสรรหน่วยความจำแบบไดนามิกโปรแกรมของคุณจะเข้าถึงพื้นที่หน่วยความจำตามต้องการ ซึ่งตรงกันข้ามกับโครงสร้างข้อมูลแบบคงที่ โดยที่โปรแกรมเมอร์จะต้องระบุจำนวนพื้นที่หน่วยความจำที่แน่นอนที่จะใช้ในโปรแกรม
85) ข้อมูลในภาษา C มีกี่ประเภท?
พื้นฐาน ชนิดข้อมูลในภาษาซี คือ int, char และ float โดย Int ใช้ในการประกาศตัวแปรที่จะเก็บค่าจำนวนเต็ม ส่วน Float ใช้ในการเก็บตัวเลขจริง ส่วน Char สามารถเก็บค่าอักขระแต่ละตัวได้
86) รูปแบบทั่วไปของโปรแกรม C คืออะไร?
โปรแกรม AC เริ่มต้นด้วยคำสั่งของตัวประมวลผลล่วงหน้า ซึ่งโปรแกรมเมอร์จะระบุไฟล์ส่วนหัวและค่าคงที่ที่จะใช้ (ถ้ามี) ตามด้วยส่วนหัวของฟังก์ชันหลัก ภายในฟังก์ชันหลักจะมีการประกาศตัวแปรและคำสั่งโปรแกรม
87) ข้อดีของไฟล์เข้าถึงโดยสุ่มคืออะไร?
หากปริมาณข้อมูลที่จัดเก็บไว้ในไฟล์มีขนาดค่อนข้างใหญ่ การใช้การเข้าถึงแบบสุ่มจะช่วยให้คุณสามารถค้นหาข้อมูลได้อย่างรวดเร็วยิ่งขึ้น หากเป็นไฟล์เข้าถึงตามลำดับ คุณจะต้องผ่านทีละระเบียนจนกว่าจะถึงข้อมูลเป้าหมาย ไฟล์การเข้าถึงแบบสุ่มช่วยให้คุณข้ามไปยังที่อยู่เป้าหมายที่มีข้อมูลอยู่ได้โดยตรง
88) ในคำสั่ง switch จะเกิดอะไรขึ้นหากละเว้นคำสั่ง break?
หากไม่ได้วางคำสั่งแบ่งไว้ที่ส่วนท้ายของส่วนกรณีใดกรณีหนึ่ง มันจะย้ายไปยังส่วนเคสถัดไป ซึ่งอาจทำให้เอาต์พุตไม่ถูกต้อง
89) อธิบายว่าอาร์เรย์สามารถส่งผ่านไปยังฟังก์ชันที่ผู้ใช้กำหนดได้อย่างไร
สิ่งหนึ่งที่ควรทราบคือคุณไม่สามารถส่งอาร์เรย์ทั้งหมดไปยังฟังก์ชันได้ แทนที่จะทำเช่นนั้น คุณจะต้องส่งตัวชี้ที่ชี้ไปยังอาร์เรย์ซึ่งเป็นองค์ประกอบแรกในหน่วยความจำแทน ในการทำเช่นนี้ คุณต้องระบุชื่อของอาร์เรย์โดยไม่ต้องใส่เครื่องหมายวงเล็บ
90) พอยน์เตอร์คืออะไร?
พอยน์เตอร์ชี้ ไปยังพื้นที่เฉพาะในหน่วยความจำ พอยน์เตอร์ประกอบด้วยที่อยู่ของตัวแปร ซึ่งในทางกลับกันอาจมีค่าหรือแม้แต่ที่อยู่ไปยังหน่วยความจำอื่น
91) คุณสามารถส่งผ่านโครงสร้างทั้งหมดไปยังฟังก์ชันได้หรือไม่?
ใช่ เป็นไปได้ที่จะส่งผ่านโครงสร้างทั้งหมดไปยังฟังก์ชันในรูปแบบการโทรตามวิธีการ อย่างไรก็ตาม โปรแกรมเมอร์บางคนชอบที่จะประกาศโครงสร้างแบบโกลบอล จากนั้นจึงส่งตัวแปรประเภทโครงสร้างนั้นไปยังฟังก์ชัน วิธีการนี้ช่วยรักษาความสอดคล้องและความสม่ำเสมอในแง่ของประเภทอาร์กิวเมนต์
92) ฟังก์ชัน gets() คืออะไร?
เหตุการณ์ gets() function
อนุญาตให้ป้อนข้อมูลแบบเต็มบรรทัดจากผู้ใช้ เมื่อผู้ใช้กดปุ่ม Enter เพื่อสิ้นสุดอินพุต อักขระทั้งบรรทัดจะถูกจัดเก็บไว้ในตัวแปรสตริง โปรดทราบว่าคีย์ Enter จะไม่รวมอยู่ในตัวแปร แต่จะใส่จุดสิ้นสุดที่เป็นค่าว่าง \0 ไว้หลังอักขระตัวสุดท้ายแทน
93) สัญลักษณ์ % มีการใช้งานพิเศษในคำสั่ง printf คุณจะวางอักขระนี้ให้เป็นส่วนหนึ่งของเอาต์พุตบนหน้าจออย่างไร
คุณสามารถทำได้โดยใช้ %% ในคำสั่ง printf ตัวอย่างเช่น คุณสามารถเขียน printf(“10%%”) เพื่อให้เอาต์พุตปรากฏเป็น 10% บนหน้าจอ
94) คุณจะค้นหาข้อมูลในไฟล์ข้อมูลโดยใช้วิธีการเข้าถึงแบบสุ่มได้อย่างไร?
ใช้ fseek()
ฟังก์ชั่นเพื่อดำเนินการอินพุต / เอาท์พุตการเข้าถึงแบบสุ่มบนไฟล์ หลังจากที่ไฟล์ถูกเปิดโดยฟังก์ชัน fopen() fseek จะต้องใช้พารามิเตอร์สามตัวในการทำงาน: ตัวชี้ไฟล์ไปยังไฟล์ จำนวนไบต์ที่จะค้นหา และจุดเริ่มต้นในไฟล์
95) ความคิดเห็นถูกรวมไว้ระหว่างขั้นตอนการคอมไพล์และวางไว้ในไฟล์ EXE ด้วยหรือไม่
ไม่ ความคิดเห็นที่คอมไพเลอร์พบจะถูกเพิกเฉย ความคิดเห็นส่วนใหญ่มีไว้สำหรับคำแนะนำของโปรแกรมเมอร์เท่านั้น และไม่มีการใช้งานที่สำคัญอื่นใดในฟังก์ชันการทำงานของโปรแกรม
96) มีฟังก์ชันในตัวในภาษา C ที่สามารถใช้ในการเรียงลำดับข้อมูลได้หรือไม่?
ใช่ ใช้ qsort()
การทำงาน. นอกจากนี้ยังสามารถสร้างฟังก์ชันที่ผู้ใช้กำหนดสำหรับการเรียงลำดับ เช่น ฟังก์ชันที่อิงตามการเรียงลำดับแบบบอลลูนและอัลกอริธึมการเรียงลำดับแบบฟอง
97) ฮีปมีข้อดีและข้อเสียอย่างไร
การจัดเก็บข้อมูลบนฮีปจะช้ากว่าที่จะใช้เมื่อใช้สแต็ก อย่างไรก็ตาม ข้อได้เปรียบหลักของการใช้ฮีปคือความยืดหยุ่น นั่นเป็นเพราะว่าหน่วยความจำในโครงสร้างนี้สามารถจัดสรรและลบออกในลำดับเฉพาะใดๆ ได้ ความล่าช้าในฮีปสามารถชดเชยได้หากอัลกอริทึมได้รับการออกแบบและนำไปใช้อย่างดี
98) คุณแปลงสตริงเป็นตัวเลขใน C ได้อย่างไร?
คุณสามารถเขียนฟังก์ชันของคุณเองเพื่อทำการแปลงสตริงเป็นตัวเลข หรือใช้ฟังก์ชันในตัวของ C แทน คุณสามารถใช้ atof เพื่อแปลงเป็นค่าทศนิยม, atoi เพื่อแปลงเป็นค่าจำนวนเต็ม และ atol เพื่อแปลงเป็นค่าจำนวนเต็มยาว
99) สร้างส่วนของโค้ดอย่างง่ายที่จะสลับค่าของตัวแปรสองตัว num1 และ num2
int temp; temp = num1; num1 = num2; num2 = temp;
100) เครื่องหมายเซมิโคลอน (;) ต่อท้ายคำสั่งโปรแกรมมีประโยชน์อย่างไร?
มันเกี่ยวข้องกับกระบวนการแยกวิเคราะห์และการคอมไพล์โค้ด อัฒภาคทำหน้าที่เป็นตัวคั่น เพื่อให้คอมไพเลอร์ทราบว่าแต่ละคำสั่งสิ้นสุดที่ใด และสามารถดำเนินการแบ่งคำสั่งออกเป็นองค์ประกอบเล็กๆ เพื่อตรวจสอบไวยากรณ์ได้
คำถามสัมภาษณ์เหล่านี้จะช่วยในวีว่าของคุณ (วาจา)