Tổng ôn Trắc nghiệm Tin học 11 C++ có đáp án và giải thích Bài 1 Khái niệm lập trình và ngôn ngữ lập trình Câu 1 Chương trình dịch là A Chương trình có chức năng chuyển đổi chương trình được viết bằng ngôn ngữ lập trình bậc cao thành chương trình.
Trang 1Bài 1 Khái niệm lập trình và ngôn ngữ lập trình Câu 1 Chương trình dịch là:
A Chương trình có chức năng chuyển đổi chương trình được viết bằng ngôn ngữ
lập trình bậc cao thành chương trình thực hiện được trên máy tính cụ thể
B Chương trình có chức năng chuyển đổi chương trình được viết bằng ngôn ngữ
lập trình bậc thấp thành ngôn ngữ bậc cao
C Chương trình có chức năng chuyển đổi chương trình được viết bằng ngôn ngữ
ngôn ngữ máy sang ngôn ngữ lập trình cụ thể
D Chương trình có chức năng chuyển đổi chương trình được viết bằng ngôn ngữ
máy sang hợp ngữ
Hướng dẫn giải
Đáp án đúng là: A
Chương trình dịch: Là chương trình có chức năng chuyển đổi chương trình được viết bằng ngôn ngữ lập trình bậc cao thành chương trình thực hiện được trên máy tính cụ thể
Câu 2 Biên dịch là:
A Chương trình dịch, dịch toàn bộ chương trình nguồn thành một chương trình
đích có thể thực hiện trên máy, không thể lưu trữ để sử dụng lại khi cần thiết
B Chương trình dịch, dịch toàn bộ chương trình nguồn thành một chương trình
đích có thể thực hiện trên máy và có thể lưu trữ để sử dụng lại khi cần thiết
C Chương trình dịch, dịch toàn bộ ngôn ngữ lập trình bậc thấp sang ngôn ngữ lập
trình bậc cao
D Chương trình dịch, lần lượt dịch và thực hiện từng câu lệnh
Hướng dẫn giải
Đáp án đúng là: B
Bản chất biên dịch là chương trình dịch có chức năng dịch toàn bộ chương trình nguồn thành một chương trình đích có thể thực hiện trên máy và có thể lưu trữ để
sử dụng lại khi cần thiết
Câu 3 Thông dịch là:
Trang 2A Chương trình dịch, dịch toàn bộ chương trình nguồn thành một chương trình
đích có thể thực hiện trên máy, không thể lưu trữ để sử dụng lại khi cần thiết
B Chương trình dịch, dịch toàn bộ chương trình nguồn thành một chương trình
đích có thể thực hiện trên máy và có thể lưu trữ để sử dụng lại khi cần thiết
C Chương trình dịch, dịch toàn bộ ngôn ngữ lập trình bậc thấp sang ngôn ngữ lập
trình bậc cao
D Chương trình dịch, lần lượt dịch và thực hiện từng câu lệnh
Hướng dẫn giải
Đáp án đúng là: D
Biên dịch là chương trình dịch có chức năng dịchlần lượt và thực hiện từng câu lệnh
Câu 4 Sự giống nhau giữa thông dịch và biên dịch là:
A Không phải chương trình dịch
B Đều là chương trình dịch
C Đều dịch từ ngôn ngữ lập trình bậc thấp sang ngôn ngữ lập trình bậc cao
D Đều dịch từ ngôn ngữ máy sang hợp ngữ
Hướng dẫn giải
Đáp án đúng là: B
Vì thông dịch và biên dịch đều là chương trình dịch
Câu 5 Sự khác nhau giữa thông dịch và biên dịch là:
A Thông dịch: lần lượt dịch và thực hiện từng câu lệnh Biên dịch: dịch toàn bộ
chương trình nguồn thành một chương trình đích có thể thực hiện trên máy và có thể lưu trữ để sử dụng lại khi cần thiết
B Biên dịch: lần lượt dịch và thực hiện từng câu lệnh Thôngdịch: dịch toàn bộ
chương trình nguồn thành một chương trình đích có thể thực hiện trên máy và có thể lưu trữ để sử dụng lại khi cần thiết
C Biên dịch: dịch toàn bộ ngôn ngữ lập trình bậc cao sang ngôn ngữ lập trình bậc
thấp Thông dịch: dịch toàn bộ ngôn ngữ lập trình bậc thấp sang ngôn ngữ lập trình bậc cao
Trang 3D Thông dịch: dịch toàn bộ ngôn ngữ lập trình bậc cao sang ngôn ngữ lập trình
bậc thấp Biên dịch: dịch toàn bộ ngôn ngữ lập trình bậc thấp sang ngôn ngữ lập trình bậc cao
Hướng dẫn giải
Đáp án đúng là: A
Dựa theo chức năng của biên dịch và thông dịch:
- Thông dịch: lần lượt dịch và thực hiện từng câu lệnh
- Biên dịch: dịch toàn bộ chương trình nguồn thành một chương trình đích có thể thực hiện trên máy và có thể lưu trữ để sử dụng lại khi cần thiết
Câu 6 Lập trình là:
A mô tả dữ liệu và diễn đạt các thao tác của thuật toán
B sử dụng cấu trúc dữ liệu để mô tả dữ liệu
C sử dụng cấu trúc dữ liệu và các câu lệnh của ngôn ngữ lập trình cụ thể để mô
tả dữ liệu và diễn đạt các thao tác của thuật toán
D.sử dụng cấu trúc dữ liệu để diễn đạt các thao tác của thuật toán
Hướng dẫn giải
Đáp án đúng là: C
Theo khái niệm: Lập trìnhlà sử dụng cấu trúc dữ liệu và các câu lệnh của ngôn ngữ lập trình cụ thể để mô tả dữ liệu và diễn đạt các thao tác của thuật toán
Câu 7 Chương trình nguồn là:
A Chương trình viết bằng mã nhị phân
B Chương trình viết bằng ngôn ngữ máy
C Chương trình viết bằng ngôn ngữ lập trình bậc thấp
D Chương trình viết bằng ngôn ngữ lập trình bậc cao
Hướng dẫn giải
Đáp án đúng là: D
Theo khái niệm về chương trình dịch: Chương trình có chức năng chuyển đổi chương trình được viết bằng ngôn ngữ lập trình bậc cao (chương trình nguồn) thành chương trình thực hiện được trên máy tính cụ thể (chương trình đích)
Câu 8 Chương trình đích là:
Trang 4A Chương trình viết bằng hợp ngữ
B Chương trình viết bằng ngôn ngữ máy
C Chương trình viết bằng ngôn ngữ lập trình C++
D Chương trình viết bằng ngôn ngữ lập trình bậc cao
Hướng dẫn giải
Đáp án đúng là: B
Theo khái niệm về chương trình dịch: Chương trình có chức năng chuyển đổi chương trình được viết bằng ngôn ngữ lập trình bậc cao (chương trình nguồn) thành chương trình thực hiện được trên máy tính cụ thể (chương trình đích)
Câu 9 Phát biểu nào sau đây là đúng?
A Chương trình viết bằng ngôn ngữ lập trình bậc cao nói chung không phụ thuộc
vào loại máy
B Chương trình viết bằng ngôn ngữ lập trình bậc cao nói chung phụ thuộc vào
loại máy
C Chương trình viết bằng ngôn ngữ lập trình bậc cao nói chung phụ thuộc vào
rất nhiều yếu tố
D Chương trình viết bằng ngôn ngữ lập trình bậc thấp nói chung không phụ thuộc
vào loại máy
Hướng dẫn giải
Đáp án đúng là: A
Vì một chương trình có thể thực hiện trên nhiều loại máy tính khác nhau
Câu 10 Phát biểu nào sau đây là sai?
A Chương trình viết bằng ngôn ngữ máy có thể được nạp trực tiếp vào bộ nhớ và
thực hiện ngay, còn chương trình viết bằng ngôn ngữ lập trình bậc cao phải được chuyển đổi thành chương trình trên ngôn ngữ máy mới có thể thực hiện được
B Chương trình đặc biệt có chức năng chuyển đổi chương trình được viết bằng
ngôn ngữ lập trình bậc cao thành chương trình thực hiện được trên máy tính cụ thể được gọi là chương trình dịch
C Lập trình là sử dụng cấu trúc dữ liệu và các câu lệnh của ngôn ngữ lập trình cụ
thể để mô tả dữ liệu và diễn đạt các thao tác của thuật toán
Trang 5D Chương trình dịch nhận đầu vào là chương trình viết bằng ngôn ngữ lập trình
bậc thấp (chương trình nguồn), thực hiện chuyển đổi sang ngôn ngữ lập trình bậc cao (chương trình đích)
Hướng dẫn giải
Đáp án đúng là: D
Theo khái niệm về chương trình dịch: Chương trình dịch nhận đầu vào là chương trình viết bằng ngôn ngữ lập trình bậc cao (chương trình nguồn), thực hiện chuyển đổi sang ngôn ngữ máy (chương trình đích)
Câu 11 Phát biểu nào sau đây là sai?
A Để giải bài toán bằng máy tính phải viết chương trình miêu tả thuật toán giải
bài toán đó
B Mọi người sử dụng máy tính đều phải biết lập chương trình
C Máy tính điện tử hoàn toàn có thể chạy các chương trình
D Một bài toán có thể có nhiều thuật toán để giải
Hướng dẫn giải
Đáp án đúng là: B
Lập chương trình là phải biết một hoặc một vài ngôn từ lập trình như: Pascal, Python, C, C+ + … để viết trình Việc học này thường rất khó và phức tạp vì thế người sử dụng máy tính đơn thuần không nhất thiết phải biết lập trình mà chỉ việc biết thao tác đơn thuần trên máy tính
Câu 12 Ngôn ngữ lập trình là ngôn ngữ:
A Có tên là “ngôn từ thuật toán” hay còn gọi là “ngôn từ lập trình bậc cao” gần
với ngôn từ toán học được cho phép miêu tả cách xử lý yếu tố độc lập với máy tính
B Diễn đạt thuật toán để hoàn toàn có thể giao cho máy tính thực thi
C Dưới dạng nhị phân để máy tính hoàn toàn có thể triển khai trực tiếp
D Cho phép bộc lộ những tài liệu trong bài toán mà những chương trình sẽ phải
Hướng dẫn giải
Đáp án đúng là: B
Trang 6Ngôn ngữ lập trình là ngôn ngữ để viết chương trình, diễn đạt thuật toán giúp máy
tính hiểu và thực hiện
Câu 13 Ngôn ngữ lập trình bậc cao là ngôn ngữ
A Có thể diễn đạt được mọi thuật toán
B Mà máy tính không hiểu trực tiếp được, chương trình viết trên ngôn từ bậc cao
trước khi chạy phải dịch sang ngôn từ máy
C Thể hiện thuật toán theo những quy ước nào đó không phụ thuộc vào những
máy tính đơn cử
D Sử dụng từ vựng và cú pháp của ngôn từ tự nhiên (tiếng Anh)
Hướng dẫn giải
Đáp án đúng là: D
Ngôn ngữ lập trình bậc cao là ngôn từ gần với ngôn từ tự nhiên (1 số ít từ viết tắt của tiếng Anh), có tính độc lập cao và ít phụ thuộc vào vào loại máy đơn cử Chương trình viết bằng ngôn từ bậc cao phải được dịch bằng chương trình dịch sang ngôn ngữ máy, máy mới hiểu và thực thi được Một số ngôn từ lập trình bậc cao: FORTRAN, COBOL, PASCAL, C …
Câu 14 Hợp ngữ là ngôn ngữ:
A Không viết bằng mã nhị phân, được phong cách thiết kế cho một số ít loại máy
hoàn toàn có thể chạy trực tiếp dưới dạng kí tự
B Có những lệnh được viết bằng kí tự nhưng về cơ bản mỗi lệnh tương tự với
một lệnh máy Để chạy được cần dịch ra ngôn từ máy
C Mà các lệnh không viết trực tiếp bằng mã nhị phân
D Mà máy tính hoàn toàn có thể triển khai được trực tiếp không cần dịch
Hướng dẫn giải
Đáp án đúng là: B
Hợp ngữ là ngôn ngữ có các lệnh được viết bằng kí tự nhưng về cơ bản mỗi lệnh tương đương với một lệnh máy Để chạy được cần dịch ra ngôn ngữ máy
Câu 15 Ngôn ngữ máy là:
A Các ngôn từ mà chương trình viết trên chúng sau khi dịch ra hệ nhị phân thì
máy hoàn toàn có thể chạy được
Trang 7B Ngôn ngữ để viết những chương trình mà mỗi chương trình là một dãy lệnh
máy trong hệ nhị phân
C Bất cứ ngôn từ lập trình nào mà hoàn toàn có thể diễn đạt thuật toán để giao
cho máy tính thực thi
D Diễn đạt thuật toán để hoàn toàn có thể giao cho máy tính triển khai
Hướng dẫn giải
Đáp án đúng là: B
Ngôn ngữ máy là ngôn ngữ duy nhất để viết chương trình mà máy tính có thể trực tiếp hiểu và thực hiện được Mỗi chương trình là một dãy lệnh máy trong hệ nhị phân
Trang 9Bài 2 Các thành phần của ngôn ngữ lập trình Câu 1 Mỗi ngôn ngữ lập trình thường có các thành phần cơ bản là:
Đáp án đúng là: C
Các thành phần cơ bản của ngôn ngữ lập trình bao gồm: Bảng chữ cái, cú pháp và ngữ nghĩa
Câu 2 Tên nào sau đây trong ngôn ngữ C++ là đặt đúng theo quy cách:
Đáp án đúng là: A
Theo quy tắc đặt tên trong ngôn ngữ lập trình C++ : Tên là một dãy liên tiếp có
số kí tự tùy ý bao gồm chữ số, chữ cái hoặc dấu gạch dưới và bắt đầu bằng chữ cái hoặc dấu gạch dưới
Câu 3 Tên nào sau đây trong ngôn ngữ C++ là đặt sai theo quy cách:
Đáp án đúng là: A
Theo quy tắc đặt tên trong ngôn ngữ lập trình C++ : Tên là một dãy liên tiếp có
số kí tự tùy ý bao gồm chữ số, chữ cái hoặc dấu gạch dưới và bắt đầu bằng chữ cái hoặc dấu gạch dưới
Trang 10A Sai vì chứa kí tự ‘#’ không hợp lệ
Câu 4 Chọn phát biểu đúng trong ngôn ngữ lập trình C++ ?
A Tên dành riêng là loại tên được ngôn ngữ lập trình quy định dùng với ý nghĩa xác định, người lập trình có thể được sử dụng với ý nghĩa khác
B Tên do người lập trình đặt được dùng với ý nghĩa riêng, xác định bằng cách
khai báo trước khi sử dụng Các tên này được trùng với tên dành riêng
C.Tên dành riêng là loại tên được ngôn ngữ lập trình quy định dùng với ý nghĩa
xác định, người lập trình không được sử dụng với ý nghĩa khác
D Hằng là các đại lượng có giá trị thay đổi trong quá trình thực hiện chương trình Hướng dẫn giải
Đáp án đúng là: C
Theo khái niệm về tên dành riêng: Là loại tên được ngôn ngữ lập trình quy định dùng với ý nghĩa xác định, người lập trình không được sử dụng với ý nghĩa khác Những tên này được gọi là tên dành riêng (còn được gọi là từ khoá)
Câu 5 Chọn phát biểu đúng khi nói về Hằng ?
A Hằng là đại lượng thay đổi trong quá trình thực hiện chương trình
B Hằng là các đại lượng có giá trị không thay đổi trong quá trình thực hiện chương
trình Bao gồm: Hằng số học, hằng lôgic, hằng xâu
C Hằng là đại lượng bất kì
D Hằng không bao gồm: số học và lôgic
Hướng dẫn giải
Đáp án đúng là: B
Theo khái niệm hằng: Hằng là các đại lượng có giá trị không thay đổi trong quá trình thực hiện chương trình Bao gồm: Hằng số học, hằng lôgic, hằng xâu
Câu 6 Chọn phát biểu đúng khi nói về biến ?
A Biến là đại lượng được đặt tên, dùng để lưu trữ giá trị và giá trị có thể được
thay đổi trong quá trình thực hiện chương trình
B Biến là đại lượng bất kì
C Biến là đại lượng không thay đổi trong quá trình thực hiện chương trình
Trang 11D Biến là đại lượng được đặt tên, dùng để lưu trữ giá trị và giá trị không thay đổi
trong quá trình thực hiện chương trình
Hướng dẫn giải
Đáp án đúng là: A
Theo khái niệm biến: Biến là đại lượng được đặt tên, dùng để lưu trữ giá trị và giá trị có thể được thay đổi trong quá trình thực hiện chương trình
Câu 7 Hãy cho biết biểu diễn nào dưới đây không phải là biểu diễn hằng trong
Đáp án đúng là: C
Hằng trong C++ bao gồm: Hằng số học (ý B, D), hằng lôgic (true hoặc false viết thường), hằng xâu (ý A)
Câu 8 Chọn phát biểu đúng trong các phát biểu dưới đây:
A Bảng chữ cái của ngôn ngữ lập trình C++ không có dấu nháy kép (“)
B Ngoài bảng chữ cái, có thể dùng các kí tự thông dụng trong toán học để viết
C Chương trình có lỗi cú pháp có thể được dịch ra ngôn ngữ máy nhưng không
thực hiện được
D Cú pháp là bộ quy tắc dùng để viết chương trình
Hướng dẫn giải
Đáp án đúng là: D
Trong ngôn ngữ lập trình C++ bảng chữ cái có dấu nháy kép (“), chỉ có thể dùng bảng chữ cái để viết chương trình, chương trình có lỗi thì không thể dịch ra ngôn ngữ máy
Câu 9 Để chú thích 1 dòng trong C++ :
A Đặt dấu // ở đầu dòng cần chú thích
B Đặt dòng cần chú thích trong cặp ngoặc {}
Trang 12C Đặt dấu @ ở đầu dòng cần chú thích
D Đặt dấu # ở cuối dòng cần chú thích
Hướng dẫn giải
Đáp án đúng là: A
Trong C++ có hai loại chú thích: Chú thích trên một dòng, chú thích gồm nhiều dòng Chú thích trên một dòng được bắt đầu bằng dấu //
Câu 10 Phát biểu nào sau đây là đúng khi nói về tên dành riêng?
A Tên dành riêng do người lập trình đặt cần khai báo trước khi sử dụng
B Là loại tên được ngôn ngữ lập trình quy định dùng với ý nghĩa xác định, người
lập trình không được sử dụng với ý nghĩa khác
C Là loại tên được ngôn ngữ lập trình quy định dùng với ý nghĩa xác định, người
lập trình được phép sử dụng với ý nghĩa khác
D Người lập trình khai báotên dành riêng trước khi sử dụng
Hướng dẫn giải
Đáp án đúng là: B
Theo khái niệm về tên dành riêng: Là loại tên được ngôn ngữ lập trình quy định dùng với ý nghĩa xác định, người lập trình không được sử dụng với ý nghĩa khác
Câu 11 Chọn phát biểu đúng khi chú thích nhiều dòng trong C++ :
A Đặt dấu // ở đầu dòng cần chú thích
B Chú thích trên nhiều dòng được bắt đầu bằng ngoặc {và kết thúc bằng ngoặc}
C Đặt dấu @ ở đầu dòng cần chú thích
D Chú thích trên nhiều dòng được bắt đầu bằng kí hiệu /* và kết thúc bằng kí
hiệu */
Hướng dẫn giải
Đáp án đúng là: D
Chú thích trên nhiều dòng được bắt đầu bằng kí hiệu /* và kết thúc bằng kí hiệu
*/
Câu 12 Phát biểu nào dưới đây là hợp lí nhất khi nói về hằng?
A Hằng là đại lượng nhận giá trị trước khi chương trình thực hiện
Trang 13B Hằng là đại lượng được đặt tên và có giá trị thay đổi trong quá trình thực hiện
chương trình
C Hằng có thể lưu trữ nhiều loại giá trị khác nhau
D Hằng được chương trình dịch bỏ qua
Hướng dẫn giải
Đáp án đúng là: A
Hằng là đại lượng không đổi trong quá trình thực hiện chương trình và luôn nhận giá trị trước khi chương trình thực hiện
Câu 13 Chọn phát biểu đúng nhất khi nói về tên?
A Tên gọi là đại lượng nhận giá trị trước khi chương trình thực hiện
B Tên gọi là đại lượng được đặt tên và có giá trị thay đổi trong quá trình thực
hiện chương trình
C Tên gọi có thể lưu trữ nhiều loại giá trị khác nhau
D Tên gọi do người lập trình tự đặt theo quy tắc do từng ngôn ngữ lập trình xác
định
Hướng dẫn giải
Đáp án đúng là: D
Theo khái niệm về tên trong lập trình: Tên gọi do người lập trình tự đặt theo quy tắc do từng ngôn ngữ lập trình xác định
Câu 14 Hằng xâu trong C++ là:
Đáp án đúng là: D
Hằng xâu đặt trong cặp dấu nháy kép (“ ”), khác hằng ký tự đặt trong cặp dấu nháy đơn (‘’)
Câu 15 Hằng kí tự trong C++ là:
A ‘a’
Trang 14B ab
C true
D “ab”
Hướng dẫn giải
Đáp án đúng là: A
Hằng ký tự đặt trong cặp dấu nháy đơn (‘’), khác hằng xâu đặt trong cặp dấu nháy kép (“ ”),
Trang 15Bài 3 Cấu trúc chương trình Câu 1 Trong cấu trúc chương trình C++, lệnh #include dùng để làm gì?
A Khai báo các câu lệnh được sử dụng trong chương trình Phải tạo các câu lệnh
trước thì mới sử dụng được trong chương trình C++
B Thông báo cho bộ tiền biên dịch thêm các thư viện chuẩn trong C++ Các lệnh
được sử dụng trong thân chương trình phải có prototype nằm trong các thư viện chuẩn này
C Thông báo trong chương trình sử dụng các lệnh tính toán, thông báo các biến
sử dụng trong thân chương trình
D Không có đáp án đúng
Hướng dẫn giải
Đáp án đúng là: B
Trong chương trình C++lệnh #include dùng để thông báo cho bộ tiền biên dịch thêm các thư viện chuẩn trong C++ Các lệnh được sử dụng trong thân chương trình phải có prototype nằm trong các thư viện chuẩn này
Câu 2 Trong C++ khi cần khai báo hằng ta dùng từ khóa:
Đáp án đúng là: A
Trong C++ để khai báo hằng ta dùng từ khóa const
Câu 3 Thư viện <iostream> trong C++ cung cấp:
A Mọi tiện ích để làm việc
B Các tiện ích có sẵn để làm việc với số học
C Các thư viện chuẩn trong C++
D Các tiện ích có sẵn để làm việc với bàn phím và màn hình
Hướng dẫn giải
Đáp án đúng là: D
Trang 16Thư viện <iostream> trong C++ cung cấp các tiện ích có sẵn để làm việc với bàn
phím và màn hình
Câu 4 Trong C++ khai báo hằng đúng là:
Đáp án đúng là: B
Khai báo hằng trong C++ có dạng: const<tên hằng>=<giá trị>
Câu 5 Chọn phát biểu đúng nhất khi nói về biến?
A Biến là đại lượng nhận giá trị trước khi chương trình thực hiện
B Biến là đại lượng được đặt tên và có giá trị thay đổi trong quá trình thực hiện
chương trình
C Biến có thể lưu trữ nhiều loại giá trị khác nhau
D Biến có thể đặt hoặc không đặt tên gọi
Hướng dẫn giải
Đáp án đúng là: B
Biến là đại lượng được đặt tên, dùng để lưu trữ giá trị và có giá trị thay đổi trong quá trình thực hiện chương trình
Câu 6 Bài toán giải phương trình bậc nhất ax+b=0 có các biến là:
Đáp án đúng là: A
Dựa theo input và output của bài toán:
Input: a,b
Output: x
Trang 17Câu 7 Chú thích trên một dòng nào sau đây là chính xác?
Đáp án đúng là: C
Chú thích trên một dòng được bắt đầu bằng dấu //
Câu 8 Cho chương trình sau:
Chọn phát biểu đúng khi nói về chương trình trên:
A Phần khai báo chỉ có một câu lệnh khai báo thư viện
B Chương trình không có phần khai báo
C Chương trình không có hàm main()
D Không có câu lệnh nào trong phần thân chương trình
Hướng dẫn giải
Đáp án đúng là: A
Phần khai báo chỉ có một câu lệnh #include khai báo thư viện <iostream>
Câu 9 Khi khảo sát phương trình đường thẳng ax+by+c=0, các hệ số a, b, c có
thể được khai báo:
A Là những hằng số học
B Là những biến đơn
C Là những hằng xâu
D Là những hằng logic
Hướng dẫn giải
Đáp án đúng là: B
Trang 18Các hệ số a, b, c chỉ nhận một giá trị tại mỗi thời điểm thực hiện chương trình nên được khai báo là những biến đơn
Câu 10 Chương trình C++ là một tệp văn bản có đuôi mặc định là:
Đáp án đúng là: B
Thực tế chương trình C++ chỉ là một dãy các dòng lệnh được viết trong một tệp văn bản có đuôi mặc định là cpp
Câu 11 Khẳng định nào sau đây là đúng khi nói về hàm main() ?
A Hàm main() là nơi kết thúc mọi hoạt động của chương trình
B Hàm main() là nơi khai báo các chương trình con khác
C Hàm main() là nơi khai báo các thư viện
D Hàm main() là nơi bắt đầu mọi hoạt động của chương trình
Hướng dẫn giải
Đáp án đúng là: D
Trong C++ không có khái niệm chương trình chính, chương trình C++ được tổ chức dưới dạng các hàm, trong đó có hàm main() là nơi bắt đầu mọi hoạt động của chương trình
Câu 12 Trong cấu trúc chương trình C++ có bao nhiêu hàm main() ?
Đáp án đúng là: A
Trong cấu trúc chương trình C++ chỉ có 1 hàm main(), trong đó có hàm main() là nơi bắt đầu mọi hoạt động của chương trình
Trang 19Câu 13 Kết thúc một dòng lệnh trong chương trình C++, ta sử dụng ký hiệu gì?
Đáp án đúng là: B
Các câu lệnh trong C++ được kết thúc bằng dấu chấm phẩy (;)
Câu 14 Khẳng định nào sau đây là đúng khi nói về hằng ?
A Khai báo hằng thường được sử dụng cho những giá trị cố định mà xuất hiện
nhiều lần trong chương trình
B Khai báo hằng thường được sử dụng cho những giá trị thay đổi trong chương
trình
C Khai báo hằng được sử dụng thay cho khai báo biến
D Khai báo hằng nhất định phải có khi viết chương trình
Hướng dẫn giải
Đáp án đúng là: A
Khai báo hằng thường được sử dụng cho những giá trị cố định mà xuất hiện nhiều lần trong chương trình, khai báo hằng có thể có hoặc không khi viết chương trình
Câu 15 Sau hàm main() là dấu:
Đáp án đúng là: C
Sau hàm main() là dấu { để bắt đầu mọi hoạt động của chương trình
Trang 20Bài 4 Một số kiểu dữ liệu chuẩn Câu 1 Biến t nhận các giá trị 1 ; 2 ; 3 thì t thuộc kiểu:
Đáp án đúng là: A
Vì 1 ; 2 ; 3 là các số nguyên
Câu 2 Biến t nhận các giá trị 1.3; 2.3 thì t thuộc kiểu:
Đáp án đúng là: C
Vì các giá trị 1.3; 2.3 là các số thực
Câu 3 Biến s nhận các giá trị ‘a’,’b’,’c’ thì s thuộc kiểu:
Đáp án đúng là: B
Vì các giá trị ‘a’,’b’,’c’ là các kí tự
Câu 4 Phạm vi giá trị của kiểu bool là :
A 0-255
B true/false
C 0-109
D 255-109
Trang 21Hướng dẫn giải
Đáp án đúng là: B
Kiểu bool chỉ có 2 giá trị là true hoặc fase
Câu 5 Bộ nhớ lưu trữ một giá trị của kiểu bool là:
Đáp án đúng là: D
Bộ nhớ lưu trữ một giá trị của kiểu bool là 1byte vì kiểu bool chỉ chứa giá trị true
hoặc false
Câu 6 Số b được dùng để tính toán các số nguyên trong phạm vi từ -216 đến 216
-1 thì b thuộc kiểu:
Đáp án đúng là: C
Vì phạm vi giá trị của kiểu short là 2 byte [-216 đến 216-1]
Câu 7 Số c được dùng để lưu tổng (2.5+1.2) thì c thuộc kiểu:
Đáp án đúng là: B
Vì tổng c=2.5+1.2=3.7 là 1 số thực nên c thuộc kiểu float
Câu 8 Số z được dùng để chứa 2 giá trị true hoặc false thì z thuộc kiểu:
Trang 22Đáp án đúng là: A
Vì z chứa 2 giá trị true hoặc false nên z thuộc kiểu bool
Câu 9 Biến s được dùng để chứa các kí tự trong phạm vi từ ‘a’ đến ‘z’ thì biến s
Đáp án đúng là: D
Vì s chứa các kí tự của bảng chữ cái nên s thuộc kiểu kí tự
Câu 10 Xét khai báo biến:
Đáp án đúng là: B
Kiểu int bộ nhớ lưu trữ một giá tri là 4 byte → 2 biến a, b cần 4×2 = 8 byte Kiểu float bộ nhớ lưu trữ một giá tri là 4 byte → 1 biến c cần 1×4 = 4 byte
→ Vậy cần cấp 8+4 = 12 byte bộ nhớ cho các biến
Trang 23Câu 11 Biến a có thể nhận các giá trị 3; 200; 150 và biến b có thể nhận các giá
trị 0.2; 0.3; 10.99 Khai báo nào trong các khai báo sau là đúng nhất?
Đáp án đúng là: C
Vì biến a có thể nhận các giá trị 3; 200; 150 và biến b có thể nhận các giá trị 0.2; 0.3; 10.99 → a thuộc kiểu số nguyên, b thuộc kiểu số thực
Câu 12 Trong ngôn ngữ lập trình C++, kiểu dữ liệu nào trong các kiểu sau có bộ
nhớ lưu trữ lớn nhất?
Đáp án đúng là: A
Vì kiểu char bộ nhớ lưu trữ là 1 byte
Vì kiểu short bộ nhớ lưu trữ là 2 byte
Vì kiểu int bộ nhớ lưu trữ là 4 byte
Vì kiểu bool bộ nhớ lưu trữ là 1 byte
→ Kiểu int có bộ nhớ lưu trữ là lớn nhất
Câu 13 Phạm vi giá trị của kiểu char thuộc:
A Từ 0 đến 255
B Từ -215 đến 215 -1
C Từ 0 đến 216 -1
D Từ -231 đến 231 -1
Trang 24Hướng dẫn giải
Đáp án đúng là: A
Vì kiểu char có bộ nhớ lưu trữ là 1 byte ([0,255])
Câu 14 Phạm vi giá trị của kiểu int thuộc:
Đáp án đúng là: D
Vì kiểu int có bộ nhớ lưu trữ là 4 byte ([-232, 232 -1])
Câu 15 Phạm vi giá trị của kiểu short thuộc:
Đáp án đúng là: B
Vì kiểu short có bộ nhớ lưu trữ là 2 byte ([ -216 ,216 -1])
Trang 26Bài 5 Khai báo biến Câu 1 Để khai báo biến x kiểu thực ta viết:
Đáp án đúng là: A
Vì x là kiểu thực nên cách khai báo đúng là float x;
Câu 2 Để khai báo biến z kiểu logic ta viết:
Đáp án đúng là: B
Vì z là logic nên cách khai báo đúng là bool x;
Câu 3 Cho đoạn chương trình sau:
Trang 27C bool
D str
Hướng dẫn giải
Đáp án đúng là: A
Vì a được khai báo trong đoạn chương trình là int a;
Câu 4 Cho đoạn chương trình sau:
Đáp án đúng là: B
Vì trong đoạn chương trình b được khai báo là số thực: float b;
Câu 5 Khai báo nào sau đây là đúng:
A short x;
B x:short;
C x=short;
D short:x;
Trang 28Hướng dẫn giải
Đáp án đúng là: A
Trong C++, khai báo biến có cú pháp: <kiểu dữ liệu><danh sách biến>;
Câu 6 Giả sử trong chương trình cần các biến thực a,b,c và các biến nguyên x,y,z
Khi đó khai báo đúng là:
Đáp án đúng là: C
Vì biến các a,b,c là kiểu thực → Khai báo đúng là float a,b,c;
Các biến x,y,z là kiểu nguyên → Khai báo đúng là int x,y,z;
Câu 7 Trong ngôn ngữ lập trình C++, giả sử ta thực hiện phép tính x= a/b Thì x
phải khai báo kiểu dữ liệu?
Đáp án đúng là: B
Vì x=a/b → x thuộc kiểu số thực
Câu 8 Danh sách các biến là một hoặc nhiều tên biến, các tên biến được viết cách
Trang 29Hướng dẫn giải
Đáp án đúng là: D
Trong C++ danh sách biến là một hoặc nhiều tên biến, các tên biến được viết cách
nhau bởi dấu phẩy (,)
Câu 9 Trong C++, cú pháp để khai báo biến là:
A <kiểu dữ liệu><danh sách biến>
B <kiểu dữ liệu> :<danh sách biến>
C <danh sách biến> :<kiểu dữ liệu>
D <danh sách biến><kiểu dữ liệu>
Hướng dẫn giải
Đáp án đúng là: A
Cú pháp khai báo biến như sau :
<kiểu dữ liệu> <danh sách biến> ;
Câu 10 Trong C++, khai báo biến có cú pháp như sau:
<kiểu dữ liệu><danh sách biến>;
Khẳng định nào sau đây là đúng :
A Mỗi biến chỉ được khai báo một lần
B Mỗi biến có thể được khai báo nhiều lần
C Các biến không cần phải khai báo
D Mỗi biến chỉ cần gán giá trị không cần phải khai báo
Hướng dẫn giải
Đáp án đúng là: A
Mọi biến dùng trong chương trình đều cần khai báo tên và kiểu dữ liệu của biến Tên biến dùng để xác lập quan hệ giữa biến với địa chỉ bộ nhớ nơi lưu trữ giá trị biến Mỗi biến chỉ được khai báo một lần
Câu 11 Trong C++, khai báo biến có cú pháp như sau:
<kiểu dữ liệu><danh sách biến>;
Khẳng định nào sau đây là đúng :
A Danh sách biến là một hoặc nhiều tên biến, các tên biến được viết cách nhau
bởi dấu chấm phẩy “;”
Trang 30B Danh sách biến là một hoặc nhiều tên biến, các tên biến được viết cách nhau
bởi dấu phẩy “,”
C Danh sách biến là một biến
D Danh sách biến là các hằng số
Hướng dẫn giải
Đáp án đúng là: B
Danh sách biến là một hoặc nhiều tên biến, các tên biến được viết cách nhau bởi dấu phẩy (,)
Câu 12 Khai báo nào sau đây đúng?
Đáp án đúng là: B
Trong C++, khai báo biến có cú pháp: <kiểu dữ liệu><danh sách biến>;
Trong đó danh sách biến là một hay nhiều biến, các biến ngăn cách nhau bởi dấu phẩy (,)
Câu 13 Đại lượng dùng để lưu trữ giá trị và giá trị có thể được thay đổi trong quá
trình thực hiện chương trình gọi là:
Đáp án đúng là: D
Theo khái niệm về biến: Biến là đại lượng dùng để lưu trữ giá trị và giá trị có thể được thay đổi trong quá trình thực hiện chương trình
Câu 14 Biến c có phạm vi giá trị là [-264,263-1] Cách khai báo nào sau đây là đúng :
Trang 31Đáp án đúng là: C
Vì phạm vi giá trị của kiểu char là [0,255], kiểu short là [-216,216-1], kiểu int là [-232,231-1]
Câu 15 Khẳng định nào sau đây là sai ?
A Cấu trúc khai báo biến có thể xuất hiện nhiều lần và ở vị trí bất kỳ trong chương
trình
B danh sách biến là một hoặc nhiều tên biến, các tên biến được viết cách nhau
bởi dấu phẩy
C Trong C++ cho phép ta vừa khai báo biến vừa khởi tạo giá trị cho biến
D Biến là đại lượng không thay đổi trong quá trình thực hiện chương trình Hướng dẫn giải
Đáp án đúng là: D
Theo khái niệm về biến: Biến là đại lượng dùng để lưu trữ giá trị và giá trị có thể được thay đổi trong quá trình thực hiện chương trình
Trang 33Bài 6 Phép toán, biểu thức và lệnh gán Câu 1 Biểu thức [(x+y)*z]-(x2-y2) chuyển sang C++ là:
Câu 2 Trong phép toán số học với số nguyên phép toán lấy phần dư trong C++
Câu 3 Trong phép toán số học với số nguyên phép toán lấy phần nguyên trong
Trang 34Phép toán số học với số nguyên phép toán lấy phần nguyên trong C++ kí hiệu là /
(Vì đáp án A là chia lấy phần dư, đáp án B và D là chia lấy phần dư và phần nguyên trong pascal, không tồn tại trong C++)
Câu 4 Trong phép toán quan hệ phép so sánh bằng trong C++ được viết là:
Phép toán quan hệ phép so sánh bằng trong C++ được viết là = =
(Đáp án B là phép gán, đáp án C và D là phép so sánh lớn hơn hoặc bằng, nhỏ hơn hoặc bằng)
Câu 5 Trong phép toán quan hệ phép so sánh lớn hơn hoặc bằng trong C++ được
Trang 35D <>
Hướng dẫn giải
Đáp án đúng là: B
Trong phép toán quan hệ phép khác trong C++ được viết là: !=
(Đáp án A là phép so sánh bằng, đáp án C là dấu #, đáp án D là phép toán quan
hệ khác trong pascal không tồn tại trong C++)
Câu 7 x2 được biểu diễn trong C++ là:
Câu 8 Trong C++ câu lệnh gán có dạng:
A <tên biến> := <biểu thức>
B <tên biến> = <biểu thức>
C <tên biến> == <biểu thức>;
D <tên biến> = <biểu thức>;
Hướng dẫn giải
Đáp án đúng là: D
Theo quy tắc về câu lệnh gán <tên biến> =<biểu thức>;
Câu 9 Trong C++ khi viết x++ có nghĩa là:
A Giảm x đi 2 đơn vị
B Tăng x lên 2 đơn vị
C Tăng x lên 1 đơn vị
D X giữ nguyên giá trị
Hướng dẫn giải
Đáp án đúng là: C
vì x++ tương đương với x=x+1
Trang 36Câu 10 Biểu thức a+ chuyển sang C++ là: b
B Tăng x lên 1 đơn vị
C X giữ nguyên giá trị
D Giảm x đi 2 lần
Hướng dẫn giải
Đáp án đúng là: D
x/=2 tương đương với cách viết x=x/2 → x giảm đi 2 lần
Câu 12 Trong C++ khi viết x%=2 có nghĩa là:
A Tăng x lên 2 lần
B Thay x bằng phần nguyên của x chia 2
C Thay x bằng phần dư của x chia 2
D Giảm x đi 2 lần
Hướng dẫn giải
Đáp án đúng là: C
x %= 2 có nghĩa là thay x bằng phần dư của x chia 2
Câu 13 Trong C++ khi viết x=y=3 có nghĩa là:
A Gán cho cả x và y giá trị 3
B Thay x bằng y
C So sánh x và y với 3
Trang 37D Tăng x và y lên 3 đơn vị
And là phép và trong pascal
Câu 15 Để thể hiện điều kiện 5 ≤ x ≤ 11, trong C++ được viết như sau:
Để thể hiện điều kiện 5 ≤ x ≤ 11, trong C++ có thể tách thành phát biểu dưới dạng
"5 ≤ x và x≤ 11" và được viết như sau:(5 <= x) && (x <= 11)
Trang 39Bài 7 Các hàm chuẩn vào/ra đơn giản Câu 1 Trong C++ việc nhập dữ liệu từ bàn phím được thực hiện bằng lệnh:
A cin >> biến1 >> biến2 >> >> biếnN;
B cin << biến1 <<biến2 << << biếnN;
C cout >> biến1 >> biến2 >> >> biếnN;
D cout << biến1 <<biến2 << << biếnN;
Hướng dẫn giải
Đáp án đúng là: A
Trong C++ việc nhập dữ liệu từ bàn phím được thực hiện bằng lệnh cin:
cin >> biến1 >> biến2 >> >> biếnN;
Trong đó biến1, biến2, , biếnN là một hoặc nhiều tên biến đơn, mỗi biến đơn được viết theo sau một ký hiệu >>
Câu 2 Để nhập vào 3 số a,b,c từ bàn phím, ta dùng lệnh sau:
Trong C++ việc nhập dữ liệu từ bàn phím được thực hiện bằng lệnh cin:
cin >> biến1 >> biến2 >> >> biếnN;
Câu 3 Cho đoạn chương trình sau:
Trang 40Câu 5 Để in ra màn hình biến tb, in với độ rộng 8 và có 2 chữ số thập ta viết:
A cout << fixed <<setw(8) ;
B cout <<setw(8) << tb;
C cout << fixed <<setprecision(2)<< tb;
D cout << fixed <<setw(8) << setprecision(2)<< tb;
Hướng dẫn giải
Đáp án đúng là: D