PRF192Chưa đoKỳ 1Cơ sở ngành Cập nhật 2 ngày trước

PRF192 - Cơ sở lập trình

PRF192 - Cơ sở lập trình (Programming Fundamentals) là môn học 3 tín chỉ của Đại học FPT, dạy cách giải quyết bài toán thực tế bằng máy tính thông qua ngôn ngữ C, với trọng tâm là thiết kế chương trình hướng hàm, mô-đun hoá, kiểm thử và kỷ luật lập trình. Nội dung môn học bao quát trọn bộ chương trình 60 buổi theo chín chuẩn đầu ra CLO1 đến CLO9. Nội dung gồm: máy tính và phần mềm (khái niệm cơ bản về hệ thống máy tính, các bước phát triển phần mềm, quy trình mã nguồn - biên dịch - liên kết - thực thi, cấu trúc một chương trình C với chỉ thị tiền xử lý #include, hàm main, dấu chấm phẩy kết thúc câu lệnh, chú thích, trình biên dịch và môi trường DevC++); biến, kiểu dữ liệu và biểu thức (khai báo biến và hằng, quy tắc đặt tên định danh, const và #define, các kiểu int, float, double, char và unsigned cùng miền giá trị, nhập xuất bằng scanf và printf với các đặc tả %d %f %c %s, toán tử số học, phép chia nguyên và phép chia lấy dư, toán tử quan hệ, toán tử logic, toán tử trên bit, toán tử gán rút gọn, tăng giảm một đơn vị, trộn kiểu dữ liệu, ép kiểu tường minh và ngầm định, độ ưu tiên và tính kết hợp); cấu trúc điều khiển (rẽ nhánh if, if-else, if lồng nhau, thang else-if, switch-case với break và default; vòng lặp for, while, do-while, break và continue, vòng lặp lồng nhau; phong cách lập trình với thụt lề, đặt tên có nghĩa và chú thích); mô-đun hoá và hàm (mô-đun là gì và vì sao phải mô-đun hoá, tính kết dính cao và ghép nối lỏng, nguyên tắc định nghĩa mô-đun, định nghĩa hàm với kiểu trả về và danh sách tham số, nguyên mẫu hàm, lời gọi hàm, truyền tham số theo giá trị, phân biệt hàm thư viện với hàm tự viết, phạm vi và thời gian sống của biến cục bộ - toàn cục - static, chương trình dạng menu gọi hàm); con trỏ (khái niệm và công dụng, khai báo con trỏ, toán tử lấy địa chỉ và toán tử truy xuất giá trị, số học con trỏ, con trỏ NULL, truyền tham số theo tham chiếu, quan hệ giữa con trỏ và mảng, cấp phát động bằng malloc, calloc, realloc và free, rò rỉ bộ nhớ); thư viện chuẩn C (stdlib.h, time.h, math.h, ctype.h và vào ra có định dạng); mảng và cấu trúc (mảng một chiều, chỉ số bắt đầu từ 0, mảng hai chiều và ma trận, tìm kiếm tuyến tính, sắp xếp chọn, kiểu struct, truy cập thành viên, mảng struct, typedef); chuỗi ký tự (chuỗi là mảng char kết thúc bằng ký tự null, nhập xuất chuỗi, các hàm trong string.h như strlen, strcpy, strcat, strcmp, mảng chuỗi); và tệp tin (tệp văn bản và tệp nhị phân, con trỏ FILE, fopen với các chế độ mở, fclose, truy cập tuần tự và ngẫu nhiên, fprintf, fscanf, fgets, fputs, fread, fwrite, fseek, ftell, feof).

266Câu hỏi
7Bộ đề
9Chủ đề

Câu hỏi của môn

266/266 câuHết danh sách
AIt must use recursion
BIt must be written in C language
CIt must have infinite steps
DIt must be finite and well-defined
Lời giải
Đáp án đúng: "It must be finite and well-defined". Thuật toán là dãy bước giải một bài toán, và hai tính chất không thể thiếu là hữu hạn, tức phải dừng sau số bước xác định, cùng rõ ràng, tức mỗi bước chỉ hiểu được theo một nghĩa để ai thực hiện cũng cho cùng kết quả. Thiếu một trong hai thì không còn là thuật toán. Yêu cầu "It must use recursion" sai vì đệ quy chỉ là một cách tổ chức lời giải; vô số thuật toán chỉ dùng vòng lặp. Yêu cầu "It must be written in C language" lẫn thuật toán với chương trình: thuật toán tồn tại độc lập, diễn đạt được bằng lời, bằng mã giả hay sơ đồ khối, rồi mới cài đặt bằng một ngôn ngữ bất kỳ. Yêu cầu "It must have infinite steps" trái hẳn tính hữu hạn; dãy bước không bao giờ dừng chỉ là vòng lặp vô tận, không giải xong việc gì.
Mở trang câu hỏi này →
A_abc
Bbc#
C1abc
Dcase
Lời giải

Đáp án đúng: "_abc". Tên định danh trong C chỉ gồm chữ cái, chữ số và dấu gạch dưới, ký tự đầu phải là chữ cái hoặc dấu gạch dưới, và tên không được trùng từ khoá; tên mở đầu bằng gạch dưới thoả cả ba điều kiện nên hợp lệ, dù theo quy ước lớp tên đó nên để dành cho thư viện. Tên "bc#" chứa dấu thăng, ký tự không thuộc tập cho phép; bộ phân tích từ vựng tách nó thành một ký tự riêng và câu khai báo vỡ. Tên "1abc" mở đầu bằng chữ số nên bị đọc như một hằng số, đúng điều cấm với ký tự đầu tiên. Tên "case" là từ khoá dành riêng cho nhãn trong cấu trúc switch; từ khoá đã có nghĩa cố định với trình dịch nên không dùng lại làm tên biến được.

Mở trang câu hỏi này →