You are on page 1of 5

lOMoARcPSD|34961721

tài liệu nhập môn lập trình

phương pháp số (Trường Đại học Công nghệ Thành phố Hồ Chí Minh)

Studocu is not sponsored or endorsed by any college or university


Downloaded by DUY V? HOÀNG THÁI (duy.vubkk21@hcmut.edu.vn)
lOMoARcPSD|34961721

Giảng viên ra đề: (Ngày ra đề)


Người phê duyệt: (Ngày duyệt đề)

(Chữ ký và Họ tên) (Chữ ký, Chức vụ và Họ tên)

(phần phía trên cần che đi khi in sao đề thi)

THI CUỐI KỲ Học kỳ/năm học 2 2019-2020


Ngày thi 26/7/2020
Môn học Nhập môn về lập trình
TRƯỜNG ĐH BÁCH KHOA – ĐHQG-HCM Mã môn học CO1003
KHOA Khoa học và kỹ thuật máy tính
Thời lượng 90 phút Mã đề 1923
Ghi chú: - Được phép sử dụng tài liệu trên 1 tờ giấy A4.
- Không được sử dụng máy tính và các thiết bị khác.
- Phần I và II làm trực tiếp trên đề; phần III (tự luận) làm trên giấy làm bài.
- NỘP LẠI ĐỀ SAU KHI THI.
Phần I. Trắc nghiệm (4đ)
Hướng dẫn :
- Mỗi câu hỏi trắc nghiệm chỉ chọn một đáp án. 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 đủ.
- Sinh viên ghi đáp án bằng chữ in hoa A, B, C, D vào phiếu trả lời bên dưới. Muốn thay đổi đáp án, sinh viên
đánh chéo lên đáp án cũ và ghi đáp án mới kế bên.

1 A 5 A 9 C 13 A
2 A 6 A|B|C|D 10 B 14 C
3 C 7 D 11 B 15 C
4 D 8 C 12 C 16 A

Câu hỏi 1) (L.O.2.5) Câu lệnh nào sau đây hiển Hãy chọn phát biểu SAI:
thị dòng chữ "Welcome to C" ra màn hình A. Sử dụng st tương đương &st[0]
console? B. Có thể gán st[3]='\0';
A. printf("Welcome to C"); C. Có thể gán st[5]='B';
B. printf('Welcome to C'); D. Có 1 phát biểu sai trong A, B, C
C. printf(Welcome to C);
Câu hỏi 5) (L.O.6.6) Hãy cho biết kết quả xuất
D. printf("Welcome to C'); ra màn hình của đoạn chương trình sau:
Câu hỏi 2) (L.O.3.4) Đoạn chương trình sau xuất struct Point{
ra màn hình? int x,y;
int x=5,y=5; };
if (x<5) printf("%d, %d",x,++y); struct Point pt1={1,2},*pt2=&pt1;
if (x>6) printf("%d, %d",--x,--y); int main(){
else printf("%d, %d",++x,y++); int kq;
A. 6, 5 B. 6, 6 kq = (pt1.y <= pt2->y)?3:7;
C. 5, 6 D. 5, 7 printf("%d",kq);
return 0;
Câu hỏi 3) (L.O.4.4) Chọn phát biểu sai }
A. Khai báo extern cho phép gọi hàm nằm ngoài A. 3 B. 7
module. C. Lỗi khi dịch. D. A, B, C đều sai.
B. Biến định nghĩa trong 2 hàm khác nhau có thể
Câu hỏi 6) (L.O.3.4) Đoạn code sau lặp cho đến
đặt trùng tên.
khi nào?
C. Trong dự án có nhiều module chứa hàm, mỗi int n;
module có thể có 1 hàm main() do {
D. Ta có thể viết nhiều hàm trong 1 module. printf("Nhap so n: ");
Câu hỏi 4) (L.O.5.3) Cho lệnh khai báo biến scanf("%d",&n);
sau: char st[20]="DHBKTPHCM"; } while ((n>=0)||(n/7<-1));

MSSV: .......................................... Họ và tên SV: ........................................................................................... Trang 1/4

Downloaded by DUY V? HOÀNG THÁI (duy.vubkk21@hcmut.edu.vn)


lOMoARcPSD|34961721

A. n < -7 B. n > 0 D. /* Comment about the program */


C. -7 < n < 0 D. Cả A, B, C đều sai. Câu hỏi 12) (L.O.2.1) Giá trị ABC7 trong hệ cơ
Câu hỏi 7) (L.O.2.4) Biểu thức C nào thể hiện số 16, chuyển đổi sang hệ nhị phân sẽ có giá trị
mối quan hệ logic : "a lớn hơn 10 hoặc a nhỏ hơn bằng:
0" ? A. 1010001111000111
A. a>10 OR a<0 B. a>10 | a<0 B. 1010001111000101
C. a>10 ||| a<0 D. a>10 || a<0 C. 1010101111000111
Câu hỏi 8) (L.O.5.1) Khai báo nào của mảng sau D. 1010101111000101
đây là sai? Câu hỏi 13) (L.O.2.2) Định danh nào sau đây
A. int a[2]; hợp lệ ?
B. int *a= malloc(2*sizeof(int)); A. abde_ B. K+FJS
C. int a[2]= malloc(2*sizeof(int)); C. 67KDJ D. #DK_3_
D. int a[]={1,3}; Câu hỏi 14) (L.O.2.5) Chọn định dạng dữ liệu
Câu hỏi 9) (L.O.2.3) Kiểu dữ liệu nào được khai cho kiểu int khi dùng với scanf()
báo để lưu trữ giá trị 3.14 ? A. "%f" B. "%s"
A. long B. char C. "%d" D. Cả A, B, C đều sai.
C. double D. short, int Câu hỏi 15) (L.O.5.1) Trong C, chỉ số của mảng
Câu hỏi 10) (L.O.7.1) Làm việc với tập tin trên bắt đầu từ ...
đĩa, ta cần sử dụng kiểu dữ liệu gì ? A. Có thể chọn 0 hoặc 1 B. Luôn luôn là 1
A. File B. FILE* C. Luôn luôn là 0 D. Cả A, B, C đều sai.
C. FILE D. FILEDEF Câu hỏi 16) (L.O.1.6) Giá trị 110100010110
Câu hỏi 11) (L.O.1.4) Chú thích nào sau đây trong hệ nhị phân, chuyển đổi sang hệ thập phân
không đúng trong C? sẽ có giá trị bằng:
A. // Comment about the program A. 3350 B. 3351
B. /************ C. 3352 D. 3353
C. /*** Regarding the program ***/
-------------------------------
II. Điền vào chỗ trống (2đ)
Câu hỏi 17) (L.O.3.4) Câu lệnh gán count=count+1; của đoạn code sau sẽ thực thi 100 lần.
int i,j,count=0;
for(i=14;i>4;i-=2)
for(j=1;j<=20;j++)
count=count+1;
Câu hỏi 18) (L.O.3.4) Kết quả xuất ra màn hình của đoạn chương trình sau là 1; 2; 3; 4; .
int num=0;
while(num<=3)
{ num++;
printf("%d; ",num);
}
Câu hỏi 19) (L.O.3.4) Dòng lệnh
printf("%d,%dd,%ddd,%%dd",sizeof(double),sizeof(char),sizeof(long));
sau sẽ in ra màn hình 8,1d,4dd,%dd .
Câu hỏi 20) (L.O.5.3) Hoàn chỉnh đoạn chương trình tìm trị max trong dãy:
for(i=1 ,max=a[0];i<N;i++)
if (a[i] >= max) max=a[i];
Câu hỏi 21) (L.O.4.1) Viết ra mô tả hàm trả về con trỏ kiểu nguyên dài, có 2 tham số: 1 là con trỏ dãy số
chấm động chính xác đơn, 1 là trị nguyên.
long *ham(float a[],int n) hoặc long *ham(float *a,int n)

MSSV: .......................................... Họ và tên SV: ........................................................................................... Trang 2/4

Downloaded by DUY V? HOÀNG THÁI (duy.vubkk21@hcmut.edu.vn)


lOMoARcPSD|34961721

III. Tự luận (4đ)


Câu hỏi 22) (L.O.4.4) (2đ) Viết chương trình in ra giá trị từng phần tử trong mảng 6 số nguyên với các
giá trị được khởi tạo ngẫu nhiên từ 1 đến 10 và biểu đồ sao (*) thể hiện giá trị của từng phần tử đó. Sau
đó tìm và in ra giá trị lớn nhất và nhỏ nhất của các phần tử này.
Ví dụ:
Phan tu Gia tri Bieu đo sao
0 5 *****
1 8 ********
2 1 *
3 9 *********
4 8 ********
5 7 *******
Gia tri cua phan tu lon nhat la 9
Gia tri cua phan tu nho nhat la 1
Đáp án tham khảo -------------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>

int main()
{
int A[6],min,max;
printf(" Phan Tu ");
printf("\tGia tri ");
printf("\tBieu do sao\n");
for (int i = 0; i < 6; i++)
A[i] = (rand() % 10) + 1;
for (int i = 0; i < 6; i++) {
printf(" %d", i);
printf("\t");
printf("\t%d",A[i]);
printf("\t");
printf("\t");
for(int j = 0; j < A[i]; j++)
{
printf("*");
}
printf("\n");
}
min = A[0]; max = A[0];
for(int i = 1; i < 6; i++){
if(A[i] > max) max = A[i];
if(A[i] < min) min = A[i];
}
printf("Gia tri cua phan tu lon nhat la %d\n", max);
printf("Gia tri cua phan tu nho nhat la %d", min);
return 0;
}
ĐÁ-------------------------------------------------------------------------------------------
Câu hỏi 23) (L.O.4.4) (2đ) Viết hàm in ra 3 câu "Nếu A thì B". Trong đó, A chọn ngẫu nhiên trong các
cụm từ:
- "trời không mưa"
- "tôi có tiền"
- "tôi có việc làm"
MSSV: .......................................... Họ và tên SV: ........................................................................................... Trang 3/4

Downloaded by DUY V? HOÀNG THÁI (duy.vubkk21@hcmut.edu.vn)


lOMoARcPSD|34961721

và B chọn ngẫu nhiên trong các cụm từ:


- "tôi sẽ đi chơi"
- "tôi sẽ đãi bạn một chầu"
- "tôi sẽ mua nhà"
- "tôi sẽ đi tắm"
Đáp án tham khảo -------------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void in_ngau_nhien(void)
{
int a,b,i;
for(i=0;i<3;i++)
{
printf("Neu ");
a=rand()%3;
switch(a)
{
case 0: printf("troi khong mua");break;
case 1: printf("toi co tien");break;
case 2: printf("toi co viec lam");break;
}
printf(" thi ");
b=rand()%4;
switch(b)
{
case 0: printf("toi se di choi.");break;
case 1: printf("toi se dai ban mot chau.");break;
case 2: printf("toi se mua nha.");break;
case 3: printf("toi se di tam.");break;
}
printf("\n");
}
}
ĐÁ-------------------------------------------------------------------------------------------

MSSV: .......................................... Họ và tên SV: ........................................................................................... Trang 4/4

Downloaded by DUY V? HOÀNG THÁI (duy.vubkk21@hcmut.edu.vn)

You might also like