Bộ đề thi cuối kỳ môn Nhập môn lập trình - Ngày thi: 4/6/2018

TRƯỜNG ĐẠI HỌC BÁCH KHOA  
Họ và tên:.............................................  
MSSV:..................................................  
KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH  
—————————————————  
THI CUỐI KỲ - NIÊN KHÓA 2017-2018  
Môn thi: Nhập môn lập trình (CO1003)  
Thời gian làm bài: 90 phút  
ꢀ Không được phép dùng tài liệu  
Đề thi số: 1721  
ꢁ Được phép dùng tài liệu giấy  
Đề thi gồm 2 trang.  
Chú ý: Các khai báo về thư viện, các hàm cơ bản và khai báo khác (nếu cần thiết) được xem như đầy đủ. Mỗi câu hỏi trắc  
nghiệm chỉ chọn một đáp án đúng nhất. Phần I, II sinh viên làm trực tiếp vào đề. Sinh viên chỉ được tối đa 10 điểm  
I. Các câu hỏi trắc nghiệm (4đ)  
Câu 1. Khai báo mảng nào sau đây là sai  
Câu 8. Định dạng dữ liệu khi đọc/ghi bằng scanf, printf  
cho kiểu long là:  
ꢀ ¨  
A
int a[2];  
ꢀ ¨  
ꢀ¨  
ꢁ ©  
ꢀ¨  
A
%s  
B
%ld  
B
int a[] = {1, 3};  
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ ¨  
ꢁ©  
ꢀ¨  
C
%e  
D
%c  
C
int a[2] = malloc(2 * sizeof(2));  
ꢁ©  
ꢁ ©  
ꢁ©  
ꢀ ¨  
D
int* a = malloc(2 * sizeof(2));  
ꢁ ©  
Câu 9. Dòng lệnh sau xuất giá trị gì ra màn hình:  
p r i n t f ( "%d" , 0161);  
Câu 2. Kiểu dữ liệu nào sau đây phù hợp nhất để lưu điểm  
ꢀ ¨  
ꢀ¨  
tổng kết của một môn học:  
float  
ꢀ ¨  
ꢀ¨  
A
0161  
B
lệnh bị lỗi  
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ ¨  
A
B
int  
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ ¨  
C
113  
D
161  
ꢁ©  
ꢁ ©  
C
char  
D
pointer  
ꢁ©  
ꢁ ©  
Câu 10. Giá trị in ra của đoạn lệnh C sau là  
Câu 3. Hãy chọn phát biểu đúng về chú thích:  
int x = 3 , y = 7;  
ꢀ ¨  
p r i n t f ( "%d %d" , − −y , x++);  
A
Trình biên dịch sẽ không dịch các chú thích  
ꢁ ©  
ꢀ¨  
ꢀ ¨  
ꢀ¨  
B
Chú thích phải bắt đầu từ đầu dòng  
ꢁ©  
ꢀ¨  
A
7 3  
B
7 4  
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ ¨  
C
Mọi chú thích phải bắt đầu bằng /* và kết  
thúc bằng */  
ꢁ©  
C
6 4  
D
6 3  
ꢁ©  
ꢁ ©  
Câu 11. Đoạn chương trình sau xuất gì ra màn hình  
Đoạn lệnh sau dùng cho 2 câu tiếp theo 4-5:  
int x = 4 , y = 5;  
i f (y− − < 5) p r i n t f ( "%d , " , ++y ) ;  
int i =0, j =1, s =0;  
for ( i =0; i < 5; ++i ) {  
s = s + j ;  
i f (x > 6)  
p r i n t f ( "%d" , − −y ) ;  
else p r i n t f ( "%d" , ++y ) ;  
ꢀ ¨  
ꢀ¨  
j = j ∗ 2;  
A
5, 6  
B
5
}
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ ¨  
C
6, 5  
D
6
ꢁ©  
ꢁ ©  
Câu 4. Thực thi xong đoạn lệnh trên giá trị của s là:  
Đoạn lệnh sau dùng cho 2 câu 12-13:  
ꢀ ¨  
ꢀ¨  
A
31  
B
15  
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ ¨  
int a , b ;  
C
7
D
16  
for ( a = 1 , b = 1; a<=50; a+=2){  
ꢁ©  
ꢁ ©  
i f (b>=20)  
break ;  
Câu 5. Thực thi xong đoạn lệnh trên giá trị của j là:  
i f (( a+b) % 3 == 1)  
ꢀ ¨  
ꢀ¨  
{ b += 3; continue ;}  
A
16  
B
32  
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ ¨  
}
C
8
D
1
ꢁ©  
ꢁ ©  
Câu 12. Giá trị của a sau khi thực thi đoạn chương trình  
ꢀ ¨  
ꢀ¨  
Câu 6. Hãy chọn phát biểu sai về các kiểu dữ liệu  
ꢀ ¨  
A
50  
B
51  
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ ¨  
A
int là kiểu số thực và chiếm 4 bytes trong bộ  
ꢁ ©  
C
41  
D
Cả A, B và C đều sai  
nhớ  
ꢀ¨  
ꢁ©  
ꢁ ©  
B
float là kiểu số thực dấu chấm động  
ꢁ©  
ꢀ¨  
Câu 13. Thực thi xong đoạn lệnh trên giá trị của b là:  
ꢀ ¨  
ꢀ¨  
C
double chiếm 8 bytes trong bộ nhớ  
ꢁ©  
ꢀ ¨  
A
22  
B
50  
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ ¨  
D
char chiếm 1 bytes trong bộ nhớ  
ꢁ ©  
C
32  
D
16  
ꢁ©  
ꢁ ©  
Câu 7. Với x là một biến kiểu int, &x sẽ:  
Câu 14. Lời gọi hàm sqrt(16) trả về giá trị:  
ꢀ ¨  
ꢀ¨  
ꢀ ¨  
ꢀ¨  
A
lấy giá trị hiện tại của x B lấy địa chỉ của biến x  
A
2
B
6.0  
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ ¨  
C
lỗi cú pháp  
C
256.0  
D
4.0  
ꢁ©  
ꢁ©  
ꢁ ©  
Ngày thi: 4/6/2018  
Trang 1/2 − Mã đề 1721  
Câu 15. Thiết bị nào sau đây thuộc về phần cứng (hard-  
Câu 16. Dòng lệnh sau xuất giá trị gì ra màn hình?  
ware) trong máy tính  
CPU  
p r i n t f ( "%08.2 f " , 2 1 . 1 5 6 ) ;  
ꢀ ¨  
A
ꢁ ©  
ꢀ¨  
ꢀ ¨  
ꢀ¨  
A
21.1560  
B
00021.16  
B
Bộ tiền xử lý (Preprocessor)  
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ ¨  
ꢁ©  
ꢀ¨  
C
21.16  
D
00021.15  
C
Trình biên dịch (Compiler)  
Bộ chuyển ngữ (Assembler)  
II. Các câu hỏi điền kết quả (2đ)  
ꢁ©  
ꢁ ©  
ꢁ©  
ꢀ ¨  
D
ꢁ ©  
Câu 17. Biến kiểu long chiếm:  
byte(s) trong  
)
bộ nhớ.  
Câu 18. Hãy hoàn thiện đoạn chương trình tính tổng lập  
phương của các số từ 1 đến 50 thỏa mãn chia hết  
cho 2 hoặc chia hết cho 3 nhưng không chia hết  
cho 6  
sum =  
Câu 19. Giá trị của biểu thức 5 ∗ (int)4.5 + 1.5 là:  
Câu 20. Giá trị của biểu thức 18|7 là:  
int i, sum=0;  
for(i = 1;  
)
if(  
III. Phần tự luận (5đ)  
Câu 21. (1đ) Đây là câu dùng chấm phong cách lập trình. Để được điểm phần này, sinh viên phải làm được ít nhất một phần  
(có điểm dương) của một trong các câu ở dưới.  
Câu 22. (1.5đ) Viết chương trình tuân theo các yêu cầu sau:  
• Nhập vào một số nguyên dương N từ bàn phím. Nếu nhập sai thì yêu cầu nhập lại (N <= 0)  
• Tìm và in ra màn hình tất cả các ước dương của số N vừa nhập vào  
Câu 23. (2.5đ) Cho đa thức có dạng biểu diễn: a0 ∗ x0 + a1 ∗ x1 + a2 ∗ x2 + ... + an ∗ xn với n < 20.  
• Hãy dùng cấu trúc dữ liệu phù hợp để lưu trữ thông tin một đa thức cụ thể nào đó  
• Viết hàm nhap để nhập vào một đa thức  
• Viết hàm tong để tính tổng của 2 đa thức, kết quả là một đa thức mới  
• Cho phép người dùng nhập vào 1 giá trị x, tính giá trị của đa thức tại x  
Chủ nhiệm Khoa/Bộ môn  
Giảng viên ra đề  
ThS. Võ Thanh Hùng  
Ngày thi: 4/6/2018  
Trang 2/2 − Mã đề 1721  
TRƯỜNG ĐẠI HỌC BÁCH KHOA  
KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH  
—————————————————  
THI CUỐI KỲ - NIÊN KHÓA 2017-2018  
Môn thi: Nhập môn lập trình (CO1003)  
Thời gian làm bài: 90 phút  
ꢀ Không được phép dùng tài liệu  
Đề thi số: 1721  
ꢁ Được phép dùng tài liệu giấy  
I. Các câu hỏi trắc nghiệm (4đ)  
Câu 1. Khai báo mảng nào sau đây là sai  
Câu 8. Định dạng dữ liệu khi đọc/ghi bằng scanf, printf  
ꢀ ¨  
cho kiểu long là:  
A
int a[2];  
ꢁ ©  
ꢀ¨  
ꢀ ¨  
A
%s  
B
%ld  
B
int a[] = {1, 3};  
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ ¨  
C
%e  
D
%c  
C
int a[2] = malloc(2 * sizeof(2));  
ꢁ©  
ꢁ ©  
ꢀ ¨  
D
int* a = malloc(2 * sizeof(2));  
ꢁ ©  
Câu 9. Dòng lệnh sau xuất giá trị gì ra màn hình:  
p r i n t f ( "%d" , 0161);  
Câu 2. Kiểu dữ liệu nào sau đây phù hợp nhất để lưu điểm  
tổng kết của một môn học:  
ꢀ ¨  
ꢀ¨  
ꢀ¨  
A
0161  
B
lệnh bị lỗi  
ꢁ ©  
ꢁ©  
ꢀ ¨  
A
float  
B
int  
ꢁ©  
ꢀ ¨  
ꢀ¨  
C
113  
D
161  
ꢁ ©  
C
char  
D
pointer  
ꢁ©  
ꢁ ©  
Câu 10. Giá trị in ra của đoạn lệnh C sau là  
Câu 3. Hãy chọn phát biểu đúng về chú thích:  
int x = 3 , y = 7;  
p r i n t f ( "%d %d" , − −y , x++);  
A
B
Trình biên dịch sẽ không dịch các chú thích  
Chú thích phải bắt đầu từ đầu dòng  
ꢀ¨  
ꢀ ¨  
ꢀ¨  
ꢁ©  
ꢀ¨  
A
7 3  
B
7 4  
C
Mọi chú thích phải bắt đầu bằng /* và kết  
thúc bằng */  
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢁ©  
C
6 4  
D
6 3  
ꢁ©  
Câu 11. Đoạn chương trình sau xuất gì ra màn hình  
Đoạn lệnh sau dùng cho 2 câu tiếp theo 4-5:  
int x = 4 , y = 5;  
int i =0, j =1, s =0;  
i f (y− − < 5) p r i n t f ( "%d , " , ++y ) ;  
for ( i =0; i < 5; ++i ) {  
i f (x > 6)  
p r i n t f ( "%d" , − −y ) ;  
s = s + j ;  
j = j ∗ 2;  
}
else p r i n t f ( "%d" , ++y ) ;  
ꢀ ¨  
A
5, 6  
B
5
ꢁ ©  
ꢀ¨  
ꢀ ¨  
C
6, 5  
D
6
ꢁ©  
ꢁ ©  
Câu 4. Thực thi xong đoạn lệnh trên giá trị của s là:  
ꢀ¨  
Đoạn lệnh sau dùng cho 2 câu 12-13:  
A
31  
B
15  
ꢁ©  
ꢀ ¨  
ꢀ¨  
int a , b ;  
for ( a = 1 , b = 1; a<=50; a+=2){  
i f (b>=20)  
i f (( a+b) % 3 == 1)  
C
7
D
16  
ꢁ©  
ꢁ ©  
break ;  
Câu 5. Thực thi xong đoạn lệnh trên giá trị của j là:  
ꢀ ¨  
{ b += 3; continue ;}  
A
16  
B
32  
ꢁ ©  
ꢀ¨  
}
ꢀ ¨  
C
8
D
1
ꢁ©  
ꢁ ©  
Câu 12. Giá trị của a sau khi thực thi đoạn chương trình  
ꢀ ¨  
ꢀ¨  
Câu 6. Hãy chọn phát biểu sai về các kiểu dữ liệu  
A
50  
B
51  
ꢁ ©  
ꢁ©  
ꢀ ¨  
A
int là kiểu số thực và chiếm 4 bytes trong bộ  
C
41  
D
Cả A, B và C đều sai  
ꢁ ©  
nhớ  
ꢀ¨  
Câu 13. Thực thi xong đoạn lệnh trên giá trị của b là:  
B
float là kiểu số thực dấu chấm động  
ꢁ©  
ꢀ¨  
ꢀ¨  
C
double chiếm 8 bytes trong bộ nhớ  
A
22  
B
50  
ꢁ©  
ꢀ ¨  
ꢁ©  
ꢀ ¨  
ꢀ¨  
D
char chiếm 1 bytes trong bộ nhớ  
C
32  
D
16  
ꢁ ©  
ꢁ©  
ꢁ ©  
Câu 14. Lời gọi hàm sqrt(16) trả về giá trị:  
Câu 7. Với x là một biến kiểu int, &x sẽ:  
ꢀ ¨  
ꢀ ¨  
ꢀ¨  
A
lấy giá trị hiện tại của x  
A
2
B
6.0  
ꢁ ©  
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ¨  
B
lấy địa chỉ của biến x  
C
lỗi cú pháp  
C
256.0  
D
4.0  
ꢁ©  
ꢁ©  
Ngày thi: 4/6/2018  
Trang 1/2 − Mã đề 1721  
Câu 15. Thiết bị nào sau đây thuộc về phần cứng (hard-  
Câu 16. Dòng lệnh sau xuất giá trị gì ra màn hình?  
ware) trong máy tính  
p r i n t f ( "%08.2 f " , 2 1 . 1 5 6 ) ;  
A
B
CPU  
ꢀ¨  
ꢀ ¨  
Bộ tiền xử lý (Preprocessor)  
A
21.1560  
B
00021.16  
ꢁ©  
ꢀ¨  
ꢁ ©  
ꢀ¨  
ꢀ ¨  
C
Trình biên dịch (Compiler)  
C
21.16  
D
00021.15  
ꢁ©  
ꢀ ¨  
ꢁ©  
ꢁ ©  
D
Bộ chuyển ngữ (Assembler)  
ꢁ ©  
II. Các câu hỏi điền kết quả (2đ)  
Câu 17. Biến kiểu long chiếm:  
8 byte(s) trong  
&& (i % 6 != 0)  
)
bộ nhớ.  
Câu 18. Hãy hoàn thiện đoạn chương trình tính tổng lập  
phương của các số từ 1 đến 50 thỏa mãn chia hết  
cho 2 hoặc chia hết cho 3 nhưng không chia hết cho  
6
sum = sum + i*i*i;  
Câu 19. Giá trị của biểu thức 5 ∗ (int)4.5 + 1.5 là:  
21.5  
int i, sum=0;  
Câu 20. Giá trị của biểu thức 18|7 là:  
23  
for(i = 1; i <= 50; i++  
)
if((i % 2 == 0 || i % 3 == 0)  
III. Phần tự luận (5đ)  
Câu 21. (1đ) Đây là câu dùng chấm phong cách lập trình. Để được điểm phần này, sinh viên phải làm được ít nhất một phần  
(có điểm dương) của một trong các câu ở dưới.  
Lời giải.  
Câu 22. (1.5đ) Viết chương trình tuân theo các yêu cầu sau:  
• Nhập vào một số nguyên dương N từ bàn phím. Nếu nhập sai thì yêu cầu nhập lại (N <= 0)  
• Tìm và in ra màn hình tất cả các ước dương của số N vừa nhập vào  
Lời giải. Gợi ý giải (sinh viên có thể dùng cách khác, miễn kết quả phù hợp):  
#include <stdio . h>  
int main () {  
int n ;  
do {  
p r i n t f ( "Nhap vao so n : " ) ;  
scanf ( "%d" , &n ) ;  
} while (n <= 0 ) ;  
for ( int i = 1; i <= n ; ++i )  
i f (n % i == 0)  
p r i n t f ( "%d\n" , i ) ;  
return 0;  
}
Câu 23. (2.5đ) Cho đa thức có dạng biểu diễn: a0 ∗ x0 + a1 ∗ x1 + a2 ∗ x2 + ... + an ∗ xn với n < 20.  
• Hãy dùng cấu trúc dữ liệu phù hợp để lưu trữ thông tin một đa thức cụ thể nào đó  
• Viết hàm nhap để nhập vào một đa thức  
• Viết hàm tong để tính tổng của 2 đa thức, kết quả là một đa thức mới  
• Cho phép người dùng nhập vào 1 giá trị x, tính giá trị của đa thức tại x  
Lời giải. Gợi ý giải, sinh viên có thể làm theo cách khác  
Ngày thi: 4/6/2018  
Trang 2/2 − Mã đề 1721  
TRƯỜNG ĐẠI HỌC BÁCH KHOA  
Họ và tên:.............................................  
MSSV:..................................................  
KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH  
—————————————————  
THI CUỐI KỲ - NIÊN KHÓA 2017-2018  
Môn thi: Nhập môn lập trình (CO1003)  
Thời gian làm bài: 90 phút  
ꢀ Không được phép dùng tài liệu  
Đề thi số: 1723  
ꢁ Được phép dùng tài liệu giấy  
Đề thi gồm 2 trang.  
Chú ý: Các khai báo về thư viện, các hàm cơ bản và khai báo khác (nếu cần thiết) được xem như đầy đủ. Mỗi câu hỏi trắc  
nghiệm chỉ chọn một đáp án đúng nhất. Phần I, II sinh viên làm trực tiếp vào đề. Sinh viên chỉ được tối đa 10 điểm  
I. Các câu hỏi trắc nghiệm (4đ)  
Câu 1. Hãy chọn phát biểu sai về các kiểu dữ liệu  
Câu 8. Đoạn chương trình sau xuất gì ra màn hình  
ꢀ ¨  
A
char chiếm 1 bytes trong bộ nhớ  
int x = 4 , y = 5;  
ꢁ ©  
ꢀ¨  
B
int là kiểu số thực và chiếm 4 bytes trong bộ  
i f (y− − < 5) p r i n t f ( "%d , " , ++y ) ;  
ꢁ©  
nhớ  
i f (x > 6)  
p r i n t f ( "%d" , − −y ) ;  
ꢀ¨  
C
float là kiểu số thực dấu chấm động  
else p r i n t f ( "%d" , ++y ) ;  
ꢁ©  
ꢀ ¨  
ꢀ ¨  
ꢀ¨  
D
double chiếm 8 bytes trong bộ nhớ  
ꢁ ©  
A
6
B
5, 6  
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ ¨  
C
5
D
6, 5  
Câu 2. Lời gọi hàm sqrt(16) trả về giá trị:  
ꢁ©  
ꢁ ©  
ꢀ ¨  
ꢀ¨  
A
4.0  
B
2
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ ¨  
Câu 9. Kiểu dữ liệu nào sau đây phù hợp nhất để lưu điểm  
C
6.0  
D
256.0  
ꢁ©  
ꢁ ©  
tổng kết của một môn học:  
ꢀ ¨  
ꢀ¨  
A
pointer  
B
float  
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ ¨  
Câu 3. Dòng lệnh sau xuất giá trị gì ra màn hình?  
C
int  
D
char  
ꢁ©  
ꢁ ©  
p r i n t f ( "%08.2 f " , 2 1 . 1 5 6 ) ;  
ꢀ ¨  
ꢀ¨  
Câu 10. Định dạng dữ liệu khi đọc/ghi bằng scanf, printf  
cho kiểu long là:  
A
00021.15  
B
21.1560  
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ ¨  
ꢀ ¨  
ꢀ¨  
C
00021.16  
D
21.16  
A
%c  
B
%s  
ꢁ©  
ꢁ ©  
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ ¨  
C
%ld  
D
%e  
ꢁ©  
ꢁ ©  
Câu 4. Giá trị in ra của đoạn lệnh C sau là  
Câu 11. Dòng lệnh sau xuất giá trị gì ra màn hình:  
int x = 3 , y = 7;  
p r i n t f ( "%d %d" , − −y , x++);  
p r i n t f ( "%d" , 0161);  
ꢀ ¨  
ꢀ¨  
ꢀ ¨  
ꢀ¨  
A
6 3  
B
7 3  
A
161  
B
0161  
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ ¨  
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ ¨  
C
7 4  
D
6 4  
C
lệnh bị lỗi  
D
113  
ꢁ©  
ꢁ ©  
ꢁ©  
ꢁ ©  
Câu 5. Thiết bị nào sau đây thuộc về phần cứng (hard-  
Câu 12. Hãy chọn phát biểu đúng về chú thích:  
ware) trong máy tính  
ꢀ ¨  
ꢀ ¨  
A
Trình biên dịch sẽ không dịch các chú thích  
ꢁ ©  
ꢀ¨  
A
Bộ chuyển ngữ (Assembler)  
ꢁ ©  
ꢀ¨  
B
Mọi chú thích phải bắt đầu bằng /* và kết  
thúc bằng */  
ꢁ©  
B
CPU  
ꢁ©  
ꢀ¨  
ꢀ¨  
C
Bộ tiền xử lý (Preprocessor)  
ꢁ©  
ꢀ ¨  
C
Chú thích phải bắt đầu từ đầu dòng  
ꢁ©  
D
Trình biên dịch (Compiler)  
ꢁ ©  
Đoạn lệnh sau dùng cho 2 câu 13-14:  
Đoạn lệnh sau dùng cho 2 câu tiếp theo 6-7:  
int a , b ;  
int i =0, j =1, s =0;  
for ( i =0; i < 5; ++i ) {  
s = s + j ;  
for ( a = 1 , b = 1; a<=50; a+=2){  
i f (b>=20)  
i f (( a+b) % 3 == 1)  
break ;  
j = j ∗ 2;  
{ b += 3; continue ;}  
}
}
Câu 6. Thực thi xong đoạn lệnh trên giá trị của s là:  
Câu 13. Giá trị của a sau khi thực thi đoạn chương trình  
ꢀ ¨  
ꢀ¨  
ꢀ ¨  
ꢀ¨  
A
16  
B
31  
A
50  
B
41  
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ ¨  
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ ¨  
C
15  
D
7
C
51  
D
Cả A, B và C đều sai  
ꢁ©  
ꢁ ©  
ꢁ©  
ꢁ ©  
Câu 7. Thực thi xong đoạn lệnh trên giá trị của j là:  
Câu 14. Thực thi xong đoạn lệnh trên giá trị của b là:  
ꢀ ¨  
ꢀ¨  
ꢀ ¨  
ꢀ¨  
A
1
B
16  
A
16  
B
22  
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ ¨  
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ ¨  
C
32  
D
8
C
50  
D
32  
ꢁ©  
ꢁ ©  
ꢁ©  
ꢁ ©  
Ngày thi: 4/6/2018  
Trang 1/2 − Mã đề 1723  
Câu 15. Với x là một biến kiểu int, &x sẽ:  
Câu 16. Khai báo mảng nào sau đây là sai  
ꢀ ¨  
ꢀ ¨  
ꢀ¨  
A
int* a = malloc(2 * sizeof(2));  
ꢁ ©  
ꢀ¨  
A
lấy giá trị hiện tại của x B lỗi cú pháp  
ꢁ ©  
ꢀ¨  
ꢁ©  
B
int a[2];  
ꢁ©  
ꢀ¨  
C
lấy địa chỉ của biến x  
ꢁ©  
C
int a[] = {1, 3};  
ꢁ©  
ꢀ ¨  
D
int a[2] = malloc(2 * sizeof(2));  
ꢁ ©  
II. Các câu hỏi điền kết quả (2đ)  
Câu 17. Giá trị của biểu thức 18|7 là:  
)
Câu 18. Hãy hoàn thiện đoạn chương trình tính tổng lập  
phương của các số từ 1 đến 50 thỏa mãn chia hết  
cho 2 hoặc chia hết cho 3 nhưng không chia hết cho  
6
sum =  
Câu 19. Biến kiểu long chiếm:  
byte(s) trong  
int i, sum=0;  
bộ nhớ.  
for(i = 1;  
if(  
)
Câu 20. Giá trị của biểu thức 5 ∗ (int)4.5 + 1.5 là:  
III. Phần tự luận (5đ)  
Câu 21. (1đ) Đây là câu dùng chấm phong cách lập trình. Để được điểm phần này, sinh viên phải làm được ít nhất một phần  
(có điểm dương) của một trong các câu ở dưới.  
Câu 22. (1.5đ) Viết chương trình tuân theo các yêu cầu sau:  
• Nhập vào một số nguyên dương N từ bàn phím. Nếu nhập sai thì yêu cầu nhập lại (N <= 0)  
• Tìm và in ra màn hình tất cả các ước dương của số N vừa nhập vào  
Câu 23. (2.5đ) Cho đa thức có dạng biểu diễn: a0 ∗ x0 + a1 ∗ x1 + a2 ∗ x2 + ... + an ∗ xn với n < 20.  
• Hãy dùng cấu trúc dữ liệu phù hợp để lưu trữ thông tin một đa thức cụ thể nào đó  
• Viết hàm nhap để nhập vào một đa thức  
• Viết hàm tong để tính tổng của 2 đa thức, kết quả là một đa thức mới  
• Cho phép người dùng nhập vào 1 giá trị x, tính giá trị của đa thức tại x  
Chủ nhiệm Khoa/Bộ môn  
Giảng viên ra đề  
ThS. Võ Thanh Hùng  
Ngày thi: 4/6/2018  
Trang 2/2 − Mã đề 1723  
TRƯỜNG ĐẠI HỌC BÁCH KHOA  
KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH  
—————————————————  
THI CUỐI KỲ - NIÊN KHÓA 2017-2018  
Môn thi: Nhập môn lập trình (CO1003)  
Thời gian làm bài: 90 phút  
ꢀ Không được phép dùng tài liệu  
Đề thi số: 1723  
ꢁ Được phép dùng tài liệu giấy  
I. Các câu hỏi trắc nghiệm (4đ)  
Câu 1. Hãy chọn phát biểu sai về các kiểu dữ liệu  
Câu 8. Đoạn chương trình sau xuất gì ra màn hình  
ꢀ ¨  
int x = 4 , y = 5;  
A
char chiếm 1 bytes trong bộ nhớ  
ꢁ ©  
i f (y− − < 5) p r i n t f ( "%d , " , ++y ) ;  
B
int là kiểu số thực và chiếm 4 bytes trong bộ  
nhớ  
i f (x > 6)  
p r i n t f ( "%d" , − −y ) ;  
ꢀ¨  
else p r i n t f ( "%d" , ++y ) ;  
C
float là kiểu số thực dấu chấm động  
ꢁ©  
ꢀ ¨  
ꢀ ¨  
ꢀ¨  
D
double chiếm 8 bytes trong bộ nhớ  
ꢁ ©  
A
6
B
5, 6  
ꢁ ©  
ꢁ©  
ꢀ ¨  
Câu 2. Lời gọi hàm sqrt(16) trả về giá trị:  
C
5
D
6, 5  
ꢁ ©  
ꢀ¨  
A
4.0  
B
2
ꢁ©  
ꢀ ¨  
Câu 9. Kiểu dữ liệu nào sau đây phù hợp nhất để lưu điểm  
ꢀ¨  
C
6.0  
D
256.0  
tổng kết của một môn học:  
ꢁ©  
ꢁ ©  
ꢀ ¨  
Câu 3. Dòng lệnh sau xuất giá trị gì ra màn hình?  
A
pointer  
B
float  
ꢁ ©  
ꢀ¨  
ꢀ ¨  
C
int  
D
char  
p r i n t f ( "%08.2 f " , 2 1 . 1 5 6 ) ;  
ꢁ©  
ꢁ ©  
Câu 10. Định dạng dữ liệu khi đọc/ghi bằng scanf, printf  
cho kiểu long là:  
ꢀ ¨  
ꢀ¨  
A
00021.15  
B
21.1560  
ꢁ ©  
ꢁ©  
ꢀ ¨  
ꢀ ¨  
ꢀ¨  
C
00021.16  
D
21.16  
ꢁ ©  
A
%c  
B
%s  
ꢁ ©  
ꢁ©  
ꢀ ¨  
Câu 4. Giá trị in ra của đoạn lệnh C sau là  
C
%ld  
D
%e  
ꢁ ©  
int x = 3 , y = 7;  
Câu 11. Dòng lệnh sau xuất giá trị gì ra màn hình:  
p r i n t f ( "%d %d" , − −y , x++);  
p r i n t f ( "%d" , 0161);  
ꢀ¨  
A
6 3  
B
7 3  
ꢀ ¨  
ꢀ¨  
ꢁ©  
ꢀ ¨  
ꢀ¨  
A
161  
B
0161  
C
7 4  
D
6 4  
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢁ©  
ꢁ ©  
C
lệnh bị lỗi  
D
113  
ꢁ©  
Câu 5. Thiết bị nào sau đây thuộc về phần cứng (hard-  
Câu 12. Hãy chọn phát biểu đúng về chú thích:  
ware) trong máy tính  
ꢀ ¨  
A
Trình biên dịch sẽ không dịch các chú thích  
Mọi chú thích phải bắt đầu bằng /* và kết  
thúc bằng */  
Chú thích phải bắt đầu từ đầu dòng  
A
Bộ chuyển ngữ (Assembler)  
ꢀ¨  
ꢁ ©  
B
ꢁ©  
B
CPU  
ꢀ¨  
ꢀ¨  
C
Bộ tiền xử lý (Preprocessor)  
ꢁ©  
ꢀ ¨  
C
ꢁ©  
D
Trình biên dịch (Compiler)  
ꢁ ©  
Đoạn lệnh sau dùng cho 2 câu 13-14:  
Đoạn lệnh sau dùng cho 2 câu tiếp theo 6-7:  
int a , b ;  
int i =0, j =1, s =0;  
for ( i =0; i < 5; ++i ) {  
s = s + j ;  
for ( a = 1 , b = 1; a<=50; a+=2){  
i f (b>=20)  
break ;  
i f (( a+b) % 3 == 1)  
j = j ∗ 2;  
{ b += 3; continue ;}  
}
}
Câu 6. Thực thi xong đoạn lệnh trên giá trị của s là:  
Câu 13. Giá trị của a sau khi thực thi đoạn chương trình  
ꢀ ¨  
ꢀ ¨  
A
16  
B
31  
A
50  
B
41  
ꢁ ©  
ꢀ¨  
ꢁ ©  
ꢀ¨  
ꢀ ¨  
ꢀ ¨  
C
15  
D
7
C
51  
D
Cả A, B và C đều sai  
ꢁ©  
ꢁ ©  
ꢁ©  
ꢁ ©  
Câu 14. Thực thi xong đoạn lệnh trên giá trị của b là:  
Câu 7. Thực thi xong đoạn lệnh trên giá trị của j là:  
ꢀ ¨  
ꢀ¨  
ꢀ ¨  
A
1
B
16  
A
16  
B
22  
ꢁ ©  
ꢁ©  
ꢁ ©  
ꢀ ¨  
ꢀ¨  
ꢀ ¨  
C
32  
D
8
C
50  
D
32  
ꢁ ©  
ꢁ©  
ꢁ ©  
Ngày thi: 4/6/2018  
Trang 1/2 − Mã đề 1723  
Câu 15. Với x là một biến kiểu int, &x sẽ:  
Câu 16. Khai báo mảng nào sau đây là sai  
ꢀ ¨  
ꢀ ¨  
A
lấy giá trị hiện tại của x  
A
int* a = malloc(2 * sizeof(2));  
ꢁ ©  
ꢀ¨  
ꢁ ©  
ꢀ¨  
B
lỗi cú pháp  
B
int a[2];  
ꢁ©  
ꢁ©  
ꢀ¨  
C
int a[] = {1, 3};  
C
lấy địa chỉ của biến x  
ꢁ©  
D
int a[2] = malloc(2 * sizeof(2));  
II. Các câu hỏi điền kết quả (2đ)  
Câu 17. Giá trị của biểu thức 18|7 là:  
23  
&& (i % 6 != 0)  
)
Câu 18. Hãy hoàn thiện đoạn chương trình tính tổng lập  
phương của các số từ 1 đến 50 thỏa mãn chia hết  
cho 2 hoặc chia hết cho 3 nhưng không chia hết cho  
6
sum = sum + i*i*i;  
Câu 19. Biến kiểu long chiếm:  
8 byte(s) trong  
int i, sum=0;  
bộ nhớ.  
for(i = 1; i <= 50; i++  
)
Câu 20. Giá trị của biểu thức 5 ∗ (int)4.5 + 1.5 là:  
if((i % 2 == 0 || i % 3 == 0)  
21.5  
III. Phần tự luận (5đ)  
Câu 21. (1đ) Đây là câu dùng chấm phong cách lập trình. Để được điểm phần này, sinh viên phải làm được ít nhất một phần  
(có điểm dương) của một trong các câu ở dưới.  
Lời giải.  
Câu 22. (1.5đ) Viết chương trình tuân theo các yêu cầu sau:  
• Nhập vào một số nguyên dương N từ bàn phím. Nếu nhập sai thì yêu cầu nhập lại (N <= 0)  
• Tìm và in ra màn hình tất cả các ước dương của số N vừa nhập vào  
Lời giải. Gợi ý giải (sinh viên có thể dùng cách khác, miễn kết quả phù hợp):  
#include <stdio . h>  
int main () {  
int n ;  
do {  
p r i n t f ( "Nhap vao so n : " ) ;  
scanf ( "%d" , &n ) ;  
} while (n <= 0 ) ;  
for ( int i = 1; i <= n ; ++i )  
i f (n % i == 0)  
p r i n t f ( "%d\n" , i ) ;  
return 0;  
}
Câu 23. (2.5đ) Cho đa thức có dạng biểu diễn: a0 ∗ x0 + a1 ∗ x1 + a2 ∗ x2 + ... + an ∗ xn với n < 20.  
• Hãy dùng cấu trúc dữ liệu phù hợp để lưu trữ thông tin một đa thức cụ thể nào đó  
• Viết hàm nhap để nhập vào một đa thức  
• Viết hàm tong để tính tổng của 2 đa thức, kết quả là một đa thức mới  
• Cho phép người dùng nhập vào 1 giá trị x, tính giá trị của đa thức tại x  
Lời giải. Gợi ý giải, sinh viên có thể làm theo cách khác  
Ngày thi: 4/6/2018  
Trang 2/2 − Mã đề 1723  
TRƯỜNG ĐẠI HỌC BÁCH KHOA  
Họ và tên:.............................................  
MSSV:..................................................  
KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH  
—————————————————  
THI CUỐI KỲ - NIÊN KHÓA 2017-2018  
Môn thi: Nhập môn lập trình (CO1003)  
Thời gian làm bài: 90 phút  
ꢀ Không được phép dùng tài liệu  
Đề thi số: 1725  
ꢁ Được phép dùng tài liệu giấy  
Đề thi gồm 2 trang.  
Chú ý: Các khai báo về thư viện, các hàm cơ bản và khai báo khác (nếu cần thiết) được xem như đầy đủ. Mỗi câu hỏi trắc  
nghiệm chỉ chọn một đáp án đúng nhất. Phần I, II sinh viên làm trực tiếp vào đề. Sinh viên chỉ được tối đa 10 điểm  
I. Các câu hỏi trắc nghiệm (4đ)  
Câu 1. Đoạn chương trình sau xuất gì ra màn hình  
int i =0, j =1, s =0;  
for ( i =0; i < 5; ++i ) {  
s = s + j ;  
int x = 4 , y = 5;  
i f (y− − < 5) p r i n t f ( "%d , " , ++y ) ;  
j = j ∗ 2;  
i f (x > 6)  
p r i n t f ( "%d" , − −y ) ;  
}
else p r i n t f ( "%d" , ++y ) ;  
ꢀ ¨  
ꢀ¨  
A
5, 6  
B
6
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ ¨  
Câu 8. Thực thi xong đoạn lệnh trên giá trị của s là:  
ꢀ ¨  
ꢀ¨  
C
5
D
6, 5  
A
31  
B
16  
ꢁ©  
ꢁ ©  
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ ¨  
C
15  
D
7
ꢁ©  
ꢁ ©  
Câu 2. Hãy chọn phát biểu đúng về chú thích:  
ꢀ ¨  
Câu 9. Thực thi xong đoạn lệnh trên giá trị của j là:  
A
Chú thích phải bắt đầu từ đầu dòng  
ꢀ ¨  
ꢀ¨  
ꢁ ©  
ꢀ¨  
A
16  
B
1
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ ¨  
B
Trình biên dịch sẽ không dịch các chú thích  
ꢁ©  
ꢀ¨  
C
32  
D
8
ꢁ©  
ꢁ ©  
C
Mọi chú thích phải bắt đầu bằng /* và kết  
ꢁ©  
thúc bằng */  
Câu 10. Dòng lệnh sau xuất giá trị gì ra màn hình?  
Câu 3. Dòng lệnh sau xuất giá trị gì ra màn hình:  
p r i n t f ( "%08.2 f " , 2 1 . 1 5 6 ) ;  
p r i n t f ( "%d" , 0161);  
ꢀ ¨  
ꢀ¨  
A
21.1560  
B
00021.15  
ꢀ ¨  
ꢀ¨  
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ ¨  
A
0161  
B
161  
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ ¨  
C
00021.16  
D
21.16  
ꢁ©  
ꢁ ©  
C
lệnh bị lỗi  
D
113  
ꢁ©  
ꢁ ©  
Câu 11. Lời gọi hàm sqrt(16) trả về giá trị:  
ꢀ ¨  
ꢀ¨  
Câu 4. Với x là một biến kiểu int, &x sẽ:  
A
2
B
4.0  
ꢁ ©  
ꢁ©  
ꢀ¨  
ꢀ ¨  
ꢀ ¨  
ꢀ¨  
C
6.0  
D
256.0  
A
lấy địa chỉ của biến x  
B
lấy giá trị hiện tại của x  
ꢁ©  
ꢁ ©  
ꢁ ©  
ꢀ¨  
ꢁ©  
C
lỗi cú pháp  
ꢁ©  
Đoạn lệnh sau dùng cho 2 câu 12-13:  
Câu 5. Giá trị in ra của đoạn lệnh C sau là  
int a , b ;  
int x = 3 , y = 7;  
for ( a = 1 , b = 1; a<=50; a+=2){  
p r i n t f ( "%d %d" , − −y , x++);  
i f (b>=20)  
break ;  
ꢀ ¨  
ꢀ¨  
i f (( a+b) % 3 == 1)  
A
7 3  
B
6 3  
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ ¨  
{ b += 3; continue ;}  
C
7 4  
D
6 4  
}
ꢁ©  
ꢁ ©  
Câu 6. Định dạng dữ liệu khi đọc/ghi bằng scanf, printf  
cho kiểu long là:  
Câu 12. Giá trị của a sau khi thực thi đoạn chương trình  
ꢀ ¨  
ꢀ¨  
ꢀ ¨  
ꢀ¨  
A
51  
B
50  
A
%s  
B
%c  
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ ¨  
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ ¨  
C
41  
D
Cả A, B và C đều sai  
C
%ld  
D
%e  
ꢁ©  
ꢁ ©  
ꢁ©  
ꢁ ©  
Câu 13. Thực thi xong đoạn lệnh trên giá trị của b là:  
Câu 7. Hãy chọn phát biểu sai về các kiểu dữ liệu  
ꢀ ¨  
ꢀ¨  
ꢀ ¨  
A
22  
B
16  
A
int là kiểu số thực và chiếm 4 bytes trong bộ  
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ ¨  
ꢁ ©  
nhớ  
ꢀ¨  
C
50  
D
32  
ꢁ©  
ꢁ ©  
B
char chiếm 1 bytes trong bộ nhớ  
ꢁ©  
ꢀ¨  
C
float là kiểu số thực dấu chấm động  
ꢁ©  
ꢀ ¨  
Câu 14. Kiểu dữ liệu nào sau đây phù hợp nhất để lưu điểm  
D
double chiếm 8 bytes trong bộ nhớ  
tổng kết của một môn học:  
ꢁ ©  
ꢀ ¨  
ꢀ¨  
A
float  
B
pointer  
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ ¨  
Đoạn lệnh sau dùng cho 2 câu tiếp theo 8-9:  
C
int  
D
char  
ꢁ©  
ꢁ ©  
Ngày thi: 4/6/2018  
Trang 1/2 − Mã đề 1725  
Câu 15. Thiết bị nào sau đây thuộc về phần cứng (hard-  
Câu 16. Khai báo mảng nào sau đây là sai  
ꢀ ¨  
ware) trong máy tính  
CPU  
A
int a[2];  
ꢁ ©  
ꢀ¨  
ꢀ ¨  
A
B
int* a = malloc(2 * sizeof(2));  
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ¨  
B
Bộ chuyển ngữ (Assembler)  
C
int a[] = {1, 3};  
ꢁ©  
ꢀ¨  
ꢁ©  
ꢀ ¨  
C
Bộ tiền xử lý (Preprocessor)  
D
int a[2] = malloc(2 * sizeof(2));  
ꢁ©  
ꢀ ¨  
ꢁ ©  
D
Trình biên dịch (Compiler)  
ꢁ ©  
II. Các câu hỏi điền kết quả (2đ)  
Câu 17. Giá trị của biểu thức 18|7 là:  
int i, sum=0;  
for(i = 1;  
if(  
)
Câu 18. Biến kiểu long chiếm:  
byte(s) trong  
bộ nhớ.  
)
Câu 19. Hãy hoàn thiện đoạn chương trình tính tổng lập  
phương của các số từ 1 đến 50 thỏa mãn chia hết  
cho 2 hoặc chia hết cho 3 nhưng không chia hết cho  
6
sum =  
Câu 20. Giá trị của biểu thức 5 ∗ (int)4.5 + 1.5 là:  
III. Phần tự luận (5đ)  
Câu 21. (1đ) Đây là câu dùng chấm phong cách lập trình. Để được điểm phần này, sinh viên phải làm được ít nhất một phần  
(có điểm dương) của một trong các câu ở dưới.  
Câu 22. (1.5đ) Viết chương trình tuân theo các yêu cầu sau:  
• Nhập vào một số nguyên dương N từ bàn phím. Nếu nhập sai thì yêu cầu nhập lại (N <= 0)  
• Tìm và in ra màn hình tất cả các ước dương của số N vừa nhập vào  
Câu 23. (2.5đ) Cho đa thức có dạng biểu diễn: a0 ∗ x0 + a1 ∗ x1 + a2 ∗ x2 + ... + an ∗ xn với n < 20.  
• Hãy dùng cấu trúc dữ liệu phù hợp để lưu trữ thông tin một đa thức cụ thể nào đó  
• Viết hàm nhap để nhập vào một đa thức  
• Viết hàm tong để tính tổng của 2 đa thức, kết quả là một đa thức mới  
• Cho phép người dùng nhập vào 1 giá trị x, tính giá trị của đa thức tại x  
Chủ nhiệm Khoa/Bộ môn  
Giảng viên ra đề  
ThS. Võ Thanh Hùng  
Ngày thi: 4/6/2018  
Trang 2/2 − Mã đề 1725  
TRƯỜNG ĐẠI HỌC BÁCH KHOA  
KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH  
—————————————————  
THI CUỐI KỲ - NIÊN KHÓA 2017-2018  
Môn thi: Nhập môn lập trình (CO1003)  
Thời gian làm bài: 90 phút  
ꢀ Không được phép dùng tài liệu  
Đề thi số: 1725  
ꢁ Được phép dùng tài liệu giấy  
I. Các câu hỏi trắc nghiệm (4đ)  
Câu 1. Đoạn chương trình sau xuất gì ra màn hình  
int i =0, j =1, s =0;  
for ( i =0; i < 5; ++i ) {  
s = s + j ;  
int x = 4 , y = 5;  
i f (y− − < 5) p r i n t f ( "%d , " , ++y ) ;  
j = j ∗ 2;  
i f (x > 6)  
p r i n t f ( "%d" , − −y ) ;  
}
else p r i n t f ( "%d" , ++y ) ;  
ꢀ ¨  
ꢀ¨  
Câu 8. Thực thi xong đoạn lệnh trên giá trị của s là:  
A
5, 6  
B
6
ꢀ¨  
ꢁ ©  
ꢁ©  
ꢀ ¨  
A
31  
B
16  
C
5
D
6, 5  
ꢁ©  
ꢀ ¨  
ꢀ¨  
ꢁ ©  
C
15  
D
7
ꢁ©  
ꢁ ©  
Câu 2. Hãy chọn phát biểu đúng về chú thích:  
ꢀ ¨  
Câu 9. Thực thi xong đoạn lệnh trên giá trị của j là:  
A
Chú thích phải bắt đầu từ đầu dòng  
ꢁ ©  
ꢀ ¨  
ꢀ¨  
A
16  
B
1
B
Trình biên dịch sẽ không dịch các chú thích  
Mọi chú thích phải bắt đầu bằng /* và kết  
ꢁ ©  
ꢁ©  
ꢀ ¨  
ꢀ¨  
C
32  
D
8
C
ꢁ ©  
ꢁ©  
thúc bằng */  
Câu 10. Dòng lệnh sau xuất giá trị gì ra màn hình?  
Câu 3. Dòng lệnh sau xuất giá trị gì ra màn hình:  
p r i n t f ( "%08.2 f " , 2 1 . 1 5 6 ) ;  
p r i n t f ( "%d" , 0161);  
ꢀ ¨  
ꢀ¨  
ꢀ ¨  
ꢀ¨  
A
21.1560  
B
00021.15  
ꢁ ©  
ꢁ©  
ꢀ ¨  
A
0161  
B
161  
ꢁ ©  
ꢀ¨  
ꢁ©  
C
00021.16  
D
21.16  
ꢁ ©  
C
lệnh bị lỗi  
D
113  
ꢁ©  
Câu 11. Lời gọi hàm sqrt(16) trả về giá trị:  
Câu 4. Với x là một biến kiểu int, &x sẽ:  
ꢀ ¨  
A
2
B
4.0  
A
B
lấy địa chỉ của biến x  
lấy giá trị hiện tại của x  
ꢁ ©  
ꢀ¨  
ꢀ ¨  
ꢀ¨  
C
6.0  
D
256.0  
ꢁ©  
ꢁ ©  
ꢁ©  
ꢀ¨  
C
lỗi cú pháp  
ꢁ©  
Đoạn lệnh sau dùng cho 2 câu 12-13:  
Câu 5. Giá trị in ra của đoạn lệnh C sau là  
int a , b ;  
for ( a = 1 , b = 1; a<=50; a+=2){  
i f (b>=20)  
i f (( a+b) % 3 == 1)  
int x = 3 , y = 7;  
p r i n t f ( "%d %d" , − −y , x++);  
break ;  
ꢀ ¨  
{ b += 3; continue ;}  
A
7 3  
B
6 3  
ꢁ ©  
ꢀ¨  
ꢀ ¨  
}
C
7 4  
D
6 4  
ꢁ©  
ꢁ ©  
Câu 6. Định dạng dữ liệu khi đọc/ghi bằng scanf, printf  
cho kiểu long là:  
Câu 12. Giá trị của a sau khi thực thi đoạn chương trình  
ꢀ ¨  
ꢀ¨  
ꢀ ¨  
ꢀ¨  
A
51  
B
50  
ꢁ ©  
ꢁ©  
ꢀ ¨  
A
%s  
B
%c  
ꢁ ©  
ꢁ©  
ꢀ ¨  
C
41  
D
Cả A, B và C đều sai  
ꢁ ©  
C
%ld  
D
%e  
ꢁ ©  
Câu 13. Thực thi xong đoạn lệnh trên giá trị của b là:  
Câu 7. Hãy chọn phát biểu sai về các kiểu dữ liệu  
ꢀ¨  
A
22  
B
16  
ꢁ©  
ꢀ¨  
ꢀ ¨  
A
int là kiểu số thực và chiếm 4 bytes trong bộ  
C
50  
D
32  
ꢁ©  
ꢁ ©  
nhớ  
ꢀ¨  
B
char chiếm 1 bytes trong bộ nhớ  
ꢁ©  
ꢀ¨  
Câu 14. Kiểu dữ liệu nào sau đây phù hợp nhất để lưu điểm  
C
float là kiểu số thực dấu chấm động  
ꢁ©  
ꢀ ¨  
tổng kết của một môn học:  
D
double chiếm 8 bytes trong bộ nhớ  
ꢀ¨  
ꢁ ©  
A
float  
B
pointer  
ꢁ©  
ꢀ ¨  
ꢀ¨  
Đoạn lệnh sau dùng cho 2 câu tiếp theo 8-9:  
C
int  
D
char  
ꢁ©  
ꢁ ©  
Ngày thi: 4/6/2018  
Trang 1/2 − Mã đề 1725  
Câu 15. Thiết bị nào sau đây thuộc về phần cứng (hard-  
Câu 16. Khai báo mảng nào sau đây là sai  
ꢀ ¨  
ware) trong máy tính  
A
int a[2];  
ꢁ ©  
ꢀ¨  
A
B
CPU  
B
int* a = malloc(2 * sizeof(2));  
ꢀ¨  
ꢁ©  
ꢀ¨  
Bộ chuyển ngữ (Assembler)  
ꢁ©  
ꢀ¨  
C
int a[] = {1, 3};  
ꢁ©  
C
Bộ tiền xử lý (Preprocessor)  
ꢁ©  
ꢀ ¨  
D
int a[2] = malloc(2 * sizeof(2));  
D
Trình biên dịch (Compiler)  
ꢁ ©  
II. Các câu hỏi điền kết quả (2đ)  
Câu 17. Giá trị của biểu thức 18|7 là:  
23  
int i, sum=0;  
for(i = 1; i <= 50; i++  
)
Câu 18. Biến kiểu long chiếm:  
8 byte(s) trong  
if((i % 2 == 0 || i % 3 == 0)  
bộ nhớ.  
&& (i % 6 != 0)  
)
Câu 19. Hãy hoàn thiện đoạn chương trình tính tổng lập  
phương của các số từ 1 đến 50 thỏa mãn chia hết  
cho 2 hoặc chia hết cho 3 nhưng không chia hết cho  
6
sum = sum + i*i*i;  
Câu 20. Giá trị của biểu thức 5 ∗ (int)4.5 + 1.5 là:  
21.5  
III. Phần tự luận (5đ)  
Câu 21. (1đ) Đây là câu dùng chấm phong cách lập trình. Để được điểm phần này, sinh viên phải làm được ít nhất một phần  
(có điểm dương) của một trong các câu ở dưới.  
Lời giải.  
Câu 22. (1.5đ) Viết chương trình tuân theo các yêu cầu sau:  
• Nhập vào một số nguyên dương N từ bàn phím. Nếu nhập sai thì yêu cầu nhập lại (N <= 0)  
• Tìm và in ra màn hình tất cả các ước dương của số N vừa nhập vào  
Lời giải. Gợi ý giải (sinh viên có thể dùng cách khác, miễn kết quả phù hợp):  
#include <stdio . h>  
int main () {  
int n ;  
do {  
p r i n t f ( "Nhap vao so n : " ) ;  
scanf ( "%d" , &n ) ;  
} while (n <= 0 ) ;  
for ( int i = 1; i <= n ; ++i )  
i f (n % i == 0)  
p r i n t f ( "%d\n" , i ) ;  
return 0;  
}
Câu 23. (2.5đ) Cho đa thức có dạng biểu diễn: a0 ∗ x0 + a1 ∗ x1 + a2 ∗ x2 + ... + an ∗ xn với n < 20.  
• Hãy dùng cấu trúc dữ liệu phù hợp để lưu trữ thông tin một đa thức cụ thể nào đó  
• Viết hàm nhap để nhập vào một đa thức  
• Viết hàm tong để tính tổng của 2 đa thức, kết quả là một đa thức mới  
• Cho phép người dùng nhập vào 1 giá trị x, tính giá trị của đa thức tại x  
Lời giải. Gợi ý giải, sinh viên có thể làm theo cách khác  
Ngày thi: 4/6/2018  
Trang 2/2 − Mã đề 1725  
TRƯỜNG ĐẠI HỌC BÁCH KHOA  
Họ và tên:.............................................  
MSSV:..................................................  
KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH  
—————————————————  
THI CUỐI KỲ - NIÊN KHÓA 2017-2018  
Môn thi: Nhập môn lập trình (CO1003)  
Thời gian làm bài: 90 phút  
ꢀ Không được phép dùng tài liệu  
Đề thi số: 1727  
ꢁ Được phép dùng tài liệu giấy  
Đề thi gồm 2 trang.  
Chú ý: Các khai báo về thư viện, các hàm cơ bản và khai báo khác (nếu cần thiết) được xem như đầy đủ. Mỗi câu hỏi trắc  
nghiệm chỉ chọn một đáp án đúng nhất. Phần I, II sinh viên làm trực tiếp vào đề. Sinh viên chỉ được tối đa 10 điểm  
I. Các câu hỏi trắc nghiệm (4đ)  
Câu 1. Hãy chọn phát biểu sai về các kiểu dữ liệu  
Câu 7. Giá trị của a sau khi thực thi đoạn chương trình  
ꢀ ¨  
ꢀ ¨  
ꢀ¨  
A
int là kiểu số thực và chiếm 4 bytes trong bộ  
A
51  
B
41  
ꢁ ©  
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ ¨  
nhớ  
ꢀ¨  
C
50  
D
Cả A, B và C đều sai  
ꢁ©  
ꢁ ©  
B
double chiếm 8 bytes trong bộ nhớ  
ꢁ©  
ꢀ¨  
C
float là kiểu số thực dấu chấm động  
Câu 8. Thực thi xong đoạn lệnh trên giá trị của b là:  
ꢁ©  
ꢀ ¨  
ꢀ ¨  
ꢀ¨  
D
char chiếm 1 bytes trong bộ nhớ  
A
22  
B
32  
ꢁ ©  
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ ¨  
C
50  
D
16  
ꢁ©  
ꢁ ©  
Câu 2. Lời gọi hàm sqrt(16) trả về giá trị:  
ꢀ ¨  
ꢀ¨  
A
2
B
256.0  
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ ¨  
Câu 9. Kiểu dữ liệu nào sau đây phù hợp nhất để lưu điểm  
C
6.0  
D
4.0  
tổng kết của một môn học:  
float  
ꢁ©  
ꢁ ©  
ꢀ ¨  
ꢀ¨  
A
B
char  
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ ¨  
Câu 3. Thiết bị nào sau đây thuộc về phần cứng (hard-  
C
int  
D
pointer  
ꢁ©  
ꢁ ©  
ware) trong máy tính  
ꢀ ¨  
A
CPU  
ꢁ ©  
ꢀ¨  
Câu 10. Dòng lệnh sau xuất giá trị gì ra màn hình?  
B
Trình biên dịch (Compiler)  
ꢁ©  
ꢀ¨  
p r i n t f ( "%08.2 f " , 2 1 . 1 5 6 ) ;  
C
Bộ tiền xử lý (Preprocessor)  
ꢁ©  
ꢀ ¨  
ꢀ ¨  
ꢀ¨  
D
Bộ chuyển ngữ (Assembler)  
A
21.1560  
B
21.16  
ꢁ ©  
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ ¨  
C
00021.16  
D
00021.15  
ꢁ©  
ꢁ ©  
Đoạn lệnh sau dùng cho 2 câu tiếp theo 4-5:  
Câu 11. Dòng lệnh sau xuất giá trị gì ra màn hình:  
int i =0, j =1, s =0;  
for ( i =0; i < 5; ++i ) {  
s = s + j ;  
p r i n t f ( "%d" , 0161);  
ꢀ ¨  
ꢀ¨  
j = j ∗ 2;  
A
0161  
B
113  
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ ¨  
}
C
lệnh bị lỗi  
D
161  
ꢁ©  
ꢁ ©  
Câu 4. Thực thi xong đoạn lệnh trên giá trị của s là:  
Câu 12. Khai báo mảng nào sau đây là sai  
ꢀ ¨  
ꢀ¨  
ꢀ ¨  
A
31  
B
7
A
int a[2];  
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ ¨  
ꢁ ©  
ꢀ¨  
C
15  
D
16  
B
int a[2] = malloc(2 * sizeof(2));  
ꢁ©  
ꢁ ©  
ꢁ©  
ꢀ¨  
C
int a[] = {1, 3};  
ꢁ©  
ꢀ ¨  
Câu 5. Thực thi xong đoạn lệnh trên giá trị của j là:  
ꢀ ¨  
ꢀ¨  
D
int* a = malloc(2 * sizeof(2));  
ꢁ ©  
A
16  
B
8
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ ¨  
C
32  
D
1
ꢁ©  
ꢁ ©  
Câu 13. Hãy chọn phát biểu đúng về chú thích:  
ꢀ ¨  
A
Chú thích phải bắt đầu từ đầu dòng  
Câu 6. Định dạng dữ liệu khi đọc/ghi bằng scanf, printf  
cho kiểu long là:  
ꢁ ©  
ꢀ¨  
B
Mọi chú thích phải bắt đầu bằng /* và kết  
thúc bằng */  
ꢀ ¨  
ꢀ¨  
ꢁ©  
A
%s  
B
%e  
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ ¨  
ꢀ¨  
C
Trình biên dịch sẽ không dịch các chú thích  
C
%ld  
D
%c  
ꢁ©  
ꢁ©  
ꢁ ©  
Câu 14. Đoạn chương trình sau xuất gì ra màn hình  
Đoạn lệnh sau dùng cho 2 câu 7-8:  
int x = 4 , y = 5;  
int a , b ;  
i f (y− − < 5) p r i n t f ( "%d , " , ++y ) ;  
for ( a = 1 , b = 1; a<=50; a+=2){  
i f (x > 6)  
p r i n t f ( "%d" , − −y ) ;  
i f (b>=20)  
break ;  
else p r i n t f ( "%d" , ++y ) ;  
i f (( a+b) % 3 == 1)  
ꢀ ¨  
ꢀ¨  
{ b += 3; continue ;}  
A
5, 6  
B
6, 5  
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ ¨  
}
C
5
D
6
ꢁ©  
ꢁ ©  
Ngày thi: 4/6/2018  
Trang 1/2 − Mã đề 1727  
Câu 15. Với x là một biến kiểu int, &x sẽ:  
Câu 16. Giá trị in ra của đoạn lệnh C sau là  
ꢀ ¨  
ꢀ¨  
int x = 3 , y = 7;  
p r i n t f ( "%d %d" , − −y , x++);  
A
lấy địa chỉ của biến x  
B
lỗi cú pháp  
ꢁ ©  
ꢀ¨  
ꢁ©  
C
lấy giá trị hiện tại của x  
ꢁ©  
ꢀ ¨  
ꢀ¨  
A
7 3  
B
6 4  
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ ¨  
C
7 4  
D
6 3  
ꢁ©  
ꢁ ©  
II. Các câu hỏi điền kết quả (2đ)  
Câu 17. Giá trị của biểu thức 5 ∗ (int)4.5 + 1.5 là:  
int i, sum=0;  
for(i = 1;  
if(  
)
Câu 18. Giá trị của biểu thức 18|7 là:  
)
Câu 19. Hãy hoàn thiện đoạn chương trình tính tổng lập  
phương của các số từ 1 đến 50 thỏa mãn chia hết  
cho 2 hoặc chia hết cho 3 nhưng không chia hết cho  
6
sum =  
Câu 20. Biến kiểu long chiếm:  
byte(s) trong  
bộ nhớ.  
III. Phần tự luận (5đ)  
Câu 21. (1đ) Đây là câu dùng chấm phong cách lập trình. Để được điểm phần này, sinh viên phải làm được ít nhất một phần  
(có điểm dương) của một trong các câu ở dưới.  
Câu 22. (1.5đ) Viết chương trình tuân theo các yêu cầu sau:  
• Nhập vào một số nguyên dương N từ bàn phím. Nếu nhập sai thì yêu cầu nhập lại (N <= 0)  
• Tìm và in ra màn hình tất cả các ước dương của số N vừa nhập vào  
Câu 23. (2.5đ) Cho đa thức có dạng biểu diễn: a0 ∗ x0 + a1 ∗ x1 + a2 ∗ x2 + ... + an ∗ xn với n < 20.  
• Hãy dùng cấu trúc dữ liệu phù hợp để lưu trữ thông tin một đa thức cụ thể nào đó  
• Viết hàm nhap để nhập vào một đa thức  
• Viết hàm tong để tính tổng của 2 đa thức, kết quả là một đa thức mới  
• Cho phép người dùng nhập vào 1 giá trị x, tính giá trị của đa thức tại x  
Chủ nhiệm Khoa/Bộ môn  
Giảng viên ra đề  
ThS. Võ Thanh Hùng  
Ngày thi: 4/6/2018  
Trang 2/2 − Mã đề 1727  
TRƯỜNG ĐẠI HỌC BÁCH KHOA  
KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH  
—————————————————  
THI CUỐI KỲ - NIÊN KHÓA 2017-2018  
Môn thi: Nhập môn lập trình (CO1003)  
Thời gian làm bài: 90 phút  
ꢀ Không được phép dùng tài liệu  
Đề thi số: 1727  
ꢁ Được phép dùng tài liệu giấy  
I. Các câu hỏi trắc nghiệm (4đ)  
Câu 1. Hãy chọn phát biểu sai về các kiểu dữ liệu  
Câu 7. Giá trị của a sau khi thực thi đoạn chương trình  
ꢀ ¨  
A
int là kiểu số thực và chiếm 4 bytes trong bộ  
A
51  
B
41  
ꢁ ©  
ꢀ¨  
ꢀ ¨  
nhớ  
ꢀ¨  
C
50  
D
Cả A, B và C đều sai  
ꢁ©  
ꢁ ©  
B
double chiếm 8 bytes trong bộ nhớ  
ꢁ©  
ꢀ¨  
C
float là kiểu số thực dấu chấm động  
Câu 8. Thực thi xong đoạn lệnh trên giá trị của b là:  
ꢁ©  
ꢀ ¨  
ꢀ¨  
D
char chiếm 1 bytes trong bộ nhớ  
ꢁ ©  
A
22  
B
32  
ꢁ©  
ꢀ ¨  
ꢀ¨  
C
50  
D
16  
Câu 2. Lời gọi hàm sqrt(16) trả về giá trị:  
ꢁ©  
ꢁ ©  
ꢀ ¨  
ꢀ¨  
A
2
B
256.0  
Câu 9. Kiểu dữ liệu nào sau đây phù hợp nhất để lưu điểm  
ꢁ ©  
ꢀ¨  
ꢁ©  
tổng kết của một môn học:  
C
6.0  
D
4.0  
ꢁ©  
ꢀ¨  
A
float  
B
char  
ꢁ©  
ꢀ ¨  
Câu 3. Thiết bị nào sau đây thuộc về phần cứng (hard-  
ꢀ¨  
C
int  
D
pointer  
ware) trong máy tính  
ꢁ©  
ꢁ ©  
A
B
CPU  
Câu 10. Dòng lệnh sau xuất giá trị gì ra màn hình?  
ꢀ¨  
Trình biên dịch (Compiler)  
p r i n t f ( "%08.2 f " , 2 1 . 1 5 6 ) ;  
ꢁ©  
ꢀ¨  
C
Bộ tiền xử lý (Preprocessor)  
ꢁ©  
ꢀ ¨  
ꢀ ¨  
ꢀ¨  
D
Bộ chuyển ngữ (Assembler)  
A
21.1560  
B
21.16  
ꢁ ©  
ꢁ ©  
ꢁ©  
ꢀ ¨  
C
00021.16  
D
00021.15  
ꢁ ©  
Đoạn lệnh sau dùng cho 2 câu tiếp theo 4-5:  
Câu 11. Dòng lệnh sau xuất giá trị gì ra màn hình:  
int i =0, j =1, s =0;  
for ( i =0; i < 5; ++i ) {  
s = s + j ;  
p r i n t f ( "%d" , 0161);  
j = j ∗ 2;  
ꢀ ¨  
A
0161  
B
113  
}
ꢁ ©  
ꢀ¨  
ꢀ ¨  
C
lệnh bị lỗi  
D
161  
ꢁ©  
ꢁ ©  
Câu 4. Thực thi xong đoạn lệnh trên giá trị của s là:  
Câu 12. Khai báo mảng nào sau đây là sai  
ꢀ¨  
A
31  
B
7
ꢀ ¨  
ꢁ©  
ꢀ ¨  
ꢀ¨  
A
int a[2];  
ꢁ ©  
C
15  
D
16  
ꢁ©  
ꢁ ©  
B
int a[2] = malloc(2 * sizeof(2));  
int a[] = {1, 3};  
ꢀ¨  
Câu 5. Thực thi xong đoạn lệnh trên giá trị của j là:  
C
ꢁ©  
ꢀ ¨  
ꢀ ¨  
ꢀ¨  
D
int* a = malloc(2 * sizeof(2));  
A
16  
B
8
ꢁ ©  
ꢁ ©  
ꢁ©  
ꢀ ¨  
C
32  
D
1
ꢁ ©  
Câu 13. Hãy chọn phát biểu đúng về chú thích:  
ꢀ ¨  
A
Chú thích phải bắt đầu từ đầu dòng  
Câu 6. Định dạng dữ liệu khi đọc/ghi bằng scanf, printf  
cho kiểu long là:  
ꢁ ©  
ꢀ¨  
B
Mọi chú thích phải bắt đầu bằng /* và kết  
ꢁ©  
ꢀ ¨  
ꢀ¨  
thúc bằng */  
A
%s  
B
%e  
ꢁ ©  
ꢁ©  
ꢀ ¨  
C
Trình biên dịch sẽ không dịch các chú thích  
C
%ld  
D
%c  
ꢁ ©  
Câu 14. Đoạn chương trình sau xuất gì ra màn hình  
Đoạn lệnh sau dùng cho 2 câu 7-8:  
int x = 4 , y = 5;  
i f (y− − < 5) p r i n t f ( "%d , " , ++y ) ;  
int a , b ;  
for ( a = 1 , b = 1; a<=50; a+=2){  
i f (b>=20)  
i f (( a+b) % 3 == 1)  
i f (x > 6)  
p r i n t f ( "%d" , − −y ) ;  
else p r i n t f ( "%d" , ++y ) ;  
break ;  
ꢀ ¨  
ꢀ¨  
{ b += 3; continue ;}  
A
5, 6  
B
6, 5  
ꢁ ©  
ꢁ©  
ꢀ ¨  
}
C
5
D
6
ꢁ ©  
Ngày thi: 4/6/2018  
Trang 1/2 − Mã đề 1727  
Câu 15. Với x là một biến kiểu int, &x sẽ:  
Câu 16. Giá trị in ra của đoạn lệnh C sau là  
ꢀ¨  
int x = 3 , y = 7;  
p r i n t f ( "%d %d" , − −y , x++);  
A
lấy địa chỉ của biến x  
B
lỗi cú pháp  
ꢁ©  
ꢀ¨  
C
lấy giá trị hiện tại của x  
ꢁ©  
ꢀ ¨  
ꢀ¨  
A
7 3  
B
6 4  
ꢁ ©  
ꢀ¨  
ꢁ©  
C
7 4  
D
6 3  
ꢁ©  
II. Các câu hỏi điền kết quả (2đ)  
Câu 17. Giá trị của biểu thức 5 ∗ (int)4.5 + 1.5 là:  
int i, sum=0;  
21.5  
for(i = 1; i <= 50; i++  
)
if((i % 2 == 0 || i % 3 == 0)  
Câu 18. Giá trị của biểu thức 18|7 là:  
23  
&& (i % 6 != 0)  
)
Câu 19. Hãy hoàn thiện đoạn chương trình tính tổng lập  
phương của các số từ 1 đến 50 thỏa mãn chia hết  
cho 2 hoặc chia hết cho 3 nhưng không chia hết cho  
6
sum = sum + i*i*i;  
Câu 20. Biến kiểu long chiếm:  
8 byte(s) trong  
bộ nhớ.  
III. Phần tự luận (5đ)  
Câu 21. (1đ) Đây là câu dùng chấm phong cách lập trình. Để được điểm phần này, sinh viên phải làm được ít nhất một phần  
(có điểm dương) của một trong các câu ở dưới.  
Lời giải.  
Câu 22. (1.5đ) Viết chương trình tuân theo các yêu cầu sau:  
• Nhập vào một số nguyên dương N từ bàn phím. Nếu nhập sai thì yêu cầu nhập lại (N <= 0)  
• Tìm và in ra màn hình tất cả các ước dương của số N vừa nhập vào  
Lời giải. Gợi ý giải (sinh viên có thể dùng cách khác, miễn kết quả phù hợp):  
#include <stdio . h>  
int main () {  
int n ;  
do {  
p r i n t f ( "Nhap vao so n : " ) ;  
scanf ( "%d" , &n ) ;  
} while (n <= 0 ) ;  
for ( int i = 1; i <= n ; ++i )  
i f (n % i == 0)  
p r i n t f ( "%d\n" , i ) ;  
return 0;  
}
Câu 23. (2.5đ) Cho đa thức có dạng biểu diễn: a0 ∗ x0 + a1 ∗ x1 + a2 ∗ x2 + ... + an ∗ xn với n < 20.  
• Hãy dùng cấu trúc dữ liệu phù hợp để lưu trữ thông tin một đa thức cụ thể nào đó  
• Viết hàm nhap để nhập vào một đa thức  
• Viết hàm tong để tính tổng của 2 đa thức, kết quả là một đa thức mới  
• Cho phép người dùng nhập vào 1 giá trị x, tính giá trị của đa thức tại x  
Lời giải. Gợi ý giải, sinh viên có thể làm theo cách khác  
Ngày thi: 4/6/2018  
Trang 2/2 − Mã đề 1727  
TRƯỜNG ĐẠI HỌC BÁCH KHOA  
Họ và tên:.............................................  
MSSV:..................................................  
KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH  
—————————————————  
THI CUỐI KỲ - NIÊN KHÓA 2017-2018  
Môn thi: Nhập môn lập trình (CO1003)  
Thời gian làm bài: 90 phút  
ꢀ Không được phép dùng tài liệu  
Đề thi số: 1729  
ꢁ Được phép dùng tài liệu giấy  
Đề thi gồm 2 trang.  
Chú ý: Các khai báo về thư viện, các hàm cơ bản và khai báo khác (nếu cần thiết) được xem như đầy đủ. Mỗi câu hỏi trắc  
nghiệm chỉ chọn một đáp án đúng nhất. Phần I, II sinh viên làm trực tiếp vào đề. Sinh viên chỉ được tối đa 10 điểm  
I. Các câu hỏi trắc nghiệm (4đ)  
Câu 1. Giá trị in ra của đoạn lệnh C sau là  
Câu 9. Thiết bị nào sau đây thuộc về phần cứng (hard-  
ware) trong máy tính  
Bộ chuyển ngữ (Assembler)  
int x = 3 , y = 7;  
ꢀ ¨  
A
p r i n t f ( "%d %d" , − −y , x++);  
ꢁ ©  
ꢀ¨  
B
CPU  
ꢀ ¨  
ꢀ¨  
ꢁ©  
ꢀ¨  
A
6 3  
B
7 3  
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ ¨  
C
Trình biên dịch (Compiler)  
ꢁ©  
ꢀ ¨  
C
6 4  
D
7 4  
ꢁ©  
ꢁ ©  
D
Bộ tiền xử lý (Preprocessor)  
ꢁ ©  
Câu 2. Lời gọi hàm sqrt(16) trả về giá trị:  
ꢀ ¨  
ꢀ¨  
Đoạn lệnh sau dùng cho 2 câu tiếp theo 10-11:  
A
4.0  
B
2
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ ¨  
int i =0, j =1, s =0;  
for ( i =0; i < 5; ++i ) {  
s = s + j ;  
C
256.0  
D
6.0  
ꢁ©  
ꢁ ©  
Câu 3. Hãy chọn phát biểu đúng về chú thích:  
j = j ∗ 2;  
ꢀ ¨  
}
A
Mọi chú thích phải bắt đầu bằng /* và kết  
ꢁ ©  
thúc bằng */  
Trình biên dịch sẽ không dịch các chú thích  
ꢀ¨  
Câu 10. Thực thi xong đoạn lệnh trên giá trị của s là:  
ꢀ ¨  
ꢀ¨  
B
ꢁ©  
ꢀ¨  
A
16  
B
31  
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ ¨  
C
Chú thích phải bắt đầu từ đầu dòng  
ꢁ©  
C
7
D
15  
ꢁ©  
ꢁ ©  
Đoạn lệnh sau dùng cho 2 câu 4-5:  
Câu 11. Thực thi xong đoạn lệnh trên giá trị của j là:  
ꢀ ¨  
ꢀ¨  
int a , b ;  
A
1
B
16  
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ ¨  
for ( a = 1 , b = 1; a<=50; a+=2){  
C
8
D
32  
ꢁ©  
ꢁ ©  
i f (b>=20)  
break ;  
i f (( a+b) % 3 == 1)  
Câu 12. Hãy chọn phát biểu sai về các kiểu dữ liệu  
ꢀ ¨  
{ b += 3; continue ;}  
A
char chiếm 1 bytes trong bộ nhớ  
}
ꢁ ©  
ꢀ¨  
B
int là kiểu số thực và chiếm 4 bytes trong bộ  
ꢁ©  
nhớ  
Câu 4. Giá trị của a sau khi thực thi đoạn chương trình  
ꢀ¨  
ꢀ ¨  
ꢀ¨  
C
double chiếm 8 bytes trong bộ nhớ  
A
41  
B
50  
ꢁ©  
ꢀ ¨  
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ ¨  
D
float là kiểu số thực dấu chấm động  
C
51  
D
Cả A, B và C đều sai  
ꢁ ©  
ꢁ©  
ꢁ ©  
Câu 13. Dòng lệnh sau xuất giá trị gì ra màn hình:  
Câu 5. Thực thi xong đoạn lệnh trên giá trị của b là:  
ꢀ ¨  
ꢀ¨  
A
16  
B
22  
p r i n t f ( "%d" , 0161);  
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ ¨  
ꢀ ¨  
ꢀ¨  
C
32  
D
50  
ꢁ©  
ꢁ ©  
A
161  
B
0161  
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ ¨  
Câu 6. Dòng lệnh sau xuất giá trị gì ra màn hình?  
C
113  
D
lệnh bị lỗi  
ꢁ©  
ꢁ ©  
p r i n t f ( "%08.2 f " , 2 1 . 1 5 6 ) ;  
Câu 14. Kiểu dữ liệu nào sau đây phù hợp nhất để lưu điểm  
ꢀ ¨  
ꢀ¨  
tổng kết của một môn học:  
ꢀ ¨  
ꢀ¨  
A
00021.15  
B
21.1560  
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ ¨  
A
pointer  
B
float  
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ ¨  
C
21.16  
D
00021.16  
ꢁ©  
ꢁ ©  
C
char  
D
int  
ꢁ©  
ꢁ ©  
Câu 7. Định dạng dữ liệu khi đọc/ghi bằng scanf, printf  
cho kiểu long là:  
Câu 15. Đoạn chương trình sau xuất gì ra màn hình  
ꢀ ¨  
ꢀ¨  
int x = 4 , y = 5;  
A
%c  
B
%s  
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ ¨  
i f (y− − < 5) p r i n t f ( "%d , " , ++y ) ;  
C
%e  
D
%ld  
ꢁ©  
ꢁ ©  
i f (x > 6)  
p r i n t f ( "%d" , − −y ) ;  
else p r i n t f ( "%d" , ++y ) ;  
Câu 8. Với x là một biến kiểu int, &x sẽ:  
ꢀ ¨  
ꢀ¨  
ꢀ ¨  
ꢀ¨  
A
lỗi cú pháp  
B
lấy giá trị hiện tại của x  
A
6
B
5, 6  
ꢁ ©  
ꢁ©  
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢀ ¨  
ꢀ¨  
C
lấy địa chỉ của biến x  
C
6, 5  
D
5
ꢁ©  
ꢁ©  
ꢁ ©  
Ngày thi: 4/6/2018  
Trang 1/2 − Mã đề 1729  
Câu 16. Khai báo mảng nào sau đây là sai  
ꢀ ¨  
A
int* a = malloc(2 * sizeof(2));  
ꢁ ©  
ꢀ¨  
B
int a[2];  
ꢁ©  
ꢀ¨  
C
int a[2] = malloc(2 * sizeof(2));  
ꢁ©  
ꢀ ¨  
D
int a[] = {1, 3};  
ꢁ ©  
II. Các câu hỏi điền kết quả (2đ)  
Câu 17. Giá trị của biểu thức 18|7 là:  
)
Câu 18. Hãy hoàn thiện đoạn chương trình tính tổng lập  
phương của các số từ 1 đến 50 thỏa mãn chia hết  
cho 2 hoặc chia hết cho 3 nhưng không chia hết cho  
6
sum =  
Câu 19. Biến kiểu long chiếm:  
byte(s) trong  
int i, sum=0;  
bộ nhớ.  
for(i = 1;  
if(  
)
Câu 20. Giá trị của biểu thức 5 ∗ (int)4.5 + 1.5 là:  
III. Phần tự luận (5đ)  
Câu 21. (1đ) Đây là câu dùng chấm phong cách lập trình. Để được điểm phần này, sinh viên phải làm được ít nhất một phần  
(có điểm dương) của một trong các câu ở dưới.  
Câu 22. (1.5đ) Viết chương trình tuân theo các yêu cầu sau:  
• Nhập vào một số nguyên dương N từ bàn phím. Nếu nhập sai thì yêu cầu nhập lại (N <= 0)  
• Tìm và in ra màn hình tất cả các ước dương của số N vừa nhập vào  
Câu 23. (2.5đ) Cho đa thức có dạng biểu diễn: a0 ∗ x0 + a1 ∗ x1 + a2 ∗ x2 + ... + an ∗ xn với n < 20.  
• Hãy dùng cấu trúc dữ liệu phù hợp để lưu trữ thông tin một đa thức cụ thể nào đó  
• Viết hàm nhap để nhập vào một đa thức  
• Viết hàm tong để tính tổng của 2 đa thức, kết quả là một đa thức mới  
• Cho phép người dùng nhập vào 1 giá trị x, tính giá trị của đa thức tại x  
Chủ nhiệm Khoa/Bộ môn  
Giảng viên ra đề  
ThS. Võ Thanh Hùng  
Ngày thi: 4/6/2018  
Trang 2/2 − Mã đề 1729  
TRƯỜNG ĐẠI HỌC BÁCH KHOA  
KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH  
—————————————————  
THI CUỐI KỲ - NIÊN KHÓA 2017-2018  
Môn thi: Nhập môn lập trình (CO1003)  
Thời gian làm bài: 90 phút  
ꢀ Không được phép dùng tài liệu  
Đề thi số: 1729  
ꢁ Được phép dùng tài liệu giấy  
I. Các câu hỏi trắc nghiệm (4đ)  
Câu 1. Giá trị in ra của đoạn lệnh C sau là  
Câu 8. Với x là một biến kiểu int, &x sẽ:  
ꢀ ¨  
int x = 3 , y = 7;  
p r i n t f ( "%d %d" , − −y , x++);  
A
lỗi cú pháp  
ꢁ ©  
ꢀ¨  
B
lấy giá trị hiện tại của x  
ꢁ©  
ꢀ¨  
C
lấy địa chỉ của biến x  
A
6 3  
B
7 3  
ꢁ©  
ꢀ ¨  
ꢀ¨  
C
6 4  
D
7 4  
Câu 9. Thiết bị nào sau đây thuộc về phần cứng (hard-  
ꢁ©  
ꢁ ©  
ware) trong máy tính  
Câu 2. Lời gọi hàm sqrt(16) trả về giá trị:  
ꢀ ¨  
ꢀ¨  
A
Bộ chuyển ngữ (Assembler)  
ꢁ ©  
A
4.0  
B
2
ꢁ©  
ꢀ ¨  
ꢀ¨  
B
CPU  
ꢀ¨  
C
256.0  
D
6.0  
ꢁ©  
ꢁ ©  
C
Trình biên dịch (Compiler)  
ꢁ©  
ꢀ ¨  
D
Bộ tiền xử lý (Preprocessor)  
ꢁ ©  
Câu 3. Hãy chọn phát biểu đúng về chú thích:  
ꢀ ¨  
A
Mọi chú thích phải bắt đầu bằng /* và kết  
Đoạn lệnh sau dùng cho 2 câu tiếp theo 10-11:  
ꢁ ©  
thúc bằng */  
int i =0, j =1, s =0;  
for ( i =0; i < 5; ++i ) {  
s = s + j ;  
B
Trình biên dịch sẽ không dịch các chú thích  
Chú thích phải bắt đầu từ đầu dòng  
ꢀ¨  
C
ꢁ©  
j = j ∗ 2;  
}
Đoạn lệnh sau dùng cho 2 câu 4-5:  
int a , b ;  
Câu 10. Thực thi xong đoạn lệnh trên giá trị của s là:  
for ( a = 1 , b = 1; a<=50; a+=2){  
ꢀ ¨  
i f (b>=20)  
i f (( a+b) % 3 == 1)  
break ;  
A
16  
B
31  
ꢁ ©  
ꢀ¨  
ꢀ ¨  
C
7
D
15  
ꢁ©  
ꢁ ©  
{ b += 3; continue ;}  
}
Câu 11. Thực thi xong đoạn lệnh trên giá trị của j là:  
ꢀ ¨  
ꢀ¨  
A
1
B
16  
ꢁ ©  
ꢀ¨  
ꢁ©  
Câu 4. Giá trị của a sau khi thực thi đoạn chương trình  
C
8
D
32  
ꢀ¨  
ꢁ©  
A
41  
B
50  
ꢁ©  
ꢀ ¨  
ꢀ¨  
Câu 12. Hãy chọn phát biểu sai về các kiểu dữ liệu  
C
51  
D
Cả A, B và C đều sai  
ꢁ©  
ꢁ ©  
ꢀ ¨  
A
char chiếm 1 bytes trong bộ nhớ  
ꢁ ©  
Câu 5. Thực thi xong đoạn lệnh trên giá trị của b là:  
B
int là kiểu số thực và chiếm 4 bytes trong bộ  
ꢀ ¨  
nhớ  
ꢀ¨  
A
16  
B
22  
ꢁ ©  
ꢀ¨  
ꢀ ¨  
C
double chiếm 8 bytes trong bộ nhớ  
ꢁ©  
ꢀ ¨  
C
32  
D
50  
ꢁ©  
ꢁ ©  
D
float là kiểu số thực dấu chấm động  
ꢁ ©  
Câu 6. Dòng lệnh sau xuất giá trị gì ra màn hình?  
Câu 13. Dòng lệnh sau xuất giá trị gì ra màn hình:  
p r i n t f ( "%08.2 f " , 2 1 . 1 5 6 ) ;  
p r i n t f ( "%d" , 0161);  
ꢀ ¨  
ꢀ¨  
ꢀ ¨  
ꢀ¨  
A
00021.15  
B
21.1560  
A
161  
B
0161  
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢁ ©  
ꢁ©  
ꢀ ¨  
C
21.16  
D
00021.16  
C
113  
D
lệnh bị lỗi  
ꢁ©  
ꢁ ©  
Câu 14. Kiểu dữ liệu nào sau đây phù hợp nhất để lưu điểm  
Câu 7. Định dạng dữ liệu khi đọc/ghi bằng scanf, printf  
cho kiểu long là:  
tổng kết của một môn học:  
ꢀ ¨  
ꢀ¨  
ꢀ ¨  
A
%c  
B
%s  
A
pointer  
B
float  
ꢁ ©  
ꢀ¨  
ꢁ©  
ꢁ ©  
ꢀ¨  
ꢀ ¨  
C
%e  
D
%ld  
C
char  
D
int  
ꢁ©  
ꢁ©  
ꢁ ©  
Ngày thi: 4/6/2018  
Trang 1/2 − Mã đề 1729  
Câu 15. Đoạn chương trình sau xuất gì ra màn hình  
Câu 16. Khai báo mảng nào sau đây là sai  
ꢀ ¨  
int x = 4 , y = 5;  
A
int* a = malloc(2 * sizeof(2));  
ꢁ ©  
ꢀ¨  
i f (y− − < 5) p r i n t f ( "%d , " , ++y ) ;  
B
int a[2];  
ꢁ©  
i f (x > 6)  
p r i n t f ( "%d" , − −y ) ;  
C
int a[2] = malloc(2 * sizeof(2));  
else p r i n t f ( "%d" , ++y ) ;  
ꢀ ¨  
D
int a[] = {1, 3};  
ꢁ ©  
ꢀ ¨  
ꢀ¨  
A
6
B
5, 6  
ꢁ ©  
ꢀ¨  
ꢁ©  
C
6, 5  
D
5
ꢁ©  
II. Các câu hỏi điền kết quả (2đ)  
Câu 17. Giá trị của biểu thức 18|7 là:  
23  
&& (i % 6 != 0)  
)
Câu 18. Hãy hoàn thiện đoạn chương trình tính tổng lập  
phương của các số từ 1 đến 50 thỏa mãn chia hết  
cho 2 hoặc chia hết cho 3 nhưng không chia hết cho  
6
sum = sum + i*i*i;  
Câu 19. Biến kiểu long chiếm:  
8 byte(s) trong  
int i, sum=0;  
bộ nhớ.  
for(i = 1; i <= 50; i++  
)
Câu 20. Giá trị của biểu thức 5 ∗ (int)4.5 + 1.5 là:  
if((i % 2 == 0 || i % 3 == 0)  
21.5  
III. Phần tự luận (5đ)  
Câu 21. (1đ) Đây là câu dùng chấm phong cách lập trình. Để được điểm phần này, sinh viên phải làm được ít nhất một phần  
(có điểm dương) của một trong các câu ở dưới.  
Lời giải.  
Câu 22. (1.5đ) Viết chương trình tuân theo các yêu cầu sau:  
• Nhập vào một số nguyên dương N từ bàn phím. Nếu nhập sai thì yêu cầu nhập lại (N <= 0)  
• Tìm và in ra màn hình tất cả các ước dương của số N vừa nhập vào  
Lời giải. Gợi ý giải (sinh viên có thể dùng cách khác, miễn kết quả phù hợp):  
#include <stdio . h>  
int main () {  
int n ;  
do {  
p r i n t f ( "Nhap vao so n : " ) ;  
scanf ( "%d" , &n ) ;  
} while (n <= 0 ) ;  
for ( int i = 1; i <= n ; ++i )  
i f (n % i == 0)  
p r i n t f ( "%d\n" , i ) ;  
return 0;  
}
Câu 23. (2.5đ) Cho đa thức có dạng biểu diễn: a0 ∗ x0 + a1 ∗ x1 + a2 ∗ x2 + ... + an ∗ xn với n < 20.  
• Hãy dùng cấu trúc dữ liệu phù hợp để lưu trữ thông tin một đa thức cụ thể nào đó  
• Viết hàm nhap để nhập vào một đa thức  
• Viết hàm tong để tính tổng của 2 đa thức, kết quả là một đa thức mới  
• Cho phép người dùng nhập vào 1 giá trị x, tính giá trị của đa thức tại x  
Lời giải. Gợi ý giải, sinh viên có thể làm theo cách khác  
Ngày thi: 4/6/2018  
Trang 2/2 − Mã đề 1729  
Tải về để xem bản đầy đủ
pdf 36 trang myanh 27480 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bộ đề thi cuối kỳ môn Nhập môn lập trình - Ngày thi: 4/6/2018", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbo_de_thi_cuoi_ky_mon_nhap_mon_lap_trinh_ngay_thi_462018.pdf