Câu hỏi ôn tập
Nguyên lý các ngôn ngữ lập trình
Các câu đánh dấu * là các câu các em cần ôn tập.
Bài 1.
1. Người ta nói Pascal là ngôn ngữ lập trình có cấu trúc. Tính cấu trúc của Pascal được thể
hiện qua 3 yếu tố: cấu trúc trong dữ liệu, cấu trúc trong các toán tử và cấu trúc trong công
cụ thủ tục như thế nào? Tại sao khó xây dựng chương trình ứng dụng lớn trong Pascal.
2. *Tại sao nói C tỏ ra thích hợp với lập trình hệ thống, có tính tương thích cao, tốc độ cao,
nhưng hệ thống kiểu không chặt chẽ và khó kiểm soát chương trình lớn.
3. *Tại sao nói C++ không phải hướng đối tượng hoàn toàn, mà là đa hướng và C++ là ngôn
ngữ thích hợp cho việc xây dựng những chương trình lớn nhưng phức tạp và khó kiểm
soát.
4. *Tại sao nói Java là ngôn ngữ hướng đối tượng hoàn toàn, đơn giản, độc lập với cấu trúc
máy, dễ chuyển mang, an toàn. Lý do chương trình Java chậm, các cách khắc phục để
tăng tốc độ.
5. *Họ các ngôn ngữ dot net có ưu nhược điểm gì: có nhiều công cụ hỗ trợ, có dễ dàng tích
hợp với nhau được không, vai trò của CRL như thế nào, có phụ thuộc nền tảng không.
6. Nêu mục đich và các đặc tính của họ các ngôn ngữ kịch bản. So sánh ASP, Javascript và
php?
7. *Bạn cho ví dụ truyền tham số hàm trong Javascript.
8. *Bạn cho ví dụ trả về hàm trong lời gọi hàm trong Javascript.
Bài 2.
1. So sánh những tình huống giống nhau trong việc xác định vị trí con trỏ trong C và đánh
chỉ số mảng.
2. *Một đặc tính là C có khả năng khắc phục lỗi kiểu. Cho ví dụ minh họa. Đây là ưu điểm
hay nhược điểm của C.
3. Người lập trình C phải tự xin cấp bộ nhớ và giải phóng bộ nhớ như thế nào. Theo bạn
đây là ưu điểm hay nhược điểm?
4. *Bạn cho biết đặc tính của ngôn ngữ lập trình ML. Tại sao nói nó là ngôn ngữ lập trình
hàm.
5. *Cho biết khai báo kiểu danh sách trong ML như thế nào. Cho ví dụ hàm trên danh sách.
dụ minh họa thông qua liên kết điều khiển.
8. Giải thích: việc xác định các lỗi trong hầu hết các ngôn ngữ có phạm vi động. Cho ví dụ
minh họa thông qua liên kết truy cập.
9. *Thế nào là đệ qui đuôi. Đối với đệ qui đuôi việc tái sử dụng ngăn xếp được thực hiện
như thế nào cho ví dụ minh họa
10. Cho ví dụ chuyển tự đệ qui thường sang đệ qui đuôi. Tại sao việc thực thi lời gọi đệ qui
đuôi giống như việc thực hiện một vòng lặp.
11. *Thế nào là truyền tham số hàm. Cho ví dụ trong ML
12. *Thế nào là trả về hàm trong lời gọi hàm. Cho ví dụ trong ML. Theo bạn nghĩ nó đem lại
những lợi ích gì?
13. *Cho ví dụ hàm map trên danh sách trong ML (hàm tác động đến từng phần tử của danh
sách).
Bài 5:
1. Nêu các đặc tính của lập trình cấu trúc. Cho các ví dụ minh họa
2. Thế nào là trừu tượng thủ tục, cho ví dụ
3. Thế nào là trừu tượng dữ liệu, cho ví dụ
4. Cho ví dụ kiểu dữ liệu trừu tượng trong ML
5. *Nêu cách sử dụng C++ function templates. Cho ví dụ dùng template như tham số kiểu
trong C++.
6. *Nêu sự khác biệt giữa cơ chế tham số kiểu trong C++ và trong ML. Cho ví dụ minh họa.
7. *Nêu đặc trưng và cho ví dụ dùng thư viện template chuẩn C++ (STL). Cho ví dụ minh
họa.
Bài 6
1. *Nêu bốn khái niệm cơ bản trong ngôn ngữ hướng đối tượng
2. Thế nào là tìm kiếm động. Cho ví dụ
3.
4.
5.
6. *Giao diện trong Java dùng để làm gì. Một lớp có thể cài đặt nhiều giao diện không, cho
ví dụ minh họa.
7. *Lớp trừu tượng dùng để làm gì, hãy phân biệt nó với giao diện. Cho ví dụ minh họa
8. Tính đa hình kiểu con trong Java được cài đặt qua lớp Object như thế nào. Lấy ví dụ
chẳng hạn cài đặt Stack kiểu tham sô qua Object.
9. *Phiên bản mới của Java có hỗ trợ cài đặt tham số kiểu trực tiếp không cần qua Object
không, điều đó được thực hiện như thế nào
Đề thi số 1: NGUYÊN LÝ CÁC NGÔN NGỮ LẬP TRÌNH
Lớp cao học CNTT – 12/2013
Thời gian làm bài 90 phút.
1. Tại sao nói Java là ngôn ngữ hướng đối tượng hoàn toàn, đơn giản, độc lập
với cấu trúc máy, dễ chuyển mang, an toàn. Lý do chương trình Java chậm,
các cách khắc phục để tăng tốc độ.
2. Kiểm tra kiểu thời gian dịch và kiểm tra kiểu thời gian chạy khác nhau như
thế nào, ưu nhược điểm của chúng. Cho ví dụ minh họa.
3. Nêu cách sử dụng đa hình tham số kiểu trong ML. Cho ví dụ cài đặt swap
trong ML.
4. Thế nào là trả về hàm trong lời gọi hàm. Cho ví dụ trong ML. Theo bạn nghĩ
nó đem lại những lợi ích gì?
5. Thế nào là phạm vi tĩnh và phạm vi động. Cho ví dụ nêu sự khác biệt giữa
hai loại phạm vi.
6. Cho ví dụ chuyển từ đệ qui thường sang đệ qui đuôi. Tại sao việc thực thi lời
thực hiện như thế nào cho ví dụ minh họa
6. *Nêu đặc trưng và cho ví dụ dùng thư viện template chuẩn C++ (STL). Cho
ví dụ minh họa.
7. Mẫu thiết kế (design patterns) dùng để làm gì. Cho ví dụ minh họa.
8. Nêu bốn khái niệm cơ bản trong ngôn ngữ hướng đối tượng. Thế nào là kiểu
con, cho ví dụ minh họa kiểu con
9. Nêu các quyết định tốt và các chỗ còn vấn đề khi thiết kế C++
10. Lớp trừu tượng dùng để làm gì, hãy phân biệt nó với giao diện. Cho ví dụ
minh họa về ưu điểm cho trường hợp dùng lớp trừu tượng tốt hơn dùng giao
diện.