You are on page 1of 10

Đã bắt đầu vào Thứ tư, 22 Tháng mười một 2023, 2:06 PM

lúc
Tình trạng Đã hoàn thành
Hoàn thành vào Thứ tư, 22 Tháng mười một 2023, 2:59 PM
lúc
Thời gian thực 53 phút 3 giây
hiện
Điểm 5,00/5,00
Điểm 10,00 của 10,00 (100%)
Câu hỏi 1
Chính xác

Điểm 1,00 của 1,00

Từ những cấu trúc đã được xây dựng ở bài 3, với đầu vào là 2 struct Circle, chương trình yêu cầu viết hàm kiểm tra xem 2 đường tròn đó có
cắt nhau tại 2 điểm hay không. Nếu cắt nhau tại 2 điểm, trả về giá trị 1, ngược lại 0.

int checkPosition(Circle c1, Circle c2){

//TO DO

For example:

Input Result

1 1 2 Hai duong tron cat nhau tai 2 diem


3 4 3

1 1 2 Hai duong tron khong cat nhau tai 2 diem


4 4 2

Answer: (penalty regime: 0 %)


1 #include <stdio.h>
2 ▼ struct Point{
3 int x;
4 int y;
5 };
6 ▼ struct Circle{
7 Point center;
8 int radius;
9 };
10 ▼ int checkPosition(Circle c1, Circle c2){
11 float m;
12 ▼ for (int i=1; i<=2; i++){
13 struct Circle ci;
14 scanf("%d", &ci.center.x);
15 scanf("%d", &ci.center.y);
16 scanf("%d", &ci.radius);
17 }
18 m = (c2.center.x-c1.center.x)*(c2.center.x-c1.center.x)+(c2.center.y-c1.center.y)*(c2.center.y-c1.center
19 if (m<(c1.radius+c2.radius)*(c1.radius+c2.radius)) return 1;
20 else return 0;
21 }

Input Expected Got

 1 1 2 Hai duong tron cat nhau tai 2 diem Hai duong tron cat nhau tai 2 diem 
3 4 3

 1 1 2 Hai duong tron khong cat nhau tai 2 diem Hai duong tron khong cat nhau tai 2 diem 
4 4 2

 1 1 1 Hai duong tron cat nhau tai 2 diem Hai duong tron cat nhau tai 2 diem 
2 2 2

 0 0 5 Hai duong tron khong cat nhau tai 2 diem Hai duong tron khong cat nhau tai 2 diem 
6 6 3

Passed all tests! 

Chính xác
Điểm cho bài nộp này: 1,00/1,00.
Câu hỏi 2
Chính xác

Điểm 1,00 của 1,00

Ta xây dựng 1 struct để quản lý thông tin sinh viên như sau:

struct student{
char id[5];

char name[100];

char sex;

int height;

}
File đầu vào gồm 1 mảng struct student có 2 phần tử:

SV01 Nhuan M 180

SV02 Nhi F 160

Chương trình yêu cầu in ra thông tin sinh viên theo format:

"<id> <name> <sex> <height>"


Trong đó <id> có độ rộng là 6 và căn lề trái

<name> có độ rộng là 12 và căn lề phải

<sex> có độ rộng là 3, căn phải

<height> có độ rộng là 5, căn phải

Output:
SV01 Nhuan M 180

SV02 Nhi F 160 // xuống dòng

Copy đoạn sau vào box Answer và viết phát biểu vào phần //TO DO

void printInfo(Student students[]){


//TO DO
}

For example:

Input Result

SV01 Nhuan M 180 SV01 Nhuan M 180


SV02 Nhi F 160 SV02 Nhi F 160

Answer: (penalty regime: 0 %)


1 ▼ struct student{
2 char id[5];
3 char name[100];
4 char sex;
5 int height;
6 };
7 ▼ void printInfo(Student students[]){
8 for (int i=0; i<2; i++)
9 printf("%-6s %12s %3c %5d\n", students[i].id, students[i].name, students[i].sex, students[i].height)
10 }
11
Input Expected Got

 SV01 Nhuan M 180 SV01 Nhuan M 180 SV01 Nhuan M 180 


SV02 Nhi F 160 SV02 Nhi F 160 SV02 Nhi F 160

 IT1 Thu F 160 IT1 Thu F 160 IT1 Thu F 160 


IT2 Feed M 170 IT2 Feed M 170 IT2 Feed M 170

 HT01 Thy F 165 HT01 Thy F 165 HT01 Thy F 165 


HT02 Ty F 165 HT02 Ty F 165 HT02 Ty F 165

 1910 Thao F 170 1910 Thao F 170 1910 Thao F 170 


1911 Thien M 180 1911 Thien M 180 1911 Thien M 180

Passed all tests! 

Chính xác
Điểm cho bài nộp này: 1,00/1,00.
Câu hỏi 3
Chính xác

Điểm 1,00 của 1,00

Giả sử ta có struct student như sau:

struct student{

char id[5];

char name[10];

int ly;
int hoa;

File đầu vào gồm:

Dòng 1 là số lượng sinh viên

Mỗi dòng tiếp theo là thông tin của 1 sinh viên


Chương trình yêu cầu xây dựng 1 giao diện console quản lý sinh viên có format:

Tiêu đề:

ID_ _ _ _ ‘ ‘Name_ _ _ _’ ‘_ _Ly’ ‘_ _Hoa

In ra thông tin của sinh viên theo format của tiêu đề (được cung cấp dưới đây)

Đồng thời tính điểm trung bình từng môn của các sinh viên (lấy 2 chữ số thập phân)

ID Name Ly Hoa

SV01 Thinh 10 8
SV02 Tuyen 9 9

Diem trung binh mon ly: 9.50

Diem trung binh mon hoa: 8.50 // xuống dòng

Copy đoạn dưới đây và viết phát biểu vào //TO DO

void printInfo(Student students[], int n){


printf("%-7s %10s %5s %5s\n","id","name","ly","hoa");
//TO DO
}

For example:

Input Result

2 id name ly hoa
SV01 Thinh 10 8 SV01 Thinh 10 8
SV02 Tuyen 9 9 SV02 Tuyen 9 9
Diem trung binh mon ly: 9.50
Diem trung binh mon ly: 8.50

Answer: (penalty regime: 0 %)


1 #include <stdio.h>
2 ▼ struct student{
3 char id[5];
4 char name[10];
5 int ly;
6 int hoa;
7 };
8 ▼ void printInfo(Student students[], int n){
9 float a=0, b=0;
10 printf("%-7s %10s %5s %5s\n","id","name","ly","hoa");
11 ▼ for (int i=0; i<n; i++){
12 printf("%-7s %10s %5d %5d\n", students[i].id, students[i].name, students[i].ly, students[i].hoa);
13 a+=students[i].ly;
14 b+=students[i].hoa;
15 }
16 printf("Diem trung binh mon ly: %.2f\n", a/n);
17 printf("Diem trung binh mon ly: %.2f", b/n);
18 }
18 }

Input Expected Got

 2 id name ly hoa id name ly hoa 


SV01 Thinh 10 8 SV01 Thinh 10 8 SV01 Thinh 10 8
SV02 Tuyen 9 9 SV02 Tuyen 9 9 SV02 Tuyen 9 9
Diem trung binh mon ly: 9.50 Diem trung binh mon ly: 9.50
Diem trung binh mon ly: 8.50 Diem trung binh mon ly: 8.50

 3 id name ly hoa id name ly hoa 


SV01 Tuan 10 10 SV01 Tuan 10 10 SV01 Tuan 10 10
SV02 Hung 10 10 SV02 Hung 10 10 SV02 Hung 10 10
SV03 Lam 10 10 SV03 Lam 10 10 SV03 Lam 10 10
Diem trung binh mon ly: 10.00 Diem trung binh mon ly: 10.00
Diem trung binh mon ly: 10.00 Diem trung binh mon ly: 10.00

 1 id name ly hoa id name ly hoa 


SV01 Thinh 8 7 SV01 Thinh 8 7 SV01 Thinh 8 7
Diem trung binh mon ly: 8.00 Diem trung binh mon ly: 8.00
Diem trung binh mon ly: 7.00 Diem trung binh mon ly: 7.00

 2 id name ly hoa id name ly hoa 


IT01 Dang 8 9 IT01 Dang 8 9 IT01 Dang 8 9
IT02 Yen 7 8 IT02 Yen 7 8 IT02 Yen 7 8
Diem trung binh mon ly: 7.50 Diem trung binh mon ly: 7.50
Diem trung binh mon ly: 8.50 Diem trung binh mon ly: 8.50

Passed all tests! 

Chính xác
Điểm cho bài nộp này: 1,00/1,00.
Câu hỏi 4
Chính xác

Điểm 1,00 của 1,00

Cho struct Point để quản lý các điểm trong hệ trục tọa độ Oxy như sau:

typedef struct sPoint{

int x;

int y;

} Point;
Đầu vào gồm 3 dòng, mỗi dòng là 1 đỉnh của tam giác. Yêu cầu viết hàm trả về diện tích của 3 tam giác đó (kiểu double), lấy 2 chữ số thập
phân.

Gợi ý công thức tính diện tích tam giác

Với p là nửa chu vi,

a,b,c: các cạnh của tam giác

Copy đoạn sau và phát biểu vào //TO DO

double area(Point a, Point b, Point c){


//TO DO

For example:

Input Result

1 1 1.00
1 2
3 1

Answer: (penalty regime: 0 %)


1 #include <math.h>
2 ▼ struct Point{
3 int x;
4 int y;
5 };
6 ▼ double area(Point a, Point b, Point c){
7 float m, n, q;
8 m = sqrt((b.x-a.x)*(b.x-a.x)+(b.y-a.y)*(b.y-a.y));
9 n = sqrt((c.x-b.x)*(c.x-b.x)+(c.y-b.y)*(c.y-b.y));
10 q = sqrt((a.x-c.x)*(a.x-c.x)+(a.y-c.y)*(a.y-c.y));
11 float p=(m+n+q)/2;
12 return sqrt(p*(p-m)*(p-n)*(p-q));
13 }
14

Input Expected Got

 1 1 1.00 1.00 
1 2
3 1

 0 0 0.50 0.50 
0 1
1 0
Input Expected Got

 1 10 4.50 4.50 
4 4
3 3

 1 5 14.00 14.00 
4 6
3 15

Passed all tests! 

Chính xác
Điểm cho bài nộp này: 1,00/1,00.
Câu hỏi 5
Chính xác

Điểm 1,00 của 1,00

Giả sử struct Point dùng để biểu diễn 1 điểm trong Oxy

typedef struct sPoint{

int x;

int y;

} Point;
struct Circle có 1 trường dữ liệu struct Point để lưu tâm hình tròn và 1 trường dữ liệu int để lưu bán kính đường tròn.

typedef struct sCircle{

Point center;

int radius;

} Circle;
Đầu vào gồm có 2 struct Circle. Chương trình yêu cầu nhập vào thông tin của 2 đường tròn và in ra diện tích của 2 đường tròn (kiểu double)
đó với pi =3.14 theo format sau:

“<S1> <S2>”

Với S1 là diện tích hình tròn 1, S2 là diện tích hình tròn 2, lấy 2 chữ số thập phân.

int main(){

//TO DO
}

For example:

Input Result

1 2 3 28.26 78.50
1 3 5

Answer: (penalty regime: 0 %)


1 #include <stdio.h>
2 ▼ struct Point{
3 int x;
4 int y;
5 };
6 ▼ struct Circle{
7 Point center;
8 int radius;
9 };
10 ▼ int main(){
11 ▼ for (int i=1; i<=2; i++){
12 struct Circle i;
13 scanf("%d", &i.center.x);
14 scanf("%d", &i.center.y);
15 scanf("%d", &i.radius);
16 printf("%.2f ", 3.14*i.radius*i.radius);
17 }
18 return 0;
19 }

Input Expected Got

 1 2 3 28.26 78.50 28.26 78.50 


1 3 5

 1 2 4 50.24 78.50 50.24 78.50 


1 3 5
Passed all tests! 

Chính xác
Điểm cho bài nộp này: 1,00/1,00.

BÁCH KHOA E-LEARNING

WEBSITE

HCMUT
MyBK
BKSI

LIÊN HỆ

 268 Lý Thường Kiệt, P.14, Q.10, TP.HCM

 (028) 38 651 670 - (028) 38 647 256 (Ext: 5258, 5234)

 elearning@hcmut.edu.vn

Copyright 2007-2022 BKEL - Phát triển dựa trên Moodle

You might also like