320 Câu hỏi trắc nghiệm lập trình C có đáp án
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)
Chọn phần
-
Câu 1:
: Kết quả của chương trình sau là gì :
#include <stdio.h> void main() { int i, j; for (i = 1; i < 4; i++) j = i; printf(“ % 3 d”, j); };
A. “ 1 2 3 4”
B. “ 4”
C. “ 3”
D. Kết quả khác
-
Câu 2:
Độ ưu tiên đối với các toán tử logic là:
A. AND, NOT, OR
B. NOT, OR, AND
C. OR, NOT, AND
D. NOT, AND, OR
-
Câu 3:
Kết quả của chương trình sau là gì
#include <stdio.h> void main() { int a = 40, b = 4; while (a != b) if (a > b) a = a - b; else b = b - a; printf(“ % d”, a); };
A. 2
B. 16
C. 4
D. Kết quả khác
-
Câu 4:
Giả sử trong ngôn ngữ C sử dụng khai báo “double a[12]”, phần tử a[7] là phần tử thứ bao nhiêu trong mảng a:
A. Thứ 6
B. Thứ 7
C. Thứ 8
D. Thứ 9
-
Câu 5:
Kết quả của chương trình sau là gì
#include <stdio.h> void hoanvi(int * px, int * py) { int z; z = * px; * px = * py; * py = z; }; void main() { int a = 15, b = 21; hoanvi(a, b); printf(“ % d % d”, a, b); };
A. “15 21”
B. “21 15”
C. Báo lỗi khi thực hiện chương trình
D. Kết quả khác
-
Câu 6:
Kết quả chương trình sau là gì:
#include <stdio.h> void hoanvi(int px, int py) { int pz; pz = px; px = py; py = pz; }; void main() { int a = 15, b = 21; hoanvi(a, b); printf(“ % d % d”, a, b); };
A. “21 15”
B. “15 21”
C. Báo lỗi khi thực hiện chương trình
D. Kết quả khác
-
Câu 7:
Phát biểu nào sau đây không phài là lợi ích của việc dùng hàm
A. Tránh dư thừa, lặp lại nhiều lần một đoạn lệnh
B. Dễ bảo trì
C. Khả năng sử dụng lại đoạn lệnh
D. Tất cả đều sai
-
Câu 8:
Khai báo các biến: int m,n; float x,y; Lệnh nào sai :
A. n=5 ;
B. x=10 ;
C. y=12.5 ;
D. m=2.5 ;
-
Câu 9:
Kết quả in ra màn hình của chương trình sau:
#include <stdio.h > void main() { char * s; s = ”chao cac ban”; strcpy( & s[5], & s[9]); printf(“ % s”, s); };
A. “chao”
B. “chao cac”
C. “chao ban”
D. “chao cac ban”
-
Câu 10:
Kết quả in ra màn hình của chương trình sau:
#include <stdio.h> void main() { int a = 100, b = 6; double f; f = (double) a / (double) b; printf(“ % 2.2 f”, f); };
A. “16”
B. “16.00”
C. “16.67”
D. Kết quả khác
-
Câu 11:
Kết quả in ra màn hình của biểu thức sau là gì: -3+4%5/2
A. -1
B. -3
C. 1
D. Kết quả khác
-
Câu 12:
Có các khai báo sau: int x=15; int *p; Muốn p là con trỏ trỏ tới x phải thực hiện lệnh nào
A. p=x;
B. p=&x;
C. p=*x;
D. Tất cả các lệnh đều đúng
-
Câu 13:
Nếu có các khai báo sau. Câu nào sau đây sẽ là đúng:
char msg[10]; char value;
A. msg[2]=value;
B. msg=value;
C. Cả hai câu trên
D. Không câu nào đúng
-
Câu 14:
Nếu có các khai báo sau. Câu nào sau đây là đúng:
char msg[10]; char * ptr; char value;
A. ptr=value;
B. ptr=msg;
C. Cả hai câu trên đều đúng
D. Cả hai câu trên đều sai
-
Câu 15:
Kí hiệu nào là con trỏ của phẩn tử thứ 3 của màng a có 4 kí tự:
A. *(a+3);
B. *(a+2);
C. *a+3;
D. *(a+4);
-
Câu 16:
Cho các khai báo sau. Phép gán nào là không hợp lệ:
void * tongquat; int * nguyen; char * kitu;
A. tongquat=nguyen;
B. *nguyen=*tongquat;
C. kitu=(char)tongquat;
D. tongquat=kitu;
-
Câu 17:
Cho biết kết quả của đoạn chương trình sau:
int p = 4; p = 10 + ++p;
A. 14
B. 15
C. 16
D. 17
-
Câu 18:
Có các khai báo sau. Trong các câu lệnh sau, câu nào đúng:
char tb, mang[15];
A. tb=”chào bạn”;
B. gets(mang);
C. mang=”chao ban”;
D. gets(tb);
-
Câu 19:
Phép cộng 1 con trỏ với một số nuyên sẽ là
A. Một con trỏ có cùng kiểu
B. Một số nguyên
C. Cả hai kết quả đều đúng
D. Cả hai kết quả đều sai
-
Câu 20:
Phép trừ 2 con trỏ có cùng kiểu sẽ là
A. Một con trỏ có cùng kiểu
B. Một số nguyên
C. Kết quả khác
D. Không thực hiện được
-
Câu 21:
Phép toán 1 ngôi nào dùng để xác định địa chỉ của đối tượng mà con trỏ chỉ tới:
A. *;
B. !;
C. &;
D. Kết quả khác
-
Câu 22:
Sự hiệu chỉnh các kiểu dữ liệu số học khi tính toán là:
A. int -> long -> float -> double -> long double
B. int -> float -> long -> double -> long double
C. int -> double -> float ->long -> long double
D. long -> int -> float -> double -> long double
-
Câu 23:
Cho đoạn chương trình sau. Giả sử khi chạy chương trình ta gõ từ bản phím: “29h b”. Kết quả in ra n và c tương ứng sẽ là:
#include <stdio.h> void main() { char c; int n; scanf(“ % d % c”, & n, & c); printf(“ % 3 d % c”, n, c); };
A. “ 29b”
B. “ 29h b”
C. “ 29h”
D. Kết quả khác
-
Câu 24:
Khi khai báo mảng, ta khởi tạo luôn giá trị của mảng như sau:
int x[3]={4,2,6}; Nghĩa là:
A. x[1]=4, x[2]=2, x[3]=6
B. x[0]=4, x[1]=2, x[2]=6;
C. Khai báo không đúng
D. Kết quả khác
-
Câu 25:
Khi biến con trỏ không chứa bất kì một địa chỉ nào thì giá trị của nó sẽ là:
A. 0
B. NULL
C. Cả hai phương án trên đều đúng
D. Cả hai phương án trên đều sai
-
Câu 26:
Các kí hiệu đặc trưng cho sự tác động lên dữ liệu gọi là
A. Hàm
B. Biểu thức
C. Biến
D. Toán tử
-
Câu 27:
Kết quả của chương trình sau là gì:
#include <stdio.h> void main() { int x, * p; x = 3; x = 6; p = & x; * p = 9; printf(“ % d”, x); printf(“ % d”, * p); printf(“ % d”, x); };
A. “369”
B. “696”
C. “999”
D. Kết quả khác
-
Câu 28:
Kết quả của chương trình sau là gì:
#include <stdio.h> int change(int a) { a = 10; return a; }; void main() { int a = 5; change(i); printf(“ % d”, i); };
A. 5
B. 10
C. 0
D. Báo lỗi khi thực hiện chương trình
-
Câu 29:
Những phát biểu nào sau đây là đúng
A. Rẽ nhánh là việc chọn ra một trong hai hay nhiều con đường cho việc thực hiện tính toán sau đó
B. Lưu đồ có thể có nhiều điểm bắt đầu và kết thức
C. Kiểu kí tự chứa một kí tự nằm trong dấu nháy kép
D. Trong các lệnh if lồng nhau, else thuộc về if phía trước gần nó nhất.
-
Câu 30:
Kết quả của chương trình sau là gì:
#include <stdio.h> int change(int * a) { * a = 10; return *a; }; void main() { int i = 5; change( & i); printf(“ % d”, i); };
A. 5
B. 10
C. 0
D. Báo lỗi khi thực hiện xây dựng chương trình
-
Câu 31:
Kết quả của chương trình sau là gì:
#include <stdio.h> void main() { int x, * p; x = 6; p = & x; printf(“ % d”, x); printf(“ % d”, * p); };
A. 69
B. 66
C. Lỗi khi xây dựng chương trình
D. Kết quả khác
-
Câu 32:
Kết quả của chương trình sau là gì:
#include <stdio.h> void main() { printf(“ % d”, 3 < 2 || 6); };
A. True
B. 0
C. 1
D. Kết quả khác
-
Câu 33:
Cái gì quyết định kích thước của vùng nhớ được cấp phát cho các biến:
A. Tên biến
B. Kiểu dữ liệu của biến
C. Giá trị của biến
D. Tất cả đều đúng
-
Câu 34:
Kết quả của chương trình sau là gì?
#include <stdio.h> void main() { int i, k; for (i = 1;; i++) k = 5; printf(“ % d”, i); };
A. 0
B. 5
C. Vòng lặp vô hạn
D. Kết quả khác
-
Câu 35:
Kết quả của chương trình sau là gì?
#include <stdio.h> void main() { int i = 1, k = 0; for (; i < 5; i++) k++; printf(“ % d”, k); }
A. 0
B. 4
C. 5
D. Vòng lặp vô hạn
-
Câu 36:
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;
B. continue;
C. goto;
D. Không có phương án nào
-
Câu 37:
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();
B. printf();
C. putchar();
D. 2 và 3
-
Câu 38:
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ì:
#include <stdio.h> #include <conio.h> int main() { clrscr(); char str[80]; fflush(stdin); scanf(“ % s”, str); cprintf(“Dong van ban vua nhap la: % s”, str); getch(); return 0; };
A. “Chao Cac Ban”
B. “Chao Cac”
C. “Chao”
D. Không hiện kết quả gì
-
Câu 39:
Kết quả của chương trình sau là gì:
#include <stdio.h> #include <conio.h> void main() { clrscr(); int i; for (i = 1; i <= 24; i++); printf(“\n % d”, i); getch(); return; };
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
C. Kết quả khác
D. In ra màn hình các số từ 1 đến 24, mỗi số một dòng
-
Câu 40:
Lệnh fflush(stdin) dùng để làm gì?
A. Đọc kí tự từ bàn phím
B. Xóa sạch bộ nhớ đệm
C. Xóa bộ nhớ đệm
D. Kết quả khác
-
Câu 41:
Kết quả của đoạn chương trình sau là gì, nếu gõ vào : ”10 T”.
char c; int n; scanf(“ % d % c”, & n, & c);
A. n=10, c=’ ‘
B. Lỗi khi xây dựng chương trình
C. n=10, c=’T’
D. Kết quả khác
-
Câu 42:
Kết quả in ra màn hình của chương trình sau:
#include <stdio.h> void main() { int i = 100; printf(“ % c”, i); };
A. “d”
B. “D”
C. “100”
D. Kết quả khác
-
Câu 43:
Hằng có thể được định nghĩa theo cách nào?
A. #define <indentifier> string
B. const tên_kiểu tên_biến_hằng = giá trị;
C. Không có cách định nghĩa chung
D. 1 và 2
-
Câu 44:
Hàm gotoxy(int x, int y) là hàm:
A. Đặt con trỏ tại dòng x, cột y
B. Đặt con trỏ tại cột x, dòng y
C. Lưu dữ tọa độ của con trỏ màn hình 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
-
Câu 45:
Kết quả của chương trình sau là gì?
#include <stdio.h> #include <conio.h> float x[] = { 63.2, -45.6, 70.1, 3.6, 14.5 }; int n = sizeof(x) / sizeof(float); void main() { clrscr(); int i, j; floar c; for (i = 0, j = n - 1; i < j; i++, j--); { c = x[i]; x[i] = x[j]; x[j] = c; }; printf(“\nDay ket qua la: \n”); for (i = 0; i < n; i++) printf(“ % 8.2 f”, x[i]); getch(); return; };
A. Dãy kết quả là: 63.20, -45.60, 70.10, 3.60, 14.50
B. Dãy kết quả là : 14.50, 3.60, 70.10, -45.60, 63.20
C. Kết quả khác
D. 1 và 2
-
Câu 46:
Kết quả của chương trình sau là gì?
#include <stdio.h> #include <conio.h> #include <ctype.h> #define EOL‘\ n’ void main() { clrscr(); char chu[80]; int tong, dem; for (dem = 0; dem < tong; dem++); tong = dem; for (dem = 0; dem < tong; ++dem) putchar(toupper(chu[dem])); getch(); return; };
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
D. Kết quả khác
-
Câu 47:
Phép toán % có ý nghĩa gì?
A. Đổi dấu một số thực hoặc một số nguyên
B. Chia hai số thực hoặc nguyên
C. Lấy phần dư của phép chia hai số nguyên
D. 1 và 2
-
Câu 48:
Hàm clrscr() là hàm gì?
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
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ỏ
D. Là hàm xóa kí tự nằm bên phải con trỏ
-
Câu 49:
Kết quả của đoạn chương trình sau là gì? Nếu gõ vào: “r 45”.
char c; int n; scanf(“ % c % d”, & n, & c);
A. n=45, c=’ ‘
B. n=45, c=’r’
C. Lỗi khi xây dựng chương trình
D. Kết quả khác
-
Câu 50:
Kết quả của đoạn chương trình sau là gì? Nếu gõ vào: “r 45”.
char c; int n; scanf(“ % c % d”, & n, & c);
A. n=45, c=’ ‘
B. n=45, c=’r’
C. Lỗi khi xây dựng chương trình
D. Kết quả khác