Đề thi cuối học kỳ môn Ngôn ngữ lập trình giúp các bạn sinh viên có thêm tài liệu để củng cố các kiến thức, ôn tập kiểm tra, thi cuối kỳ. Đây là tài liệu bổ ích để các em ôn luyện và kiểm tra kiến thức tốt, chuẩn bị cho kì thi học kì. Mời các em và các quý thầy cô giáo bộ môn tham khảo.
Trang 1ĐỀ THI LẦN 1 Môn Lập trình
Thời gian 60 phút
Câu 1 Giá trị lớn nhất của biễn kiểu unsigned char là:
Câu 2 Dòng nào không đúng trong C:
a) class aClass{public:int x;}; b) /* A comment */ c) char x=12;
Câu 3 Dòng lệnh: int c = 0; cout << c++ << c; cho in ra màn hình:
Câu 4 Biểu thức trong vòng lặp for(x = 0; x = 3; x++) được thực hiện bao nhiêu lần:
Câu 5 Cho hàm
int fn(int x) { if (x == 0 || x == 1) return 1;
if (x % 2 == 0) return (fn(x / 2) + 2);
return (fn(x – 1) + 3); } fn(7) trả về giá trị:
Câu 6 Cho đoạn khai báo: int A[10], *p = A + 4; Khi sử dụng biến p trong biểu thức thì *(p + 1) là:
a) Giá trị của p b) Giá trị của A[5] c) Địa chỉ của A[5]
Câu 7 Cho đoạn chương trình:
struct stack {struct node { char c; node *next; } *top;};
void Push(char c, stack *s){
stack::node *p = new stack::node;
p->c = c; .}
Đoạn lệnh ở là:
a) p->next = top; top = p;
b) p->next = s->top; s->top = p;
c) p = s; top = p;
Câu 8 Nếu char s[] = “0123456789”; thì chỉ số cuối cùng của mảng s là:
Câu 9 Hàm nào là hàm tạo mặc định của lớp Aclass:
a) Aclass(Aclass& a) b) Aclass() c) ~Aclass()
Câu 10 Đâu là lệnh cấp phát mảng:
a) char *p=new char[20]; b) char p=new char[20]; c) char p=new char(20);
Câu 11 Trường hợp nào lớp D có thể truy cập vào vùng protected của lớp B:
a) class B {…}; b) class D {… c) class B {…};
a) class D {…}; b) class B {…}}; c) class D: public B {…};
Câu 12 Để tìm vị trí của giá trị 7 trong mảng 1 2 3 4 5 6 7 8 bằng thuật toán chia đôi, cần tìm chỉ số trung bình
bao nhiêu lần:
Câu 13 Đâu là lệnh giải phóng mảng p đã cấp phát:
a) delete p; b) delete p[]; c) delete []p;
Câu 14 Biểu thức 1/9*9 cho giá trị:
Câu 15 Thuật toán sắp xếp nào là tối ưu đối với mảng: 1 2 3 5 4
a) Insert sort b) Bubble sort c) Quick sort
Trang 2Câu 16 Cây nhị phân chứa các chữ cái được biểu diễn bằng mảng (0 – nút rỗng): A B C D E F G 0 0 H Khi
duyệt cây theo thứ tự trước sẽ cho:
a) A B C D E F G H b) A B D E C F G H c) A B D E H C F G
Câu 17 Toán tử [] của class có mấy tham số:
Câu 18 Biểu thức 1 & 4 cho giá trị:
Câu 19 strcat(aString, “abc”) thực hiện:
a) copy “abc” vào aString b) Thêm “abc” vào sau aString c) so sánh “abc” và aString
Câu 20 Cho short A[10] = {1, 2, 3, 4, 5, 6}; int *p = (int *)&A[2]; *p = 256; Bốn phần tử đầu tiên của A sẽ là:
a) 1, 2, 10, 255 b) 1, 2, 3, 4 c) 1, 10, 255, 4
Câu 21 Cho chương trình sau:
1
2
3
4
5
6
7
8
class Vect {
protected:
int size;
double *data;
public:
Vect(): size(0), data(NULL) {}
Vect(int sz): size(sz) { data = new double[size]; } Vect(double *v, int sz): size(sz), data(*v) {}
Vect(int sz, const double *v)
{
size = sz;
data = new double[size];
for (int i = 0; i < size; i++)
data[i] = v[i];
}
~Vect() { if (data) delete[] data; } public:
int GetSize() { return size; } double& operator[](int index) { return data[index]; } };
class Sort: public Vect {
public:
Sort(int sz, const double *v): Vect(sz, v) {}
protected:
void Swap(int i, int j) { double t = data[i]; data[i] = data[j]; data[j] = t; }
virtual Sort& DoSort() = 0;
void Print(ostream& out)
{
for (int i = 0; i < size; i++)
out << ' ' << data[i];
} friend ostream& operator<<(ostream& out, Sort & v)
{
out << "original:";
v.Print(out);
out << "\nsorted:";
v.DoSort().Print(out);
return (out);
}
Trang 39
10
11
};
class SelectionSort: public Sort {
public:
SelectionSort(int sz, const double *v): Sort(sz, v) {}
private:
Sort& DoSort() {
return (this);
} };
void main() {
double a[] = {1, 3, 5, 2, 4};
cout << new SelectionSort(4, a) << endl;
}
a) Những dòng lệnh nào sai? Sửa lại cho đúng
b) Thứ tự thực hiện các lệnh
c) Viết lại hàm DoSort của lớp SelectionSort để sắp xếp mảng theo thứ tự giảm dần
d) Cho biết kết quả hiện trên màn hình
Hướng dẫn:
1 Từ câu 1 đến câu 20: Kẻ bảng theo mẫu dưới đây:
Với mỗi câu, chọn 1 câu trả lời đúng bằng cách đánh dấu √ vào ô A, B hoặc C ở dòng tương ứng
2 Câu 21, thực hiện như đã hướng dẫn ôn tập