Đề cương ôn tập – Bài 2FREELập Trình C 1. Phát biểu nào sau là đúng khi nói về hàm fgets()? C. Khi dùng hàm nếu gặp kí tự xuống dòng thì kí tự mã số 10 sẽ được thêm vào cuối xâu được đọc A. Hàm đọc 1 kí tự từ tệp, nếu thành công hàm cho mã đọc được D. Khi dùng hàm, nếu gặp kí tự xuống dòng, thì kí tự mã số 10 và 13 sẽ được thêm vào cuối xâu được đọc B. Hàm đọc 1 dãy kí tự từ tệp để lưu vào vùng nhớ mới 2. Đâu là kết quả của câu lệnh sau? C. 123 D. 123 B. 123 A. 123 3. Dấu hiệu nào là đúng khi sử dụng hàm fputs();? D. int puts(FILE *f); B. int puts( const char *s); A. int puts(const char *s, FILE *f); C. int puts(FILE *f, const char *s); 4. Kết quả của chương trình sau là gì? A. 1 C. True D. Kết quả khác B. 0 5. Một số tác vụ sau sẽ được áp dụng để kiểm tra xem một số nguyên là lẻ hay chẵn? D. 1,5,3,4,2,6 C. 1,2,5,3,4,6 B. 1,5,4,3,2,6 A. 1,2,3,4,5,6 6. Đoạn code nào sẽ hoán vị 2 số a và b? D. t=b; b=a; a=t; C. a=t; b=a; t=b; A. t=a; a=b; b=t; B. t=a; a=b; t=b; 7. f là con trỏ trỏ đến tệp nhị phân DATA chứa không quá 100 bản ghi( kiểu cấu trúc) liền nhau. Cho khai báo. Đoạn chương trình nào sau đây đọc toàn bộ các bảng ghi trong DATA vào x? C. A và B đúng D. A và B sai B. fseek(f,0,SEEK_END); n=ftell(f)/sizeof(T); fseek(f,0,SEEK_SET); fread(x, sizeof(T), n, f); fclose(f); A. fread(x+i++, sizeof(T), 1, f ); while (!feof(f)) fread(x+i++, sizeof(T), 1, f); fclose(f); 8. Toán tử “++n” được hiểu? B. Giá trị n giảm đi trước khi giá trị của nó được sử dụng A. Giá trị n giảm đi sau khi giá trị của nó được sử dụng D. Giá trị của n được tăng lên trước khi giá trị của nó được sử dụng C. Giá trị của n được tăng sau khi giá trị của nó được sử dụng 9. Kết quả của chương trình sau là gì? D. In ra màn hình các số từ 1 đến 24, mỗi số một dòng A. In ra màn hình các số từ 1 đến 24 C. Kết quả khác B. Lỗi khi xây dựng chương trình 10. Phép trừ 1 con trỏ với một số nguyên sẽ là? D. Cả hai kết quả trên đều sai C. Cả hai kết quả trên đều đúng A. Một số nguyên B. Một con trỏ cùng kiểu 11. Nghiên cứu đoạn code sau. Hãy chọn câu đúng? D. Đoạn code này sẽ đọc một trị từ file “FL B. Đoạn code không lỗi A. Đoạn code gây lỗi C. Đoạn code này sẽ ghi trị 7 lên file “FL 12. Hàm nào dưới đây chỉ dùng để ghi một kí tự vào tệp? A. putch(); B. puts(); C. fputs(); D. fputc(); 13. Hàm nào trả lại kích thước của một tệp được mở? A. long filelength(int the_file); B. double filelength(int the_file); D. Không có đáp án nào đúng C. int filelength(int the_file); 14. Giả sử tệp DATA chứa 5 byte: “70, 26, 13, 10, 44”. Cho đoạn lệnh. Hãy cho biết kết quả của đoạn chương trình trên? C. “70, 26, 10, 44” A. “70, 26, 13, 13, 10, 44” B. “70, 26, 13, 10, 44” D. Đoạn lệnh có lỗi 15. Kết quả của chương trình sau là gì? B. 4 A. 0 D. Vòng lặp vô hạn C. 5 16. Chọn câu đúng nhất trong các câu sau đây? C. Khi đọc kí tự có mã OD từ file văn bản thì C sẽ bỏ qua D. A, B, C đều đúng B. Khi đọc file văn bản, cả hai kí tự OD và OA sẽ được C đọc thành 1 kí tự có mã OA A. Khi đọc kí tự có mã 1A từ file văn bản, C sẽ đọc thành kí tự có mã -1 17. Hàm gotoxy(int x, int y) là hàm? C. Lưu dữ tọa độ của con trỏ màn hình cột x, dòng y B. Đặt con trỏ tại cột x, dòng y D. Lưu dữ tọa độ của con trỏ màn hình dòng x, cột y A. Đặt con trỏ tại dòng x, cột y 18. Cho đoạn chương trình sau. Yêu cầu của đoạn chương trình trên là? A. Nhập vào 1 kí tự cho đến khi gặp kí tự ‘*’ C. Nhập các kí tự ‘*’ D. Lỗi khi xây dựng chương trình B. Nhập vào các kí tự cho tới khi gặp kí tự ‘*’ 19. Hàm nào dưới đây chỉ dùng để ghi 1 xâu kí tự vào tệp? D. fputs(); C. fputc(); A. putch(); B. puts(); 20. Giá trị lôgic của biểu thức sau là gì: !(1&&1||1&&0);? D. Không câu nào đúng B. 0 C. -1 A. 1 21. Hàm nào dưới đây chỉ dùng để ghi một khối dữ liệu vào file? A. fgets(); C. fwrite(); D. fread(); B. fputs(); 22. Các kí hiệu đặc trưng cho sự tác động lên dữ liệu được gọi là? D. Biến C. Hàm B. Biểu thức A. Toán tử 23. Lệnh fflush(stdin) dùng để làm gì? A. Đọc kí tự từ bàn phím D. Kết quả khác C. Xóa bộ nhớ đệm B. Xóa sạch bộ nhớ đệm 24. Kết quả của đoạn chương trình sau là gì? Nếu gõ vào: “r 45”? D. Kết quả khác B. n=45, c=’r’ A. n=45, c=’ ‘ C. Lỗi khi xây dựng chương trình 25. Dấu hiệu nào là đúng khi sử dụng hàm fopen() để mở một file đã tồn tại đọc theo kiểu nhị phân? D. f=fopen(“du_lieu”,”a+b”); B. f=fopen(“du_lieu”,”r+b”); C. f=fopen(“du_lieu”,”a+t”); A. f=fopen(“du_lieu”,”r”); 26. Nếu địa chỉ của S là 1000, thì giá trị của p là bao nhiêu? C. 1003 A. 1000 B. 1005 D. Kết quả khác 27. Định dạng nào dưới đây dùng để hiển thị một số thực? C. “%i” A. “%f” D. “%float” B. “%u” 28. Phát biểu nào sau đây là sai khi nói đến tập tin? C. “C:\tm\TEN A. Tập tin là dữ liệu đã hoàn tất được lưu trong bộ nhớ ngoài bởi người dùng hay một chương trình B. Hệ điều hành nhận biết một tập tin nhờ vào tên đầy đủ của nó gồm đường dẫn và tên tập tin D. “C:/tm/TEN 29. Hàm nào dưới đây chỉ dùng để đọc 1 kí tự từ tệp? C. fgetc(); A. getch(); B. fscanf(); D. scanf(); 30. Chọn biểu thức biểu diễn num là số nằm giữa 1 và 9 nhưng khônh phải là 4? B. num>1||num<9&&num!=4; D. Không câu nào đúng A. num>1&&num<9&&num!=4; C. num>=1&&num<=9&&num!=4; 31. Câu lệnh sau có ý nghĩa gì? A. Mở tệp nhị phân để ghi C. Mở tệp nhị phân để ghi mới D. Mở tệp nhị phân để đọc B. Mở tệp nhị phân đã có và ghi thêm dữ liệu nối tiếp vào tệp này 32. Một số tác vụ sau sẽ được dùng để kiểm tra một số nguyên là lẻ hay chẵn? B. 1, 5, 4, 3, 2, 6 D. 1, 5, 3, 4, 2, 6 A. 1, 2, 3, 4, 5, 6 C. 1, 2, 5, 3, 4, 6 33. Kết quả in ra màn hình của chương trình sau? D. Kết quả khác B. “D” A. “d” C. “100” 34. Kết quả của đoạn chương trình sau là gì? Nếu gõ vào: “r 45”? B. n=45, c=’r’ A. n=45, c=’ ‘ D. Kết quả khác C. Lỗi khi xây dựng chương trình 35. Nếu strcmp(S1,S2) trả về số nguyên âm thì? C. Nội dung chuỗi S1 bằng nội dung chuỗi S2 B. Nội dung chuỗi S1 nhỏ hơn nội dung chuỗi S2 A. Nội dung của chuỗi S1 lớn hơn nội dung chuỗi S2 D. Dữ liệu nhập vào không đúng định dạng 36. Giả sử f là con trỏ tệp nhị phân. Để đọc từ f cho biến x kiểu int, ta có thể dùng? B. fread(&x,sizeof(int),1,f); C. getw(f); D. B và C đúng A. fscanf(f,”%d”,x); 37. Hàm nào dưới đây dùng để ghi 1 xâu kí tự vào tệp? B. fputc(); A. putch(); C. fputs(); D. puts(); 38. Phát biểu nào sau đây là đúng khi nói về chế độ truyền? B. 1 và 3 A. 1 và 2 D. 2 và 4 C. 2 và 3 39. Khai báo hàm tính tổng các phần tử trong một mảng các số nguyên dưới đây, khai báo nào đúng? B. long Sum( int *a); C. void Sum(int a[], int n); D. Cả 3 phương án trên đều sai A. void Sum( int a[]); 40. Lệnh nào trong các lệnh sau cho phép nhảy ra khỏi vòng lặp đến vị trí bất kì mong muốn? C. goto; B. continue; D. Không có phương án nào A. break; 41. Kết quả của chương trình sau là gì? B. 5 A. 0 C. Vòng lặp vô hạn D. Kết quả khác 42. Một biến phải bắt đầu với? C. Một kí tự kiểu số D. Một toán tử như: +, -… B. Một dấu gạch dưới A. Một kí tự thường như các chữ cái hoặc dấu gạch dưới 43. Hàm nào dưới đây chỉ dùng để chuyển con trỏ về vị trí đầu tệp? A. fseek(); B. rewind(); C. ftell(); D. seek(); 44. Đâu là phát biểu đúng nhất về biến động? D. Tất cả các đáp án trên C. Sau khi sử dụng có thể giải phóng đi để tiết kiệm chỗ trong bộ nhớ B. Khi chạy chương trình, kích thước vùng biến, vùng nhớ và địa chỉ vùng nhớ có thể thay đổi A. Chỉ phát sính trong quá trình thực hiện chương trình 45. Mảng là? A. Một nhóm phần tử có cùng kiểu và chung tên gọi B. Một nhóm phần tử có thể có kiểu riêng và chung tên gọi D. Là một kiểu dữ liệu cơ sở đã định sẵn của ngôn ngữ lập trình C C. Một nhóm phần tử có thể có kiểu riêng và tên gọi riêng cho mỗi phần tử 46. Đâu là kết quả của đoạn mã sau? D. Kết quả khác B. 12000 C. Đoạn mã bị lỗi A. 24000 47. Các định dạng nào sau đâu có thể sử dụng để xuất số nguyên không dấu? B. “%unsigned” C. “%i” D. “%u” A. “%d” 48. Kết quả của chương trình sau là gì? D. Kết quả khác A. Nhập vào một kí tự thường, sau đó chuyển sang chữ hoa rồi in ra màn hình B. Nhập một kí tự hoa, sau đó chuyển sang chữ thường rồi in ra màn hình C. 1 và 2 49. Kích thước của mảng là? D. Cả hai câu trên đều sai B. Kích thước bộ nhớ sẽ cấp phát cho mảng A. Số phần tử tối đa của mảng C. Cả hai câu trên đểu đúng 50. Khai báo hàm tìm giá trị lớn nhất trong một màng các số long dưới đây, khai báo nào đúng? C. void Max(long a[], int n); D. long Max(long *a, int n); B. long Max(long *a[]); A. void Max(long *a); 51. Đâu là những toán tử toán học? C. &&, || A. +, /, % B. +, -, *, /, %, ++, --, >, < D. +, -, *, /, %, =, != 52. Phép toán 1 ngôi nào dùng để xác định giá trị ở địa chỉ con trỏ trỏ tới? A. !; C. *; D. Kết quả khác B. &; 53. Khi nhập vào đòng văn bản: “Chao Cac Ban”. Kết quả của chương trình sau là gì? A. “Chao Cac Ban” D. Không hiện kết quả gì B. “Chao Cac” C. “Chao” 54. Tìm kết quả của chương trình sau? D. Không câu nào đúng C. “ 18 9 4 2 1 0” B. “ 18 9 4 2 1” A. “ 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1” 55. Chọn một phát biểu sai? B. Chuỗi là một mảng các kí tự và kí tự cuối cùng có mã là 0 D. Chuỗi là mảng các trị 2 byte A. Chuỗi là một mảng các kí tự C. Chuỗi là mảng các kí tự và kí tự cuối cùng có mã là NULL 56. Hàm nào dưới đây chỉ dùng để nhập dữ liệu từ tệp? C. getch(); A. getc() D. fscanf(); B. scanf(); 57. Phát biểu nào đúng khi nói về câu lệnh fflush(FILE *f)? A. Hàm làm sạch vùng đệm của tệp f, nếu thành công cho giá trị số tệp đang mở, trái lại, trả về EOF B. Hàm làm sạch giá trị vùng đệm của tệp f, nếu thành công hàm cho giá trị EOF, trái lại, hàm trả vể 0 C. Hàm làm sạch vùng đệm của tệp f, nếu thành công trả về 0, trái lại, trả về EOF D. Hàm xóa bộ nhớ đệm của bàn phím 58. Hàm clrscr() là hàm gì? B. Dùng để xóa sạch bộ nhớ đệm bàn phím C. Là hàm xóa kí tự nằm bên trái con trỏ A. Là hàm xóa toàn bộ màn hình, sau khi xóa, con trỏ sẽ ở bên trái màn hình D. Là hàm xóa kí tự nằm bên phải con trỏ 59. Tại sao hai hàm scanf() và printf() gọi là 2 hàm nhập, xuất có định dạng? C. Vì một lí do khác B. Vì chúng thường dùng để nhập, xuất các trị trong chỉ một kiểu đã định trước D. 2 hàm trên không phải là hai hàm nhập xuất có định dạng A. Vì chúng có chuỗi định dạng trong tham số 60. Nếu có khai báo. Câu nào sẽ đúng? B. ptr=msg; A. ptr=v; D. Cả hai câu đều sai C. Cả hai câu đều đúng 61. Tìm kết quả của chương trình sau? D. Không câu nào đúng A. “ABCDE” B. “ABC” C. “ACEG” 62. Hàm nào trong các hàm sau thuộc các hàm nhập xuất không định dạng? B. 3,4 D. 2,3 C. 1,4 A. 1,2 63. Hàm nào dưới đây chỉ dùng để đọc 1 khối dữ liệu từ tệp? C. fwrite(); B. fputs(); A. fgets(); D. fread(); 64. Hàm scanf(“%[^\n]”,str); tương với lệnh nào sau đây? D. gets(str); C. macro getchar(); B. getche(); A. getch(); 65. Trong các hàm sau, hàm nào không định dạng để in một kí tự ra màn hình? A. puts(); D. 2 và 3 B. printf(); C. putchar(); 66. Cho tệp nhị phân DATA chứa dãy các cấu trúc liền nhau L struct T{…} x;và f là con trỏ tệp đến DATA. Chọn câu đúng nhất trong các câu sau? D. Giả sử tệp có n cấu trúc, lệnh fseek(f, n, SEEK_CUR); sẽ không làm thay đổi vị trí con trỏ của tệp C. Giả sử tệp có n cấu trúc, lệnh fseek(f, n, SEEK_SET) sẽ đặt con trỏ tới cấu trúc cuối cùng của tệp A. Lệnh fseek(f,10,SEEK_END) định vị con trỏ tệp đến byte thứ 10 trong tệp B. Đoạn lệnh fseek(f, 10, SEEK_END); định vị con trỏ tới cuối tệp 67. Kết quả của đoạn chương trình sau là gì, nếu gõ vào : ”10 T”? C. n=10, c=’T’ B. Lỗi khi xây dựng chương trình D. Kết quả khác A. n=10, c=’ ‘ 68. Trong số các định dạng dưới đây, định dạng nào dùng để in ra địa chỉ? B. “%s” A. “%f” C. “%p” D. “%h” 69. Phép toán % có ý nghĩa gì? C. Lấy phần dư của phép chia hai số nguyên B. Chia hai số thực hoặc nguyên D. 1 và 2 A. Đổi dấu một số thực hoặc một số nguyên 70. Toán tử “n--“ được hiểu? D. Giá trị của n được tăng lên trước khi giá trị của nó được sử dụng A. Giá trị n giảm đi sau khi giá trị của nó được sử dụng C. Giá trị của n được tăng sau khi giá trị của nó được sử dụng B. Giá trị n giảm đi trước khi giá trị của nó được sử dụng 71. Chọn kết quả của đoạn code sau? A. 6 chuỗi “Hello” D. 23 chuỗi “Hello” C. Không có kết quả xuất ra màn hình B. 12 chuỗi “Hello” 72. Cho đoạn chương trình. Giá trị của biến n là? B. 12 A. 8 D. 20 C. 16 73. Khai báo hàm đọc một text file vào một mảng các số nguyên, hãy chọn khai báo đúng? D. void Read(char* fName, int *&a, int &n); A. void Read( char* fName, int a[]); B. void Read(char* fName, int a); C. void Read(char* fName, int *a); 74. Trong các câu sau, câu nào đúng? A. Giá trị của một biến có thể thay đổi được D. Có thể khai báo 2 biến trùng tên trong cùng một hàm C. Có thể khai báo 2 biến trùng tên trong cùng một hàm B. Giá trị của một biến không thể thay đổi được 75. Để khai báo 1 hàm kiểm tra một mảng là tăng hay không ta dùng khai báo nào dưới đây? D. double CheckAsc(int S[], int n); B. int CheckAsc(int *a, int n); A. void CheckAsc(int a[], int n); C. long CheckAsc(int *S); 76. Kết quả của chương trình sau là gì? B. Dãy kết quả là : 14 D. 1 và 2 C. Kết quả khác A. Dãy kết quả là: 63 77. Hằng có thể được định nghĩa theo cách nào? A. #define string D. 1 và 2 C. Không có cách định nghĩa chung B. const tên_kiểu tên_biến_hằng = giá trị; 78. Cho khai báo FILE *f1,*f2; int c; và đoạn lệnh. Trong trường hợp tổng quát, hãy cho biết các khẳng định sau, khẳng định nào đúng? C. Độ dài file “source” nói chung lớn hơn độ dài file “TARGET” B. Độ dài file “source” bằng độ dài file “TARGET” A. Độ dài file “source” luôn bé hơn độ dài file “TARGET” D. Độ dài file “source” nói chung sẽ lớn hơn độ dài file “TARGET” 1 byte 79. Đấu hiệu nào là đúng khi sử dụng hàm fread();? A. int fread( void *ptr, int size, FILE *f, int n); B. int fread( FILE *f, void *ptr, int size, int n); D. int fread( void *ptr, int size, int n, FILE *f); C. int fread( int size, void *ptr, int n, FILE *f); 80. Phát biểu đúng nhất về mẫu lệnh( f là con trỏ tệp)? D. Đọc các phần tử của tệp chừng nào kí tự đó chưa phải là kí tự kết thúc A. Chọn 1 phần tử và kiểm tra xem có phải là EOF hay không C. Ghi một phần tử và kiểm tra xem có phải là EOF hay không B. Đọc các phần tử của tệp chừng nào kí tự đó chưa phải là kí tự xuống dòng 81. Cho biết giá trị của biểu thức: 2+4>2&&4<2;? A. 1 D. Không câu nào đúng C. -1 B. 0 82. Kích thước của biến con trỏ là? A. 1 Byte D. Không có đáp án nào đúng B. 2 Byte C. 3 Byte 83. Tìm kết quả của chương trình sau? A. “ABCDE” B. “ABC” C. “ACEG” D. Không câu nào đúng Time's up # Tổng Hợp# Kỹ Thuật