Trong các khai báo con trỏ sau, những khai báo nào là đúng:
A -
int A*;
B -
*int A;
C -
int* A, B;
D -
int* A, *B;
2-
Với khai báo: int a = 12; int *pa; Các phép gán nào sau đây là hợp lệ:
A -
pa = &a;
B -
*pa = a;
C -
Tất cả đều đúng
D -
Tất cả đều sai
3-
Với khai báo: int A[5] = {10, 20, 30, 40, 50}; int *pa = A+2; Khi đó, *pa = ?
A -
5
B -
10
C -
20
D -
30
4-
Với đoạn chương trình: int A[5] = {10, 20, 30, 40, 50}; int *pa = A; *pa += 2; Khi đó, *pa = ?
A -
10
B -
12
C -
30
D -
32
5-
Với đoạn chương trình: int A[5] = {10, 20, 30, 40, 50}; int *pa = A; pa += 2; Khi đó, *pa = ?
A -
10
B -
12
C -
30
D -
32
6-
Với đoạn chương trình: int A[5] = {10, 20, 30, 40, 50}; int *pa = A; pa += 2; Khi đó, pa = ?
A -
&A[0]
B -
A[2]
C -
&A[2]
D -
Không xác định
7-
Với đoạn chương trình: int A[5] = {10, 20, 30, 40, 50}; int *pa = A; pa -= 2; Khi đó, pa = ?
A -
&A[0]
B -
&A[2]
C -
&A[4]
D -
Không xác định
8-
Với đoạn chương trình: int A[3][3] = { {10, 20, 30}, {40, 50, 60}, {70, 80, 90} }; int *pa; Khi đó, để có được kết quả *pa = 50, các lệnh nào sau đây là đúng?
A -
pa = A + 4;
B -
pa = (*(A+1)) + 1;
C -
pa =*(&A[1][1]; )
D -
pa = *((*(A+1)) + 1);
9-
Giả sử ta khai báo một hàm có sử dụng con trỏ hàm với khuôn mẫu như sau: int Calcul(int a, int b, int (*Xcalcul)(int x, int y)){} Và ta có cài đặt một số hàm như sau: int add(int a, int b); void cal(int a, int b); int squere(int a); Khi đó, lời gọi hàm nào sau đây là đúng:
A -
Calcul(5, 10, add);
B -
Calcul(5, 10, add(2, 3));
C -
Calcul(5, 10, cal);
D -
Calcul(5, 10, squere);
10-
Ta muốn cấp phát bộ nhớ cho một con trỏ kiểu int và khởi đầu giá trị cho nó là 20.
Lệnh nào sau đây là đúng: