wayground logo

Free Printable Worksheets

NEW

Font size

S
M
L
XL
Worksheets

C language

Total questions: 58

Worksheet time: 29mins

Name
Class
Date
1.

Ngôn ngữ lập trình được Denish đưa ra vào năm nào

a)

1967

b)

1972

c)

1970

d)

1976

2.

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

a)

a/=b

b)

a>>=b

c)

a-=b

d)

a*=b

3.

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)

%u

d)

%o

4.

đị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

5.

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=8

d)

c=6

6.

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)

gets()

c)

printf()

d)

scanf

7.

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 đến 65535

8.

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)

Tất cả đều đúng

9.

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();

10.

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();

11.

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();

12.

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

13.
a)

" 1 2 3 4"

b)

" 4"

c)

" 3"

d)

Kết quả khác

14.

Độ ư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

15.

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

16.
a)

A

b)

B

c)

C

d)

D

17.

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 -> long -> float -> double -> long double

c)

int -> long -> float -> double -> long double

d)

int -> long -> float -> double -> long double

18.

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.

19.

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

20.
a)

A

b)

B

c)

C

d)

D

21.

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

22.

char c;

int n;

scanf(" % c % d", & n, & c);

Kết quả của đoạn chương trình sau là gì? 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

23.
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

24.
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)

Lỗi chương trình

25.

Đâ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.

26.
a)

4 4 1

b)

8 4 1

c)

8 2 1

d)

Kết quả khác

27.
a)

1 4 7

b)

1 4 5

c)

8 4 1

d)

Kết qur khác

28.

Kích thước của mảng?

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ả 2 đều đúng

d)

Cả 2 đều sai

29.

Đâu là phát biểu đúng nhất về biến động

a)

Chỉ phát sinh 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 đều đúng

30.
a)

Đoạn code gây lỗi

b)

Đoạn code không lỗi

c)

Đoạn code này sẽ ghi 7 lên file

d)

Đoạn code này sẽ đọc một số từ file và biến n

31.
a)

A

b)

B

c)

C

d)

D

32.

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)

fread và getw đều được

33.

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();

34.

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();

35.

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();

36.

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_SET) sẽ đặt con trỏ tới cấu trúc cuối cùng của tệp.

37.
a)

A

b)

B

c)

C

d)

D

38.

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.

39.
a)

A

b)

B

c)

C

d)

D

40.

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

41.
a)

A

b)

B

c)

C

d)

D

42.

Đấ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);

43.

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);

44.

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","r+b");

c)

f=fopen("du_lieu","a+t");

d)

f=fopen("du_lieu","a+b");

45.
a)

A

b)

B

c)

C

d)

D

46.
a)

A

b)

B

c)

C

d)

D

47.

int open(tep1, O_TRUNC);

Câu lệnh sau có ý nghĩa gì?

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

48.
a)

A

b)

B

c)

C

d)

D

49.
a)

A

b)

B

c)

C

d)

D

50.
a)

A

b)

B

c)

C

d)

D

51.
a)

A

b)

B

c)

C

d)

D

52.

char S[] = "Helen";

char p = S;

char c = (p + 3);

Cho đoạn chương trình. Giá trị của c sẽ là:

a)

'H'

b)

'e'

c)

'l'

d)

'n'

53.

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

54.

Có bao nhiêu cách khai báo biến cấu trúc

a)

1

b)

2

c)

3

d)

4

55.

Cho đoạn chương trình sau, yêu cầu của đoạn chương trình trên là?

a)

Nhập 1 ký tự cho đến khi gặp ký tự '*'

b)

Nhập các ký tự cho đến khi gặp ký tự '*'

c)

Nhập các ký tự '*'

d)

Lỗi khi xây dựng chương trình

56.

Đâ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)

123.567891

57.

Khai báo hàm tìm giá trị lớn nhất của 1 mảng các số long dưới đâu, 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)

58.

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