wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

Lập trình C bản phao 2

Total questions: 71

Worksheet time: 36mins

Name
Class
Date
1.

Khai báo mảng int arr[5]; sẽ tạo ra bao nhiêu phần tử?

a)

4

b)

5

c)

6

d)

Không xác định

2.

Chỉ mục đầu tiên của mảng trong C là bao nhiêu?

a)

-1

b)

0

c)

1

d)

2

3.

Để truy cập phần tử thứ 3 trong mảng arr, bạn dùng cú pháp nào?

a)

arr[2]

b)

arr[3]

c)

arr[1]

d)

arr[4]

4.

Mảng có thể chứa loại dữ liệu nào?

a)

Số nguyên

b)

Số thực

c)

Ký tự

d)

Tất cả các loại trên

5.

Khai báo char str[10]; là để tạo ra một mảng chứa:

a)

Số nguyên

b)

Số thực

c)

Ký tự

d)

Hàm

6.

Con trỏ trong C là gì?

a)

Biến lưu trữ giá trị trực tiếp

b)

Biến lưu trữ địa chỉ của biến khác

c)

Một hàm

d)

Một hằng

7.

Toán tử & trong C được dùng để:

a)

Tăng giá trị biến

b)

Lấy địa chỉ của biến

c)

Gán giá trị cho biến

d)

Khai báo biến

8.

Khi khai báo int *ptr;, ptr là:

a)

Một số nguyên

b)

Một con trỏ đến số nguyên

c)

Một mảng

d)

Một hàm

9.

Một mảng trong C có thể lưu trữ:

a)

Các giá trị cùng kiểu dữ liệu

b)

Các giá trị khác kiểu dữ liệu

c)

Giá trị bất kỳ không cần khai báo trước

d)

Các giá trị ngẫu nhiên

10.

Hàm scanf trong C được dùng để:

a)

Nhập dữ liệu từ người dùng

b)

Xuất dữ liệu ra màn hình

c)

So sánh giá trị

d)

Thực hiện phép toán

11.

Để khai báo một chuỗi trong C, bạn dùng kiểu dữ liệu nào?

a)

int

b)

float

c)

char[]

d)

double

12.

Phép toán số học nào trả về phần dư của phép chia trong C?

a)

-

b)

%

c)

/

d)
13.

Phép toán tăng giá trị một biến lên 1 đơn vị là gì?

a)

x+1

b)

x++

c)

++x

d)

Cả B và C

14.

Hàm nào được sử dụng để in dữ liệu ra màn hình?

a)

scanf()

b)

printf()

c)

getch()

d)

putchar()

15.

Trong C, ký hiệu nào biểu thị địa chỉ của biến?

a)

*

b)

&

c)

%

d)

@

16.

Hàm nào được sử dụng để nhận đầu vào từ bàn phím trong C?

a)

printf()

b)

scanf()

c)

input()

d)

read()

17.

Lệnh nào được sử dụng để dừng vòng lặp trong C?

a)

continue

b)

break

c)

return

d)

stop

18.

Từ khóa nào được sử dụng để kết thúc hàm trong C và trả giá trị?

a)

return

b)

end

c)

break

d)

stop

19.

Ký tự kết thúc chuỗi trong ngôn ngữ C là gì?

a)

'\0'

b)

'\n'

c)

'\t'

d)

' '

20.

Câu lệnh for nào trong C là đúng?*

a)

for(int i = 0; i < 10; i++)

b)

for(i = 0, i < 10, i++)

c)

for i = 0; i < 10; i++

d)

for i in range(10)

21.

Một vòng lặp while trong C sẽ chạy cho đến khi nào?*

a)

Điều kiện kiểm tra là false

b)

Điều kiện kiểm tra là true

c)

Số vòng lặp đạt đến một giá trị nhất định

d)

Tất cả các trường hợp trên

22.

Phép gán nào là đúng trong C?*

a)

5 = x;

b)

x = 5;

c)

x == 5;

d)

x => 5;

23.

Kiểu dữ liệu double trong C thường dùng để lưu:

a)

Số nguyên nhỏ

b)

Số nguyên lớn

c)

Số thực có độ chính xác cao

d)

Ký tự

24.

Trong C, a[0] biểu thị điều gì?

