TRƢỜNG ĐH SƢ PHẠM KỸ THUẬT TPHCM ĐÁP ÁN CUỐI KỲ HK NĂM HỌC 2018 - 2019 KHOA ĐIỆN – ĐIỆN TỬ Mơn: Ngơn ngữ lập trình C BM: KT MÁY TÍNH VÀ VIỄN THƠNG Mã mơn học: CPRL130064 Đề số/Mã đề: CPRL1300641 TRẮC NGHIỆM (4.0 đ) Cho chƣơng trình (với dịng lệnh đƣợc đánh số thứ tự) nhƣ bên dƣới Hãy trả lời yêu cầu tƣơng ứng Lệnh #include #include int Func1(int x) { if ( x%2 == 1) return 0; else return x; } STT dòng lệnh (1) (2) (3) (5) void main (void) { int a[5] = {1}, i; for(i = 0; i < 5; i++) a[i] = i; printf("%d \n", i); for(i = 0; i < 5; i++) printf printf ("%d Yêu cầu: Thư viện dòng lệnh (1) khai báo cho hàm chương trình: printf, Phép % dịng lệnh (5) phép tốn gì: Chia lấy dư (11) (13) (16) ", a[i]); (20) printf("\n"); for( i = 0; i < 5; i++) if(a[i] % != 0) printf("%d ",a[i]); (25) (26) (27) Sau thực thi hết dòng lệnh (13), giá trị biến i là: Không xác định Sau thực thi hết dòng lệnh (16), kết in hình là: Sau thực thi hết dịng lệnh (20), kết in hình là: Sau thực thi hết dòng lệnh (26), kết in hình là: Hãy viết lại dòng (25) (26) dùng lệnh switch cho chức không thay đổi: switch (a[i] % 3){ case 0: break; default: printf("%d ", a[i]);} int d = 0; for(i = 0; i < 5; i++) Số hiệu: BM3/QT-PĐBCL-RĐTV- Lệnh d++; dòng lệnh (41) tương đương với lệnh gì: Trang: if(a[i]%2 == 0) d++; printf("\n %d",d); (41) (42) d = d + Sau thực thi hết dòng lệnh (42), kết in hình là: for(i = ; i < 5; i++) a[i] = Func1(a[i]); printf("\n"); (48) Lệnh dịng (48) có tác dụng gì: Con trỏ xuống dịng đầu dịng for(i = 0; i < 5; i++) printf("%d ", a[i]); (51) getch(); } #include #include Sau thực thi hết dịng lệnh (51), kết in hình là: 0 (1) void main (void) { int a[4] = {2,4,6,8}; int *x, i; x = &a[1]; (9) printf("%d\n", *x + 1); (12) printf("%d\n", *(x + 2)); (15) x = a; printf("%d\n", *x); (19) getch(); Lệnh dịng lệnh (9) thực thi cơng việc gì: Lấy địa a[1]gán vào x Sau thực thi hết dòng lệnh (12), kết in hình là: Sau thực thi hết dịng lệnh (15), kết in hình là: Sau thực thi hết dòng lệnh (19), kết in hình là: } Số hiệu: BM3/QT-PĐBCL-RĐTV- Trang: TỰ LUẬN (6.0 đ) Câu (1.5 đ) Viết MỘT chƣơng trình C xử lý tất yêu cầu sau: - (1.0 đ) Nhập mảng chiều gồm 200 phần tử số nguyên, yêu cầu: chấp nhận lƣu số DƢƠNG vào mảng - (0.5 đ) Sắp xếp in mảng theo trật tự giảm dần #include #include void main(void) { int a[200],i,hold,j; ……………………………………………………………… for (i = 0; i < 200; i++) ……………………………………………………………… { printf("Nhap phan tu thu %d:\n", i + 1); scanf_s("%d", &a[i]); ……………………… while (a[i] - (0.5 đ) Nhập vào mảng chiều gồm A phần tử số nguyên, yêu cầu: dùng trỏ cấp phát nhớ động - (0.5 đ) In số lớn mảng vừa nhập #include #include #include void main(void) { int i, A, max, *p; printf("Nhap so nguyen A:\n"); scanf_s("%d", &A); …………………………………… while (A y) return x; else return y; } ……………………… …………………………… 0.25đ 0.25đ Câu (1.5 đ) Viết MỘT chƣơng trình C xử lý: - (0.5 đ)Định nghĩa(tạo) kiểu cấu trúc DonHang để quản lý đơn hàng khách hàng, gồm thành phần: + Mã đơn hàng (ma): kiểu int + Tên khách hàng (ten): kiểu char + Số điện thoại (sodt): kiểu int + Tổng tiền (tien): kiểu int - (0.5 đ) Nhập liệu cho danh sách đơn hàng 300 khách hàng từ bàn phím - (0.5 đ) Hãy cho biết danh sách vừa nhập có hay khơng có đơn hàng khách hàng có số điện thoại là: 0909123456 #include #include #include #define Max 300 struct DonHang { ………………………………………………… int ma, sodt, tien; char ten[10]; }; ………………………………………………………… void main(void){ struct DonHang sdh[Max]; ………………………………………………………… int i, dem = 0, a; for (i = 0; i < Max; i++) { printf("Nhap vao ma don hang thu %d: ", i + 1); scanf_s("%d", &sdh[i].ma); _flushall(); printf("Nhap vao ten khach hang: "); scanf_s("%c", &sdh[i].ten[i]); _flushall(); printf("Nhap vao so dien thoai: "); scanf_s("%d", &sdh[i].sodt); _flushall(); printf("Nhap vao so tien: "); scanf_s("%d", &sdh[i].tien); _flushall(); …………………………………………… } a = atoi("0909123456"); for (i = 0; i < Max; i++){ if ((sdh[i].sodt) == a) dem++; …………………………………………… } if (dem !=0) …………………………………………… printf("co don hang so dien thoai 0909123456\n"); else printf("Khong co don hang cua so dien thoai 0909123456\n"); _getch(); } Số hiệu: BM3/QT-PĐBCL-RĐTV- 0.25đ 0.25đ 0.25đ 0.25đ 0.25đ 0.25đ Trang: Ngày 18 tháng 12 năm 2018 Thông qua môn Số hiệu: BM3/QT-PĐBCL-RĐTV- Trang: