










Preview text:
File  Câu 1: 
Để làm việc với File trong C, thư viện nào cần được sử  dụng? A. stdlib.h  B. stdio.h  C. conio.h  D. string.h  Câu 2: 
Kiểu dữ liệu nào dùng để khai báo một biến File trong  C? A. file  B. FILE  C. FilePointer  D. TextFile  Câu 3: 
Câu lệnh nào sau đây là đúng để mở file “data.txt” ở chế độ ghi 
(write)? A. fopen("data.txt", "r");  B. fopen("data.txt", "w");  C. fopen("data.txt", "rw");  D. open("data.txt", "w");  Câu 4: 
Hàm nào được sử dụng để ghi một chuỗi vào file?  A. fread()  B. fgets()  C. fprintf()  D. fputs()  Câu 5: 
Hàm fclose(file); dùng để:  A. Xoá tệp tin 
B. Đóng file sau khi sử dụng  C. Mở lại file D. Dọn bộ nhớ RAM  Câu 6: 
Hàm nào dùng để đọc một ký tự từ file?  A. getchar()  B. fscanf()  C. fgetc()  D. getc()  Câu 7:  Giá trị trả về của 
khi mở file thất bại là  fopen()  gì? A. 0  B. 1  C. NULL  D. -1  Câu 8:  Chế độ  trong  "a"  nghĩa là gì?  fopen()  A. Ghi mới từ đầu file  B. Ghi đè toàn bộ file 
C. Ghi nối tiếp vào cuối file (append)  D. Chỉ đọc file  Câu 9: 
Lệnh nào ghi một dòng văn bản kèm định dạng vào  file? A. printf()  B. fprintf()  C. puts()  D. scanf()  Câu 10: 
Để đọc một dòng từ file và lưu vào chuỗi str, hàm nào nên 
dùng? A. fgets(str, size, file);  B. scanf("%s", str);  C. gets(str); D. fscanf(file, "%s", str); 
Câu 11: Hàm nào được sử dụng để mở một file trong C?  A. fopen()  B. fclose()  C. fscanf()  D. fwrite() 
Câu 12: Kết quả của đoạn code sau là gì nếu file "test.txt" không tồn tại?  #include  int main() { 
 FILE *fp = fopen("test.txt", "r");   if (fp == NULL) 
 printf("Khong mo duoc file");   else 
 printf("Mo file thanh cong");   return 0;  }  A. Mo file thanh cong  B. Khong mo duoc file  C. Lỗi biên dịch  D. Lỗi runtime 
Câu 13: Chế độ file nào dưới đây cho phép ghi dữ liệu vào cuối file mà không xóa nội dung  cũ? A. "w"  B. "r"  C. "a"  D. "r+" 
Câu 14: Hàm nào dưới đây được sử dụng để đóng một file trong C?  A. fopen()  B. fclose()  C. fseek()  D. feof() 
Câu 15: Kết quả của đoạn code sau là gì nếu "test.txt" chứa dòng "Hello"?  #include  int main() { 
 FILE *fp = fopen("test.txt", "r");  char ch = fgetc(fp);   printf("%c", ch);   fclose(fp);   return 0;  }  A. H  B. Hello  C. e  D. Lỗi biên dịch 
Câu 16: Hàm nào dưới đây được sử dụng để kiểm tra xem đã đọc đến cuối file hay  chưa? A. fseek()  B. feof()  C. fread()  D. fputs() 
Câu 17: Đoạn code sau có lỗi gì?  #include  int main() {   FILE *fp;   fputs("Hello", fp);   fclose(fp);   return 0;  }  A. Không có lỗi 
B. Chưa mở file trước khi ghi 
C. Thiếu thư viện string.h  D. Sai cú pháp fputs 
Câu 18: Kết quả của đoạn code sau là gì nếu file "data.txt" rỗng?  #include  int main() { 
 FILE *fp = fopen("data.txt", "w");   fputs("Hello World", fp);   fclose(fp);   return 0;  }
A. File data.txt chứa "Hello World"  B. File data.txt vẫn rỗng  C. Lỗi runtime  D. Lỗi biên dịch 
Câu 19: Hàm nào dưới đây được sử dụng để di chuyển con trỏ file đến một vị trí cụ  thể? A. fseek()  B. ftell()  C. rewind()  D. Cả A và C 
Câu 20: Kết quả của đoạn code sau là gì nếu file "test.txt" chứa "12345"?  #include  int main() { 
 FILE *fp = fopen("test.txt", "r");    num;  int   fscanf(fp,  , &num);  "%d"  printf("%d", num);   fclose(fp);   return 0;  }  A. 12345  B. 1  C. Lỗi biên dịch  D. Lỗi runtime  Cấu trúc  Câu 1: 
Từ khóa nào được dùng để khai báo một cấu trúc trong C?  A. structure  B. class  C. struct  D. object  Câu 2:
Câu khai báo nào sau đây là đúng? 
A. structure Person { char name[20]; int 
age; }; B. struct { name[20]; int age; }  Person; 
C. struct Person { char name[20]; int
age; }; D. Person struct { char name[20]; int age; };  Câu 3: 
Để khai báo biến sv1 của kiểu struct SinhVien, cách nào  đúng? A. sv1 SinhVien;  B. struct sv1 SinhVien;  C. struct SinhVien sv1;  D. SinhVien struct sv1;  Câu 4: 
Giả sử struct HocSinh { int tuoi; };, câu truy cập đúng  là: A. HocSinh.tuoi = 20;  B. HocSinh->tuoi = 20; 
C. hs.tuoi = 20; (với hs là biến kiểu struct)  D. hs[tuoi] = 20;  Câu 5: 
Muốn truy cập thành viên của con trỏ đến struct, ta dùng ký hiệu  nào? A. .  B. ->  C. *.  D. []  Câu 6: 
Câu nào sau đây đúng để khai báo mảng 100 sinh 
viên? A. struct SinhVien[100];  B. struct SinhVien sv[100];  C. SinhVien sv[100];  D. sv[100] struct SinhVien;  Câu 7:
Có thể truyền struct vào hàm bằng cách nào?  A. Truyền giá trị 
B. Truyền địa chỉ (con trỏ)  C. Cả A và B đều đúng 
D. Không thể truyền struct vào hàm  Câu 8: 
Cấu trúc có thể chứa thành viên là:  A. Mảng  B. Biến  C. Con trỏ  D. Tất cả đều đúng  Câu 9: 
Có thể định nghĩa struct lồng nhau không?  A. Có  B. Không  C. Chỉ khi dùng con trỏ  D. Chỉ trong C++  Câu 10: 
Giả sử có struct SV { char ten[20]; int tuoi; };, để nhập dữ liệu từ bàn phím cho biến sv1, lệnh nào đúng? 
A. scanf("%s %d", sv1.ten, &sv1.tuoi); 
B. scanf("%s %d", &sv1.ten, sv1.tuoi); 
C. scanf("%s %d", &sv1.ten, &sv1.tuoi); 
D. scanf("%s %d", sv1.ten, sv1.tuoi); 
Câu 11: Câu lệnh nào dưới đây khai báo một struct hợp lệ trong C?  A.  struct Point {    x;  int    y;  int  };  B. struct {    x;  int    y;  int  } Point;  C.  struct Point {    x, y;  int  };  D. Cả A và C 
Câu 12: Kết quả của đoạn code sau là gì?  #include  struct Point {    x;  int    y;  int  };  int main() {   struct  = { Point p  3, 4};   printf("%d", p.x);   return 0;  }  A. 3  B. 4  C. Lỗi biên dịch  D. 0 
Câu 13: Cách nào dưới đây là cách truy cập đúng một trường của 
struct? A. struct Point p; p.x = 5; 
B. struct Point p; p->x = 5;  C. struct Point *p; p.x = 5; 
D. struct Point *p; (*p)->x = 5; 
Câu 14: Đoạn code sau có lỗi gì?  #include  struct Point {   x;  int    y;  int  };  int main() {   Point p = {1, 2};   printf("%d %d", p.x, p.y);  return 0;  }  A. Không có lỗi 
B. Thiếu từ khóa struct khi khai báo biến  p C. Lỗi cú pháp printf  D. Thiếu khởi tạo cho p 
Câu 15: Kết quả của đoạn code sau là gì?  #include  typedef struct {    x;  int    y;  int  } Point;  int main() {   Point p = {5, 10};   p.y = 20;   printf("%d", p.y);   return 0;  }  A. 10  B. 20  C. 5  D. Lỗi biên dịch 
Câu 16: Struct trong C có thể chứa những 
gì? A. Các biến kiểu dữ liệu cơ bản  B. Các struct khác 
C. Con trỏ tới chính struct đó 
D. Tất cả các đáp án trên 
Câu 17: Kết quả của đoạn code sau là gì? #include  struct Student {   char name[50];    age;  int  };  int main() { 
 struct Student s = {"Alice", 20}; 
 printf("%s %d", s.name, s.age);   return 0;  }