a)

Phần tử đầu tiên của mảng a

b)

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

c)

Phần tử cuối cùng của mảng a

d)

Địa chỉ của mảng a

25.

Toán tử || trong C được gọi là gì?

a)

Toán tử AND

b)

Toán tử OR

c)

Toán tử NOT

d)

Toán tử XOR

26.

Một biến cục bộ (local variable) trong C chỉ có hiệu lực ở đâu?

a)

Trong toàn bộ chương trình

b)

Trong tệp chứa nó

c)

Trong hàm hoặc khối lệnh chứa nó

d)

Tất cả các trường hợp trên

27.

Lệnh nào được dùng để xuất tín hiệu mức cao lên chân I/O của vi điều khiển?

a)

output_high(pin_x)

b)

output_low(pin_x)

c)

input(pin_x)

d)

set_tris_x(value)

28.

Lệnh nào dùng để tạo độ trễ 500ms trong chương trình?

a)

delay_500ms()

b)

delay_ms(500)

c)

set_tris_a(500)

d)

output_toggle(pin_x)

29.

Để điều khiển LED đơn nhấp nháy, cần sử dụng cổng I/O ở chế độ nào?

a)

Input

b)

Output

c)

Analog

d)

PWM

30.

Lệnh set_tris_x(value) dùng để làm gì?

a)

Xuất tín hiệu ra chân x

b)

Định nghĩa cổng x là đầu vào hoặc đầu ra

c)

Tạo trễ 500ms

d)

Xóa dữ liệu trên cổng x

31.

Lệnh nào có thể dùng để đảo trạng thái của một chân I/O?

a)

output_toggle(pin_x)

b)

output_high(pin_x)

c)

output_low(pin_x)

d)

delay_ms(500)

32.

Một LED nối với RD0 của vi điều khiển và cathode nối GND. Lệnh nào dùng để tắt LED này?

a)

output_high(pin_d0)

b)

output_low(pin_d0)

c)

input(pin_d0)

d)

delay_ms(500)

33.

Lệnh nào dùng để thiết lập tất cả các chân của Port B là đầu ra?

a)

set_tris_b(0x00)

b)

set_tris_b(0xFF)

c)

output_low(pin_b0)

d)

input(pin_b0)

34.

Lệnh nào dùng để thiết lập tất cả các chân của Port B là đầu ra?

a)

set_tris_b(0x00)

b)

set_tris_b(0xFF)

c)

output_low(pin_b0)

d)

input(pin_b0)

35.

Để LED nhấp nháy với chu kỳ 1 giây, cần thời gian trễ bao nhiêu giữa bật và tắt?

a)

1ms

b)

500ms

c)

100ms

d)

1000ms

36.

Một dãy LED gồm 8 LED được nối với Port D mắc kiểu cathode chung. Lệnh nào xuất giá trị bật hết các LED?

a)

output_d(0xFF)

b)

output_d(0x00)

c)

output_low(pin_d)

d)

output_high(pin_d)

37.

Lệnh delay_us(10) tạo độ trễ bao lâu?

a)

10 giây

b)

10 mili giây

c)

10 micro giây

d)

10 nano giây

38.

LED đơn D1 nhấp nháy được điều khiển bởi lệnh nào?

a)

output_toggle(pin_d1) và delay_ms(500)

b)

output_high(pin_d1)

c)

output_low(pin_d1)

d)

delay_us(500)

39.

Lệnh nào được sử dụng để xuất giá trị 8 bit lên Port D?

a)

set_tris_d(value)

b)

output_d(value)

c)

output_high(pin_d)

d)

input(pin_d)

40.

Để tạo một project mới trong CCS C Compiler, bạn sử dụng tùy chọn nào?

a)

File → New → Source File

b)

File → New → Project Wizard

c)

File → Open → Project

d)

File → Save As

41.

Lệnh nào được sử dụng để xuất giá trị mã HEX lên Port C để điều khiển LED 7 thanh?

a)

set_tris_c(value)

b)

output_c(value)

c)

output_high(pin_c)

d)

input(pin_c)

42.

Lệnh set_tris_c(0x00) có tác dụng gì?

a)

Thiết lập Port C làm đầu vào.

b)

