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)
-
Câu 1:
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 2:
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 3:
Lệnh nào dùng để đóng chế độ đồ họa:
A. getch();
B. closegraph();
C. Cả 2 phương án trên đều sai.
D. Cả 2 phương án trên đều đúng.
-
Câu 4:
Cho a=3, b=2. Biến c=(a<<=b) sẽ có giá trị nào dưới đây:
A. c=9
B. c=12
C. c=6
D. c=8
-
Câu 5:
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 6:
Cho biết giá trị của biểu thức 2+4>2&&4<2
A. 1
B. 0
C. -1
D. Tất cả đều sai
-
Câu 7:
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 8:
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()
-
Câu 9:
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 10:
Phát biểu nào không đúng về onion:
A. Tất cả các trường chỉ dùng chung một vùng nhớ, và kích thước union bằng kích thước trường lớn nhất.
B. Các trường nằm rải rác trong bộ nhớ RAM và kích thước của các trường bằng tổng kích thước các trường.
C. Có thể khai báo các biến trong union có nhiều kiểu khác nhau.
D. Tại một thời điểm ta không thể chứa dữ liệu tại tất cả các thành phần của một biến union được.
-
Câu 11:
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 12:
Kết quả hiển thị ra màn hình của chương trình sau là gì?
#include <stdio.h> void main() { int a, b; a = 100; b = 56; printf(“ % d”, (a < b) ? a : b); }
A. 56
B. 100
C. Báo lỗi khi thực hiện xây dựng chương trình
D. Kết quả khác
-
Câu 13:
Kiểu dữ liệu nào dưới đây không được coi là kiểu dữ liệu cơ bản trong ngôn ngữ lập trình C
A. Kiểu mảng
B. Kiểu enum
C. Kiểu short int
D. Kiểu unsigned
-
Câu 14:
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
A. void Read( char* fName, int a[]);
B. void Read(char* fName, int a);
C. void Read(char* fName, int *a);
D. void Read(char* fName, int *&a, int &n);
-
Câu 15:
Các định dạng nào sau đâu có thể sử dụng để xuất số nguyên không dấu:
A. “%d”
B. “%unsigned”
C. “%i”
D. “%u”
-
Câu 16:
Trong chế độ đồ họa, hàm nào thường được dùng để hiện nội dung xâu:
A. printf();
B. outtext(char far * textstring);
C. outtextxy(int x, int y, char far *textstring);
D. putchar();
-
Câu 17:
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 18:
Đâu là kết quả của đoạn mã sau:
struct Employee { char Code[], name[]; long Salary; }; Employee e1 = { “ E089”, “Hoang so”, 12000 }, e2 = e1; printf(“ % ld”, el.Salary + e2 -> Salary);
A. 24000
B. 12000
C. Đoạn mã bị lỗi
D. Kết quả khác
-
Câu 19:
Cho các khai báo sau. Hãy chọn câu đúng nhất:
struct ngay { int ng, th, n; } vaotruong, ratruong; typedef struct sinhvien { char hoten; ngay ngaysinh; };
A. Không được phép gán: vaotruong = ratruong;
B. “sinhvien” là tên cấu trúc, “vaotruong”, “ratruong” là tên biến cấu trúc.
C. Có thể viết “vaotruong.ng”, “ratruong.th”, “sinhvien.vaotruong.n” để truy xuất đến các thành phần tương ứng.
D. A, B, C đều đúng
-
Câu 20:
Lệnh nào trong các lệnh sau cho phép chuyển sang vòng lặp tiếp theo mà không cần phải thực hiện phần còn lại của vòng lặp
A. break
B. goto
C. continue
D. return
-
Câu 21:
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 22:
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 23:
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 24:
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 25:
Kết quả của chương trình sau là gì :
#include
void main()
{
int i,j;
for (i=1; i<4; i++)
j=i;
printf(“%3d”,j);
};
A. “ 1 2 3 4”
B. “ 4”
C. “ 3”
D. Kết quả khác
-
Câu 26:
Nếu hàm được gọi trước khi nó định nghĩa thì điều kiện là gì:
A. Kiểu trả về của hàm phải là kiều void
B. Kiểu đầu vào của hàm phải là kiểu void
C. Trước khi gọi hàm nó phải được khai báo
D. Hàm chỉ trả về kiểu dữ liệu boolean
-
Câu 27:
Tham số clip trong hàm setviewport(int x1, int y1, int x2, int y2, int clip); qui định vấn đề gì:
A. Cho phép hiển thị hay không hiển thị các nét vẽ bên trong viewport
B. Cho phép hiển thị hay không hiển thị các nét vẽ bên ngoài viewport
C. Cả 2 đều đúng
D. Cả 2 đều sai
-
Câu 28:
Kiểu dữ liệu float có thể xử lí dữ liệu trong phạm vi nào
A. 3.4*10-38 đến 3.4*1038
B. -32768 đến 32767
C. -128 đến 127
D. 0…65535
-
Câu 29:
Kết quả in ra màn hình của chương trình sau
#include <stdio.h> void main() { int i = 5, j = 6; i = i - --j; printf(“ % d”, i); };
A. 5
B. 6
C. 1
D. 0
-
Câu 30:
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 31:
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 32:
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();
-
Câu 33:
Giả sử a và b là 2 số thực. Biểu thức nào dưới đây là không được phép:
A. (a+=b)
B. (a-=b)
C. (a>>=b)
D. (a*=b)
-
Câu 34:
Cho a=3, b=2. Biến c=(a<<=b) sẽ có giá trị nào dưới đây
A. c=9
B. c=12. [ c =(a = (a<<=b)) = (a= a.2b)]
C. c=8
D. c=6
-
Câu 35:
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 36:
Cho biết giá trị của biểu thức 2+4>2&&4<2:
A. 1
B. 0
C. -1
D. Không câu nào đúng
-
Câu 37:
Đâu là những toán tử toán học?
A. +, /, %.
B. +, -, *, /, %, ++, --, >, <
C. &&, ||
D. +, -, *, /, %, =, !=
-
Câu 38:
Trong các khai báo sau, khai báo nào không đúng:
A. struct Date{int ngay, thang, nam;};
B. struct { int ngay, thang, nam;} D1,D2;
C. typedef struct { int ngay, thang, nam;} Date;
D. struct Date { long int ngay:7; long int thang:6; long int nam:5; };
-
Câu 39:
Trong bước khởi tạo đồ họa ta cần:
A. Xác định vi mạch
B. Chọn chế độ đồ họa.
C. Cả 2 phương án trên đều sai
D. Cả 2 phương án trên đều đúng
-
Câu 40:
Câu nào sau đây cho thấy cú pháp đúng cho câu lệnh if?
A. if expression
B. if { expression
C. if ( expression )
D. expression if
-
Câu 41:
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 42:
Khi loại bỏ node x ở cây nhị phân tìm kiếm ta chỉ cần kiểm tra xem:
A. x có phải là node lá trái của cây nhị phân tìm kiếm hay không.
B. x có phải là node lá phải của cây nhị phân tìm kiếm hay không.
C. Sự tồn tại của x trên cây.
D. Cả 3 phương án a, b, c đều sai.
-
Câu 43:
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 44:
Kết quả của chương trình sau:
#include “stdio.h”
void main()
{
int i;
i=10;
printf(“%o”,i);
}
A. 12
B. 10
C. 8
D. Kết quả khác
-
Câu 45:
Hàm getpixel(int x, int y) dùng để làm gì:
A. Vẽ một điểm tại tọa độ (x,y);
B. Lấy giá trị màu của điểm tại tọa độ (x,y);
C. Vẽ một điểm tại vị trí con trỏ.
D. Cả 3 phương án đều sai.
-
Câu 46:
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 47:
Câu nào không nói đến ưu điểm của việc sử dụng cấu trúc:
A. Bạn có thể xử lí một cách hỗn hợp các kiểu dữ liệu trong một đơn vị.
B. Bạn có thể lưu dữ xâu kí tự có đọ dài khác nhau vào trong một biến cấu trúc.
C. Dữ liệu có thể lưu trữ trong một module và dưới dạng phân cấp.
D. Cần ít nhất một bộ nhớ cho cùng dữ liệu.
-
Câu 48:
Hàm nào dưới đây chỉ dùng để đọc 1 kí tự từ tệp
A. getch();
B. fscanf();
C. fgetc();
D. scanf();
-
Câu 49:
Cho một danh sách móc nối với các phần tử trong danh sách có kiểu S1 được định nghĩa như sau: struct S1{ int info; struct S1 * next;} *head;
Biết con trỏ “head” lưu địa chỉ của phần tử đầu tiên trong danh sách. Cho biết mục đích của câu lệnh sau: {(head->next)=(head->next)->next;};
A. Loại bỏ phần tử thứ nhất ra khỏi danh sách.
B. Loại bỏ phần tử thứ 2 ra khỏi danh sách.
C. Loại bỏ phần tử thứ 3 ra khỏi danh sách.
D. Câu lệnh bị lỗi.
-
Câu 50:
Các kí hiệu đặc trưng cho sự tác động lên dữ liệu được gọi là:
A. Toán tử
B. Biểu thức
C. Hàm
D. Biến