Đề thi môn Kĩ thuật lập trình – CNTT K52 (thày Vũ Đức Vượng) – Đề số 2
1
Đề thi số 2
Môn : Kĩ thuật lập trình (IT3040)
Thời gian : 90 phút
SV được phép sử dụng tài liệu, nhưng không được dùng máy tính,
điện thoại DĐ
Câu 1 : (0.75 đ)
Cần viết một đoạn lệnh in ra kết quả so sánh hai số nguyên : nếu hai số
bằng nhau thì in ra thông báo “Bang nhau”, ngược lại in ra thông báo
“Khong bang nhau”.
Quan sát đoạn lệnh dưới đây và chỉ ra tất cả các trường hợp in ra thông
báo.
Sửa lại đoạn lệnh cho đúng với yêu cầu đặt ra.
int i, j;
…
/* Gán giá trị cho i và j */
…
if ( i = j)
printf (“Bang nhau \n”);
else
printf (“Khong bang nhau \n”);
Câu 2 : (1,0 đ)
Cho một số nguyên được biểu diễn dưới dạng nhị phân, cần viết một hàm
để tính số cặp bit liền kề (bit chẵn và lẻ) có giá trị khác nhau. Ví dụ:
Dạng nhị phân của số 52 là “00 11 01 00” hàm trả về giá trị 1 (chỉ có
cặp bit 01 là cặp bit liền kề có giá trị khác nhau).
Dạng nhị phân của số 102 là “01 10 01 10” hàm trả về giá trị 4 (có 4
*p += 2 ;
p += 2 ;
*p - - ;
*p += 2 ;
Đề thi môn Kĩ thuật lập trình – CNTT K52 (thày Vũ Đức Vượng) – Đề số 2
3
Câu 5 : (1 đ)
Hãy tinh chỉnh đoạn mã lệnh sau bằng mọi kỹ thuật và tạo mọi vị trí có
thể và giải thích lý do (Biết rằng n > 20, x,y,z là các số nguyên và các
hàm trong đoạn lệnh đã tối ưu).
for ( int i = 0 ; i < n ; i++ ) {
if ( x == y *16 )
DoOneThing(i);
else if ( x == y/8 + z/8 )
DoSomeThingElse(i);
else
DoAnotherThing(i);
}
Câu 6 : (0,75 đ)
Một lập trình viên chuyên nghiệp tiến hành tinh chỉnh chương trình
bằng cách sửa các đoạn khai báo : char MaTran [80][60]; thành
char MaTran [80][64]; Em hãy cho biết ý nghĩa, tác d ụng của việc sửa đổi
đó ?
Câu 7 : (0,75 đ)
tự giảm dần của info.