You are on page 1of 10

วนที่ 1 ปรนัย 30 ขอ ขอละ 1 คะแนน รวม 30 คะแนน

ขอ 1 คาที่ถูกเก็บในพอยนเตอรคือ
① value ② address ③ operator
④ operand ⑤ ถูกทุกขอ
ขอ 2 เครื่อง มาย & ที่ใชในพอยนเตอร มายถึงอะไร
① address of ② value of ③ array of
④ and ⑤ multiply of
ขอ 3 เครื่อง มาย * ที่ใชในพอยนเตอร มายถึงอะไร
① address of ② value of ③ array of
④ and ⑤ multiply of
ขอ 4 ขอใดเปนการประกา ตั แปรพอยนเตอรที่ถูกตอง
① int& x; ② int& *x; ③ int* x;
④ int** x; ⑤ int* &x;
ขอ 5 ขอใดเปนการกำ นดใ พอยนเตอร x ชี้ไปที่ y
① *x = y; ② x = *y; ③ &x = y
④ x = &y; ⑤ *x = &y;
ขอ 6 ถาประกา char m, n; โดยตั แปร n อยูที่ตำแ นง 112233 ใน น ยค ามจำ ตั แปร m อยูกอน นาตั
แปร n ตั แปร m จะอยูที่ตำแ นงเทาไ รใน น ยค ามจำ
① 112229 ② 112231 ③ 112232
④ 112234 ⑤ 112237
จาก นของโปรแกรมดานลางนี้ใชตอบคำถามขอ 7-10 โดยกำ นดใ x เปนพอยนเตอรที่ชี้ไปยังตั แปร a
และ y เปนพอยนเตอรที่ชี้ไปยังตั แปร b
da
a = 2;
* ✗ =

b = 3; *
y
= &b
d%d%d%d\
x = y;
\
*x = 4;
\
b = b + *&a;
y = x;
\

1
ขอ 7 เลือกคำตอบที่ถูกตองที่ ุด ำ รับผลลัพธ (1)
① 2323 ② 2332 ③ 2333
④ 3223 ⑤ 3232
ขอ 8 เลือกคำตอบที่ถูกตองที่ ุด ำ รับผลลัพธ (2)
① 2323 ② 2332 ③ 2333
④ 3223 ⑤ 3232
ขอ 9 เลือกคำตอบที่ถูกตองที่ ุด ำ รับผลลัพธ (3)
① 2323 ② 2345 ③ 2443
④ 2444 ⑤ 4343
ขอ 10 เลือกคำตอบที่ถูกตองที่ ุด ำ รับผลลัพธ (4)
① 2543 ② 2544 ③ 2552
④ 2666 ⑤ ไมมีขอใดถูก
ขอ 11 C header file ใดตอไปนี้จัดอยูใน Library มาตรฐานของภา าซี
① studio.h ② arithmatic.h ③ times.h
④ stdlib.h ⑤ connio.h
ขอ 12 ฟงกชันในภา าซีไม ามารถ งคาคืนผาน type ของภา าซีใดตอไปนี้
① void ② integer ③ pointer
④ array ⑤ struct
ขอ 13 ตั แปรที่มี นาที่รับคาที่ถูก งมาพรอมการเรียกใชงานฟงกชันเรียก าอะไร
① argument ② local variable ③ global variable
④ expression ⑤ parameter
ขอ 14 ขอใดตอไปนี้กลา ไมถูกตอง ำ รับฟงกชันในภา าซี
① การ งคาของตั แปร primitive (เชน int, float) จะใชการ pass by value
② การ งคาอารเรยจะใชการ pass by reference
③ การ งคาของอิลิเมนตของอารเรยจะใชการ pass by value
④ การ งคาแอดเดร ของอิลิเมนตของอารเรยจะใชการ pass by reference
⑤ ขอที่ 1- 4 กลา ถูกตองทุกขอ

