Tải bản đầy đủ (.pdf) (16 trang)

nhap mon ve lap trinh de thi nhap mon lap trinh (co1003) nmlt 171 cuuduongthancong com

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (256.86 KB, 16 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH
—————————————————

Họ và tên:.............................................
MSSV:..................................................

THI CUỐI KỲ - NIÊN KHĨA 2017-2018
Thời gian làm bài: 90 phút

Mơn thi: Nhập mơn lập trình (CO1003)

� Không được phép dùng tài liệu
� Được phép dùng tài liệu giấy
Đề thi số: 1711
Đề 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đ)
Đoạn lệnh sau dùng cho 2 câu tiếp theo 1-2:
int i =0, j =1, s =0;
for ( i =0; i < 4 ; ++i ) {
s = s + j;
j = j ∗ 3;
}
Câu
✟ Thực thi xong đoạn lệnh
✟ giá trị của s là:
☛ trên
☛ 1.


A
40
B
15


✡✟

☛✟

C✠
7
D✠
16



Câu
☛ 2.
☛ trên
✟ Thực thi xong đoạn lệnh
✟ giá trị của j là:
A
81
B
32


✡✟


☛✟

C✠
27
D✠
1



Câu 3. Kiểu dữ liệu nào sau đây phù hợp nhất để lưu điểm
học:

☛ ✟ tổng kết của một môn ☛
A
float
B✠
int



☛✟
☛✟
C✠
char
D✠
pointer


Câu
☛ 4.

✟ Hãy chọn phát biểu sai
A
Ngơn ngữ tốn học cũng là ngơn ngữ lập trình

☛✠

B✠
Máy tính có thể hiểu trực tiếp mã giả



C
Ngơn ngữ cấp cao chỉ được chuyển ngữ bởi bộ
✡✠
biên dịch (compiler)
☛✟
D✠
Máy tính có thể hiểu trực tiếp hợp ngữ


Câu
✟ Khai báo mảng nào sau đây là sai
☛ 5.
A int a[2];

☛✠

B✠
int a[] = {1, 3};


☛✟
C✠
int a[2] = malloc(2 * sizeof(2));



D✠
int* a = malloc(2 * sizeof(2));


Câu
✟ Hãy chọn phát biểu sai về các kiểu dữ liệu
☛ 6.
A
int là kiểu số nguyên và chiếm 6bytes trong bộ
✡✠
nhớ
☛✟
B✠
float là kiểu số thực dấu chấm động

☛✟
C✠
double chiếm 8bytes trong bộ nhớ



D✠
pointer là kiểu dẫn xuất


Câu 7. Dòng lệnh sau xuất giá trị gì ra màn hình?
p r i n t f ( " %08.1 f " ,
☛✟
A✠
123.1540

☛✟
C✠
123.154

Ngày thi: 11/01/2018

123.154);
☛✟
B✠
000123.2



D✠
00123.15


CuuDuongThanCong.com

Câu 8. Định dạng dữ liệu khi đọc/ghi bằng scanf, printf
☛✟
☛ ✟ cho kiểu char là:
A✠
%s

B✠
%d




☛✟
C✠
%e
D✠
%c


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" , 0x6A ) ;
☛✟
☛✟
A
6A
B✠
lệnh bị lỗi



☛✟


C
106
D

0x6a
✡✠
✡✠

Câu 10. 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" , x + −−y , x++);
☛✟
☛✟
A✠
73
B✠
74


☛✟


C
6
4
D
10 3
✡✠
✡✠

Câu 11. Thực thi xong đoạn lệnh sau giá trị của x là:
int x = 7 ;
i f ( x = 3)

x = x ∗ 3 + 1;

☛✟
A✠
3

☛✟
C
10
✡✠

☛✟
B✠
7



D
22
✡✠

Đoạn lệnh sau dùng cho 2 câu 12-13:
int a , b ;
f o r ( a = 1 , b = 1 ; a<=50; a+=2){
i f ( b>=20)
break ;
i f ( ( a+b ) % 3 == 1 )
{ b += 4 ; continue ; }
}


Câu☛12.
thi đoạn chương trình
☛✟
✟ Giá trị của a sau khi thực
A
50
B
51


✡✟

☛✟

C
13
D
Cả A, B và C đều sai
✡✠
✡✠

Câu☛13.
☛ trên
✟ Thực thi xong đoạn lệnh
✟ giá trị của b là:
A✠
21
B✠
50



☛✟


C
32
D
16
✡✠
✡✠
Câu 14. Lời gọi hàm sqrt(9) trả về giá trị:
☛✟
☛✟
A✠
1
B✠
6.0


☛✟


C✠
81.0
D✠
3.0



Trang 1/2 − Mã đề 1711


/>

Câu☛15.
✟ Hãy chọn phát biểu sai:
A
Trình biên dịch có thể hiểu được mã giả

☛✠

B✠
Để mơ tả giải thuật có thể dùng mã giả, lưu

đồ hoặc mã lập trình
☛✟
C
Lưu đồ sử dụng một số ký hiệu để mô tả giải
✡✠
thuật
☛✟
D
Mã lập trình là mã được viết bởi một ngơn
✡✠
ngữ lập trình nào đó (C, C++,..)

II. Các câu hỏi điền kết quả (2đ)

Câu 17. Biến kiểu char chiếm:
bộ nhớ.


Câu 16. Thiết bị nào sau đây thuộc về phần cứng (hardware) trong máy tính
☛✟
A
CPU

☛✠

