ข้อสอบโปรแกรมภาษา C ภาษาจีน 中山大学《C语言程序设计》2020–2021学年第一学期

Nuttaset kuapanich
3 min readFeb 13, 2023

ในเอกสารนี้เป็นข้อสอบกลางภาควิชาเขียนโปรแกรมภาษาซี ส่วนแบบฝึกหัดที่ครูให้ทำส่งในคาบ ครูเอาโจทย์มาจาก LeetCode (力扣) สามารถเข้าไปลองทำในนั้นได้ครับ 😃

สามารถโหลดเอกสารได้ ที่นี่

ข้อที่ 1 ที่จริงสูตรแปลงจากเซลเซียสเป็นฟาเรนไฮต์คือ F = 9/5(C) + 32 แต่โจทย์ให้มาเป็น F = (C+32)*9/5 ก็เอาตามที่โจทย์ให้มา

#include <stdio.h>
/* 摄氏 (shèshì) = Celsius
* 华氏 (huáshì) = Fahrenheit
* 展幕 (zhǎnmù) = จอภาพ (screen)
*/

int main(){
float c,f;
scanf("%f", &c);
f = (c+32)*9/5;
printf("%.2f", f);
}

ข้อที่ 2 เช็คว่าเลขนั้นมี 5 และ 7 เป็นตัวประกอบหรือไม่

#include <stdio.h>
int main(){
int n;
scanf("%d", &n);
printf( n%5==0 && n%7==0 ? "yes":"no");
}

ข้อที่ 3 เช็คว่าตัวเลขนั้นเป็นจำนวนเฉพาะหรือไม่

#include <stdio.h>
int main(){
int n;
scanf("%d", &n);

int prime=1;
if ( n<=1) printf("NO"); //จำนวนที่น้อยกว่า 0, 0 และ 1 ไม่ใช้จำนวนเฉพาะ
else {
for (int i=2; i<=n/2; i++){ //ให้ตัวเลขนั้นหารกับทุกค่าที่น้อยกว่าหรือเท่ากับครึ่งนึงของมัน
//(ถ้ามากกว่าครึ่งนึงของค่านั้นก็ไม่สามารถหารลงตัว)
if (n%i == 0){
prime = 0; //เปลี่ยนสถานะเป็นไม่ใช่จำนวนเฉพาะ
break;
}
}
printf(prime==1 ? "YES":"NO");
}
}

ข้อที่ 4 เรียงลำดับตัวเลข 15 ตัวจากน้อยไปมาก (สามารถใช้ฟังก์ชั่น qsort() ในการเรียงได้ แต่ปกติตอนสอบจะให้เขียนขึ้นมาเอง) ในที่นี้ใช้ Bubble Sort Algorithm

#include <stdio.h>
#define LEN 15
int main(){

// 1. รับตัวเลข
int a[LEN];
for (int i=0; i<LEN;i++){
scanf("%d", &a[i]);
}

// 2. เรียงตัวเลข
int top=0, temp; // top คือจุดบนสุดที่ตัวเลขลอยไปถึง, temp ไว้เก็บค่าชั่วคราวตอนเปลี่ยนตัวเลขที่จะลอย
/*
* เช็คตัวเลขจากด้านล่าง (บนสุดคือ index ที่ 0 ล่างสุดคือ index ที่ 14)
* เลขที่น้อยกว่าจะลอยขึ้นด้านบนผ่านตัวเลขที่มีค่ามากกว่า จนกว่าจะถึง top หรือตัวเลขที่มีค่าน้อยกว่ามัน
* เลขที่มีค่าน้อยกว่าจะเป็นเลขที่ลอยขึ้นไปแทน
* */

while(top<LEN){
for (int i = LEN-1; i>=top; i--) {
if (i!=0) { // ถ้า i=0 จะเทียบกับ i-1 ไม่ได้
if (a[i] < a[i - 1]) {
temp = a[i - 1];
a[i - 1] = a[i];
a[i] = temp;
}
}
}
top++;
}

// 3. แสดงตัวเลข
for (int i=0; i<LEN; i++){
printf("%d ", *(a+i));
}
}

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

Nuttaset kuapanich
Nuttaset kuapanich

Written by Nuttaset kuapanich

กำลังศึกษาระดับปริญญาตรี คณะปัญญาประดิษฐ์ มหาวิยาลัยซุนยัดเซ็น Email: kuapanich@mail2.sysu.edu.cn

No responses yet

Write a response