2
ขอ 15 การประกา ฟงกชัน (function declaration) ใดถูกตองที่ ุด
① void func(void x); ② void* func(int); ③ int[] func(void);
④ int[2] func(int x[2]); ⑤ int func(x);
ขอ 16 ผลลัพธของโปรแกรมดานลางคืออะไร
int main(void) {
int a=1,b=2,c=3;
c = func(a, &b);
printf("%d %d %d", a, b, c);
return 0;
}
int func(int x, int *y){
x = x * 2;
*y = *y * 2; :
return x+(*y);
}
①123 ②145 ③146
④246 ⑤249
17 จาก function definition ดานลางนี้ ผลลัพธของ func(4) คืออะไร
int func(int x){
if(x == 2)
return 1;
else
return x+func(x-1);
}
①0 ②2 ③4
④8 ⑤ ไมมีขอถูก
จากโปรแกรมดานลางนี้ ใชตอบคำถามขอ 18 -19
int main(void) {
int a[ ] = {1,2,3,4};
int b[ ] = {1,2,3,4};
func(a,b,4); // a =? b=?
return 0;
}
int func(int x[ ], int y[ ], int size){
int i = 0;
for(i=0; i<size; i++)

3
x[i] = x[i] + y[i];
return y[0];
}
18 จากการเรียกฟงกชัน func(a, b, 4) คาของอิลิเมนตภายในอารเรย a เปนเทาไร
①1111 ②1234 ③2468
④ 3 6 9 12 ⑤ ไมมีขอถูก
19 จากการเรียกฟงกชัน func(a, b, 4) คาของอิลิเมนตภายในอารเรย b เปนเทาไร
①1111 ②1234 ③2468
④ 3 6 9 12 ⑤ ไมมีขอถูก
20 จากโปรแกรมดานลาง คาของ p ลังจากเรียกฟงกชัน func(&a[0],&a[1]) มีคาเปนเทาใด
int main(void) {
int a[ ] = {5,10};
int *p = func(&a[0],&a[1]); // p=?
return 0;
}
int* func(int *a, int *b){
if(*a>*b)
return a;
else
return b;
}
①5 ② 10 ③ &a[0]
④ &a[1] ⑤ [5, 10]
ขอ 21 ขอใดตอไปนี้เปนคาของ string
① ‘It is a string’ ② “It is a string” ③ It is a string
④ It is a string\0 ⑤ char str[50];
ขอ 22 ตั อัก รใดอยูที่ นทายของ string
① ‘.’ ② ‘0‘ ③ ‘\n’
④ ‘\0’ ⑤ ‘\r’

4
จากโปรแกรมตอไปนี้ใชตอบคำถามขอ 23-24
#include <stdio.h>
#include <string.h>
int main( )
{
char str1[ ] = "How are you?";
char str2[5] = "";
strcpy(str2,str1);
printf("%s\n",str2);
printf("len(str2) = %d\n", strlen(str2));
return 0;
}
ขอ 23 เลือกคำตอบที่ถูกตองที่ ุด ำ รับชอง าง (23)
① How are you? ② How a ③ How
④ you? ⑤ “How are you?”
ขอ 24 เลือกคำตอบที่ถูกตองที่ ุด ำ รับชอง าง (24)
①4 ②5 ③7
④ 12 ⑤ 13
ขอ 25 ขอใดประกา User defined type ถูกตอง
① enum vowel {a=1, e, i, o, u}; ② enum vowel = {a=a, e=e, i=i, o=o, u=u};
③ enum vowel = {a=1, e, i, o, u}; ④ enum vowel {“a”, “e”, “i”, “o”, “u”};
⑤ enum vowel = {“a”=1, “e”=2, “i”=3, “o”=4, “u”=5};
ขอ 26 ผลลัพธที่แ ดงบน นาจอคือขอใด
#include <stdio.h>
int main( )
{
enum test {pass, fail};
enum test result;
result = pass;
printf("%d\n",result);
return 0;
}
① pass ② fail ③0
④1 ⑤ ไมมีขอใดถูก

5
ขอ 27 ผลลัพธที่แ ดงบน นาจอคือขอใด
#include <stdio.h>
int main( )
{
enum test {pass, fail=2};
enum test result;
result = pass;
printf("%d\n",result);
return 0;
}
① pass ② fail ③0
④1 ⑤ ไมมีขอใดถูก
ขอ 28 ขอใดประกา Structure type ถูกตอง
① struct { int x;}; ② struct {DATA int x;};
③ struct { int x;} DATA; ④ typedef struct { int x;} DATA;
⑤ typedef struct DATA { int x;};
ขอ 29 จากขอ 28 ขอใดประกา ตั แปรแบบ Structure ที่ถูกตองที่ ุด
① struct DATA a; ② struct DATA=a; ③ DATA a;
④ DATA = a; ⑤ typedef struct DATA a;
ขอ 30 จากขอ 29 ถา ราง pointer ชื่อ ptr ใ ชี้ไปที่ตั แปร a (ptr=&a;) ขอใดผิด
① a.x = 10; ② (*ptr).x = 10; ③ *ptr.x = 10;
④ ptr -> x = 10; ⑤ ไมมีขอใดผิด

6
วนที่ 2 อัตนัย 3 ขอ ขอละ 10 คะแนน รวม 30 คะแนน
ขอ 1 จงเติมโปรแกรมขางลางใ มบูรณ ซึง่ เปนโปรแกรมแ ดงคาในตั แปรชุด x (Array) 1 มิติ
แ ดงคาจากซายไปข า(Forward) และจากข าไปซาย (Backward) โดยการแ ดงผลจะเปนดังรูปขางลางนี้

*** ามเพิ่มตัวแปรอื่นๆ, ไมใ พิมพขอความตรงๆและไมใ ใชตัวแปรชุดในการแ ดงผล (ใ ใชพอยตเตอร)


หากไมทำตามที่กำหนดคะแนนขอนี้จะเปน 0 ***

#include <stdio.h>
int main (void)
{
int i;
char x[ ] = {'s','t','e','p',' ','o','n',' ','N','O',' ','P','E','T','S'};
char* ptr;
ptr=x;
printf("Forward :");
for(i=0;i<15;i++)
printf("%c",*(ptr+i));
printf("\nBackward:");
for(i=0;i<15;i++)
printf("%c",*(ptr+14-i));
return 0;
}

7
ขอ 2 จงเขียนโปรแกรมเพื่อกลับลำดับแถ ของอารเรย องมิติโดย รางฟงกชัน void vertical_flip(int arr[4][4]) ซึง่
รับคาอารเรย 2 มิติที่ตองกลับลำดับโดยการ ลับคาของอิลิเมนตทั้ง มดในแตละแถวดังตัวอยาง (หาม รางอารเรย
ใ มเพื่อยายคา)
ตั อยางผลลัพธ
int main(void) {
int a[4][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};
printf("\noriginal:\n");
print_array(a);
vertical_flip(a);
printf("\nflipped:\n");
print_array(a);
return 0;
}

// function declarations
void vertical_flip(int arr[4][4]);

// function definitions
void vertical_flip(int arr[4][4]){
for(int i=0; i<2; i++){
for(int j=0; j<4; j++){
int temp = arr[i][j];
arr[i][j] = arr[3-i][j];
arr[3-i][j] = temp;
}
}
return;
}

8
9
ขอ 3 จงเขียนโปรแกรมภา าซีเพื่อทำการบ กจำน นเชิงซอน (Complex number) 2 จำน น โดย ราง
Structure type ชื่อ complex ที่ประกอบด ยจำน นจริง (Real) และจำน นจินตภาพ (Imaginary) และ รางตั
แปรที่เปนชนิด complex นี้เพื่อรับคาจากแปนพิมพ 2 จำน น แล ทำการบ กจำน นเชิงซอนทั้ง 2 จำน นเขา
ด ยกัน เก็บผลลัพธและแ ดงผลลัพธที่ไดในรูปจำน นเชิงซอนโดยใชตั แปรชนิด complex อีก นึ่งตั
*** ากไมมีการใชตัวแปรชนิด complex ที่ รางขึ้นเพื่อรับคา คำนวณคา และ แ ดงผล จะถือวาไมปฏิบัติ
ตามโจทยและไดคะแนนเปน 0 คะแนน *** ตั อยางการแ ดงผลเปนดังรูปขางลางนี้
Please enter first complex number (a+bi): 5+6i
Please enter second complex number (a+bi): 3+4i
Addition: 8+10i

#include <stdio.h>
struct complex
{
int real;
int imag;
};
int main()
{
struct complex c1, c2, c3;
printf("Please enter first complex number (a+bi): ");
scanf("%d+%di", &c1.real, &c1.imag);
printf("Please enter second complex number (a+bi): ");
scanf("%d+%di", &c2.real, &c2.imag);
c3.real = c1.real + c2.real;
c3.imag = c1.imag + c2.imag;
printf("Addition: %d+%di", c3.real, c3.imag);
return 0;
}

10

You might also like