THANH ĐIỀN IT
Nơi chia sẻ kiến thức lập trình và mọi thứ
Chủ Nhật, ngày 27 tháng 12 năm 2015
Đáp án c
Bài Tập Trắc Nghiệm Lập Trình C, Có Đáp Án.
Bài Tập Trắc Nghiệm Lập Trình C, Có Đáp Án.
Link tải bài tập trắc nghiệm C.
https://mega.co.nz/#!xJMnWCZI!gp3gYnCVqy9UD-cdXQvlOE5EqmpQCSc42x7h5QGcLkQ
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.
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
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().
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) (ab).
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 20: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<
Câu 21 :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 22 :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=6.
d) c=8.
Câu 23 : Kết quả hiển thị ra màn hình của chương trình sau
là gì :
#include
void main()
{
int a,b ;
a=100 ;
b=56 ;
printf(“%d”,(a
}
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 24: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 25: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 26:Sử dụng cách truyền nào trong hàm sẽ không làm thay đổi
giá trị của biến trong chương trình chính:
a) Truyền bằng trị.
b) Truyền bằng giá
trị địa chỉ của tham số.
c) Cả a và b đều
đúng.
d) Cả a và b đều
sai.
Câu 27 : Cho biết giá trị của biểu thức 5>1 :
a) -1.
b) 0.
c) 1.
d) Không câu nào
đúng.
Câu 28 : Cho biết giá trị của biểu thức
2+4>2&&4<2 nbsp="" span="">2>
a) 1.
b) 0.
c) -1 .
d) Không câu nào
đúng.
Câu 29 :Biến con trỏ có thể chứa :
a) Địa chỉ vùng nhớ
của một biến khác.
b) Giá trị của một
biến khác.
c) Cả a và b đều
đúng.
d) Cả a và b đều
sai.
Câu 30 :Dữ liệu kí tự bao gồm :
a) Các kí tự số chữ
số.
b) Các kí tự chữ
cái.
c) Các kí tự đặc
biệt.
d) Cả a,b và c.
Câu 31: 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 32 : 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 33 : 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 34 :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 35 :Giả sử có câu lệnh ch=’A’. Vậy ch sẽ chứa bao nhiêu
byte :
a) 1.
b) 2.
c) 3.
d) 4.
Câu 36 : Giả sử có câu lệnh ch[]= "A". ch chứa bao
nhiêu bytes :
a) 1.
b) 2.
c) 3.
d) 4.
Câu 37 : Kết quả in ra màn hình của chương trình sau :
#include
void main()
{
int
ch=’A’;
printf(“%d”,ch);
}
a) A.
b) a.
c) 65.
d) Kết quả khác.
Câu 38: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 39: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) 6.
b) 5.
c) 1.
d) 0.
Câu 40: 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 41: 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 42: 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 43: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 44: 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 45:Kết quả in ra màn hình của chương trình sau là gì:
#include
void main()
{
int i;
for (i=2;
; i++)
printf(“%3d”,i);
};
a) Vòng lặp vô hạn.
b) “ 2”.
c) “ 1 2”.
d) Kết quả khác.
Câu 46: 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 47: 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 48: 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 49: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.
Câu 50 : Kết quả của chương trình sau là gì :
#include
void main()
{
int i,j;
for (i=1;
i<4 i="" span="">4>
j=i;
printf(“%3d”,j);
};
a) “ 1
2 3 4”.
b) “ 4”.
c) “ 3”.
d) Kết quả khác.
Câu 51:Độ ư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 52: Kết quả của chương trình sau là gì:
#include
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 53: 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 54: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 55: Kết quả chương trình sau là gì:
#include
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 56: 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 57: 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 58 :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 59:Kết quả in ra màn hình của chương trình sau:
#include
void main()
{
int a=100,
b=6;
double f;
f=(double)a/(double)b;
printf(“%2.2f”,f);
};
a) “16”.
b) “16.00”.
c) “16.67”.
d) Kết quả khác.
Câu 60: 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 61: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 62: Nếu có các khai báo sau:
char msg[10];
char value;
Câu nào sau đây sẽ là đúng:
a) msg[2]=value;
b) msg=value;
c) Cả hai câu
trên.
d) Không câu nào
đúng.
Câu 63: Nếu có các khai báo sau:
char msg[10];
char *ptr;
char value;
Câu nào sau đây là đúng:
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 64: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 65:Cho các khai báo sau:
void *tongquat;
int *nguyen;
char *kitu;
Phép gán nào là không hợp lệ:
a)
tongquat=nguyen;
b)
*nguyen=*tongquat;
c)
kitu=(char)tongquat;
d) tongquat=kitu;
Câu 66: 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) Kết quả khác.
Câu 67:Có các khai báo sau:
char tb, mang[15];
Trong các câu lệnh sau, câu nào đúng:
a) tb=”chào bạn”;
b) gets(mang);
c) mang=”chaoban”;
d) gets(tb);
Câu 68: 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 69: 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 70: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 71: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 72:Chương trình:
#include
void main()
{
char c;
int n;
scanf(“%d%c”,&n,&c);
printf(“%3d%c”,n,c);
};
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à:
a) “ 29b”.
b) “ 29h b”.
c) “ 29h”.
d) Kết quả khác.
Câu 73: 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 74: 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 75: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 76: Kết quả của chương trình sau là gì:
#include
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 77: Kết quả của chương trình sau là gì:
#include
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 78: 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 79: Kết quả của chương trình sau là gì:
#include
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 80: Kết quả của chương trình sau là gì:
#include
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 81:Kết quả của chương trình sau là gì:
#include
void main()
{
printf(“%d”,3<2 span="">2>
};
a) true.
b) 0.
c) 1.
d) Kết quả khác.
Câu 82: 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 83: Kết quả của chương trình sau là gì:
#include
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 84: Kết quả của chương trình sau là gì:
#include
void main()
{
int i=1,
k=0;
for (;
i<5 i="" k="" span="">5>
printf(“%d”,k);
}
a) 0.
b) 4.
c) 5.
d) Vòng lặp vô hạn.
Câu 85: 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 86: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 87: 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
#include
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 88: Kết quả của chương trình sau là gì:
#include
#include
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 89: 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 90: Kết quả của đoạn chương trình sau là gì:
char c;
int n;
scanf(“%d%c”,&n,&c);
Nếu gõ vào : ”10 T”.
a) n=10, c=’ ‘.
b) n=10, c=’T’.
c) Lỗi khi xây dựng
chương trình.
d) Kết quả khác.
Câu 91 : Kết quả in ra màn hình của chương trình sau:
#include
void main()
{
int i=100;
printf(“%c”,i);
};
a) “d”.
b) “D”.
c) “100”.
d) Kết quả khác.
Câu 91: Hằng có thể được định nghĩa theo cách nào:
a) #define 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 92: 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 93 : Kết quả của chương trình sau là gì :
#include
#include
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
{
c=x[i];
x[i]=x[j];
x[j]=c;
};
printf(“\nDay ket qua la: \n”) ;
for (i=0 ;
i
printf(“%8.2f ”,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 94 : Kết quả của chương trình sau là gì :
#include
#include
#include
#define EOL ‘\n’
void main()
{
clrscr();
char
chu[80];
int
tong,dem;
for
(dem=0; dem
tong=dem;
for
(dem=0; 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 95: 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 96: 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 97: Kết quả của đoạn chương trình sau là gì:
char c;
int n;
scanf(“%c%d”,&n,&c);
Nếu gõ vào: “r 45”.
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 97: Hàm scanf(“%[^\n]”,str); tương với lệnh nào sau đây:
a) getch();
b) getche();
c) macro getchar();
d) gets(str);
Câu 98: Cho đoạn chương trình sau:
#include
#include
void main()
{
char c;
clrscr();
do
c=getchar();
while (c!=’*’);
getch();
};
Yêu cầu của đoạn chương trình trên là:
a) Nhập vào 1 kí tự
cho đến khi gặp kí tự ‘*’.
b) Nhập vào các kí
tự cho tới khi gặp kí tự ‘*’.
c) Nhập các kí tự
‘*’.
d) Lỗi khi xây dựng
chương trình.
Câu 99: Kết quả của chương trình sau là gì:
#include
void main()
{
printf(“%d”,3<7 amp="">6);7>
};
a) 1.
b) 0.
c) true.
d) Kết quả khác.
Câu 99:Toán tử “++n” được hiểu:
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.
d) Giá trị của n
được tăng lên trước khi giá trị của nó được sử dụng.
Câu 100: Toán tử “n--“ được hiểu:
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.
d) Giá trị của n
được tăng lên trước khi giá trị của nó được sử dụng.
Câu 101:Phép toán 1 ngôi nào dùng để xác định giá trị ở địa
chỉ con trỏ trỏ tới:
a) !;
b) &;
c) *;
d) Kết quả khác.
Câu 102: Phép trừ 1 con trỏ với một số nguyên sẽ là:
a) Một số nguyên.
b) Một con trỏ
cùng kiểu.
c) Cả hai kết quả
trên đều đúng.
d) Cả hai kết quả
trên đều sai.
Câu 103: Đâ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 104:Đâu là kết quả của câu lệnh sau:
printf(“%2f”,123.5678908);
a) 123.56
b) 123.567890
c) 123.567
d) Kết quả
khác. (123.567891).
Câu 105:
char S[20]=”aaaaaea”;
char* p=strstr(S,”e”);
Nếu địa chỉ của S là 1000, thì giá trị của p là bao nhiêu:
a) 1000.
b) 1005.
c) 1003.
d) Kết quả khác.
Câu 106: 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:
1- Begin(bắt đầu).
2- Nhập số nguyên
n.
3- Nếu số đó 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- End(kết thúc).
Theo bạn, thứ tự các bước nào sau đây là đúng:
a) 1,2,3,4,5,6.
b) 1,5,4,3,2,6.
c) 1,2,5,3,4,6.
d) 1,5,3,4,2,6.
Câu 107: 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 108: 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);
Câu 109: 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:
a) void Sum( int
a[]);
b) long Sum( int
*a);
c) void Sum(int
a[], int n);
d) cả 3 phương án
trên đều sai.
Câu 110:Để 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:
a) void
CheckAsc(int a[], int n);
b) int
CheckAsc(int *a, int n);
c) long
CheckAsc(int *S);
d) double
CheckAsc(int S[], int n);
Câu 111:Đ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 112: Trong các câu sau, câu nào đúng:
a) Giá trị của một
biến có thể thay đổi được.
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) Không thể khai
báo 2 biến trùng tên trong cùng một hàm.
Câu 113: 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 114:Kích thước của biến con trỏ là:
a) 1 byte.
b) 2 byte.
c) 3 byte.
d) Không có đáp án
nào đúng.
Câu 115: Cho biết giá trị của biểu thức:
2+4>2&&4<2 span="">2>
a) 1.
b) 0.
c) -1.
d) Không câu nào
đúng.
Câu 116: Giá trị lôgic của biểu thức sau là gì:
!(1&&1||1&&0);
a) 1.
b) 0.
c) -1.
d) Không câu nào
đúng.
Câu 117: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 amp="" num="" span="">9>
b)
num>1||num<9 amp="" num="" span="">9>
c)
num>=1&&num<=9&&num!=4;
d) Không câu nào
đúng.
Câu 118:Tìm kết quả của chương trình sau:
main()
{
int n;
for (n=18;
n>0; n/=2)
printf(“%3d”,n);
};
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”.
d) Không câu nào
đúng.
Câu 119: Tìm kết quả của chương trình sau:
#include
main()
{
int i, ch;
for (i=0,
ch=’A’; i<5 ch="" i="" span="">5>
putchar(ch);
};
a) “ABCDE”.
b) “ABC”.
c) “ACEG”.
d) Không câu nào
đúng.
Câu 120: Tìm kết quả của chương trình sau:
#include
main()
{
int i,ch;
for
(i=0,ch=’A’; i<4 ch="" i="" span="">4>
putchar(ch);
};
a) “ABCDE”.
b) “ABC”.
c) “ACEG”.
d) Không câu nào
đúng.
Câu 121: Nếu có khai báo:
char *ptr;
char msg[10];
char v;
Câu nào sẽ đúng:
a) ptr=v;
b) ptr=msg;
c) Cả hai câu đều
đúng.
d) Không câu nào
đúng.
Câu 122:Tại sao hai hàm scanf() và printf() gọi là 2 hàm nhập,
xuất có định dạng:
a) Vì chúng có chuỗi
định dạng trong tham số.
b) Vì chúng thường
dùng để nhập, xuất các trị trong chỉ một kiểu đã định trước.
c) Vì một lí do
khác.
d) 2 hàm trên
không phải là hai hàm nhập xuất có định dạng.
Câu 123: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:
1- printf();
2- scanf();
3- getchar();
4- putchar();
a) 1,2.
b) 3,4.
c) 1,4.
d) 2,3.
Câu 124:Nếu strcmp(S1,S2) trả về số nguyên âm thì:
a) Nội dung của
chuỗi S1 lớn hơn nội dung chuỗi S2.
b) Nội dung chuỗi
S1 nhỏ hơn nội dung chuỗi S2.
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.
Câu 125: Chọn một phát biểu sai:
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.
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. (1 byte)/
Câu 126: 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 127: Đị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”.
Câu 128:Đâu là những toán tử toán học:
a) +, /, %.
b) +, -, *, /, %,
++, --, >, <.
c) &&, ||.
d) +, -, *, /, %,
=, !=.
Câu 129: 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 130: Chọn kết quả của đoạn code sau:
for (int i=1; i<10 i="" span="">10>
for(int
j=1; j<10 j="" span="">10>
ì (j%i==0) printf(“Hello\n”);
a) 6 chuỗi
“Hello”.
b) 12 chuỗi
“Hello”.
c) Không có kết quả
xuất ra màn hình.
d) 23 chuỗi
“Hello”.
Câu 131: Một số tác vụ sau sẽ được dùng để kiểm tra một số
nguyên là lẻ hay chẵn:
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ị chuỗi: “Đây là số lẻ”;
5- Chia n cho 2;
6- Kết thúc;
Thứ tự các bước như thế nào là đúng:
a) 1, 2, 3, 4, 5,
6.
b) 1, 5, 4, 3, 2,
6.
c) 1, 2, 5, 3, 4,
6.
d) 1, 5, 3, 4, 2,
6.
Câu 132: Cho đoạn chương trình sau:
int n=0;
for (int i=0; i<10 i="" n="" span="">10>
Giá trị của biến n là:
a) 8.
b) 12.
c) 16.
d) 20.
Câu 133: Mảng là:
a) Một nhóm phần tử
có cùng kiểu và chung tên gọi.
b) Một nhóm phần tử
có thể có kiểu riêng 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.
Câu 134: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.
c) Cả hai câu trên
đểu đúng.
d) Cả hai câu trên
đều sai.
Câu 135: Đâ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 136: 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.
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.
c) “C:\tm\TEN.txt”
– Dạng mô tả tập tin trong C.
d) “C:/tm/TEN.txt”
– Dạng mô tả tập tin trong C.
Câu 137:Nghiên cứu đoạn code sau:
FILE* f= fopen(“FL.txt”,”r”);
int n=7;
fprintf(f,”%d”,n);
Hãy chọn câu đúng:
a) Đoạn code gây lỗi. (Đoạn code không báo lỗi nhưng
sai mode)/
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 138: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);
e) void Read(char*
fName, int *&a[], int& n);
Câu 139: 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:
a)
fscanf(f,”%d”,x);
b) fread(&x,sizeof(int),1,f);
c) getw(f);
d) 2 và 3 đúng.
Câu 140: Chọn câu đúng nhất trong các câu sau đây:
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.
c) Khi đọc kí tự
có mã OD từ file văn bản thì C sẽ bỏ qua.
d) 1, 2 và 3 đều
đúng.
-Lưu ý: Trường hợp câu này không biết test kiểu gì?Nếu đọc
bình thường với các lệnh fscanf():{“%d”,”%c”,”%s”,…}, fgets(),… thì vẫn thấy đọc
bình thường.
Câu 141: Chọn câu đúng nhất trong các câu sau:
a) Khi ghi kí tự
có mã 1A vào file văn bản, C sẽ ghi thành kí tự có mã -1.
b) Khi ghi file
văn bản, cả 2 kí tự OD và OA sẽ được C ghi thành kí tự mã OA.
c) Khi ghi kí tự
có mã OD vào file văn bản thì C sẽ bỏ qua.
d) 1, 2 và 3 đều
đúng.
Câu 142: Cho khai báo FILE *f1,*f2; int c; và đoạn lệnh:
f1=fopen(“source”,”rt”); f2=fopen(“TARGET”,”wt”);
while((c=fgetc(f1))!=EOF) fputc(c,f2);
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:
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”.
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.
Câu 143: 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 144: Hàm nào dưới đây chỉ dùng để nhập dữ liệu từ tệp:
a) getch();
b) fscanf();
c) getc();
d) scanf();
Câu 145: Hàm nào dưới đây chỉ dùng để ghi một kí tự vào tệp:
a) putch();
b) puts();
c) fputs();
d) fputc();
Câu 146: 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 147: 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 148: Hàm nào dưới đây chỉ dùng để ghi một khối dữ liệu
vào file:
a) fgets();
b) fputs();
c) fwrite();
d) fread();
Câu 149: Giả sử tệp DATA chứa 5 byte: “70, 26, 13, 10, 44”.
Cho đoạn lệnh:
FILE *f;
char ch;
f=fopen(“DATA”,”r”);
while(!feof(f)) { ch=fgetc(f); printf(“%c”,ch);};
fclose(f);
Hãy cho biết kết quả của đoạn chương trình trên:
a)
“70,26,13,13,10,44”.
b)
“70,26,13,10,44”.
c) “70,26,10,44”.
d) Đoạn lệnh có lỗi.
Câu 150: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:
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.
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.
Câu 151: 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:
struct T {…};
struct T x[100];
int i=0, n=0;
Đoạn chương trình nào sau đây đọc toàn bộ các bảng ghi trong
DATA vào x:
a) fread(x+i++,
sizeof(T), 1, f ); while (!feof(f)) fread(x+i++, sizeof(T), 1, f); fclose(f);
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) 1 và 2 đúng.
d) 1 và 2 sai.
Câu 152: Phát biểu nào sau đây là đúng khi nói về chế độ
truyền:
1- Trong chế độ nhị
phân, các byte được sử lí khác với giá trị trên thiết bị ngoại vi và có sự thực
hiện chuyển đổi.
2- Trong chế độ nhị
phân, các kí tự được tổ chức thành từng dòng, được kết thúc bằng kí tự xuống
dòng và có sự chuyển đổi.
3- Trong chế độ
văn bản, các kí tự được tổ chức thành từng dòng, mỗi dòng kết thúc bằng kí tự
xuống dòng, có sự chuyển đổi của một số kí tự theo yêu cầu của môi trường.
4- Trong chế độ nhị
phân, các byte được sử lí đúng như giá trị trên thiết bị ngoại vi và không có sự
thực hiện chuyển đổi nào.
a) 1 và 2.
b) 1 và 3.
c) 2 và 3.
d) 2 và 4.
Câu 153: 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. Nếu gặp cuối tệp hoặc có lỗi, hàm
cho kí tự EOF.
b) Hàm đọc 1 dãy
kí tự từ tệp để lưu vào vùng nhớ mới.
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.
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âu 154: 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 155: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 156:Phát biểu nào đúng khi nói về câu lệnh fflush(FILE
*f):
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.
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.
Câu 157: 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 158: Đấu hiệu nào là đúng khi sử dụng hàm fread();
a) int fread( void
*ptr, int size, FILE *f, int n);
b) int fread( FILE
*f, void *ptr, int size, int n);
c) int fread( int
size, void *ptr, int n, FILE *f);
d) int fread( void
*ptr, int size, int n, FILE *f);
Câu 159: 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 160: 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:
a)
f=fopen(“du_lieu”,”r”);
b)
f=fopen(“du_lieu”,”w”);
c)
f=fopen(“du_lieu”,”at”);
d)
f=fopen(“du_lieu”,”rb”);
Câu 161: Dấu hiệu nào là đúng khi dùng hàm fopen() để mở
file đã tồn tại, thêm theo kiểu văn bản:
a)
f=fopen(“du_lieu”,”r+t”);
b)
f=fopen(“du_lieu”,”r+b”);
c)
f=fopen(“du_lieu”,”a+t”);
d)
f=fopen(“du_lieu”,”a+b”);
Câu 162: Hàm nào trả lại kích thước của một tệp được mở:
a) long
filelength(int the_file);
b) double
filelength(int the_file);
c) int
filelength(int the_file);
d) Không có đáp án nào đúng.
Câu 163: Câu lệnh sau có ý nghĩa gì:
FILE
*fopen(tep1,”ab”);
a) Mở tệp nhị phân
để ghi.
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.
c) Mở tệp nhị phân
để ghi mới.
d) Mở tệp nhị phân
để đọc.
Câu 164: Hàm nào có thể thay đổi kích thước của tệp đang mở:
a) double
chsize(int handle, long size);
b) long chsize(int
handle, long size);
c) int chsize(int
handle, long size);
d) Tất cả các đáp
án trên.
Câu 165: Trong chế độ văn bản, dấu hiệu kết thúc tệp là:
a) EOF.
b) NULL.
c) \n.
d) Ctrl_Z.
Câu 166: Câu lệnh sau có ý nghĩa gì:
FILE
*fopen(tep1,”r+”);
a) Mở tệp văn bản
cho phép ghi.
b) Mở tệp văn bản
cho phép đọc.
c) Mở tệp văn bản
cho phép cả đọc cả ghi.
d) Mở tệp văn bản
đã tồn tại để đọc.
Câu 167: Câu lệnh sau có ý nghĩa gì:
int
open(tep1, O_TRUNC);
a) Mở tệp nhị phân
để ghi.
b) Xóa nội dung của
tệp.
c) Mở tệp văn bản
để đọc và ghi.
d) Tất cả các đáp
án trên.
Câu 168: Có thể truy cập thành phần của cấu trúc thông qua
con trỏ như( với p là con trỏ cấu trúc, a là thành phần cấu trúc):
a) (*p).a;
b) *p->a;
c) 1 và 2 sai.
d) 1 và 2 đúng.
Câu 169: Cho khai báo:
struct T {int x; float y;} t, *p, a[10];
Câu lệnh nào không hợp lệ:
a) p=&t;
b) p=&t.x;
c) p=&a[5];
d) p=&a;
Câu 170: Cho các khai báo sau:
struct ngay{ int ng, th, n;} vaotruong, ratruong;
typedef struct sinhvien{ char hoten; ngay ngaysinh;};
Hãy chọn câu đúng nhất:
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) 1, 2, 3 đúng.
Câu 171: Trong các khởi tạo giá trị cho các cấu trúc sau,
hãy chọn câu đúng:
struct S1{
int ngay, thang, nam;}; S1=(2, 1, 3);
struct S2{
char hoten[10]; struct S1 ngaysinh;}; S2={“Ly Ly”, {4, 5, 6}};
a) S1 đúng.
b) S2 đúng.
c) Cả S1, S2 đều
đúng.
d) Cả S1, S2 đều
sai.
Câu 172:Đố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 173: Cho đoạn chương trình sau:
struct { int to; float soluong;} x[10];
for (int i=0; i<10 amp="" d="" f="" i="" scanf="" to="" wbr="" x="">soluong);10>
Chọn câu đúng nhất trong các câu sau:
a) Đoạn chương
trình trên có lỗi cú pháp.
b) Không được phép
sử dụng toán tử lấy địa chỉ đối với các thành phần “to” và “soluong”.
c) Lây địa chỉ
thành phần “soluong” dẫn đến chương trình hoạt động không đúng đắn.
d) Cả 3 ý trên đều
sai.
Câu 174:Để tạo danh sách liên kết, theo bạn sinh viên nào dưới
đây là khai báo đúng cấu trúc tự trỏ sẽ được dùng:
1- Sinh viên 1:
struct SV{char ht[25]; int tuoi; struct Sv *tiep;};
2- Sinh viên 2:
typedef
struct SV
node;
struct SV{char ht[25]; int tuoi; node *tiep;};
3- Sinh viên 3:
typedef
struct
SV{char ht[25]; int tuoi; struct SV *tiep;} node;
a) 1.
b) 2.
c) 2 và 3.
d) 1,2 và 3.
Câu 175: Để dùng danh sách liên kết, xét hai khai báo sau(cần
1KB để lưu dữ thông tin về một sinh viên):
1- Khai báo 1:
struct SV{ thongtin; struct SV *tiep;};
2- Khai báo 2:
struct SV {thongtin}; struct DS{struct SV* sv; struct DS* tiep;};
(Với “thongtin” là một thành phần dữ liệu của cấu trúc); Chọn
câu đúng nhất trong các câu sau:
a) Khai báo 1 tốn
nhiều bộ nhớ hơn khai báo 2.
b) Khai báo 2 sẽ
giúp chương trình chạy nhanh hơn khi đổi vị trí 2 sinh viên.
c) Khai báo 1 sẽ
giúp tiết kiệm câu lệnh hơn khi viết hàm đổi vị trí 2 sinh viên.
d) Khai báo 2 sẽ
giúp chương trình chạy nhanh hơn khi duyệt danh sách.
Khai báo 1
Khai báo 2
*tiep (2B)
Thongtin
(1KB)
SV
*tiep(2B)
*Thongtin(2B)
Thongtin
(1KB)
DS
2B + 1KB
(2B + 1KB) + 2B
(…->SV1->SV2->…->SV3->SV4->…); Đổi SV2 cho
SV4:
{
P=SV1->tiep;
SV1->tiep = SV3->tiep;
SV3->tiep = P;
/*-------------------------------------*/
P=P->tiep;
SV3->tiep->tiep = SV1->tiep->tiep;
SV1->tiep-tiep = P;
};
(…->SV1->SV2->…->SV3->SV4->…); Đổi SV2 cho
SV4:
Cách 1: tương tự khai báo 1;
Cách 2:
{
P = SV2->thongtin;
SV2->thongtin = SV4->thongtin;
SV4->thongtin = P;
};
{
While(P != NULL)
{visit(P->thongtin); P = P->tiep;};
};
Câu 176: Cho đoạn chương trình:
char S[] = “Helen”;
char *p = S;
char c = *(p+3);
Giá trị của c sẽ là:
a) ‘H’.
b) ‘e’.
c) ‘l’.
d) ‘n’.
Câu 177: Chọn câu đúng:
a) “struct” là một
kiểu dữ liệu do người dùng định nghĩa bao gồm nhiều thành phần có kiểu khác
nhau.
b) “struct” là sự
kết hợp của nhiều thành phần có thể có thể có kiểu khác nhau.
c) Cả 2 ý đểu
đúng.
d) Cả hai ý đều
sai.
Câu 178:Toán tử nào sau đây sẽ truy xuất 1 thành phần của
con trỏ cấu trúc:
a) “.”(Toán tử chấm).
b) “->”(Toán tử
mũi tên).
c) Cả hai đều
đúng.
d) Cả hai đều sai.
Câu 179:Xem đoạn code sau:
typedef struct ST{ int d1,d2,d3;};
ST v= {5, 6, 7};
ST* p=&v;
p.d1++;
Giá trị của biến v là:
a) {6, 6, 7};
b) {5, 6, 7};
c) Nhóm trị khác.
d) Đoạn code gây lỗi. ((*p).d1++;)/
Câu 180: Xem đoạn code sau:
typedef struct STUDENT{ int d1, d2, d3;};
STUDENT v= {2, 3, 4};
v.d1++;
Giá trị trung bình của các trường trong biến v là gì:
a) 3.0
b) 4.0
c) Giá trị khác.
d) Có lỗi trong đoạn
code.
Câu 181: Hãy khai báo một cấu trúc mô tả sinh viên, thông
tin về mỗi sinh viên bao gồm: tên, điểm 3 môn học. Khai báo nào sau đây là
đúng:
a) structure
STUDENT {char Name[]; int s1,s2,s3;};
b) struct STUDENT
{char Name[]; int s1, s2, s3;};
c) typedef struct
STUDENT {char Name[]; float s1,s2,s3;};
d) typedef STUDENT
{ char Name[]; int s1, s2,s3;};
Câu 182:Biến con trỏ có thể chứa:
a) Địa chỉ vùng nhớ
của một biến khác.
b) Giá trị của một
biến khác.
c) Cả a và b đều
đúng.
d) Cả a và b đều
sai.
Câu 183: Kết quả của chương trình sau là gì:
#include
void main()
{
struct
diem;
{
float k;
float a;
float l;
};
struct
diem m;
m.k = 8;
m.a = 6.5;
m.l = 6;
printf(“%0.1f%0.1f%0.1f”, m.k, m.a, m.l);
};
a) “8.06.56.0”.
b) “86.56”.
c)
“8.0000006.5000006.000000”.
d) “86.5000006”.
Câu 184:Kiểu dữ liệu nào có thể chứa nhiều thành phần dữ liệu
có thể có kiểu dữ liệu khác nhau thành một nhóm duy nhất:
a) Mảng.
b) Con trỏ.
c) Tập tin.
d) Cấu
trúc(struct).
Câu 185: Chọn kết quả hợp lí cho chương trình sau:
void main()
{
struct sv
{
float d;
char ht[10];
};
struct sv
m, *p;
p=&m;
printf(“%p”,&m);
printf(“%p”,p);
};
a) “FFE6FFE6”.
b) “FFE6FFE7”.
c) “FFE66EFF”.
d) Kết quả
khác. (“FFE4FFE4”)/
Câu 186: Chọn kết quả đúng cho chương trình sau:
#include
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.1f”,m.d);
printf(“%s”,m.ht);
};
a)
“10.000000NguyenVanTuan”.
b)
“10.0NguyenVanTuan”.
c) Kết quả
khác. (“NguyenVanTuan”)//
ht[10]. – Kết quả trên máy.
d) Chương trình bị
lỗi.
Câu 187: Chọn kết quả đúng cho chương trình sau:
#include
#include
void main()
{
struct S1
{
float d;
float d1;
float d2;
};
struct S1
m={12, 1};
printf(“%0.1f%0.1f%0.1f”,m.d, m.d1, m.d2);
};
a) “12.01.00.0”.
b)
“12.0000001.0000000.000000”.
c) Kết quả khác.
d) Chương trình bị
lỗi.
Câu 188: Chương trình sau cho kết quả là gì:
#include
void main()
{
int *px,
*py;
int
a[]={1,2,3,4,5,6};
px=a;
py=&a[5];
printf(“%d”,++px-py);
};
a) -4.
b) 2.
c) 5.
d) Không có kết quả
đúng.
Câu 189: Có bao nhiêu cách khai báo biến cấu trúc:
a) 1.
b) 2. (Có đặt tên cấu trúc và
không đặt tên cấu trúc)/
c) 3.
d) 4.
Câu 190:Khi sử dụng từ khóa typedef trước định nghĩa cấu
trúc thì:
a) Khai báo biến
cho cấu trúc đó ta không cần sử dụng từ khóa “struct” nữa.
b) Khai báo 1 biến
cho loại cấu trúc đó ta cần sử dụng từ khóa “struct”.
c) Không thể khai
báo thêm biến cấu trúc nào nữa.
- Lưu ý: Test
trên Turbo C++ 3.0 không thấy có sự khác biệt.
Câu 191:Cho khai báo sau:
struct Date
{
unsigned
int ngay:5;
unsigned
int thang;
unsigned
int nam: 11;
} sn1;
Số lượng bít sử dụng trong biến cấu trúc trên là bao nhiêu:
a) 16.
b) 20.
c) 32.
d) 48.
Câu 192: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 193: Đâu là định nghĩa đúng về cấu trúc tự trỏ:
a) Là một cấu trúc
có một trường là con trỏ chứa địa chỉ của một biến cấu trúc.
b) Là dạng cấu
trúc có một trường là con trỏ chứa địa
chỉ của một biến cấu trúc có dạng dữ liệu giống nó.
c) Là dạng cấu
trúc có một trường có kiểu dữ liệu giống nó.
d) Tất cả các ý
trên.
Câu 194: 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 195: Đâu là phát biểu dúng về danh sach moc nối:
a) Độ dài danh
sách không thể thay đổi.
b) Các phần tử của
nó được lưu trữ rải rác trong bộ nhớ RAM.
(?).
c) Để cài đặt danh
sách móc nối phải sử dụng đến cấu trúc tự trỏ.
d) Chỉ có thể xóa
được phần tử đầu tiên của danh sách.
Câu 196: 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 197: Cho đoạn chương trình:
struct ng
{
unsigned
ngay;
unsigned
thang;
unsigned
nam;
};
struct diachi
{
int
sonha;
char
tenpho[20];
};
union u
{
struct ng
date;
struct
diachi address;
}
diachi_ngaysinh;
Kích thước của biến u là bao nhiêu byte:
a) 20.
b) 22.
c) 28.
d) Đáp án khác.
Câu 198: 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->next->info=111;};
a) Câu lệnh bị lỗi.
b) Giá trị “info”
trong phần tử thứ 3 đã bị thay đổi.
c) Giá trị “info”
trong phần tử thứ 2 đã bị thay đổi.
d) Giá trị “info”
trong phần tử bất kì đã bị thay đổi.
Câu 199: 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 200:Một danh sách trong đó tất cả các thao tác chèn thực
hiện tại một đầu, thao tác xóa được thực hiện tại đầu kia của danh sách gọi là:
a) Stack.
b) Queue;
c) Cây nhị phân.
d) Cả 3 đáp án
trên.
Câu 201: Đâu là phát biểu đúng về danh sách móc nối:
a) Chỉ có thể thêm
phần tử mới vào đầu danh sách.
b) Không thể thêm
phần tử mới vào cuối danh sách.
c) Có thể thêm phần
tử mới vào vị trí bất kì trong danh sách.
d) Không câu nào
đúng.
Câu 202: Đâu là phát biểu đúng về danh sach:
a) Chỉ có thể xóa
phần tử đầu tiên trong danh sách.
b) Chỉ có thể xóa
phần tử cuối cùng trong danh sách.
c) Có thể xóa một
phần tử tại vị trí bất kì trong danh sách.
d) Tất cả đều sai.
Câu 203: Hàm dùng để cấp phát bộ nhớ động cho kiểu nhớ động
do lập trình viên tự định nghĩa như (union, struct):
a) calloc();
b) malloc();
c) realloc();
d) Cả 3 đáp án
trên.
Câu 204: 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. Nhóm câu lệnh nào sau đây thêm một phần tử vào đầu danh sách:
a)
p->next=head; head=p;
b)
p->next=head; head->p; head=p->next;
c)
head->next=p; p=head;
d) Không có câu
nào đúng.
Câu 205: 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. Nhóm câu lệnh nào sau đây xóa phần tử đầu tiên ra khỏi danh sách:
a)
head->next=head;
b)
head=head->next;
c)
head=head->next->next;
d) 2,3.
Câu 206:Đâu là phát biểu sai khi nói về danh sách liên kết:
a) Mỗi phần tử
trong danh sách liên kết phải có ít nhất một trường dùng để lưu địa chỉ.
b) Sử dụng danh
sách liên kết thường tiết kiệm bộ nhớ hơn dùng mảng.
c) Sử dụng danh
sách liên kết thường tốn bộ nhớ hơn dùng mảng.
d) Tất cả các đáp
án đều sai.
Câu 207: 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 208: Làm thế nào có thể biểu diễn phần tử “hoten” của
SV1:
struct SV
{
char
hoten[20];
} SV1, *p;
p=&SV1;
a) SV1.hoten;
b) p->hoten;
c) &hoten;
d) 1 và 2.
Câu 209: Đâ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 210: Cho mảng A gồm các phần tử kiểu struct, phát biểu
nào là đúng khi truy cập đến các trường của các phần tử:
a) A[chỉ số].tên_trường;
b) A.tên_trường;
c) &A.tên_trường;
d) &A[chỉ số].tên_trường;
Câu 211: 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 212: 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 213:Dấu hiệu nào dưới đây cho biết node p của một danh
sách liên kết đơn là node cuối cùng bên phải:
a)
(p->info!=NULL);
b)
(p->info==NULL);
c)
(p->next!=NULL);
d)
(p->next==NULL);
Câu 214: 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 215: Cơ chế nào dưới đây được cài đặt cho hàng đợi:
a) FIFO.
b) Round Robin.
c) Tuần tự.
d) FILO.
Câu 216: Dấu hiệu nào dưới đây cho biết danh sách liên kết
đơn rỗng:
a)
(p->right==NULL);
b)
(p->info==NULL);
c) (p==NULL);
d)
(p->next==NULL);
Câu 217: Dấu hiệu nào cho biết node phải của p có cây con
bên phải:
a)
(p->right!=NULL);
b)
(p->left!=NULL);
c)
(p->right!=NULL)&&(p->right->right==NULL);
d)
(p->right!=NULL)&&(p->right->right!=NULL);
Câu 218: Cơ chế nào dưới đây được cài đặt cho Stack:
a) FILO.
b) Tuần tự.
c) Round Robin.
d) FIFO.
Câu 219: Một cây nhị phân được gọi là đúng nếu:
a) node gốc và tất
cả các node trung gian đều có 2 node con.
b) Giá trị khóa của
node gốc bao giờ cũng lớn hơn giá trị các khóa của nhánh cây con bên phải.
c) Giá trị khóa của
node gốc bao giờ cũng lớn hơn giá trị các khóa của nhánh cây con bên trái.
d) Node gốc và các
node trung gian đều có 2 node con và các node lá đều có mức giống nhau.
Câu 220: Khi thực hiện phép thêm một node lá x vào bên phải
node p của cây nhị phân thông thường, ta cần:
a) Kiểm tra sự tồn
tại của p và các lá bên phải p;
b) Kiểm tra sự tồn
tại của node lá bên phải p.
c) Kiểm tra sự tồn
tại của node p.
d) Không cần thực
hiện cả 3 điểu kiện nêu trong câu hỏi.
Câu 221: Cho đoạn chương trình sau:
int a, *p, *q;
float *t;
a=5; p=&a;
p=q;
t=p;
printf(“%d%f”,a,t);
Kết quả:
a) 5-12.
b) 5.
c) Chương trình lỗi. (Can’t convert int* to
float*)/
d) Kết quả khác.
Câu 222: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 223: Trong chế độ 256 màu, số bít cho mỗi pixel là:
a) 5.
b) 6.
c) 7.
d) 8.
Câu 224: Các file tối thiểu cần cho việc vẽ đồ họa:
a) GRAPH.H, *.BGI,
*.CHR.
b) GRAPH.H, *.TXT,
*.DOC.
c) *.BGI, *.TXT,
*.DOC.
d) *.CHR, *.TXT,
*.DOC.
Câu 225: Một chương trình đồ họa gồm bao nhiêu đoạn:
a) 2.
b) 3. (Khởi tạo, detect, link)/
c) 4.
d) 5.
Câu 226: Trong chế độ graphic, gốc tọa độ là:
a) Góc trên bên
trái.
b) Góc trên bên phải.
c) Góc dưới bên
trái.
d) Góc dưới bên phải.
Câu 227: Ba màu cơ bản trong máy tính là:
a) RED, GREEN,
BLUE.
b) RED, YELLOW,
BLUE.
c) BLUE, YELLOW,
BLUE.
d) GREEN, RED,
PING.
Câu 228: 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 229:Sau khi hàm setwiewport(int x1, int y1, int x2, int
y2, int clip); được thực hiện thì tọa độ (0,0) của tất cả các hàm vẽ sẽ là:
a) Góc trên phải của màn hình.
b) Góc trên phải của
viewport.
c) Góc trên trái của
màn hình.
d) Góc trên trái của
viewport.
Câu 230: 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 231: 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 232: Khẳng định nào dưới đây là sai:
a) Hàm moveto(int
x, int y) di chuyển vị trí hiện tại của màn hình đồ họa tới điểm có tọa độ
(x,y);
b) lineto(int x,
int y) là hàm vẽ đường thẳng từ vị trí con trỏ đồ họa hiện tại tới điểm có tọa
độ (x,y).
c) linerel(int x,
int y) vẽ đường thẳng tử gốc tọa độ tới điểm có tọa độ (x,y);
d) line(int x1,
int y1, int x2, int y2) vẽ đường thẳng nối liền 2 điểm có tọa độ (x1,y1) và
(x2,y2);
Câu 233:Hàm putpixel(int x, int y) dùng để làm gì:
a) Vẽ một điểm tại
tọa độ (x,y);
b) Lấy màu của điểm
có tọa độ (x,y);
c) Vẽ một điểm tại
vị trí con trỏ.
d) Cả 3 phương án
trên đều sai.
Câu 234: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 235: Hàm closegraph() dùng để làm gì:
a) Sẽ giải phóng hết
các vùng nhớ giành cho đồ họa.
b) Dùng để dừng
màn hình.
c) Dùng để xóa màn
hình.
d) Cả 3 phương án
trên đều sai.
Câu 236: 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 237: Chế độ đồ họa bao gồm các vấn đề:
a) Bao nhiêu màu.
b) Gồm những màu
gì.
c) Độ phân giải của
màn hình là bao nhiêu.
d) Cả 3 phương án
trên.
Câu 238: Hàm setcolor(int color) làm nhiệm vụ gì:
a) Thiết lập màu nền.
b) Đặt màu vẽ hiện
tại.
c) Cả 2 ý trên đều
đúng.
d) Cả hai ý trên đều
sai.
Câu 239: 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 240: Điểu gì là đúng nhất khi nói về hàm floodfill(int
x, int y, int Border);
a) Dùng để tô màu
hình tròn chứa điểm (x,y).
b) Dùng để tô màu
hình chữ nhật chứa điểm (x,y).
c) Dùng để tô màu
đa giác chứa điểm (x,y);
d) Dùng để tô màu
miền kín bất kì chứa điểm (x,y);
Câu 241: 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.
ĐÁP ÁN
TÌM TRONG NHÃN LTCB