Bài Tập, Đề Thi Trắc Nghiệm Online – Môn Cơ Sở Lập Trình – Đề 05

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


Môn Cơ Sở Lập Trình

Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Cơ Sở Lập Trình - Đề 05

Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Cơ Sở Lập Trình - Đề 05 bao gồm nhiều câu hỏi hay, bám sát chương trình. Cùng làm bài tập trắc nghiệm ngay.

Câu 1: Dennis Ritchie và Ken Thompson đã phát triển hệ điều hành UNIX tại Bell Labs. Hệ điều hành này có ảnh hưởng lớn đến sự ra đời và phát triển của ngôn ngữ lập trình C như thế nào?

  • A. UNIX được phát triển sau ngôn ngữ C và sử dụng C như một trong các ngôn ngữ lập trình hệ thống.
  • B. Ngôn ngữ C được phát triển ban đầu để viết lại hệ điều hành UNIX, thay thế cho ngôn ngữ Assembly.
  • C. UNIX và C phát triển độc lập tại Bell Labs và không có sự ảnh hưởng lẫn nhau.
  • D. C được phát triển như một công cụ để kiểm thử và gỡ lỗi cho hệ điều hành UNIX.

Câu 2: Đoạn mã C sau thực hiện phép toán gì trên biến `x`?

  • A. Tăng giá trị của `x` lên 5.
  • B. Gán giá trị 5 cho `x`.
  • C. Giảm giá trị của `x` đi 5.
  • D. Nhân giá trị của `x` với 5.

Câu 3: Trong ngôn ngữ C, kiểu dữ liệu `int` thường được sử dụng để lưu trữ số nguyên. Phạm vi giá trị của kiểu `int` phụ thuộc vào yếu tố nào?

  • A. Phiên bản trình biên dịch C đang sử dụng.
  • B. Hệ điều hành mà chương trình đang chạy.
  • C. Kiến trúc của bộ xử lý (ví dụ: 32-bit hay 64-bit).
  • D. Kích thước bộ nhớ RAM của máy tính.

Câu 4: Biến `count` được khai báo là `static int count = 0;` bên trong một hàm. Điều gì xảy ra với giá trị của `count` sau khi hàm kết thúc và được gọi lại lần nữa?

  • A. Giá trị của `count` sẽ được đặt lại về 0 mỗi khi hàm được gọi.
  • B. Biến `count` sẽ không thể truy cập được khi hàm được gọi lại.
  • C. Giá trị của `count` sẽ không xác định sau khi hàm kết thúc.
  • D. Giá trị của `count` sẽ được giữ nguyên từ lần gọi hàm trước đó.

