Câu 1:
Hàm trong ngôn ngữ C gì?
A. Một biến đặc biệt
B. Một cấu trúc điều kiện
C. Một khối lệnh thực hiện công việc cụ thể, thể được gọi nhiều
lần D. Một vòng lặp
Câu 2:
Từ khóa nào được dùng để khai báo hàm trong C?
A. define
C. void, int, float, v.v. (tùy thuộc kiểu trả về)
D. fun
Câu 3:
Hàm main() trong C vai trò gì?
A. Lưu trữ dữ liệu
B. nơi bắt đầu thực thi chương trình
C. thư viện chuẩn
D. Không bắt buộc phải
Câu 4:
Câu khai báo hàm nào sau đây đúng trong C?
A. int sum(int a, b)
B. function sum(int a, int b)
C. int sum(int a, int b);
D. sum(int a, int b)
Câu 5:
Đâu lời gọi hàm đúng với m khai báo như sau: int add(int x, int
y);? A. add(x, y);
B. add();
C. add(int x, int y);
D. int add = (x, y);
Câu 6:
Hàm không trả về giá trị sẽ kiểu trả về gì?
A. int
B. null
C. void
D. empty
Câu 7:
Đâu mục đích của từ khóa return trong
hàm? A. Đưa ra kết quả của m kết thúc
hàm B. Thoát khỏi vòng lặp
C. Gọi một hàm khác
D. Dừng chương trình
Câu 8:
Đoạn sau in ra gì?
int square(int x) {
return x * x;
}
int main() {
printf("%d", square(3));
return 0;
}
A. 3
B. 6
C. 9
D. Không in
Câu 9:
Tham số truyền theo giá trị trong hàm nghĩa
gì? A. Truyền địa chỉ của biến gốc
B. Thay đổi biến gốc
C. Truyền bản sao của giá trị
D. Không truyền cả
Câu 10:
Tại sao nên sử dụng hàm trong lập trình
C? A. Giảm kích thước chương trình
B. Tăng tính lặp lại tổ chức mã tốt
hơn C. Làm chương trình chạy nhanh
hơn
D. Không lợi ích ràng
Câu 11: pháp nào sau đây đúng để khai báo một hàm trong
C? A. int functionName() {}
B. functionName int() {}
C. void functionName {}
D. int functionName[] {}
Câu 12: Kết quả của đoạn code sau gì?
#include <stdio.h>
int int int add( a, b) {
return a + b;
}
int main() {
printf("%d", add( , )); 3 4
return 0;
}
A. 7
B. 34
C. 0
D. Lỗi biên dịch
Câu 13: Hàm nào sau đây không trả về giá trị?
A. int func() { return 0; }
B. void func() {}
C. float func() { return 1.0; }
D. char func() { return 'a'; }
Câu 14: Kết quả của đoạn code sau gì?
#include <stdio.h>
void int int swap( a, b) {
int temp = a;
a = b;
b = temp;
}
int main() {
int x = , y = ; 5 10
swap(x, y);
printf("%d %d", x, y);
return 0;
}
A. 10 5
B. 5 10
C. Lỗi biên dịch
D. 0 0
Câu 15: Để truyền tham số theo tham chiếu trong C, ta sử dụng
gì? A. Biến toàn cục
B. Con trỏ
C. Mảng
D. Kiểu void
Câu 16: Kết quả của đoạn code sau gì?
#include <stdio.h>
int int square( *n) {
*n = (*n) * (*n);
return *n;
}
int main() {
int num = ; 4
printf("%d", square(&num));
return 0;
}
A. 16
B. 4
C. 0
D. Lỗi biên dịch
Câu 17: Hàm main trong C kiểu trả về mặc định nếu không khai báo
ràng? A. void
B. int
C. float
D. char
Câu 18: Kết quả của đoạn code sau gì?
#include <stdio.h>
int int factorial( n) {
if return (n == ) 0 1;
return n * factorial(n - ); 1
}
int main() {
printf("%d", factorial( )); 3
return 0;
}
A. 6
B. 3
C. 1
D. Lỗi biên dịch
Câu 19: Đoạn code sau lỗi gì?
#include <stdio.h>
int int func( x) {
return x + ; 1
}
int main() {
printf("%d", func());
return 0;
}
A. Thiếu tham số khi gọi hàm
func B. Hàm func không trả về g
trị C. Thiếu khai báo hàm func
D. Không lỗi
Câu 20: Kết quả của đoạn code sau gì?
#include <stdio.h>
void printMessage() {
printf("Hello ");
}
int main() {
printMessage();
printMessage();
return 0;
}
A. Hello
B. Hello Hello
C. Lỗi biên dịch
D. Không in
Câu 21: Con trỏ trong C gì?
A. Một biến lưu chuỗi tự
B. Một biến lưu địa chỉ của biến khác
C. Một kiểu hàm
D. Một loại vòng lặp
Câu 22:
hiệu nào dùng để khai báo con trỏ?
A. &
B. *
C. @
D. %
Câu 23:
Giả sử int a = 10;, câu lệnh nào khai báo đúng con trỏ trỏ tới
a? A. int *p = &a;
B. int p = *a;
C. int &p = *a;
D. *int p = a;
Câu 42:
Toán tử & trong C được dùng để làm ?
A. Truy cập nội dung tại địa chỉ
B. Gán địa chỉ cho biến
C. Lấy địa chỉ của biến
D. Tạo ra biến mới
Câu 25:
Toán tử * trong ngữ cảnh con trỏ tác dụng
gì? A. Nhân hai giá trị
B. Gán địa chỉ
C. Truy cập giá trị tại địa chỉ con trỏ đang trỏ
tới D. Lấy địa chỉ của biến
Câu 26:
int a = 5;
int *p = &a;
Giá trị của *p là:
A. Địa chỉ của a
B. 5
C. Lỗi
D. Không xác định
Câu 27:
int a = 5;
int *p = &a;
*p = 10;
Sau đoạn trên, giá trị của a là:
A. 5
B. 10
C. Không thay đổi
D. Không xác định
Câu 28:
Khai báo nào sau đây đúng để tạo con trỏ đến kiểu
float? A. float *p;
B. *float p;
C. pointer float p;
D. float p*;
Câu 29:
Con trỏ NULL gì?
A. Con trỏ trỏ đến biến rỗng
B. Con trỏ không trỏ đến địa chỉ hợp lệ nào
C. Con trỏ chứa giá trị 0
D. Cả B C đều đúng
Câu 30:
Đâu lợi ích của việc sử dụng con trỏ trong
C? A. Truy cập trực tiếp bộ nhớ
B. Truyền tham chiếu cho hàm
C. Quản mảng chuỗi linh hoạt
D. Tất cả đều đúng
Câu 31: Con trỏ trong C gì?
A. Một kiểu dữ liệu nguyên thủy
B. Một biến chứa giá trị của một biến khác
C. Một biến chứa địa chỉ bộ nhớ của một biến
khác D. Một hàm trả về địa ch
Câu 32: Kết quả của đoạn code sau gì?
#include <stdio.h>
int main() {
int x = ; 10
int *p = &x;
printf("%d", *p);
return 0;
}
A. 10
B. Địa chỉ của x
C. Lỗi biên dịch
D. 0
Câu 33: pháp nào sau đây khai báo một con trỏ hợp
lệ? A. int p;
B. int *p;
C. int &p;
D. int p*;
Câu 34: Kết quả của đoạn code sau gì?
#include <stdio.h>
int main() {
int x = ; 5
int *p = &x;
*p = ; 20
printf("%d", x);
return 0;
}
A. 5
B. 20
C. Địa chỉ của x
D. Lỗi biên dịch
Câu 35: Đoạn code sau lỗi gì?
#include <stdio.h>
int main() {
int *p;
*p = ; 100

Preview text:

Câu 1:
Hàm trong ngôn ngữ C là gì? A. Một biến đặc biệt
B. Một cấu trúc điều kiện
C. Một khối lệnh thực hiện công việc cụ thể, có thể được gọi nhiều lần D. Một vòng lặp Câu 2:
Từ khóa nào được dùng để khai báo hàm trong C? A. define B. function
C. void, int, float, v.v. (tùy thuộc kiểu trả về) D. fun Câu 3:
Hàm main() trong C có vai trò gì? A. Lưu trữ dữ liệu
B. Là nơi bắt đầu thực thi chương trình C. Là thư viện chuẩn
D. Không bắt buộc phải có Câu 4:
Câu khai báo hàm nào sau đây là đúng trong C? A. int sum(int a, b) B. function sum(int a, int b) C. int sum(int a, int b); D. sum(int a, int b) Câu 5:
Đâu là lời gọi hàm đúng với hàm khai báo như sau: int add(int x, int y);? A. add(x, y); B. add(); C. add(int x, int y); D. int add = (x, y); Câu 6:
Hàm không trả về giá trị sẽ có kiểu trả về là gì? A. int B. null C. void D. empty Câu 7:
Đâu là mục đích của từ khóa return trong
hàm? A. Đưa ra kết quả của hàm và kết thúc
hàm B. Thoát khỏi vòng lặp C. Gọi một hàm khác D. Dừng chương trình Câu 8: Đoạn mã sau in ra gì? int square(int x) { return x * x; } int main() { printf("%d", square(3)); return 0; } A. 3 B. 6 C. 9 D. Không in gì Câu 9:
Tham số truyền theo giá trị trong hàm nghĩa là
gì? A. Truyền địa chỉ của biến gốc B. Thay đổi biến gốc
C. Truyền bản sao của giá trị D. Không truyền gì cả Câu 10:
Tại sao nên sử dụng hàm trong lập trình
C? A. Giảm kích thước chương trình
B. Tăng tính lặp lại và tổ chức mã tốt
hơn C. Làm chương trình chạy nhanh hơn
D. Không có lợi ích rõ ràng
Câu 11: Cú pháp nào sau đây là đúng để khai báo một hàm trong C? A. int functionName() {} B. functionName int() {} C. void functionName {} D. int functionName[] {}
Câu 12: Kết quả của đoạn code sau là gì? #include int add(int a, int b) { return a + b; } int main() { printf("%d", add( , 3 )); 4 return 0; } A. 7 B. 34 C. 0 D. Lỗi biên dịch
Câu 13: Hàm nào sau đây không trả về giá trị? A. int func() { return 0; } B. void func() {}
C. float func() { return 1.0; }
D. char func() { return 'a'; }
Câu 14: Kết quả của đoạn code sau là gì? #include void swap(int a, int b) { int temp = a; a = b; b = temp; } int main() { int x = , y = 5 10; swap(x, y); printf("%d %d", x, y); return 0; } A. 10 5 B. 5 10 C. Lỗi biên dịch D. 0 0
Câu 15: Để truyền tham số theo tham chiếu trong C, ta sử dụng gì? A. Biến toàn cục B. Con trỏ C. Mảng D. Kiểu void
Câu 16: Kết quả của đoạn code sau là gì? #include int square(int *n) { *n = (*n) * (*n); return *n; } int main() { int num = ; 4
printf("%d", square(&num)); return 0; } A. 16 B. 4 C. 0 D. Lỗi biên dịch
Câu 17: Hàm main trong C có kiểu trả về mặc định là gì nếu không khai báo rõ ràng? A. void B. int C. float D. char
Câu 18: Kết quả của đoạn code sau là gì? #include int factorial(int n) { if (n == ) 0 return 1; return n * factorial(n - ); 1 } int main() { printf("%d", factorial( )); 3 return 0; } A. 6 B. 3 C. 1 D. Lỗi biên dịch
Câu 19: Đoạn code sau có lỗi gì? #include int func(int x) { return x + ; 1 } int main() { printf("%d", func()); return 0; }
A. Thiếu tham số khi gọi hàm
func B. Hàm func không trả về giá
trị C. Thiếu khai báo hàm func D. Không có lỗi
Câu 20: Kết quả của đoạn code sau là gì? #include void printMessage() { printf("Hello "); } int main() { printMessage(); printMessage(); return 0; } A. Hello B. Hello Hello C. Lỗi biên dịch D. Không in gì
Câu 21: Con trỏ trong C là gì?
A. Một biến lưu chuỗi ký tự
B. Một biến lưu địa chỉ của biến khác C. Một kiểu hàm D. Một loại vòng lặp Câu 22:
Ký hiệu nào dùng để khai báo con trỏ? A. & B. * C. @ D. % Câu 23:
Giả sử int a = 10;, câu lệnh nào khai báo đúng con trỏ trỏ tới a? A. int *p = &a; B. int p = *a; C. int &p = *a; D. *int p = a; Câu 42:
Toán tử & trong C được dùng để làm gì?
A. Truy cập nội dung tại địa chỉ
B. Gán địa chỉ cho biến
C. Lấy địa chỉ của biến D. Tạo ra biến mới Câu 25:
Toán tử * trong ngữ cảnh con trỏ có tác dụng gì? A. Nhân hai giá trị B. Gán địa chỉ
C. Truy cập giá trị tại địa chỉ con trỏ đang trỏ
tới D. Lấy địa chỉ của biến Câu 26: int a = 5; int *p = &a; Giá trị của *p là: A. Địa chỉ của a B. 5 C. Lỗi D. Không xác định Câu 27: int a = 5; int *p = &a; *p = 10;
Sau đoạn mã trên, giá trị của a là: A. 5 B. 10 C. Không thay đổi D. Không xác định Câu 28:
Khai báo nào sau đây là đúng để tạo con trỏ đến kiểu float? A. float *p; B. *float p; C. pointer float p; D. float p*; Câu 29: Con trỏ NULL là gì?
A. Con trỏ trỏ đến biến rỗng
B. Con trỏ không trỏ đến địa chỉ hợp lệ nào
C. Con trỏ chứa giá trị 0 D. Cả B và C đều đúng Câu 30:
Đâu là lợi ích của việc sử dụng con trỏ trong
C? A. Truy cập trực tiếp bộ nhớ
B. Truyền tham chiếu cho hàm
C. Quản lý mảng và chuỗi linh hoạt D. Tất cả đều đúng
Câu 31: Con trỏ trong C là gì?
A. Một kiểu dữ liệu nguyên thủy
B. Một biến chứa giá trị của một biến khác
C. Một biến chứa địa chỉ bộ nhớ của một biến
khác D. Một hàm trả về địa chỉ
Câu 32: Kết quả của đoạn code sau là gì? #include int main() { int x = 10; int *p = &x; printf("%d", *p); return 0; } A. 10 B. Địa chỉ của x C. Lỗi biên dịch D. 0
Câu 33: Cú pháp nào sau đây khai báo một con trỏ hợp lệ? A. int p; B. int *p; C. int &p; D. int p*;
Câu 34: Kết quả của đoạn code sau là gì? #include int main() { int x = ; 5 int *p = &x; *p = 20; printf("%d", x); return 0; } A. 5 B. 20 C. Địa chỉ của x D. Lỗi biên dịch
Câu 35: Đoạn code sau có lỗi gì? #include int main() { int *p; *p = 100;