TRƯỜNG ĐẠI HỌC BÁCH KHOA TP.HCM
Tên SV : ………………………………
MSSV:……….........................................
Khoa Khoa học & Kỹ thuật Máy tính
Thi kiểm tra giữa kỳ II, năm học 2012-2013
KỸ THUẬT LẬP TRÌNH
Thời gian : 45 phút
Sinh viên được phép mở tài liệu. Sau khi thi, sinh viên nộp lại đề có ghi Tên SV, MSSV, và bài giải phần I&II.
Thang điểm tối đa : 10 điểm.
PHẦN I: TRẮC NGHIỆM (5 điểm, sinh viên trả lời các câu hỏi bằng cách khoanh tròn đáp án đúng nhất)
Câu 1.
Nhận định nào sau đây đúng:
A. Trình thơng dịch tiến hành dịch chương trình nguồn theo từng phân đoạn rồi thực thi đoạn mã được dịch. Trình biên
dịch tiến hành dịch tồn bộ chương trình nguồn rồi mới thực thi chương trình.
B. Trình biên dịch tiến hành dịch chương trình nguồn theo từng phân đoạn rồi thực thi đoạn mã được dịch. Trình thơng
dịch tiến hành dịch tồn bộ chương trình nguồn rồi mới thực thi chương trình.
C. Cả trình biên dịch và trình thơng dịch đều tiến hành dịch tồn bộ chương trình nguồn rồi mới thực thi chương trình.
D. Cả trình biên dịch và trình thơng dịch đều tiến hành dịch chương trình nguồn theo từng phân đoạn rồi thực thi đoạn
mã được dịch
Câu 2.
Biết rằng biến x được khai báo kiểu là int và được gán giá trị ban đầu là 0, cho biết câu lệnh nào dưới
đây không hợp lệ:
A. x = x + ‘a’;
Câu 3.
MOV
B. x = x;
C. x + 1= 5;
D. x = x + 5;
Đoạn chương trinh sau:
AX, 3
INT
10h
MOV
AH, 9
MOV
DX, OFFSET InputNumber
INT
21h
được viết bằng:
A. Ngôn ngữ máy
Câu 4.
B. Ngôn ngữ cấp cao
C. Hợp ngữ
D. Cả A, B, C đều sai
Hãy cho biết đoạn chương trình sau xuất kết quả gì ra màn hình
int a = 5, b = 5;
if( a = 4)
b = 4;
cout << b;
Đề thi môn Kỹ thuật lập trình 501127 – HK02/2012-2013
TRƯỜNG ĐẠI HỌC BÁCH KHOA TP.HCM
Tên SV : ………………………………
MSSV:……….........................................
Khoa Khoa học & Kỹ thuật Máy tính
A. 4
B. 5
Câu 5.
C. 0
D. Đoạn mã bị lỗi
Hãy cho biết câu lệnh sau xuất kết quả gì ra màn hình:
cout<< "|" <
<
<< 1234567.89 << "|" ;
A. |+1234567.89|
Câu 6.
B. |+1234567.890000|
C. |+1.23457e+006|
D. |1234567.89|
Hãy cho biết đoạn chương trình sau xuất gì ra màn hình:
enum day { mon, tue, wed, thr, fri, sat, sun};
day
a = tue;
cout
<<
A.2
a;
B. 1
Câu 7.
C. tue
D. day
Giả sử ta khai báo i và j là hai biến số nguyên. Hãy cho biết câu lệnh sau đây:
switch (i) {
case 1:
case 2:
case 3:
case 7: j = i; break;}
tương đương với câu lệnh nào dưới đây:
A. if (i == 1) j = i;
C. if ((i == 1) && (i == 2) && (i == 3) && (i == 7)) j = i;
Câu 8.
B. if (i == 7) j = i;
D. if ((i == 1) || (i == 2) || (i == 3) || (i == 7))
Cho các định danh sau:
1.
2.
3.
4.
5.
Main
Abc-123
If
F5
5F
Những định danh hợp lệ là
A. Chỉ có F5
C. Tất cả các định danh trên đều hợp lệ
Câu 9.
A.
B.
C.
D.
B. Chỉ có Main, If và F5
D. Chỉ có F5 và Abc-123
Câu nào sau đây là đúng?
Mỗi dịng trong một chương trình phải kết thúc bằng dấu chấm phẩy.
Mỗi dịng chú thích phải kết thúc bằng dấu chấm phẩy.
Mỗi câu lệnh trong một chương trình phải kết thúc bằng dấu chấm phẩy.
D. Không thể khai báo nhiều biến trên cùng một dịng lệnh.
Đề thi mơn Kỹ tḥt lập trình 501127 – HK02/2012-2013
j = i;
TRƯỜNG ĐẠI HỌC BÁCH KHOA TP.HCM
Tên SV : ………………………………
MSSV:……….........................................
Khoa Khoa học & Kỹ thuật Máy tính
Câu 10.
Trong số những dòng chú thích sau:
1.
// /*/*Comment 1*/*/
2.
// Comment 2 //
3.
/* Comment 3 */
4.
/* Comment 4 */ /*Comment 4_1*/
5.
/* /* Comment 5 */
6.
// /*Comment 6*/
A. có đúng 1 chú thích khơng hợp lệ
C. có đúng 3 chú thích khơng hợp lệ
B. có đúng 2 chú thích khơng hợp lệ
D. Tất cả các chú thích trên đều hợp lệ
PHẦN II : ĐIỀN VÀO CHỖ TRỐNG (3 điểm, sinh viên trả lời các câu hỏi bằng cách điền vào chỗ trống)
Câu 11.
Trong chương trình viết bằng C++, biểu thức 2*13%7 + 21/4 có giá trị bằng _______10__________
Câu 12.
Sau khi thực hiện câu lệnh
float rate = (100 > 40)? ((6 < 3)? 1.3: 2.4):3.5;
biến rate có giá trị bằng ____2.4_____________
Câu 13.
Hãy cho biết kết xuất của đoạn chương trình sau : ___________ Khơng xuất ______________________
int
x = 4;
int
y = 8;
if ( x > 5 )
if ( y > 5 )
cout<< "x and y are > 5" ;
else
cout<< "x is <= 5";
Câu 14.
int
Hãy cho biết kết xuất của đoạn chương trình sau: ___________ _5, 7, -6_____________________
a = 5, b = 6, c = 7;
c = a++ - b++ - a--;
cout<< a << ", " << b << ", " << c;
Câu 15.
Cho biết kết xuất ra màn hình của đoạn chương trình sau: ______ pass warning________________
Đề thi mơn Kỹ tḥt lập trình 501127 – HK02/2012-2013
TRƯỜNG ĐẠI HỌC BÁCH KHOA TP.HCM
Khoa Khoa học & Kỹ thuật Máy tính
Tên SV : ………………………………
MSSV:……….........................................
int n = 'c';
switch(n++) {
default: cout<< "error "; break;
case 'a':
case 'b': cout<< "good "; break;
case 'c': cout<< "pass ";
case 'd': cout<< "warning "; }
Câu 16.
Sau khi đoạn mã sau được thực thi, hãy cho biết giá trị của x là ______1________
int a = 14, b = 15, x;
char c = 'A';
x = (a && b) && (c < 'C');
PHẦN III : LẬP TRÌNH (Sinh viên viết bài giải vào bài làm)
Câu 17.
(2 điểm cho sinh viên lớp thường, 1.5 điểm cho sinh viên lớp KSTN) Viết flowchart hoặc viết code bằng
ngôn ngữ C++ cho một chương trình đốn “Giải mã chính mình” có nội dung như sau (được trích một phần từ
website: />1. Cảm giác của bạn khi nào là tốt nhất?
4. Gặp một chuyện buồn cười, phản ứng của bạn...
A. Sáng sớm
A. Cười một các sảng khối
B. Chiều và chập tối
B. Cười, nhưng khơng cười to
C. Ban đêm
C. Cười nhẹ
D. Cười tủm tỉm
2. Khi nói chuyện với ai đó, bạn thường
A. Đứng khoanh tay
B. Nắm chặt hai tay
C. Một tay hoặc hai tay chống hông
D. Chạm vào hoặc đẩy nhẹ
5. Khi đến tham gia một tổ chức hoặc một nhóm hoạt động xã hội,
bạn...
A. Nói thật to khi vào để thu hút sự chú ý
B. Đi vào thật lặng lẽ, tìm người quen của bạn
Đề thi môn Kỹ thuật lập trình 501127 – HK02/2012-2013
TRƯỜNG ĐẠI HỌC BÁCH KHOA TP.HCM
Tên SV : ………………………………
MSSV:……….........................................
Khoa Khoa học & Kỹ thuật Máy tính
E. Nghịch tai mình, sờ cằm hoặc vuốt tóc
C. Đi vào rất lặng lẽ, cố gắng không để bị chú ý
3. Lúc ngồi nghỉ...
A. Hai chân khéo lại
B. Chân nọ bẵt chéo lên chân kia
C. Gập một chân lại
D. Chân nọ bẵt chéo lên chân kia
6. Khi bạn hết sức tập trung vào công việc, có người ngắt mạch làm việc
của bạn, bạn sẽ...
A. Vui vẻ đón tiếp người đó
B. Cảm thấy rất phiền
C. Cảm giác ở giữa "A" và "B"
Hướng dẫn: Mỗi câu trả lời chỉ được chọn một đáp án. Chương trình sẽ hỏi lần lượt từ câu hỏi số 1 đến câu hỏi số 6. Chỉ
khi người sử dụng trả lời câu hỏi trước, chương trình mới hiển thị câu hỏi sau.
Yêu cầu: dùng cấu trúc rẽ nhánh và chương trình cần xuất kết quả ra tuân theo các quy định dưới đây.
Đa số câu A được chọn: « là người ln mới mẻ, tràn đầy sức sống, thú vị và rất hấp dẫn. »
Đa số câu B được chọn: « là người thiếu tự tin, cần mẫn, khắc khổ, rất hay xoi mói và cơ cùng cẩn thận. »
Các câu khác được chọn: « là người có nội tâm bi quan, đa sầu đa cảm, hay do dự, thiếu quyết đoán, lúc nào
cũng cần người chăm sóc, ln ln cần người khác quyết định giúp. »
Trường hợp có hai câu cùng có số chọn nhiều nhất, xuất cả hai đáp án.
Lưu ý: không được sử dụng từ khóa ‘goto’ (sẽ bị 0 điểm nếu dùng lệnh goto-label).
Câu 18.
(0.5 điểm, chỉ dành cho sinh viên lớp KSTN) Hãy giải thích tại sao biểu thức E trong phát biểu
switch (E) { case ...}
chỉ có thể là các kiểu int, char, enum mà khơng thể có kiểu float, double?
Đáp án: Trong biểu thức switch case; các giá trị constant expression tại các nhãn được so sánh bằng với các nhãn
của expression. Bởi vì các kiểu float, double không thể dùng để so sánh bằng được. Do đó switch chỉ chấp nhận
kiểu int, char, enum (các kiểu dữ liệu có thể so sánh bằng được).
-HẾT-
Đề thi mơn Kỹ thuật lập trình 501127 – HK02/2012-2013