Câu 5: Xét đoạn mã C sau:
```c
int a = 10;
int ptr = &a;
ptr = 20;
printf(

  • A. 10
  • B. 20
  • C. Địa chỉ của biến `a`
  • D. Lỗi biên dịch

Câu 6: Hàm `scanf(

  • A. In giá trị của biến `number` ra màn hình.
  • B. Khai báo biến `number` là kiểu số nguyên.
  • C. Đọc một số nguyên từ bàn phím và lưu vào biến `number`.
  • D. Tính căn bậc hai của biến `number`.

Câu 7: Trong C, vòng lặp `for (int i = 0; i < 5; i++) { ... }` sẽ lặp lại khối lệnh bên trong bao nhiêu lần?

  • A. 4 lần
  • B. 5 lần
  • C. 6 lần
  • D. Vô số lần (vòng lặp vô hạn)

Câu 8: Hàm nào sau đây được sử dụng để cấp phát bộ nhớ động trong ngôn ngữ lập trình C?

  • A. `malloc()`
  • B. `printf()`
  • C. `scanf()`
  • D. `free()`

Câu 9: Biểu thức `(a > b) ? a : b` trong C là một ví dụ về toán tử nào?

  • A. Toán tử số học
  • B. Toán tử quan hệ
  • C. Toán tử điều kiện (ba ngôi)
  • D. Toán tử logic

Câu 10: Để biên dịch một chương trình C có tên `hello.c` bằng trình biên dịch GCC, câu lệnh nào sau đây được sử dụng?

  • A. `run hello.c`
  • B. `gcc hello.c -o hello`
  • C. `compile hello.c`
  • D. `debug hello.c`

Câu 11: Trong ngôn ngữ C, kiểu dữ liệu nào sau đây được sử dụng để biểu diễn giá trị logic (đúng/sai)?

  • A. `boolean`
  • B. `char`
  • C. `string`
  • D. `int` (thường dùng, hoặc `_Bool` từ C99)

Câu 12: Hàm `strlen(

  • A. 6
  • B. 0
  • C. 5
  • D. 4

Câu 13: Thư viện chuẩn nào của C cung cấp các hàm toán học như `sqrt()`, `sin()`, `cos()`?

  • A. `stdio.h`
  • B. `math.h`
  • C. `string.h`
  • D. `stdlib.h`

Câu 14: Đoạn mã C sau có lỗi gì?
```c
int main() {
int x = 10;
printf(

  • A. Lỗi ở dòng `return 0;`
  • B. Lỗi ở dòng `int x = 10;`
  • C. Không có lỗi
  • D. Biến `y` chưa được khai báo trước khi sử dụng.

Câu 15: Trong C, sự khác biệt chính giữa `struct` và `union` là gì?

  • A. `struct` lưu trữ các thành viên ở các vùng nhớ khác nhau, `union` dùng chung vùng nhớ.
  • B. `struct` chỉ chứa các biến cùng kiểu dữ liệu, `union` có thể chứa nhiều kiểu dữ liệu.
  • C. `struct` được sử dụng cho con trỏ, `union` cho biến thông thường.
  • D. `struct` không thể lồng nhau, `union` có thể lồng nhau.

Câu 16: Mục đích của tiền xử lý (preprocessor) trong quá trình biên dịch C là gì?

  • A. Biên dịch mã nguồn C thành mã máy.
  • B. Liên kết các thư viện và mã đối tượng để tạo chương trình thực thi.
  • C. Xử lý các chỉ thị tiền xử lý như `#include`, `#define` trước khi biên dịch chính thức.
  • D. Gỡ lỗi và tối ưu hóa mã chương trình.

Câu 17: Kiểu dữ liệu `char` trong C thường chiếm bao nhiêu byte bộ nhớ?

  • A. 2 bytes
  • B. 1 byte
  • C. 4 bytes
  • D. 8 bytes

Câu 18: Chức năng của toán tử `&` (address-of operator) trong C là gì?

  • A. Thực hiện phép toán AND bitwise.
  • B. Khai báo một biến tham chiếu.
  • C. Truy cập giá trị tại địa chỉ bộ nhớ được trỏ bởi con trỏ.
  • D. Lấy địa chỉ bộ nhớ của một biến.

Câu 19: Điều gì sẽ xảy ra nếu bạn cố gắng truy cập một phần tử mảng vượt quá kích thước đã khai báo trong C?

  • A. Chương trình sẽ báo lỗi biên dịch.
  • B. Mảng sẽ tự động được mở rộng kích thước.
  • C. Có thể gây ra lỗi thời gian chạy, hành vi không xác định hoặc crash chương trình.
  • D. Chương trình sẽ bỏ qua truy cập và tiếp tục thực hiện.

Câu 20: Trong C, cách truyền tham số nào cho hàm sẽ tạo ra bản sao của giá trị đối số trong hàm?

  • A. Truyền theo giá trị (pass-by-value).
  • B. Truyền theo tham chiếu (pass-by-reference).
  • C. Truyền theo con trỏ.
  • D. Cả ba cách trên.

Câu 21: Để in ra giá trị của một biến kiểu `float` với 2 chữ số thập phân trong C, xâu định dạng nào sau đây được sử dụng trong hàm `printf()`?

  • A. `%f`
  • B. `%.2f`
  • C. `%d`
  • D. `%s`

Câu 22: Chỉ thị tiền xử lý `#define PI 3.14159` có tác dụng gì?

  • A. Khai báo một biến hằng số `PI` với giá trị 3.14159.
  • B. Nhập thư viện toán học chứa giá trị PI.
  • C. Thay thế tất cả các lần xuất hiện của `PI` bằng `3.14159` trong mã nguồn trước khi biên dịch.
  • D. Kiểm tra xem giá trị PI có đúng là 3.14159 hay không.

Câu 23: Trong ngôn ngữ C, toán tử `%` được gọi là toán tử gì?

  • A. Toán tử chia lấy thương.
  • B. Toán tử lũy thừa.
  • C. Toán tử phần trăm.
  • D. Toán tử chia lấy dư (modulo).

Câu 24: Để sử dụng các hàm nhập/xuất chuẩn trong C như `printf()` và `scanf()`, bạn cần khai báo thư viện nào?

  • A. `stdio.h`
  • B. `stdlib.h`
  • C. `math.h`
  • D. `string.h`

Câu 25: Xét đoạn mã C sau:
```c
int x = 5;
if (x = 10) {
printf(

  • A. `X is not ten`
  • B. `X is ten`
  • C. Lỗi biên dịch
  • D. Không có đầu ra

Câu 26: Trong ngôn ngữ C, từ khóa `typedef` được sử dụng để làm gì?

  • A. Khai báo một biến kiểu dữ liệu động.
  • B. Định nghĩa một hàm mới.
  • C. Tạo ra một tên gọi mới (bí danh) cho một kiểu dữ liệu đã tồn tại.
  • D. Kiểm tra kiểu dữ liệu của một biến.

Câu 27: Hàm `fopen()` trong C được sử dụng để làm gì?

  • A. Đọc dữ liệu từ file.
  • B. Ghi dữ liệu vào file.
  • C. Đóng một file đã mở.
  • D. Mở một file để đọc, ghi hoặc cả hai.

Câu 28: Mảng ký tự (char array) trong C thường được sử dụng để biểu diễn cái gì?

  • A. Số nguyên lớn.
  • B. Chuỗi ký tự (string).
  • C. Số thực dấu phẩy động.
  • D. Giá trị logic.

Câu 29: Trong C, lệnh `switch` thường được sử dụng thay thế cho cấu trúc điều khiển nào trong trường hợp có nhiều nhánh?

  • A. Vòng lặp `for`.
  • B. Vòng lặp `while`.
  • C. Cấu trúc `if-else if-else` (khi có nhiều điều kiện).
  • D. Hàm (function).

Câu 30: Để giải phóng bộ nhớ đã được cấp phát động bởi `malloc()`, hàm nào sau đây cần được sử dụng?

  • A. `free()`
  • B. `malloc()`
  • C. `realloc()`
  • D. `calloc()`

1 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Cơ Sở Lập Trình

Tags: Bộ đề 5

Câu 1: Dennis Ritchie và Ken Thompson đã phát triển hệ điều hành UNIX tại Bell Labs. Hệ điều hành này có ảnh hưởng lớn đến sự ra đời và phát triển của ngôn ngữ lập trình C như thế nào?

2 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Cơ Sở Lập Trình

Tags: Bộ đề 5

Câu 2: Đoạn mã C sau thực hiện phép toán gì trên biến `x`?

3 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Cơ Sở Lập Trình

Tags: Bộ đề 5

Câu 3: Trong ngôn ngữ C, kiểu dữ liệu `int` thường được sử dụng để lưu trữ số nguyên. Phạm vi giá trị của kiểu `int` phụ thuộc vào yếu tố nào?

4 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Cơ Sở Lập Trình

Tags: Bộ đề 5

Câu 4: Biến `count` được khai báo là `static int count = 0;` bên trong một hàm. Điều gì xảy ra với giá trị của `count` sau khi hàm kết thúc và được gọi lại lần nữa?

5 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Cơ Sở Lập Trình

Tags: Bộ đề 5

Câu 5: Xét đoạn mã C sau:
```c
int a = 10;
int *ptr = &a;
*ptr = 20;
printf("%d", a);
```
Giá trị nào sẽ được in ra màn hình?

6 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Cơ Sở Lập Trình

Tags: Bộ đề 5

Câu 6: Hàm `scanf("%d", &number);` được sử dụng để làm gì trong C?

7 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Cơ Sở Lập Trình

Tags: Bộ đề 5

Câu 7: Trong C, vòng lặp `for (int i = 0; i < 5; i++) { ... }` sẽ lặp lại khối lệnh bên trong bao nhiêu lần?

8 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Cơ Sở Lập Trình

Tags: Bộ đề 5

Câu 8: Hàm nào sau đây được sử dụng để cấp phát bộ nhớ động trong ngôn ngữ lập trình C?

9 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Cơ Sở Lập Trình

Tags: Bộ đề 5

Câu 9: Biểu thức `(a > b) ? a : b` trong C là một ví dụ về toán tử nào?

10 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Cơ Sở Lập Trình

Tags: Bộ đề 5

Câu 10: Để biên dịch một chương trình C có tên `hello.c` bằng trình biên dịch GCC, câu lệnh nào sau đây được sử dụng?

11 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Cơ Sở Lập Trình

Tags: Bộ đề 5

Câu 11: Trong ngôn ngữ C, kiểu dữ liệu nào sau đây được sử dụng để biểu diễn giá trị logic (đúng/sai)?

12 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Cơ Sở Lập Trình

Tags: Bộ đề 5

Câu 12: Hàm `strlen("Hello")` trong C sẽ trả về giá trị nào?

13 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Cơ Sở Lập Trình

Tags: Bộ đề 5

Câu 13: Thư viện chuẩn nào của C cung cấp các hàm toán học như `sqrt()`, `sin()`, `cos()`?

14 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Cơ Sở Lập Trình

Tags: Bộ đề 5

Câu 14: Đoạn mã C sau có lỗi gì?
```c
int main() {
int x = 10;
printf("%dn", y);
return 0;
}
```

15 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Cơ Sở Lập Trình

Tags: Bộ đề 5

Câu 15: Trong C, sự khác biệt chính giữa `struct` và `union` là gì?

16 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Cơ Sở Lập Trình

Tags: Bộ đề 5

Câu 16: Mục đích của tiền xử lý (preprocessor) trong quá trình biên dịch C là gì?

17 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Cơ Sở Lập Trình

Tags: Bộ đề 5

Câu 17: Kiểu dữ liệu `char` trong C thường chiếm bao nhiêu byte bộ nhớ?

18 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Cơ Sở Lập Trình

Tags: Bộ đề 5

Câu 18: Chức năng của toán tử `&` (address-of operator) trong C là gì?

19 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Cơ Sở Lập Trình

Tags: Bộ đề 5

Câu 19: Điều gì sẽ xảy ra nếu bạn cố gắng truy cập một phần tử mảng vượt quá kích thước đã khai báo trong C?

20 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Cơ Sở Lập Trình

Tags: Bộ đề 5

Câu 20: Trong C, cách truyền tham số nào cho hàm sẽ tạo ra bản sao của giá trị đối số trong hàm?

21 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Cơ Sở Lập Trình

Tags: Bộ đề 5

Câu 21: Để in ra giá trị của một biến kiểu `float` với 2 chữ số thập phân trong C, xâu định dạng nào sau đây được sử dụng trong hàm `printf()`?

22 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Cơ Sở Lập Trình

Tags: Bộ đề 5

Câu 22: Chỉ thị tiền xử lý `#define PI 3.14159` có tác dụng gì?

23 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Cơ Sở Lập Trình

Tags: Bộ đề 5

Câu 23: Trong ngôn ngữ C, toán tử `%` được gọi là toán tử gì?

24 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Cơ Sở Lập Trình

Tags: Bộ đề 5

Câu 24: Để sử dụng các hàm nhập/xuất chuẩn trong C như `printf()` và `scanf()`, bạn cần khai báo thư viện nào?

25 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Cơ Sở Lập Trình

Tags: Bộ đề 5

Câu 25: Xét đoạn mã C sau:
```c
int x = 5;
if (x = 10) {
printf("X is ten");
} else {
printf("X is not ten");
}
```
Đoạn mã trên sẽ in ra gì?

26 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Cơ Sở Lập Trình

Tags: Bộ đề 5

Câu 26: Trong ngôn ngữ C, từ khóa `typedef` được sử dụng để làm gì?

27 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Cơ Sở Lập Trình

Tags: Bộ đề 5

Câu 27: Hàm `fopen()` trong C được sử dụng để làm gì?

28 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Cơ Sở Lập Trình

Tags: Bộ đề 5

Câu 28: Mảng ký tự (char array) trong C thường được sử dụng để biểu diễn cái gì?

29 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Cơ Sở Lập Trình

Tags: Bộ đề 5

Câu 29: Trong C, lệnh `switch` thường được sử dụng thay thế cho cấu trúc điều khiển nào trong trường hợp có nhiều nhánh?

30 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Cơ Sở Lập Trình

Tags: Bộ đề 5

Câu 30: Để giải phóng bộ nhớ đã được cấp phát động bởi `malloc()`, hàm nào sau đây cần được sử dụng?

Xem kết quả