Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
ชอ _____________________________________ รหส ______________________ section ____
ทจรตในการสอบ โทษขนต ำคอปรบตกในรำยวชำนและพกกำรเรยนหนงภำคกำรศกษำ 1
สอบปลายภาค: ภาคการศกษาท 1 ปการศกษา: 2559
วนสอบ: 11 ธนวาคม 2559 เวลาสอบ: 13.30 – 16.30 น.
หองสอบ: A400 (01,03) A401(04,05,07) R201(08,09) S817(06, 241-101:01, 242-101:02) หวหน (02, 242-101: 01) ผสอน: อ.สกณา อ.อารย อ.เสกสรรค อ.วรพรต อ.วศมน อ.นคม ภาควชาวศวกรรมคอมพวเตอร
รหสและชอวชา: 240-101, 241-101, 242-101 Introduction to Computer Programming แนะน าการเขยนโปรแกรมคอมพวเตอร
ทจรตในการสอบมโทษขนต าคอ ปรบตกในรายวชาททจรตและพกการเรยน 1 ภาคการศกษา ค าสง: อานรายละเอยดของขอสอบ และค าแนะน าใหเขาใจกอนเรมท าขอสอบ
อนญาต: เครองเขยนตาง ๆ เชน ปากกา หรอดนสอ เขาหองสอบ
ไมอนญาต: หนงสอ หรอเครองคดเลขเขาหองสอบ และเอกสารใดๆ เขาและออกหองสอบ
เวลา: 3 ชวโมง (180 นาท)
ค าแนะน า
ขอสอบม 13 หนา (รวมหนาปก) แบงออกเปน 3 ตอน คะแนนรวม 90 คะแนน (คดเปนคะแนนเกบ 45%) เขยนค าตอบในขอสอบ ค าตอบสวนใดอานไมออก จะถอวาค าตอบนนผด อานค าสงในแตละขอใหเขาใจกอนลงมอท า เวลาทใชเวลาท าตอนใหเหมาะสม ตามค าแนะน า หากขอใดเขยนค าตอบไมพอ ใหเขยนเพมทดานหลงของหนานนเทานน
ตอน
1 (40) 20%
2 (40) 20%
3 (10) 5%
รวม (90) 45%
คะแนน
นกศกษารบทราบ ลงชอ ......................................................................................
ชอ _____________________________________ รหส ______________________ section ____
ทจรตในการสอบ โทษขนต ำคอปรบตกในรำยวชำนและพกกำรเรยนหนงภำคกำรศกษำ 2
ตอนท 1 ฟงกชน Function (40 คะแนน / 75 นาท)
ขอ 1. จงเลอกตนแบบของฟงกชน (function prototype) ใหเหมาะสมกบการเรยกใช ( 10 คะแนน ) Function prototype ตนแบบของฟงกชน
ตวเลอก ตนแบบของฟงกชน A int fun(int x)
B int fun(char x, float y)
C float fun(void)
D float fun(float x, int y)
E void fun(int x[], float y)
F char fun(char x[], int x)
สวนของโปรแกรมและการเรยกใชฟงกชน int a=3, b=5, c[5]={0}; char p[]=”Hello”;
float m=1.25;
ค าตอบ (ใสเฉพาะตวเลอก A-F)
(เลอกฟงกชน function
prototype ทเหมาะสมทสด)
printf(“%d %d \n”, a+1, fun(a+1) );
m = fun(m,5);
a = 2 + fun(p[1],2.5)*3;
printf(“%.3f \n”, fun() );
fun(c,3.14159);
ขอ 2. ก าหนดนยามของฟงกชน F และ G ใหหาผลลพธจากสวนของโปรแกรม ( 10 คะแนน )
#include <string.h>
int F(char x[ ], char y) { int n, a=0;
for(n=0;n<strlen(x);n++)
if(x[n]==y) a++;
return a;
}
#include <string.h>
int G(char x[], char y[])
{ strcat(x,”+”);
strcat(x,y);
a=strlen(x);
return a;
}
สวนของโปรแกรมและการเรยกใชฟงกชน int a=3, b=4; char x[100]=”Hello”;
char p[20]=”New World”;
ผลลพธจากสวนของโปรแกรม
printf(“ %d \n”, strlen(x) );
printf(“ %d \n”, strcmp(x,”Hello”) );
ชอ _____________________________________ รหส ______________________ section ____
ทจรตในการสอบ โทษขนต ำคอปรบตกในรำยวชำนและพกกำรเรยนหนงภำคกำรศกษำ 3
printf(“ %d \n”, F(p, ’e’) );
printf(“ %d \n”, F(“Goodbye”, x[4]) );
printf(“ %d \n”, G(x, p) );
ขอ 3. จงเขยนโปรแกรมค านวณคาบรการจอดรถยนต ( 10 คะแนน )
รปท 1. อตราคาบรการจอดรถยนต ณ อาคารใกลโรงพยาบาลแหงหนง
ในมหาวทยาลยแหงหนงในภาคใต
โปรแกรมจะวนรบขอมล จ านวนชวโมง และ นาท ของการจอดรถคนหนงๆ เพอค านวณคาบรการแลวแสดงผล
เสรจแลวจงรอรบขอมลถดไป จนกระทงเมอผใชใสคาเปน 0 ชวโมง และ 0 นาท โปรแกรมจะจบการท างาน
ตวอยางการรนโปรแกรม (ตวเลข เอยงหนา คอคาทรบจากผใช)
Enter parking duration (hours and minutes): 0 30 Parking cost = 50 baht
Enter parking duration (hours and minutes): 4 14 Parking cost = 50 baht
Enter parking duration (hours and minutes): 4 15 Parking cost = 60 baht
Enter parking duration (hours and minutes): 7 0 Parking cost = 80 baht Enter parking duration (hours and minutes): 0 0 End of program.
ชอ _____________________________________ รหส ______________________ section ____
ทจรตในการสอบ โทษขนต ำคอปรบตกในรำยวชำนและพกกำรเรยนหนงภำคกำรศกษำ 4
ก าหนดให ในโปรแกรมมฟงกชน calculate ทค านวณคาบรการ ซงฟงกชนรบคา จ านวนชวโมงและนาท ผานพารามเตอรสองตว แลวคนคากลบเปนคาบรการทค านวณได จงเตมโปรแกรมนใหสมบรณ #include <stdio.h>
int calculate(int hr, int mn);
int main( )
{ int hr, mn, cost;
do
{ printf(“parking duration (hours and minutes): ”);
//รบคาจ านวนชวโมงและนาท เกบในตวแปร hr และ mn
____________________________________________
// ถา hr และ mn มคาเปน 0 ใหออกจากลป do-while ทนท ดวยค าสง break if( _________________________________________ )
___________________________________________ // ค านวณคาบรการ โดยเรยกใชฟงกชน calculate
cost = ____________________________________
printf(“Parking cost = %d\n”, cost);
} while ( ____________________ ); // เงอนไขของลป do-while
printf(“End of program.”);
return 0;
}
// เขยนนยามของฟงกชน calculate ใหสมบรณ int calculate(int hr, int mn)
{
…………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… ……………………………………………………………………………………………………………
ชอ _____________________________________ รหส ______________________ section ____
ทจรตในการสอบ โทษขนต ำคอปรบตกในรำยวชำนและพกกำรเรยนหนงภำคกำรศกษำ 5
ขอ 4. จงเขยนโปรแกรมค านวณพนทผวของรป Tetrahedron ( 10 คะแนน )
รปท 2. Tetrahedron
Tetrahedron คอรปทรงเรขาคณตสามมตทประกอบขนดวยรปสามเหลยม 4 รป พนทผวของรป
Tetrahedron จงหาไดจาก ผลรวมของพนทของรปสามเหลยมทงสรป ตวอยาง เชน รป Tetrahedron ทมดาน
a, b, c, d, e และ f จะมพนทผวทงหมด คอ ผมรวมของพนทรปสามเหลยมสรป ไดแก ∆𝑎𝑏𝑐, ∆𝑎𝑑𝑓, ∆𝑏𝑒𝑓
และสามเหลยม ∆𝑐𝑑𝑒 จงเขยนโปรแกรมรบความยาวดานของรป Tetrahedron ทง 6 ดาน (เรยกใชฟงกชน
inputSides) แลวค านวณหาพนทผว (Surface Area) ก าหนดใหโปรแกรมสรางฟงกชน float Triangle(float
a, float b, float c) เพอใชหาพนทรปสามเหลยมหนงรปจากความยาวดาน 3 ดาน (a, b, c) โดยพนทรป
สามเหลยม (A) หาไดจากสตร
𝐴 = √𝑆(𝑆 − 𝑎)(𝑆 − 𝑏)(𝑆 − 𝑐) เมอ 𝑆 = 𝑎+𝑏+𝑐
2
จงเตมโปรแกรมนใหสมบรณ #include <stdio.h> #include <math.h>
void inputSides(float s[6]){
int j;
printf(“Input the 6 sides of tetrahedron: ”);
for(j=0; j<6; j++) scanf(“%f”, &s[j]);
}
//นยามของฟงกชน float Triangle(float a, float b, float c)
{
…………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… }
ชอ _____________________________________ รหส ______________________ section ____
ทจรตในการสอบ โทษขนต ำคอปรบตกในรำยวชำนและพกกำรเรยนหนงภำคกำรศกษำ 6
โคดโปรแกรม ขอ 4. (ตอ) . . . int main( )
{
…………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… ……………………………………………………………………………………………………………
/ * * * * * * * * * * * * * * * * * จบตอนท 1 * * * * * * * * * * * * * * * * * */
ชอ _____________________________________ รหส ______________________ section ____
ทจรตในการสอบ โทษขนต ำคอปรบตกในรำยวชำนและพกกำรเรยนหนงภำคกำรศกษำ 7
ตอนท 2 สตรคเจอร Structure (40 คะแนน / 75 นาท )
ขอ 1. จากสตรคเจอรเกยวกบรายละเอยดหนงสอ (ชอหนงสอ , ชอผแตง, จ านวนส าเนาของหนงสอรายการ
นนๆ วามจ านวนกเลมในหองสมด) และต าแหนงทเกบหนงสอ (หมวดหนงสอ , ชนของอาคาร, และ หมายเลข
ชนวางหนงสอ) ของหนงสอ 3 รายการ ในหองสมดทก าหนด จงเขยนบางสวนของโปรแกรมดงน (10 คะแนน :
10 นาท) struct book_location
{ char section[10];
int floor, shelf_number;
}
struct book_detail
{ char book_title[30],
author[30];
int num;
struct book_location location;
} book1, book2, book3;
1.1 รบคาชอของหนงสอรายการท 1 จากผใช
…………………………………………………………………………………………………………… 1.2 ก าหนดชอหนงสอรายการท 2 ใหมชอวา Shelock Holme
…………………………………………………………………………………………………………… 1.3 ก าหนดใหหนงสอรายการท 3 มจ านวนส าเนาทงหมด 10 เลม ในหองสมด
…………………………………………………………………………………………………………… 1.4 แสดงออกทางหนาจอวา จ านวนส าเนาของหนงสอทง 3 รายการ มทงหมดกเลม
…………………………………………………………………………………………………………… 1.5 รบคาหมายเลขชนวางหนงสอ ของหนงสอรายการท 1
……………………………………………………………………………………………………………
ขอ 2. จากบางสวนของโปรแกรม ทมการประกาศตวแปรชนดใหมเพอเกบขอมลพนกงานในแผนก ซงไดแกชอ ต าแหนง อาย และเงนเดอน ใหนกศกษาเตมโปรแกรมใหสมบรณ (10 คะแนน : 10 นาท)
int main ()
{ int i, total=0;
float average;
typedef struct
{ char name[30], position[30];
int age;
float salary;
} person;
ชอ _____________________________________ รหส ______________________ section ____
ทจรตในการสอบ โทษขนต ำคอปรบตกในรำยวชำนและพกกำรเรยนหนงภำคกำรศกษำ 8
/*จงประกาศตวแปรอารเรย person ชอ staff ส าหรบเกบขอมลพนกงาน 3 คนในแผนก พรอมทงก าหนด (ไมใชรบคาจากผใช) ขอมลพนกงานแตละคนดงน พนกงานคนท 1 ชอ John Luca ต าแหนง Director อาย 55 ป เงนเดอน 80,000 บาท พนกงานคนท 2 ชอ Top Smith ต าแหนง Programmer อาย 35 ป เงนเดอน 55,000 บาท พนกงานคนท 3 ชอ Susan Tippy ต าแหนง Programmer อาย 25 ป เงนเดอน 30,000 บาท …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… //จงเขยนโปรแกรม วน loop หาอายเฉลยของพนกงานทง 3 คน …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… printf(“Average age is %.2f”, average);
//Top Smith ไดรบการปรบต าแหนงเปน Senior Programmer และเงนเดอนเพมขนเปน 60,000 บาท
…………………………………………………………………………………………………………… …………………………………………………………………………………………………………… ……………………………………………………………………………………………………………
ขอ 3. พนกงานรานลางรถแหงหนงน าใบเสรจคาลางรถของวนนมากรอกลงในโปรแกรมเพอบนทกรายละเอยดของรถทเขามาใชบรการ โดยใชงานตวแปรชนดใหมตามทก าหนด ให นศ. เขยนโปรแกรมเพอรบรายละเอยดตางๆ ของรถทเขามาใชบรการ (ก าหนดใหรบลกคาไดสงสด 50 คน) จากนนใหโปรแกรมคนหาและแสดง “ปายทะเบยนรถยนตคนแรก” ทเขามาใชบรการ (10 คะแนน : 20 นาท)
typedef struct
{ char license_plate[10];
int hour, min;
} details; ตวอยางผลการรนโปรแกรม (ตวอกษรหนา คอตวอยางคาทผใชปอนลงในโปรแกรม)
Enter License Plate : AA2566
Enter entry time (hour:min) : 9:30
Enter License Plate : XY1234
Enter entry time (hour:min) : 8:45
The first car is XY1234
ชอ _____________________________________ รหส ______________________ section ____
ทจรตในการสอบ โทษขนต ำคอปรบตกในรำยวชำนและพกกำรเรยนหนงภำคกำรศกษำ 9
…………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… ……………………………………………………………………………………………………………
ชอ _____________________________________ รหส ______________________ section ____
ทจรตในการสอบ โทษขนต ำคอปรบตกในรำยวชำนและพกกำรเรยนหนงภำคกำรศกษำ 10
ขอ 4. จงเขยนโปรแกรมเพอใหครชนมธยมศกษาปท 4 สามารถกรอก ชอ รหสนกศกษา และคะแนนสอบวชาตางๆ ของ นร. ทง 30 คนลงไปไดในฟงกชน main จากนนใชงานฟงกชน show_data ในการแสดงรายละเอยดของ นกศกษาแตละคนออกทางหนาจอ โดยม function prototype ดงน
void show_data(struct student classM4[30]);
ในการเขยนโปรแกรม ก าหนดใหมการใชงานสตรคเจอรตางๆ ดงน struct score
{ int maths, eng, physics;
};
struct student
{ char name[30];
char id[10];
struct score scr;
};
***นศ. สามารถประกาศตวแปรเพมเตมได (10 คะแนน : 20 นาท) ผลการรนโปรแกรม (ตวอกษรหนา คอตวอยางคาทผใชปอนลงในโปรแกรม)
Enter name of student 1 : Thana
Enter id of student 1 : 59COE0001
Enter all scores of student 1 : 70 75 88
:
Enter name of student 30 : Jinda
Enter id of student 30 : 59COE0030
Enter all scores of student 30 : 66 80 70
Show All Students:
Name ID Maths Eng Physics
Thana 59COE0001 70 75 88
:
Jinda 59COE0030 66 80 70 …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… ……………………………………………………………………………………………………………
ชอ _____________________________________ รหส ______________________ section ____
ทจรตในการสอบ โทษขนต ำคอปรบตกในรำยวชำนและพกกำรเรยนหนงภำคกำรศกษำ 11
…………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… ……………………………………………………………………………………………………………
/* * * * * * * * * * * * * * * * * * จบตอนท 2 * * * * * * * * * * * * * * * * * */
ชอ _____________________________________ รหส ______________________ section ____
ทจรตในการสอบ โทษขนต ำคอปรบตกในรำยวชำนและพกกำรเรยนหนงภำคกำรศกษำ 12
ตอนท 3 โปรแกรมประยกต (10 คะแนน / 30 นาท)
มการประกาศชนดขอมล Date ไวส าหรบเกบวนท และ Friend เปนโครงสรางขอมลเกบชอและวนเกดของเพอน ดงน typedef struct {
int dd; //day วนท int mm; // month เดอน int yy; //year ป } Date; typedef struct {
char name[50]; // ชอ char telephone[15]; // เบอรโทรศพท Date birthdate; // วนเกด } Friend; จงเขยนนยามของฟงกชน ตอไปน (เขยนเฉพาะนยามฟงกชน ไมตองเขยนโปรแกรมทงหมด) ขอ 1. นยามฟงกชน birthMonth เปนฟงกชนพมพรายชอของเพอนทเกดในเดอนใดเดอนหนง (5 คะแนน) ฟงกชนม prototype ดงน void birthMonth(Friend Fds[ ] , int n, int m) พารามเตอร Fds คอ อารเรยชนด Friend เกบขอมลของเพอนๆ และ n คอจ านวนขอมลในอารเรย สวน m
คอ เดอนทใชคนหาวนเกด ฟงกชนนจะพมพรายชอเพอนทกคนทมวนเกดในเดอนทตรงกบคา m ฟงกชนไมมการคนคา …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… ……………………………………………………………………………………………………………
ชอ _____________________________________ รหส ______________________ section ____
ทจรตในการสอบ โทษขนต ำคอปรบตกในรำยวชำนและพกกำรเรยนหนงภำคกำรศกษำ 13
ขอ 2. นยามฟงกชน oldestFriend เปนฟงกชนคนหาเพอนทอายมากทสด (5 คะแนน) ฟงกชนม prototype ดงน Friend oldestFriend(Friend Fds[ ] , int n)
พารามเตอร Fds คอ อารเรยชนด Friend เกบขอมลของเพอนๆ และ n คอจ านวนขอมลในอารเรย ฟงกชนน
จะ คนคาเปนขอมลชนด Friend ซงเปนเพอนคนทอายมากทสด (วนเกดอยกอนเพอนทกคน) …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… …………………………………………………………………………………………………………… ……………………………………………………………………………………………………………
/* * * * * * * * * * * * * * * * * * จบตอนท 3 * * * * * * * * * * * * * * * * * */