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:
Trong chế độ đồ họa, hàm nào sau đây xác lập kiểu chữ, cỡ chữ:
A. outtextxy(int x, int y, char far * textstring);
B. outtext(char far *textstring);
C. settextstyle(int font, int direction, int charsize);
D. Cả 3 phương án trên.
-
Câu 2:
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 3:
Kết quả của chương trình sau là gì?
#include <stdio.h> void main() { printf(“ % d”, 3 < 7 && 8 > 6); };
A. 1
B. 0
C. True
D. Kết quả khác
-
Câu 4:
Hàm nào dưới đây chỉ dùng để đọc 1 khối dữ liệu từ tệp:
A. fgets();
B. fputs();
C. fwrite();
D. fread();
-
Câu 5:
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 6:
Đoạn code nào sẽ hoán vị 2 số a và b:
A. t=a; a=b; b=t;
B. t=a; a=b; t=b;
C. a=t; b=a; t=b;
D. t=b; b=a; a=t;
-
Câu 7:
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<=4; i+=2)
printf(“%3d”,i);
};
A. “ 1 2 3 4”
B. “ 2 3 4”
C. “ 2 4”
D. Chương trình không chạy được
-
Câu 8:
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
-
Câu 9:
Đâ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.
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.
C. Sau khi sử dụng có thể giải phóng đi để tiết kiệm chỗ trong bộ nhớ.
D. Tất cả các đáp án trên.
-
Câu 10:
Phát biểu nào là đúng khi nói về 2 hàm:
rectangle(int x1, int y1, int x2, int y2) và bar(int x1, int y1, int x2, int y2):
A. Cả 2 hàm đều vẽ hình chữ nhật.
B. Hàm thứ nhất chỉ vẽ đường viền hình chữ nhật, không tô màu bên trong còn hàm thứ 2 thì tô cả màu bên trong.
C. Hàm thứ 2 chỉ vẽ đường viền hình chữ nhật, không tô màu bên trong còn hàm thứ nhất thì tô cả màu bên trong.
D. Cả hai hàm đều vẽ hình chữ nhật và tô cả màu bên trong.
-
Câu 11:
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 12:
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 13:
Cho đoạn chương trình sau. Kết quả trả về là:
#include <stdio.h> int main() { int w = 3; int x = 31; int y = 10; double z = x / y % w; printf("%f\n", z); return 0; }
A. 1
B. 0
C. 0.1
D. 2
-
Câu 14:
Cho đoạn chương trình sau. Biết kích thước kiểu char: 1 byte, float : 4 byte, int : 4 byte, double : 8 byte, long : 4 byte. Kết quả trả về sẽ là:
#include <stdio.h> #include <conio.h> int main() { printf("%d\t", sizeof(6.5)); printf("%d\t", sizeof(90000)); printf("%d", sizeof('A')); getch(); }
A. 8 4 1
B. 8 2 1
C. 4 4 1
D. Kết quả khác
-
Câu 15:
Trong các hàm sau, hàm nào là hàm không định dạng để in một chuỗi kí tự ra màn hình
A. puts()
B. printf()
C. scanf()
D. gets()
-
Câu 16:
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 17:
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 18:
Cho đoạn chương trình. Giá trị của c sẽ là:
char S[] = “Helen”; char * p = S; char c = * (p + 3);
A. ‘H’
B. ‘e’
C. ‘l’
D. ‘n’
-
Câu 19:
Phát biểu đúng nhất về mẫu lệnh( f là con trỏ tệp):
while ((ch = fgetc(f)) != EOF)…
A. Chọn 1 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.
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.
-
Câu 20:
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 21:
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 22:
Nghiên cứu đoạn code sau. Hãy chọn câu đúng
FILE * f = fopen(“FL.txt”, ”r”); int n = 7; fprintf(f, ” % d”, n);
A. Đoạn code gây lỗi
B. Đoạn code không lỗi
C. Đoạn code này sẽ ghi trị 7 lên file “FL.txt”
D. Đoạn code này sẽ đọc một trị từ file “FL.txt” vào biến n
-
Câu 23:
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:
A. num>1&&num<9&&num!=4;
B. num>1||num<9&&num!=4;
C. num>=1&&num<=9&&num!=4;
D. Không câu nào đúng.
-
Câu 24:
Đâu là phát biểu sai:
A. Có thể truyền tham số là một biến struct cho hàm.
B. Có thể truyền tham số là một biến con trỏ cho hàm.
C. Có thể truyền tham số là một biến con trỏ struct cho hàm.
D. Không thể truyền tham số là phần tử của struct cho hàm.
-
Câu 25:
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 26:
Số màu có thể biểu diễn trong chế độ đồ họa do yếu tố nào quy định:
A. Số bít tương ứng với 1 pixel.
B. Độ phân giải màn hình
C. Do kích thước màn hình
D. Không phải 3 yếu tố trên
-
Câu 27:
Hàm nào dưới đây chỉ dùng để ghi 1 xâu kí tự vào tệp:
A. putch();
B. puts();
C. fputc();
D. fputs();
-
Câu 28:
Hàm nào dưới đây dùng để ghi 1 xâu kí tự vào tệp
A. putch();
B. fputc();
C. fputs();
D. puts();
-
Câu 29:
Dấu hiệu nào là đúng khi sử dụng hàm fputs();
A. int puts(const char *s, FILE *f);
B. int puts( const char *s);
C. int puts(FILE *f, const char *s);
D. int puts(FILE *f);
-
Câu 30:
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:
- printf();
- scanf();
- getchar();
- putchar();
A. 1,2
B. 3,4
C. 1,4
D. 2,3
-
Câu 31:
Kết quả của chương trình sau là gì:
#include
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 32:
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 33:
Đối với kiểu có cấu trúc, cách gán nào sau đây là không được phép:
A. Gán biến cho nhau.
B. Gán hai phần tử mảng( kiểu cấu trúc) cho nhau.
C. Gán một phần tử mảng( kiểu cấu trúc) cho một biến hoặc ngược lại.
D. Gán hai mảng có cấu trúc có cùng số phần tử cho nhau.
-
Câu 34:
Trong số các định dạng dưới đây, định dạng nào dùng để in ra địa chỉ:
A. “%f”
B. “%s”
C. “%p”
D. “%h”
-
Câu 35:
Một biến phải bắt đầu với:
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.
C. Một kí tự kiểu số
D. Một toán tử như: +, -…
-
Câu 36:
Khi thực hiện việc thêm một node x vào cây nhị phân tìm kiếm ta chỉ cần:
A. Tìm vị trí thích hợp cho nhánh cây con bên phải.
B. Tìm vị trí thích hợp cho x trên toàn bộ cây.
C. Tìm vị trí thích hợp cho nhánh cây con ở bên trái.
D. Không ý nào đúng.
-
Câu 37:
Kết quả in ra màn hình của chương trình sau :
#include
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 38:
Chọn kết quả đúng cho chương trình sau:
#include <stdio.h> void main() { clrscr(); struct sv { float d; char ht[10]; }; struct sv m, * p; p = & m; ( * p).d = p -> d = 10; strcpy(m.ht, ”NguyenVanTuan”); printf(“ % 0.1 f”, m.d); printf(“ % s”, m.ht); };
A. “10.000000NguyenVanTuan”
B. “10.0NguyenVanTuan”
C. Chương trình bị lỗi
D. Kết quả khác
-
Câu 39:
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 40:
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 41:
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 42:
Không gian nhớ dùng để lưu trữ các node của danh sách liên kết kép:
A. Lưu trữ rởi rác trong bộ nhớ.
B. Luôn lưu trữ liên tục trong bộ nhớ
C. Lưu trữ theo kiểu phân trang.
D. Lưu trữ theo kiểu phân đoạn
-
Câu 43:
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 44:
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 45:
Hàm nào dưới đây chỉ dùng để nhập dữ liệu từ tệp:
A. getc()
B. scanf();
C. getch();
D. fscanf();
-
Câu 46:
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 47:
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 48:
Chọn đáp án đúng khi sử dụng trường kiểu bit:
A. Độ dài các trường không vượt quá 16 bít.
B. Áp dụng được cho các trường có kiểu số nguyên và số thực.
C. Cho phép lấy địa chỉ trường kiểu nhóm bít.
D. Xây dựng được các mảng kiểu nhóm bít.
-
Câu 49:
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 50:
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.