wayground logo

Free Printable Worksheets

NEW

Font size

S
M
L
XL
Worksheets

Câu Hỏi Trắc Nghiệm Về Con Trỏ và Mảng

Total questions: 27

Worksheet time: 14mins

Name
Class
Date
1.

Con trỏ là gì trong C?

a)

Một biến lưu giá trị của biến khác

b)

Một biến lưu địa chỉ của biến khác

c)

Một biến lưu kiểu dữ liệu của biến khác

d)

Một hàm trong C

2.

Câu lệnh khai báo con trỏ đúng là:

a)

int p*;

b)

*int p;

c)

int *p;

d)

pointer int p;

3.

Phép toán & trong C có ý nghĩa gì?

a)

Lấy giá trị biến

b)

Trả về địa chỉ của biến

c)

Tăng địa chỉ biến

d)

Gán giá trị cho biến

4.

Toán tử * khi dùng với con trỏ có tác dụng gì?

a)

Gán giá trị

b)

Tính địa chỉ

c)

Truy cập giá trị tại địa chỉ con trỏ

d)

Tăng biến con trỏ

5.

Để gán địa chỉ của biến a cho con trỏ p, ta dùng câu lệnh nào?

a)

p = a;

b)

p = &a;

c)

p = *a;

d)

p = address(a);

6.

Con trỏ NULL có giá trị bằng:

a)

-1

b)

1

c)

0

d)

255

7.

Phép cộng con trỏ p + 1 thực chất tăng địa chỉ p lên:

a)

1 byte

b)

Kích thước của kiểu dữ liệu mà p trỏ đến

c)

4 byte

d)

2 byte

8.

Phép trừ giữa hai con trỏ cùng kiểu cho ta:

a)

Địa chỉ mới

b)

Khoảng cách số phần tử

c)

Địa chỉ trung bình

d)

Giá trị tại địa chỉ

9.

Phép toán nào KHÔNG thực hiện được với con trỏ?

a)

So sánh ==

b)

Phép cộng +

c)

Phép chia /

d)

Phép trừ -

10.

Mảng một chiều là:

a)

Một danh sách phần tử có kiểu dữ liệu khác nhau

b)

Một vùng nhớ chứa nhiều phần tử cùng kiểu

11.

Mảng một chiều là:

a)

Một danh sách phần tử có kiểu dữ liệu khác nhau

b)

Một vùng nhớ chứa nhiều phần tử cùng kiểu

c)

Một bảng 2 chiều

d)

Một chuỗi ký tự

12.

Tên mảng thực chất là:

a)

Một con trỏ

b)

Một biến

c)

Một hàm

d)

Một hằng số

13.

Cấp phát động mảng một chiều dùng hàm nào?

a)

scanf()

b)

malloc()

c)

printf()

d)

free()

14.

Cú pháp cấp phát động cho mảng 1 chiều đúng là:

a)

pointer = malloc(size);

b)

pointer = (type*) malloc(sizeof(type) * size);

c)

malloc(pointer, size);

d)

malloc(type, size);

15.

Khi truyền mảng cho hàm, ta thực chất truyền:

a)

Bản sao của mảng

b)

Địa chỉ phần tử đầu tiên

c)

Địa chỉ phần tử cuối cùng

d)

Số lượng phần tử

16.

Khi dùng con trỏ duyệt chuỗi, cần chú ý:

a)

Chuỗi phải kết thúc bằng '\0'

b)

Không cần kết thúc bằng '\0'

c)

Chuỗi phải kết thúc bằng '\n'

d)

Chuỗi phải kết thúc bằng ' '

17.

Chuỗi trong C thực chất là:

a)

Một số nguyên

b)

Một dãy ký tự không có kết thúc

c)

Một mảng ký tự kết thúc bằng '\0'

d)

Một con trỏ NULL

18.

Để in chuỗi khi nhận tham số là con trỏ, ta dùng:

a)

printf("%c", str);

b)

printf("%d", str);

c)

printf("%s", str);

d)

scanf("%s", str);

19.

Con trỏ ký tự có thể dùng để:

a)

Truy cập từng ký tự của chuỗi

b)

Gán giá trị số

c)

So sánh chuỗi

20.

Con trỏ ký tự có thể dùng để:

a)

Truy cập từng ký tự của chuỗi

b)

Gán giá trị số

c)

So sánh chuỗi

d)

Cả A và C

21.

Mảng hai chiều trong C lưu trữ theo:

a)

Cột trước

b)

Hàng trước

c)

Tùy compiler

d)

Ngẫu nhiên

22.

Cú pháp khai báo mảng hai chiều:

a)

int a[2];

b)

int a[3][4];

c)

int[3,4] a;

d)

array int[3][4];

23.

Con trỏ đến mảng hai chiều được khai báo như thế nào?

a)

int *p[3];

b)

int (*p)[3];

c)

int *p(3);

d)

int p(3);

24.

Hàm malloc() trong cấp phát động trả về:

a)

Một số nguyên

b)

Một địa chỉ bộ nhớ

c)

Một con trỏ kiểu bất kỳ

d)

Một số thực

25.

Khi dùng malloc cấp phát động mảng 2 chiều, cần lưu ý:

a)

Khởi tạo vùng nhớ bằng 0

b)

Không cần giải phóng

c)

Phải dùng free() sau khi dùng xong

d)

Không cần quản lý bộ nhớ

26.

Khi dùng calloc() thay malloc(), sự khác biệt là:

a)

Không có khác biệt

b)

calloc() tự khởi tạo vùng nhớ bằng 0

c)

calloc() nhanh hơn

d)

malloc() an toàn hơn

27.

Để lưu mảng 2 chiều dưới dạng 1 chiều, phần tử [i][j] tương ứng với:

a)

a[i+n+j]

b)

a[i*n+j]

c)

a[i+j*n]

d)

a[i*j+n]