KIỂM TRA GIỮA KỲ
NGÔN NGỮ LẬP TRÌNH C++
Thời gian: 90 phút
(Được sử dụng tài liệu)
ĐỀ SỐ
Lớp: ………………………………………
Mã SV: ……………………………………
Họ tên: ……………………………………
2
Câu 1. Những mệnh đề nào dưới đây là đúng: (1,5 điểm)
Một đối tượng sử dụng lại mã có sẵn của một đối tượng khác được gọi là sự kế thừa
Cùng một tên biến có thể khai báo trong các khối {…} khác nhau
Trong kiểu liệt kê enum color { red, green = 2, blue }; blue có giá trị bằng 4
Toán tử >= cho giá trị 0 hoặc 1
Toán tử gán (=) chỉ có thể xuất hiện một lần trong một biểu thức
Nếu k bằng 1 thì vòng lặp while (k = 1) k++; không bao giờ dừng lại
Toán tử break đưa con trỏ chương trình về điểm kết thúc hàm
Hàm int hamso(int &a, int &b) không làm thay đổi giá trị của biến truyền cho b
Một đối tượng không thể truy cập vào thành viên trong vùng private của một đối tượng khác
Độ phức tạp trung bình của thuật toán sắp xếp nhanh (QuickSort) là O(nlog2n)
Câu 2. Cho các biến sau: (2 điểm)
char c; int i; unsigned u; double d; int &ri = i; double *pd = &d;
Cho biết giá trị của các biến bị thay đổi sau khi thực hiện lần lượt từng dòng lệnh
c
i
Hàm f2
while (b) {
if (b == 0)
Cả hai hàm
int r = a % b; a = b; b = r;} return a;
return (a);
return (f2(b, a / b));
}
}
Câu 5. Điền biểu thức vào những chỗ còn thiếu trong các hàm dưới đây (2 điểm)
// Hàm tìm độ dài của xâu ký tự
int len(char *s) {int k = 0; while (.........) k++; return (k);}
// Hàm so sánh hai xâu ký tự
int cmp(char *s1, char *s2) {
for (int i = 0; ........................; i++) {
if (s1[i] < s2[i]) return (-1);
................................................
}
}
return 0; // hai xâu bằng nhau
// Hàm lấy xâu con của một xâu trừ các ký tự trống ở đầu
char* trimleft(char* s)
d
{
void Print() { cout