Professional Documents
Culture Documents
ĐÁP ÁN THAM KHẢO MÔN NHẬP MÔN LẬP TRÌNH CUỐI KÌ 1 – NH 2023-2024
Câu 1:
#include <iostream>
using namespace std;
int main()
{
cout << 13.0 / 5 - 24 % 2 << ",";
cout << (int)-7.1 * (21 / 6) + (float)7 / 4;
return 0;
}
Theo thứ tự độ ưu tiên toán tử, () được ưu tiên hơn (int) nên tiến hành tính 21/6 = 3
trước (chia số nguyên), sau đó tiến hành tính (int) -7.1 thành -7. Cuối cùng là tính -7 * 3
= 21
Câu 2:
#include <iostream>
using namespace std;
int main()
{
int x = 12, y = 24;
cout << (y != 24 || (x < 5 && y >= 24)) << ",";
cout << (x > y ? y - x : y / 3) << ",";
cout << (x > y > 10) << ",";
cout << (!0 && !(x == y));
return 0;
}
Câu 3:
#include <iostream>
using namespace std;
int main()
{
int x, y;
cin >> x;
y = x;
switch (x)
{
case 1:
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN – ĐHQG-HCM
BAN HỌC TẬP CÔNG NGHỆ PHẦN MỀM
case 2: y *= y + x;
case 4: y--;
case 5: y = 2 * x - 10; break;
case 6: y = y / 5; break;
default: y += 2;
};
cout << y;
return 0;
}
Trường hợp x có giá trị là 1, kết quả của chương trình là: -8
Trường hợp x có giá trị là 3, kết quả của chương trình là: 5
Câu 4:
#include <iostream>
using namespace std;
int main()
{
int sum, num;
cin >> sum;
do {
cin >> num;
if (n % 5 != 0) continue;
sum += num;
} while (sum < 100);
cout << "sum=" << sum;
return 0;
}
Người dùng cố gắng nhập dãy số sau đây (có thể không nhập hết): … (không nhớ dữ liệu đề)
Giải thích: mấu chốt của bài này ở dòng lệnh “cin >> sum;”, khiến cho giá trị ban đầu
của sum chính là số đầu tiên trong input (11) chứ không phải là 0.
Câu 5:
#include <iostream>
using namespace std;
int main()
{
int n = 518, s = 0;
for (int i = n; i > 0; i = i / 10) {
s += i;
}
cout << s;
return 0;
}
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN – ĐHQG-HCM
BAN HỌC TẬP CÔNG NGHỆ PHẦN MỀM
Câu 6:
#include <iostream>
using namespace std;
Giải thích:
&a b &c
z x y
4 1 5
-1 1 5
-1 25 5
-1 25 10
Giá trị mới của z = -1 Không đổi giá trị của x Giá trị mới của y = 10
Câu 7:
#include <iostream>
using namespace std;
int test(int a) {
a = 2 * a - 7;
return -a;
}
int main()
{
int a = 7;
int& b = a;
cout << test(a) << ",";
b = 100;
a = b - a + 1;
b++;
cout << a << "," << b;
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN – ĐHQG-HCM
BAN HỌC TẬP CÔNG NGHỆ PHẦN MỀM
return 0;
}
Câu 8:
#include <iostream>
using namespace std;
int fun(int x) {
if (x < 2) return 1;
return (x + 1) * fun(x - 1);
}
int main()
{
cout << fun(3) + fun(4); //12 + 60
return 0;
}
Câu 9:
#include <iostream>
using namespace std;
Input Output
1 1
7
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN – ĐHQG-HCM
BAN HỌC TẬP CÔNG NGHỆ PHẦN MỀM
2 1
55
5 0
33455
10 1
6654443211
int count_LowwerCase(char* s) {
int i = 0, dem = 0;
while (s[i] != '\0') {
if (s[i] >= 'a' && s[i] <= 'z')
dem++;
i++;
}
return dem;
}
int main()
{
char str[35];
cin.getline(str, 30);
cout << count_LowwerCase(str);
return 0;
}
Câu 11:
#include <iostream>
using namespace std;
int main()
{
int a[5][5] = { {1,0,3,2,1},
{1,8,2,0,5},
{7,2,3,1,4},
{4,3,0,1,3},
{1,2,3,4,5} };
int s = 0;
for (int i = 2; i < 5; i++)
for (int j = 1; j < 4; j++)
if (i != j)
s += a[i][j];
cout << s;
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN – ĐHQG-HCM
BAN HỌC TẬP CÔNG NGHỆ PHẦN MỀM
return 0;
}
Câu 12:
#include <iostream>
using namespace std;
int main()
{
int a[6][6] = { {0,-1,2,-3,4,-5},
{-1,0,-1,0,-1,0},
{0,1,0,1,0,1},
{1,-1,1,-1,1,-1},
{1,2,3,4,5,6},
{-6,-5,-4,-3,-2,-1} };
int n = 6;
cout << fun(a,n);
return 0;
}
Câu 13:
Hãy tìm lỗi trong chương dưới đây và giải thích lỗi đó (kể cả lỗi cú pháp hay lỗi
logic)
Câu 14:
Hãy giải thích ý nghĩa từ dòng thứ 5 đến dòng thứ 8 của đoạn code, và hãy cho
biết kết quả của chương trình
Câu 15:
Dưới đây là đoạn chương trình có chứa hàm nhập đa giác n đỉnh, mỗi đỉnh nhập 2
thành phần tọa độ trong mặt phẳng (Oxy). Ví dụ với đa giác 4 đỉnh ABCD, người dùng
nhập n = 4 và 4 cặp giá trị (x, y) ứng với tọa độ mỗi đỉnh A, B, C, D. Bạn hãy hoàn thiện
hàm NhapMotDiem và hàm NhapMotDaGiac (yêu cầu phải có lời gọi hàm NhapMotDiem
trong hàm NhapMotDaGiac). Sinh viên không cần kiểm tra tính hợp lệ của đa giác.
struct DAGIAC {
int n;
DIEM* p;
};
int main()
{
DAGIAC B;
B = NhapMotDaGiac();
return 0;
}
Câu 16:
Giả sử bạn có một chương trình nhập một số nguyên n (1 ≤ 𝑛 ≤ 1 tỉ), sau đó xuất
ra số hình chữ nhật thõa mãn chiều dài, chiều rộng, đường chéo đều là số nguyên
dương và diện tích phải nhỏ hơn n. Lưu ý: hình chữ nhật có thể xoay đi xoay lại được, vì
thế nên ta tính hình chữ nhật (4x3) và hình chữ nhật (3x4) là cùng một hình chữ nhật.
a/ Chọn một cặp input và output, sau đó giải thích cụ thể về input vừa chọn:
Input: 13
Output: 1
Giải thích cụ thể input và output (kích thước chiều dài, chiều rộng, đường chéo và
diện tích của các hình chữ nhật thõa mãn input):
Chiều dài: 4
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN – ĐHQG-HCM
BAN HỌC TẬP CÔNG NGHỆ PHẦN MỀM
Chiều rộng: 3
Diện tích: 12
Input: 2
Output: 0
Giải thích cụ thể input và output (kích thước chiều dài, chiều rộng, đường chéo và
diện tích của các hình chữ nhật thõa mãn input):
b/ Hãy chọn một input sao cho output bằng 3 và giải thích như câu a/
Input: 61
Output: 3
Giải thích: