NEW
Font size
WorksheetsCâu Hỏi Trắc Nghiệm Về Con Trỏ và Mảng
Total questions: 27
Worksheet time: 14mins
Con trỏ là gì trong C?
Một biến lưu giá trị của biến khác
Một biến lưu địa chỉ của biến khác
Một biến lưu kiểu dữ liệu của biến khác
Một hàm trong C
Câu lệnh khai báo con trỏ đúng là:
int p*;
*int p;
int *p;
pointer int p;
Phép toán & trong C có ý nghĩa gì?
Lấy giá trị biến
Trả về địa chỉ của biến
Tăng địa chỉ biến
Gán giá trị cho biến
Toán tử * khi dùng với con trỏ có tác dụng gì?
Gán giá trị
Tính địa chỉ
Truy cập giá trị tại địa chỉ con trỏ
Tăng biến con trỏ
Để gán địa chỉ của biến a cho con trỏ p, ta dùng câu lệnh nào?
p = a;
p = &a;
p = *a;
p = address(a);
Con trỏ NULL có giá trị bằng:
-1
1
0
255
Phép cộng con trỏ p + 1 thực chất tăng địa chỉ p lên:
1 byte
Kích thước của kiểu dữ liệu mà p trỏ đến
4 byte
2 byte
Phép trừ giữa hai con trỏ cùng kiểu cho ta:
Địa chỉ mới
Khoảng cách số phần tử
Địa chỉ trung bình
Giá trị tại địa chỉ
Phép toán nào KHÔNG thực hiện được với con trỏ?
So sánh ==
Phép cộng +
Phép chia /
Phép trừ -
Mảng một chiều là:
Một danh sách phần tử có kiểu dữ liệu khác nhau
Một vùng nhớ chứa nhiều phần tử cùng kiểu
Mảng một chiều là:
Một danh sách phần tử có kiểu dữ liệu khác nhau
Một vùng nhớ chứa nhiều phần tử cùng kiểu
Một bảng 2 chiều
Một chuỗi ký tự
Tên mảng thực chất là:
Một con trỏ
Một biến
Một hàm
Một hằng số
Cấp phát động mảng một chiều dùng hàm nào?
scanf()
malloc()
printf()
free()
Cú pháp cấp phát động cho mảng 1 chiều đúng là:
pointer = malloc(size);
pointer = (type*) malloc(sizeof(type) * size);
malloc(pointer, size);
malloc(type, size);
Khi truyền mảng cho hàm, ta thực chất truyền:
Bản sao của mảng
Địa chỉ phần tử đầu tiên
Địa chỉ phần tử cuối cùng
Số lượng phần tử
Khi dùng con trỏ duyệt chuỗi, cần chú ý:
Chuỗi phải kết thúc bằng '\0'
Không cần kết thúc bằng '\0'
Chuỗi phải kết thúc bằng '\n'
Chuỗi phải kết thúc bằng ' '
Chuỗi trong C thực chất là:
Một số nguyên
Một dãy ký tự không có kết thúc
Một mảng ký tự kết thúc bằng '\0'
Một con trỏ NULL
Để in chuỗi khi nhận tham số là con trỏ, ta dùng:
printf("%c", str);
printf("%d", str);
printf("%s", str);
scanf("%s", str);
Con trỏ ký tự có thể dùng để:
Truy cập từng ký tự của chuỗi
Gán giá trị số
So sánh chuỗi
Con trỏ ký tự có thể dùng để:
Truy cập từng ký tự của chuỗi
Gán giá trị số
So sánh chuỗi
Cả A và C
Mảng hai chiều trong C lưu trữ theo:
Cột trước
Hàng trước
Tùy compiler
Ngẫu nhiên
Cú pháp khai báo mảng hai chiều:
int a[2];
int a[3][4];
int[3,4] a;
array int[3][4];
Con trỏ đến mảng hai chiều được khai báo như thế nào?
int *p[3];
int (*p)[3];
int *p(3);
int p(3);
Hàm malloc() trong cấp phát động trả về:
Một số nguyên
Một địa chỉ bộ nhớ
Một con trỏ kiểu bất kỳ
Một số thực
Khi dùng malloc cấp phát động mảng 2 chiều, cần lưu ý:
Khởi tạo vùng nhớ bằng 0
Không cần giải phóng
Phải dùng free() sau khi dùng xong
Không cần quản lý bộ nhớ
Khi dùng calloc() thay malloc(), sự khác biệt là:
Không có khác biệt
calloc() tự khởi tạo vùng nhớ bằng 0
calloc() nhanh hơn
malloc() an toàn hơn
Để 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[i+n+j]
a[i*n+j]
a[i+j*n]
a[i*j+n]
