Tham khảo tài liệu ''đề thi môn kĩ thuật lập trình - đề 2'', tài liệu phổ thông, ôn thi đh-cđ phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
Đề thi mơn Kĩ thuật lập trình – CNTT K52 (thày Vũ Đức Vượng) – Đề số Đề thi số Mơn : Kĩ thuật lập trình (IT3040) Thời gian : 90 phút SV phép sử dụng tài liệu, khơng dùng máy tính, điện thoại DĐ Câu : (0.75 đ) Cần viết đoạn lệnh in kết so sánh hai số nguyên : hai số in thơng báo “Bang nhau”, ngược lại in thông báo “Khong bang nhau” Quan sát đoạn lệnh tất trường hợp in thông báo Sửa lại đoạn lệnh cho với yêu cầu đặt int i, j; … /* Gán giá trị cho i j */ … if ( i = j) printf (“Bang \n”); else printf (“Khong bang \n”); Câu : (1,0 đ) Cho số nguyên biểu diễn dạng nhị phân, cần viết hàm để tính số cặp bit liền kề (bit chẵn lẻ) có giá trị khác Ví dụ: Dạng nhị phân số 52 “00 11 01 00” hàm trả giá trị (chỉ có cặp bit 01 cặp bit liền kề có giá trị khác nhau) Dạng nhị phân số 102 “01 10 01 10” hàm trả giá trị (có cặp bit liền kề có giá trị khác nhau) Hãy trường hợp hàm oddeven() định nghĩa trả kết sai ? Đề thi mơn Kĩ thuật lập trình – CNTT K52 (thày Vũ Đức Vượng) – Đề số int oddeven (unsigned int x) { int b; for (b = 0; x! = 0; x >>= 2) b += ((x & 1) ^ (x & 2)); return b; } Sửa lại hàm cho với yêu cầu đặt Lưuý : sinh viên khôngđư dùng lệnh “if” ợc Câu : (1 đ) Hàm CompareFloats() dùng để so sánh hai số thực x y : Hàm trả giá trị dương x > y, trả giá trị x = y, trả giá trị âm x < y Hãy trường hợp sai sót hàm chỉnh sửa để hàm thực trường hợp cho kết hợp lý int CompareFloats(void *p1, void *p2) { float *fp1 = (float *) p1; float *fp2 = (float *) p2; return (int) ( *fp1 - *fp2) ; } Câu : (0,75 đ) Tính giá trị phần tử mảng A sau thực đoạn lệnh : int A[ ] = {16, 23, 34, 19} ; int *p = A ; *p += ; p += ; *p - - ; *p += ; Đề thi môn Kĩ thuật lập trình – CNTT K52 (thày Vũ Đức Vượng) – Đề số Câu : (1 đ) Hãy tinh chỉnh đoạn mã lệnh sau kỹ thuật tạo vị trí giải thích lý (Biết n > 20, x,y,z số nguyên hàm đoạn lệnh tối ưu) for ( int i = ; i < n ; i++ ) { if ( x == y *16 ) DoOneThing(i); else if ( x == y/8 + z/8 ) DoSomeThingElse(i); else DoAnotherThing(i); } Câu : (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 cách sửa đoạn khai báo : char MaTran [80][60]; thành char MaTran [80][64]; Em cho biết ý nghĩa, tác d ụng việc sửa đổi ? Câu : (0,75 đ) Hãy cải tiến đoạn mã lệnh sau ( b số) : for ( i = 0; i < 10; i ++ ) { printf (“%f\n”, i*2*sin(b)); } Câu : (2,0 đ) Cho a b hai mảng cấp phát động với kích thước số phần tử mảng chứa hai dãy số thực A = [a1, a2, … , an] B = [b1, b2, … , bm] Sử dụng ngơn ngữ lập trình C/C++ để viết hàm … DiffElem(…) với : Đầu vào : danh sách A danh sách B (và tham số khác cần …) Đề thi môn Kĩ thuật lập trình – CNTT K52 (thày Vũ Đức Vượng) – Đề số Đầu : trỏ đến danh sách C; danh sách bao gồm : - Tất số thuộc A không thuộc B - Tất số thuộc B không thuộc A Bên cạnh đó, thơng qua tham số truyền, gửi số phần tử mảng kết C Yêu cầu : phong cách lập trình thống nhất, thích đầy đủ, áp dụng kĩ thuật viết mã nguồn hiểu quả, bẫy lỗi lập trình phịng ngừa áp dụng Liệt kê kỹ thuật viết mã nguồn hiểu quả, bẫy lỗi lập trình phịng ngừa áp dụng Câu : (2 đ) Cho danh sách liên kết đơn với nút khai báo sau : struct node { int info; struct node *next; }; Hãy xây dựng hàm (hoặc phương thức) Sort để xếp danh sách theo thứ tự giảm dần info ... p += ; *p - - ; *p += ; Đề thi môn Kĩ thuật lập trình – CNTT K 52 (thày Vũ Đức Vượng) – Đề số Câu : (1 đ) Hãy tinh chỉnh đoạn mã lệnh sau kỹ thuật tạo vị trí giải thích lý (Biết n > 20 , x,y,z... (và tham số khác cần …) Đề thi môn Kĩ thuật lập trình – CNTT K 52 (thày Vũ Đức Vượng) – Đề số Đầu : trỏ đến danh sách C; danh sách bao gồm : - Tất số thuộc A không thuộc B - Tất số thuộc B không.. .Đề thi mơn Kĩ thuật lập trình – CNTT K 52 (thày Vũ Đức Vượng) – Đề số int oddeven (unsigned int x) { int b; for (b = 0; x! = 0; x >>= 2) b += ((x & 1) ^ (x & 2) ); return b; }