B✠
Bộ tiền xử lý (Preprocessor)



C✠
Trình biên dịch (Compiler)



D
Bộ chuyển ngữ (Assembler)
✡✠

byte(s) trong

Câu 18. Giá trị của biểu thức 5 ∗ (int)2.5 + 1.5 là:
Câu 19. Giá trị của biểu thức 12∧ 5 là:
Câu 20. Đoạn chương trình sau tính tổng các số từ 1 đến

50 thỏa mãn chia hết cho 2 nhưng không chia hết
cho 4. Hãy điền vào chỗ trống để hoàn thiện
int i, sum=0;

)
for(i = 1;
)

if(
sum =

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 thực hiện các 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ì u cầu nhập lại
• Tính và in ra tổng bình phương các số nguyên dương từ 1 tới n. S = 12 + 22 + ... + n2
Câu 23. (2.5đ) Trong không gian 3 chiều Oxyz cho tọa độ 3 đỉnh của một tam giác �ABC.
• Hãy dùng struct để mô tả kiểu cấu trúc phù hợp về thơng tin mỗi điểm trong Oxyz
• Hãy nhập tọa độ 3 đỉnh �ABC và lưu lại để tính tốn

• Giả sử hình chiếu đứng của �ABC xuống mặt phẳng Oxy là �A� B � C � , hãy tính và xuất ra màn hình tọa độ
của �A� B � C �
• Viết hàm trong_tam(...) nhận vào thơng tin 3 điểm A� , B � , C � của �A� B � C � ở trên, tính và trả về giao điểm
3 đường trung tuyến của �A� B � C � (trọng tâm của �A� B � C � )
Chủ nhiệm Khoa/Bộ môn

Giảng viên ra đề

ThS. Võ Thanh Hùng

Ngày thi: 11/01/2018
CuuDuongThanCong.com


Trang 2/2 − Mã đề 1711
/>

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
Thời gian làm bài: 90 phút

Mơn thi: Nhập mơn lập trình (CO1003)
� Khơng được phép dùng tài liệu
Đề thi số: 1711
☛✟
Câu 1. ✡
A✠
☛✟
Câu 2. ✡
A✠

☛✟
Câu 4. ✡
B✠
☛✟
Câu 5. ✡
C✠
☛✟
A✠
Câu 6. ✡
☛✟

B✠
Câu 7. ✡

☛✟
A✠
Câu 3. ✡

� Đượ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 8. ✡
D✠
☛✟
Câu 9. ✡
C✠
☛✟
D✠
Câu 10. ✡
☛✟
C✠
Câu 11. ✡

☛✟
Câu 12. ✡
C✠
☛✟
A✠
Câu 13. ✡


II. Các câu hỏi điền kết quả (2đ)

Câu 17.

1.

Câu 19.

Câu 18.

11.5.

Câu 20. .

☛✟
Câu 14. ✡
D✠

☛✟
A✠
Câu 15. ✡
☛✟
Câu 16. ✡
A✠

9.

III. Phần tự luận (5đ)
Câu 21. Lời giải.
Câu 22. Lời giải. Gợi ý giải (sinh viên có thể có cách làm khác)

#include <s t d i o . h>
#include <math . h>
int main ( ) {
int n , S ;
do {
p r i n t f ( "Nhap vao s o n : " ) ;
s c a n f ( "%d" , &n ) ;
} while ( n <= 0 ) ;
S = 0;
f o r ( int i = 1 ; i <= n ; ++i )
S += i ∗ i ;
p r i n t f ( "S=%d\n" , S ) ;
return 0 ;
}
\fi
Câu 23. Lời giải. Gợi ý giải, sinh viên có thể làm theo cách khác
#include <s t d i o . h>
#include < s t d l i b . h>
struct Point {
float x , y , z ;
};
void p r i n t P o i n t ( struct Point p ) {
p r i n t f ( " (%f , %f , %f ) " , p . x , p . y , p . z ) ;
}
struct Point trong_tam ( struct Po int A1 , struct Poi nt B1 , struct Poi nt C1) {
struct Point p ;
p . x = (A1 . x + B1 . x + C1 . x ) / 3 ;
Ngày thi: 11/01/2018
CuuDuongThanCong.com


Trang 1/2 − Mã đề 1711
/>

p . y = (A1 . y + B1 . y + C1 . y ) / 3 ;
p . z = (A1 . z + B1 . z + C1 . z ) / 3 ;
}

return p ;

int main ( ) {
struct Point A, B, C;
// nhap
p r i n t f ( "Hay nhap vao t o a
s c a n f ( "%f%f%f " , &(A. x ) ,
s c a n f ( "%f%f%f " , &(B . x ) ,
s c a n f ( "%f%f%f " , &(C. x ) ,

do A, B, C" ) ;
&(A. y ) , &(A. z ) ) ;
&(B . y ) , &(B . z ) ) ;
&(C . y ) , &(C . z ) ) ;

p r i n t f ( "A (%f , %f , %f ) \ n" , A. x , A. y , A. z ) ;
p r i n t f ( "B (%f , %f , %f ) \ n" , B . x , B . y , B . z ) ;
p r i n t f ( "C (%f , %f , %f ) \ n" , C . x , C . y , C . z ) ;
// h i n h c h i e u
struct Point A1 , B1 , C1 ;
A1 = A; A1 . z = 0 ;
B1 = B ; B1 . z = 0 ;
C1 = C; C1 . z = 0 ;

p r i n t P o i n t (A1 ) ; p r i n t P o i n t ( B1 ) ; p r i n t P o i n t (C1 ) ;
p r i n t f ( "\ n t ro n g tam : " ) ;
p r i n t P o i n t ( trong_tam (A1 , B1 , C1 ) ) ;
}

return 0 ;

Ngày thi: 11/01/2018
CuuDuongThanCong.com

Trang 2/2 − Mã đề 1711
/>

TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH
—————————————————

Họ và tên:.............................................
MSSV:..................................................

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
� Được phép dùng tài liệu giấy
Đề thi số: 1713
Đề 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
A
pointer là kiểu dẫn xuất

☛✠

B✠
int là kiểu số nguyên và chiếm 6bytes trong bộ

nhớ
☛✟
C
float là kiểu số thực dấu chấm động
✡✟


D
double chiếm 8bytes trong bộ nhớ
✡✠

Câu 2. Lời gọi hàm sqrt(9) trả về giá trị:
☛✟
☛✟
A
3.0

B✠
1



☛✟


C
6.0
D
81.0
✡✠
✡✠

Câu 3. Thiết bị nào sau đây thuộc về phần cứng (hardware) trong máy tính
☛✟
A
Bộ
chuyển ngữ (Assembler)

☛✠

B✠
CPU



C✠
Bộ tiền xử lý (Preprocessor)




D
Trình biên dịch (Compiler)
✡✠

Câu 4. 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" , x + −−y , x++);
☛✟
☛✟
A
10
3
B✠
73



☛✟


C
7
4
D
64
✡✠

✡✠

Câu
☛ 5.
✟ Hãy chọn phát biểu sai:
A
Mã lập trình là mã được viết bởi một ngơn
✡✠
ngữ lập trình nào đó (C, C++,..)
☛✟
B
Trình biên dịch có thể hiểu được mã giả
✡✟


C✠
Để mơ tả giải thuật có thể dùng mã giả, lưu

đồ hoặc mã lập trình
☛✟
D
Lưu đồ sử dụng một số ký hiệu để mô tả giải
✡✠
thuật

Câu
☛ 6.
✟ 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[] = {1, 3};



D✠
int a[2] = malloc(2 * sizeof(2));


Câu 7. Thực thi xong đoạn lệnh sau giá trị của x là:
int x = 7 ;
i f ( x = 3)
x = x ∗ 3 + 1;

☛✟
A✠
22

☛✟
C✠
7


Ngày thi: 11/01/2018


☛✟
B✠
3



D✠
10


CuuDuongThanCong.com

Câu 8. Kiểu dữ liệu nào sau đây phù hợp nhất để lưu điểm
học:
☛ ✟ tổng kết của một môn ☛

A
pointer
B✠
float



☛✟
☛✟
C✠
int
D✠
char




Câu 9. Định dạng dữ liệu khi đọc/ghi bằng scanf, printf
☛✟
☛ ✟ cho kiểu char là:
A✠
%c
B✠
%s


☛✟


C✠
%d
D✠
%e



Câu 10. Dịng lệnh sau xuất giá trị gì ra màn hình:
p r i n t f ( "%d" , 0x6A ) ;
☛✟
☛✟
A✠
0x6a
B✠
6A



☛✟


C✠
lệnh bị lỗi
D✠
106



Câu☛11.
✟ Hãy chọn phát biểu sai
A
Máy tính có thể hiểu trực tiếp hợp ngữ

☛✠

B✠
Ngơn ngữ tốn học cũng là ngơn ngữ lập trình



C✠
Máy tính có thể hiểu trực tiếp mã giả



D

Ngôn ngữ cấp cao chỉ được chuyển ngữ bởi bộ
✡✠
biên dịch (compiler)
Đoạn lệnh sau dùng cho 2 câu 12-13:
int a , b ;
f o r ( a = 1 , b = 1 ; a<=50; a+=2){
i f ( b>=20)
break ;
i f ( ( a+b ) % 3 == 1 )
{ b += 4 ; continue ; }
}
Câu☛12.
thi đoạn chương trình
✟ Giá trị của a sau khi thực
☛✟
A
50
B
13


✡✟

☛✟

C✠
51
D✠
Cả A, B và C đều sai




Câu☛13.
☛ trên
✟ Thực thi xong đoạn lệnh
✟ giá trị của b là:
A
16
B
21


✡✟

☛✟

C✠
50
D✠
32


Câu 14. Dịng lệnh sau xuất giá trị gì ra màn hình?
p r i n t f ( " %08.1 f " ,
☛✟
A✠
00123.15

☛✟
C✠

000123.2


123.154);
☛✟
B✠
123.1540



D✠
123.154


Đoạn lệnh sau dùng cho 2 câu tiếp theo 15-16:
Trang 1/2 − Mã đề 1713
/>

Câu☛15.
☛ trên
✟ Thực thi xong đoạn lệnh
✟ giá trị của s là:
A
16
B
40


✡✟


☛✟

C✠
15
D✠
7



int i =0, j =1, s =0;
for ( i =0; i < 4 ; ++i ) {
s = s + j;
j = j ∗ 3;
}

Câu☛16.
☛ trên
✟ Thực thi xong đoạn lệnh
✟ giá trị của j là:
A
1
B
81


✡✟

☛✟

C✠

32
D✠
27



II. Các câu hỏi điền kết quả (2đ)

Câu 17. Đoạn chương trình sau tính tổng các số từ 1 đến
Câu 18. Giá trị của biểu thức 5 ∗ (int)2.5 + 1.5 là:
50 thỏa mãn chia hết cho 2 nhưng không chia hết
cho 4. Hãy điền vào chỗ trống để hoàn thiện
int i, sum=0;
byte(s) trong
) Câu 19. Biến kiểu char chiếm:
for(i = 1;
bộ nhớ.
)
if(
Câu 20. Giá trị của biểu thức 12∧ 5 là:

sum =

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 thực hiện các 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ì u cầu nhập lại
• Tính và in ra tổng bình phương các số nguyên dương từ 1 tới n. S = 12 + 22 + ... + n2
Câu 23. (2.5đ) Trong không gian 3 chiều Oxyz cho tọa độ 3 đỉnh của một tam giác �ABC.

• Hãy dùng struct để mô tả kiểu cấu trúc phù hợp về thơng tin mỗi điểm trong Oxyz
• Hãy nhập tọa độ 3 đỉnh �ABC và lưu lại để tính tốn

• Giả sử hình chiếu đứng của �ABC xuống mặt phẳng Oxy là �A� B � C � , hãy tính và xuất ra màn hình tọa độ
của �A� B � C �
• Viết hàm trong_tam(...) nhận vào thơng tin 3 điểm A� , B � , C � của �A� B � C � ở trên, tính và trả về giao điểm
3 đường trung tuyến của �A� B � C � (trọng tâm của �A� B � C � )
Chủ nhiệm Khoa/Bộ môn

Giảng viên ra đề

ThS. Võ Thanh Hùng

Ngày thi: 11/01/2018
CuuDuongThanCong.com

Trang 2/2 − Mã đề 1713
/>

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
Thời gian làm bài: 90 phút

Mơn thi: Nhập mơn lập trình (CO1003)
� Khơng được phép dùng tài liệu
Đề thi số: 1713
☛✟

Câu 1. ✡
B✠
☛✟
Câu 2. ✡
A✠
☛✟
B✠
Câu 3. ✡
☛✟
Câu 4. ✡
A✠

☛✟
Câu 5. ✡
B✠
☛✟
Câu 6. ✡
D✠
☛✟
D✠
Câu 7. ✡
☛✟
Câu 8. ✡
B✠

� Đượ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 9. ✡

A✠
☛✟
Câu 10. ✡
D✠
☛✟
Câu 11. ✡
C✠

☛✟
C✠
Câu 14. ✡

☛✟
Câu 15. ✡
B✠
☛✟
Câu 16. ✡
B✠

II. Các câu hỏi điền kết quả (2đ)

Câu 17. .
11.5.

Câu 18.

☛✟
Câu 12. ✡
B✠
☛✟

B✠
Câu 13. ✡

Câu 19.

1.

Câu 20.

9.

III. Phần tự luận (5đ)
Câu 21. Lời giải.
Câu 22. Lời giải. Gợi ý giải (sinh viên có thể có cách làm khác)
#include <s t d i o . h>
#include <math . h>
int main ( ) {
int n , S ;
do {
p r i n t f ( "Nhap vao s o n : " ) ;
s c a n f ( "%d" , &n ) ;
} while ( n <= 0 ) ;
S = 0;
f o r ( int i = 1 ; i <= n ; ++i )
S += i ∗ i ;
p r i n t f ( "S=%d\n" , S ) ;
return 0 ;
}
\fi
Câu 23. Lời giải. Gợi ý giải, sinh viên có thể làm theo cách khác

#include <s t d i o . h>
#include < s t d l i b . h>
struct Point {
float x , y , z ;
};
void p r i n t P o i n t ( struct Point p ) {
p r i n t f ( " (%f , %f , %f ) " , p . x , p . y , p . z ) ;
}
struct Point trong_tam ( struct Po int A1 , struct Poi nt B1 , struct Poi nt C1) {
struct Point p ;
p . x = (A1 . x + B1 . x + C1 . x ) / 3 ;
Ngày thi: 11/01/2018
CuuDuongThanCong.com

Trang 1/2 − Mã đề 1713
/>

p . y = (A1 . y + B1 . y + C1 . y ) / 3 ;
p . z = (A1 . z + B1 . z + C1 . z ) / 3 ;
}

return p ;

int main ( ) {
struct Point A, B, C;
// nhap
p r i n t f ( "Hay nhap vao t o a
s c a n f ( "%f%f%f " , &(A. x ) ,
s c a n f ( "%f%f%f " , &(B . x ) ,
s c a n f ( "%f%f%f " , &(C. x ) ,


do A, B, C" ) ;
&(A. y ) , &(A. z ) ) ;
&(B . y ) , &(B . z ) ) ;
&(C . y ) , &(C . z ) ) ;

p r i n t f ( "A (%f , %f , %f ) \ n" , A. x , A. y , A. z ) ;
p r i n t f ( "B (%f , %f , %f ) \ n" , B . x , B . y , B . z ) ;
p r i n t f ( "C (%f , %f , %f ) \ n" , C . x , C . y , C . z ) ;
// h i n h c h i e u
struct Point A1 , B1 , C1 ;
A1 = A; A1 . z = 0 ;
B1 = B ; B1 . z = 0 ;
C1 = C; C1 . z = 0 ;
p r i n t P o i n t (A1 ) ; p r i n t P o i n t ( B1 ) ; p r i n t P o i n t (C1 ) ;
p r i n t f ( "\ n t ro n g tam : " ) ;
p r i n t P o i n t ( trong_tam (A1 , B1 , C1 ) ) ;
}

return 0 ;

Ngày thi: 11/01/2018
CuuDuongThanCong.com

Trang 2/2 − Mã đề 1713
/>

TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH
—————————————————


Họ và tên:.............................................
MSSV:..................................................

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
� Được phép dùng tài liệu giấy
Đề thi số: 1715
Đề 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. Thực thi xong đoạn lệnh sau giá trị của x là:

☛✟
A✠
3

☛✟
C✠
7


int x = 7 ;
i f ( x = 3)

x = x ∗ 3 + 1;

☛✟
B✠
22



D✠
10


Câu
☛ 2.
✟ Hãy chọn phát biểu sai
A
Ngơn ngữ tốn học cũng là ngơn ngữ lập trình

☛✠

B✠
Máy tính có thể hiểu trực tiếp hợp ngữ



C
Máy tính có thể hiểu trực tiếp mã giả
✡✟



D✠
Ngôn ngữ cấp cao chỉ được chuyển ngữ bởi bộ

biên dịch (compiler)
Câu 3. Dòng lệnh sau xuất giá trị gì ra màn hình:
p r i n t f ( "%d" , 0x6A ) ;
☛✟
☛✟
A✠
6A
B✠
0x6a


☛✟


C✠
lệnh bị lỗi
D✠
106



Câu 4. Dịng lệnh sau xuất giá trị gì ra màn hình?
p r i n t f ( " %08.1 f " ,
☛✟
A✠
123.1540


☛✟
C
000123.2
✡✠

123.154);
☛✟
B✠
00123.15



D
123.154
✡✠

Câu 5. 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" , x + −−y , x++);
☛✟
☛✟
A
7
3
B✠
10 3



☛✟



C
7
4
D
64
✡✠
✡✠

Câu 6. Định dạng dữ liệu khi đọc/ghi bằng scanf, printf
☛ ✟ cho kiểu char là:
☛✟
A✠
%s
B✠
%c


☛✟


C✠
%d
D✠
%e


Câu
☛ 7.

✟ Hãy chọn phát biểu sai về các kiểu dữ liệu
A
int là kiểu số nguyên và chiếm 6bytes trong bộ
✡✠
nhớ
☛✟
B
pointer là kiểu dẫn xuất
✡✟


C
float là kiểu số thực dấu chấm động
✡✟


D✠
double chiếm 8bytes trong bộ nhớ


Câu
☛ 8.
✟ Khai báo mảng nào sau đây là sai
A
int a[2];

☛✠

B✠
int* a = malloc(2 * sizeof(2));




C✠
int a[] = {1, 3};



D
int a[2] = malloc(2 * sizeof(2));
✡✠

Câu 9. Thiết bị nào sau đây thuộc về phần cứng (hardware) trong máy tính
☛✟
A CPU

☛✠

B
Bộ chuyển ngữ (Assembler)
✡✟


C
Bộ tiền xử lý (Preprocessor)
✡✟


D✠
Trình biên dịch (Compiler)



Câu 10. Lời gọi hàm sqrt(9) trả về giá trị:
☛✟
☛✟
A
1
B✠
3.0




☛✟

C
6.0
D
81.0
✡✠
✡✠

Đoạn lệnh sau dùng cho 2 câu 11-12:
int a , b ;
f o r ( a = 1 , b = 1 ; a<=50; a+=2){
i f ( b>=20)
break ;
i f ( ( a+b ) % 3 == 1 )
{ b += 4 ; continue ; }
}


Câu☛11.
thi đoạn chương trình
☛✟
✟ Giá trị của a sau khi thực
A
51
B
50


✡✟

☛✟

C✠
13
D✠
Cả A, B và C đều sai



Câu☛12.
☛ trên
✟ Thực thi xong đoạn lệnh
✟ giá trị của b là:
A
21
B
16



✡✟

☛✟

C✠
50
D✠
32



Câu 13. Kiểu dữ liệu nào sau đây phù hợp nhất để lưu điểm
học:
☛ ✟ tổng kết của một môn ☛

A
float
B✠
pointer



☛✟
☛✟
C✠
int
D✠
char



Câu☛14.
✟ Hãy chọn phát biểu sai:
A
Trình biên dịch có thể hiểu được mã giả

☛✠

B✠
Mã lập trình là mã được viết bởi một ngơn

ngữ lập trình nào đó (C, C++,..)
☛✟
C
Để mơ tả giải thuật có thể dùng mã giả, lưu
✡✠
đồ hoặc mã lập trình
☛✟
D✠
Lưu đồ sử dụng một số ký hiệu để mô tả giải

thuật

Đoạn lệnh sau dùng cho 2 câu tiếp theo 15-16:

Ngày thi: 11/01/2018

CuuDuongThanCong.com


Trang 1/2 − Mã đề 1715
/>

Câu☛15.
☛ trên
✟ Thực thi xong đoạn lệnh
✟ giá trị của s là:
A
40
B
16


✡✟

☛✟

C✠
15
D✠
7



int i =0, j =1, s =0;
for ( i =0; i < 4 ; ++i ) {
s = s + j;
j = j ∗ 3;
}


Câu☛16.
☛ trên
✟ Thực thi xong đoạn lệnh
✟ giá trị của j là:
A
81
B
1


✡✟

☛✟

C✠
32
D✠
27



II. Các câu hỏi điền kết quả (2đ)

Câu 17. Đoạn chương trình sau tính tổng các số từ 1 đến
Câu 18. Biến kiểu char chiếm:
byte(s) trong
50 thỏa mãn chia hết cho 2 nhưng không chia hết
bộ nhớ.
cho 4. Hãy điền vào chỗ trống để hoàn thiện
int i, sum=0;

) Câu 19. Giá trị của biểu thức 5 ∗ (int)2.5 + 1.5 là:
for(i = 1;
)

if(

Câu 20. Giá trị của biểu thức 12∧ 5 là:

sum =

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 thực hiện các 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ì u cầu nhập lại
• Tính và in ra tổng bình phương các số nguyên dương từ 1 tới n. S = 12 + 22 + ... + n2
Câu 23. (2.5đ) Trong không gian 3 chiều Oxyz cho tọa độ 3 đỉnh của một tam giác �ABC.
• Hãy dùng struct để mô tả kiểu cấu trúc phù hợp về thơng tin mỗi điểm trong Oxyz
• Hãy nhập tọa độ 3 đỉnh �ABC và lưu lại để tính tốn

• Giả sử hình chiếu đứng của �ABC xuống mặt phẳng Oxy là �A� B � C � , hãy tính và xuất ra màn hình tọa độ
của �A� B � C �
• Viết hàm trong_tam(...) nhận vào thơng tin 3 điểm A� , B � , C � của �A� B � C � ở trên, tính và trả về giao điểm
3 đường trung tuyến của �A� B � C � (trọng tâm của �A� B � C � )
Chủ nhiệm Khoa/Bộ môn

Giảng viên ra đề

ThS. Võ Thanh Hùng


Ngày thi: 11/01/2018
CuuDuongThanCong.com

Trang 2/2 − Mã đề 1715
/>

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
Thời gian làm bài: 90 phút

Mơn thi: Nhập mơn lập trình (CO1003)
� Khơng được phép dùng tài liệu
Đề thi số: 1715
☛✟
Câu 1. ✡
D✠
☛✟
Câu 2. ✡
C✠
☛✟
D✠
Câu 3. ✡
☛✟
Câu 4. ✡
C✠

☛✟

Câu 5. ✡
B✠
☛✟
Câu 6. ✡
B✠
☛✟
A✠
Câu 7. ✡
☛✟
Câu 8. ✡
D✠

� Đượ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 9. ✡
A✠
☛✟
B✠
Câu 10. ✡
☛✟
Câu 11. ✡
C✠

☛✟
Câu 13. ✡
A✠
☛✟
A✠

Câu 14. ✡

☛✟
Câu 15. ✡
A✠
☛✟
Câu 16. ✡
A✠

II. Các câu hỏi điền kết quả (2đ)

Câu 17. .
1.

Câu 18.

☛✟
Câu 12. ✡
A✠

Câu 19.

11.5.

Câu 20.

9.

III. Phần tự luận (5đ)
Câu 21. Lời giải.

Câu 22. Lời giải. Gợi ý giải (sinh viên có thể có cách làm khác)
#include <s t d i o . h>
#include <math . h>
int main ( ) {
int n , S ;
do {
p r i n t f ( "Nhap vao s o n : " ) ;
s c a n f ( "%d" , &n ) ;
} while ( n <= 0 ) ;
S = 0;
f o r ( int i = 1 ; i <= n ; ++i )
S += i ∗ i ;
p r i n t f ( "S=%d\n" , S ) ;
return 0 ;
}
\fi
Câu 23. Lời giải. Gợi ý giải, sinh viên có thể làm theo cách khác
#include <s t d i o . h>
#include < s t d l i b . h>
struct Point {
float x , y , z ;
};
void p r i n t P o i n t ( struct Point p ) {
p r i n t f ( " (%f , %f , %f ) " , p . x , p . y , p . z ) ;
}
struct Point trong_tam ( struct Po int A1 , struct Poi nt B1 , struct Poi nt C1) {
struct Point p ;
p . x = (A1 . x + B1 . x + C1 . x ) / 3 ;
Ngày thi: 11/01/2018
CuuDuongThanCong.com


Trang 1/2 − Mã đề 1715
/>

p . y = (A1 . y + B1 . y + C1 . y ) / 3 ;
p . z = (A1 . z + B1 . z + C1 . z ) / 3 ;
}

return p ;

int main ( ) {
struct Point A, B, C;
// nhap
p r i n t f ( "Hay nhap vao t o a
s c a n f ( "%f%f%f " , &(A. x ) ,
s c a n f ( "%f%f%f " , &(B . x ) ,
s c a n f ( "%f%f%f " , &(C. x ) ,

do A, B, C" ) ;
&(A. y ) , &(A. z ) ) ;
&(B . y ) , &(B . z ) ) ;
&(C . y ) , &(C . z ) ) ;

p r i n t f ( "A (%f , %f , %f ) \ n" , A. x , A. y , A. z ) ;
p r i n t f ( "B (%f , %f , %f ) \ n" , B . x , B . y , B . z ) ;
p r i n t f ( "C (%f , %f , %f ) \ n" , C . x , C . y , C . z ) ;
// h i n h c h i e u
struct Point A1 , B1 , C1 ;
A1 = A; A1 . z = 0 ;
B1 = B ; B1 . z = 0 ;

C1 = C; C1 . z = 0 ;
p r i n t P o i n t (A1 ) ; p r i n t P o i n t ( B1 ) ; p r i n t P o i n t (C1 ) ;
p r i n t f ( "\ n t ro n g tam : " ) ;
p r i n t P o i n t ( trong_tam (A1 , B1 , C1 ) ) ;
}

return 0 ;

Ngày thi: 11/01/2018
CuuDuongThanCong.com

Trang 2/2 − Mã đề 1715
/>

TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH
—————————————————

Họ và tên:.............................................
MSSV:..................................................

THI CUỐI KỲ - NIÊN KHĨA 2017-2018
Thời gian làm bài: 90 phút

Mơn thi: Nhập mơn lập trình (CO1003)

� Không được phép dùng tài liệu
� Được phép dùng tài liệu giấy
Đề thi số: 1717
Đề 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
A
int là kiểu số nguyên và chiếm 6bytes trong bộ
✡✠
nhớ
☛✟
B
double chiếm 8bytes trong bộ nhớ
✡✟


C✠
float là kiểu số thực dấu chấm động



D
pointer là kiểu dẫn xuất
✡✠

Câu 2. Lời gọi hàm sqrt(9) trả về giá trị:
☛✟
☛✟
A

1
B✠
81.0



☛✟


C
6.0
D
3.0
✡✠
✡✠

Câu
✟ Hãy chọn phát biểu sai:
☛ 3.
A
Trình biên dịch có thể hiểu được mã giả


☛✠
B✠
Lưu đồ sử dụng một số ký hiệu để mô tả giải

thuật
☛✟
C

Để mô tả giải thuật có thể dùng mã giả, lưu
✡✠
đồ hoặc mã lập trình
☛✟
D
Mã lập trình là mã được viết bởi một ngơn
✡✠
ngữ lập trình nào đó (C, C++,..)

Câu
☛ 4.
✟ Khai báo mảng nào sau đây là sai
A int a[2];

☛✠

B✠
int a[2] = malloc(2 * sizeof(2));

☛✟
C✠
int a[] = {1, 3};



D✠
int* a = malloc(2 * sizeof(2));


Câu 5. Định dạng dữ liệu khi đọc/ghi bằng scanf, printf

☛✟
☛ ✟ cho kiểu char là:
A✠
%s
B✠
%e


☛✟


C
%d
D
%c
✡✠
✡✠
Đoạn lệnh sau dùng cho 2 câu 6-7:

int a , b ;
for ( a = 1 , b = 1 ; a<=50; a+=2){
i f ( b>=20)
break ;
i f ( ( a+b ) % 3 == 1 )
{ b += 4 ; continue ; }
}
Câu
thi đoạn chương trình
☛ 6.
☛✟

✟ Giá trị của a sau khi thực
A
51
B
13


✡✟

☛✟

C✠
50
D✠
Cả A, B và C đều sai



Câu
✟ Thực thi xong đoạn lệnh
✟ giá trị của b là:
☛ 7.
☛ trên
A
21
B
32


✡✟


☛✟

C
50
D
16
✡✠
✡✠
Ngày thi: 11/01/2018
CuuDuongThanCong.com

Câu 8. Kiểu dữ liệu nào sau đây phù hợp nhất để lưu điểm
học:
☛ ✟ tổng kết của một môn ☛

A
float
B✠
char



☛✟
☛✟
C✠
int
D✠
pointer




Câu 9. Thiết bị nào sau đây thuộc về phần cứng (hardware) trong máy tính
☛✟
A CPU


☛✠
B
Trình biên dịch (Compiler)
✡✟


C
Bộ tiền xử lý (Preprocessor)
✡✟


D✠
Bộ chuyển ngữ (Assembler)


Câu 10. Dòng lệnh sau xuất giá trị gì ra màn hình:
p r i n t f ( "%d" , 0x6A ) ;
☛✟
☛✟
A✠
6A
B✠
106





☛✟
C✠
lệnh bị lỗi
D✠
0x6a



Đoạn lệnh sau dùng cho 2 câu tiếp theo 11-12:

int i =0, j =1, s =0;
f o r ( i =0; i < 4 ; ++i ) {
s = s + j;
j = j ∗ 3;
}
Câu☛11.
✟ Thực thi xong đoạn lệnh
✟ giá trị của s là:
☛ trên
A
40
B
7


✡✟


☛✟

C✠
15
D✠
16



Câu☛12.
✟ Thực thi xong đoạn lệnh
✟ giá trị của j là:
☛ trên
A
81
B
27


✡✟

☛✟

C✠
32
D✠
1



Câu☛13.
✟ Hãy chọn phát biểu sai
A
Ngơn ngữ tốn học cũng là ngơn ngữ lập trình

☛✠

B✠
Ngơn ngữ cấp cao chỉ được chuyển ngữ bởi bộ

biên dịch (compiler)
☛✟
C
Máy tính có thể hiểu trực tiếp mã giả
✡✟


D✠
Máy tính có thể hiểu trực tiếp hợp ngữ


Câu 14. Thực thi xong đoạn lệnh sau giá trị của x là:

☛✟
A✠
3

☛✟
C✠
7



int x = 7 ;
i f ( x = 3)
x = x ∗ 3 + 1;

☛✟
B✠
10



D✠
22


Trang 1/2 − Mã đề 1717

/>

Câu 15. Dịng lệnh sau xuất giá trị gì ra màn hình?
p r i n t f ( " %08.1 f " ,
☛✟
A✠
123.1540

☛✟
C
000123.2
✡✠


123.154);
☛✟
B✠
123.154



D
00123.15
✡✠

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" , x + −−y , x++);
☛✟
☛✟
A✠
73
B✠
64


☛✟


C✠
74
D✠
10 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 12∧ 5 là:

for(i = 1;

)

if(

)

sum =
Câu 18. Đoạn chương trình sau tính tổng các số từ 1 đến
50 thỏa mãn chia hết cho 2 nhưng không chia hết
cho 4. Hãy điền vào chỗ trống để hoàn thiện
int i, sum=0;

Câu 19. Giá trị của biểu thức 5 ∗ (int)2.5 + 1.5 là:
Câu 20. Biến kiểu char chiếm:
bộ nhớ.

byte(s) trong

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 thực hiện các 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ì u cầu nhập lại
• Tính và in ra tổng bình phương các số nguyên dương từ 1 tới n. S = 12 + 22 + ... + n2
Câu 23. (2.5đ) Trong không gian 3 chiều Oxyz cho tọa độ 3 đỉnh của một tam giác �ABC.
• Hãy dùng struct để mô tả kiểu cấu trúc phù hợp về thông tin mỗi điểm trong Oxyz
• Hãy nhập tọa độ 3 đỉnh �ABC và lưu lại để tính tốn

• Giả sử hình chiếu đứng của �ABC xuống mặt phẳng Oxy là �A� B � C � , hãy tính và xuất ra màn hình tọa độ
của �A� B � C �
• Viết hàm trong_tam(...) nhận vào thông tin 3 điểm A� , B � , C � của �A� B � C � ở trên, tính và trả về giao điểm
3 đường trung tuyến của �A� B � C � (trọng tâm của �A� B � C � )
Chủ nhiệm Khoa/Bộ môn

Giảng viên ra đề

ThS. Võ Thanh Hùng

Ngày thi: 11/01/2018
CuuDuongThanCong.com

Trang 2/2 − Mã đề 1717
/>

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
Thời gian làm bài: 90 phút


Mơn thi: Nhập mơn lập trình (CO1003)
� Khơng được phép dùng tài liệu
Đề thi số: 1717
☛✟
Câu 1. ✡
A✠
☛✟
Câu 2. ✡
D✠
☛✟
A✠
Câu 3. ✡
☛✟
Câu 4. ✡
B✠

☛✟
Câu 5. ✡
D✠

☛✟
Câu 6. ✡
B✠
☛✟
Câu 7. ✡
A✠

� Đượ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 8. ✡
A✠
☛✟
Câu 9. ✡
A✠
☛✟
Câu 10. ✡
B✠

☛✟
Câu 11. ✡
A✠
☛✟
A✠
Câu 12. ✡
☛✟
C✠
Câu 13. ✡

II. Các câu hỏi điền kết quả (2đ)
9.

Câu 17.
Câu 18. .

Câu 19.

11.5.


Câu 20.

1.

☛✟
Câu 14. ✡
B✠

☛✟
Câu 15. ✡
C✠

☛✟
Câu 16. ✡
D✠

III. Phần tự luận (5đ)
Câu 21. Lời giải.
Câu 22. Lời giải. Gợi ý giải (sinh viên có thể có cách làm khác)
#include <s t d i o . h>
#include <math . h>
int main ( ) {
int n , S ;
do {
p r i n t f ( "Nhap vao s o n : " ) ;
s c a n f ( "%d" , &n ) ;
} while ( n <= 0 ) ;
S = 0;
f o r ( int i = 1 ; i <= n ; ++i )
S += i ∗ i ;

p r i n t f ( "S=%d\n" , S ) ;
return 0 ;
}
\fi
Câu 23. Lời giải. Gợi ý giải, sinh viên có thể làm theo cách khác
#include <s t d i o . h>
#include < s t d l i b . h>
struct Point {
float x , y , z ;
};
void p r i n t P o i n t ( struct Point p ) {
p r i n t f ( " (%f , %f , %f ) " , p . x , p . y , p . z ) ;
}
struct Point trong_tam ( struct Po int A1 , struct Poi nt B1 , struct Poi nt C1) {
struct Point p ;
p . x = (A1 . x + B1 . x + C1 . x ) / 3 ;
Ngày thi: 11/01/2018
CuuDuongThanCong.com

Trang 1/2 − Mã đề 1717
/>

p . y = (A1 . y + B1 . y + C1 . y ) / 3 ;
p . z = (A1 . z + B1 . z + C1 . z ) / 3 ;
}

return p ;

int main ( ) {
struct Point A, B, C;

// nhap
p r i n t f ( "Hay nhap vao t o a
s c a n f ( "%f%f%f " , &(A. x ) ,
s c a n f ( "%f%f%f " , &(B . x ) ,
s c a n f ( "%f%f%f " , &(C. x ) ,

do A, B, C" ) ;
&(A. y ) , &(A. z ) ) ;
&(B . y ) , &(B . z ) ) ;
&(C . y ) , &(C . z ) ) ;

p r i n t f ( "A (%f , %f , %f ) \ n" , A. x , A. y , A. z ) ;
p r i n t f ( "B (%f , %f , %f ) \ n" , B . x , B . y , B . z ) ;
p r i n t f ( "C (%f , %f , %f ) \ n" , C . x , C . y , C . z ) ;
// h i n h c h i e u
struct Point A1 , B1 , C1 ;
A1 = A; A1 . z = 0 ;
B1 = B ; B1 . z = 0 ;
C1 = C; C1 . z = 0 ;
p r i n t P o i n t (A1 ) ; p r i n t P o i n t ( B1 ) ; p r i n t P o i n t (C1 ) ;
p r i n t f ( "\ n t ro n g tam : " ) ;
p r i n t P o i n t ( trong_tam (A1 , B1 , C1 ) ) ;
}

return 0 ;

Ngày thi: 11/01/2018
CuuDuongThanCong.com

Trang 2/2 − Mã đề 1717

/>


×