Thiết lập Port C làm đầu ra.

c)

Xuất giá trị mã HEX ra Port C.

d)

Tạo độ trễ trên Port C.

43.

Để LED 7 thanh hiển thị số "5", bạn cần viết lệnh xuất giá trị nào trên Port C?

a)

output_c(0xA4)

b)

output_c(0x6D)

c)

output_c(0xB0)

d)

output_c(0x92)

44.

Lệnh nào có thể dùng để xuất giá trị "0x3F" lên LED 7 thanh?

a)

output_c(0x3F)

b)

output_high(pin_c)

c)

output_low(pin_c)

d)

input(pin_c)

45.

Để hiển thị số từ 0 đến 9 trên LED 7 thanh, bạn cần:

a)

Sử dụng vòng lặp và xuất dãy mã HEX tương ứng.

b)

Xuất giá trị cố định mã HEX.

c)

Sử dụng lệnh set_tris_c() để chuyển đổi các mã HEX.

d)

Không cần xuất mã HEX, LED tự động hiển thị.

46.

Trong CCS C, lệnh nào thiết lập tần số hoạt động cho vi điều khiển?

a)

#use delay(crystal=20M)

b)

set_tris_c(0x00)

c)

output_c(0xFF)

d)

delay_ms(1000)

47.

Nếu bạn muốn LED 7 thanh hiển thị số "9", lệnh nào được sử dụng để xuất mã HEX tương ứng ra Port C?

a)

output_c(0x6F)

b)

output_c(0xF8)

c)

output_c(0x90)

d)

output_c(0xA4)

48.

Mã HEX nào được sử dụng trong lệnh output_c() để hiển thị số "1" trên LED 7 thanh?

a)

0x06

b)

0x3F

c)

0xB0

d)

0x99

49.

Với LED 7 thanh anode chung, mã HEX nào được sử dụng để hiển thị số "0"?

a)

0x3F

b)

0xC0

c)

0x6D

d)

0x90

50.

Với LED 7 thanh cathode chung, mã HEX nào được sử dụng để hiển thị số "8"?

a)

0x3F

b)

0xFF

c)

0x7F

d)

0xC0

51.

Mã HEX 0xB0 được sử dụng để hiển thị số "3" trên LED 7 thanh thuộc kiểu nào?

a)

Anode chung

b)

Cathode chung

c)

Cả hai

d)

Không thuộc kiểu nào

52.

Khi sử dụng LED 7 thanh cathode chung, mã HEX 0x5B sẽ hiển thị số nào?

a)

Số "1"

b)

Số "2"

c)

Số "4"

d)

Số "3"

53.

Lệnh nào được sử dụng để đọc trạng thái của một nút ấn kết nối với vi điều khiển?

a)

input(pin_x)

b)

output_high(pin_x)

c)

output_low(pin_x)

d)

set_tris_x(value)

54.

Trạng thái nào của nút ấn sẽ được nhận khi nó chưa được nhấn trong mạch pull-up?

a)

0 (mức thấp)

b)

1 (mức cao)

c)

Không xác định

d)

Luôn ở trạng thái ngắt

55.

Một nút ấn được kết nối ở chân RA0 với mạch pull-down. Khi nút được nhấn, trạng thái đọc sẽ là gì?

a)

0 (mức thấp)

b)

1 (mức cao)

c)

Không xác định

d)

Không có tín hiệu

56.

Hiện tượng nào thường xảy ra khi nhấn nút và có thể ảnh hưởng đến tín hiệu nhận được?

a)

Tản nhiệt

b)

Rung tiếp điểm (debounce)

c)

N

57.

Giải pháp phần mềm nào thường được sử dụng để xử lý hiện tượng rung tiếp điểm của nút nhấn?

a)

Thêm tụ điện song song với nút nhấn

b)

Sử dụng lệnh delay_ms() để chờ ổn định tín hiệu

c)

Kết nối thêm diode

d)

Sử dụng mạch Schmitt Trigger

58.

Khi nút ấn được nhấn, lệnh if(input(pin_a0)) sẽ thực hiện gì nếu chân RA0 đang ở mức cao?

a)

Điều kiện trong if được thực thi

b)

Điều kiện trong if bị bỏ qua

c)

Gây ra lỗi biên dịch

