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