Professional Documents
Culture Documents
Kiểm Tra Cuối Kỳ Thực Hành - Xem Lại Lần Làm Thử
Kiểm Tra Cuối Kỳ Thực Hành - Xem Lại Lần Làm Thử
Nhà của tôi Các khoá học của tôi 2122I_INT1008_22 General Kiểm tra cuối kỳ thực hành
Câu Hỏi 1 Không trả lời
2
Viết chương trình giải phương trình bậc 2: a*x + b*x + c = 0
Đầu ra: In ra nghiệm của phương trình làm tròn đến hai chữ số sau thập phân theo thứ tự giảm dần, nếu phương
trình không có nghiệm, in ra màn hình "Vo nghiem". Nếu phương trình có vô số nghiệm in ra màn hình "Vo so nghiem"
For example:
Input Result
1 -2 1 1.00
2 5 -4 0.64 -3.14
Câu Hỏi 2 Đúng
Viết hàm int** keepEven (int** matrix, int nRows, int nCols) kiểm tra ma trận hai chiều.
Hàm nhận đầu vào là ma trận matrix có kích thước nRows × nC ols . Hàm trả về một ma trận mới sao cho tất cả
các giá trị là số lẻ trong ma trận ban đầu được gán giá trị 0 và giữ nguyên các số chẵn.
Input Expected
6 5
0 0 0 26 0
9 11 29 26 21
26 8 0 0 0
26 8 1 11 27
0 0 28 0 6
5 25 28 11 6
4 0 4 0 0
4 3 4 19 3
8 12 26 0 14
8 12 26 11 14
12 8 0 12 0
12 8 19 12 9
Input Expected
16 3
22 14 0
22 14 19
0 0 46
25 5 46
0 20 0
43 20 21
0 0 42
27 37 42
42 0 0
42 3 15
40 0 0
40 17 17
0 10 6
19 10 6
28 0 0
28 41 1
0 0 46
13 19 46
0 0 0
21 47 45
44 32 0
44 32 11
40 0 18
40 0 18
28 8 0
28 8 41
6 0 22
6 13 22
0 0 0
0 15 37
0 0 0
11 0 19
18 14
244 0 0 0 130 0 110 28 0 236 0
244 69 125 141 130 59 110 28 111 236 213 186 66 241
180 0 208 86 28 0 232 0 0 0 0 0
180 199 208 86 28 209 232 107 207 193 33 85 77 176
170 84 0 122 0 36 0 0 216 0 242
170 84 213 122 135 36 169 155 216 205 242 191 224 193
0 0 132 102 0 0 32 0 0 0 222 0
131 103 132 102 193 223 32 75 0 59 222 119 103 29
0 92 0 0 0 60 0 0 194 138 0 0 4
147 92 107 205 45 60 83 89 194 138 39 47 42 142
250 242 0 188 0 0 10 0 0 0 0 14
250 242 185 188 85 129 10 85 71 145 81 146 122 139
196 0 0 0 170 0 0 0 118 0 16 30
196 115 85 239 170 15 15 63 118 91 16 30 236 150
0 200 214 202 6 0 0 0 0 0 0 144
181 200 214 202 6 79 9 123 137 3 173 144 211 31
96 150 0 0 0 192 0 178 110 0 0
96 150 13 203 29 192 137 178 110 159 167 32 172 18
0 0 0 0 0 76 80 220 0 0 200 0 2
39 151 97 31 135 76 80 220 39 111 200 41 224 95
0 0 0 232 0 84 0 0 0 10 0 0 210
43 195 133 232 225 84 173 151 49 10 143 23 210 91
0 176 242 174 184 0 0 192 0 248
75 176 242 174 184 227 149 192 147 248 28 212 125 73
0 0 94 168 66 0 0 0 0 214 0 0 2
71 87 94 168 66 185 145 197 113 214 223 1 232 79
0 0 0 0 0 0 0 130 204 0 0 82 0
191 205 177 169 203 0 199 130 204 33 137 82 57 133
186 0 10 46 106 122 0 0 96 0 0
186 71 10 46 106 122 79 67 96 33 155 40 176 196
0 4 0 170 36 0 120 212 0 24 154
243 4 249 170 36 245 120 212 143 24 154 228 21 150
248 76 164 130 0 0 0 106 0 0 14
248 76 164 130 69 63 135 106 93 133 148 182 187 40
94 0 0 0 54 0 0 96 0 0 0 0 100
94 179 155 133 54 123 147 96 251 123 207 29 100 22
7 11
62 0 72 0 16 44 0 50 72 0 0
62 39 72 67 16 44 1 50 72 25 63
0 6 0 0 8 68 28 60 54 46 0
39 6 63 39 8 68 28 60 54 46 61
0 0 0 0 0 76 42 0 6 0 34
7 45 29 35 11 76 42 75 6 53 34
52 30 0 16 0 76 0 36 4 0 0
52 30 71 16 57 76 67 36 4 43 17
2 0 50 0 28 0 0 76 4 0 16
2 53 50 25 28 63 13 76 4 49 16
0 0 64 74 66 44 52 54 60 28 0
15 29 64 74 66 44 52 54 60 28 7
76 16 6 10 0 0 72 20 0 0 0
76 16 6 10 9 37 72 20 17 49 13
Input Expected
19 9
108 0 0 0 38 64 74 0 136
54 165 94 138 74 40 10 30 79
8 0 0 0 20 0 8 0 0
8 41 21 43 20 169 8 63 83
0 60 66 76 0 68 0 86 50
25 0 86 75 26 82 124 103 89
58 96 0 164 94 0 0 0 0
58 96 99 164 94 37 17 129 27
100 54 0 0 0 112 0 48 0
56 110 80 6 23 170 45 88 10
2 0 134 74 0 104 0 0 162
98 74 168 54 4 96 42 10 98
114 16 14 28 0 0 0 0 0
114 16 14 28 93 67 61 75 99
Đúng
Câu Hỏi 3 Đúng
Một véc-tơ n chiều: x⃗ = (x1 , x2 , … , xn ) có thể biểu diễn bằng một mảng gồm n số. Trong nhiều bài toán người ta
muốn giá trị của các chiều véc-tơ thuộc đoạn [0, 1] (hoặc [−1, 1] )tức là xi ∈ [0, 1]∀i . Một cách để làm việc đó là
chia các phần tử của mảng cho số lớn nhất có thể có của các phần tử đó.
Viết hàm void normalize(double *out, int *in, int n) , nhận các tham số là: con trỏ trỏ đến mảng đầu vào in,
con trỏ trỏ đến mảng đầu ra out và số nguyên n là số phần tử của hai mảng. Mảng đầu vào chứa các số nguyên
trong đoạn [0, 255]. Mảng đầu ra là mảng chuẩn hóa của mảng đầu vào, chứa các số thực sau khi chia số nguyên
tương ứng của mảng đầu vào cho 255. Nhiệm vụ của hàm này là phải tính mảng đầu ra.
For example:
Input Result
5
0.306 0.655 0.353 0.467 0.388
78 167 90 119 99
Input
78 167 90 119 99
20
245 23 104 106 252 139 243 252 136 58 97 196 158 253 53 234 203 95 83 214
10
64
241 32 145 162 65 86 100 240 245 94 196 213 228 45 44 200 36 54 82 36 169 54 11 253 38
100
63 111 67 123 244 98 148 66 27 115 126 159 90 211 131 90 82 91 185 49 121 248 150 185
Đúng
Câu Hỏi 4 Đúng
a
5
+b
5
+c
5
+d
5 5
= e
Viết chương trình nhận vào từ bàn phím tham số N và tìm kiếm vét cạn tất cả các lời giải với a, b , c , d và e nhỏ hơn
hoặc bằng N . In các lời giải ra màn hình.
Tính trước giá trị mũ 5 của các số nguyên và lưu chúng vào một mảng để tiết kiệm thời gian.
For example:
Input Result
1 #include <iostream>
2 using namespace std;
3 ▼ int main (){
4 unsigned long long n;
5 cin>>n;
6 unsigned long long m[5];
7 ▼ for(unsigned long a =1; a<n; a++){
8 m[0]=a*a*a*a*a;
9 ▼ for(unsigned long long b=a+1; b<n; b++){
10 m[1]=b*b*b*b*b;
11 ▼ for(unsigned long long c=b+1; c<n; c++){
12 m[2]=c*c*c*c*c;
13 ▼ for(unsigned long long d=c+1; d<n; d++){
14 m[3]=d*d*d*d*d;
15 ▼ for(unsigned long long e=n; e>d; e--){
16 m[4]=e*e*e*e*e;
17 if(m[0]+m[1]+m[2]+m[3]==m[4])
18 cout<<a<<"^5 + "<<b<<"^5 + "<<c<<"^5 + "<<d<<"^5"<<" = "<<e<<"^5
19 }
20 }
21 }
22 }
23 }
24 }
Input Expected Got
100
149 27^5 + 84^5 + 110^5 + 133^5 = 144^5 27^5 + 84^5 + 110^5 + 133^5 = 144^5
Đúng
Câu Hỏi 5 Đúng
Một cửa hàng đặt ra mục tiêu là phải bán được một số lượng sản phẩm nhất định trong một ngày. Mỗi ngày cửa hàng
này sẽ ghi lại số chênh lệch giữa sản phẩm bán được và mục tiêu đã đề ra. Các số liệu được lưu trữ tối đa trong vòng
30 ngày.
Viết một chương trình nhập vào số ngày theo dõi n và độ chênh lệch theo từng ngày. Ngày đầu tiên được tính là ngày
1 , in ra màn hình số liệu của các ngày lẻ, cách nhau bởi dấu cách.
For example:
Input Result
3 -12 27 16 -12 16
1 #include <iostream>
2 using namespace std;
3 ▼ int main (){
4 int n;cin>>n;
5 int a[30];
6 ▼ for(int i =0; i<n; i++){
7 cin>>a[i];
8 }
9 ▼ for(int i =0; i<n ; i++){
10 if(i%2==0) cout<<a[i]<<" ";
11 }
12 }
Input
3 -12 27 16
Input
6 -45 39 29 1 9 -38
30 -21 -31 -23 20 38 -48 41 34 3 -15 34 -1 8 -41 36 -1 -30 7 -12 -22 -31 35 -48 33 0 -
Đúng
Câu Hỏi 6 Đúng
Tìm dãy số nguyên liên tiếp dài nhất mà không chứa số nguyên tố.
Viết một chương trình nhận đầu vào là một số nguyên dương n (n ≤ 1000) và in ra dãy số nguyên liên tiếp dài nhất
nằm giữa 2 và n mà không chứa số nguyên tố.
For example:
Input Result
10 8 9 10
100 90 91 92 93 94 95 96 90
10 8 9 10 8 9
1000 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 888
Input Expected Got
500 114 115 116 117 118 119 120 121 122 123 124 125 126 114
Đúng
Câu Hỏi 7 Đúng
Viết hàm max_freq đọc vào 1 mảng n số nguyên dương. Trả về phần tử xuất hiện nhiều nhất. Nếu có nhiều phần tử
có tần số xuất hiện nhiều như nhau thì in ra số nhỏ nhất. Giá trị mỗi phần tử trong mảng <=1000.
-dòng đầu tiên số nguyên n, là số phần tử của mảng tham số đầu vào
Đầu ra: In ra phần tử xuất hiện nhiều nhất, nếu có nhiều phần tử có tần suất xuất hiện nhiều bằng nhau thì in ra số
nhỏ nhất.
For example:
Input Result
5
2
2 5 1 5 2
1 #include <iostream>
2 using namespace std;
3 ▼ int max_freq(int*a, int n){
4 int *b=new int [1000];
5 for(int i =0; i<n; i++)b[a[i]]++;
6 int ans=0;
7 int count=-1;
8 ▼ for(int i =0; i<n; i++){
9 if(count<b[a[i]]) {ans =a[i]; count =b[a[i]];}
10 ▼ else if(count==b[a[i]]){
11 if(ans>a[i]) ans=a[i];
12 }
13 }
14 return ans;
15 }
16 ▼ int main (){
17 int n; cin>>n;
18 int arr[1000];
19 ▼ for(int i =0; i<n; i++){
20 cin>>arr[i];
5
2 2
2 5 1 5 2
Input Expected Got
5
2 2
2 5 3 20 7
8
2 2
2 5 3 20 7 9 2 11
8
3 3
2 5 3 3 3 5 2 5
5
1 1
1 1 1 1 1
Đúng
Câu Hỏi 8 Đúng
Sử dụng Struct SinhVien gồm mã sinh viên (string), điểm giữa kì (float), điểm cuối kì (float) . Nhập vào danh
sách n SinhVien. In ra danh sách mã sinh viên có điểm cuối kì và giữa kì đều >= 8. Nếu không có sinh viên nào thỏa
mãn in ra -1
For example:
Input Result
5
INT1008SV2
INT1008SV1
INT1008SV5
6 6
INT1008SV2
9 9
INT1008SV3
2 9
INT1008SV4
10 3
INT1008SV5
10 9
Input Expected Got
5
INT1008SV2
INT1008SV2
INT1008SV1
INT1008SV5 INT1008SV5
6 6
INT1008SV2
9 9
INT1008SV3
2 9
INT1008SV4
10 3
INT1008SV5
10 9
5
INT1008SV1
INT1008SV1
INT1008SV1
INT1008SV2
INT1008SV2
8 8
INT1008SV3
INT1008SV3
INT1008SV2
INT1008SV4
INT1008SV4
9 9
INT1008SV5 INT1008SV5
INT1008SV3
8 9
INT1008SV4
10 8.5
INT1008SV5
10 9
5
INT1008SV1
INT1008SV1
INT1008SV1
INT1008SV4
INT1008SV4
8 8
INT1008SV5 INT1008SV5
INT1008SV2
8 7.5
INT1008SV3
7.5 8
INT1008SV4
10 8.5
INT1008SV5
10 9
5
-1 -1
INT1008SV1
6 6
INT1008SV2
8 7.5
INT1008SV3
7.5 8
INT1008SV4
7 8.5
INT1008SV5
6 9
Câu Hỏi 9 Đúng
Giả sử bạn là nhân viên của một công ty cây xanh, được giao cho chăm sóc một luống đất. Luống đất đó được chia
thành nhiều ô đất nhỏ có kích cỡ bằng nhau.
Trước khi được giao cho bạn chăm sóc, trên luống hoa đã được trồng sẵn một số cây xanh tán rộng.
Một ngày đầu xuân, công ty gửi đến cho bạn một số cây hoa và yêu cầu bạn trồng vào những vị trí còn trống trong
luống hoa.
Đây là những cây hoa hướng sáng và chúng không thể sống được dưới bóng râm của cây khác, đặc biệt là cây tán
rộng. Vì vậy, bạn không thể trồng chúng tại ô bên cạnh những ô đã được trồng cây xanh tán rộng.
Và nếu trồng những cây hoa bên cạnh nhau, chúng sẽ tranh giành phân bón và nước và sau cùng, cả hai cây sẽ cùng
chết.
Viết hàm bool canPlaceFlowers (int flowerbed[], int n, int k) kiểm tra xem có thể trồng hết số hoa mới
được cấp vào trong luống đất của bạn hay không.
Hàm nhận đầu vào là mảng f lowerbed ứng với luống đất có n ô đất, đánh dấu những vị trí trong luống đất đã được
trồng cây xanh trước đó (giá trị 1 ứng với vị trí cây đã được trồng và 0 ứng với vị trí đất trống) và số lượng hoa được
phát thêm k. Hàm trả về true nếu có thể trồng hết toàn bộ k cây hoa vào luống đất và f alse trong trường hợp
ngược lại.
For example:
canPlaceFlowers(flowerbed, n, k) 10 1
true
0 0 0 1 1 1 1 1 0 1
Test Input
canPlaceFlowers(flowerbed, n, k) 10 1
0 0 0 1 1 1 1 1 0 1
canPlaceFlowers(flowerbed, n, k) 10 1
1 0 1 0 1 0 0 1 0 1
canPlaceFlowers(flowerbed, n, k) 30 6
0 1 0 1 1 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 1 1 0 0
canPlaceFlowers(flowerbed, n, k) 70 12
0 0 0 1 0 0 0 1 0 1 0 0 0 0 1 1 1 1 1 1 0 1 1 1 0 1
canPlaceFlowers(flowerbed, n, k) 70 12
1 1 1 0 1 0 0 1 0 0 0 1 1 1 0 0 0 1 1 1 1 0 1 1 1 1
canPlaceFlowers(flowerbed, n, k) 80 15
1 0 0 0 1 1 0 0 1 1 0 1 1 1 1 1 0 0 0 1 1 0 1 1 1 1
canPlaceFlowers(flowerbed, n, k) 150 13
1 0 0 0 0 0 1 0 1 0 1 1 1 0 1 0 0 1 0 0 1 0 0 1 0 0
canPlaceFlowers(flowerbed, n, k) 180 25
1 0 0 1 1 0 0 0 1 1 0 0 1 0 0 1 0 1 1 1 1 1 1 0 0 0
Đúng
Câu Hỏi 10 Đúng
Số xấu xí là một số nguyên dương mà các thừa số nguyên tố của nó chỉ bao gồm 2, 3, 5. Ví dụ, 6, 8 là xấu xí trong
khi đó 14 không xấu xí vì nó có một thừa số nguyên tố là 7 . 1 cũng được coi là một số xấu xí.
Viết hàm bool isUgly(int n) trả về true nếu số n là xấu xí, ngược lại trả về f alse .
For example:
int n;
25 1
cin >> n;
Test Input Expected Got
int n;
25 1 1
cin >> n;
cout << isUgly(n);
int n;
32769 0 0
cin >> n;
cout << isUgly(n);
int n;
62501 0 0
cin >> n;
cout << isUgly(n);
int n;
843750 1 1
cin >> n;
cout << isUgly(n);
int n;
995328 1 1
cin >> n;
cout << isUgly(n);
Đúng
Câu Hỏi 11 Đúng
Cho một xâu kí tự chỉ bao gồm các kí tự '(' , ')' , '{' , '}' , '[' and ']' , xác định xem xâu đó có hợp lệ
hay không.
Các dấu ngoặc cần phải được đóng theo thứ tự, "()" và "()[]{}" đều là xâu hợp lệ
Viết hàm bool isValid(string s) trả về true nếu xâu kí tự chứa các dấu ngoặc là hợp lệ, ngược lại f alse .
For example:
string s;
{[()]} 1
cin >> s;
Test Input Expected Got
string s; {[()]} 1 1
cin >> s;
cout << isValid(s);
string s; {[(])} 0 0
cin >> s;
cout << isValid(s);
string s; {[()] 0 0
cin >> s;
cout << isValid(s);
string s; [{(}] 0 0
cin >> s;
cout << isValid(s);
string s; ()[]{} 1 1
cin >> s;
cout << isValid(s);
Đúng
◄ Bài tập ôn tập (làm ở nhà) Chuyển tới... Bài 1 - Giới thiệu ►