d)

Kết thúc chương trình

59.

Lệnh set_tris_a(0x01) thiết lập điều gì cho nút nhấn kết nối với chân RA0?

a)

RA0 làm đầu ra

b)

RA0 làm đầu vào

c)

Kích hoạt tín hiệu ngắt ngoại vi trên RA0

d)

Ngắt kết nối RA0

60.

Một nút nhấn được kết nối với vi điều khiển qua mạch pull-up. Khi nút nhấn được nhả, trạng thái đọc của chân kết nối sẽ là:

a)

0 (mức thấp)

b)

1 (mức cao)

c)

Không xác định

d)

Mức trung gian

61.

Đoạn mã sau thực hiện nhiệm vụ gì? if(input(pin_a1)) { output_high(pin_c0); }

a)

Bật LED kết nối với chân RC0 khi nút nhấn kết nối với chân RA1 được nhấn.

b)

Tắt LED kết nối với chân RC0 khi nút nhấn kết nối với chân RA1 được nhấn.

c)

Tắt nút nhấn trên chân RA1.

d)

Gây lỗi biên dịch.

62.

Nếu một nút nhấn không hoạt động ổn định, nguyên nhân có thể do đâu?

a)

Kết nối chân sai.

b)

Thiếu xử lý hiện tượng rung tiếp điểm.

c)

Sử dụng sai lệnh đọc tín hiệu.

d)

Cả ba nguyên nhân trên.

63.

Lệnh nào được sử dụng để thiết lập chế độ PWM cho CCP1 trong CCS C?

a)

setup_ccp1(CCP_PWM)

b)

setup_timer2()

c)

set_pwm1_duty(value)

d)

output_high(pin_x)

64.

Lệnh setup_timer2(T2_DIV_BY_16, 249, 1) trong CCS C có chức năng gì?

a)

Thiết lập tần số cho tín hiệu PWM.

b)

Kích hoạt PWM.

c)

Tạo độ trễ trong

65.

Để thay đổi độ rộng xung của tín hiệu PWM, bạn cần sử dụng lệnh nào?

a)

set_pwm1_duty(value)

b)

setup_ccp1(CCP_PWM)

c)

output_high(pin_x)

d)

setup_timer2()

66.

Lệnh setup_ccp1(CCP_PWM) cần được sử dụng ở đâu trong chương trình?

a)

Trong hàm main() trước khi gọi set_pwm1_duty().

b)

Trong bất kỳ vị trí nào.

c)

Sau khi gọi set_pwm1_duty().

d)

Không cần sử dụng lệnh này.

67.

Khi sử dụng PWM, tại sao cần thiết lập Timer2?

a)

Timer2 xác định tần số của tín hiệu PWM.

b)

Timer2 xác định Duty Cycle của PWM.

c)

Timer2 không liên quan đến PWM.

d)

Timer2 chỉ cần cho các ứng dụng khác.

68.

Nếu lệnh set_pwm1_duty(0) được gọi, điều gì sẽ xảy ra?

a)

Tín hiệu PWM luôn ở mức thấp.

b)

Tín hiệu PWM luôn ở mức cao.

c)

PWM bị tắt hoàn toàn.

d)

Không thay đổi tín hiệu PWM.

69.

Lệnh nào trong CCS C thiết lập CCP2 để tạo tín hiệu PWM?

a)

setup_ccp2(CCP_PWM)

b)

setup_ccp1(CCP_PWM)

c)

set_pwm2_duty(value)

d)

setup_timer2()

70.

Khi sử dụng PWM, làm thế nào để điều chỉnh tần số mà không ảnh hưởng đến Duty Cycle?

a)

Thay đổi các tham số trong setup_timer2().

b)

Thay đổi các tham số trong set_pwm1_duty(value).

c)

Sử dụng lệnh setup_ccp1(CCP_PWM).

d)

Không thể điều chỉnh tần số mà không ảnh hưởng Duty Cycle.

71.

Lệnh nào trong CCS C thường được sử dụng để xuất dữ liệu điều khiển động cơ bước thông qua các chân I/O?

a)

output_c(value)

b)

set_pwm1_duty(value)

c)

setup_ccp1(CCP_PWM)

d)

input(pin_x)