WorksheetsLập trình C bản phao 2
Total questions: 71
Worksheet time: 36mins
Khai báo mảng int arr[5]; sẽ tạo ra bao nhiêu phần tử?
4
5
6
Không xác định
Chỉ mục đầu tiên của mảng trong C là bao nhiêu?
-1
0
1
2
Để truy cập phần tử thứ 3 trong mảng arr, bạn dùng cú pháp nào?
arr[2]
arr[3]
arr[1]
arr[4]
Mảng có thể chứa loại dữ liệu nào?
Số nguyên
Số thực
Ký tự
Tất cả các loại trên
Khai báo char str[10]; là để tạo ra một mảng chứa:
Số nguyên
Số thực
Ký tự
Hàm
Con trỏ trong C là gì?
Biến lưu trữ giá trị trực tiếp
Biến lưu trữ địa chỉ của biến khác
Một hàm
Một hằng
Toán tử & trong C được dùng để:
Tăng giá trị biến
Lấy địa chỉ của biến
Gán giá trị cho biến
Khai báo biến
Khi khai báo int *ptr;, ptr là:
Một số nguyên
Một con trỏ đến số nguyên
Một mảng
Một hàm
Một mảng trong C có thể lưu trữ:
Các giá trị cùng kiểu dữ liệu
Các giá trị khác kiểu dữ liệu
Giá trị bất kỳ không cần khai báo trước
Các giá trị ngẫu nhiên
Hàm scanf trong C được dùng để:
Nhập dữ liệu từ người dùng
Xuất dữ liệu ra màn hình
So sánh giá trị
Thực hiện phép toán
Để khai báo một chuỗi trong C, bạn dùng kiểu dữ liệu nào?
int
float
char[]
double
Phép toán số học nào trả về phần dư của phép chia trong C?
-
%
/
Phép toán tăng giá trị một biến lên 1 đơn vị là gì?
x+1
x++
++x
Cả B và C
Hàm nào được sử dụng để in dữ liệu ra màn hình?
scanf()
printf()
getch()
putchar()
Trong C, ký hiệu nào biểu thị địa chỉ của biến?
*
&
%
@
Hàm nào được sử dụng để nhận đầu vào từ bàn phím trong C?
printf()
scanf()
input()
read()
Lệnh nào được sử dụng để dừng vòng lặp trong C?
continue
break
return
stop
Từ khóa nào được sử dụng để kết thúc hàm trong C và trả giá trị?
return
end
break
stop
Ký tự kết thúc chuỗi trong ngôn ngữ C là gì?
'\0'
'\n'
'\t'
' '
Câu lệnh for nào trong C là đúng?*
for(int i = 0; i < 10; i++)
for(i = 0, i < 10, i++)
for i = 0; i < 10; i++
for i in range(10)
Một vòng lặp while trong C sẽ chạy cho đến khi nào?*
Điều kiện kiểm tra là false
Điều kiện kiểm tra là true
Số vòng lặp đạt đến một giá trị nhất định
Tất cả các trường hợp trên
Phép gán nào là đúng trong C?*
5 = x;
x = 5;
x == 5;
x => 5;
Kiểu dữ liệu double trong C thường dùng để lưu:
Số nguyên nhỏ
Số nguyên lớn
Số thực có độ chính xác cao
Ký tự
Trong C, a[0] biểu thị điều gì?
Phần tử đầu tiên của mảng a
Kích thước của mảng a
Phần tử cuối cùng của mảng a
Địa chỉ của mảng a
Toán tử || trong C được gọi là gì?
Toán tử AND
Toán tử OR
Toán tử NOT
Toán tử XOR
Một biến cục bộ (local variable) trong C chỉ có hiệu lực ở đâu?
Trong toàn bộ chương trình
Trong tệp chứa nó
Trong hàm hoặc khối lệnh chứa nó
Tất cả các trường hợp trên
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?
output_high(pin_x)
output_low(pin_x)
input(pin_x)
set_tris_x(value)
Lệnh nào dùng để tạo độ trễ 500ms trong chương trình?
delay_500ms()
delay_ms(500)
set_tris_a(500)
output_toggle(pin_x)
Để điều khiển LED đơn nhấp nháy, cần sử dụng cổng I/O ở chế độ nào?
Input
Output
Analog
PWM
Lệnh set_tris_x(value) dùng để làm gì?
Xuất tín hiệu ra chân x
Định nghĩa cổng x là đầu vào hoặc đầu ra
Tạo trễ 500ms
Xóa dữ liệu trên cổng x
Lệnh nào có thể dùng để đảo trạng thái của một chân I/O?
output_toggle(pin_x)
output_high(pin_x)
output_low(pin_x)
delay_ms(500)
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?
output_high(pin_d0)
output_low(pin_d0)
input(pin_d0)
delay_ms(500)
Lệnh nào dùng để thiết lập tất cả các chân của Port B là đầu ra?
set_tris_b(0x00)
set_tris_b(0xFF)
output_low(pin_b0)
input(pin_b0)
Lệnh nào dùng để thiết lập tất cả các chân của Port B là đầu ra?
set_tris_b(0x00)
set_tris_b(0xFF)
output_low(pin_b0)
input(pin_b0)
Để 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?
1ms
500ms
100ms
1000ms
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?
output_d(0xFF)
output_d(0x00)
output_low(pin_d)
output_high(pin_d)
Lệnh delay_us(10) tạo độ trễ bao lâu?
10 giây
10 mili giây
10 micro giây
10 nano giây
LED đơn D1 nhấp nháy được điều khiển bởi lệnh nào?
output_toggle(pin_d1) và delay_ms(500)
output_high(pin_d1)
output_low(pin_d1)
delay_us(500)
Lệnh nào được sử dụng để xuất giá trị 8 bit lên Port D?
set_tris_d(value)
output_d(value)
output_high(pin_d)
input(pin_d)
Để tạo một project mới trong CCS C Compiler, bạn sử dụng tùy chọn nào?
File → New → Source File
File → New → Project Wizard
File → Open → Project
File → Save As
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?
set_tris_c(value)
output_c(value)
output_high(pin_c)
input(pin_c)
Lệnh set_tris_c(0x00) có tác dụng gì?
Thiết lập Port C làm đầu vào.
Thiết lập Port C làm đầu ra.
Xuất giá trị mã HEX ra Port C.
Tạo độ trễ trên Port C.
Để 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?
output_c(0xA4)
output_c(0x6D)
output_c(0xB0)
output_c(0x92)
Lệnh nào có thể dùng để xuất giá trị "0x3F" lên LED 7 thanh?
output_c(0x3F)
output_high(pin_c)
output_low(pin_c)
input(pin_c)
Để hiển thị số từ 0 đến 9 trên LED 7 thanh, bạn cần:
Sử dụng vòng lặp và xuất dãy mã HEX tương ứng.
Xuất giá trị cố định mã HEX.
Sử dụng lệnh set_tris_c() để chuyển đổi các mã HEX.
Không cần xuất mã HEX, LED tự động hiển thị.
Trong CCS C, lệnh nào thiết lập tần số hoạt động cho vi điều khiển?
#use delay(crystal=20M)
set_tris_c(0x00)
output_c(0xFF)
delay_ms(1000)
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?
output_c(0x6F)
output_c(0xF8)
output_c(0x90)
output_c(0xA4)
Mã HEX nào được sử dụng trong lệnh output_c() để hiển thị số "1" trên LED 7 thanh?
0x06
0x3F
0xB0
0x99
Với LED 7 thanh anode chung, mã HEX nào được sử dụng để hiển thị số "0"?
0x3F
0xC0
0x6D
0x90
Với LED 7 thanh cathode chung, mã HEX nào được sử dụng để hiển thị số "8"?
0x3F
0xFF
0x7F
0xC0
Mã HEX 0xB0 được sử dụng để hiển thị số "3" trên LED 7 thanh thuộc kiểu nào?
Anode chung
Cathode chung
Cả hai
Không thuộc kiểu nào
Khi sử dụng LED 7 thanh cathode chung, mã HEX 0x5B sẽ hiển thị số nào?
Số "1"
Số "2"
Số "4"
Số "3"
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?
input(pin_x)
output_high(pin_x)
output_low(pin_x)
set_tris_x(value)
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?
0 (mức thấp)
1 (mức cao)
Không xác định
Luôn ở trạng thái ngắt
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ì?
0 (mức thấp)
1 (mức cao)
Không xác định
Không có tín hiệu
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?
Tản nhiệt
Rung tiếp điểm (debounce)
N
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?
Thêm tụ điện song song với nút nhấn
Sử dụng lệnh delay_ms() để chờ ổn định tín hiệu
Kết nối thêm diode
Sử dụng mạch Schmitt Trigger
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?
Điều kiện trong if được thực thi
Điều kiện trong if bị bỏ qua
Gây ra lỗi biên dịch
Kết thúc chương trình
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?
RA0 làm đầu ra
RA0 làm đầu vào
Kích hoạt tín hiệu ngắt ngoại vi trên RA0
Ngắt kết nối RA0
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à:
0 (mức thấp)
1 (mức cao)
Không xác định
Mức trung gian
Đoạn mã sau thực hiện nhiệm vụ gì? if(input(pin_a1)) { output_high(pin_c0); }
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.
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.
Tắt nút nhấn trên chân RA1.
Gây lỗi biên dịch.
Nếu một nút nhấn không hoạt động ổn định, nguyên nhân có thể do đâu?
Kết nối chân sai.
Thiếu xử lý hiện tượng rung tiếp điểm.
Sử dụng sai lệnh đọc tín hiệu.
Cả ba nguyên nhân trên.
Lệnh nào được sử dụng để thiết lập chế độ PWM cho CCP1 trong CCS C?
setup_ccp1(CCP_PWM)
setup_timer2()
set_pwm1_duty(value)
output_high(pin_x)
Lệnh setup_timer2(T2_DIV_BY_16, 249, 1) trong CCS C có chức năng gì?
Thiết lập tần số cho tín hiệu PWM.
Kích hoạt PWM.
Tạo độ trễ trong
Để thay đổi độ rộng xung của tín hiệu PWM, bạn cần sử dụng lệnh nào?
set_pwm1_duty(value)
setup_ccp1(CCP_PWM)
output_high(pin_x)
setup_timer2()
Lệnh setup_ccp1(CCP_PWM) cần được sử dụng ở đâu trong chương trình?
Trong hàm main() trước khi gọi set_pwm1_duty().
Trong bất kỳ vị trí nào.
Sau khi gọi set_pwm1_duty().
Không cần sử dụng lệnh này.
Khi sử dụng PWM, tại sao cần thiết lập Timer2?
Timer2 xác định tần số của tín hiệu PWM.
Timer2 xác định Duty Cycle của PWM.
Timer2 không liên quan đến PWM.
Timer2 chỉ cần cho các ứng dụng khác.
Nếu lệnh set_pwm1_duty(0) được gọi, điều gì sẽ xảy ra?
Tín hiệu PWM luôn ở mức thấp.
Tín hiệu PWM luôn ở mức cao.
PWM bị tắt hoàn toàn.
Không thay đổi tín hiệu PWM.
Lệnh nào trong CCS C thiết lập CCP2 để tạo tín hiệu PWM?
setup_ccp2(CCP_PWM)
setup_ccp1(CCP_PWM)
set_pwm2_duty(value)
setup_timer2()
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?
Thay đổi các tham số trong setup_timer2().
Thay đổi các tham số trong set_pwm1_duty(value).
Sử dụng lệnh setup_ccp1(CCP_PWM).
Không thể điều chỉnh tần số mà không ảnh hưởng Duty Cycle.
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?
output_c(value)
set_pwm1_duty(value)
setup_ccp1(CCP_PWM)
input(pin_x)
