câu hỏi trắc nghiệm lập trình c

Tuyển tập trắc nghiệm lập trình C,trắc nghiệm lập trình c, trắc nghiệm ngôn ngữ lập trình c, Free Download PDF, Các câu hỏi trắc nghiệm được thành viên diễn đàn vncoding sưu tập và biên soạn dựa trên quá trình học tập và kinh nghiệm thực tế. Chúng tôi đã chủ định biên soạn các câu hỏi trắc nghiệm bằng Hủy Hợp Đồng Vay Tiền Online. Trong các bài viết trước, bạn đã được học về Flowchart - sơ đồ thuật toán, biến và kiểu dữ liệu, toán tử và biểu thức, nhập xuất dữ liệu, điều kiện rẽ nhánh, vòng lặp - loop. Để giúp bạn ôn tập và hiểu rõ hơn về những kiến thức đó, bài viết này sẽ tổng hợp một số câu hỏi trắc nghiệm lập trình C kèm theo đáp án. Tuy nhiên, bạn cố gắng suy nghĩ để tìm ra cách giải quyết, trước khi xem lời giải nhé. Mục lục Câu hỏi trắc nghiệm về Flowchart - sơ đồ thuật toán Câu hỏi trắc nghiệm về cấu trúc chương trình C Câu hỏi trắc nghiệm về biến và kiểu dữ liệu Câu hỏi trắc nghiệm về toán tử và biểu thức Câu hỏi trắc nghiệm về nhập xuất dữ liệu Câu hỏi trắc nghiệm về điều kiện rẽ nhánh Câu hỏi trắc nghiệm về vòng lặp - loop Câu hỏi trắc nghiệm về Flowchart - sơ đồ thuật toán Câu hỏi 1 Những phát biểu nào sau đây về flowchart là đúng? A. Flowchart là một dạng mã giả, sử dụng chữ để minh họa sơ đồ thuật toán. B. Flowchart là một dạng sơ đồ, sử dụng các hình để minh họa sơ đồ thuật toán. C. Flowchart có thể có điểm đầu và điểm cuối tùy thuộc vào mỗi bài toán khác nhau. D. Flowchart bắt buộc phải có điểm đầu và điểm cuối với mọi bài toán. Xem lời giải Đáp án đúng là B, D Flowchart là một dạng sơ đồ, sử dụng các hình để minh họa sơ đồ thuật toán. Và Flowchart luôn phải có điểm đầu và điểm cuối với mọi bài toán khác nhau. Câu hỏi 2 Phát biểu nào sau đây về ý nghĩa của các dạng hình học trong Flowchart là đúng? A. Hình A - bắt đầu hoặc kết thúc Hình B - tính toán Hình D - nhập xuất dữ liệu Hình E - điều kiện rẽ nhánh B. Hình A - tính toán Hình B - điều kiện rẽ nhánh Hình D - bắt đầu hoặc kết thúc Hình E - nhập xuất dữ liệu C. Hình A - bắt đầu hoặc kết thúc Hình B - nhập xuất dữ liệu Hình D - tính toán Hình E - điều kiện rẽ nhánh D. Hình A - tính toán Hình B - nhập xuất dữ liệu Hình D - điều kiện rẽ nhánh Hình E - bắt đầu hoặc kết thúc Câu hỏi 3 Cho flowchart sau Hỏi đáp án nào sau đây là đúng? A. N = 1, Sum = 1 B. N = 4, Sum = 6 C. N = 5, Sum = 6 D. N = 5, Sum = 4 Xem lời giải Đáp án đúng là C Giải thích Sơ đồ thuật toán trên minh họa cho bài toán tính tổng các số tự nhiên chẵn nhỏ hơn N. Do đó Với N = 1 thì Sum = 0. Suy ra, đáp án A là sai. Với N = 4 thì Sum = 2. Suy ra, đáp án B là sai. Với N = 5 thì Sum = 2 + 4 = 6. Suy ra, đáp án C là đúng và đáp án D là sai. Câu hỏi trắc nghiệm về cấu trúc chương trình C Câu hỏi 1 Chương trình C có bao nhiêu hàm main? Xem lời giải Đáp án đúng là A Mọi chương trình C đều phải có 1 và chỉ 1 hàm main. Đây chính là điểm bắt đầu của chương trình C. Câu hỏi 2 Đâu là cặp kí hiệu dùng để bắt đầu và kết thúc một block code trong ngôn ngữ lập trình C? Câu hỏi 3 Đâu là kí tự dùng để kết thúc một câu lệnh trong ngôn ngữ lập trình C? A. Dấu phẩy , B. Dấu chấm . C. Dấu chấm phẩy ; D. Không cần kí tự nào để kết thúc một câu lệnh Câu hỏi 4 Những cách bình luận commment chính xác trong ngôn ngữ lập trình C là gì? A. // Đây là comment 1 dòng B. / Đây là comment 1 dòng / C. /* Đây là comment nhiều dòng */ D. /*/ Đây là comment nhiều dòng /*/ E. F. Đây là comment 1 dòng G. \* Đây là comment nhiều dòng *\ H. \\ Đây là comment 1 dòng Xem lời giải Đáp án đúng là A, C, D Giải thích Trong ngôn ngữ lập trình C có 2 cách comment code là dùng cặp dấu \\ và cặp dấu /**/ Cặp dấu \\ dùng để comment trên 1 dòng Cặp dấu /**/ dùng để comment trên nhiều dòng Câu hỏi trắc nghiệm về biến và kiểu dữ liệu Câu hỏi 1 Những cách đặt tên biến nào sau đây là hợp lệ? A. tongChan B. tong-le C. count1 D. giatri_Min E. F. _int_ G. continue H. Printf I. 2var Xem lời giải Đáp án đúng là A, C, D, F, H Giải thích Trong lập trình C, quy tắc đặt tên biến là Chữ cái đầu tiên là chữ cái thường a-z hoặc chữ cái viết hoa A-Z hoặc dấu gạch dưới _ Các chữ cái tiếp theo cũng tương tự như chữ cái đầu, ngoài ra có thể là chữ số 0-9 Tên biến không được trùng với từ khóa trong ngôn ngữ lập trình C Tên biến phân biệt hoa thường Các đáp án sai Đáp án B sai vì chứa kí tự gạch ngang - Đáp án E sai vì chứa kí tự chấm . Đáp án G sai vì trùng với từ khóa continue trong ngôn ngữ lập trình C Đáp án I sai vì bắt đầu bằng số Câu hỏi 2 Phát biểu nào sau đây là đúng? A. int số thực, float số tự nhiên, double số nguyên, char chuỗi kí tự B. int số nguyên, float số thực, double số tự nhiên, char kí tự C. int số nguyên, float số thực, double số thực, char kí tự D. int số tự nghiên, float số nguyên, double số thực, char kí tự Xem lời giải Đáp án đúng là C Ngôn ngữ lập trình C có một số kiểu dữ liệu cơ bản là int kiểu số nguyên thường là 4 bytes - đối với máy tính hệ 64bit như hiện nay float kiểu số thực 4 bytes - độ chính xác 6 chữ số sau dấu phẩy double kiểu số thực 8 bytes - độ chính xác 10 chữ số sau dấu phẩy char kiểu kí tự 1 byte, dùng để biểu diễn 256 kí tự trong bảng mã ASCII Câu hỏi 3 Cách khai báo biến nào sau đây là đúng? A. int x, y, z B. x, y, z float C. double x, y, z; D. x = 0, y = 1, z = 2; Xem lời giải Đáp án đúng là C Giải thích Cú pháp khai báo biến trong ngôn ngữ lập trình C là ; Chú ý cần có dấu chấm phẩy để kết thúc câu lệnh Câu hỏi trắc nghiệm về toán tử và biểu thức Câu hỏi 1 Đâu là cách gán giá trị cho biến int x; chính xác? A. x = 6; B. x = 6; C. x = 6 D. x y B. x y H. x >= y I. x Nhỏ hơn = Nhỏ hơn hoặc bằng và = C. if {biểu thức} D. if biểu thức Câu hỏi 2 Cho đoạn code sau int a = 3, b = 4, x = 0; if a != 3 x++; x += b; if b == 4 { x-; x *= a; } Hỏi kết quả của biến x sau đoạn code trên là bao nhiêu? Xem lời giải Đáp án đúng là D Giải thích Với mệnh đề if, nếu điều kiện trong if đúng thì câu lệnh hoặc khối lệnh ngay sau if sẽ được thực hiện. Ngược lại, nếu điều kiện trong if sai thì câu lệnh hoặc khối lệnh ngay sau if sẽ không được thực hiện. Với mệnh đề if đầu tiên, a có giá trị 3 nên a != 3 là sai. Do đó câu lệnh ngay sau if là x++ không được thực hiện. Câu lệnh tiếp theo x += b không liên quan đến if nên vẫn thực hiện bình thường. Sau biểu thức này, x = x + b = 0 + 4 = 4; Với mệnh đề if tiếp theo, điều kiện b == 4 là đúng, nên khối lệnh tiếp theo if sẽ được thực hiện. Kết quả là x-; // -> x = x - 1 = 4 - 1 = 3 x *= a; // -> x = x * a = 3 * 3 = 9 Câu hỏi 3 Cho đoạn code sau int x = 3; if x == 1 printf"One"; else if x == 2 printf"Two"; else if x == 3 printf"Three"; else printf"Other"; Hỏi kết quả hiển thị ra màn hình console là gì? A. One B. Two C. Three D. Other Xem lời giải Đáp án đúng là C Giải thích Trong chuỗi câu lệnh if-else-if liên tiếp nhau, thứ tự thực hiện là từ trên xuống dưới. Bất cứ khi nào một điều kiện if là đúng thì câu lệnh hoặc khối lệnh ngay sau if sẽ được thực hiện. Những đoạn if-else phía sau sẽ không được thực hiện. Với x = 3, thì x == 1 hay x == 2 đều sai. Chỉ có x == 3 cho giá trị đúng. Nên câu lệnh ứng với if đó được thực hiện. Câu hỏi 4 Cho đoạn code sau int x = 3; switchx { case 1 printf"One"; case 2 printf"Two"; case 3 printf"Three"; default printf"Other"; } Hỏi kết quả hiển thị lên màn hình console là gì? A. Three B. OneTwoThree C. ThreeOther D. OneTwoThreeOther Xem lời giải Đáp án đúng là C Giải thích Switch dùng để kiểm tra điều kiện và rẽ nhánh. Biểu thức được dùng để kiểm tra điều kiện phải có giá trị là số kí tự bản chất cũng là số Giá trị ứng với các case phải là hằng số. Khi giá trị của case bằng với giá trị của biểu thức kiểm tra điều kiện thì các câu lệnh ứng với case đó sẽ được thực hiện. Ở đây, biểu thức dùng để kiểm tra điều kiện là x, giá trị của x bằng 3. Nên các câu lệnh ứng với case 3 sẽ được thực hiện. Khi đó câu lệnh printf"Three" sẽ thực hiện in ra màn hình chữ Three. Tuy nhiên, đối với switch-case, nếu ta không sử dụng từ khóa break ở cuối mỗi case thì các câu lệnh ứng với các case sau và default sẽ được thực hiện. Do đó câu lệnh printf"Other" sẽ thực hiện in ra tiếp chữ Other. Tóm lại, kết quả thu được là ThreeOther Để kết quả hiển thị chỉ tương ứng với những case đúng Three thì bạn cần thêm từ khóa break ở cuối mỗi case như sau int x = 3; switchx { case 1 printf"One"; break; case 2 printf"Two"; break; case 3 printf"Three"; break; default printf"Other"; } Câu hỏi trắc nghiệm về vòng lặp - loop Câu hỏi 1 Cho đoạn code sau int i, N = 10; for i = 0; i < N; i += 2 { printf"%d ", i; } Hỏi kết quả hiển thị trên màn hình console là gì? A. 0 1 2 3 4 5 6 7 8 9 10 B. 0 1 2 3 4 5 6 7 8 9 C. 0 2 4 6 8 10 D. 0 2 4 6 8 Xem lời giải Đáp án đúng là D Giải thích Cú pháp của vòng lặp for là for khởi tạo vòng lặp; điều kiện thực hiện; thực hiện sau vòng lặp { } Đoạn code trên khởi tạo vòng lặp với i = 0 Điều kiện để vòng lặp thực hiện là i < N Sau mỗi vòng lặp, thực hiện tăng i lên 2 đơn vị i += 2 Trong mỗi vòng lặp, thực hiện in ra giá trị của i Giải thích các vòng lặp Vòng 1 i = 0, i < N đúng. Như vậy, in ra giá trị của i là 0. Sau khi in ra i, tăng giá trị của i lên 2 đơn vị, ta được i = 2 Vòng 2 i = 2, i < N đúng. Như vậy, in ra giá trị của i là 2. Sau khi in ra i, tăng giá trị của i lên 2 đơn vị, ta được i = 4 Vòng 3 i = 4, i < N đúng. Như vậy, in ra giá trị của i là 4. Sau khi in ra i, tăng giá trị của i lên 2 đơn vị, ta được i = 6 Vòng 4 i = 6, i < N đúng. Như vậy, in ra giá trị của i là 6. Sau khi in ra i, tăng giá trị của i lên 2 đơn vị, ta được i = 8 Vòng 5 i = 8, i < N đúng. Như vậy, in ra giá trị của i là 8. Sau khi in ra i, tăng giá trị của i lên 2 đơn vị, ta được i = 10 Vòng 6 i = 10, i < N sai. Như vậy, vòng lặp kết thúc. Tóm lại, kết quả thu được là đáp án D. Câu hỏi 2 Cho đoạn code sau int x = 4; while x { printf"%d ", x-; } Hỏi kết quả hiển thị trên màn hình console là gì? A. 4 3 2 1 0 B. 4 3 2 1 C. 3 2 1 0 D. 4 3 2 1 0 -1 -2 ... vô hạn Xem lời giải Đáp án đúng là B Giải thích Cú pháp của vòng lặp while là Vòng lặp while sẽ luôn được thực hiện nếu điều kiện trong while là đúng. Giải thích các vòng lặp Vòng 1 x = 4, TRUE. Như vậy, in ra giá trị của x là 4. Sau đó, x- nên giá trị của x giảm đi 1, còn là 3 Vòng 2 x = 3, TRUE. Như vậy, in ra giá trị của x là 3. Sau đó, x- nên giá trị của x giảm đi 1, còn là 2 Vòng 3 x = 2, TRUE. Như vậy, in ra giá trị của x là 2. Sau đó, x- nên giá trị của x giảm đi 1, còn là 1 Vòng 4 x = 1, TRUE. Như vậy, in ra giá trị của x là 1. Sau đó, x- nên giá trị của x giảm đi 1, còn là 0 Vòng 5 x = 0, FALSE. Như vậy vòng lặp while kết thúc. Tóm lại, kết quả là đáp án B. Câu hỏi 3 Cho đoạn code sau int x = 0; do { x++; if x == 1 { printf"One"; continue; } printf"%d", x; if x == 3 { printf"Three"; break; } } while x < 5; Hỏi kết quả hiển thị trên màn hình console là gì? A. One23 B. 23Three C. One23Three D. Vòng lặp vô hạn Xem lời giải Đáp án đúng là C Giải thích Cú pháp của vòng lặp do-while là Vòng lặp do-while sẽ thực hiện khối lệnh bên trong do-while trước sau đó kiểm tra điều kiện trong while. Nếu điều kiện đó vẫn TRUE thì vòng lặp tiếp tục, ngược lại thì dừng ngay vòng lặp. Giải thích các vòng lặp Ban đầu khởi tạo x = 0 Vòng lặp 1 x++, nên x tăng lên 1 được x = 1. Nên x == 1 TRUE. Do đó, khối lệnh tương ứng với mệnh đề ifx==1 sẽ được thực hiện. Câu lệnh printf"One" in ra màn hình chữ One. Tiếp theo, từ khóa continue được thực hiện. Từ khóa này sẽ bỏ qua đoạn câu lệnh phía dưới còn lại của vòng lặp để quay về đầu vòng lặp. Vòng lặp 2 x++, nên x tăng lên 1 được x = 2. Nên x == 1 FALSE. Do đó, khối lệnh tương ứng với mệnh đề ifx==1 không được thực hiện. Tiếp theo, câu lệnh printf"%d", x sẽ được thực hiện. Nên nó lại in ra màn hình giá trị ứng với x lúc này là 2. Tiếp theo, mệnh đề ifx==3 không thực hiện vì x == 3 FALSE. Vòng lặp 3 x++, nên x tăng lên 1 được x = 3. Nên x == 1 FAlSE. Do đó, khối lệnh tương ứng với mệnh đề ifx==1 không được thực hiện. Tiếp theo, câu lệnh printf"%d", x sẽ được thực hiện. Nên nó lại in ra màn hình giá trị ứng với x lúc này là 3. Tiếp theo, mệnh đề ifx==3 TRUE nên khối lệnh tương ứng sẽ được thực hiện. Câu lệnh printf"Three" sẽ in ra màn hình chữ Three. Tiếp tục, gặp từ khóa break. Từ khóa này sẽ dừng vòng lặp ngay lập tức. Tóm lại kết quả thu được là đáp án C. Tổng hợp 320 câu hỏi trắc nghiệm lập trình C có đáp án đầy đủ nhằm giúp các bạn dễ dàng ôn tập lại toàn bộ các kiến thức. Để ôn tập hiệu quả các bạn có thể ôn theo từng phần trong bộ câu hỏi này bằng cách trả lời các câu hỏi và xem lại đáp án và lời giải chi tiết. Sau đó các bạn hãy chọn tạo ra đề ngẫu nhiên để kiểm tra lại kiến thức đã ôn. Chọn hình thức trắc nghiệm 50 câu/60 phút Ôn tập từng phần Trộn đề tự động Chọn phần Câu 1 Ngôn ngữ lập trình C được Dennish phát triển dựa trên ngôn ngữ lập trình nào? A. Ngôn ngữ B B. Ngôn ngữ BCPL C. Ngôn ngữ DEC PDP D. Ngôn ngữ B và BCPL ANYMIND360 / 1 Câu 2 Ngôn ngữ lập trình được Dennish đưa ra vào năm nào? A. 1967 B. 1972 C. 1970 D. 1976 Câu 3 Ngôn ngữ lập trình nào dưới đây là ngôn ngữ lập trình có cấu trúc? A. Ngôn ngữ Assembler B. Ngôn ngữ C và Pascal C. Ngôn ngữ Cobol. D. a, b và c Câu 4 Những tên biến nào dưới đây được viết đúng theo quy tắc đặt tên của ngôn ngữ lập trình C? A. diem toan B. 3diemtoan C. _diemtoan D. -diemtoan ZUNIA12 Câu 5 Một biến được gọi là biến toàn cục nếu A. Nó được khai báo tất cả các hàm, ngoại trừ hàm main B. Nó được khai báo ngoài tất cả các hàm kể cả hàm main C. Nó được khai báo bên ngoài hàm main D. Nó được khai báo bên trong hàm main Câu 6 Một biến được gọi là một biến địa phương nếu A. Nó được khai báo bên trong các hàm hoặc thủ tục, kể cả hàm main B. Nó đươc khai báo bên trong các hàm ngoại trừ hàm main C. Nó được khai báo bên trong hàm main D. Nó được khai báo bên ngoài các hàm kể cả hàm main ADMICRO Câu 7 Nếu x là một biến toàn cục và x không phải là một con trỏ thì A. Miền nhớ dành cho x có thể thay đổi trong quá trình thực hiện chương trình B. Miền nhớ dành cho x chỉ có thay đổi bởi những thao tác với x bên trong hàm main C. Miền nhớ dành cho x sẽ thay đổi bởi những thao tác với x trong tất cả các hàm, kể cả hàm main D. Miền nhớ giành cho x không bị thay đổi trong quá trình thực hiện chương trình Câu 8 Kiểu dữ liệu nào dưới đây được coi là kiểu dữ liệu cơ bản trong ngôn ngữ lập trình C A. Kiểu double B. Kiểu con trỏ C. Kiểu hợp D. Kiểu mảng Câu 9 Giả sử a, b là hai số thực. Biểu thức nào dưới đây viết không đúng theo cú pháp của ngôn ngữ lập trình C A. a+=b B. a*=b C. a=b D. a&=b Câu 10 Giả sử a và b là hai số thực. Biểu thức nào dưới đây là không được phép theo cú pháp của ngôn ngữ lập trình C A. a /=b B. a-=b C. a>>=b D. a*=b Câu 11 Xâu định dạng nào dưới đây dùng để in ra một số nguyên hệ 16 A. “%d” B. “%x” C. “%i” D. “%u” Câu 12 Xâu định dạng nào dưới đây dùng để in ra một số nguyên ở hệ 8 A. “%ld” B. “%x” C. “%o” D. “%u” Câu 13 Xâu định dạng nào dưới đây dùng để in ra một kí tự A. “%f” B. “%x” C. “%s” D. “%c” Câu 14 Xâu định dạng nào dưới đây dùng để in ra một xâu kí tự A. “%f" B. “%x” C. “%s” D. “%c” Câu 15 Xâu định dạng nào dưới đây dùng để in ra một số nguyên dài A. “%ld” B. “%x” C. “%d” D. “%o” Câu 16 Xâu định dạng nào dưới đây dùng để in ra địa chỉ của một biến A. “%u” B. “%e” C. “%o” D. “%p” Câu 17 Xâu định dạng nào dưới đây dùng để in ra một số nguyên A. “%u” B. “%e” C. “%d” D. “%p” Câu 18 Xâu định dạng nào dưới đây dùng để in ra một số thực có độ chính xác kép A. “%u” B. “%e” C. “%o” D. “%p” Câu 19 Xâu định dạng nào sau đây dùng để in ra một số thực có độ chính xác đơn A. “%u” B. “%e” C. “%f” D. “%o” Câu 20 Kiểu dữ liệu int kiểu số nguyên có thể xử lí số nguyên nằm trong khoảng nào A. 0…255 B. -32768…32767 C. -128…127 D. 0…65535 Câu 21 Cho a=3, b=2 và c là 3 biến nguyên. Biểu thức nào sau viết sai cú pháp trong ngôn ngữ lập trình C A. c=a & b B. c=a && b C. c= a/b D. c= a>=b D. a*=b Câu 23 Cho a=3, b=2. Biến c=a void main { int a, b; a = 100; b = 56; printf“ % d”, a 1 A. -1 B. 0 C. 1 D. Tất cả đều sai Câu 29 Cho biết giá trị của biểu thức 2+4>2&&4 void main { int ch = ’A’; printf“ % d”, ch; } A. A B. a C. 65 D. Kết quả khác Câu 39 Kết quả của chương trình sau include void main { int i = 98; printf“ % c”, i; }; A. 98 B. B C. b D. Kết quả khác Câu 40 Kết quả in ra màn hình của chương trình sau include void main { int i = 5, j = 6; i = i - -j; printf“ % d”, i; }; A. 5 B. 6 C. 1 D. 0 Câu 41 Dạng tổng quát của hàm printf là printf“dãy mã quy cách”, dãy mã biểu thức; Trong đó, dãy mã quy cách sẽ là A. Dãy các mã định dạng dữ liệu hiển thị B. Con trỏ của xâu kí tự C. Các xâu kí tự mang tính chất thông báo D. Cả 3 phương án trên Câu 42 Trong các hàm sau, hàm nào là hàm không định dạng để nhập một kí tự từ bàn phím A. scanf; B. getchar; C. getch; D. getche; Câu 43 Trong các hàm sau, hàm nào để nhập một kí tự từ bàn phím ngay sau khi gõ, không chờ nhấn Enter và không hiện ra màn hình A. scanf; B. getchar; C. getch; D. getche; Câu 44 Hàm nào đọc kí tự từ bàn phím ngay sau khi gõ, không chờ nhấn Enter. Các kí tự có hiện ra màn hình A. scanf; B. getchar; C. getch; D. getche; Câu 45 Kết quả in ra màn hình của chương trinh sau là gì include void main { int i; for i = 2; i void main { int i; for i = 2;; i++ printf“ % 3 d”, i; }; A. Vòng lặp vô hạn B. “ 2” C. “ 1 2” D. Kết quả khác Câu 47 Lệnh nào trong các lệnh sau cho phép đã chuyển tới một nơi nào đó đã được gán nhãn A. break B. goto C. continue D. exit Câu 48 Lệnh nào trong các lệnh sau cho phép dừng câu lệnh điều khiển A. break B. goto C. continue D. Cả 3 phương án trên Câu 49 Trong ngôn ngữ C, khai báo “int array[3][5]” có nghĩa là A. Các phần tử của mảng là các số nguyên B. Là một mảng hai chiều tối đa là 15 phần tử và mỗi phần tử là một số nguyên C. array[3][5] là một phần tử của mảng D. Tất cả đều sai Câu 50 Tìm lỗi sai trong chương trình sau in ra kết quả là tổng của 453 và 343 include void main { int sum; sum = 453 + 343 printf“\Ket qua la “sum; }; A. Thiếu dấu chấm phẩy; B. Thiếu dấu phẩy , C. Thiếu kí tự đặc tả D. Cả 3 ý trên Q2 Chỉ thị nào sau đây là đúng khi dùng để khai báo một biến ký tự có tên là letter?letter = char;char letter;letter char;character letter;Q3 Chỉ thị nào sau đây là đúng khi khai báo một hằng số có tên là TRUE và giá trị là 1?int TRUE = 1;define TRUE = 1define TRUE 1;define TRUE 1Q4 Chỉ thị nào sau đây là đúng khi khai báo một biến thực có tên money?money real;real money;float money;money float;Q5 Chỉ thị nào sau đây là đúng khi khai báo một hằng số có tên là GST và giá trị là GST GST = GST = float GST = Câu lệnh nào sau đây là đúng để thực hiện việc gán giá trị của biến number1 cho biến total?total = number1;number1 = total;total = number1;number1 = total;Q7 Câu lệnh nào sau đây là đúng để thực hiện việc gán giá trị của phép chia biến total cho 10 cho biến discount?discount = total/10;discount = total10;total = discount* = 10;Q8 Câu lệnh nào sau đây là đúng để thực hiện việc gán ký tự W cho biến ký tự letter?letter = “W”;letter = W;char letter = “W”;letter = W’;Q9 Câu lệnh nào sau đây là đúng để thực hiện việc in ra giá trị của biến nguyên có tên sum?printf“%s”,sum;print“%d”,∑printf“%d”,sum;printf“%d”,∑Q10 Câu lệnh nào sau đây là đúng để thực hiện việc in ra dòng chữ Welcome rồi xuống dòng?printf“Welcome\n”;printfWelcome,”\n”;printfWelcome\n;printfWelcome’,’\n’;Q11 Câu lệnh nào sau đây là đúng để thực hiện việc in ra giá trị của biến ký tự có tên letter?printletter;print“%c”,letter;printf“%d”,letter;printf“%c”,&letter;Q12 Câu lệnh nào sau đây là đúng để thực hiện việc in ra giá trị của biến thực discount?printf“%s”,discount;printdiscount’;printf“%f”,discount;printf“%f”,&discount;Q13 Câu lệnh nào sau đây là đúng để thực hiện việc in ra giá trị của biến thực dump sử dụng hai chỗ cho phần thập phân?printf“% dump;printf“%2f”,&dump;printf“%*.5f”,2,dump;printf“%.2f”,dump;Q14 Câu lệnh nào sau đây là đúng để thực hiện việc đọc giá trị cho biến nguyên i từ bàn phím?scanf“%d”,&i;scanf“%s”,&i;scanf“%d”,*i;scanfi;Q15 Hãy cho biết kết quả của phép tính 101B100B?110B101B010BCả ba câu trên đều saiQ16 Hãy cho biết kết quả của phép tính 101B&100B?110B101B100BCả ba câu trên đều saiQ17 Chỉ thị nào sau đây là đúng khi sử dụng để khai báo một mảng 10 ký tự có tên letters?letters char[10];char[10] letters;char letters[10];char array letters[10];Q18 Câu lệnh nào sau đây là đúng khi gán ký tự Z’ cho phần tử thứ tư của mảng letters?letters[4]= “Z”;letters[3] = 'Z';letters[4] = "Z";letters[3] = 'z';Q19 Chỉ thị nào sau đây là đúng khi khai báo mảng hai chiều balances có 3 hàng và 5 cột?float balances[3][5];balances[3][5] of float;float balances[5][3];array of float balances[0..2][0..5];Q20 Câu lệnh nào sau đây là đúng để gán xâu “Hello” cho mảng ký tự words tại thời điểm khai báo?char words[10] = 'Hello';static char words[] = "Hello";static char words["hello"];static char words[] = { Hello };Q21 Câu lệnh nào sau đây là đúng để gán xâu “Welcome” cho xâu ký tự stuff?strcpy stuff, 'Welcome' ;stuff = "Welcome";stuff[0] = "Welcome";strcpystuff, "Welcome" ;Q22 Câu lệnh nào sau đây là đúng để in ra màn hình giá trị của phần tử thứ 3 của mảng số nguyên có tên totals?printf"%d\n", &totals[3] ;printf"%d\n", totals[3] ;printf"%c\n", totals[2] ;printf"%d\n", totals[2] ;Q23 Câu lệnh nào sau đây là đúng để in ra màn hình xâu ký tự có tên words?printf"%s\n", words;printf"%c\n", words;printf"%d\n", words;printf"%s\n", words[2];Q24 Câu lệnh nào là đúng để gán xâu “Welcome” cho xâu ký tự stuff?strcpy stuff, 'Welcome' ;stuff = "Welcome";stuff[0] = "Welcome";strcpystuff, "Welcome" ;Q25 Câu lệnh nào sau đây là đúng để nhập vào giá trị cho xâu ký có tên words từ bàn phím?scanf"%s\n", words;scanf" %c", words;scanf"%c", words;scanf"%s", words;Q26 Chỉ thị nào sao đây là đúng để khai báo một biến con trỏ nguyên có tên address?int address;address *int;int *address;*int address;Q27 Câu lệnh nào sau đây là đúng khi gán địa chỉ của biến thực balance cho con trỏ thực temp?temp = &balance;balance = float temp;float temp *balance;&temp = balance;Q28 Câu lệnh nào sau đây là đúng khi sử dụng để gán ký tự W’ cho biến ký tự được trỏ bởi biến con trỏ ký tự letter?'W' = *letter;letter = "W";letter = *W;*letter = 'W';Q29 Cho biết kết quả trên màn hình sau khi chạy đoạn chương trình sau? int count=10, *temp, sum=0; temp=&count; *temp=20; temp=∑ *temp=count; printf"count = %d, *temp = %d, sum = %d\n", count, *temp, sum;count = 2, *temp = 10, sum = 10count = 20, *temp = 20, sum = 20count = 10, *temp = 2, sum = 10count = 200, *temp = sum = 1Q30 Chỉ thị nào sau đây là đúng khi khai báo một con trỏ trỏ vào xâu “Hello” có tên message?char message = "Hello";*message = "Hello";char *message = "Hello";char message = 'Hello';Q31 Trong C để thực hiện ép kiểu type casting, bạn cần sử dụng thư viện nào sau đây? phải 3 kết qủa trênQ32 Cho biết kết quả của đoạn chương trình sau x=0; switchx { case 1 printf "One" ; case 0 printf "Zero" ; case 2 printf "Hello World" ; }OnZeroHello WorldZeroHello WorldQ33 x có kết quả là bao nhiêu sau khi chạy đoạn chương trình dưới đây? int x; forx=0; x include main { int i,j,k,x=0; fori=0; i include main { int a, b = 0; int c[10]={1, 2, 3, 4, 5, 6, 7, 8, 9, 0}; for a=0; a main { int i; char ch; fori=0, ch=65; i include main { int i, j, k, x=0; fori=1;i include main { int i, j, k, x=0; fori=1;i include main { int i=0, x=0; do { ifi%5==0 x++; ++i; } whilei=’a’ && c11 or b>1 or c>1 then write1; if a>1 and b>1 and c>1 then write1; if a>1 and b>1 and c>1 then write1; if a, b, c > 1 then write1;Q54 Đáp án nào dưới đây là khai báo hoàn chỉnh của một hàm trong C? int funct; int functint x {return x=x+1;} void functint {printf"Hello"} void functx { printf"Hello"}Q55Chỉ thị nào sau đây là đúng khi sử dụng để khai báo một mảng 10 ký tự có tên letters? letters char[10]; char[10] letters; char letters[10]; char array letters[10];Q56 Câu lệnh nào sau đây là đúng khi gán ký tự Z’ cho phần tử thứ tư của mảng letters? letters[4]= “Z”; letters[3] = 'Z'; letters[4] = "Z"; letters[3] = 'z';Q57 Chỉ thị nào sau đây là đúng khi khai báo mảng hai chiều balances có 3 hàng và 5 cột? float balances[3][5]; balances[3][5] of float; float balances[5][3]; array of float balances[0..2][0..5];Q58 Câu lệnh nào sau đây là đúng để gán xâu “Hello” cho mảng ký tự words tại thời điểm khai báo? char words[10] = 'Hello'; static char words[] = "Hello"; static char words["hello"]; static char words[] = { Hello };Q59 Câu lệnh nào sau đây là đúng để gán xâu “Welcome” cho xâu ký tự stuff? strcpy stuff, 'Welcome' ; stuff = "Welcome"; stuff[0] = "Welcome"; strcpystuff, "Welcome" ;Q60 Câu lệnh nào sau đây là đúng để in ra màn hình giá trị của phần tử thứ 3 của mảng số nguyên có tên totals? printf"%d\n", &totals[3]; printf"%d\n", totals[3]; printf"%c\n", totals[2]; printf"%d\n", totals[2];Q61 Câu lệnh nào sau đây là đúng để in ra màn hình xâu ký tự có tên words? printf"%s\n", words; printf"%c\n", words; printf"%d\n", words; printf"%s\n", words[2];Q62 Câu lệnh nào sau đây là đúng để nhập vào giá trị cho xâu ký có tên words từ bàn phím? scanf"%s\n", words; scanf" %c", words; scanf"%c", words; scanf"%s", words;Q63 Chỉ thị nào sao đây là đúng để khai báo một biến con trỏ nguyên có tên address? int address; address *int; int *address; *int address;Q64 Câu lệnh nào sau đây là đúng khi gán địa chỉ của biến thực balance cho con trỏ thực temp? temp = &balance; balance = float temp; float temp *balance; &temp = balance;Q65 Câu lệnh nào sau đây là đúng khi sử dụng để gán ký tự W’ cho biến ký tự được trỏ bởi biến con trỏ ký tự letter? 'W' = *letter; letter = "W"; letter = *W; *letter = 'W';Q66 Cho biết kết quả trên màn hình sau khi chạy đoạn chương trình sau? int count = 10, *temp; sum=0; temp = &count; *temp = 20; temp = ∑ *temp = count; printf"count = %d, *temp = %d, sum = %d\n", count, *temp, sum ; count = 2, *temp = 10, sum = 10 count = 20, *temp = 20, sum = 20 count = 10, *temp = 2, sum = 10 count = 200, *temp = sum = 1Q67 Chỉ thị nào sau đây là đúng khi khai báo một con trỏ trỏ vào xâu “Hello” có tên message? char message = "Hello"; *message = "Hello"; char *message = "Hello"; char message = 'Hello';Q68 Trong ngôn ngữ C, câu lệnh nào sau đây trả về địa chỉ ô nhớ của con trỏ p? p; *p; &p; addressp;Q69 Giải thuật là chọn 2 Phương pháp giải bài toán Cách tiếp cận để giải bài toán Tập các câu lệnh Các dòng lệnh Chương trình trong 1 ngôn ngữQ70 Khi nói đến lưu đồ, 4 phát biểu nào sau đây là các phát biểu đúng? Chúng dễ hiểu hơn ngay khi nhìn qua so với việc diễn đạt bằng ngôn ngữ tự nhiên Chúng cung cấp một cách lập tài liệu cho chương trình Chúng ta có thể xem lại và kiểm lỗi chương trình dễ dàng hơn với sự giúp đã của lưu đồ Lưu đồ giúp giải thích chương trình và bàn luận về giải pháp dễ dàng hơn Lưu đồ giúp tính trị của các biến trong 1 chương trình khácQ71 Xác định giá trị của biểu thức sau 15+80/2*10–12*2/3-10 298 553 397 -553Q72 Xác định giá trị của biểu thức sau 10-8-2*10/5-5*2 -10 10 50 Divide by zeroQ73 Khi xem xét vòng lặp xác định, 2 phát biểu nào sau đây là các phát biểu đúng? Các trị được tính toán hay được quản lý trong thân vòng lặp không có ảnh hưởng gì đến số lần thực thi vòng lặp Các tác vụ được lặp lại với số lần đã ấn định đặc tả trước Các trị được tính toán hay được quản lý trong thân vòng lặp có thể ảnh hưởng đến số lần thực thi vòng lặp Các tác vụ được lặp lại với số lần thay đổiQ74 Bốn điểm nào sau đây là các điểm cần chú ý khi vẽ lưu đồ? Lúc đầu, nên tập trung vào tính hợp lệ logic của bài toán và vẽ ra đường đi chính của lưu đồ Sau khi đã có đường đi chính, thêm các nhánh và vòng lặp cho hợp lý với yêu cầu bài toán Một lưu đồ có thể có một điểm khởi đầu và hai điểm dừng Hãy giữ lưu đồ có tính độc lập bằng cách không dùng các thuật ngữ liên quan đến máy tính Hãy dùng các bước giải có ý nghĩaQ75 Chương trình sau cho kết qủa là gì? void main { int i, x=0; fori=1; i void main { int *px, *py; int a[]={1,2,3,4,5,6}; px=&a[0]; py=&a[5]; printf"%d", ++px-py; } 4 2 5 Không kết quả nào đúngQ77 Cho phát biểu sau int num;Với phát biểu trên, 4 trị nào trong các trị sau KHÔNG hợp lệ cho biến num? Alan abc 459 A2 2E9Q78 Tại sao hai hàm scanf và printf được gọi là các hàm nhập xuất có định dạng? Vì chúng có chuỗi định dạng trong tham số Vì chúng thường được dùng để nhập xuất các trị trong chỉ 1 kiểu đã định trước Vì một lý do khácQ79 Đâu là những hàm nhập xuất không định dạng? Chọn 2 scanf printf getchar putcharQ80 Hàm nào sau đây được dùng để nối 2 chuỗi? strlen strcpy strcmp strcatQ81 Hàm nào sau đây sẽ trả về độ dài của 1 chuỗi? strlen strcpy strcmp strcatQ82 Hàm nào sau đây sẽ sao chép 1 chuỗi? strlen strcpy strcmp strcatQ83 Hàm nào sau đây được dùng để so sánh hai nội dung chuỗi? strlen strcpy strcmp strcatQ84 Nếu strcmpS1,S2 trả về 1 số nguyên âm thì Nội dung chuỗi S1 lớn hơn nội dung chuỗi S2 Nội dung chuỗi S1 nhỏ hơn nội dung chuỗi S2 Nội dung chuỗi S2 bằng nội dung chuỗi S1Q85 Mảng trong ngôn ngữ C là Một nhóm phần tử cùng kiểu và có chung tên gọi Một nhóm phần tử có thể có kiểu riêng và có chung tên gọi Một nhóm phần tử có thể có kiểu riêng và có tên gọi riêng cho mỗi phần tửQ86 Chọn 1 phát biểu sai Chuỗi là 1 mảng các ký tự Chuỗi là mảng các ký tự và ký tự cuối cùng có mã 0 Chuỗi là mảng các ký tự và ký tự cuối cùng là null Chuỗi là mảng các trị 2 byteQ87 Kích thước của mảng là Số phần tử tối đa của mảng Kích thước bộ nhớ sẽ cấp phát cho mảng Cả hai câu trênQ88 Cho khai báo int* p= 100; p+=5;Đâu là trị của biến p? 105 110 115 120Q89 Với các khai báo dưới đây, đâu là trị của biến c? char S[]="Helen"; char* p=S; char c=*p+3; H' e' l' n' Một trị khácQ90 Với đoạn code dưới đây, đâu là trị của biến n? int n=7, m=8; int *p1=&n, *p2=&m; *p1+=*p2-m+n; 10 12 15 20 Một trị khácQ91 Với đoạn mã dưới đây, đâu là tập trị mảng a? int a[5]={1,2,3,4,5}; int *p=a; *p+2+=5; {1,2,3,4,5} {6,7,8,9,10} {1,2,8,4,5} Một tập trị khácQ92 Số chiều của 1 mảng là Số chỉ số được dùng để nhận diện 1 phần tử của mảng Số phần tử của mảng Số vùng nhớ sẽ được cấp phát cho mảng Cả a,b,cQ93 Có bao nhiêu chuỗi "Hello" được xuất ra màn hình khi thực hiện code dưới? int i, j; fori=1; i toán tử mũi tên a, b sai a, b đúngQ99 Trị của biến S là bao nhiêu khi thực hiện đoạn code dưới? int i, S=0, a[5]; fori=0;i0 && i%2==0 a[i]=a[i]+1; } 40 60 20 80Q100 Sau khi đoạn code dưới được thực thi, tập trị của a là gì? int a[5]={2,3,4,5,5}; int *p1=&a[0], *p2=&a[4]; *p1++; *p2-; 2,3,4,5,5 3,3,4,5,5 3,3,4,4,5 3,3,4,6,6Q101 Trị của biến v là gì sau khi thực hiện đoạn code dưới? typedef struct ST{int d1, d2, d3;}; struct ST v={5,6,7}; struct ST* p=&v; 6,6,7 5,6,7 Nhóm trị khác Code gây lỗiQ102 Trị trung bình của các trị trong biến v là gì khi thực hiện đoạn code dưới? typedef struct STUDENT{int d1, d2, d3;}; struct STUDENT v={ 2,3,4}; Trị khác Code gây lỗiQ103 Đề nghị các biến nên dùng để mô tả 1 vòng tròn int x,y,r; int r; int x,y,r,t; int vt;Q104 Đề nghị các biến cần thiết giúp mô tả một hình chữ nhật int x1,y1,x2,y2; int rec; double area;Q105 Hãy khai báo 1 cấu trúc mô tả cho sinh viên, thông tin về mỗi sinh viên bao gồm tên, điểm 3 môn học structure STUDENT{char Name[25]; int s1,s2,s3;} struct STUDENT{char Name[25]; int s1,s2,s3;} struct STUDENT{char Name[25]; int s1,s2,s3;}; typedef STUDENT{char Name[25]; int s1,s2,s3;}Q106 Phát biểu nào sau đây là sai khi nói đến tập tin file? 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 Hệ điều hành nhận diện 1 tập tin nhờ vào tên đầy đủ của nó gồm đường dẫn, tên tập tin và đuôi mở rộng Dạng mô tả tên tập tin trong C "c\tm1\ hoặc "C\tm1\ Dạng mô tả tên tập tin trong C "c\\tm1\\ hoặc "C\\tm1\\ Chọn câu trả lời đúng khi thực hiện đoạn code sau? FILE *f=fopen" int n=7; fprintff,"%d",n; Code gây lỗi Code này sẽ ghi trị 7 lên file Code này sẽ đọc 1 trị từ file vào biến nQ108 Đâu là cách thức đúng khi khai báo hàm tính và trả về tổng các phần tử của 1 mảng int void Sumint a[]; long Suminta[]; void Sumint a[], int n; long Sumint a[], int n;Q109 Hãy khai báo hàm tìm trị lớn nhất trong 1 mảng các số long void Maxlong *a; long Maxlong *a[]; void Maxlong a[], int n; long Maxlong *a, int n; long Maxlong *a[], int n;Q110 Khai báo hàm đọc 1 text file vào 1 mảng các số int void Readchar* fName, int a[]; void Readchar* fName, int a; void Readchar* fName, int *a; void Readchar* fName, int *&a, int &n; void Readchar* fName, int *&a[], int &n;Q111 Một vòng tròn được mô tả bằng 3 biến int, trong đó mô tả vị trí của tâm và r mô tả cho bán kính vòng tròn. Hãy khai báo hàm vẽ vòng tròn void DrawCircle; void Drawint x, int y, int r; int Drawint r; int Drawint , int r;Q112 Hãy khai báo 1 hàm sẽ kiểm tra 1 mảng int có đối xứng hay không void Palindromeint a[], int n; int Palindromeint a[], int n; double Palindromeint a[], int n; boolean Palindromeint *a, int n;Q113 Hãy khai báo 1 hàm sẽ kiểm tra 1 chuỗi có đối xứng hay không void PalindromeString S; void Palindromechar S[]; double Palindromechar* S; boolean Palindromechar* S,int n;Q114 Hãy khai báo 1 hàm sẽ kiểm tra 1 mảng int có là mảng tăng hay không void CheckAscint a[], int n; int CheckAscint *a, int n; long CheckAscint* S; double CheckAscint* S[], int n;Q115 Một số các tác vụ sau sẽ được áp dụng để kiểm tra một số nguyên là lẻ hay chẵn. Theo ý bạn, thứ tự các bước nào sau đây là đúng? 1 - bắt đầu 2 - Nhập số nguyên n 3 - Nếu số dư là 0 thì hiển thị chuỗi "Đây là số chẵn" 4 - ngược lại hiển thị "Đây là số lẻ" 5 - chia n cho 2 6 - Kết thúc 1,2,3,4,5,6 1,5,4,3,2,6 1,2,5,3,4,6 1,5,3,4,2,6Q116 Đoạn code nào sẽ hoán vị 2 số a,b? t=a; a=b; b=t; t=a; a=b; t=b a=t ; b=a; t=b;Q117 Cho biết kết qủa của đoạn code dưới đây? int a []={1,5,3,7,9,5,7,3,4,12}, t1=a[0], t2=t1, i; fori=1; ia[i] t2=a[i]; } printf"%d", t1+t2; 2 21 13 Một trị khácQ118 Cho biết kết qủa của đoạn code dưới đây? int i, j; fori=1; iSalary; 12000 24000 Màn hình không hiển thị kết quả Đoạn mã có lỗiQ162 Cho đoạn code dưới đây, hãy lựa chọn đáp án đúng struct ITEM { char ItemCode[ ]; char ItemName [ ]; int Weight ; double Price; }; ITEM it1 = {"IT001","Fish sauce", Đoạn mã định nghĩa đúng về một item Đoạn mã có lỗiQ163 Stream là gì? Một chuỗi các byte Một khái niệm mô tả các terminal Một bộ tạo các thiết bị Tất cả các ý trênQ164 Có bao nhiêu kiểu stream? 1 2 3 4

câu hỏi trắc nghiệm lập trình c