Sách bài tập Tin học đại cương | Đại học Bách khoa Hà Nội

Sách bài tập Tin học đại cương của Đại học Bách Khoa Hà Nội với những kiến thức và thông tin bổ ích giúp sinh viên tham khảo, ôn luyện và phục vụ nhu cầu học tập của mình cụ thể là có định hướng ôn tập, nắm vững kiến thức môn học và làm bài tốt trong những bài kiểm tra, bài tiểu luận, bài tập kết thúc học phần, từ đó học tập tốt và có kết quả cao cũng như có thể vận dụng tốt những kiến thức mình đã học vào thực tiễn cuộc sống. Mời bạn đọc đón xem!

CK .0000069630
i' II lí 10:
TRN ĐÌNH KHANG, NGUYN HNG PHƯƠNG
Đ BÁ LÂM, NGUYN LINH GIANG
BÀI TP
T O N y e c
{ M i
TRÀN ĐÌNH KHANG, NGUYỄN NG PHƯƠNG,
ĐỎ BÁ LÂM, NGUYỄN LINH GIANG
BÀI TP
TIN HỌC ĐẠI CƯƠNG
(Tái bản lần th nhất)
BI HỌC THI NGUYÊN
TBUNGTM CIIƯ
NHÀ XT BẢN CH KHOA - HÀ NI
Bn quyn thuc v trưng Đi hc Bách Khoa Hà Ni.
Mi hình thc xut bn, sao chp mà không có s cho phép bng văn bn ca
trưng vi phm pháp luật.
Mã s: 58 - 2013/CXB/90 - O/BKHN
Bn mc trên xut bn phm ca Thư vin Quác gia Vit Nam
i tập tin hc đi cương / Trn Đình Khang, Nguyn Hng Phương, Đ Bá
Lâm, Nguyn Linh Giang. - H. BcB íàrò ĩà Ni, 2013. - lOOtr. : hình vỗ,
bn g ; 24cm h p rT f j
Thư mc: tr. 99
ISBN 9786049113406
1. Tin hc đi cương 2. Lp trình 3. i tập 4. Tài liệu hc tập
005.1076-d cl4
BKH0012p-CIP
2
LI NÓI ĐÀU
Cun iBii tp Tin hc đi cươttg đưc biên son theo chương trình môn hc
Tin hc đi CHimg ging dy tại Trưng Đi hc Bách Khoa Hà Ni. Sách đưc s
dng đ b tirc cho Giáo trình Tin hc đi cương, có th m tài liu hc tp cho
sinh viên Trurờig Đi hc Bách Khoa Hà Ni, cũng như c trưng Đi hc, Cao
đng k thuậtt 'à công ngh trong c nưc.
Vi mi: tiêu cung cp i liu hc tp cho sinh viên, nhóm tác gi đã tập
hp các bài tt> và kinh nghim ca nhiu thy, cô giáo trong Vin Công ngh
thông tin và Tiuyn thông, Trưng Đại hc Bách Khoa Hà Ni, đ biên tp thành
cun bài tp in;y.
B cc ách bao gm các phn chính như sau:
Phn c câu hi trc nghim: có 348 câu hi trc nghim b cc theo các
phn Tin hc cin bàn, Giải quyết bài toán và Lp trình.
Phn các bài tp t lun: c bài tập lập trình, vi mt số bài có lời gii
mu và mt s oài đ ngưi đc t giải.
Các tác giã hy vng cun bài tập này sẽ là mt tài liu hu ích cho ngưi s
dng.
Các tác gi xin bày tỏ s biết ơn chân thành đi với các thy go, các đng
nghiệp trong Vn Công ngh thông tin và Truyn thông, Trưng Đi hc Bách Khoa
Hà Ni, đã giúp đõ và đng viên rất nhiều trong quá trình biên son go trình. Đc
biệt, xin gi lcn cm
001 sâu sc tới PGS. Đng Văn Chuyết và TS. Phm Đăng Hải
đã dành thi giai đc bn thảo và cho Iihng ý kn dóng góp quý bấu.
Trong qiá trình biên son, mc dù đã rt c gng, nhưng sai sót điu khó
tránh khi, các c gi rt mong nhn đưc ý kiến đóng góp ca bn đc đ lần tái
bn sau đưc hoàn thin hom.
Mi ý kiến đóng góp xin gi về: Vin Công ngh thông tin và Truyn thông,
Trưng Đi họt Bách Khoa Hà Ni, số 1 Đi c Vit, Hai Bà Trưng, Hà Ni.
CÁC TÁC GIẢ
3
MC LC
Lời nói đu............................................................................................................................. 3
PHÀN I. TIN HC CN BN........................................................................................ 5
PHN n. GII QUYT BÀI TOÁN
........................................................................... 29
PHÀN III. LP TRÌNH..................................................................................................36
PHÀN IV. BÀI TP T LUN LP TRÌNH...........................................................78
IV. 1. Phn i tp có lời gii..............................................................................................78
IV.2. Phn bài tập bn đc t gii.....................................................................................95
4
PHN I. TIN HC N BẢN
C âu 1 .rrình tự x thông tin trong h thng thông tin?
a Dữ liệu > Thông tin -> Tri thc
b Thông tin » D liệu » Tri thc
c D liu > Tri thc > Thông tin
d Thông tin > Tri thc -> D liu
C âu 2 . ’hát biu nào dưi đây sai?
a D liu có th tn tại nhiu dng như n hiu vt lý, các ký hiu, số liệu
b Thông tin không th đưc truyn t ngưi này sang ngưi khác
c Tri thc là s hiu biết (nhn thc) v thông tin
d Máy tính đin t giúp quá trình x d liu din ra nhanh chóng và
chính xác hơn so với x lý thù công.
C âu 3. rhn câu trá lời chính xác nht: Quy trình x thông tin có trình t là?
aNhp d liu » u tr > Xut d liệu
b.Nhập thông tin > X > Xut thông tin
cNhp d liệu > X » Lưu tr > Xut d liu
H Mhp H liu » Xír > Xut d liệu
C âu 4. 'hát biu nào dưi đây là đúng?
a.rin hc nghiên cu vic x thông tin thành tri thc
b.Công ngh thông tin h tr vic qun nhân sự, qun i sn...trong
các doanh nghip
c.rhut ng công ngh thông tin và truyn thông và Internet nhu nhau
d.^ông ngh thông tin chi liên quan tới các bài toán ln, phc tạp như x
dữ liu ln, tính toán phc tp ...
5
C âu 5. H đếm cơ s b (b > 2 và nguyên dương) s dng bao nhiêu ch số?
a. Có 10 ch s b. Có b ch số
c. Có b-1 ch số d. Có 2 ch s 0 và b-1
C u 6. BIT viết tắt ca cm từ?
a. Binary Information Tranmission
b. Binary Information Technology
c. Binary Information uniT
d. Binary diglT
C âu 7. Số 5678 có th biu din ca mt giá trị trong h đếm cơ số nào?
a. H đếm cơ s 2
b. H đếm cơ số 2 và 8
c. H đếm cơ số 8, 10 và 16
d. H đếm cơ số 10 và 16
C âu 8. Số 101.112, trong h thp phân g trbàng?
a. 5.75 b. 5.525
c. 7.75 d. 7.5
C âu 9. Mt s nguyên biu din h 16 (h Hexa) là 2008. Hi g tr h 10
bao nhiêu?
a. 8020 b. 2080
c. 8200 d. 2820
C âu 10. Đng thc 131 - 4 5 = 53 đúng trong h cơ s nào?
a. 6 b. 7
c. 8 d. 9
C âu 11. S nhphân 11 1000 1110 có biu din trong h đếm cơ số 16 là?
a. E32 b. 38E
c. D32 d. 38D
C âu 12. S nhphân 110011.01 có biu din trong h đếm cơ s 16 là?
a. 33.1 b. C3.1
c. C3.4 d. 33.4
6
C â u 13. Số nh phân 1100101001 có biu din trong h cơ số 8 là?
1.1451 b. 4451
6241 d. 6244
C â u }4. S nh phân 11001.01001 có biu din trong hệ cơ s 8 là?
1.61.21 b. 31.22
31.21 d. 61.22
C âu 5 . Đ biu din cùng mt g tr, trong các h đếm sau, h đếm cơ sổ nào sử
dng nhiu ch số nht?
I. Cơ số 2 b. Cơ số 8
Cơ số 10 d. Cơ số 16
C âu 16. Đ biu din cùng mt giá tr, trong các h đếm sau, hệ đếm cơ s nào sừ
dng ít ch s nht?
1. Cơ s 2 b. Cơ số 8
Cơ s 10 d. Cơ số 16
C âu 17. Ti sao lại s dng hệ đếm Hexa trong tin hc?
I. Vi nó h đếm mà máy tính th hiu đưc
1. nó hệ đếm cơ s lớn nht
Vì nó dễ hiu vi con ngưi và đuc con ngưi s dng
1. Vì nó biu din ngn gn h đếm nhphân
C âu 8 . Mt s nh phân 32 bit nếu biu din trong h cơ số 8 s có tối đa bao
ìhiêu ch số?
1.8 b. 10
11 d. 4
C âu ]9. Số thp phân 19.75 trong hnhphân đưc biu din là?
1.1011.11 b. 10011.11
1011.011 d. 10011.101
C â u Bit là gì?
J. Là ch số nh phân
ĩ. Là đơn vị nhò nht đế biu diễn thông tin
Là đơn vnhò nht đ lưu tr thông tin
i. C 3 câu trn đu đúng
7
Câu 21. Cn bao nhiêu khi nh 8 KB đ đưc dung lưng 1 MB?
a. 64
c. 256
b. 512
d. 128
Câu 22. Mt Megabyte bng?
a. 210B
c. 210 KB
b. 2'-°TB
d. 220 KB
Câu 23. Mt Gigabyte bng?
a. 1024 KB
c. 210KB
b. 220 B
d. 220 KB
Câu 24. Mt Terabyte bng?
a. 210GB
c. 1000 MB
b. 210 MB
d. 1000 GB
Câu 25. Trong các giá trth hin kích thưc file như sau, giá trnào lớn nht?
Câu 26. Trong các giá trth hin kích thưc file như sau, giá trnào nhò nhát?
a. 1000 B
b. 100 KB
c. 10 MB
d. 1 GB
C âu 27. S dng 4 bit nh phân đ biu din s nguyên không du. Hi giá tr số
nguyên lớn nht có th biu din bao nhiêu?
a. 16 b. 15
c. 8 d. 7
C âu 28. S dng 4 bit nh phân đ biu din s nguyên có du. Hói giá trị s
nguyên ln nht có th biu din bao nhiêu?
a. 16 b. 15
c. 8 d.7
Câu 29. S dng 11 bit đ biu din mt số nguyên có du, di biu din sẽ là?
a. -1024 ti +1023 b. -2048 ti +2047
c. -1024 ti +1024 d. -2048 tới +2048
a. 100 KB
c. 2 " MB
b. 1 GB
d. 1000 MB
C âu 39. Mt s nguyên có du biều diễn dưi dng số nhphân 8 bit 01010101.
Giá trcùa s đó trong hthp phân ?
í. +85 b. -85
c. -43 d. +43
C âu 31. S nguyên -86 đưc biu din dưi dng số nhphân 8 bit là?
í. 0101 0101 b. 00110011
í. 1010 1010 d. 1010 1001
C âu 32. Cho các số nguyên không du X =6Ai6, Y=1538, z =105)0. Th tự sắp
>ếp gim dn s là?
í . X, Y, z b. Y, X, z
c. z, Y, X d. Y, z , X
C âu 33. Cho 4 số nguyên 16 bit du mã hexa là: 5931, AC43, B571, E755.
S lớn nht là?
a 5931
. B571
c. AC43
c. E755
C âu 34. Cách biu din số âm trong máy nh là?
a Thêm du - vào trưc giá trị nhị phân dương tương ng
b. Sừ dng mã bù 10
c Đo các bit ca giá trnhị phân dương tương ng
d. Sừ dng mã 2
C âu 35. Tìm câu trả lời thích hp nht cho câu hòi: Trong máy tính chiìng ta hiển
đn số nguyên có du bng mã bù 2 bi vi ưu đim cùa phương pháp y
li?
a Không phi s dng du +, -
b Cng, tr số du quy vmt phép cng vi s nguyên không du
c Kh năng biu din (di biu din) lớn hơn phương pháp dùng du +, -
d Không có hiện tưng tràn số
C âu 36. Khi cng hai số nguyên du trong máy tính, trưng hp nào chc chn
knông tràn?
a Cng hai số nguyên dương
9
C âu 4:. Cho 2 g tr A = +95, B = -43 đưc biu din dưi dng số nguyên
(u 8 bit trong máy tính. Kết qu ca phép toán A-B mà máy tính thc hin
arc là bao nhiêu?
í +138 b. -118
t - 1 d .+127
Câu 4;. Cho 2 giá tr A = -43 , B = -95 đưc biu din dưi dng số nguyên
(u 8 bit trong máy nh. Kết qu ca phép toán A+B mà máy tính thc hin
arc bao nhiêu?
í -138 b. -118
c+118 d .+256
C âu 4». Cho biết kết qu ca biu thc khi biu din dng số nguyên có du 8
ht? NOT 106,10)
í. 00010110 b. 00010101
L 10010110 d. 10010101
C âu 4). Kết qu ca biu thc 10010110 XOR 01101001 bao nhiêu?
í. 10010110 b. 00000000
t 11111111 d .01101001
Câu 4i. Theo chun IEEE 754/85, với cách biu din s thc đ chính xác đơn
(ng 32 bit) thì s bit dùng biu din phn mã lệch (e) sẽ là?
£ 7 bit b. 9 bit
L 8 bit d. 6 bit
C âu 4'. Theo chun IEEE 754/85, biu din số thc đ chính xác kép (64 bit) thì
o bit dùng biu din phn mã lệch (e) sẽ là?
í. 8 bit b.10 bit
c 9 bit d. 11 bit
C âu 4i. Biu din số thc X = 9.6875 dưi dng s du chm đng theo chun
EEE 754 vi 32 bit thì phn mã lệch (e) có giá trlà bao nhiêu?
í. 1000 0001 b.1000 0010
(.1000 0011 d. 0000 0011
C âu 4*. Xác đnh giá tr thp phân ca số thc X có dng biu din theo chun
EEE 754 vi 32 bit nhu sau:
(011 1111 1000 0000 0000 0000 0000 0000
11
a. 1 b. -1
c. 0 d. 2
C âu 50. Trong chun IEEE 754/85, NaN mt giá trị đc bit không biiu diễn
cho mt số. Phát biu nào sau đây là đúng v giá trNaN?
a. Tt c các bit phn mã lệch bng 1, bit phn đnh trtùy ý
b. Tt c các bit phn mã lch bng 1, phn đnh trcó giá tr khác 0
c. Tt c các bit phn mã lệch bng 0, tt c các bit phn đnh tr bng 1
d. Tt c các bit phn mã lệch bng 0, phn đnh trị có giá tr khác 0
C âu 51. Trong chun IEEE 754/85, thut ng "đchính xác kép" đ cp tớii?
a. S lưng bit dùng đ biu din số thc đ chính xác kép nhiu gp 2 \íần
số lưng bit dùng đ biu diễn số thc đ chính xác đơn
b. Di biu din s thc đ chính xác kép lớn gp 2 ln dài bin din s 'thc
đ chính xác đom
c. S thc đ chính xác kép biu din s thc c du, trong khi số thcc đi
chính xác đơn biu din số thc không du
d. S lưng các bit sau du phy trong biu din s thc đ chính xác kéfp
nhiu gp 2 lần so vi khi biu din dng số thc đ chính xác đem.
C âu 52. Phát biu nào sau đây sai v b mã ASCII?
a. Là b mã biu din ký t
b. Dùng 8 bit đ biu din ký tự
c. B mã ASCII không phân bit ch hoa, ch thưng
d. B mã ASCII có 128 t chun
C âu 53. Phát biu nào sau đây đúng v b mã ASCII?
a. Mi ký t trong b mã ASCII có đ dài 2 byte
b. B mã ASCII không biu din đưc ch số '0'
c. B mã ASCII có 256 ký tự
d. B mã ASCII có 128 ký t m rng không th thay đi đưc
C âu 54. Mun mã hóa mt bng mã gm 100 ký t phi s dng tối thiiểu bao
nhiêu bit nh phân cho mi từ?
a. 5 bit b. 6 bit
c. 7 bit d. 50 bit
12
C at 55. Trong các biu thc so sánh dưi đây, biu thc nào đúng, biết bng mã
đưc s dng là bng mã ASCII
a. '0' > 1 b. '9' > 'A'
c .a 'c 'B ' d. 'a '< T
C âi 56. Mt h thng mã s dng 2 byte đ mã hóa các ký tự. s lưng c tự
có th biu din là:
a. 2*28 b. 216
c. 2'6 d. 16*28
C â i 57. Bng mã ký t Unicode gì?
a. Là bng mã ký t chun tiếng Latin dùng trên Internet
b. Là bng mã ký t chun 8 bit tiếng Vit
c. Là bng mã ký t chun 32 bit ca thế giới
d. Là bng mã ký t chun 16 bit ca thế giới
C âi 58. Chc năng quan trng nht ca máy tính là?
a. Lưu tr d liu b. X d liệu
c. Nhp và xut d liu d. Điu khin
C âi 59. Các thành phn cơ bn ca mt h thng máy tính gm :
a. Mainboard, cng, màn hình
b. B x trung tâm, b nh, thiết bngoi vi, liên kết d liệu
c. Chip vi x lý, b nh, thiết bvào ra, ngun
đ. B x trung tâm, b nh chính, hthng vào ra, ln kết h thng
C âi 60. Các thao c x ca máy tính gm (1) Nhn lệnh, (2) Nhn d liu nếu
cn. (3) Gii mã lnh, (4) Thc hiện lệnh Trình t thc hin hrp là?
a. 1,2, 3,4 b. 1,3, 2, 4
c. 4, 2 ,1 ,3 d. 3 ,2 ,4 , 1
C âi 61. Các thành phn ca CPU gm?
a. Control Unit, B nh trong, Registers
b. Control Unit, B nh ngoài, Registers
c. Control Unit, ALU, Registers
đ. Input-Output System, Bus, B nh chính
13
C âu 62. Thành phn nào trong CPU đm nhn vic thc hin các phép x 1 dữ
liu?
a. CU b. Register Files
c. ALU d. Bus bên trong
Câu 63. CPU u mã lệnh đang đưc thc hin đâu?
a. CU b. ALU
c. Thanh ghi d. Bus bên trong
C âu 64. Hình sau là sơ đ cơ bn ca mt máy tính. Biết ALU là khi s hc và
logic. Hãy chi ra s kết hp đúng ca A, B, c trong hình.
-----------
Lung điu khin
------------- Lung d liu
A B c
a
ALU Bộ nh Khi điu khin
b
Khi điu khiển
ALU
B nh
c Khi điu khiển
Bộ nh
ALU
d B nh
Khi điu khin
ALU
14
C âu 65. Chc năng chính ca tập c thanh ghi ?
a. 3iều khin nhn lệnh
b. rha các thông tin phc vụ cho hot đng ca CPU
t
c. /n chuyn thông tin gia c thành phn trong máy tính
d. Chông có câu tr lời nào ên là đúng
C âu 66. Phát biu nào sau đây sai v CPU?
a. Các thành phn chính cùa CPU bao gm c u , ALU và tập các thanh ghi
b. IPƯ hot đng theo chương trinh nm trong b nh chính
c. CPU đàm nhn tất c các chc năng ca h thng máy tính
d. rc đ ca CPU ph thuc vào tần số xung nhp cùa đng h
C âu 67. Phát biu nào sau đây đúng v CPU?
a. CPU hot đng theo các chương trình nm trên 0 cng
b. Chi điu khin c u trong CPU điu khin hot đng ca tt c các b
ihn khác trong máy tính
c. "âp các thanh ghi ca CPU mt số ngăn nh có đa chỉ xác đnh ca b
ìh chính
d. Chi tính toán số hc và logic ALU trong CPU thc hin với các d liu
Ìằm trên tp thanh ghi
C âu 68 . Phát biu nào sau đây đúng v b nh chính?
a. B nh chính bao gm RAM và 0 cng
b. nh chính đưc chia thành c ngăn nh có kích thưc 1 MB
c. Dung lưng b nh chính có th lớn y ý
d. CPU có th trao đi d liệu trc tiếp với b nh chính
C âu 69. Chc năng chính ca RAM?
a. Lưu tr d liệu u dài
b. Lưu tr d liu và chương trình đang thc hin
c. -ưu tr chương trình dùng đ khi đng máy nh
d. at c c đáp án trên
C âu 7 0 .3 nh đm nhanh cache dùng đề?
a. 'ăng cưng dung lưng nh ca CPU thay cho các thanh ghi
b. Mhm gim đ chênh lệch tc đ giữa CPU và b nh chính (RAM)
c. Pe th lưu d liu khi mt đin
d. ~t cả các phương án trên đu sai
15
C âu 71. Phát biu nào sau đây là SAI?
a. Tc đ truy cp b nh trong nhanh hơn tốc đ truy cp b nh nịgoàài
b. Ni dung ca ngăn nh có th thay đi nhưng đa chi ngăn nh thù CCO định
c. Ni dung RAM mt đi khi mt điện
d. Dung lưng b nh cache lớn hơn dung lưng ca RAM
C âu 72. La chn nào sau đây chi cha các thành phn là b nh trong?
a. RAM, ROM-BIOS, CD-ROM
b. RAM, ROM-BIOS, b nh Cache
c. ROM-BIOS, đĩa cng, b nh Cache
d. RAM, USB Memory stick, CD-ROM
C âu 73. Chi ra lựa chn tương ng vi các thành phn thuc b nh ngoàú:
a. ROM, RAM
b. Đĩa cng, CD-ROM, ROM
c. Đĩa cng, đĩa mm
d. Đĩa cng, đĩa mm, b nh cache
C âu 74. Trong các nhóm thiết b dưi đây, nhóm nào chì cha các thiết b thuc
b nh ngoài?
a. ROM, RAM, CDROM
b. Đĩa cng, đĩa mm, CDROM
c. Đĩa cng, đĩa mm, cache
d. Đĩa cng, đĩa mm, DVD, ROM
C âu 75. La chn nào dưi đây chi ra th tự tăng tốc đ trao đi d liiu cvùa c
loại b nh?
a. Tp thanh ghi, Cache, RAM, Đĩa cng
b. RAM, Đĩa cng, Tp thanh ghi, Cache
c. RAM, ROM, Đĩa cng, Tp thanh ghi
d. Đĩa cng, RAM, Cache, Tp thanh ghi
C âu 76. Trong các do sau, do nào giải thích vic dung lưng ia bo nh
ngoài có th lớn hơn b nh trong rt nhiu?
a. Vì công ngh chế tạo b nh ngoài r hơn b nh trong rt nhiều
b. b nh trong chu s điu khin trc tiếp ca CPU
16
c. Vì b nh ngoài không bị gii hn bởi không gian đa chi ca CPU
d. Vì h thng vào ra cho phép ghép ni với b nh có dung lưng lớn
C âu 77. Phát biu nào sau đây sai v h thng vào ra?
a. H thng vào ra gm có 2 thành phn chính là các thiết b vào ra và
nô-đun vào ra
b. Mi cng vào ra kết ni đưc vi duy nht mt thiết bvào ra xác đnh
c. Các thiết b vào ra kết nối vi CPU thông qua mô-đun ghép ni vào ra
d. VIi cng vào ra có 1 đa chi xác đnh, do CPU đánh đa chi
C âu 78. Trong các thiết bsau, thiết bị nào là thiết bị vào?
a. Máy quét b. Màn hình
c. Máy in d. Máy chiếu
C âu 79. Trong các thiết bsau, thiết bnào là thiết bra?
a. Máy quét b. Bàn phím
c. Con chut d. Máy chiếu
C âu 8 0 .0 đĩa cng đưc xếp loại là:
a. "hiết bị vào b. Thiết bị ra
c. "hiết b u tr d. C 3 đáp án trên đu sai
C âu 81. Trong máy tính b phn nào đm nhim vic vn chuyn thông tin gia
c thành phn bên trong máy nh?
a. B x trung tâm b. BUS
c. Các thanh ghi d. Bộ nh trong
C âu 82. Một máy tính s dng b vi x có đ rng ca đưng bus đa chi
(Address Bus) 32 bit. Hỏi với máy tính này, dung lưng tối đa ca b nh
chhh bao nhiêu biết mi ô nh kích thưc 1 Byte?
a. A GB
b. ;32*8 Byte
c. L Byte
d. Không gii hạn
C âu 83. Vlt máy tính đ rng bus đa chi (Address Bus) 32 bit, đ rng bus
d liệu (Data bus) là 24 bit. Hi b x lý, trong mt lần truy cp b nh,
th trao đi tối đa bao nhiêu byte?
a. 43B b. 4 byte
c. 16MB
d. 3 byte
2 -BTTHĐC
C âu 84. Bus đa chi không vn chuyn thông tin nào sau đây?
a. Đa chì ngăn nh cha d liu trong b nh RAM
b. Đa chi tp tin trên cng
c. Đa chi ngăn nh cha lnh cn np vào CPU
d. Đa chi cng vào-ra cn trao đi d liu
C âu 85. Phát biu nào dưi đây sai?
a. Cu trúc d liu đ cp tói vic biu din d liu trong máy tính
b. Gii thut đo nhng chuyên gia tin hc đưa ra
c. Giải thut phi bao gm dãy "hu hn các thao tác x lý
d. Phn mm máy tính bao gm d liu và gii thut
C âu 86. Ông N.Wirth ngưi sáng lập ra trưng phái lập trình có cu trúác cho
rng?
a. Chương trình = cu trúc d liệu + X
b. Chương trình = D liệu + X lý
c. Chương trình = cu trúc d liệu + Gii thut
d. Chương trình = D liệu + Gii thut
C âu 87. Phát biu nào dưi đây đúng?
a. Máy tính có th hiu đưc ngôn ng lp trình bc cao
b. Thông dch cách dch toàn b chương trình ngun sang ngôn ng (đích
c. Máy tính chi hiu trc tiếp đưc ngôn ng máy
d. Ngôn ng máy không phi ngôn ng lp trình
C â u 88. Trong cách tiếp cn phn mm, vic viết code ca chương trìình 1 đưc
thc hin bưc?
a. Bưc thc hin chương trình
b. Bưc biên dch
c. Bưc xây dng chương trinh
* d. Bưc trin khai
C â u 89. Trong các loi mng sau đây, mng nào có kích thưc nh nht?
a. LAN b. MAN
c. GAN d. WAN
C âu 90. Trong các mng sau đây, mng nào mng din rng ?
a. LAN b. WAN
c. Internet d. Intranet
/ V 18
:
vií' r.
C âu 91. Trong các mng sau, mng nào mng cc b?
a. WAN b. LAN
c. Internet d. GAN
C âu 92 Đâu không phi là thành phn cùa mng máy nh?
a. Hệ điu hành mng
b. B đnh tuyến
c. Cáp quang
d. Control Panel
C âu 93. Cu hình (Topology) nào sau đây không phi cu hnh mng?
a. Ring b. Star
c. Bus d. Line
C âu 94. Dch v nào sau đây không phi là dch v da trên mng Internet?
a. Email b. Online chat
c. ĩelnet d. Programming
C âu 95. Trong môi trưng mng, FTP là:
a. Dịch vụ tìm kiếm thông tin
b. Dịch v thư đin tử
c. Giao thc tán gu
d. Giao thc truyn file
C âu 96. Các thành phn cơ bn ca mt mng máy tính bao gm?
a. Các máy tính, thiết b vào ra, đung truyn, các thiết bkết nối mng
b. Các máy tính, card mng, máy chủ, các thiết bkết ni mng
c. Cúc máy ilali, card mng, dung truyèn, các thiết b két nối mng
d. Các máy tính, card mng, đưng truyn, phn mm kết ni mng
C âu 97. Mng Internet thuc loại mng?
a. LAN b. GAN
c. WAN d. Peer to Peer
C âu 98. Đâu là mt đa chi email hp lệ?
a. gmail.com b. yahoo.com.vn
c. vTvw.gmail.com.vn d. tinhoc@soict.hut.edu.vn
19
C âu 99. Trang web nào cho phép tạo mt đa chì email min phí?
a. www.gmail.com
c. www.facebook.com
b. www.yahoo.com.vn
d. Đáp án a và b
C âu 100. Trong các lĩnh vc ca tin hc, lĩnh vc nào nghiên cu cơ chế điều
khin và phi hp khai thác có hiu qu các tài nguyên ca máy tính?
a. Thiết kế và chế to máy tính
b. H điu hành
c. Thut toán và cu trúc d liệu
d. Tương tác ngưi máy
C âu 101. H thng các chương trinh đm nhn chc năng làm môi trưng trung
gian gia ngưi s dng và phn cng ca máy tính đưc gi ?
a. Phn cng
b. H điu hành
c. Các loi trình dch
d. Tt c đu đúng
C âu 102. Chn phát biu đúng v vai trò ca h điu hành?
a. Qun i nguyên ca máy tính
b. Biên dch chương trình ngun sang mã máy
c. Kim tra phn cng h thng khi khi đng
d. Son tho văn bn
C âu 103. Trong các tên dưi đây, đâu là tên ca mt h điu hành?
a. WORD b. UNIX
c. Windows Explorer d. Microsoft Office
C âu 104. Các ký t nào sau đây không đưc dùng đ đt n tp, thư mc tronng hệ
điu hành Windows?
C âu 105. Trong h điu hành MS-DOS, n tp tin nào sau đây đưc chp nhaận?
a. V A
c.
, %
b. @, 1
d. $
a. KET/ \QUA7.TXT
c. KETQU@.TXT
b. *KETQUA.TXT
d. KETQUA:TXT
20
Câu 10). Trong h điu hành MS-DOS, n tp tin nào sau đây không đưc chp
nlận?
a.HOCKY(.TXT b. KETQUAS.TXT
c. HOCKY@.TXT d. KETQUA7.TXT
Câu 10. Trong h điu hành MS-DOS, n thư mc nào sau đây không đưc
chip nhn?
a. C:\KETQUA b. KETQU@
c. KETQU@.TXT d. C 3 cách đt n trên.
C âu 10Í. Trong h điu hành MS-DOS, n thư mc nào đuc chp nhn?
a. r:\THIHOCKY b. \THIHOCKY
c. THIHOCKY d. C 3 cách đt n trên
C âu 10*. Trong các đuôi tp dưi đây, đuôi nào gn vi tệp có th chy trc tiếp
tri h điu hành WINDOWS?
a. TXT b. EXE
c. !PG d. MP3
C âu 11(. Trong h điu hành, các tp đưc tổ chc lưu tr dưi dng?
a. Dạng ngăn xếp b. Dng đưng dn Path
c. 3ng cây d. Dng thư mc
C âu 111. Khi tìm kiếm tp với tên tim kiếm baitap?.* thì nhng tệp nào có th
cết qu ca vic tìm kiếm, biết rng có các tệp: baitap5.pdf, baitap9.doc,
batapl0.doc và baitap8.pdf?
a. taitap5.pdf
b. kaitap5.pdf và baitap8.pdf
c. Vaitap5.pdf, baitap9.doc và baitap8.pdf
d. baitap5.pdf, baitap9.doc, baitapl0.doc và baitap8.pdf
C u 112 Trình ng dng nào dưi đây là trình ng dng chun ca Windows XP
(kh cài đt Windows sẽ có)?
a. Iaint b. Microsoft Excel
c. Microsoft Word d. Turbo c
C âu 113 Trong Windows Explorer, đ chn tt c các tp và thư mc con trong
thu mc đang xét, dùng tổ hp phím:
a. Ctrl + c b. Ctrl + V
21
c. Ctrl + X d. Ctrl + A
C âu 114. Trong h điu hành Windows, tổ hp phím nào có th đóng mt ng
dng bt k?
a. Alt + F4 b. Ctrl + Alt +Del
c. Ctrl + F 1 d. Ctrl +F4
C âu 115. Trong h điu hành Windows, phím tt dùng đ xóa file ?
a. Ctrl + c b. Ctrl + A
c. Ctrl + D d. Ctrl + V
C âu 116. Trong Windows Explorer, đ sao chép tập tin/thư mc, dùmg t hp
phím nào?
a. Ctrl + c b. Ctrl + V
c. Ctrl + X d. Ctrl + A
C âu 117. H điu hành đưc xếp loại là:
a. Phn mm ng dng b. Phn mm hthng
c. Phn mm giải trí d. Tt c các loại trên
C âu 118. Trong các h điu hành sau, h điu hành nào đưc công bổ) gn đây
nht?
a. WINDOWS XP b. UNIX
c. WINDOWS 7 d. WINDOWS VISTA
C âu 119. Phát biu nào v Windows Explorer chưa chính xác?
a. Cho phép duyt cây thư mc
b. Là mt ng dng ca Windows
c. Cho phép chuyn đi n file
d. Là chương trình cho phép duyt Web
C âu 120. Trong mt s phiên bn h điu hành Windows, kh năng t đlng nhận
biết các thiết b phn cng và t đng cài đt cu hình ca các tthiết b là
chc năng:
a. Plug and Play b. Desktop
c. Windows Explorer d. Multimedia
C âu 121. Chc năng cùa chương trình dịch:
a. Dch chương trình viết bng ngôn ng cp cao thành chương trìnih dưi
dng mã máy
22
b. Điu khin và qun vào ra d liệu
c. Điều khin các thiết b nối với máy tính
d. Thc hin vai trò trung gian gia máy tính với con ngưi
Câu 122. Phn mm h thng cn phi đưc cài đt trên máy tính đ bàn thông
thung s dng h điu hành WinXP đ mt máy in Laser mi mua có th
s dng đưc là:
a. Phần mm son tho văn bn
b. Trình điu khin thiết bcho máy in
c. Font ch tiếng Vit
d. K.hông cn thêm phn mm nào khác vì h điu hành WinXP đã đy đù
C âu 123. Đe loi b mt chương trình không còn sử dng na, ngưi dùng thc
hiện:
a. a bò biu tung cùa chương trình đó trong Start Menu
b. Xóa b các tp tin và thư mc ca chương trình đó trên máy tính
c. a bò biu tưng ca chương trinh đó trên màn hình
d. Dùng chương trình Add and Remove Programs trong Control Panel
C âu 124. Thành phn nào sau đây không nm trong tt c các h thng thông tin?
a. Người s dng
b. Trang thiết bị, máy móc sàn xut ca doanh nghip
c. Quy trình thu thp, phân ch, x lý thông tin
d. Mng máy tính
C âu 125. Cht lưng cũa thông tin không đưc đáiili giá qua yéu ló?
a. Kịp thi
b. Đy đ
c. Thng nht
d. Quan trng
C âu 126. Phương pháp vòng đi phát triển hệ thng (SDLC) bao gm bao nhiêu
giai đon chính?
a. 5
b. 6
23
c. 7
d. 8
C âu 127. Khi đưa h thng vào vn hành trong thc tế, chiến lưc nào có đ ri
ro cao nht?
a. Song song
b. Thí đim
c. Thay thế
d. Giai đon
C âu 128. Phn mm son tho văn bn nào dưi đây là phn mm mã ngun m?
a. Microsoft Word
b. Writer
c. Word Perfect
d. TextMaker
C âu 129. Quan đim nào v phn mm mã ngun m là đúng nht?
a. Phn mm mã ngun m không đưc nhà phát trin h tr
b. Là phn mm miễn phí
c. Là phn mm với mã ngun đưc công b, cho phép mi ngưi nghiên
cu, thay đi, ci tiến phn mm theo mt s quy tc trong giy phép đi
kèm.
d. Là các phn mm chi dành cho h điu hành Linux
C âu 130. Quy tắc son tho văn bo nào dưi đây đúng?
a. Các du ngt câu như du chm, du phy, du hai chm phi đưc đt
t t trưc nó.
b. Sau .dấu m ngoc phi mt du cách rồi mi đến từ tiếp theo
c. Gia hai từ gn nhau nên s dng mt hoc hai du cách đ phân tách
chúng
d. Trong mt đon văn, đ văn bn đưc xung dòng ngưi dùng s dng
phím Enter đ kết thúc dòng.
C âu 131. Trong các phn mm dưi đây, đâu không phi phn mm trình din
văn bn?
a. Microsoft PowerPoint
b. Microsoft Presentation
24
c. Apple KeyNote
d. Open Office Impress
Câu 132. Template đề cp tới?
a. Các mu trình din đã đưc đnh nghĩa trưc
b. Thư viện các hình nh, biu tưng
c. Các hiệu ng chuyn đng đã đưc đnh nghĩa trưc
d. Trình diễn slide mt cách t đng
Câu 133. Đâu lưu ý đúng khi trinh bày slide?
a. Font Times New Roman dđc hom font Anal
b. Nên tnh vic s dng hình nh, biu đ thay cho ch viết, con số
c. Không n lặp nhiu t ng trong cùng mt slide
d. Mi slide có th trình bày nhiu ý tung có mi ln quan đến nhau
Câu 134. Trong các phn m rng cùa file sau, phn m rng nào đưc tạo ra bời
phn mm PowerPoint 207?
a. pptx
b. docx
c. xlsx
d. doc
Câu 135. Trong các phn mm dưi đây, đâu không phi phn mm báng tính?
a. Lotus 1-2-3 b. Google spreadsheet
c. Open Office Calc d. Microsoft spreadsheet
Câu 136. Vai trò chính ca phn mm bng tính đi với ngưi sừ dng?
a. Nhp, xut các s liệu
b. Tính toán c s liệu
c. Tính toán đim trung bình cùa ngưi học
d. Trình bày s liu dưi dng con số và đ thị
Câu 137. Phát biu nào dưi đây sai vphn mm bng tính Excel?
a. Đa chi ca ô đưc xác đnh thông qua hàng và ct ca ô đó
b. Nội dung ca các ô có th thay đi
25
c. Các hàng và ct đưc đánh số ng dn, bt đu t 1
d. Các ô có đa chi xác định
C âu 138. Trong phn mm Excel, hàm AVERAGE hàm dùng đ m?
a. Giá trln nht trong các ô đưc chn
b. Giá trị nhò nht trong c ô đưc chn
c. Giá trị trung bình trong các ô đưc chn
d. Tng tt c các giá trị trong các ô đưc chn
C âu 139. Các khái nim page, sheet, slide đ cp tới các phn mm lần lưt là?
a. Microsoft Word, Microsoft Excel, Microsoft PowerPoint
b. Microsoft PowerPoint, Microsoft Excel, Microsoft Word
c. Microsoft Word, Microsoft PowerPoint, Microsoft Excel
d. Microsoft Excel, Microsoft Word, Microsoft PowerPoint
C âu 140. Phát biu nào dưi đây vCơ s d liu là đúng?
a. Là các thành phn cơ bn trong d liu
b. Là tp hp các d liu có ln quan tới nhau đưc lưu tr trên máy tính đ
phc v cho việc s dng, qun d liu
c. Cơ s d liu là i nguyên phc vụ cho mt ngưi duy nht
d. Các d liệu đưc mã hóa dưi mt dng cu trúc nào đó thay dưi dng
nhphân.
C âu 141. Phát biểu nào dưi đây v ưu đim ca Cơ s d liệu sai?
a. Gim trùng lp d liệu
b. D liệu có th truy xut theo nhiu cách khác nhau cho các đi tưng
ngưi dùng khác nhau
c. Nhiu ngưi dùng có th cùng khai thác cơ s d liệu
d. C tính bo mt tốt
C âu I42à Phát biu nào dưi đây v H qun trị Cơ s d liu sai?
a. H qun trị Cơ s d liu phi đm bo việc u tr d liệu u dài
b. Là h thng các phn mm cho phép đnh nghĩa, tạo tp và thc hin các
thao tác đi với cơ s d liệu
c. H qun trị Cơ s d liu phi đm bo s ph thuc ca d liệu vào
chương trình
26
d. H quán trị Cơ s d liu phải hỗ tr các ngôn ng cp cao nht đnh
Câu 143. Phát biu nào dưi đây v thương mại đin t là đúng?
a. Các hot đng cùa thương mi din tử c th gi tới khách hàng thông
tin sn phm qua email, m kiếm thông tin khách hàng trên Internet...
b. Thương mi đin t sẽ thúc đy doanh thu cùa mi doanh nghiệp
c. Khách hàng sẽ nhanh chóng biết đến website ca doanh nghip nên không
cn qung
d. Thương mại đin t bao gm việc thanh toán qua mng
C âu 144. Phát biu nào dưi đây vthương mi đin t đúng?
a. Ngưi tiêu dùng không th nhn đưc các tư vn v sn phm trong
thương mại đin t
b. Chi phí giao dịch thông qua thương mi đin t cao hơn chi phí giao dịch
thông thưng
c. Ngưi tiêu dùng không th ngi nhà đt mua hàng ca mt doanh
nghip nưc ngoài
d. Giúp ngưi tu dùng nhiu lựa chn hcm thương mi truyn thng vì
có th so sánh thông tin v sản phm ca các doanh nghip khác nhau
C âu 145. Hình thc giao dch gia doanh nghip với khách hàng hình thc?
a. G2C
b. C2B
c. B2C
d. B2G
C âu 146. Phn mm trí tu nhân to là?
a. phn mm h thng
b. Là phn mm giúp máy tính hot đng và suy nghĩ như con ngưi
c. phn mm giúp con ngưi suy nghĩ thông minh hom
d. Là phn mm gii quyết c vn đ khó khăn mà con ngưi chưa giải
quyết đưc
C âu 147. Đâu ví d sai v mt phn mm tri tu nhân to?
a. Phn mm chơi c gia ngưi và máy tính
b. Phn mm nhn dng ch viết ca con ngưi
27
c. Phn mm trò chuyn gia con ngưi và máy tính
d. Phn mm giúp con ngưi tính toán các d liệu
Câu 148. Đâu phát biu đúng vphn mm h chuyên gia?
a. Là phn mm cài đt tri thc ca mt hay nhiu chuyên gia vào máy tính,
đ giúp máy tính có kh năng giải quyết vn đ như mt ngưi chuyên gia
b. Là mt h thng bao gm máy nh, các chuyên gia và ngui dùng đ đưa
ra các ý kiến da trên thông tin ngưi dùng cung cp
c. Là mt phn mm s dng sự thông minh ca máy tính đ h tr cho
ngưi chuyên gia giải quyết vn đ
d. Là mt phn mm giúp máy nh có tri thc ca ngưi chuyên gia đ đưa
ra ý kiến v mi lĩnh vc.
28
PHN II. GIẢI QUYT BÀI TOÁN
C âu 149. Quy trình giải quyết i toán bàng máy nh?
a. Xây dng thut giải -* Lựa chọn phương pháp giải -* i đt chương trình -»
Hiệu chinh chương trình -* Thực hiện chương trình -* Xác định bài toán
b. Xác đnh bài toán -* La chn phương pháp giải -* Xây dng thut giải
-* Cài đt chương ưình -* Thc hin chương trình -* Hiu chinh chương
trinh
c. Xác đnh bài toán -* Xây dng thut giải -* La chn phương pháp giải -*
Cài đt chương trình -* Hiệu chinh chương trình Thc hin chương trình
d. c đnh bài toán -* La chn phương pháp giải Xây dng thut giải -*
Cài đt chương trình -* Hiệu chinh chương trình -* Thc hiện chương trình
C âu 150. Trong bài toán kim tra mt số nguyên dương A có phi s nguyên tố
hav không, thì phát biu nào dưới đây đúng?
a. Đầu vào: s nguyên dương A. Đu ra: Gii thut kim tra A phi số
nguyên t hay không
b. Đầu vào: s nguyên dương A và gii thut kim tra s nguyên tố. Đu ra:
rhông báo A s nguyên tố hoc không phi số nguyên tố
c. Dầu vào. só nguyên ilưưug A. Đàu ra: Giài ihut kim ưa nguyên
:hông báo A s nguyên tố hoc không phi s nguyên tố
d. Đầu vào: s nguyên dương A. Đu ra: Thông báo A là sổ nguyên t hoc
ichông phi s nguyên tố
C âu 151. Phương pháp lit kê tất c các kh năng cùa lời gii, tiến hành th đ
tìm ra lời gii đúng là phương pháp nào dưi đây?
a. Phương pháp vét cn
b. Fhương pháp chia
29
c. Phương pháp th
d. Phương pháp lp
C âu 152. Đâu phát biu đúng về thut toán?
a. Thut toán dãy hu hn các thao tác và trình t thc hin các thao tác
đó
b. Thut toán phương pháp tìm ra lời giải tt nht cho vn đ đt ra
c. Thut toán mt tập các hưng dẫn dành cho máy tính đ giải quyết mt
bài toán đt ra
d. Thut toán là phương pháp tìm ra lời giải cho vn đ đt ra
C âu 153. Đâu không phi đc trưng ca thut toán?
a. Tính hu hn b. Tính riêng bit
c. Tính xác đnh d. Tính hiu qu
C âu 154. Đâu không phi ngôn ng dùng đ biu din thut toán?
a. Ngôn ng lập trình b. Ngôn ng ta ngôn ng lập trình
c. Ngôn ng cơ th d. đ khi
C âu 155. Đâu cách biu din thut toán trc quan nht?
a. Sơ đ khi b. Ngôn ng lp trình
c. Mã gi d. Ngôn ng t nhiên
C âu 156. Đâu phát biu đúng v thut toán đ quy?
a. Là thut toán đánh du kh năng cha lời giải đã thc hin đ khi th kh
năng mi có th thc hiện nhanh chóng hơn
b. Phn cơ s trong thut toán đ quy là nhng trưng hp cn thc hin li
thut toán
c. Thut toán đ quy thc hin phân chia bài toán thành các bài toán con
th gii đưc
d. Kết qu ca thut toán đ quy ph thuc vào kết qu ca bài toán ng
loi có mc đ thp hom
30
C âi 157. Cho biết giá trca A, B khi kết thúc đon mã giả:
A <- 0, B <- 1
if (A < B) then
A = B
B = A
end if
a. A = 0 B = 1 b. A = 1 và B = 0
c. A = 1 và B = 1 d. A = 0 và B = 0
Cat 158. Cho lưu đ thut toán
Ket lun nào sau đây đúng?
a. a = 0, b= 1 0 ^ Phương trình vô nghim
b. a = 10, b = 0 Phương trinh vô nghim
c. a = 0, b = 10 Phương trình vô số nghim
c. a = 10, b = 10 Phương trình vô số nghim
31
C âu 159. Vi mi quan h nào giữa hai số nguyên dương a và b thì thut toán
đưc th hin bng lưu đ bên dưi đi theo trt t:
( l)- > (2 ) - (3 ) - (5 ) - ( 2 ) - ( 3 ) - ( 4 )- (2 )-(6 )
a. a = 2b b. 2a = 3b
c. 2a = b d. 3a = 2b
Câu 160. Cho biết giá tr ca MAX khi kết thúc đon mã giả:
A <- 3, B 1, c <- 5, MAX <- A
if (MAX < B) then
MAX < B
end if
if (MAX < C) then
MAX <- c
end if
a. 1 b. 5
c. 3 d. Không xác đnh
C âu 161. Cho biết giá tr ca A, B khi kết thúc đon mã giả:
A 4 0, B < 1, c
if (A < B) then
32
c = B
B = A
A = c
end if
a. A = 0 và B = 1
b. A = 1 và B = 0
c. A = 1 và B = 1
d. A = 0 và B = 0
C âu 162. Cho biết giá tr ca A khi kết thúc đon mã giả:
A < -0
for i = 1 to 5 do
A <- A+2
end do
a. A = 9 b. A =10
c. A = 18 d. A = 20
C âu 163. Cho biết giá tr ca s khi kết thúc đon mã giả:
i, s < 0
for i = 1 to 9 do
s < s + i
end do
a. 0
b. 45
c. 55
d. 66
C âu 164. Cho biết giá trcùa n khi kết thúc đon m ã^i:
X <- 1, n < 1
while (X < 1000) do
X < 2X
n < n + 1
end while
- r a r m i H
33
a. 4 b. 5
c. 6 d. 7
C âu 165. Cho biết giá trca n khi kết thúc đon mã giả:
X « - 1, n < 1
while(x < 1000) do
X < - 2*x
n < n+1
end while
a. 9 b. 10
c. 11 d. 12
C âu 166. Cho biết giá trca F(n) với n = 4 biết hàm F đưc tính đ quy như sau:
F(0) <- 1
if (n>0) then
F(n) « F(n-1) * n
end if
a. 0
b. 1
c. 24
d. 6
C âu 167. Hàm T(n) đưc đnh nghĩa đ quy như sau:
T(0)= 1;T (1)= 1;
T(n) = 2T(n-l) + 3T(n-2) với n>=2
Hãy cho biết giá trị ca hàm T(4)?
a. 7 b. 20
c. 45 d. 41
C âu 168. Cho biết giá trca F(n) với n = 5, biết m F đưc tính đ quy như sau
F(0) <r- 0, F(0) <- 1
if (n>l) then
F(n) < F(n-1) + F(n-2)
end if
34
a. 3
b. 4
c. 5
d. 6
Câu 169. Phát biu nào v thut giải heuristic đúng?
a. Là thut gi giúp tìm ra lời gii tốt nht d dàng và nhanh chóng hơn các
phương pháp khác
b. Là s m rng tính c đnh ca thut toán
c. Thưng đưa ra lời giải gn đúng tốt cho các bài toán phc tạp khó m li
gii đúng
d. Là thut gi luôn tìm ra đưc lời gii tt cho các bài toán phc tạp.
35
PHN III. LẬP TRÌNH
Câu 170. Ngôn ng lp trình c đưc xếp vào loi ngôn ng lp trình nào?
a. Ngôn ng máy b. Hp ng
c. Ngôn ng lập trình bc cao d. Ngôn ng lập trình logic
Câu 171. Phát biu nào dưi đây vngôn ng lp trình c đúng?
a. Trình biên dch s dch ngôn ng c thành mã máy
b. c hp ng
c. Máy tính có th hiu trc tiếp đưc ngôn ng c
d. Ngôn ng c hin nay chi tn tại vi mt phiên bn duy nht
Câu 172. Trong nhng thành phn sau, chi ra mt thành phn không thuc dãy?
a. Hp ng
b. Ngôn ng bc cao
c. Thông dịch
d. Ngôn ng máy
Câu 173. Đâu là biu din hng số h cơ số 8 trong c?
a. 2006 b. 0x2006
c. 0X2006 d. 02006
Câu 174. Chn phát biu đúng nht v đnh danh trong c?
a. Đnh danh dãy ký t ch cái, ch s hoc du gch dưới
b. Đnh danh là dãy ký t ch cái hoc ch số
c. Đnh danh dãy ký t ch cái, ch s hoc du gch dưi trong đó ký tự
đu tn không phài số
d. Đnh danh dãy ký tự ch số hoc du gch dưi
Câu 175. Trong ngôn ng lập trình c, tên biến nào sau đây không đưc chp ruhn?
a. KetQua b. ket qua
c. Ket Qua d. ketqua
36
Câu 176. Trong ngôn ng lập trình c , n biến nào sau đây đưc chp nhn?
a. Bien#2 c. ISoNguyen
b. So Nguyen d. So_Nguyen
Câu 177. Đâu chú thích trong c?
a. (* dòng chú thích *) c. { dòng chú thích }
b. // dòng chú thích d. <-- dòng chú thích -->
Câu 178. Chn cách khai báo đúng tệp tu đ trong lp trình c?
a. #include "tên_tp_tiêu_đ" c. #include tên_tp_tiêu_đ
b. include <tên_tp_tiêu_đ> d. #include <tên_tp_tiêu_đ>;
Câu 179. Trong cu trúc cơ bn ca chương trình c , thành phn nào bt buc phải
có?
a. Phn khai báo các tệp tiêu đ c. Phn khai báo các hàm nguyên mu
b. Định nghĩa kiu d liu mi d. Phn đnh nghĩa hàm main()
Câu 180. Gi thiết b ccmg trình Turbo c 3.0 đưc cài đt trên 0 đĩa D ca mt
máy tính. Hãy ch ra n đy đù ca chương trình dch Tc.exe
a. D:\TC\BIN\Tc.exe c. Tc.exe
b. D:\TC\BIN\Tc d. \TC\BIN\Tc
Câu 181. Khng đnh nào sau đây v ngôn ng lập trình đúng?
a. Máy tính có th chy ngay mt chương trình viết bng ngôn ng assembly
b. Đe chy mt chương trình viết bng ngôn ng máy thì trưc hết ta phi
bicn đch
c. Đe chy đưc mt chương trinh viết bng ngôn ng lập trình bc cao,
trưc hết cn biên dch hoc thông dch chương trình
d. Tt c các khng đnh trên là đúng
Câu 182. Ngôn ng lp trình dùng đ
a. Viết chương trình
b. Son thào văn bn
c. Tính toán khoa hc
d. Dịch chương trình ngun sang chương trình đích
37
Câu 183. Việc biên dch mt chương trình viết bng mt ngôn ng lập trình bc
cao sang chương trình dưi dng ngôn ng máy đưc thực hin bi:
a. Chương trình dch c. H điu hành
b. Chương trình son tho d. Ngưi lập trình
Câu 184. La chn nào dưi đây c ra th t tàng ca min giá tr các kiu d
liu?
a. int, float, double, long c. int, float, long, double
b. int, long, float, double d. int, long, double, float
Câu 185. Trong nhng đnh danh sau đây, đâu đnh danh hp lệ?
a. char b. 1 First
c. int d. intl
Câu 186. Trong ngôn ng lập trình c , tên biến nào sau đây là đưc chp nhn?
a. While b. if
c. for d. Không câu tr lời nào đúng
Câu 187. Trong ngôn ng lập trình c, khai báo nào sau đây đúng cú pháp?
a. float int n; b. unsigned int n;
c. unsigned float n = 0; d. n : int;
Câu 188. Trong ngôn ng lập trình c, cách khai báo biến nào sau đây là sai
pháp?
a. int n = 0; b. unsigned int n = 0;
c. int n:=0; d. unsigned n = 0;
Câu 189. Trong ngôn ng lập trình c, câu lnh nào dưi đây khai báo đúng cho
mt hng ký tự?
a. #define HangSo A ; c. const char HangSo A ;
b. #defme HangSo 'A '; d. const char HangSo = 'A ';
Câu 190. Trong ngôn ng lập trình c , câu lnh nào dưi đây là khai báo đúng cho
mt hng ký tự?
a. #defíne HangSo A b. #define HangSo 'A'
c. const char HangSo A ; d. const char HangSo = A ;
38
Câu 191. Trong ngôn ng lập trình c , câu lnh nào dưới đây là khai báo đúng cho
mt hng số thc?
a. #define HangSo 2.78 c. const float HangSo 2.78 ;
b. #definc HangSo = 2.78 d. const HangSo = 2.78 ;
Câu 192. Trong ngôn ng lập trình c , câu lnh nào dưi đây khai báo đúng cho
mt hng số thc?
a. #define float HangSo 2.78 c. const float HangSo = 2.78 ;
b. #dcfine HangSo = 2.78 d. const HangSo = 2.78 ;
Câu 193. Trong c khai báo sau, khai báo nào không có lỗi?
a. tfdefine MAX 10; b. #dcfine MAX=10
c.const int MAX 10; d. #define MAX 10
Câu 194. Dòng khai báo nào sai?
1: #define PI 3.1415;
2: const float g 9.81;
3: int i=0;
4: intj='a';
a. Dòng 2, 3, 4 b. Dòng 1,2
c. Dòng 1,2,3 d. Dòng 1 ,2,4
Câu 195. Trong ngôn ng lập trình c , vi 2 biến thc A, B, biu thc nào sau đây
không đưc chp nhn?
a. A % B b. A / D
c. A -H- d. A + B
Zâu 196. Ket qu ca phép chia 3.0/2 trong c bng?
a. 1.5 b. 2
c. 1 d. 3
râu 197. Trong ngôn ng c , cho biết kết qusau khi tính toán biu thc 1.5*(ll/3)
a. 5.5 b. 4.5
c. 5.4999 d. Không thu đưc gì
39
Câu 198. Toán t nào sau đây không phi là toán tử quan h?
a. = b. <
c. > d. >=
Câu 199. Toán t = = có nghĩa là:
a. Phép so sánh bng b. Phép so sánh khác
c. Phép gán d. Các phương án trên đu sai
Câu 200. Trong ngôn ng lập trình c, khai báo a, b là hai biến kiu số nguyên
Câu lnh gán nào là đúng cú pháp?
a. a = b; b. a < b;
c. a:=b; đ. C 3 đáp án trên đu đúng
Câu 201. Khái nim nào đ cp đến s kết hp ca các toán t và toán hng?
a.Th t kết hp b. Biến
c. Đ ưu tiên d. Biu thc
Câu 202. Cho khai báo int a, b;. Chi ra biu thc không hp l:
a. a -= b b. a = = b
c. a - b = 0 d. a = b
Câu 203. Cho biết giá trca f = ((a = b ) II (b>4)) với khai báo sau:
unsigned int a = 7, b = 2, c = 5, d = 6;
a. 1 c. Biểu thc sai
b 0 d. Không tr v kết qu
Câu 204. Cho biết giá tr ca biến a sau đon chương trình:
inta;
a. 0
c. 1 d. 7
Câu 205. Kết qu cùa biu thc 7+5&&4<=l+3-2/3||5<2+l bng:
a. 0 c. Không có kết qu nào trên
b. 1 d. Biu thc viết sai, không tính đưc kết qu;
40
Câu 206. Cho biết giá tr ca biến a sau đon chương trình sau:
int a=l,b=2,c=3;
a={b>c)?++b:-H-c;
a. a=l c. a=2
b. a=3 d. a=4
Câu 207. Cho biết giá trị ca biến a sau đon chương trình sau:
int a,b = 0,c = 5,d = 6,e = 7,f = 8;
-
a = b?c:d?e:f;
a. a=5 b. a=7
c. a=6 d. a=8
Câu 208. Chi ra biu thc kim tra ký t ch 'a' hoc 'b1:
a. ch = = 'a'11'b' c. ch = = 'a'l'b'
b. (ch = = 'a')||(ch = = 'b') d. (ch = = 'a')|(ch = ='b)
Câu 209. Nếu X biến nguyên thì sau khi thc hin câu lệnh gán X = 13.6, giá trị
cùa X là:
a. 13 b. 14
c. 13.6 d. Báo lỗi, không câu tr lời nào đúng
Câu 210. Giá trị cùa d sau khi thc hin các lnh là?
a. 3.5 b.3
c. 4 d. 0
Câu 211. Cho bi giá tr cùa các bn a, b, c sau khi thực hiộn đon chương trình sau:
int a=7, b, c;
b=a++ + 1; c= - -a - b++;
a. a= 7, b= 9, c= -1 c. a= 7, b= 8, c= 0
b. a= 8, b= 8, c = -l d. a= 7, b= 10, c= -2
Câu 212. Cho biết giá trị ca các biến a, b, c sau khi thc hiện đon chương trình sau:
int a=5,b,c;
b=a++; c= a++ + -H-b 1;
41
a. a=7, b=6, c=10 b. a=7, b=7, C=11
c. a=7, b=6, C=11 d. a=7, b=7, c=10
Câu 213. Biết a, b, c, d các biến nguyên với giá tr hin đang lưu tr a=8, b=9,
c=6. Hãy cho biết giá trị biến d sau khi thưc hin lnh gán
d= a/b*c+c++;
a. 5 b. 6
c. 1 1.3333 d. 12.3333
Câu 214. Hãy cho biết sau đon lệnh sau biến a nhn giá trbàng bao nhiêu?
c. a = 0 d. a = 200
Câu 215. Giá trca b sau khi thc hin đon mã sau?
int a=-l,b= l;
b += a?2:l;
a. 2 b. 3
c. 4 d. 1
n $
Câu 216. Trong ngôn ng lập trình c, khi đon chương trình sau đưc thc hiện,
các biến A, B, c có giá trbao nhu?
int A =4, B = 3, C;
c =
a. A = 3, B = 2, c = 4 b. A = 3, B = 3, c = 3
c. A = 3 , B = 3, c = 4 d. A = 3, B /= 2 ,C = 3
Câu 217. Cho khai báo int a, b, c; Biểu thc nào sau đây cho phép xác đnh giá tr
c giá trnhò nht trong hai số a và b?
a. c = (a>b)?a:b c. c = (a!=b)?a:b
b. c = (a<b)?a:b d. c = (a|b)?a:b
42
Câu 218. Sau khi thc hin các câu lnh sau mt cách tun t
int a=5,c=2
float b = ll;
int a=5,c=2;
I l O â i D 1 1 ,
ìnt d 3;
d - (int)b/c%5;
giá tr ca biến d s bng?
a. 0 b. 3
c. 5 d. 1
Câu 219. Đe s dng hàm printf và scanf, cn khai báo tp tiêu đ nào?
a. conio.h b. stdio.h
c. input.h d. output.h
Câu 220. Đ s dng hàm getch(), cn khai báo tệp tu đ nào?
a. conio.h b. stdio.h
c. input.h d. output.h
Câu 221. Đnh dng nào cho phép hin thị tham số dưi dng số nguyên trong hệ
thp phân?
a.%0 b. %d
c. %c d. %s
Câu 222. Trong ngôn ng lp trình c , cho biết kết qu hin thị trên màn hình lchi
đon chương trình sau đuc thc hiện?
int n = 10;
printf ("n = %d",n);
a. n = %d,n b. n = %d
c.n ~% d,1 0 d. n 10
Câu 223. Cho biết kết qu trên màn hình ca lnh sau (vi ký t space):
prìntf("%5.2f", 3.454);
a. o3.45 b. d3.5
c. DD3.45 d. 3.454
Câu 224. Gi thiết là ký t khong trng. X biến kiu float và đưc khi to
giá tr 12.345. Hãy cho biết câu lệnh nào đưa ra màn hình giá trnni2.35?
a. printf("% 7.2f\ X) b. printf(%7.2e", X)
c. printf("%6.2f", X) d. printf("%8.2f', X)
43
Câu 225. Cho biết kết qu ca đon chương trình
float f= 1.234;
- V..-.
printf ("f = %3.2f',f);
a.f= 1.234 b. f = 1.2
c. f= 1.23 d. f = .23
Câu 226. Mnh đ nào sau đây đúng?
a. Khi đc xâu ký tự, hàm scanf() và gets() cho phép nhp các ký t du
cách, du tab
b. Khi đc xâu ký t, hàm gets() cho phép nhp các ký t du cách, du tab,
còn hàm scanf() sẽ hiu du cách, du tab đu tiên báo hiu kết thúc nhp
xâu ký t
c. Khi đc xâu ký tự, hàm scanf 0 cho phép nhp các ký tự du ch, du
tab, còn hàm gets()s hiu du cách, du tab đu tiên báo hiu kết thúc
nhp xâu ký tự
d. Khi đc xâu ký tự, hàm scanf(), gets() hiu ký t du cách, dấu tab hay
xung dòng kết thúc nhp xâu ký t
Câu 227. Cho biết kết qu in ra ca câu lệnh:
printf("%c %d", 65, 66);
a. A B b. 65 B
c. A 66 d. 65 66
Câu 228. Lnh printf("%d %d", 'A', 'B'); sẽ in ra:
a. 65 66 b. a b
c. 065 066 d. A B
Câu 229. Trong ngôn ng lp trình c , cho biết kết quà hin thị trên màn hình khi
đon chương trình sau đưc thc hiện?
a .f = 1.000 b. f= 0.333
c. f= 0.000 d. "f = % .3f',f
float f = 1.0;
44
Câu 230. Trong ngôn ng lập trình c , cho biết kết qu hin th trên màn hình khi
câu lnh sau đưc thc hin?
printf C'l\n2");
a. 12
b. I\n2
c. 1
2
d. 21
Câu 231. Cho mt đon chương trình viết bng ngôn ng lập trinh c như sau:
const int i=0;
' ' - '
printf("%d\n", i++);
Hãy chi ra lỗi ca đon chương trình trên (nếu có)?
a. Khai báo i sai cú pháp
b. Toán t ++ thiếu mt toán hng
c. Toán t ++ áp dng lên mt hng số
d. Đon chương trình trên không lỗi pháp
Câu 232. Lnh đúng đ in ra màn hình hai s thc X , y theo đnh dng :
Dòng 1: In giá tr X , căn lề trái, chiếm 10 vị trí trong đó có 2 vị trí cho phn
thp phân
Dòng 2: In giá tr y, căn lề phi, chiếm 6 vị trí trong đó có 3 v tri cho phn
thp phân
a. prin tf("% -10.2 f \n% 6.3f", X, y);
b. printf("%-10.3f \n%6.4f", X, y);
c. printf("%10.2f ", x) ;printf("%-6.3f ", y ) ;
d. printf("%10.2f", x) ;printf("\n%-6.3f ", y ) ;
Câu 233. Cp du hiu nào đ đánh du phm vi mt khi lệnh?
a. { } c. BEGIN và END
b. -> và d. ( và )
45
Câu 234. Tìm kết qu đúng ca chương trình
#include <stdio.h>
void main()
{ int a, b ,c;
a=l 3/2;
b=++a+6;
c=(b>12)?(b+7):(a*a);
a. 6 12 20 c. 7 13 20
b. 6 13 20 d. 7 13 49
Câu 235. Giá tr ca a sau khi thc hin các lệnh sau:
int a=5; { int a = 7 ;}
a=a+4;
a. 11 c. 5
b. 9 d.Li khai o biến a
Câu 236. Trong ngôn ng lp trình c , phát biu nào sau đây sai đi vi cu trúc
if...else?
a. Tt c các câu lệnh s dng cu trúc if...else đu có th thay thế bng biểu
thc điu kin? :
b. Các cu trúc if...else có th lng nhau
c. Sau biu thc điu kin đi cùng vi t khóa if cho phép s dng khi lệnh
d. Sau t khóa else cho phép s dng khi lnh
Câu 237. Câu lệnh nào dui đây kiểm tra xem biến t ch có phải ch i không?
a. if(('A' <= ch) && (ch <= 'z'))
b. if( (('A' <= ch) && (ch <= 'Z')) && (('a' <= ch) && (ch <= 'z')))
c. if( (('A' <= ch) II (ch <= 'Z'» && (('a' <= ch) II (ch <= 'z')))
d. if( (('A' <= ch) && (ch <= 'Z')) II (('a' <= ch) && (ch <= 'z')))
46
Câu 238. Vi a=5, b =5, c=4. Kết qu hiển th ca đon chương trình sau như thế nào?
m
if(a>b) printf("2");
else printfì("3"); printf("5");
Câu 239. Trong ngôn ng lập trình c, sau khi đon chương trình sau đưc thc
hin thì 2 biến A và B giá tr bao nhiêu?
int A = 0, B = 1;
if (A<B) {
A = B;
B = A;
a. A = 0 và B = 1 b. A = 1 và B = 0
c. A = 1 và B = 1 d. A = 0 B = 0
Câu 240. Đin vào ch ... đ hoàn thiện chương trình sau:
#include<stdio.h>
void main()
{
int a, b, max;
printf("Nhap gia tri a va b : ");
scanf("%d%d", &a, &b);
max = a;
else max = b;
a. 35
b. 5
c. 3
d. 2
printf("So lon nhat trong 2 so %d va %d la %d", a, b, max);
a. a>b
b. a<b
c. a=b
d. a!=b
47
Câu 241. Trong ngôn ng lập trình c , sau khi đon chương trình sau đưc thc
hin thì 2 biến A và B mang g trbao nhiêu?
int A = 0, B = 1,C; i ;
if(A<B) {
c = B;
B = A;
A = c
} '
a. A = 0 và B = 1 c. A = 1 B = 1
b. A = 1 và B = 0 d. A = 0 và B = 0
Câu 242. Cho mt đon chương trình viết bng ngôn ng lập trình c như sau:
int a = 5;
switch(a){
case 1: printfì("First");
case 2: printf("Second");
case 3 + 2: printf("Third");
case 5: printf("Final");break;
}
Hãy chra li cú pháp ca đon chương trình trên (nếu có)?
a. Không có câu lnh break cui mi nhãn case
b. Nhãn case không đưc phép s dng biu thc 3+2
c. Hai nhãn case có cùng giá trị 5
d. Đon chương trình trên không có lỗi cú pháp
Câu 243. Trong ngôn ng lp trình c , sau khi đon chương trình sau đưc th(
hin thì biến c mang giá tr bao nhu?
int A = 10, B = 20, c=l;
switch (A>B) {
case 0 : c = A ; break;
® case 1 : c = B ; break;
}
a. c = 0 c. c = 1
b. c = 20 d. c = 10
48
Câu 244. Cho mt đon chương trình viết bng ngôn ng lập trình c như sau:
int p = 10;
switch(P){
case 10: printfl["Case 1");
case 20: printf("Case 2");break;
case P: printfì("Case 2");break;
}
Hãy chi ra lỗi cú pháp ca đon chương trình trên (nếu có)?
a. Không câu lnh break cui mi nhãn case
b. Không có nhãn default
c. Nhãn case p s dng mt giá tri không phi là hng số
d. Đon chương trình trên không có lỗi pháp
Câu 245. Cho đon chương trinh sau, hỏi kết qu hiện thí ra màn hình như thế o?
int a =10;
a = a/2;
switch(a){
case 3: a+=2;
case 4: a++;break;
default: a;
}
printf("°/od", a);
a. 5 b 4
c. 6 d.7
Câu 246. Trong ngôn ng lập trình c, sau khi đon chương trình sau đưc thc
hin thì biến A mang giá tr bao nhiêu?
int i, A = 0;
for (i=0; i<10; i+=2) {
A = A+2;
}
a. A = 9
c. A = 18 d. A = 20
4-Ì7THDC
49
Câu 247. Cho đon chương trình sau, tìm giá trị ca sum:
int sum, i;
for ( i = 0; i+1 <= 10 ; i +=2)
if(i = 0)
sum = i;
else
sum += i;
a. 12 c. 30
b. 20 d. Li cú pháp vòng lp for thiếu du ngoc
Câu 248. Cho biết giá trị ca biến s khi thc hin đon chương trình sau:
int i, S;
for(i =1; i < 10; i ++) s += i;
a. 0 c. 55
b. 45 d. Không xác định
Câu 249. Cho biết kết qu hin th trên màn hình?
int a;
for (a = 65; a < 69; a++)
printf("%c ", a);
a. 65 66 67 68 b. A B c D
c. a a aa d. abcd
Câu 250. Cho biết kết qu hin th trên màn hình?
int a; for(a=l; a<=10; a-H-) {
printf("%i ,a); if(a%3) a= a+2; }
a. 1 4 7 c. 1 4 7 10
b. 1 3 5 7 9 d. 1 4 8
Câu 251. Đon chương trình sau s in nhng ra màn hình?
int i=0; char c - 'c';
for(i=0; i<6; i=i+2){
c=c+i; printf ("%c , c);
' CjK,-te' if,
V
'r'{ u'J'. 5 v ' ? ' W-T,v *:
50
a. c e i c. e i o
b. c e i o d. Tat c đáp án đu sai
Câu 252. Khi thc hin chương trình
#include <stdio.h>
void main(){
intx;
for(x=5;x>0;x~)
printf ("%2d ",x);
: '
>
Ket qu nhn đưc trên màn hình
a. 5 3 1 C.4 3 2 1 0
b. 54321
d.
5 4 3 2 1 0
Câu 253. Cho đon chương trình sau, sau khi thc hin xong kết qu hin th ra
màn hình là như thế nào?
int i;
for(i =0 ; i<5 ; i++);
printf("%d ", i);
a. 0 b. 0 1 2 3
c. 5 d. 0 1 2 3 4
Câu 254. Cho biết kết qu thc hin đon chương trình sau?
#include<stdio.h>
r i
i f
void mainO {
int i=0;
for( i<=5; i++)
printf("%đ", i);
}
a. 0 1 2 3 4 5 b. 5
c. 0 1 2 3 4 d. Li cú pháp vòng lặp for
51
Câu 255. Phát biu nào sau đây sai đi vi vòng lp for?
a. Vòng lp for thc hin nhanh hơn vòng lp while
b. Mi đon lệnh s dng vòng lặp for th thay thế bng vòng lặp while
và ngưc lại
c. for ( ; ; ) ; mt vòng lặp vô tận
d. Các câu lệnh trong vòng lặp for có th không đưc thc hin lần nào.
Câu 256. Mnh đ nào dưi đây đúng?
a. Lnh đo ...while kim tra điu kin vòng lp trưc ri mi thc bin lnh
b. Lnh while thc hin lnh trưc rồi mi kim tra điu kin vòng lặp
c. Cu trúc while và do..while đưc dùng đ thc hin lp đi lặp lại mt công
việc với số lần lặp xác định
d. Lnh while kim tra điu kin vòng lặp trưc ri mi thc hin lệnh
Câu 257. Trong ngôn ng lập trình c, khi đon chương trình sau đưc thc hiện,
kết qu hin thị trên màn hình là ?
i n t i - 5;
nrl
while(i:
a. 5 ,4 ,3 , 2, 1,0 c. 4, 3, 2, 1,0
b. 5, 4, 3, 2, 1,0,-1 d. 4 ,3 ,2 , 1, 0,-1
Câu 258. Trong 2 đon chưcmg trình sau, đon nào cho kết qu i= 1 2 ?
(A) inti=6;do i++; while(i<12);
(B) inti=6; while (i<12) i++;
a. B b. A
c. 02468 d. 02468 10
52
Câu 260. Trong ngôn ng lập trình c , cho biết kết qu hin thị trên màn hình sau
khi đon chương trình sau đưc thc hin?
int i = 0;
while (i<10) {
i = i+2;
printf("%d ",i);
}
a. 2468 b. 02468
c. 246 8 10 d. 0246 8 10
Câu 261. Hãy cho biết sau đon chương trình sau kết qu in ra màn hình như thế nào?
void main(){
in ta = l,n = 0 ;
while (n<10) {a++;}
printf("a = %d", a);
}
a. a = 1 b. Chương trình lp vô hn và không dng
c. a = 10 d. a = a
Câu 262. Trong c , đoạn mã sau hiển th gì trên màn hình?
int i=0;
whilc(-H-i+l<=5) printfr%d",i);
a. 12345 c. 123456
b. 01234 d. 1234
Câu 263. Trong ngôn ng lập trình c , khi đon chương trình sau đưc thc hiện,
kết qu hin th trên màn hình gì?
int i = 0;
while(++i <= 5)
printf("%d,", i);
a. 0, 1,2, 3,4, 5, c. 1,2, 3,4,5
b. 1,2, 3,4, 5, d. 1,2, 3, 4, 5, 6
53
Câu 264. Cho biết kết qu thc hiện đon chương trình sau?
int s =0, d = 0;
while (d < 10){
s+=d;
d + = 2;
} ' - ' 1
printf("%d", S);
a. 0 b. 10
c.
20 d. 45
Câu 265. Viết chương trình yêu cu ngưi dùng nhp vào mt số n (0< n <100) .
Nếu ngưi dùng nhp sai thì đưa ra thông báo và yêu cu nhp li cho đến
khi nào đúng,
int n;
printf("Nhap gia tri n thoa man 0<=n<=l0:");
scanf("%d", &n);
{
printf{"Gia tri ban nhap khong dung, yeu cau nhap lai");
scanfì("%d", &n);
cn đin đáp án nào vào du (
........
) đ chương trình thc hin như yêu cu?
a. if ((n > 0) && (n < 100)) c. while (n <0 II n > 100)
b. while ((n<0) && (n>100)) d. if (n<0 II n >100)
Câu 266. Viết chương trình yêu cu ngưi dùng nhp vào mt số n (0< n <100) .
Nếu ngưi dùng nhp sai thì đưa ra thông báo và yêu cu nhp lại cho đến
khi nào đúng,
intn;
do{
printf("Nhap gia tri n thoa man 0<=n<=100: ");
scanf("%d", &n);
i
54
cn đin đáp án nào vào du ... đ chương trinh thc hin như yêu cu?
a. while (n>=0 II n <=100); b. while (n>=0 II n <=100)
c. while (n <0 II n >100) d. while (n<0 II n >100);
Câu 267. Cho đon chương trình nhp vào t bàn phím mt s nguyên lớn hon
hoc bng 0, nếu nhp sai yêu cu nhp lại. Chn câu tr li đúng cho biểu
thc A và B
int n;
do { scanf("%d",&n);
if (A) printf("Nhap sai, nhap lai\n");
} while (B);
a. A: n<0 B: n<0 b. A: n>=0 B: n>=0
c. A: n<0 B: n>=0 d. A: n>=0 B:n<0
Câu 268. Trong ngôn ng lập trình c , khi đon chương trinh sau đưc thc hiện,
biến A có giá trị bao nhiêu?
int i, A = 0;
for (i=0; i<1000; i+=13) {
continue;
A = A+ 1;
}
a. A = 0 b. A = 76
c. A =77 d. A =1000
Câu 269. Trong ngôn ng lập trình c , khi đon chương trình sau đưc thc hiện,
biến A mang giá trbao nhiêu?
int i, A = 0;
for (i=0; i<100;i+=13) {
A = A + 100;
break;
}
a. 0 b. 100
c. 760 d. 10000
Câu 270. Cho biết kết quà hiển thtrên màn hình?
int i = 'a';int i = a ,
while (i< = V )
55
if ( i = 'a ') continue;
printf"%c", i); i+=l;
a. Chương trình b lặp vô hạn
b. In ra màn hình t a đến z
c. In ra màn hình t b đến z
d. Các phương án khác đu sai
Câu 271. Trong ngôn ng lập trình c, cho biết kết qu hin thị trên màn hình sau
khi đon chương trình sau đưc thc hiện?
int i = O V
while (i < 10)
I
Câu 272. Cho biết kết quà hin trên màn hình cùa đon chương trình sau?
int i=l;
while(l)
{
printf("°/od",i);
i++;
if(i%3==0) continue;
printf(7M);
if(i% 5= 0) break;
i = i+2;
continue;
printf ("%đ ",i);
a. %d %d %d %d %d c. 0 2 4 6 8
d. Không có kết qu nào đưc đưa ra màn hìnhb. i i i i i
a. 1/23/4/ c. 1/2/3/4
b. 1/23/4
d. Chương trình có lỗi
56
Câu 273. Cho biết kết qu hin thị trên màn hình ca đon chương trình sau?
int a, b = 0;
for(a = 1; a < 10; a++){
if(a%2 0) continue;
b = b + a;
printf("%5d",b);
}
a. 1 4 9 16 25 c. 1 4 10 16 24
b. 2 6 10 16 24 d. 1 6 10 16 25
Câu 274. Chi ra kết qu trên màn hình?
int a, b= l;
for(a=l;a<10;a++){
ifl[a% 2=0) continue;
b+=a;
printfC%d ", b);
}
a. 1 4 9 16 25 c. 2 4 10 16 24
b. 2 5 10 17 26 d. 2 6 10 16 25
Câu 275. Trong ngôn ng lập trình c , cho biết kết qu hin th trên màn hình khi
đon chương trình sau đưc thc hiện?
int i = 0;
while (i<10) {
i++;
if (i%2 = 0) break;
printf("%d ",i);
}
a. 0246 8 b. 1
c. 13579 d. 0123456789
57
Câu 276. Cho biết kết qu hin th ra màn hình ca đon mã dưi đây?
int n = 10;
while (1){
n~;
if (n%3 !=0) continue;
printf("% d", n*n);
if (n<3) break;
}
a. 81 36 9 b. 100 64 49 25 16 4
c. 100 64 49 25 16 4 1 d. 81 36 9 0
Câu 277. Trong ngôn ng lập trình c , cho biết kết qu hin thị trên màn hình sau
khi đon chương trình sau đưc thc hiện?
int i = 0;
while (i<10) {
i++; if (i%2 = 0) continue;
printf("%d ,i);
}
a. %d %d %d %d %d b. 0 1 2 3 4 5 6 7 8 9
c. 02468 d. 13579
Câu 278. Trong ngôn ng lập trình c , cho biết kết qu hin th trên màn hình sau
khi đon chư ơng trinh sau đ ư c thc hin?
int i = 0;
while (i<10){
if (i%2 = 0) continue;
printf("%d ",i);
i++;
}
58
a. 02 4 6 8
b. 0 1 23456789
c. 1 3 5 7 9
d. Vòng lặp tn, không kết qu nào đưc hiển thtrên màn hình
Câu 279. Trong ngôn ng lập trình c, cho biết kết qu hin th trn màn hình sau
khi đon chương trình sau đưc thc hin?
int i = 0;
while (i<10){
i++;
if (i%2 = 0) break;
printf("%d ",i);
}
a. 0123456789 c. 13579
b. 0 2 4 6 8 d. 1
Câu 280. Khi thc hin đon chuơng trình
int i;
for(i=10; i > 1; ~i){
if (i%2) continue;
printf ("%3d",i);
if (i = 0 ) break;
}
Ket quà nhn đưc trên màn hình là:
a. 10 8 6 4 25 c. 10 8 6 4 2
b. 2 6 10 16 24 d. 16 6 8 10 25
râ u 281. Cho mt đon chương trình viết bng ngôn ng lập trình c như sau'
char ch;
- 0 ;
while(x<=255){
59
Phát biu nào sau đây đúng vđon chương trình trên?
a. Đon chương trình trên lặp vô tận
b. Đon chương trình trên in ra các ký tự và mã ASCII ca chúng
c. Đon chương trình trên có lỗi cú pháp không khai báo X
d. Đon chương trình trên có lỗi cú pháp s dng cu trúc while
Câu 282. Trong c, nếu mt màng có 25 phn tử, min ca chi số s là:
a. T 1 đến 25 c. T 0 đến 24
b. T -12 đ ế n +12
d.T0đến25
Câu 283. Phn khai báo biến sau trong c chiếm bao nhiêu byte trong b nh?
intM l[100];
float M2[ 100]
a. 600
c. 200 d. 400
Câu 284. Trong ngôn ng lập trình c , câu lệnh nào dưi đây khai báo đúng mt
hàng màng s nguyên?
a. #define Aư[5] {1,2, 3,4, 5}
b. #defme Arr {1,2, 3,4, 5}
c. const int Arr[5] {1,2, 3,4 , 5};
d. const int Arr[5] = {1,2,3};
Câu 285. Trong ngôn ng lp trình c , câu lnh khai báo màng nào sau đây đúng
cú pháp?
a. int A[10] := [0, 1, 2, 3,4, 5, 6,7, 8, 9];
b. int A[10] = [0, 1, 2, 3,4, 5, 6, 7, 8, 9];
c. int A[10] [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
d. int A[10] = {0, 1, 2, 3,4, 5, 6,7, 8, 9};
Câu 286. Cho khai báo sau int B[4]={1, 2, 3,4}. Giá trị ca B[4] là?
a. 2 b. 4
c. 3 d. Không xác đnh
60
Câu 287. Cho biết kết qu hin th ra màn hình sau khi thc hin chương trinh sau?
int i, k=5, a[10]={2,4, 5,4, 5,6, 3, 5,10, 5};
for( i=0;i<10;i++){
if(a [i]= k) continue;
printf("%2d",i);
}
a. 24463 10 b. 013568
c. 247 10 d. 24545735 10
Câu 288. Cho biết kết quà hin th ra màn hình sau khi thc hin chương trình sau?
int k=5, a[10]={2, 4, 5,4, 5 ,6 ,3 , 5, 10, 5};
for(int i=0;i<10;i-H-){
ifa[i]= k ) continue;
printf("%2d",a[i]);
I
a. 24463 10 b. 013568
c. 247 10 d. 24545735 10
Câu 289. Cho biết kết qu hin thra màn hình?
int i,k=3, a[]={2, 4, 5,4, 5, 6, 3, 5, 9, 5};
for(i=0;i< 10;i++) {
if(a[i]% k = 0 ) continue;
printfT% 2d'\i);
i W W ? i:
a. 24545 b.o 123479
c. 2454555 d. 639
Câu 290. Cho biết kết qu hin th ra màn hình?
irit i,k=3, a[]={2,4, 5,4, 5, 6, 3, 5,9, 5};
for( i=0;i<10;i-H-){
61
if(a[i]%
printfl"'
}
a. 2 4 5 4 5
b. 0123479 d. 639
Câu 291. Cn nhp vào từ bàn phím n số nguyên vi n cũng đưc nhp t bàn
phím (n số dương nhò hơn hoc bng 100). Khai báo nào đúng nht cho
mng A đ lưu tr n s nguyên này?
a. int A[int n]; b. int A[n];
c. intA[]={ 1,2,3}; d. int A[100];
Câu 292. Gi s a, b là hai biến mng kiu int có cùng s lưng phn t. Đe gán
các giá trị ca mng b vào mng a, cách nào sau đây là đúng?
a. Dùng lệnh gán a = b ;
b. Dùng cu trúc lặp đ gán tng phn t ca b cho a
c. C hai đáp án a, b đu sai
d. C hai đáp án a, b đu đúng
Câu 293. Cho biết giá tr ca biến a sau khi thc hin đon mã c dui đây?
int a;
intx[5]={l,9, 6, 3,4};
a= x[2]/x[4];
a. 1.5 b. 3
c. 1 d. 0
Câu 294. Trong ngôn ng lập trình c , cho biết sau khi đon chương trình sau đưc
thc hin thì phn t A[0] ca mng mang giá trbao nhiêu?
int A[10] = {-1, 5, -2, 7 ,3, -1 0,9,0 , -1, 7};
int i j,k;
for(i= l; i<10; i++)
for G =9;j>=i;j~)
if(A [j]< A [j-l]){
62
k -A O ];
A [j-l] = A[j];
A |j]= k ;
}
a .-10 b .-1
c. 7 d. 9
Câu 295. Trong ngôn ng lập trình c, cho biết sau khi đon chương trình sau đưc
thc hin thì phn ni A[9] ca mng mang g trị bao nhiêu?
intA[10J= 7, 3,-10,9,0,-1, 7};
int ij,k;
for(i=l; i<10; i++)
for(j=9;j> = i;j")
if(A [j]< A [j-l]){
k = A[j];
A[j-1 = A[j];
A[j] = k;
}
a. 7 b .-l
c .-10 d. 9
Câu 296. Giá tr ca biến m sau khi thc hin đon chirrmg trình sail là?
float A [4 ]~ {1 .1,1.2,1.3,1.4};
int i; float m=0;
for(i=0;i<=3;i++)
ifm<A[i]) m=A[i];
a. 0 b. 1.1
c. 1.4 d. 1.3
63
Câu 297. Trong ngôn ng lập trình c, cho biết sau khi đon chương trình sau đưc
thc hin thi phn t A[0] ca mng mang giá tr bao nhiêu?
b. 9
d. 5
Câu 298. Trong các câu lnh khai báo sau, câu lệnh nào là sai cú pháp?
a. int A[2][3]; c. int A[2][3]={1, 2, 3, 4, 5, 6};
b. int A[2][3]=(l, 2, 3,4, 5, 6); d. int A[2][3]={1, 2, 3};
Câu 299. Giá tr ca M[l][2] là?
int M[4][5] = { 10, 2, -3, 17, 82, 9, 0, 5, 8, -7, 32, 20, 1,0, 14, 0, (
a. 0 b. 5
c. 8 d. 2
Câu 300. Với khai báo sau, giá trị M[2][l] là?
int M[4][5] = { 10. 2. -3. 17. 82. 9. 0, 5. 8. -7. 32. 20. 1.0. 14. 0. (
a. -7 b. 20
c. 8 d. 32
Câu 301. Cho biết kết qu thc hin đon chương trình:
c. 5 d. Không xác đnh
I, 8 ,7 ,6 };
I. 8 .7 ,6 }:
64
Câu 302. Cho biết kết qu thc hin đon chuơng trình sau:
int a=3, *p = &a;
printf("%d\n", a * *p * a + *p);
a. 18 b. 27
c. 30 d. 36
Câu 303. Mng a có kiu int. Phát biu nào sau đây đúng nht?
a. a tương đương vi &a[0]
b. a + i tương đương vi &a[i]
c. *(a + i) tương đương vi a[i]
d. C a, b, c đu đng
Câu 304. Cho:
int a,*p;
p=&a;
Chi ra biu thc không hp l:
a. *p = a b. *p = = a
c. *p + 1 = a d. *p+l= = a
Câu 305. px con trò ti X , py con tr ti y. Câu lnh nào trong các câu lệnh
sau tương ng vi y = 3*x + z;
a. *py = 3*x + z; c. py = 3*x + z;
b. *py = 3*(*px) + z; d. C đáp án a và b
Câu 306. Cho hai khai báo sau:
1: float (*p)[30];
2: float *p[30];
Phát biu nào sau đây đúng?
a. 1 khai báo con trò kiu fl(^t[30] và 2 khai báo mng 30 con tr kiu float
b. 1 khai báo mng 30 con ư kiu float và 2 khai báo con tr kiu float[30]
c. C hai đu khai báo con tr kiu float[30]
d. Cá hai đu khai bao mng 30 con tr kiu float
5-Brniõí
65
Câu 307. Trong ngôn ng lập trình c, khi đon chương trình sau đưc thc hin,
xâu "BKHN" đưc in ra bao nhiêu lần?
intx;
for(x=-l; x<=10; x++){
printf("BKHN");
a. Vô hn lần
c. 5 lần
Câu 308. Cho đon chương trình sau
int i = 3, j = 6; int *pl, *p2;
pl = &i;
p2 = &j;
*pl = *p2;
Biết rng trưc lệnh gán cui cùng thì
b. 0 lần
d. 10 lần
Biến
Đa ch
Giá tr
i FFEC
3
j
FFEE 6
pl
FFDA
FFEC
p2
FFDC
FFEE
Cho biết đa chi và giá trca p l?
a. Đa chi FFDA, giá trị FFEC c. Đa chi FFDA, giá trị FFEE
b. Đa chì FFDC, giá tr FFEC d. Đa chi FFDC, giá tr FFEE
Câu 309. vn đon chương trình trên, cho biết đa c và giá tr ca i?
a. Đa chi FFEC, giá tr 3 b. Đa ch FFEC, giá tr 6
c. Đa chi FFEE, giá tr 3 d. Đa ch FFEE, giá tr 6
66
Câm 310. vn đon chương trình trên, chi sa lại lnh gán cui cùng pl=p2.
Cho biết đa chi và giá tr ca p l?
a. Đa chi FFDA, giá trị FFEC c. Đa chi FFDA, giá trFFEE
b. Đa chi FFDC, giá trị FFEC d. Đa chi FFDC, giá trFFEE
Câui 311. v n đon chương trình trên, chi sa lại lnh gán cui cùng pl=p2.
Cho biết đa ch và giá trị cúa i?
a. Đa chì FFEC, giá trị 3 b. Đa chi FFEC, giá trị 6
c. Đa chi FFEE, giá tri 3 d.Đa chi FFEE, giá trị 6
Câui 312. Cho biết kết qu hin thra màn hỉnh?
char!
a. 01234
c. 012345
Câu I 313. Cho khai báo sau:
char B[6] = "Hanoi";
Cho biết giá trị ca B[6] :
a. 'i'
c. 'o'
b. 0123456789
d. \0
b. Không xác đnh
d. '\0'
Câu 314. Trong các hàm dưi đây, hàm nào không thuc tp tiêu đ string.h?
a. strcat b. strcpy
c. strcm p d, T t c các hàm trôn đu thuc str ing.h
Câu .315. Cho biết kết qu hin th ra màn hình?
inti;
c. hello
d.hell
67
d. Chương trình báo lỗi
a. sl="thu do ha noi" , s2= ""
b. sl= "thu do ha", s2="noi"
Câu 317. Cho khai báo biến sau
char thudo[10]= "Hanoi";
Hòi b nh cp phát bao nhiêu Byte cho biến thudo?
a. 10 byte c. 11 byte
b. 5 byte
Câu 318. Đon mã sau sai dòng nào?
char
s = '
gets(t); //d o n g3 fPSỊp$
a. dòng 1
b. dòng 2 d. Không sai dòng nào
Câu 319. Phát biu nào sau đây đúng?
a. Ký t 'A' đưc u tr trong 1 byte, xâu ký t "A" đưc lưu tr trong 2 byte
b. Ký t 'A' đưc lưu tr trong 2 byte, xâu t "A" đưc lưu tr ong 1 byte
c. K ý t 'A' đưc lưu tr trong 1 byte, xâu ký t "A" đưc lưu tr trong 1 hyte
d. Ký tự 'A' đưc lưu tr trong 2 byte, xâu t "A" đưc u tr trong 2 byte
Câu 320. Cho biết kết qu hin th trên màn hình sau đon chương trình:
68
Câm 321. Trong ngôn ng lập trình c, câu lệnh nào dưi đây khai báo đúng nht
mt hng xâu ký tự?
a. #defme Xau[5] "BKHN" b. #defme Xau "BKHN"
c. const char Xau = "BKHN"; d. const Xau = "BKHN";
Câui 322. Trong ngôn ng lập trình c, câu lnh nào dưi đây khai báo đúng mt
hng xâu ký tự?
a. #define Xau = "BKHN" c. const char Xau[5] = "BK.HN";
b. #defĩne char Xau[5] "BKHN" d.const char Xau = "BKHN";
Câiu 323. Trong ngôn ng lập trình c, cho biết sau khi đon chương trình dưi đây
đưc thc hin, kết qu hin thtrên màn hình gì?
a. %s b. 0123443210
c. 9876556789 d. 9876543210
Câui 324. Trong ngôn ng lp trình c, cho đon chương trình sao chép ni dung
xâu s 1 sang S2 theo th t đo ngưc như sau :
char S I[20], S2[20];
int i, n;
n = strlen(Sl);
for( (A ); (B ); i )
S 2 [n -i-l] = Sl[i];
Hãy cho biết ni dung ca các biu thc (A), (B)?
a. (A): i = 0, (B ): i <= n/2 c. (A ): i = n-1 , (B ): i >=0
b. (A): i = 0, (B) : i <=n d. (A ): i = n, (B) : i >=0
69
Câu 325. Trong ngôn ng lập trình c, gi s SI, S2 là hai xâu tự. Đ ghép ni
dung xâu S2 vào sau Sl, chương trình th thc hiện theo cách nào dưi đây?
Câu 326. Cho biết kết qu thc hin đon chương trình sau:
char S[10] = "Hello";
int d = 0;
while(S[d] l= W d+ + i
printf("%d",d);
a. 0 b. 3
c. 5 d. 7
Câu 327. Trong ngôn ng lập trình c , cho đon chương trình đo ngưc ni dung
mt xâu ký t như sau:
char S[20], tmp;
int i, n;
n - strlen(S);
for((A );(B );i+ + ){
tmp = s[i]; s[i] = s[n-i-l]; s[n-i-l] = tmp;
}
Hãy cho biết ni đung cùa các biu thc (A), (B)?
a. (A ) : i 0, (B ) : i < n/2 c. (A ) : i - 1, (B) : i < n/2
b. ( A ): i = 0, (B ): i <= n/2 d. (A ): i = 0, (B ): i < (n-l)/2
Câu 328. Cho đon chương trinh sau, hòi kết qu hin thị ra màn hình như thế o?
char a[50] = "Xin chao";
char b[50] = "cac ban";
strcat(b, a);
strcpy(a, b);
ifstrcmp(a, b)>0)
a. Dùng lệnh strcm p(Sl,S2);
b. Dùng lnh strcpy(Sl,S2);
c. Dùng lệnh strcat(Sl,S2);
đ. C 3 cách trên đu sai
70
sưcat(b, a);
printf("%s", a);
a. Xin chao
c. cac banXin chao
b. cac ban
d. Xin chao cac ban
Câu 329. Cho kiu cu trúc đưc khai báo như sau trong Turbo C++3.0:
typedef struct {
char MSSVflO];
char Hoten[20];
float Diem; }SV;
Mt biến thuc kiu s v s đưc cp phát bao nhiêu byte đ lưu tr?
a. 34 b. 38
c. 36 d. 40
Câu 330. Cho khai báo trong Turbo C++3.0:
struct {
char Ten[10];
char Mau[5];
int X, Y;
}Diem[5];
B nh sê cp phát bao nhiêu byte cho mng Diem?
a. 19 b. 85
c. 95 d. 50
Câu 331. Cho cu trúc:
struct sinh_vien{
}
71
Cách khai báo biến cu trúc nào sau đây là đúng?
a. struct sinh_vien sinh_vien_l;
b. typedef struct sinh vien sinh_vien;
sinh vien sinh_vien_l;
c. C hai đáp án a, b đu đúng
d. C hai đáp án a, b đu sai
Câu 332. Cho struct sinhvien dạng:
struct {
char hoten[50];
int diemTinDC;
}sinhvien;
Và mt mng sinhvien sv[50] đã đưc nhp đy đ d liu, hi đon
chương trình sau thc hin công vic gì?
inti;
for (i=0;i<50;i++){
ifì(sv[i].dieniTinDC < 4) continue;
printfì("Ho ten sinh vien: %s", sv[i].hoten);
____
_ " _
printf("Diem Tin dai cuong: %d", sv[i].diemTinDC);
}
a. In ra màn hình thông tin h n và đim tin đi cương ca các sinh vn
đim tin đi cương >=4.
b. In ra màn hình thông tin h tên và đim tin đi cương ca các sinh viên
đim tin đi cương < 4.
c. In ra màn hình thông tin h tên và đim tin đi cương ca các sinh viên có
đim tin đi cương = 4.
d. In ra màn hình thông tin h n và đim tin đi cương ca các sinh viên có
đim tin đi cương < 5.
Câu 333. Phát biu nào dưi đây không đúng v biến trong ngôn ng c ?
a. Vùng nh dành cho biến cc b sẽ đưc gii phóng khi ra khi phm vi
khai báo biến
72
b. Biến toàn cục thể đưc sử dụng tất cả c m sau vtrí khai báo biến
c. Biến static có phm vi s dng ging biến toàn cc
d. Biến static chđưc s dng trong phm vi khai báo biến
Câu 334. Cho biết kết qu hin trên màn hình?
int BP(int x){ int y=x*x ; x=y; return y; }
void main(){ int a=5; printf("%d%d",BP(a),a);}
a. 255 C.2525
b. 55 d. Chương trình có lỗi
Câu 335. Cho hàm kim tra xem mt s >2 có phi s nguyên tố không. Hàm tr
v 1 nếu số nguyên t, ngưc lại tr v 0. Giá tr ca M, N là bao nhiêu?
return k;
ì
a. M=1 N=0 c. M=1N=1
b. M=0 N=1 d. Chương trình không làm đúng yêu cu
Câu 336. Chn khai báo nguyên mu hàm không đúng:
a. int TienGui(int, int);
b. float TienGui(SoTien, LaiSuat);
c. void TienGui(int);
d. void TienGui(int SoTien, float LaiSuat);
Câu 337. Hãy cho biết đon chương trình sau in kết qu ra màn hình như thế nào?
int ThayDoi(int x){
: J -V*,; t 'i
X++;
x){
: -í - - !' '
M M ĩM mé: ĨÌK&sC- *;;
73
int x= 4;
printf("%d%d", ThayDoi(x), ThayDoi(x));
}
a. 55
b. 45
c. 56
d. 44
Câu 338. Cho biết kết qu hin trên màn hình ca đon chương trình sau:
int Tang(int x){
int y=3* ++x; x=y;
return y ; }
void main(){
int a=3;
printf("%d%d,Tang(a),a);
Câu 339. Cho biết kết qu hin trên màn hình ca đon chương trình sau:
int BienDoi(int x){
i n t y = x*x; X = y;
return y;
a. 1212 b. 912
c. 93 d. 123
void main(){
int a=2;
printf("°/od%d", BienDoi(a), a);
a. 92 b. 62
c. 42 d. 69
Câu 340. Hòi kết qu hin th trên màn hình?
int x,y;
int f^int x){ y=x-l; x=y-l; return x + y ;}
void mainO{
74
x=25;y=f(x);
printf("x=%d, y=%d", X , y);
}
a. x=23, y=24 b. x=23, y=47
c. x=24, y=47 d. x=25, y=47
Câu 341. Cho chương trình viết bang ngôn ng c sau :
#include<stdio.h>
void main(){
printfì("%f\n", sqrt(36.0));
' . . - v ĩ !!'
}
cn thêm khai báo tệp tu đ nào đ khi biên dch chương trinh trên không
có lỗi?
a. #include<conio.h> c. #include<stdlib.h>
b. #include<math.h> d. #include<dos.h>
Câu 342. Cho mt hàm viết bng ngôn ng lập trình c như sau :
long fiin(int n){
for(i=0; i<=n; i++)
R = R * i;
return R;
ì
Phát biu nào sau đây đúng v hàm fìin()?
a. Hàm tính toán giá tr 1" c. Hàm tính toán giá tr n!
b. Hàm tính căn bc 2 ca n d. Hàm tr v giá tr 0
Câu 343. Cho đon chương trình sau hỏi kết qu hin th ra màn hình như thế
nào?
i n t X y
intTinh(intx){
y = x - l ;x = y - 1;
75
l i i l K
c. Ca a và b đêu sai
d. Chương trình không thc hin đưc i cú pháp
Câu 344. Xét chương trình sau:
}
Ket qu s là:
a. 4.1 5.2 b. 4.10 5.20
c. 5.2 4.1 d. 5.20 4.10
Câu 345. Xác đnh li gi hp l cho hàm có tên C huanH oaX au vi giá tr tr v
CÓ kiu String:
a. char *Bien;
ChuanHoaXau(XauGoc) = Bien;
b. float Bien;
Bien = ChuanHoaXau(XauGoc);
c. char *Bien;
Bien = ChuanHoaXau(XauGoc);
d. float Bien;
Bien = ChuanHoaXau XauGoc;
76
Câu 346. Phát biu nào về tp dưi đây là đúng?
a. Vic truy cp cùng lúc vào nhiu phn t ca tệp có th nếu chế đ m
tp cho phép
b. Tp văn bn là trưng hp đc biệt ca tp nhphân
c. Sau mi thao tác đc, ghi trên tp, con tr tệp sẽ t đng trò v v trí đu
tiên ca tp
d. EOF mt hng số nguyên đưc định nghĩa trong thư vin conio.h
Câu 347. Khi dùng hàm fopen thì kiu nào sau đây làm đi số ca hàm này, dùng
đ m mt tp đ ghi b sung theo kiu văn bn, nếu tp chưa tn tại thì to
a. (1) điên FILE *f; (2) điên fclose(f);
b. (1) đin FILE f; (2) đin fclose(f);
c. (1) đin FILE f; (2) đin close(f);
d. (1) đin FILE *f; (2) đin FCLOSE(f);
77
PHN IV. BÀI TP T LUN LP TRÌNH
IV. 1. Phn bài tập có li gii
i 1:
(3 x2 - 2 x + 5 Vx>0
Cho hàm số: / 0 0 = 12x^+1 v 0
^ X
Viết chương trình con nh g trị ca hàm số trên. Trong chương trình chính
nhp giá trị ca đi s t bàn phím, gi chương trình con này và hin thị kế
qu ra màn hình.
Li gii:
#include <stdio.h>
#include <conio.h>
float f(float x); // Khai bao nguyen mau ham
int main(){
float x;
printf("Nhap vao gia tri doi so x: ");
scanf("%f',&x);
printf("Ket qua goi ham la: % 6.2f', f(x));
getch();
return 0;
}
float f(float x){
if(x>=0) return (3*x*x - 2*x + 5);
else return ((2*x*x+l)/x);
}
78
/* Tinh so luong cac phan tu cua mang Y co gia tri trong (10, 100) */
s = 0;
for(i=0; i < d ; i++) if((Y[i]>10) & & (Y[i]<100)) S + + ;
printf("\nSo luong phan tu cua mang Y thoa man la %d", s);
getch();
return 0;
}
/* Dinh nghia ham F */
float F(float x){
if(x<10) return -pow(x,10) + cos(0.25*x-5);
else if(x>20) return 9+x;
else return log(x*x+l)+x;
}
Bài 3:
Viết chương trình nh chu vi và din tích hình tròn theo giá trị bán kính r
nhp t bàn phím. Chu vi đưng tròn: cv = 2xn *r; din tích hình tròn:
dt = n x r2
Lòi giải:
#include<stdio.h>
#include<conio.h>
#include<math.h>
int main(){
float r, cv, đt; // Khai bao 3 bien thuc
printf("\n Nhap vao ban kinh r = ");
scanf("%f,&r);
cv = 2*M_PI*r; // Tinh chu vi
đt = M_PI*r*r; // Tinh dien tich
printf("\nChu vi = %10.2f\nDien tich = %10.2f',cv, dt);
getch();
return 0;
}
80
Hãy v iết chương trình nhp vào các số nguyên a, b, c t bàn phím. Tính
đưa ra màn hình giá trị ca a, b, c sau khi thc hin các biu thc:
a++ + -H-b
a - b * ++C
với a,b,c các s nguyên nhp vào t bàn phím.
Li gii:
#include<stdio.h>
#include<conio.R>
int main(){
int a, b. c, z;
printf("Nhap vao a = "); scanf("%d",&a);
printf("\nNhap vao b = "); scanf("%d",&b);
printf("\nNhap vao c = "); scanf("%d",&c);
z = a++ + ++b;
printf("\nBicu thuc 1 = %d, a = %d, b = %d", z, a, b);
z = ~ a - b * ++c;
printf("\nBicu thuc 2 = %d, a = %d, b = %d, c = %d", z, a, b, c);
getch();
return 0;
}
Bài 5:
Dùng biu thc điu kin ? : đ đưa ra số ln nht trong 3 s thc nhp vào
từ bàn phím.
Li gii:
#include<stdio.h>
#include<conio.h>
int main(){
float a, b, c, z;
printf("\nNhap vao so a = "); scanf("%f',&a);
Bài 4:
81
printf("\nNhap vao so b - "); scanf("%f',&b);
printf("\nNhap vao so 9 = "); scanf("%f',&c);
z = (a>b)?(a>c?a:c):(b>c?b:c);
printf("\nSo Ion nhat = %0.2f\n", z);
getch();
return 0;
}
Bài 6:
Hãy viết mt chương trình c hoàn chinh thc hin nhim v sau: Nhp vào
t bàn phím mt xâu ký t có đ dài không quá 25 ký tự, nếu nhp xâu đ
dài quá 25 ký t thì yêu cu nhp lại cho đến khi tha mn yêu cu. Sau đó
hin thra màn hình số lần xut hiện ký t đu tiên trong xâu.
Li gii:
#include <stdio.h>
#include <conio.h>
#include <string.h>
int main(){
char s[26], c;
int 1, n;
do{
printf("Nhap vao mot xau co do dai khong qua 25 ki tu :");
gcts(s);
} while(strlen(s)>25);
c = s[0]; n = 0;
for(i=0;i<strlen(s);i-H-) if(s[i] c) n++;
printf("So lan xuat hien chu cai dau tien %c trong xau la %d", c, n);
getch();
return 0;
}
82
Viết chương trình nhp vào t bàn phím h và tên ca mt ngưi, sau đó in
phn tên ra màn hình. Ví d: "Tran Hung Dao" thì in ra "Dao".
Li gii:
#include<stdio.h>
#include<conio.h>
#include<string.h>
int inain(){
char t[30],*s, *p; int i;
printf("Nhap vao mot xau ho va te n :");
gets(t);
/* Loai bo ky tu cach o dau va cuoi xau*/
s = chuanhoa(t);
/* Dung ham stưchr duyet nguoc tu cuoi xau, tim vi tri đau tien cua mot ky
tu va tra ve con tro tro đen ky tu đo */
p = strrchr(s,''); // Tim ky tu trong dau tien tu cuoi xau s
p = p + 1;
printf("\nPhan ten la: %s\n",p);
getchO;
return 0;
}
/* Dinh nghía ham loai bo ky tu cach o dau va cuoi xau*/
char *chuanhoa(char *x){
while(*x = ' ’) X = X + + ;
while(*(x + strlen(x)) = ") X = X;
return x;
}
Bài 8:
Viết chương trình nhp n s nguyên t bàn phím (10 < n < 100), kết thúc
quá trình nhp s khi nhp mt ch cái hoc đã nhp 100 số. Tìm xem có
bao nhiêu s tha mãn điu kin: s đó bng số đng trưc nó cng 3, in ra
màn hình các s đó.
Bài 7:
6 - B T T H Đ C
83
Li gii:
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <ctype.h>
int main(){
int n = 0, i, sl = 0, a[ 100];
char s[5];
do{
printf("\nNhap vao so thu % d:", n+1);
scanf("%s",s);
/*Kiem tra neu la ki tu thi thoat khoi vong lap*/
if(isalpha(s[0])) break;
/*Dung ham atoi chuyen doi dang chuoi thanh dang so*/
a[n] = atoi(s); n++;
}while(n<100);
printf(\nCac so thoa man dieu kien bang so dung truoc cong 3 la: \n");
for(i=l;i<n;i++)
if(a[i]=(afi-l]+3)){
sl++;
printf("%d\t",a[i]);
}
printf("\nSo luong cnc so thoa man dicu kicn la: % d", sl);
getchO;
retum 0;
}
Bài 9:
Viết chưcmg trình tìm ưc số chung lớn nht ca hai s nguyên dương a, b
đưc nhp vào t bàn phím.
84
Li gii:
Cách ì:
#include <stdio.h>
#include <conio.h>
int Itiain(){
unsigned int a, b;
printf("Nhap so thu nhat:"); scanf("%d",&a);
printf("\nNhap so thu hai:"); scanf("%d",&b);
while(a!=b){
if(a>b)a -=b;
else b -=a;
}
printf("\nUSCLN la %d",a);
getch();
return 0;
Cách 2:
#include <stdio.h>
#include <conio.h>
int main(){
unsigned int a, b, min, i;
printf("N hap so thu nhat: "); scunf("% U",&a),
printf("\nNhap so thu hai: "); scanf("%d",&b);
/*Tim ra so nho hon trong hai so*/
min = a<b?a:b;
/*Dung vong lap duyet nguoc tu so nho hon toi 1*/
for(i=min;i>=l;i~)
if((a% i=0)& & (b% i= 0)) {
printf("\nUSCLN la %d",i);
break;
85
}
getch();
return 0;
}
Bài 10:
Viết mt chương trình thc hin các công vic sau:
a. Đc vào máy t bàn phím mt s nguyên dương n
b. Tính tng s = 1 + 2+ 3 + ....+ n
Li gii:
#include <stdio.h>
#include <conio.h>
/*Khai bao nguyen mau ham*/
unsigned long sum(unsigned int n);
/Chuông trinh chinh*/
int main(){
unsigned int n;
unsigned long tong;
printf("Nhap n: "); scanf("%d",&n);
tong = sum(n);
printf("\nTong can tinh la: %d", tong);
getchO;
return 0;
}
unsigned long sum(unsigned int n){
unsigned long s = 0;
int i;
for(i=l;i<=n;i++) s+=i;
return s;
}
86
Bài 11:
Viết hàm hoán đi giá tr hai biến s nguyên.
Lòi gii:
#include <stdio.h>
#include <conio.h>
void swap( int* , int* ); /* Khai bao nguyen mau ham */
int main(){
int X, y;
printf("Nhap vao so nguyen thu nhat X = "); scanf("%d",&x);
printf("Nhap vao so nguyen thu hai y = "); scanf(%d",&y);
swap(&x, &y);
printf("Sau khi hoan doi gia tri hai bien, X = %d, y = %d", X, y);
getch();
return 0;
}
void swap( int* X , int* y){ /* Dinh nghia ham swap */
int temp;
temp = *x;
*x = *y;
*y = temp;
}
Bài 12:
Viết chương trình tính giá tr hàm Fibonaci với tham s n đưc nhp t bàn
phím. Biết rng:
fibonaci(O) = 0; fibonaci( 1) = 1;
fibonaci(n) = fibonaci(n-l) + fìbonaci(n-2) Vn>l
Lòi gii:
#include <stdio.h>
#include <conio.h>
long fíbo( long); /* Khai bao nguyen mau ham */
7-BTTHĐC
87
int main() {
long result, n;
printf("Hay nhap vao mot so nguyen: ");
scanf("%ld", &n);
result = fibo(n);
printf("\nFibonaci cua %ld la: %ld", n, result);
getchO;
return 0;
}
/* Dinh nghia de quy ham fibonaci */
long fibo( long n){
if ( n = 0 II n 1 )retum n;
else return fibo(n-l) + fibo(n-2);
}
Bài 13:
Thông tin v mt hc sinh u trong mt cu trúc gm các trưng: Mã s
ký t), H tên (không quá 30 ký t), Đim toán (s thc). Hãy viết n
chương trình hoàn chinh thc hin các công vic sau:
a) Nhp vào danh sách hc sinh ca mt lớp (biết rng lp này có không (
30 hc sinh). Quá trình nhp kết thúc khi đã nhp đ 30 hc sinr nbc
nhp Mã số là xâu "$$$".
b) Sp xếp danh sách hc sinh theo th t gim dn cùa Điểm toán hiên
danh sách này ra màn hinh.
Li gii:
#include <stdio.h>
#include <conio.h>
#include <string.h>
typedef struct {
char maso[9];
char hoten[31];
float diemtoan;
88
}HOCSINH;
HOCSINH ds[30], tg;
int main() {
int ij,n = 0;
float diemtoan;
char maso[9];
charhoten[31];
for(i=0; i<30; i++){
printf("\nNhap ma so sv thu %d: ",i+l);
fflush(stdin); scanf("%s",maso);
/*Neu nhap ma so la xau "$$$" thi dung viec nhap*/
if(strcmp(maso,"$$S")=0) break;
n++;
strcpy(ds[i] .maso,maso);
printf("\nNhap ho ten: "); fflush(stdin); gets(hoten);
strcpy(ds[i].hoten,hoten);
printf("\nNhap diem toan: "); scanf("%f',&diemtoan);
ds[i].diemtoan = diemtoan;
}
/* Sap xep danh sach hoc sinh theo thu tu khong tang cua diem toan */
for(i=0; i<n-l; i++)
for(j=i+l;j<n;j+ +)
it(ds[iJ.diemtoan < ds[jJ.diemtoan){
tg = ds[i];
ds[i] = ds[j];
ds[j] = tg;
}
/* Hien thi danh sach ra man hinh */
printf("\n DANH SACH HOC SINH SAU KHI SAP XEP THEO DIEM
TOAN");
printf("\n+
--------
+
--------------------------------
.+.
----------
1-");
89
printf("\n| Ma so I Ho ten |Diem toan|");
printf("\n+
--------
+
--------------------------------
+
------------
+");
for(i=0;i<n;i++) printf("\n|%8s|%30s|%9.1f|", ds[i].maso, ds[i].hoten,
ds[i].diemtoan);
printf("\n+
---------
+
----------------------------------
+
----------
+\n");
getch();
return 0;
}
Bài 14:
Viết mt chương trình thc hin các công vic sau:
a. Đc mt dãy s nguyên 10 phn t t bàn phím vào mng a.
b. Ghi dãy va đc lên tp "SONGUYEN.SL" thư mc gc cùa c.
c. Đc tệp trên vào mng b và hin thn màn hình.
Lòi gii:
#include <stdio.h>
#include <conio.h>
int main(){
FILE *f; int i, a[10], b[10];
for(i=0;i<10;i-H-){
printf("\na[%d]= ",i);
scanf("°/od",& a[i]);
}
/*Mo tep SONGUYEN.SL de ghi theo che do nhi phan*/
f = fopen("C:\\SONGUYEN.SL", "wb");
fwrite(a, sizeof(a), 1, f);
fclose(f);
/*Mo tep SONGUYEN.SL de doc theo che do nhi phan*/
f=fopen("C:\\SONGUYEN.SL","rb");
fread(b, sizeof(a), 1, f);
90
fclose(f);
/*Hien thi ra man hinh*/
printf("\nDay so doc duoc la:");
for(i=0;i<10;i++) printf("\n%d", b[i]);
getch();
return 0;
}
Bài 15:
Viết chương trình sao chép tệp chế đ nhị phân.
Li gii:
^include <stdio.h>
#include <conio.h>
^include <stdlib.h>
int main(){
int c;
char tl [25], t2[25];
FILE *fl, *f2;
printf("\nTEP NCiUON:"); gets(tl);
printf("\nTEP DICH:"); gets(t2);
fl=fopen(tl,"rb");
if(fl==NULL){
printf("\nTEP %s KHONG TON TAI",tl);
getch();
exit(l);
}
f2=fopen(t2,"wb");
while((c=fgetc(fl))!=EOF) fputc(c,f2);
fclose(fl); fclose(f2);
91
printf("\nDa sao chep xong...");
getch();
return 0;
}
Bài 16:
Thông tin v tr em sinh ra tại mt bnh vin bao gm: H và tên mt xâu
không quá 30 kí tự; Tháng sinh mt số nguyên; Năm sinh mt số
nguyên; Cân nng (theo kg) là mt số thc; Giói tính mt số nguyên chi
nhn hai giá tr 0, 1 vi quy ưc 1 là bé trai, 0 là bé i.
Gi s d liệu khá lớn, không th u tr b nh trong.
Hãy viết chương trình thc hin nhng công vic sau:
a. Nhp thông tin ca các tr sơ sinh và ghi vào tp nhphân SOSINH.DAT
trên D. Quá trình nhp kết thúc khi nhp giá tr Cân nng là 0. Nếu gặp
li khi to tp, thông báo "Khong tao duoc tep" cho ngưi sử dng.
b. Nhp tháng T (1 < T < 12) và năm N (2000 < N < 2013) t bàn
phím. Đc tp SOSINH.DAT và hiển thra màn hình danh sách các tr so
sinh đưc sinh ra trong tháng T năm N đó.
Danh sach tre so sinh thang
....
nam
.............
STT Ho va ten Can nang Gioi tinh
Quy cách hin th: H và tên trên 32 vtrí, cân nng trên 5 vtrí vi 2 ch SC
thp phân, giới tính in nam hoc n tùy theo g tr lưu trong tp là 1 hay c
trên 5 vtrí.
Nếu không có em nào đưc sinh trong tháng năm đó, thông báo: "Khong cc
em nao sinh trong thang....nam............
c. Ghi ra tệp văn bn KETQUA.TXT thư mc hin hành ti lệ sinh
trai/bé gái trong năm 2012. Nếu số bé gái sinh ra bàng 0 thì ghi giá tr -1.
Li gii:
#include <stdio.h>
#include <conio.h>
int main() {
struct {
92
char ht[30]; // Ho va ten
int ths, ns, gt; // Thang sinh, nam sinh, gioi tinh
float cn; // Can nang
} te; // Tre em
FILE *f;
float trl; // Trong luong
int t, n, dem = 0, stt = 0, bt = 0, bg = 0;
if((f=fopen("D: WSOSINH.DAT","w b"))=N ULL) {
puts("\nKhong tao duoc tep");
getch(); exit(l);
}
else{
do{
printf("\nNhap trong luong: "); scanf("%f',&trl);
if(trl > 0){
printf("\nNhap ho te n :"); fflush(stdin); gets(te.ht);
printf("\nNhap thang sinh:"); scanf("%d",&te.ths);
printf("\nNhap nam sinh:"); scanf("%d",&te.ns);
printf("\nNhap gioi tinh (1: nam; 0: nu):"); scanf("%d",&te.gt);
te.cn = trl;
fwrite(&te, sizeof(te), 1, f); //G hi len tep
}
}whilc(ưl > O);
fclose(f); // Dong tep
}
printf("\nNhap thang va nam: "); scanf("%d%d",&t, &n);
f=fopen("D: \\SOSINH.DAT","rb");
printf("\nDanh sach tre so sinh thang %d nam %d", t, n);
while(fread(&te, sizeof(te), 1, f)){
if((te.ths = t) && (te.ns = n)){
if(te .g t= 1)
93
printf("\n %3d %32s %5.2f nam", stt++, te.ht, te.cn);
else printf("\n %3d %32s %5.2f nu", stt++, te.ht,
te.cn); dem++;
}
}
if(!dem)
printf("\nKhong CO em nao sinh trong thang %d nam %d", t, n);
fclose(f);
/* Tinh ti le sinh be trai/be gai nam 2012 */
f=fopen("D:\\ SOSrNH.DAT","rb");
while(fread(&te, sizeof(te), 1, f)){
if((te.ns = 2012) && (te .g t= l)) bt++;
if((te.ns = 2012) && (te.gt==0)) bg++;
}
fclose(f);
/* Ghi ket qua len tep KETQUA.TXT 0 thu muc hien hanh */
f=fopen("KETQUA.TXT","wt");
if(bg>0) fprintf(f, "Ti le sinh be trai/be gai nam 2012: %6.2f', ((float)
bt)/bg);
else fprintf(f, "Ti le sinh be trai/be gai nam 2012: %6d", -1);
fclose(f);
getch();
return 0;
94
IV.2. Phn bài tập bn đọc tự gii
i 1:
Hãy viết mt chương trình c hoàn chinh thc hin nhng nhim v sau:
a. Viết hàm tính giá tr f(x) = 3x2+5 (x là số thc).
b. Nhp vào từ bàn phím mt số thc. Hiển thị ra màn hình các giá trị ca
hàm số với 20 giá trị đi s ng dn bt đu t số va nhp vi bưc tăng
là Ax = 0.05.
Bài 2:
Hãy viết mt chương trình c hoàn chnh thc hin nhng nhim v sau:
a. Viết hàm tính giá trị f(x) = 2x4 - 3 (x số thc).
b. Nhp vào t bàn phím mt số thực. Hiển thị ra màn hình các giá tr ca
hàm s vi 20 giá tr đi s gim dn bt đu t số va nhp vi bưc
gim Ax = 0.02
Viết chương trình con tính giá trị ca hàm số trn. Trong chương trình chính,
nhp giá tr ca đi số t bàn phím, gọi chương trình con này và hin th kết
quà ra màn hình.
Bài 4:
Viết chương trình nhp n số nguyên t bàn phím (2 < n < 52), kết thúc
quá trình nhp s khi nhp mt ch cái hoc đã nhp 52 số. Đếm xem có bao
nhiêu số chia hết cho 3, in ra màn hình các số đó.
Ri 5:
Viết chương trình tìm bi s chung nh nht ca hai số nguyên dương a, b
đưc nhp vào t bàn phím.
Bài 6:
Viết chương trình m ưc s chung lớn nht ca ba s nguyên dương a, b, c
đưc nhp vào t bàn phim.
Bài 3:
i 7:
Viết chương trình tính tng sau:
s = ! + X + X2 + X3 + ... + xn
với hai số n nguyên dương và X đưc nhp vào t bàn phím.
95
Viết chương trình tính tổng sau:
S = 1 -x + x2-x3+ ... + (-l)".xn
vi hai s n nguyên dương và X đưc nhập vào từ bàn phím.
Bài 9:
Viết chương trình thc hin c công việc sau:
a. Đc t bàn phím mt dãy n số thc, với n đc từ bàn phím.
b. Đếm xem có bao nhiêu số dương, tính tng ca chúng. Đưa kết qu ra
màn hình.
Bài 10:
Viết chương trình thc hin các công việc sau:
a. Nhp vào mt dãy n số thc, với n nhp vào t bàn phím và n < 100.
b. Sp xếp dãy s ên theo th t không gim, hin th dãy s sau khi sắp
xếp ra màn hình.
Bài 11:
Địa chi e-mail là mt chui ký t có cha duy nht mt t a ng/a móc
'@ ' phân cách phn tên tài khon và phn tên miền, tên tài khon và tên min
không cha du cách/khong trng.
Viết mt chương trình c hoàn chỉnh, nhp vào t bàn phím mt chui tự
và kim tra xem đó có phi mt đa chi e-mail không. Nếu đúng đa chi
e-mail thì hin thị thông báo "La dia chi e-m air, ngưc lại thì hin th
"Khong phai dia chi e-mail". Gi s ngưi dùng nhp chui chi bao gm
du cách, ký t ký t du chm 7 , các ch số, các ký t trong bng ch
cái Latin.
Bài 12:
Viết mt chương trình c hoàn chinh, nhp vào t bàn phím mt xâu ký tự,
sau đó chuyn toàn b ký t ch thưng trong xâu thành ký tự ch hoa
hin th ra màn hình xâu ký t đã x lý này cùng vi s lưng ký t đã
chuyn thành ký t ch hoa. Gi s ngưi dùng nhp xâu đu vào chi gm
các ký t trong bng ch cái Latin và/hoc du cách.
Bài 13:
Viết chương trình thc hin nhp n xâu t bàn phím (n cũng đưc nhp từ
bàn phím). Hin thra màn hình xâu cui cùng có đ i lớn nht.
Bài 8:
96
Viết chương trình nhp mt chui ký t t bàn phím (gi s có đ i không
quá 100 ký tự k c ký t trng), đếm xem có bao nhiêu từ, đưa ra màn hình
s t xâu sau khi loi b các t trng (các t đưc ngăn cách bi mt
hoc nhiu t trng).
Bài 15:
Nhp mt xâu từ bàn phím, quá trình nhp dng khi gp ký t hoc đ
dài cùa xâu vưt quá 50 kí tự. Các t đưc ngăn cách bi mt hoc nhiu
t trng.
a. Có bao nhiêu t bt đu bng ký t "H"?
b. Đưa ra màn hình theo th t ngưc li sau khi đã xóa hết các ký t trng trong
u. Ví d: Xâu ban đu là "thi chuyen he", xâu đưa ra "ehneyuhciht".
Bài 16:
Viết chương trình đ quy nh giá tr ca dãy số đưc xác đnh theo công
thc sau:
Ul = u 2 = 1
u n = 4u n_ ! + 3u _ 2 V n > 3
i 17:
Hai s đưc gi nguyên t cùng nhau nếu chúng có ưc s chung ln
nht bng mt. Viết hàm kim tra hai s có nguyên t cùng nhau hay
không bng cách:
a. S dng vòng lặp.
b. S dng kĩ thut đ quy.
Bài 18:
Viết chương trình đ quy tính giá tr ca giai tha cách n!! đưc đnh nghĩa
như sau:
Nếu n = 2k+l thin!! = 1.3.5...(2k+ 1)
Nếu n = 2k thì n!! = 2.4.6.,.(2k)
Bài 19:
Thông tin v mt nhân viên lưu trong mt cu trúc gm các trưng: H tên
(không quá 30 ký tự), Đa ch (không quá 50 ký tự), Bc lương (s nguyên).
Hãy viết mt chương trình hoàn chnh thc hin các công vic sau:
Bài 14:
97
a. Nhp vào danh sách nhân viên ca mt cơ quan (biết rng cơ quan này
không quá 70 nhân viên). Quá trình nhp kết thúc khi đã nhp đù 70 nhân
viên hoc khi nhp H tên xâu "###".
b. Sp xếp danh sách nhân viên theo th t tăng dn ca Bc lương và hin
thdanh sách này ra màn hình.
Bài 20:
Biết rng s hc sinh trong lp hc nh hơn 50. Mt hc sinh có các thông tin
sau: H tên, Năm sinh, Đa ch, Đim toán. Hãy thc hiện các thao c sau:
a) Xây dng kiu d liu đ lưu thông tin hc sinh biết rng Htên hc sinh
có đ dài không quá 30 ký t và Đa ch có đ dài không quá 100 tự.
b) Nhp danh sách hc sinh cùa lớp hc. Quá trình nhp dng li khi đã có đù
50 hc sinh hoc khi tr lời "No" khi đưc hi.
c) Sp xếp danh sách hc sinh theo đim toán theo th t gim dần.
d) In ra màn hình h n nhng sinh viên có đim toán thp nht trong lớp.
Bài 21:
Biết rng trong mt cơ quan có không quá 100 nhân viên. Mt nhân viên
các thông tin sau: H tên, Năm sinh, Đa ch, Mc lưtmg. Hãy thc hin
các thao tác sau:
a. Xây dng kiu d liu đ lưu thông tin nhân viên biết rng H n cán b
có đ dài không quá 30 ký t và Đa chi có đ dài không quá 100 ký tự.
b. Nhp h sơ nhân viên ca cơ quan. Quá trinh nhp dng lại khi đã có đù
100 nhân viên hoc khi tr lời "No" khi đưc hòi.
c. Sp xếp danh sách nhân viên theo Năm sinh theo th t gim dn v tui.
d. In ra m àn hình tên và m c Urơng ca nh ng nhân viên có tuôi cao nhât
trong cơ quan.
Bài 22:
S lưng xe ô-tô do mt đơn v qun không quá 50 xe. Mỗi h sơ xe
các thông tin sau: N hãn hiu xe, Bin số xe, Tên hãng sn xut, Dung tích
xi lanh. Hãy thc hin các thao tác sau:
a. Xây dng kiu d liu đ lưu h sơ xe biết rng Tên hãng sản xut, Nhãn
hiu xe, Bin s xe là các xâu ký t có đ dài không quá 50 ký t.
b. Nhp h sơ xe ca cơ quan. Quá trình nhp dng lại khi đã có đ 50 xe
hoc khi tr li "No" khi đưc hi.
98
c. sp xếp danh sách xe theo Dung tích xi lanh theo th t gim dn.
d. In ra màn hình Nhãn hiu xe và Dung tích xi lanh ca niing xe dung
tích xi lanh nh nht.
i 23:
Biết rng trong mt kho hàng có không quá 100 mt hàng. Mt m t hàng có
các thông tin sau: Tên mt hàng, Ngày nhp, s lưng, Giá, C hng loi.
Hãy thc hin các thao tác sau:
a. Xây dng kiu d liệu đ lưu tr thông tin mt hàng biết rng Tên mt
hàng và Chng loại có đ dài không quá 100 ký tự.
b. Nhp thông tin mt hàng. Quá trình nhp dng lại khi đã có đù 100 mt
hàng hoc khi tr li "No" khi đưc hi.
c. Sp xếp danh sách các mt hàng theo giá gim dn.
d. In ra màn hình tên và số lưng ca nhng mt hàng có giá thp nht
trong kho.
Bài 24:
Hãy viết mt chương trình c hoàn chinh thc hin nhim v sau: Nhp vào
t bàn phím mt dãy các s nguyên, quá trình nhp s kết thúc khi số lưng
số nguyên nhp vào đ 30 số hoc tng cùa tt c các s nhp vào lớn hơn
1000. Hin thị ra màn hình số ln xut hin ca s đu tiên trong dãy.
Bài 25:
Quy tắc tính tin đin tiêu th trong mt tháng cùa mt h dân như sau:
100 số đu giá 550 đ/s, 50 s kế tiếp giá 1.000 đ/s và các s tiếp theo đưc
tính giá 1.500 đ/s. Ví dụ: nếu mt h tiêu th 165 s đin trong tháng thì
tin điện h đó phải tr = 100 s X 550 đ/s + 50 s X 1000 đ/s + 15 s X
1500 đ/só = 127.500 đ.
a. Viết chương trình con hàm double TIENDIEN(int sodien) nhn tham số
vào s đin năng tiêu th trong tháng ca h dân và tr v số tin đin
mà h dân phi thanh toán.
b. Nhp t bàn phím s h dân N trong mt thôn (điu kin N < 40).
c. Nhp vào số đin tiêu th trong mt tháng ca N h dân đó, tính s tin
mi h phi và lưu các giá trnày vào mt mng p.
d. Tính và hin th tng số tin đin mà thôn phi tr trong tháng đó.
99
Thông tin v ngun vn vin tr ODA mà các quc gia vin tr cho Việt
Nam t năm 2000 đến 2007 đưc u trong cu trúc kiu ODA gm có: Tên
quc gia (xâu không quá 30 tự thưng); s tin (mà quc gia đó tài trợ,
đơn vị: triu USD), Năm (năm tài trợ).
Gi s thông tin trên đã đưc u tr trong tệp TAITRO.DAT tại thư mục
gc D. Lp chương trình thc hin nhng công vic sau:
a. Nhp thêm vào cui file ưên thông tin v s tài tr ca các quc gia ưong
năm 2008. Điu kin kết thúc khi nhp tên quc gia là xâu "$$$".
b. Nhp vào mt số N (2000 < N < 2008). Đc file trên, đưa ra tên, s tiền
tài tr cùa các quc gia cho Vit Nam trong năm N theo quy cách: 30 v
trí cho phn n quc gia, 6 vị tri cho phn s tin tài tr, mỗi quc gia
trên mt dòng.
c. Nhp vào mt xâu ký t s th hin n mt quc gia. Đc lại file trên và
đưa ra tng số tin t năm 2003 đến nay mà quc gia đó đã i tr cho
Vit Nam. Nếu không m thy thì thông báo "KHÔNG TÌM THÁY".
Bài 27:
Thông tin v xe máy đưc lưu trong cấu trúc gm: H ãng sn xut (xâu
không quá 20 ký tự), Năm sn xut (s nguyên). Hãy viết mt chương trình
c thc hin nhng công vic sau:
a. Nhp vào từ n phún thông tin về 30 xe máy và lưu vào mt mng cu tc.
b. Duyt mng này, đưa ra màn hình tng số xe đưc sn xut bi hãng
"Honda" và thông tin năm sản xut ca tng chiếc xe này.
Bài 28:
Thông tin v đôi giy đưc lưu trong cu trúc gm: Nhà sn xut (xâu
không quá 25 ký t), Kich thưc (s nguyên). Hăy viết mt chương trinh c
thc hin nhng công vic sau:
a. Nhp vào từ bàn phím thông tin về 100 đôi giầy và u vào mt màng cu tc.
b. Duyt mng này, đưa ra màn hình tng s đôi giy do Nhà n xut "Binh
Tien" sn xut và thông tin kích thưc ca tng đôi giy này.
Bài 29:
Hãy viết mt chương trình c hoàn chinh thc hiện nhng nhim v sau:
a. Đnh nghĩa hàm có n ChnhPhuong vi đu vào là mt s nguycn. Hàm
tr v 1 nếu s đầu vào s chính phương, nguc lại tr v 0.
Bài 26:
100
b. Nhp vào t bàn phím mt số nguyên dương n tha mãn 10 < n < 20.
Nhp n s nguyên t bàn phím và u vào mng A. S dng hàm
ChinhPhuong, hãy in ra màn hình các số chính phương có trong mng.
i 30:
Hãy viết mt chương trình c hoàn chnh thc hin nhng nhim v sau:
a. Đnh nghĩa mt cu trúc d liu biu din mt phân số vi t s, mu số
các số nguyên.
b. Đnh nghĩa 02 hàm: hàm Nhap cho phép ngưi dùng nhp mt phân số t
bàn phím. Hàm SoSanh cho phép so sánh hai phân số. Hàm so sánh về
0 nếu hai phân số bàng nhau, 1 nếu phân số th nht lớn hơn phân số th
hai, ngưc li tr v -1.
c. Trong hàm main yêu cu ngưi dùng nhp vào hai phân số và cho biết
phân s nào lớn n.
TÀI LIỆU THAM KHO
Trn Đình Khang và các tác g, Giáo trình tin hc đi cương, NXB Bách
K ho a-H à Ni, 2012.
101
..........................
I TP TIN HỌC ĐI CƯƠNG
NHÀ XUÁT BN BÁCH KHOA - HÀ NI
Ngõ 17- T Quang Bu - Hai Bà Trưng - Hà Ni
Đin thoại: 04.38684569; Fax:04. 38684570
Website: http://nxbbk.hut.edu.vn
Chu trách nhim xut bn:
TS. PHÙNG LAN HƯƠNG
Phn bin: PGS. TS. ĐNG VÃN CHUYÉT
GVC. TS. PHM ĐNG HI
Biên tập: Đ THANH THÙY
Sa bàn in: v ũ TH HÀNG
TRÀN THPHƯƠNG
Trình bày: TRN TRUNG HIU
In 800 cun kh 16 X 24cm tại Công ty TNHH in và thương mi Sông Lam,
số 1 Phùng Chí Kn, p. Nghĩa Đô, cu Giy, Hà Ni.
Số đăng ký KHXB: 58-2013/CXB/90-01/BKHN; ISBN: 9786049113406,
do Cc Xut bàn cấp ngày 10/1/2013.
S QĐXB: 205/QĐ-ĐHBK-BKHN, ngày 9/8/2013.
In xong và np u chiu quý III năm 2013.
| 1/105

Preview text:

C K .0 0 0 0 0 6 9 6 3 0 i' II lí 10:
TRẨN ĐÌNH KHANG, NGUYỄN HỔNG PHƯƠNG
ĐỖ BÁ LÂM, NGUYỄN LINH GIANG BÀI TẬPT O N y e c { M i
TRÀN ĐÌNH KHANG, NGUYỄN HÒNG PHƯƠNG,
ĐỎ BÁ LÂM, NGUYỄN LINH GIANG BÀI TẬP
TIN HỌC ĐẠI CƯƠNG
(Tái bản lần thứ nhất)
BẠI HỌC THẨI NGUYÊN T B U N G T Ằ M ự Ọ C I Ệ Ư
NHÀ XUÁT BẢN BÁCH KHOA - HÀ NỘI
Bản quyền thuộc về trường Đại học Bách Khoa Hà Nội.
Mọi hình thức xuất bản, sao chụp mà không có sự cho phép bằng văn bản củ a
trường là vi phạm pháp luật.
Mã số: 58 - 2013/CXB/90 - OỈ/BKHN
Biên mục trên xuất bản phẩm của Thư viện Quác gia Việt Nam
Bài tập tin học đại cương / Trần Đình Khang, Nguyễn Hồng Phương, Đỗ Bá
Lâm, Nguyễn Linh Giang. - H. BốcB íàròẩ ĩỉà Nội, 2013. - lOOtr. : hình vỗ, b ả n g ; 24cm h p r T f j Thư mục: tr. 99 ISBN 9786049113406
1. Tin học đại cương 2. Lập trình 3. Bài tập 4. Tài liệu học tập 005.1076- d c l4 BKH0012p-CIP 2 LỜI NÓI ĐÀU
Cuốn iBii tập Tin học đại cươttg được biên soạn theo chương trình môn học
Tin học đại CHimg giảng dạy tại Trường Đại học Bách Khoa Hà Nội. Sách được sử
dụng để bổ tirc cho Giáo trình Tin học đại cương, có thể làm tài liệu học tập cho
sinh viên Trurờig Đại học Bách Khoa Hà Nội, cũng như các trường Đại học, Cao
đẳng kỹ thuậtt công nghệ trong cả nước.
Với miụ: tiêu cung cấp tài liệu học tập cho sinh viên, nhóm tác giả đã tập
hợp các bài ttậ> và kinh nghiệm của nhiều thầy, cô giáo trong Viện Công nghệ
thông tin và Tiuyền thông, Trường Đại học Bách Khoa Hà Nội, để biên tập thành cuốn bài tập in;y.
Bố cục ách bao gồm các phần chính như sau:
Phần các câu hỏi trắc nghiệm: có 348 câu hỏi trắc nghiệm bố cục theo các
phần Tin học cin bàn, Giải quyết bài toán và Lập trình.
Phần các bài tập tự luận: là các bài tập lập trình, với một số bài có lời giải
mẫu và một số oài để người đọc tự giải.
Các tác giã hy vọng cuốn bài tập này sẽ là một tài liệu hữu ích cho người sừ dụng.
Các tác giả xin bày tỏ sự biết ơn chân thành đối với các thầy cô giáo, các đồng
nghiệp trong V ện Công nghệ thông tin và Truyền thông, Trường Đại học Bách Khoa
Hà Nội, đã giúp đõ và động viên rất nhiều trong quá trình biên soạn giáo trình. Đặc
biệt, xin gửi lcn cảm 001 sâu sắc tới PGS. Đặng Văn Chuyết và TS. Phạm Đăng Hải
đã dành thời giai đục bản thảo và cho Iihững ý kién dóng góp quý bấu.
Trong qiá trình biên soạn, mặc dù đã rất cố gắng, nhưng sai sót là điều khó
tránh khỏi, các tác giả rất mong nhận được ý kiến đóng góp của bạn đọc để lần tái
bản sau được hoàn thiện hom.
Mọi ý kiến đóng góp xin gửi về: Viện Công nghệ thông tin và Truyền thông,
Trường Đại họt Bách Khoa Hà Nội, số 1 Đại c ồ Việt, Hai Bà Trưng, Hà Nội. CÁC TÁC GIẢ 3 MỤC LỤC
Lời nói đ ầ u ............................................................................................................................. 3
PHÀN I. TIN HỌC CẢN B Ả N ........................................................................................ 5
PHẢN n. GIẢI QUYẾT BÀI TO Á N ........................................................................... 29
PHÀN III. LẬP T R ÌN H .................................................................................................. 36
PHÀN IV. BÀI TẬP T ự LUẬN LẬP T R ÌN H ...........................................................78
IV. 1. Phần bài tập có lời giải..............................................................................................78
IV.2. Phần bài tập bạn đọc tự giải..................................................................................... 95 4
PHẦN I. TIN HỌC CĂN BẢN
C â u 1 .rrình tự xử lý thông tin trong hệ thống thông tin?
a Dữ liệu —> Thông tin -> Tri thức
b Thông tin —» Dữ liệu —» Tri thức
c Dữ liệu —> Tri thức —> Thông tin
d Thông tin —> Tri thức -> Dữ liệu
C â u 2 . ’hát biểu nào dưới đây là sai?
a Dữ liệu có thể tồn tại ờ nhiều dạng như tín hiệu vật lý, các ký hiệu, số liệu
b Thông tin không thể được truyền từ người này sang người khác
c Tri thức là sự hiểu biết (nhận thức) về thông tin
d Máy tính điện từ giúp quá trình xử lý dữ liệu diễn ra nhanh chóng và
chính xác hơn so với xử lý thù công.
C â u 3. rhọn câu trá lời chính xác nhất: Quy trình xử lý thông tin có trình tự là?
aNhập dữ liệu —» Lưu trữ —> Xuất dừ liệu
b.Nhập thông tin —> Xử lý —> Xuất thông tin
cNhập dữ liệu —> Xử lý —» Lưu trữ —> Xuất dữ liệu
H Mhập Hữ liệu —» Xír lý —> Xuất dữ liệu
C â u 4. 'hát biểu nào dưới đây là đúng?
a.rin học nghiên cứu việc xử lý thông tin thành tri thức
b.Công nghệ thông tin hỗ trợ việc quản lý nhân sự, quản lý tài sản...trong các doanh nghiệp
c.rhuật ngữ công nghệ thông tin và truyền thông và Internet là nhu nhau
d.^ông nghệ thông tin chi liên quan tới các bài toán lớn, phức tạp như xừ lý
dữ liệu lớn, tính toán phức tạ p ... 5
C â u 5. Hệ đếm cơ số b (b > 2 và nguyên dương) sừ dụng bao nhiêu chữ số? a. Có 10 chữ số b. Có b chữ số c. Có b-1 chữ số
d. Có 2 chữ số là 0 và b-1
C ầ u 6. BIT là viết tắt của cụm từ?
a. Binary Information Tranmission
b. Binary Information Technology c. Binary Information uniT d. Binary diglT
C â u 7. Số 5678 có thể là biểu diễn của một giá trị trong hệ đếm cơ số nào? a. Hệ đếm cơ số 2
b. Hệ đếm cơ số 2 và 8
c. Hệ đếm cơ số 8, 10 và 16
d. Hệ đếm cơ số 10 và 16
C â u 8. Số 101.112, trong hệ thập phân có giá trị bàng? a. 5.75 b. 5.525 c. 7.75 d. 7.5
C â u 9. Một số nguyên biểu diễn ở hệ 16 (hệ Hexa) là 2008. Hỏi giá trị ở hệ 10 là bao nhiêu? a. 8020 b. 2080 c. 8200 d. 2820
C â u 10. Đẳng thức 131 - 4 5 = 53 đúng trong hệ cơ số nào? a. 6 b. 7 c. 8 d. 9
C â u 11. Số nhị phân 11 1000 1110 có biểu diễn trong hệ đếm cơ số 16 là? a. E32 b. 38E c. D32 d. 38D
C â u 12. Số nhị phân 110011.01 có biểu diễn trong hệ đếm cơ số 16 là? a. 33.1 b. C3.1 c. C3.4 d. 33.4 6
C â u 13. Số nhị phân 1100101001 có biểu diễn trong hệ cơ số 8 là? 1.1451 b. 4451 6241 d. 6244
C â u }4. Số nhị phân 11001.01001 có biểu diễn trong hệ cơ số 8 là? 1.61.21 b. 31.22 31.21 d. 61.22
C â u 5 . Để biểu diễn cùng một giá trị, trong các hệ đếm sau, hệ đếm cơ sổ nào sử
dụng nhiều chữ số nhất? I. Cơ số 2 b. Cơ số 8 Cơ số 10 d. Cơ số 16
C â u 16. Để biểu diễn cùng một giá trị, trong các hệ đếm sau, hệ đếm cơ số nào sừ dụng ít chữ số nhất? 1. Cơ số 2 b. Cơ số 8 Cơ số 10 d. Cơ số 16
C â u 17. Tại sao lại sử dụng hệ đếm Hexa trong tin học?
I. Vi nó là hệ đếm mà máy tính có thể hiểu được
1. Vì nó là hệ đếm cơ số lớn nhất
Vì nó dễ hiểu với con người và đuợc con người sử dụng
1. Vì nó biểu diễn ngẩn gọn hệ đếm nhị phân
C â u 8 . Một số nhị phân 32 bit nếu biểu diễn trong hệ cơ số 8 sẽ có tối đa bao ìhiêu chữ số? 1.8 b. 10 11 d. 4
C â u ]9. Số thập phân 19.75 trong hệ nhị phân được biểu diễn là? 1.1011.11 b. 10011.11 1011.011 d. 10011.101 C â u Bit là gì? J . Là chữ số nhị phân
ĩ. Là đơn vị nhò nhất đế biểu diễn thông tin
Là đơn vị nhò nhất để lưu trữ thông tin
i. Cả 3 câu trẽn đều đúng 7
Câu 21. Cần bao nhiêu khối nhớ 8 KB để có được dung lượng 1 MB? a. 64 b. 512 c. 256 d. 128
C âu 22. Một Megabyte bằng? a. 210B b. 2'-°TB c. 210 KB d. 220 KB
C âu 23. Một Gigabyte bằng? a. 1024 KB b. 220 B c. 210KB d. 220 KB
Câu 24. Một Terabyte bằng? a. 210GB b. 2 10 MB c. 1000 MB d. 1000 GB
Câu 25. Trong các giá trị thể hiện kích thước file như sau, giá trị nào lớn nhất? a. 100 KB b. 1 GB c. 2 " MB d. 1000 MB
Câu 26. Trong các giá trị thể hiện kích thước file như sau, giá trị nào nhò nhát? a. 1000 B b. 100 KB c. 10 MB d. 1 GB
C â u 27. Sử dụng 4 bit nhị phân để biểu diễn số nguyên không dấu. Hỏi giá trị số
nguyên lớn nhất có thể biểu diễn là bao nhiêu? a. 16 b. 15 c. 8 d. 7
C â u 28. Sử dụng 4 bit nhị phân để biểu diễn số nguyên có dấu. Hói giá trị số
nguyên lớn nhất có thể biểu diễn là bao nhiêu? a. 16 b. 15 c. 8 d.7
C âu 29. Sừ dụng 11 bit để biểu diễn một số nguyên có dấu, dải biểu diễn sẽ là? a. -1024 tới +1023 b. -2048 tới +2047 c. -1024 tới +1024 d. -2048 tới +2048
C â u 39. Một số nguyên có dấu biều diễn dưới dạng số nhị phân 8 bit là 01010101.
Giá trị cùa số đó trong hệ thập phân là? í. +85 b. -85 c. -43 d. +43
C â u 31. Số nguyên -86 được biểu diễn dưới dạng số nhị phân 8 bit là? í. 0101 0101 b. 00110011 í. 1010 1010 d. 1010 1001
C â u 32. Cho các số nguyên không dấu X =6Ai6, Y=1538, z =105)0. Thứ tự sắp
>ếp giảm dần sẽ là? í . X, Y, z b. Y, X, z c. z, Y, X d. Y, z , X
C â u 33. Cho 4 số nguyên 16 bit có dấu có mã hexa là: 5931, AC43, B571, E755. Số lớn nhất là? a 5931 ị. B571 c. AC43 c. E755
C â u 34. Cách biểu diễn số âm trong máy tính là?
a Thêm dấu - vào trước giá trị nhị phân dương tương ứng b. Sừ dụng mã bù 10
c Đảo các bit của giá trị nhị phân dương tương ứng d. Sừ dụng mã bù 2
C â u 35. Tìm câu trả lời thích hợp nhất cho câu hòi: Trong máy tính chiìng ta hiển
đễn số nguyên có dấu bằng mã bù 2 bởi vi ưu điểm cùa phương pháp này li?
a Không phải sử dụng dấu +, -
b Cộng, trừ số có dấu quy về một phép cộng với số nguyên không dấu
c Khả năng biểu diễn (dải biểu diễn) lớn hơn phương pháp dùng dấu +, -
d Không có hiện tượng tràn số
C â u 36. Khi cộng hai số nguyên có dấu trong máy tính, trường hợp nào chắc chắn knông tràn?
a Cộng hai số nguyên dương 9 b. Cộng hai số nguyên âm c. Cộng hai số khác dấu
d. Tất cả các phương án trên đều sai
C â u 37. Khi thực hiện trừ hai số nguyên có dấu trong máy tính, trường họợp nào
cần phải kiểm tra hiện tượng tràn số học? a. Trìr hai số khác dấu
b. Trừ hai số nguyên dương c. Trừ hai số nguyên âm
d. Không cần kiểm tra vì phép trừ luôn cho kết quả đúng
C â u 38. Phát biểu nào sau đây là đúng khi thực hiện phép nhân 2 số nguyyên có dấu trong máy tính?
a. Trước khi thực hiện phép nhân cần chuyển cả 2 thừa số thành đối số
b.Trước khi thục hiện phép nhân cần chuyển cả 2 thừa số thành số dưcrmg c.
Nếu hiện tượng tràn số xảy ra thì dấu của tích ngược dấu 2 thừa số.
d. Nếu 2 thừa số khác dấu thì không cần hiệu chinh lại dấu của tích.
C â u 39. Khi thực hiện phép chia hai số nguyên có dấu trong máy tính, saau khi
chuyển số bị chia và số chia thành số dương thì thực hiện phép chia. TYrường
hợp nào phải đảo lại dấu của cả thương và số dư?
a. Số bị chia duơng, số chia dương
b. Số bị chia dương, số chia âm
c. Số bị chia âm, số chia dương
d. Số bị chia âm, số chia âm
C â u 40. Cho 2 giá trị A = 195, B = 143 được biểu diễn dưới dạng số npguyên
không dấu 8 bit trong máy tính. Kết quả của phép toán A+B mà many tính thực hiện là bao nhiêu? a. 338 b. 256 c. 0 d. 82
C âu 41. Cho 2 giá trị A = +95, B = +43 được biểu diễn dưới dạng số nguyyên có
dấu 8 bit trong máy tính. Ket quả của phép toán A+B mà máy tính thựcc hiện được là bao nhiêu? a. +138 b . +127 c. - 118 d . -138 10
C â u 4:. Cho 2 giá trị A = +95, B = -4 3 được biểu diễn dưới dạng số nguyên có
(ấu 8 bit trong máy tính. Kết quả của phép toán A -B mà máy tính thực hiện arợc là bao nhiêu? í +138 b. -118 t - 1 d . +127
C âu 4;. Cho 2 giá trị A = -4 3 , B = -9 5 được biểu diễn dưới dạng số nguyên có
(ấu 8 bit trong máy tính. Kết quả của phép toán A+B mà máy tính thực hiện arợc là bao nhiêu? í -1 3 8 b. -118 c+118 d . +256
C â u 4». Cho biết kết quả của biểu thức khi biểu diễn ờ dạng số nguyên có dấu 8 ht? NOT 106,10) í. 00010110 b. 00010101 L 10010110 d. 10010101
C â u 4). Kết quả của biểu thức 10010110 XOR 01101001 là bao nhiêu? í. 10010110 b. 00000000 t 11111111 d . 01101001
C âu 4i. Theo chuẩn IEEE 754/85, với cách biểu diễn số thực độ chính xác đơn
(iùng 32 bit) thì số bit dùng biểu diễn phần mã lệch (e) sẽ là? £ 7 bit b. 9 bit L 8 bit d. 6 bit
C â u 4'. Theo chuẩn IEEE 754/85, biểu diễn số thực độ chính xác kép (64 bit) thì
o bit dùng biểu diễn phần mã lệch (e) sẽ là? í. 8 bit b.10 bit c 9 bit d. 11 bit
C â u 4i. Biểu diễn số thực X = 9.6875 dưới dạng số dấu chấm động theo chuẩn
EEE 754 với 32 bit thì phần mã lệch (e) có giá trị là bao nhiêu? í. 1000 0001 b.1000 0010 (.1000 0011 d. 0000 0011
C â u 4*. Xác định giá trị thập phân của số thực X có dạng biểu diễn theo chuẩn EEE 754 với 32 bit nhu sau:
(011 1111 1000 0000 0000 0000 0000 0000 11 a. 1 b. -1 c. 0 d. 2
C â u 50. Trong chuẩn IEEE 754/85, NaN là một giá trị đặc biệt không biiểu diễn
cho một số. Phát biểu nào sau đây là đúng về giá trị NaN?
a. Tất cả các bit phần mã lệch bằng 1, bit phần định trị tùy ý
b. Tất cả các bit phần mã lệch bằng 1, phần định trị có giá trị khác 0
c. Tất cả các bit phần mã lệch bằng 0, tất cả các bit phần định trị bằng 1
d. Tất cả các bit phần mã lệch bằng 0, phần định trị có giá trị khác 0
C â u 51. Trong chuẩn IEEE 754/85, thuật ngữ "độ chính xác kép" đề cập tớii?
a. Số lượng bit dùng để biểu diễn số thực độ chính xác kép nhiều gấp 2 \íần
số lượng bit dùng để biểu diễn số thực độ chính xác đơn
b. Dải biểu diễn số thực độ chính xác kép lớn gấp 2 lần dài biển diễn số 'thực độ chính xác đom
c. Số thực độ chính xác kép biểu diễn số thực cỏ dấu, trong khi số thựcc điộ
chính xác đơn biểu diễn số thực không dấu
d. Số lượng các bit sau dấu phẩy trong biểu diễn số thực độ chính xác kéfp
nhiều gấp 2 lần so với khi biểu diễn ờ dạng số thực độ chính xác đem.
C â u 52. Phát biểu nào sau đây là sai về bộ mã ASCII?
a. Là bộ mã biểu diễn ký tự
b. Dùng 8 bit để biểu diễn ký tự
c. Bộ mã ASCII không phân biệt chữ hoa, chữ thường
d. Bộ mã ASCII có 128 ký tự chuẩn
C â u 53. Phát biểu nào sau đây là đúng về bộ mã ASCII?
a. Mỗi ký tự trong bộ mã ASCII có độ dài 2 byte
b. Bộ mã ASCII không biểu diễn được chữ số '0'
c. Bộ mã ASCII có 256 ký tự
d. Bộ mã ASCII có 128 ký tự mở rộng không thể thay đổi được
C â u 54. Muốn mã hóa một bảng mã gồm 100 ký tự phải sử dụng tối thiiểu bao
nhiêu bit nhị phân cho mỗi từ? a. 5 bit b. 6 bit c. 7 bit d. 50 bit 12
C a t 55. Trong các biểu thức so sánh dưới đây, biểu thức nào đúng, biết bảng mã
được sừ dụng là bảng mã ASCII a. '0' > 1 b. '9' > 'A' c . ’a 'c 'B ' d. 'a '< T
C â i 56. Một hệ thống mã sử dụng 2 byte để mã hóa các ký tự. số lượng các ký tự có thể biểu diễn là: a. 2*28 b. 216 c. 2'6 d. 16*28
C â i 57. Bảng mã ký tự Unicode là gì?
a. Là bảng mã ký tự chuẩn tiếng Latin dùng trên Internet
b. Là bảng mã ký tự chuẩn 8 bit tiếng Việt
c. Là bảng mã ký tự chuẩn 32 bit của thế giới
d. Là bảng mã ký tự chuấn 16 bit của thế giới
C â i 58. Chức năng quan trọng nhất của máy tính là? a. Lưu trữ dữ liệu b. Xử lý dữ liệu
c. Nhập và xuất dữ liệu d. Điều khiển
C â i 59. Các thành phần cơ bản của một hệ thống máy tính gồm có:
a. Mainboard, ồ cứng, màn hình
b. Bộ xừ lý trung tâm, bộ nhớ, thiết bị ngoại vi, liên kết dữ liệu
c. Chip vi xử lý, bộ nhớ, thiết bị vào ra, nguồn
đ. Bộ xử lý trung tâm, bộ nhớ chính, hệ thống vào ra, liên kết hệ thống
C â i 60. Các thao tác xử lý của máy tính gồm (1) Nhận lệnh, (2) Nhận dữ liệu nếu
cẩn. (3) Giải mã lệnh, (4) Thực hiện lệnh Trình tự thực hiện họrp lý là? a. 1,2, 3 ,4 b. 1,3, 2, 4 c. 4, 2 ,1 ,3 d. 3 ,2 ,4 , 1
C â i 61. Các thành phần của CPU gồm?
a. Control Unit, Bộ nhớ trong, Registers
b. Control Unit, Bộ nhớ ngoài, Registers
c. Control Unit, ALU, Registers
đ. Input-Output System, Bus, Bộ nhớ chính 13
C â u 62. Thành phần nào trong CPU đảm nhận việc thực hiện các phép xử 1 lý dữ liệu? a. CU b. Register Files c. ALU d. Bus bên trong
C âu 63. CPU lưu mã lệnh đang được thực hiện ờ đâu? a. CU b. ALU c. Thanh ghi d. Bus bên trong
C â u 64. Hình sau là sơ đồ cơ bản của một máy tính. Biết ALU là khối số hạọc và
logic. Hãy chi ra sự kết hợp đúng của A, B, c trong hình.
----------- Luồng điều khiển -------------► Luồng dữ liệu A B c a ALU Bộ nhớ Khối điều khiển b Khối điều khiển ALU Bộ nhớ c Khối điều khiển Bộ nhớ ALU d Bộ nhớ Khối điều khiển ALU 14
C â u 65. Chức năng chính của tập các thanh ghi là?
a. 3iều khiển nhận lệnh
b. rhứa các thông tin phục vụ cho hoạt động của CPU t
c. /ận chuyển thông tin giữa các thành phần trong máy tính
d. Chông có câu trả lời nào ờ ừên là đúng
C â u 66. Phát biểu nào sau đây là sai về CPU?
a. Các thành phần chính cùa CPU bao gồm c u , ALU và tập các thanh ghi
b. IPƯ hoạt động theo chương trinh nằm trong bộ nhớ chính
c. CPU đàm nhận tất cả các chức năng của hệ thống máy tính
d. rốc độ của CPU phụ thuộc vào tần số xung nhịp cùa đồng hồ
C â u 67. Phát biểu nào sau đây là đúng về CPU?
a. CPU hoạt động theo các chương trình nằm trên 0 cứng
b. Chối điều khiển c u trong CPU điều khiển hoạt động của tất cả các bộ ihận khác trong máy tính
c. "âp các thanh ghi của CPU là một số ngăn nhớ có địa chỉ xác định của bộ ìhớ chính
d. Chối tính toán số học và logic ALU trong CPU thực hiện với các dữ liệu Ìằm trên tập thanh ghi
C â u 68 . Phát biểu nào sau đây là đúng về bộ nhớ chính?
a. Bộ nhớ chính bao gồm RAM và 0 cứng
b. ỉộ nhớ chính được chia thành các ngăn nhớ có kích thước 1 MB
c. Dung lượng bộ nhớ chính có thể lớn tùy ý
d. CPU có thể trao đổi dữ liệu trực tiếp với bộ nhớ chính
C â u 69. Chức năng chính của RAM?
a. Lưu trữ dữ liệu lâu dài
b. Lưu trữ dữ liệu và chương trình đang thực hiện
c. -ưu trữ chương trình dùng để khởi động máy tính
d. at cả các đáp án trên
C â u 7 0 .3Ộ nhớ đệm nhanh cache dùng đề?
a. ■'ăng cường dung lượng nhớ của CPU thay cho các thanh ghi
b. Mhằm giảm độ chênh lệch tốc độ giữa CPU và bộ nhớ chính (RAM)
c. Pe có thể lưu dữ liệu khi mất điện
d. ~ất cả các phương án trên đều sai 15
C â u 71. Phát biểu nào sau đây là SAI?
a. Tốc độ truy cập bộ nhớ trong nhanh hơn tốc độ truy cập bộ nhớ nịgoàài
b. Nội dung của ngăn nhớ có thể thay đổi nhưng địa chi ngăn nhớ thù CCO định
c. Nội dung RAM mất đi khi mất điện
d. Dung lượng bộ nhớ cache lớn hơn dung lượng của RAM
C â u 72. Lựa chọn nào sau đây chi chứa các thành phần là bộ nhớ trong? a. RAM, ROM-BIOS, CD-ROM
b. RAM, ROM-BIOS, bộ nhớ Cache
c. ROM-BIOS, đĩa cứng, bộ nhớ Cache
d. RAM, USB Memory stick, CD-ROM
C â u 73. Chi ra lựa chọn tương ứng với các thành phần thuộc bộ nhớ ngoàú: a. ROM, RAM b. Đĩa cứng, CD-ROM, ROM c. Đĩa cứng, đĩa mềm
d. Đĩa cứng, đĩa mềm, bộ nhớ cache
C â u 74. Trong các nhóm thiết bị dưới đây, nhóm nào chì chứa các thiết bị Ị thuộc bộ nhớ ngoài? a. ROM, RAM, CDROM
b. Đĩa cứng, đĩa mềm, CDROM
c. Đĩa cứng, đĩa mềm, cache
d. Đĩa cứng, đĩa mềm, DVD, ROM
C â u 75. Lựa chọn nào dưới đây chi ra thứ tự tăng tốc độ trao đổi dữ liệiu cvùa các loại bộ nhớ?
a. Tập thanh ghi, Cache, RAM, Đĩa cứng
b. RAM, Đĩa cứng, Tập thanh ghi, Cache
c. RAM, ROM, Đĩa cứng, Tập thanh ghi
d. Đĩa cứng, RAM, Cache, Tập thanh ghi
C â u 76. Trong các lý do sau, lý do nào giải thích việc dung lượng cùia boộ nhớ
ngoài có thể lớn hơn bộ nhớ trong rất nhiều?
a. Vì công nghệ chế tạo bộ nhớ ngoài rẻ hơn bộ nhớ trong rất nhiều
b. Vì bộ nhớ trong chịu sự điều khiển trực tiếp của CPU 16
c. bộ nhớ ngoài không bị giới hạn bởi không gian địa chi của CPU
d. Vì hệ thống vào ra cho phép ghép nối với bộ nhớ có dung lượng lớn
C â u 77. Phát biểu nào sau đây là sai về hệ thống vào ra?
a. Hệ thống vào ra gồm có 2 thành phần chính là các thiết bị vào ra và nô-đun vào ra
b. Mỗi cổng vào ra kết nối được với duy nhất một thiết bị vào ra xác định
c. Các thiết bị vào ra kết nối với CPU thông qua mô-đun ghép nối vào ra
d. VIỗi cổng vào ra có 1 địa chi xác định, do CPU đánh địa chi
C â u 78. Trong các thiết bị sau, thiết bị nào là thiết bị vào? a. Máy quét b. Màn hình c. Máy in d. Máy chiếu
C â u 79. Trong các thiết bị sau, thiết bị nào là thiết bị ra? a. Máy quét b. Bàn phím c. Con chuột d. Máy chiếu
C â u 8 0 .0 đĩa cứng được xếp loại là: a. "hiết bị vào b. Thiết bị ra c. "hiết bị lưu trữ
d. Cả 3 đáp án trên đều sai
C â u 81. Trong máy tính bộ phận nào đảm nhiệm việc vận chuyển thông tin giữa
các thành phần bên trong máy tính? a. Bộ xừ lý trung tâm b. BUS c. Các thanh ghi d. Bộ nhớ trong
C â u 82. Một máy tính sử dụng bộ vi xử lý có độ rộng của đường bus địa chi
(Address Bus) là 32 bit. Hỏi với máy tính này, dung lượng tối đa của bộ nhớ
chhh là bao nhiêu biết mỗi ô nhớ có kích thước 1 Byte? a. A GB b. ; 32*8 Byte c. L Byte d. Không giới hạn
C â u 83. Vlột máy tính có độ rộng bus địa chi (Address Bus) là 32 bit, độ rộng bus
dữ liệu (Data bus) là 24 bit. Hỏi bộ xử lý, trong một lần truy cập bộ nhớ, có
thể trao đổi tối đa bao nhiêu byte? a. 43B b. 4 byte c. 16MB d. 3 byte 2 -BTTHĐC
C â u 84. Bus địa chi không vận chuyển thông tin nào sau đây?
a. Địa chì ngăn nhớ chứa dữ liệu trong bộ nhớ RAM
b. Địa chi tệp tin trên ồ cứng
c. Địa chi ngăn nhớ chứa lệnh cần nạp vào CPU
d. Địa chi cổng vào-ra cần trao đổi dữ liệu
C â u 85. Phát biểu nào dưới đây là sai?
a. Cấu trúc dữ liệu đề cập tói việc biểu diễn dữ liệu trong máy tính
b. Giải thuật đo những chuyên gia tin học đưa ra
c. Giải thuật phải bao gồm dãy "hữu hạn các thao tác xử lý
d. Phần mềm máy tính bao gồm dữ liệu và giải thuật
C â u 86. Ông N.Wirth người sáng lập ra trường phái lập trình có cấu trúác cho rằng?
a. Chương trình = c ấ u trúc dữ liệu + Xừ lý
b. Chương trình = Dữ liệu + Xử lý
c. Chương trình = c ấ u trúc dữ liệu + Giải thuật
d. Chương trình = Dữ liệu + Giải thuật
C â u 87. Phát biểu nào dưới đây là đúng?
a. Máy tính có thể hiểu được ngôn ngữ lập trình bậc cao
b. Thông dịch là cách dịch toàn bộ chương trình nguồn sang ngôn n g ữ (đích
c. Máy tính chi hiểu trực tiếp được ngôn ngữ máy
d. Ngôn ngữ máy không phải là ngôn ngữ lập trình
C â u 88. Trong cách tiếp cận phần mềm, việc viết code của chương trìình 1 được thực hiện ờ bước?
a. Bước thực hiện chương trình b. Bước biên dịch
c. Bước xây dựng chương trinh * d. Bước triển khai
C â u 89. Trong các loại mạng sau đây, mạng nào có kích thước nhỏ nhất? a. LAN b. MAN c. GAN d. WAN
C â u 90. Trong các mạng sau đây, mạng nào ià mạng diện rộng ? a. LAN b. WAN c. Internet d. Intranet / • V 18 • ụ ậ : ■ vií' r.
C â u 91. Trong các mạng sau, mạng nào là mạng cục bộ? a. WAN b. LAN c. Internet d. GAN
C â u 92 Đâu không phải là thành phần cùa mạng máy tính? a. Hệ điều hành mạng b. Bộ định tuyến c. Cáp quang d. Control Panel
C â u 93. Cấu hình (Topology) nào sau đây không phải là cấu hỉnh mạng? a. Ring b. Star c. Bus d. Line
C â u 94. Dịch vụ nào sau đây không phải là dịch vụ dựa trên mạng Internet? a. Email b. Online chat c. ĩeln et d. Programming
C â u 95. Trong môi trường mạng, FTP là:
a. Dịch vụ tìm kiếm thông tin
b. Dịch vụ thư điện tử c. Giao thức tán gẫu d. Giao thức truyền file
C â u 96. Các thành phần cơ bản của một mạng máy tính bao gồm?
a. Các máy tính, thiết bị vào ra, đuờng truyền, các thiết bị kết nối mạng
b. Các máy tính, card mạng, máy chủ, các thiết bị kết nối mạng
c. Cúc máy ilali, card mạng, duờng truyèn, các thiết bị két nối mạng
d. Các máy tính, card mạng, đường truyền, phần mềm kết nối mạng
C â u 97. Mạng Internet thuộc loại mạng? a. LAN b. GAN c. WAN d. Peer to Peer
C â u 98. Đâu là một địa chi email hợp lệ? a. gmail.com b. yahoo.com.vn c. vTvw.gmail.com.vn d. tinhoc@soict.hut.edu.vn 19
C â u 99. Trang web nào cho phép tạo một địa chì email miễn phí? a. www.gmail.com b. www.yahoo.com.vn c. www.facebook.com d. Đáp án a và b
C â u 100. Trong các lĩnh vực của tin học, lĩnh vực nào nghiên cứu cơ chếẳ điều
khiển và phối hợp khai thác có hiệu quả các tài nguyên của máy tính?
a. Thiết kế và chế tạo máy tính b. Hệ điều hành
c. Thuật toán và cấu trúc dữ liệu d. Tương tác người máy
C â u 101. Hệ thống các chương trinh đảm nhận chức năng làm môi trường trung
gian giữa người sử dụng và phần cứng của máy tính được gọi là? a. Phần cứng b. Hệ điều hành c. Các loại trình dịch d. Tất cả đều đúng
C â u 102. Chọn phát biểu đúng về vai trò của hệ điều hành?
a. Quản lý tài nguyên của máy tính
b. Biên dịch chương trình nguồn sang mã máy
c. Kiểm tra phần cứng hệ thống khi khỏi động d. Soạn thảo văn bản
C â u 103. Trong các tên dưới đây, đâu là tên của một hệ điều hành? a. WORD b. UNIX c. Windows Explorer d. Microsoft Office
C â u 104. Các ký tự nào sau đây không được dùng để đặt tên tệp, thư mục tronng hệ điều hành Windows? a. V A b. @, 1 c. ỉ, % d. $
C â u 105. Trong hệ điều hành MS-DOS, tên tệp tin nào sau đây được chấp nhaận? a. KET/ \QUA7.TXT b. *KETQUA.TXT c. KETQU@.TXT d. KETQUA:TXT 20
C â u 10). Trong hệ điều hành MS-DOS, tên tệp tin nào sau đây không được chấp nlận? a.HOCKY(.TXT b. KETQUAS.TXT c. HOCKY@.TXT d. KETQUA7.TXT
C â u 10’. Trong hệ điều hành MS-DOS, tên thư mục nào sau đây không được chip nhận? • a. C:\KETQUA b. KETQU@ c. KETQU@.TXT
d. Cả 3 cách đặt tên trên.
C â u 10Í. Trong hệ điều hành MS-DOS, tên thư mục nào đuợc chấp nhận? a. r:\THIHOCKY b. \THIHOCKY c. THIHOCKY
d. Cả 3 cách đặt tên trên
C â u 10*. Trong các đuôi tệp dưới đây, đuôi nào gắn với tệp có thể chạy trực tiếp
trồi hệ điều hành WINDOWS? a. TXT b. EXE c. !PG d. MP3
C â u 11(. Trong hệ điều hành, các tệp được tổ chức lưu trữ dưới dạng? a. Dạng ngăn xếp b. Dạng đường dẫn Path c. 3ạng cây d. Dạng thư mục
C â u 111. Khi tìm kiếm tệp với tên tim kiếm là baitap?.* thì những tệp nào có thể
là cết quả của việc tìm kiếm, biết rằng có các tệp: baitap5.pdf, baitap9.doc, batapl0.doc và baitap8.pdf? a. taitap5.pdf b. kaitap5.pdf và baitap8.pdf
c. Vaitap5.pdf, baitap9.doc và baitap8.pdf
d. baitap5.pdf, baitap9.doc, baitapl0.doc và baitap8.pdf
C ầ u 112 Trình ứng dụng nào dưới đây là trình ứng dụng chuẩn của Windows XP
(kh cài đặt Windows sẽ có)? a. Iaint b. Microsoft Excel c. Microsoft Word d. Turbo c
C â u 113 Trong Windows Explorer, để chọn tắt cả các tệp và thư mục con trong
thu mục đang xét, dùng tổ hợp phím: a. Ctrl + c b. Ctrl + V 21 c. Ctrl + X d. Ctrl + A
C â u 114. Trong hệ điều hành Windows, tổ hợp phím nào có thề đóng m ột ứng dụng bất kỳ? a. Alt + F4 b. Ctrl + Alt +Del c. Ctrl + F 1 d. Ctrl +F4
C â u 115. Trong hệ điều hành Windows, phím tẳt dùng để xóa file là? a. Ctrl + c b. Ctrl + A c. Ctrl + D d. Ctrl + V
C â u 116. Trong Windows Explorer, để sao chép tập tin/thư mục, dùmg tổ hợp phím nào? a. Ctrl + c b. Ctrl + V c. Ctrl + X d. Ctrl + A
C â u 117. Hệ điều hành được xếp loại là: a. Phần mềm ứng dụng b. Phần mềm hệ thống c. Phần mềm giải trí
d. Tất cả các loại trên
C â u 118. Trong các hệ điều hành sau, hệ điều hành nào được công bổ) gần đây nhất? a. WINDOWS XP b. UNIX c. WINDOWS 7 d. WINDOWS VISTA
C â u 119. Phát biểu nào về Windows Explorer chưa chính xác?
a. Cho phép duyệt cây thư mục
b. Là một ứng dụng của Windows
c. Cho phép chuyển đổi tên file
d. Là chương trình cho phép duyệt Web
C â u 120. Trong một số phiên bản hệ điều hành Windows, khả năng tự đlộng nhận
biết các thiết bị phần cứng và tự động cài đặt cấu hình của các tthiết bị là chức năng: a. Plug and Play b. Desktop c. Windows Explorer d. Multimedia
C â u 121. Chức năng cùa chương trình dịch:
a. Dịch chương trình viết bằng ngôn ngữ cấp cao thành chương trìnih dưới dạng mã máy 22
b. Điều khiển và quản lý vào ra dữ liệu
c. Điều khiển các thiết bị nối với máy tính
d. Thực hiện vai trò trung gian giữa máy tính với con người
C âu 122. Phần mềm hệ thống cần phải được cài đặt trên máy tính để bàn thông
thuờng sử dụng hệ điều hành WinXP để một máy in Laser mới mua có thể sử dụng được là:
a. Phần mềm soạn thảo văn bản
b. Trình điều khiển thiết bị cho máy in c. Font chữ tiếng Việt
d. K.hông cần thêm phần mềm nào khác vì hệ điều hành WinXP đã có đầy đù
C â u 123. Đe loại bỏ một chương trình không còn sử dụng nữa, người dùng thực hiện:
a. Xóa bò biểu tuợng cùa chương trình đó trong Start Menu
b. Xóa bỏ các tệp tin và thư mục của chương trình đó trên máy tính
c. Xóa bò biểu tượng của chương trinh đó trên màn hình
d. Dùng chương trình Add and Remove Programs trong Control Panel
C â u 124. Thành phần nào sau đây không nằm trong tất cả các hệ thống thông tin? a. Người sử dụng
b. Trang thiết bị, máy móc sàn xuất của doanh nghiệp
c. Quy trình thu thập, phân tích, xử lý thông tin d. Mạng máy tính
C â u 125. Chất lượng cũa thông tin không đưục đáiili giá qua yéu ló? a. Kịp thời b. Đầy đủ c. Thống nhất d. Quan trọng
C â u 126. Phương pháp vòng đời phát triển hệ thống (SDLC) bao gồm bao nhiêu giai đoạn chính? a. 5 b. 6 23 c. 7 d. 8
C â u 127. Khi đưa hệ thống vào vận hành trong thực tế, chiến lược nào có độ rủi ro cao nhất? a. Song song b. Thí điểm c. Thay thế d. Giai đoạn
C â u 128. Phần mềm soạn thảo văn bản nào dưới đây là phần mềm mã nguồn mờ? a. Microsoft Word b. Writer c. Word Perfect d. TextMaker
C â u 129. Quan điểm nào về phần mềm mã nguồn mờ là đúng nhất?
a. Phần mềm mã nguồn mở không được nhà phát triển hỗ trợ
b. Là phần mềm miễn phí
c. Là phần mềm với mã nguồn được công bố, cho phép mọi người nghiên
cứu, thay đổi, cải tiến phần mềm theo một số quy tắc trong giấy phép đi kèm.
d. Là các phần mềm chi dành cho hệ điều hành Linux
C â u 130. Quy tắc soạn thảo văn bảo nào dưới đây là đúng?
a. Các dấu ngắt câu như dấu chấm, dấu phẩy, dấu hai chấm phải đư ợc đặt sát từ trước nó.
b. Sau .dấu mở ngoặc phải gõ một dấu cách rồi mới đến từ tiếp theo
c. Giữa hai từ gần nhau nên sử dụng một hoặc hai dấu cách để phân tách chúng
d. Trong một đoạn văn, để văn bản được xuống dòng người dùng sử dụng
phím Enter để kết thúc dòng.
C â u 131. Trong các phần mềm dưới đây, đâu không phải là phần mềm trình diễn văn bản? a. Microsoft PowerPoint b. Microsoft Presentation 24 c. Apple KeyNote d. Open Office Impress
C âu 132. Template đề cập tới?
a. Các mẫu trình diễn đã được định nghĩa trước
b. Thư viện các hình ảnh, biểu tượng
c. Các hiệu ứng chuyển động đã được định nghĩa trước
d. Trình diễn slide một cách tự động
C âu 133. Đâu là lưu ý đúng khi trinh bày slide?
a. Font Times New Roman dễ đọc hom font Anal
b. Nên tránh việc sử dụng hình ảnh, biểu đồ thay cho chữ viết, con số
c. Không nên lặp nhiều từ ngữ trong cùng một slide
d. Mỗi slide có thể trình bày nhiều ý tuởng có mối liên quan đến nhau
C âu 134. Trong các phần mở rộng cùa file sau, phần mờ rộng nào được tạo ra bời
phần mềm PowerPoint 2Ổ07? a. pptx b. docx c. xlsx d. doc
C âu 135. Trong các phần mềm dưới đây, đâu không phải là phần mềm báng tính? a. Lotus 1-2-3 b. Google spreadsheet c. Open Office Calc d. Microsoft spreadsheet
C âu 136. Vai trò chính của phần mềm bảng tính đối với người sừ dụng?
a. Nhập, xuất các số liệu
b. Tính toán các số liệu
c. Tính toán điểm trung bình cùa người học
d. Trình bày số liệu dưới dạng con số và đồ thị
C â u 137. Phát biểu nào dưới đây sai về phần mềm bảng tính Excel?
a. Địa chi của ô được xác định thông qua hàng và cột của ô đó
b. Nội dung của các ô có thể thay đổi 25
c. Các hàng và cột được đánh số tăng dần, bắt đầu từ 1
d. Các ô có địa chi xác định
C â u 138. Trong phần mềm Excel, hàm AVERAGE là hàm dùng để tìm?
a. Giá trị lớn nhất trong các ô được chọn
b. Giá trị nhò nhất trong các ô được chọn
c. Giá trị trung bình trong các ô được chọn
d. Tổng tất cả các giá trị trong các ô được chọn
C â u 139. Các khái niệm page, sheet, slide đề cập tới các phần mềm lần lượt là?
a. Microsoft Word, Microsoft Excel, Microsoft PowerPoint
b. Microsoft PowerPoint, Microsoft Excel, Microsoft Word
c. Microsoft Word, Microsoft PowerPoint, Microsoft Excel
d. Microsoft Excel, Microsoft Word, Microsoft PowerPoint
C â u 140. Phát biểu nào dưới đây về Cơ sở dữ liệu là đúng?
a. Là các thành phần cơ bản trong dữ liệu
b. Là tập hợp các dữ liệu có liên quan tới nhau được lưu trữ trên m áy tính đề
phục vụ cho việc sử dụng, quản lý dữ liệu
c. Cơ sở dữ liệu là tài nguyên phục vụ cho một người duy nhất
d. Các dữ liệu được mã hóa dưới một dạng cấu trúc nào đó thay vì dưới dạng nhị phân.
C â u 141. Phát biểu nào dưới đây về ưu điểm của Cơ sờ dữ liệu là sai?
a. Giảm trùng lặp dữ liệu
b. Dữ liệu có thể truy xuất theo nhiều cách khác nhau cho các đối tượng người dùng khác nhau
c. Nhiều người dùng có thể cùng khai thác cơ sở dữ liệu
d. CỔ tính bảo mật tốt
C â u I42à Phát biểu nào dưới đây về Hệ quản trị Cơ sờ dữ liệu là sai?
a. Hệ quản trị Cơ sở dữ liệu phải đảm bảo việc lưu trữ dữ liệu lâu dài
b. Là hệ thống các phần mềm cho phép định nghĩa, tạo tập và thực hiện các
thao tác đối với cơ sờ dữ liệu
c. Hệ quản trị Cơ sờ dữ liệu phải đảm bảo sự phụ thuộc của dữ liệu vào chương trình 26
d. Hệ quán trị Cơ sở dữ liệu phải hỗ trợ các ngôn ngừ cấp cao nhất định
C â u 143. Phát biểu nào dưới đây về thương mại điện tử là đúng?
a. Các hoạt động cùa thương mại diện tử cỏ thề là gửi tới khách hàng thông
tin sản phẩm qua email, tìm kiếm thông tin khách hàng trên Internet...
b. Thương mại điện tử sẽ thúc đẩy doanh thu cùa mọi doanh nghiệp
c. Khách hàng sẽ nhanh chóng biết đến website của doanh nghiệp nên không cần quảng bá
d. Thương mại điện tử bao gồm việc thanh toán qua mạng
C â u 144. Phát biểu nào dưới đây về thương mại điện tử là đúng?
a. Người tiêu dùng không thể nhận được các tư vấn về sản phẩm trong thương mại điện từ
b. Chi phí giao dịch thông qua thương mại điện từ cao hơn chi phí giao dịch thông thường
c. Người tiêu dùng không thể ngồi ở nhà đặt mua hàng của một doanh nghiệp nước ngoài
d. Giúp người tiêu dùng có nhiều lựa chọn hcm thương mại truyền thống vì
có thể so sánh thông tin về sản phẩm của các doanh nghiệp khác nhau
C â u 145. Hình thức giao dịch giữa doanh nghiệp với khách hàng là hình thức? a. G2C b. C2B c. B2C d. B2G
C â u 146. Phấn mẻm trí tuệ nhân tạo là?
a. Là phần mềm hệ thống
b. Là phần mềm giúp máy tính có hoạt động và suy nghĩ như con người
c. Là phần mềm giúp con người suy nghĩ thông minh hom
d. Là phần mềm giải quyết các vấn đề khó khăn mà con người chưa giải quyết được
C â u 147. Đâu là ví dụ sai về một phần mềm tri tuệ nhân tạo?
a. Phần mềm chơi cờ giữa người và máy tính
b. Phần mềm nhận dạng chữ viết của con người 27
c. Phần mềm trò chuyện giữa con người và máy tính
d. Phần mềm giúp con người tính toán các dữ liệu
C âu 148. Đâu là phát biểu đúng về phần mềm hệ chuyên gia?
a. Là phần mềm cài đặt tri thức của một hay nhiều chuyên gia vào m áy tính,
để giúp máy tính có khả năng giải quyết vấn đề như một người chuyên gia
b. Là một hệ thống bao gồm máy tính, các chuyên gia và nguời dùng để đưa
ra các ý kiến dựa trên thông tin người dùng cung cấp
c. Là một phần mềm sử dụng sự thông minh của máy tính để hỗ trợ cho
người chuyên gia giải quyết vấn đề
d. Là một phần mềm giúp máy tính có tri thức của người chuyên gia để đưa
ra ý kiến về mọi lĩnh vực. 28
PHẦN II. GIẢI QUYẾT BÀI TOÁN
C â u 149. Quy trình giải quyết bài toán bàng máy tính?
a. Xây dựng thuật giải -* Lựa chọn phương pháp giải -* Cài đặt chương trình -»
Hiệu chinh chương trình -* Thực hiện chương trình -* Xác định bài toán
b. Xác định bài toán -* Lựa chọn phương pháp giải -* Xây dựng thuật giải
-* Cài đặt chương ưình -* Thực hiện chương trình -* Hiệu chinh chương trinh
c. Xác định bài toán -* Xây dựng thuật giải -* Lựa chọn phương pháp giải -*
Cài đặt chương trình -* Hiệu chinh chương trình -» Thực hiện chương trình
d. Xác định bài toán -* Lựa chọn phương pháp giải -» Xây dựng thuật giải -*
Cài đặt chương trình -* Hiệu chinh chương trình -* Thực hiện chương trình
C â u 150. Trong bài toán kiểm tra một số nguyên dương A có phải là số nguyên tố
hav không, thì phát biểu nào dưới đây là đúng?
a. Đầu vào: số nguyên dương A. Đầu ra: Giải thuật kiểm tra A có phải là số nguyên tố hay không
b. Đầu vào: số nguyên dương A và giải thuật kiểm tra số nguyên tố. Đầu ra:
rhông báo A là số nguyên tố hoặc không phải số nguyên tố
c. Dầu vào. só nguyên ilưưug A. Đàu ra: Giài ihuật kiẻm ưa só nguyên tó và
:hông báo A là số nguyên tố hoặc không phải số nguyên tố
d. Đầu vào: số nguyên dương A. Đầu ra: Thông báo A là sổ nguyên tố hoặc
ichông phải số nguyên tố
C â u 151. Phương pháp liệt kê tất cả các khả năng cùa lời giải, tiến hành thử để
tìm ra lời giải đúng là phương pháp nào dưới đây? a. Phương pháp vét cạn b. Fhương pháp chia 29 c. Phương pháp thử d. Phương pháp lặp
C â u 152. Đâu là phát biểu đúng về thuật toán?
a. Thuật toán là dãy hữu hạn các thao tác và trình tự thực hiện các thao tác đó
b. Thuật toán là phương pháp tìm ra lời giải tốt nhất cho vấn đề đặt ra
c. Thuật toán là một tập các hướng dẫn dành cho máy tính để giải quyết một bài toán đặt ra
d. Thuật toán là phương pháp tìm ra lời giải cho vấn đề đặt ra
C â u 15 3 . Đâu không phải là đặc trưng của thuật toán? a. Tính hữu hạn b. Tính riêng biệt c. Tính xác định d. Tính hiệu quả
C â u 154. Đâu không phải là ngôn ngữ dùng để biểu diễn thuật toán? a. Ngôn ngữ lập trình
b. Ngôn ngữ tựa ngôn ngữ lập trình c. Ngôn ngữ cơ thể d. Sơ đồ khối
C â u 155. Đâu là cách biểu diễn thuật toán trực quan nhất? a. Sơ đồ khối b. Ngôn ngữ lập trình c. Mã giả d. Ngôn ngữ tự nhiên
C â u 156. Đâu là phát biểu đúng về thuật toán đệ quy?
a. Là thuật toán đánh dấu khả năng chứa lời giải đã thực hiện để khi thử khả
năng mới có thể thực hiện nhanh chóng hơn
b. Phần cơ sờ trong thuật toán đệ quy là những trường hợp cần thực hiện lại thuật toán
c. Thuật toán đệ quy thực hiện phân chia bài toán thành các bài toán con có thể giải được
d. Kết quả của thuật toán đệ quy phụ thuộc vào kết quả của bài toán cùng
loại có mức độ thấp hom 30
C â i 157. Cho biết giá trị của A, B khi kết thúc đoạn mã giả: A <- 0, B < - 1 if (A < B) then A = B B = A end if a. A = 0 và B = 1 b. A = 1 và B = 0 c. A = 1 và B = 1 d. A = 0 và B = 0
C at 158. Cho lưu đồ thuật toán
Ket luận nào sau đây là đúng?
a. a = 0, b= 1 0 ^ Phương trình vô nghiệm b. a = 10, b = 0 Phương trinh vô nghiệm c. a = 0, b = 10
Phương trình vô số nghiệm c. a = 10, b = 10
Phương trình vô số nghiệm 31
C â u 159. Với mối quan hệ nào giữa hai số nguyên dương a và b thì thuật toán
được thể hiện bằng lưu đồ bên dưới đi theo trật tự:
( l ) - > ( 2 ) - ( 3 ) - ( 5 ) - ( 2 ) - ( 3 ) - ( 4 ) - ( 2 ) - ( 6 ) a. a = 2b b. 2a = 3b c. 2a = b d. 3a = 2b
Câu 160. Cho biết giá trị của MAX khi kết thúc đoạn mã giả: A <- 3, B 1, c <- 5, MAX <- A if (MAX < B) then MAX <— B end if if (MAX < C) then MAX <- c end if a. 1 b. 5 c. 3 d. Không xác định
C â u 161. Cho biết giá trị của A, B khi kết thúc đoạn mã giả:
A 4— 0, B <— 1, c if (A < B) then 32 c = B B = A A = c end if a. A = 0 và B = 1 b. A = 1 và B = 0 c. A = 1 và B = 1 d. A = 0 và B = 0
C â u 162. Cho biết giá trị của A khi kết thúc đoạn mã giả: A < - 0 for i = 1 to 5 do A <- A+2 end do a. A = 9 b. A = 1 0 c. A = 18 d. A = 20
C â u 163. Cho biết giá trị của s khi kết thúc đoạn mã giả: i, s <— 0 for i = 1 to 9 do s <— s + i end do a. 0 b. 45 c. 55 d. 66
C â u 164. Cho biết giá trị cùa n khi kết thúc đoạn m ã^iả: X <- 1, n <— 1 while (X < 1000) do X <— 2X n <— n + 1 end while - r a r m i H 33 a. 4 b. 5 c. 6 d. 7
C â u 165. Cho biết giá trị của n khi kết thúc đoạn mã giả: X « - 1, n <— 1 while(x < 1000) do X < - 2*x n <— n+1 end while a. 9 b. 10 c. 11 d. 12
C â u 166. Cho biết giá trị của F(n) với n = 4 biết hàm F được tính đệ quy như sau: F(0) < - 1 if (n>0) then F(n) «— F(n-1) * n end if a. 0 b. 1 c. 24 d. 6
C â u 167. Hàm T(n) được định nghĩa đệ quy như sau: • T (0 )= 1 ;T (1 )= 1;
• T(n) = 2T(n-l) + 3T(n-2) với n>=2
Hãy cho biết giá trị của hàm T(4)? a. 7 b. 20 c. 45 d. 41
C â u 168. Cho biết giá trị của F(n) với n = 5, biết hàm F được tính đệ quy như sau F(0) 0, F(0) <- 1 if (n> l) then F(n) <— F(n-1) + F(n-2) end if 34 a. 3 b. 4 c. 5 d. 6
Câu 169. Phát biểu nào về thuật giải heuristic là đúng?
a. Là thuật giái giúp tìm ra lời giải tốt nhất dễ dàng và nhanh chóng hơn các phương pháp khác
b. Là sự mờ rộng tính xác định của thuật toán
c. Thường đưa ra lời giải gần đúng tốt cho các bài toán phức tạp khó tìm lời giải đúng
d. Là thuật giài luôn tìm ra được lời giải tốt cho các bài toán phức tạp. 35
PHẢN III. LẬP TRÌNH
Câu 170. Ngôn ngữ lập trình c được xếp vào loại ngôn ngữ lập trình nào? a. Ngôn ngữ máy b. Hợp ngữ c.
Ngôn ngữ lập trình bậc cao
d. Ngôn ngữ lập trình logic
C âu 171. Phát biểu nào dưới đây về ngôn ngữ lập trình c là đúng?
a. Trình biên dịch sẽ dịch ngôn ngữ c thành mã máy b. c là hợp ngữ
c. Máy tính có thể hiểu trực tiếp được ngôn ngữ c
d. Ngôn ngữ c hiện nay chi tồn tại với một phiên bản duy nhất
C âu 172. Trong những thành phần sau, chi ra một thành phần không thuộc dãy? a. Hợp ngữ b. Ngôn ngữ bậc cao c. Thông dịch d. Ngôn ngữ máy
C âu 173. Đâu là biểu diễn hằng số ở hệ cơ số 8 trong c ? a. 2006 b. 0x2006 c. 0X2006 d. 02006
C âu 174. Chọn phát biểu đúng nhất về định danh trong c ?
a. Định danh là dãy ký tự chữ cái, chữ số hoặc dấu gạch dưới
b. Định danh là dãy ký tự chữ cái hoặc chữ số
c. Định danh là dãy ký tự chữ cái, chữ số hoặc dấu gạch dưới trong đó ký tự
đầu tiên không phài là số
d. Định danh là dãy ký tự chữ số hoặc dấu gạch dưới
Câu 175. Trong ngôn ngữ lập trình c , tên biến nào sau đây không được chấp ruhận? a. KetQua b. ket qua c. Ket Qua d. ketqua 36
C âu 176. Trong ngôn ngữ lập trình c , tên biến nào sau đây được chấp nhận? a. Bien#2 c. ISoNguyen b. So Nguyen d. So_Nguyen
C âu 177. Đâu là chú thích trong c ? a. (* dòng chú thích *) c. { dòng chú thích } b. // dòng chú thích
d. <-- dòng chú thích -->
Câu 178. Chọn cách khai báo đúng tệp tiêu đề trong lập trình c ?
a. #include "tên_tệp_tiêu_đề"
c. #include tên_tệp_tiêu_đề b. include d. #include ;
C âu 179. Trong cấu trúc cơ bản của chương trình c , thành phần nào bắt buộc phải có?
a. Phần khai báo các tệp tiêu đề
c. Phần khai báo các hàm nguyên mẫu
b. Định nghĩa kiểu dữ liệu mới
d. Phần định nghĩa hàm main()
C âu 180. Giả thiết bộ chưcmg trình Turbo c 3.0 được cài đặt trên 0 đĩa D của một
máy tính. Hãy chỉ ra tên đầy đù của chương trình dịch Tc.exe a. D:\TC\BIN\Tc.exe c. Tc.exe b. D:\TC\BIN\Tc d. \TC\BIN\Tc
Câu 181. Khẳng định nào sau đây về ngôn ngữ lập trình là đúng?
a. Máy tính có thể chạy ngay một chương trình viết bằng ngôn ngữ assembly
b. Đe chạy một chương trình viết bằng ngôn ngữ máy thì trước hết ta phải bicn địch
c. Đe chạy được một chương trinh viết bằng ngôn ngữ lập trình bậc cao,
trước hết cần biên dịch hoặc thông dịch chương trình
d. Tất cả các khẳng định trên là đúng
Câu 182. Ngôn ngữ lập trình dùng để a. Viết chương trình b. Soạn thào văn bản c. Tính toán khoa học
d. Dịch chương trình nguồn sang chương trình đích 37
Câu 183. Việc biên dịch một chương trình viết bằng một ngôn ngữ lập trình bậc
cao sang chương trình dưới dạng ngôn ngữ máy được thực hiện bởi: a. Chương trình dịch c. Hệ điều hành
b. Chương trình soạn thảo d. Người lập trình
Câu 184. Lựa chọn nào dưới đây chì ra thứ tự tàng của miền giá trị các kiểu dữ liệu? a. int, float, double, long c. int, float, long, double b. int, long, float, double d. int, long, double, float
Câu 185. Trong những định danh sau đây, đâu là định danh hợp lệ? a. char b. 1 First c. int d. intl
C âu 186. Trong ngôn ngữ lập trình c , tên biến nào sau đây là được chấp nhận? a. While b. if c. for
d. Không có câu trả lời nào đúng
C âu 187. Trong ngôn ngữ lập trình c , khai báo nào sau đây là đúng cú pháp? a. float int n; b. unsigned int n; c. unsigned float n = 0; d. n : int;
C âu 188. Trong ngôn ngữ lập trình c , cách khai báo biến nào sau đây là sai cú pháp? a. int n = 0; b. unsigned int n = 0; c. int n:=0; d. unsigned n = 0;
C âu 189. Trong ngôn ngữ lập trình c , câu lệnh nào dưới đây là khai báo đúng cho một hằng ký tự? a. #define HangSo A ; c. const char HangSo A ; b. #defme HangSo 'A '; d. const char HangSo = 'A ';
C âu 190. Trong ngôn ngữ lập trình c , câu lệnh nào dưới đây là khai báo đúng cho một hằng ký tự? a. #defíne HangSo A b. #define HangSo 'A' c. const char HangSo A ; d. const char HangSo = A ; 38
Câu 191. Trong ngôn ngữ lập trình c , câu lệnh nào dưới đây là khai báo đúng cho một hằng số thực? a. #define HangSo 2.78 c. const float HangSo 2.78 ; b. #definc HangSo = 2.78 d. const HangSo = 2.78 ;
C âu 192. Trong ngôn ngữ lập trình c , câu lệnh nào dưới đây là khai báo đúng cho một hằng số thực? a. #define float HangSo 2.78 c. const float HangSo = 2.78 ; b. #dcfine HangSo = 2.78 d. const HangSo = 2.78 ;
Câu 193. Trong các khai báo sau, khai báo nào không có lỗi? a. tfdefine MAX 10; b. #dcfine MAX=10 c.const int MAX 10; d. #define MAX 10
Câu 194. Dòng khai báo nào sai? 1: #define PI 3.1415; 2: const float g 9.81; 3: int i=0; 4: intj= 'a'; a. Dòng 2, 3, 4 b. Dòng 1,2 c. Dòng 1 ,2 ,3 d. Dòng 1 ,2 ,4
Câu 195. Trong ngôn ngữ lập trình c , với 2 biến thực A, B, biểu thức nào sau đây
không được chấp nhận? a. A % B b. A / D c. A -H- d. A + B
Zâu 196. Ket quả của phép chia 3.0/2 trong c bằng? a. 1.5 b. 2 c. 1 d. 3
râu 197. Trong ngôn ngữ c , cho biết kết quả sau khi tính toán biểu thức 1.5*(ll/3) a. 5.5 b. 4.5 c. 5.4999 d. Không thu được gì 39
Câu 198. Toán tử nào sau đây không phải là toán tử quan hệ? a. = b. < c. > d. >=
C âu 199. Toán tử = = có nghĩa là: a. Phép so sánh bằng b. Phép so sánh khác c. Phép gán
d. Các phương án trên đều sai
C âu 200. Trong ngôn ngữ lập trình c, khai báo a, b là hai biến kiểu số nguyên
Câu lệnh gán nào là đúng cú pháp? a. a = b; b. a <— b; c. a:=b;
đ. Cả 3 đáp án trên đều đúng
C âu 201. Khái niệm nào đề cập đến sự kết hợp của các toán tử và toán hạng? a.Thứ tự kết hợp b. Biến c. Độ ưu tiên d. Biểu thức
C âu 202. Cho khai báo int a, b;. Chi ra biểu thức không hợp lệ: a. a -= b b. a = = b c. a - b = 0 d. a = b
C âu 203. Cho biết giá trị của f = ( ( a = b ) I (b>4)) với khai báo sau:
unsigned int a = 7, b = 2, c = 5, d = 6; a. 1 c. Biểu thức sai b 0
d. Không trả về kết quả
C âu 204. Cho biết giá trị của biến a sau đoạn chương trình: in ta; a. 0 c. 1 d. 7
C âu 205. Kết quả cùa biểu thức 7+5& & 4<=l+3-2/3||5<2+l bằng: a. 0
c. Không có kết quả nào ờ trên b. 1
d. Biểu thức viết sai, không tính được kết qu; 40
C âu 206. Cho biết giá trị của biến a sau đoạn chương trình sau: int a= l,b = 2,c= 3; ■ a={b>c)?++b:-H-c; a. a= l c. a=2 b. a=3 d. a=4
C âu 207. Cho biết giá trị của biến a sau đoạn chương trình sau:
int a-,b = 0,c = 5,d = 6,e = 7,f = 8; a = b?c:d?e:f; a. a=5 b. a=7 c. a=6 d. a=8
C âu 208. Chi ra biểu thức kiểm tra ký tụ ch là 'a' hoặc 'b1: a. ch = = 'a'11'b' c. ch = = 'a'l'b' b. (ch = = 'a')||(ch = = 'b') d. (ch = = 'a')|(ch = ='b’)
C âu 209. Nếu X là biến nguyên thì sau khi thực hiện câu lệnh gán X = 13.6, giá trị cùa X là: a. 13 b. 14 c. 13.6
d. Báo lỗi, không có câu trả lời nào đúng
C âu 210. Giá trị cùa d sau khi thực hiện các lệnh là? a. 3.5 b.3 c. 4 d. 0
Câu 211. Cho biéi giá trị cùa các bién a, b, c sau khi thực hiộn đoạn chương trình sau: int a=7, b, c; b=a++ + 1; c= - -a - b++; a. a= 7, b= 9, c= -1 c. a= 7, b= 8, c= 0 b. a= 8, b= 8, c = - l d. a= 7, b= 10, c= -2
Câu 212. Cho biết giá trị của các biến a, b, c sau khi thực hiện đoạn chương trình sau: int a=5,b,c; b=a++; c= a++ + -H-b —1; 41 a. a=7, b=6, c=10 b. a=7, b=7, C=11 c. a=7, b=6, C=11 d. a=7, b=7, c=10
Câu 213. Biết a, b, c, d là các biến nguyên với giá trị hiện đang lưu trữ là a=8, b=9,
c=6. Hãy cho biết giá trị biến d sau khi thưc hiện lệnh gán d= a/b*c+c++; a. 5 b. 6 c. 1 1.3333 d. 12.3333
Câu 214. Hãy cho biết sau đoạn lệnh sau biến a nhận giá trị bàng bao nhiêu? c. a = 0 d. a = 200
Câu 215. Giá trị của b sau khi thực hiện đoạn mã sau? int a= -l,b = l; b += a?2:l; n $ a. 2 b. 3 c. 4 d. 1
Câu 216. Trong ngôn ngữ lập trình c , khi đoạn chương trình sau được thực hiện,
các biến A, B, c có giá trị là bao nhiêu? int A =4, B = 3, C; c = a. A = 3, B = 2, c = 4 b. A = 3, B = 3, c = 3
c. A = 3 , B = 3, c = 4 d. A = 3, B /= 2 ,C = 3
C âu 217. Cho khai báo int a, b, c; Biểu thức nào sau đây cho phép xác định giá trị
c là giá trị nhò nhất trong hai số a và b? a. c = (a>b)?a:b c. c = (a!=b)?a:b b. c = (ad. c = (a|b)?a:b 42
C âu 218. Sau khi thực hiện các câu lệnh sau một cách tuần tự int a=5,c=2 ; fIllo O a â ti b D = — l 1 l1;, ìnt d 3; d - (int)b/c%5;
giá trị của biến d sẽ bằng? a. 0 b. 3 c. 5 d. 1
Câu 219. Đe sử dụng hàm printf và scanf, cần khai báo tệp tiêu đề nào? a. conio.h b. stdio.h c. input.h d. output.h
C âu 220. Để sử dụng hàm getch(), cần khai báo tệp tiêu đề nào? a. conio.h b. stdio.h c. input.h d. output.h
C âu 221. Định dạng nào cho phép hiển thị tham số dưới dạng số nguyên trong hệ thập phân? a.%0 b. %d c. %c d. %s
Câu 222. Trong ngôn ngữ lập trình c , cho biết kết quả hiển thị trên màn hình lchi
đoạn chương trình sau đuợc thực hiện? int n = 10; printf ("n = %d",n); a. n = %d,n b. n = %d c .n ~ % d ,1 0 d. n — 10
C âu 223. Cho biết kết quả trên màn hình của lệnh sau (với □ là ký tự space): prìntf("% 5.2f", 3.454); a. o3.45 b. d3.5 c. DD3.45 d. 3.454
C âu 224. Giả thiết □ là ký tự khoảng trắng. X là biến kiểu float và được khởi tạo
giá trị 12.345. Hãy cho biết câu lệnh nào đưa ra màn hình giá trị n n i2 .3 5 ? a. printf("% 7.2f\ X) b. printf(”%7.2e", X) c. printf("%6.2f", X) d. printf("% 8.2f', X) 43
C âu 225. Cho biết kết quả của đoạn chương trình float f = 1.234; ■ - V..-. printf ("f = % 3.2f',f); a . f = 1.234 b. f = 1.2 c. f = 1.23 d. f = .23
C âu 226. Mệnh đề nào sau đây là đúng?
a. Khi đọc xâu ký tự, hàm scanf() và gets() cho phép nhập các ký tự dấu cách, dấu tab
b. Khi đọc xâu ký tự, hàm gets() cho phép nhập các ký tự dấu cách, dấu tab,
còn hàm scanf() sẽ hiểu dấu cách, dấu tab đầu tiên báo hiệu kết thúc nhập xâu ký tự
c. Khi đọc xâu ký tự, hàm scanf 0 cho phép nhập các ký tự dấu cách, dấu
tab, còn hàm gets()sỗ hiểu dấu cách, dấu tab đầu tiên báo hiệu kết thúc nhập xâu ký tự
d. Khi đọc xâu ký tự, hàm scanf(), gets() hiểu ký tự dấu cách, dấu tab hay
xuống dòng là kết thúc nhập xâu ký tự
Câu 227. Cho biết kết quả in ra của câu lệnh: printf("%c %d", 65, 6 6 ); a. A B b. 65 B c. A 66 d. 65 66
C âu 228. Lệnh printf("%d %d", 'A', 'B'); sẽ in ra: a. 65 66 b. a b c. 065 066 d. A B
C âu 229. Trong ngôn ngữ lập trình c , cho biết kết quà hiển thị trên màn hình khi
đoạn chương trình sau được thực hiện? float f = 1.0; a . f = 1.000 b. f = 0.333 c. f = 0.000 d. "f = % .3 f',f 44
Câu 230. Trong ngôn ngữ lập trình c , cho biết kết quả hiển thị trên màn hình khi
câu lệnh sau được thực hiện? p rin tf C'l\n2"); a. 12 b. I\n2 c. 1 2 d. 21
Câu 231. Cho một đoạn chương trình viết bằng ngôn ngữ lập trinh c như sau: const int i=0; ■ ' ' - • ' printf("%d\n", i++);
Hãy chi ra lỗi của đoạn chương trình trên (nếu có)? a. Khai báo i sai cú pháp
b. Toán từ ++ thiếu một toán hạng
c. Toán tử ++ áp dụng lên một hằng số
d. Đoạn chương trình trên không có lỗi cú pháp
Câu 232. Lệnh đúng để in ra màn hình hai số thực X , y theo định dạng :
Dòng 1: In giá trị X , căn lề trái, chiếm 10 vị trí trong đó có 2 vị trí cho phần thập phân
Dòng 2: In giá trị y, căn lề phải, chiếm 6 vị trí trong đó có 3 vị tri cho phẩn thập phân
a. p rin tf( " % - 1 0 .2 f \n % 6 .3 f" , X, y);
b. printf("% -10.3f \n%6.4f", X, y);
c. printf("% 10.2f ", x) ;printf("%-6.3f ", y ) ;
d. printf("% 10.2f", x) ;printf("\n%-6.3f ", y ) ;
Câu 233. Cặp dấu hiệu nào để đánh dấu phạm vi một khối lệnh? a. { } c. BEGIN và END b. -> và d. ( và ) 45
Câu 234. Tìm kết quả đúng của chương trình #include void main() { int a, b ,c; a= l 3/2; b=++a+6; c=(b>12)?(b+7):(a*a); Ị a. 6 12 20 c. 7 13 20 b. 6 13 20 d. 7 13 49
Câu 235. Giá trị của a sau khi thực hiện các lệnh sau: int a=5; { int a = 7 ;} a=a+4; a. 11 c. 5 b. 9 d.Lỗi khai báo biến a
C âu 236. Trong ngôn ngữ lập trình c , phát biểu nào sau đây là sai đối với cấu trúc if...else?
a. Tất cả các câu lệnh sử dụng cấu trúc if...else đều có thể thay thế bằng biểu thức điều kiện? :
b. Các cấu trúc if...else có thể lồng nhau
c. Sau biểu thức điều kiện đi cùng với từ khóa if cho phép sử dụng khối lệnh
d. Sau từ khóa else cho phép sử dụng khối lệnh
Câu 237. Câu lệnh nào duới đây kiểm tra xem biến ký tự ch có phải là chữ cái không?
a. if(('A' <= ch) && (ch <= 'z'))
b. if( (('A' <= ch) && (ch <= 'Z')) && (('a' <= ch) && (ch <= 'z')))
c. if( (('A' <= ch) I (ch <= 'Z'» && (('a' <= ch) I (ch <= 'z')))
d. if( (('A' <= ch) && (ch <= 'Z')) I (('a' <= ch) && (ch <= 'z'))) 46
Câu 238. Với a=5, b =5, c=4. Kết quả hiển thị của đoạn chương trình sau như thế nào? m if(a>b) printf("2");
else printfì("3"); printf("5"); a. 35 b. 5 c. 3 d. 2
C âu 239. Trong ngôn ngữ lập trình c, sau khi đoạn chương trình sau được thực
hiện thì 2 biến A và B có giá trị bao nhiêu? int A = 0, B = 1; if (AA = B; B = A; a. A = 0 và B = 1 b. A = 1 và B = 0 c. A = 1 và B = 1 d. A = 0 và B = 0
C âu 240. Điền vào chỗ ... để hoàn thiện chương trình sau: #include void main() { int a, b, max;
printf("Nhap gia tri a va b : "); scanf("%d%d", &a, &b); max = a; else max = b;
printf("So lon nhat trong 2 so %d va %d la %d", a, b, max); a. a>b b. ac. a=b d. a!=b 47
Câu 241. Trong ngôn ngữ lập trình c , sau khi đoạn chương trình sau được thực
hiện thì 2 biến A và B mang giá trị bao nhiêu? int A = 0, B = 1,C; i ; if(A c = B; B = A; A = c } ' a. A = 0 và B = 1 c. A = 1 và B = 1 b. A = 1 và B = 0 d. A = 0 và B = 0
Câu 242. Cho một đoạn chương trình viết bằng ngôn ngữ lập trình c như sau: int a = 5; switch(a){
case 1: printfì("First"); case 2: printf("Second");
case 3 + 2: printf("Third"); case 5: printf("Final");break; }
Hãy chỉ ra lỗi cú pháp của đoạn chương trình trên (nếu có)?
a. Không có câu lệnh break cuối mỗi nhãn case
b. Nhãn case không được phép sử dụng biểu thức 3+2
c. Hai nhãn case có cùng giá trị là 5
d. Đoạn chương trình trên không có lỗi cú pháp
C âu 243. Trong ngôn ngữ lập trình c , sau khi đoạn chương trình sau được thự(
hiện thì biến c mang giá trị bao nhiêu? int A = 10, B = 20, c=l; switch (A>B) { case 0 : c = A ; break; ® case 1 : c = B ; break; } a. c = 0 c. c = 1 b. c = 20 d. c = 10 48
Câu 244. Cho một đoạn chương trình viết bằng ngôn ngữ lập trình c như sau: int p = 10; switch(P){ case 10: printfl["Case 1");
case 20: printf("Case 2");break;
case P: printfì("Case 2");break; }
Hãy chi ra lỗi cú pháp của đoạn chương trình trên (nếu có)?
a. Không có câu lệnh break cuối mỗi nhãn case b. Không có nhãn default
c. Nhãn case p sừ dụng một giá tri không phải là hằng số
d. Đoạn chương trình trên không có lỗi cú pháp
Câu 245. Cho đoạn chương trinh sau, hỏi kết quả hiện thí ra màn hình là như thế nào? int a =10; a = a/2; switch(a){ case 3: a+=2; case 4: a++;break; default: a—; } printf("°/od", a); a. 5 b 4 c. 6 d.7
Câu 246. Trong ngôn ngữ lập trình c, sau khi đoạn chương trình sau được thực
hiện thì biến A mang giá trị bao nhiêu? int i, A = 0; for (i=0; i<10; i+=2) { A = A+2; } a. A = 9 c. A = 1 8 d. A = 20 4-ỈÌ7THDC 49
C âu 247. Cho đoạn chương trình sau, tìm giá trị của sum: int sum, i;
for ( i = 0; i+1 <= 10 ; i +=2) i f ( i = 0) sum = i; else sum += i; a. 12 c. 30 b. 20
d. Lỗi cú pháp vì vòng lặp for thiếu dấu ngoặc
C âu 248. Cho biết giá trị của biến s khi thực hiện đoạn chương trình sau: int i, S;
for(i =1; i < 10; i ++) s += i; a. 0 c. 55 b. 45 d. Không xác định
C âu 249. Cho biết kết quả hiển thị trên màn hình? int a;
for (a = 65; a < 69; a++) printf("%c ", a); a. 65 66 67 68 b. A B c D c. a a a a d. a b c d
C âu 250. Cho biết kết quả hiển thị trên màn hình?
int a; fo r(a= l; a<=10; a-H-) {
printf("%i ”,a); if(a%3) a= a+2; } a. 1 4 7 c. 1 4 7 10 b. 1 3 5 7 9 d. 1 4 8
C âu 251. Đoạn chương trình sau sẽ in những gì ra màn hình? int i=0; char c - 'c'; for(i=0; i<6; i=i+2){
c=c+i; printf ("%c ”, c); ■' • CjK,-te' if, V ' r' { u'J'. 5 v •' ? '■ W-T,v • *: 50 a. c e i c. e i o b. c e i o
d. Tat cả đáp án đều sai
C âu 252. Khi thực hiện chương trình #include void main(){ intx; for(x=5;x>0;x~) printf ("%2d ",x—); : ' ■ >
Ket quả nhận được trên màn hình là a. 5 3 1 C.4 3 2 1 0 b. 5 4 3 2 1 d. 5 4 3 2 1 0
C âu 253. Cho đoạn chương trình sau, sau khi thực hiện xong kết quả hiển thị ra
màn hình là như thế nào? int i; for(i =0 ; i<5 ; i++); printf("%d ", i); a. 0 b. 0 1 2 3 c. 5 d. 0 1 2 3 4
Câu 254. Cho biết kết quả thực hiện đoạn chương trình sau? #include void mainO { r i int i=0; i f for( i<=5; i++) printf("%đ", i); } a. 0 1 2 3 4 5 b. 5 c. 0 1 2 3 4
d. Lỗi cú pháp vòng lặp for 51
C âu 255. Phát biểu nào sau đây là sai đối với vòng lặp for?
a. Vòng lặp for thực hiện nhanh hơn vòng lặp while
b. Mọi đoạn lệnh sử dụng vòng lặp for có thể thay thế bằng vòng lặp while và ngược lại
c. for ( ; ; ) ; là một vòng lặp vô tận
d. Các câu lệnh trong vòng lặp for có thể không được thực hiện lần nào.
C âu 256. Mệnh đề nào dưới đây là đúng?
a. Lệnh đ o ...while kiểm tra điều kiện vòng lặp trước rồi mới thực biện lệnh
b. Lệnh while thực hiện lệnh trước rồi mới kiểm tra điều kiện vòng lặp
c. Cấu trúc while và do..while được dùng để thực hiện lặp đi lặp lại một công
việc với số lần lặp xác định
d. Lệnh while kiểm tra điều kiện vòng lặp trước rồi mới thực hiện lệnh
C âu 257. Trong ngôn ngữ lập trình c, khi đoạn chương trình sau được thực hiện,
kết quả hiển thị trên màn hình là gì? i n t i - 5; nrl while(i—: a. 5 ,4 ,3 , 2, 1 ,0 c. 4, 3, 2, 1,0 b. 5, 4, 3, 2, 1 ,0 ,-1 d. 4 ,3 ,2 , 1, 0,-1
C âu 258. Trong 2 đoạn chưcmg trình sau, đoạn nào cho kết quả i = 1 2 ? (A)
inti= 6;do i++; while(i<12); (B)
inti=6; while (i<12) i++; a. B b. A c. 0 2 4 6 8 d. 0 2 4 6 8 10 52
Câu 260. Trong ngôn ngữ lập trình c , cho biết kết quả hiển thị trên màn hình sau
khi đoạn chương trình sau được thực hiện? int i = 0; while (i<10) { i = i+2; printf("%d ",i); } a. 2 4 6 8 b. 0 2 4 6 8 c. 2 4 6 8 10 d. 0 2 4 6 8 10
Câu 261. Hãy cho biết sau đoạn chương trình sau kết quả in ra màn hình như thế nào? void main(){ in ta = l,n = 0 ; while (n<10) {a++;} printf("a = %d", a); } a. a = 1
b. Chương trình lặp vô hạn và không dừng c. a = 10 d. a = a
Câu 262. Trong c , đoạn mã sau hiển thị gì trên màn hình? int i=0;
whilc(-H-i+l<=5) printfr% d",i); a. 12345 c. 123456 b. 0 1 2 3 4 d. 1234
C âu 263. Trong ngôn ngữ lập trình c , khi đoạn chương trình sau được thực hiện,
kết quả hiển thị trên màn hình là gì? int i = 0; while(++i <= 5) printf("%d,", i); a. 0, 1, 2, 3 ,4 , 5, c. 1,2, 3 , 4 , 5 b. 1,2, 3 ,4 , 5, d. 1,2, 3, 4, 5, 6 53
C âu 264. Cho biết kết quả thực hiện đoạn chương trình sau? int s =0, d = 0; while (d < 10){ s + = d ; d + = 2; } ' - ” ' ’ 1 printf("% d", S); a. 0 b. 10 c. 20 d. 45
Câu 265. Viết chương trình yêu cầu người dùng nhập vào một số n (0< n <100) .
Nếu người dùng nhập sai thì đưa ra thông báo và yêu cầu nhập lại cho đến khi nào đúng, int n;
printf("Nhap gia tri n thoa man 0<=n<=lỌ 0:"); scanf("%d", &n); {
printf{"Gia tri ban nhap khong dung, yeu cau nhap lai"); scanfì("%d", &n);
c ầ n điền đáp án nào vào dấu (........ ) để chương trình thực hiện như yêu cầu?
a. if ((n > 0) && (n < 100))
c. while (n <0 I n > 100)
b. while ((n<0) && (n>100)) d. if (n<0 I n >100)
Câu 266. Viết chương trình yêu cầu người dùng nhập vào một số n (0< n <100) .
Nếu người dùng nhập sai thì đưa ra thông báo và yêu cầu nhập lại cho đến khi nào đúng, in tn ; do{
printf("Nhap gia tri n thoa man 0<=n<=100: "); scanf("%d", &n); i 54
cầ n điền đáp án nào vào dấu ... để chương trinh thực hiện như yêu cầu?
a. while (n>=0 I n <=100);
b. while (n>=0 I n <=100)
c. while (n <0 I n >100)
d. while (n<0 I n > 100);
C âu 267. Cho đoạn chương trình nhập vào từ bàn phím một số nguyên lớn hon
hoặc bằng 0, nếu nhập sai yêu cầu nhập lại. Chọn câu trả lời đúng cho biểu thức A và B int n; do { scanf("%d",&n);
if (A) printf("Nhap sai, nhap lai\n"); } while (B); a. A: n<0 B: n<0 b. A: n>=0 B: n>=0 c. A: n<0 B: n>=0 d. A: n>=0 B:n<0
Câu 268. Trong ngôn ngừ lập trình c , khi đoạn chương trinh sau được thực hiện,
biến A có giá trị bao nhiêu? int i, A = 0;
for (i=0; i<1000; i+=13) { continue; A = A+ 1; } a. A = 0 b. A = 76 c. A =77 d. A = 1000
C âu 269. Trong ngôn ngữ lập trình c , khi đoạn chương trình sau được thực hiện,
biến A mang giá trị bao nhiêu? int i, A = 0; for (i=0; i<100;i+=13) { A = A + 100; break; } a. 0 b. 100 c. 760 d. 10000
Câu 270. Cho biết kết quà hiển thị trên màn hình? int in t i i = 'a' a ;, while ( i< = V ) 55 if ( i = 'a ') continue; printfỊ"%c", i); i+ =l;
a. Chương trình bị lặp vô hạn
c. In ra màn hình từ b đến z
b. In ra màn hình từ a đến z
d. Các phương án khác đều sai
C âu 271. Trong ngôn ngữ lập trình c, cho biết kết quả hiển thị trên màn hình sau
khi đoạn chương trình sau được thực hiện? ■ int i = Oị • V while (i < 10) I i = i+2; continue; printf ("%đ ",i); a. %d %d %d %d %d c. 0 2 4 6 8 b. i i i i i
d. Không có kết quả nào được đưa ra màn hình
C âu 272. Cho biết kết quà hiện trên màn hình cùa đoạn chương trình sau? int i= l; w hile(l) { printf("°/od",i); i++; if(i%3==0) continue; printf(7M ); if(i% 5 = 0 ) break; a. 1/23/4/ c. 1/2/3/4 b. 1/23/4 d. Chương trình có lỗi 56
C âu 273. Cho biết kết quả hiển thị trên màn hình của đoạn chương trình sau? int a, b = 0; for(a = 1; a < 10; a++){ if(a%2 — 0) continue; b = b + a; printf("%5d",b); } a. 1 4 9 16 25 c. 1 4 10 16 24 b. 2 6 10 16 24 d. 1 6 10 16 25
C âu 274. Chi ra kết quả trên màn hình? int a, b = l; for(a=l;a<10;a++){ ifl[a% 2= 0) continue; b+=a; printfC%d ", b); } a. 1 4 9 16 25 c. 2 4 10 16 24 b. 2 5 10 17 26 d. 2 6 10 16 25
C âu 275. Trong ngôn ngữ lập trình c , cho biết kết quả hiển thị trên màn hình khi
đoạn chương trình sau được thực hiện? int i = 0; while (i<10) { i++; if (i%2 = 0) break; printf("%d ",i); } a. 0 2 4 6 8 b. 1 c. 1 3 5 7 9 d. 0 1 2 3 4 5 6 7 8 9 57
C âu 276. Cho biết kết quả hiển thị ra màn hình của đoạn mã dưới đây? int n = 10; while (1){ n~; if (n%3 !=0) continue; printf("% d", n*n); if (n<3) break; } a. 81 36 9 b. 100 64 49 25 16 4 c. 100 64 49 25 16 4 1 d. 81 36 9 0
C âu 277. Trong ngôn ngữ lập trình c , cho biết kết quả hiển thị trên màn hình sau
khi đoạn chương trình sau được thực hiện? int i = 0; while (i<10) {
i++; if (i%2 = 0) continue; printf("%d ”,i); } a. %d %d %d %d %d b. 0 1 2 3 4 5 6 7 8 9 c. 0 2 4 6 8 d. 1 3 5 7 9
C âu 278. Trong ngôn ngữ lập trình c , cho biết kết quả hiển thị trên màn hình sau
khi đ o ạn c h ư ơ n g trinh sau đ ư ạ c th ự c hiện? int i = 0; while (i<10){ if (i%2 = 0) continue; printf("%d ",i); i++; } 58 a. 0 2 4 6 8 b. 0 1 2 3 4 5 6 7 8 9 c. 1 3 5 7 9
d. Vòng lặp vô tận, không có kết quả nào được hiển thị trên màn hình
C âu 279. Trong ngôn ngữ lập trình c, cho biết kết quả hiển thị trẽn màn hình sau
khi đoạn chương trình sau được thực hiện? int i = 0; while (i<10){ i++; if (i%2 = 0) break; printf("%d ",i); } a. 0 1 2 3 4 5 6 7 8 9 c. 1 3 5 7 9 b. 0 2 4 6 8 d. 1
Câu 280. Khi thực hiện đoạn chuơng trình int i; for(i=10; i > 1; ~i){ if (i%2) continue; ■ printf ("%3d",i); if (i = 0 ) break; }
Ket quà nhận được trên màn hình là: a. 10 8 6 4 25 c. 10 8 6 4 2 b. 2 6 10 16 24 d. 16 6 8 10 25
râ u 281. Cho một đoạn chương trình viết bằng ngôn ngữ lập trình c như sau' char ch; - 0 ; w hile(x<=255){ 59
Phát biểu nào sau đây là đúng về đoạn chương trình trên?
a. Đoạn chương trình trên lặp vô tận
b. Đoạn chương trình trên in ra các ký tự và mã ASCII của chúng
c. Đoạn chương trình trên có lỗi cú pháp không khai báo X
d. Đoạn chương trình trên có lỗi cú pháp sử dụng cấu trúc while
C âu 282. Trong c, nếu một màng có 25 phần tử, miền của chi số sẽ là: a. Từ 1 đến 25 c. Từ 0 đến 24 b. T ừ -12 đ ế n +12 d . T ừ 0 đ ế n 2 5
C âu 283. Phần khai báo biến sau trong c chiếm bao nhiêu byte trong bộ nhớ? intM l[100]; float M2[ 100] a. 600 c. 200 d. 400
Câu 284. Trong ngôn ngữ lập trình c , câu lệnh nào dưới đây khai báo đúng một hàng là màng số nguyên?
a. #define Aư[5] {1,2, 3 ,4 , 5} b. #defme Arr {1,2, 3 ,4 , 5}
c. const int Arr[5] {1,2, 3 ,4 , 5}; d. const int Arr[5] = {1,2,3};
C âu 285. Trong ngôn ngữ lập trình c , câu lệnh khai báo màng nào sau đây là đúng cú pháp?
a. int A[10] := [0, 1, 2, 3 ,4 , 5, 6 ,7 , 8, 9];
b. int A[10] = [0, 1, 2, 3 ,4 , 5, 6, 7, 8, 9];
c. int A[10] [0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ];
d. int A[10] = {0, 1, 2, 3 ,4 , 5, 6 ,7 , 8, 9};
C âu 286. Cho khai báo sau int B[4]={1, 2, 3,4}. Giá trị của B[4] là? a. 2 b. 4 c. 3 d. Không xác định 60
C âu 287. Cho biết kết quả hiền thị ra màn hình sau khi thực hiện chương trinh sau?
int i, k=5, a[10]={2,4, 5 ,4 , 5 ,6 , 3, 5 ,1 0 , 5}; for( i=0;i<10;i++){ if(a [i]= k ) continue; printf("%2d",i); } a. 2 4 4 6 3 10 b. 0 1 3 5 6 8 c. 2 4 7 10 d. 2 4 5 4 5 7 3 5 10
Câu 288. Cho biết kết quà hiển thị ra màn hình sau khi thực hiện chương trình sau?
int k=5, a[10]={2, 4, 5 ,4 , 5 ,6 ,3 , 5, 10, 5}; for(int i=0;i<10;i-H-){ ifỊa [i]= k ) continue; printf("%2d",a[i]); I a. 2 4 4 6 3 10 b. 0 1 3 5 6 8 c. 2 4 7 10 d. 2 4 5 4 5 7 3 5 10
Câu 289. Cho biết kết quả hiển thị ra màn hình?
int i,k=3, a[]={2, 4, 5 ,4 , 5, 6, 3, 5, 9, 5}; for(i=0;i< 10;i++) { if(a[i]% k = 0 ) continue; printfT % 2d'\i); i W ỉW ? i: a. 2 4 5 4 5 b.o 1 2 3 4 7 9 c. 2 4 5 4 5 5 5 d. 6 3 9
Câu 290. Cho biết kết quả hiển thị ra màn hình?
irit i,k=3, a []= {2 ,4, 5 ,4 , 5, 6, 3, 5 ,9 , 5}; for( i=0;i<10;i-H-){ 61 if(a[i]% printfl"' } a. 2 4 5 4 5 b. 0 1 2 3 4 7 9 d. 6 3 9
Câu 291. Cần nhập vào từ bàn phím n số nguyên với n cũng được nhập từ bàn
phím (n là số dương nhò hơn hoặc bằng 100). Khai báo nào đúng nhất cho
mảng A để lưu trữ n số nguyên này? a. int A[int n]; b. int A[n]; c. intA []={ 1,2,3}; d. int A[100];
C âu 292. Giả sử a, b là hai biến mảng kiểu int có cùng số lượng phần tử. Đe gán
các giá trị của mảng b vào mảng a, cách nào sau đây là đúng? a. Dùng lệnh gán a = b ;
b. Dùng cấu trúc lặp để gán từng phần tử của b cho a
c. Cả hai đáp án a, b đều sai
d. Cả hai đáp án a, b đều đúng
C âu 293. Cho biết giá trị của biến a sau khi thực hiện đoạn mã c duới đây? int a; in tx [5 ]= { l,9 , 6, 3,4}; a= x[2]/x[4]; a. 1.5 b. 3 c. 1 d. 0
C âu 294. Trong ngôn ngữ lập trình c , cho biết sau khi đoạn chương trình sau được
thực hiện thì phần tử A[0] của mảng mang giá trị bao nhiêu?
int A[10] = {-1, 5, -2, 7 ,3 , -1 0 ,9 ,0 , -1, 7}; int i j,k ; fo r(i= l; i<10; i++) for G = 9;j> = i;j~ ) if(A [j]< A [j-l]){ 62 k - A O ] ; A [j-l] = A[j]; A |j] = k ; } a . -10 b . -1 c. 7 d. 9
C âu 295. Trong ngôn ngữ lập trình c, cho biết sau khi đoạn chương trình sau được
thực hiện thì phần ni A[9] của mảng mang giá trị bao nhiêu? in tA [1 0 J=
7, 3 ,- 1 0 , 9 , 0 , - 1 , 7}; int ij,k ; for(i= l; i<10; i++) fo r(j= 9 ;j> = i;j" ) if(A [ j] < A [ j- l] ) { k = A[j]; A[j-1Ị = A[j]; A[j] = k; } a. 7 b .- l c . -10 d. 9
C âu 296. Giá trị của biến m sau khi thực hiện đoạn chirrmg trình sail là?
float A [4 ] ~ { 1 .1,1.2,1.3,1.4}; int i; float m=0; for(i=0;i<=3;i++) ■ ifỊma. 0 b. 1.1 c. 1.4 d. 1.3 63
C âu 297. Trong ngôn ngữ lập trình c, cho biết sau khi đoạn chương trình sau được
thực hiện thi phần tử A[0] của mảng mang giá trị bao nhiêu? b. 9 d. 5
C âu 298. Trong các câu lệnh khai báo sau, câu lệnh nào là sai cú pháp? a. int A[2][3];
c. int A[2][3]={1, 2, 3, 4, 5, 6};
b. int A[2][3]=(l, 2, 3 ,4 , 5, 6); d. int A[2][3]={1, 2, 3};
C âu 299. Giá trị của M [l][2] là?
int M[4][5] = { 10, 2, -3, 17, 82, 9, 0, 5, 8, -7, 32, 20, 1,0, 14, 0, (I, 8 ,7 ,6 }; a. 0 b. 5 c. 8 d. 2
C âu 300. Với khai báo sau, giá trị M [2][l] là?
int M[4][5] = { 10. 2. -3. 17. 82. 9. 0, 5. 8. -7. 32. 20. 1.0. 14. 0. (I. 8 .7 ,6 }: a. -7 b. 20 c. 8 d. 32
C âu 301. Cho biết kết quả thực hiện đoạn chương trình: c. 5 d. Không xác định 64
Câu 302. Cho biết kết quả thực hiện đoạn chuơng trình sau: int a=3, *p = &a;
printf("%d\n", a * *p * a + *p); a. 18 b. 27 c. 30 d. 36
C âu 303. Mảng a có kiểu int. Phát biểu nào sau đây đúng nhất?
a. a tương đương với &a[0]
b. a + i tương đương với &a[i]
c. *(a + i) tương đương với a[i]
d. Cả a, b, c đều đủng C âu 304. Cho: int a,*p; p=&a;
Chi ra biểu thức không hợp lệ: a. *p = a b. *p = = a c. *p + 1 = a d. * p + l = = a
C âu 305. px là con trò tới X , py là con trỏ tới y. Câu lệnh nào trong các câu lệnh
sau tương ứng với y = 3*x + z; a. *py = 3*x + z; c. py = 3*x + z; b. *py = 3*(*px) + z; d. Cả đáp án a và b
C âu 306. Cho hai khai báo sau: 1: float (*p)[30]; 2: float *p[30];
Phát biểu nào sau đây đúng?
a. 1 khai báo con trò kiểu fl(^t[30] và 2 khai báo mảng 30 con trỏ kiểu float
b. 1 khai báo mảng 30 con ưỏ kiểu float và 2 khai báo con trỏ kiểu float[30]
c. Cả hai đều khai báo con trỏ kiểu float[30]
d. Cá hai đều khai bao mảng 30 con trỏ kiểu float 5-Brniõí 65
C âu 307. Trong ngôn ngữ lập trình c, khi đoạn chương trình sau được thực hiện,
xâu "BKHN" được in ra bao nhiêu lần? intx; for(x=-l; x<=10; x++){ printf("BKHN"); a. Vô hạn lần b. 0 lần c. 5 lần d. 10 lần
C âu 308. Cho đoạn chương trình sau
int i = 3, j = 6; int *pl, *p2; pl = &i; p2 = &j; *pl = *p2;
Biết rằng trước lệnh gán cuối cùng thì Biến Địa chỉ G iá trị i FFEC 3 j FFEE 6 p l FFDA FFEC p2 FFDC FFEE
Cho biết địa chi và giá trị của p l?
a. Địa chi FFDA, giá trị FFEC
c. Địa chi FFDA, giá trị FFEE
b. Địa chì FFDC, giá trị FFEC
d. Địa chi FFDC, giá trị FFEE
C âu 309. v ẫ n đoạn chương trình trên, cho biết địa chì và giá trị của i?
a. Địa chi FFEC, giá trị 3
b. Địa chỉ FFEC, giá trị 6
c. Địa chi FFEE, giá trị 3
d. Địa chỉ FFEE, giá trị 6 66
C âm 310. v ẫ n đoạn chương trình trên, chi sửa lại lệnh gán cuối cùng là pl=p2.
Cho biết địa chi và giá trị của p l? a. Địa chi FFDA, giá trị FFEC
c. Địa chi FFDA, giá trị FFEE b. Địa chi FFDC, giá trị FFEC
d. Địa chi FFDC, giá trị FFEE
Câui 311. v ẫ n đoạn chương trình trên, chi sửa lại lệnh gán cuối cùng là pl=p2.
Cho biết địa chỉ và giá trị cúa i? a. Địa chì FFEC, giá trị 3
b. Địa chi FFEC, giá trị 6 c. Địa chi FFEE, giá tri 3
d.Địa chi FFEE, giá trị 6
C âui 312. Cho biết kết quả hiển thị ra màn hỉnh? c h a r! a. 01234 b. 0123456789 c. 012345 d. \0
C âu I 313. Cho khai báo sau: char B[6] = "Hanoi";
Cho biết giá trị của B[6] là: a. 'i' b. Không xác định c. 'o' d. '\0'
C âu 314. Trong các hàm dưới đây, hàm nào không thuộc tệp tiêu đề string.h? a. strcat b. strcpy
c. strc m p d, T ất cả các h àm trôn đ ề u th u ộ c str ing.h
Câu .315. Cho biết kết quả hiển thị ra màn hình? inti; c. hello d.hell 67
a. sl= "thu do ha noi" , s2= "" b. s l= "thu do ha", s2="noi" d. Chương trình báo lỗi
Câu 317. Cho khai báo biến sau char thudo[10]= "Hanoi";
Hòi bộ nhớ cấp phát bao nhiêu Byte cho biến thudo? a. 10 byte c. 11 byte b. 5 byte
Câu 318. Đoạn mã sau sai dòng nào? char ■ s = '
gets(t); //d o n g 3 ỊfPSỊp$ a. dòng 1 b. dòng 2 d. Không sai dòng nào
C âu 319. Phát biểu nào sau đây là đúng?
a. Ký tự 'A' được lưu trữ trong 1 byte, xâu ký tự "A" được lưu trữ trong 2 byte
b. Ký tự 'A' được lưu trữ trong 2 byte, xâu ký tự "A" được lưu trữ ừong 1 byte
c. K ý tự 'A ' đư ợc lưu trữ trong 1 byte, xâu ký tự "A" đư ợc lưu trữ trong 1 hyte
d. Ký tự 'A' được lưu trữ trong 2 byte, xâu ký tự "A" được lưu trữ trong 2 byte
C âu 320. Cho biết kết quả hiển thị trên màn hình sau đoạn chương trình: 68
C âm 321. Trong ngôn ngữ lập trình c, câu lệnh nào dưới đây khai báo đúng nhất một hằng xâu ký tự? a. #defme Xau[5] "BKHN" b. #defme Xau "BKHN" c. const char Xau = "BKHN"; d. const Xau = "BKHN";
C âui 322. Trong ngôn ngữ lập trình c, câu lệnh nào dưới đây khai báo đúng một hằng là xâu ký tự? a. #define Xau = "BKHN"
c. const char Xau[5] = "BK.HN";
b. #defĩne char Xau[5] "BKHN" d.const char Xau = "BKHN";
C âiu 323. Trong ngôn ngữ lập trình c, cho biết sau khi đoạn chương trình dưới đây
được thực hiện, kết quả hiển thị trên màn hình là gì? a. %s b. 0123443210 c. 9876556789 d. 9876543210
C âui 324. Trong ngôn ngữ lập trình c, cho đoạn chương trình sao chép nội dung
xâu s 1 sang S2 theo thứ tự đảo ngược như sau : char S I [20], S2[20]; int i, n; n = strlen(Sl);
for( ( A ) ; ( B ) ; i— ) S 2 [ n - i- l] = Sl[i];
Hãy cho biết nội dung của các biểu thức (A), (B)?
a. ( A ) : i = 0, ( B ) : i <= n/2
c. ( A ) : i = n -1 , ( B ) : i >=0
b. ( A ) : i = 0, (B) : i <=n d. ( A ) : i = n, (B) : i >=0 69
C âu 325. Trong ngôn ngữ lập trình c, giả sử S I, S2 là hai xâu kí tự. Để ghép nội
dung xâu S2 vào sau S l, chương trình có thể thực hiện theo cách nào dưới đây?
a. Dùng lệnh strcm p(S l,S 2);
c. Dùng lệnh strcat(Sl,S2); b. Dùng lệnh strcpy(Sl,S2);
đ. Cả 3 cách trên đều sai
C âu 326. Cho biết kết quả thực hiện đoạn chương trình sau: char S[10] = "Hello"; int d = 0;
while(S[d] l= W ịd + + i printf("%d",d); a. 0 b. 3 c. 5 d. 7
C âu 327. Trong ngôn ngữ lập trình c , cho đoạn chương trình đảo ngược nội dung một xâu ký tự như sau: char S[20], tmp; int i, n; n - strlen(S); f o r((A );(B );i+ + ){
tmp = s[i]; s[i] = s[n-i-l]; s[n-i-l] = tmp; }
Hãy cho biết nội đung cùa các biểu thức (A), (B)?
a. (A ) : i — 0, (B ) : i < n/2
c. (A ) : i - 1, (B ) : i < n/2
b. ( A ) : i = 0, ( B ) : i <= n/2
d. ( A ) : i = 0, ( B ) : i < (n-l)/2
Câu 328. Cho đoạn chương trinh sau, hòi kết quả hiển thị ra màn hình là như thế nào? char a[50] = "Xin chao"; char b[50] = "cac ban"; strcat(b, a); strcpy(a, b); ifỊstrcmp(a, b)>0) 70 sưcat(b, a); printf("%s", a); a. Xin chao b. cac ban c. cac banXin chao d. Xin chao cac ban
C âu 329. Cho kiều cấu trúc được khai báo như sau trong Turbo C++3.0: typedef struct { char MSSVflO]; char Hoten[20]; float Diem; }SV;
Một biến thuộc kiểu s v sẽ được cấp phát bao nhiêu byte để lưu trữ? a. 34 b. 38 c. 36 d. 40
C âu 330. Cho khai báo trong Turbo C++3.0: struct { char Ten[10]; char Mau[5]; int X, Y; }Diem[5];
Bộ nhớ sê cấp phát bao nhiêu byte cho mảng Diem? a. 19 b. 85 c. 95 d. 50 Câu 331. Cho cấu trúc: struct sinh_vien{ } 71
Cách khai báo biến cấu trúc nào sau đây là đúng?
a. struct sinh_vien sinh_vien_l;
b. typedef struct sinh vien sinh_vien; sinh vien sinh_vien_l;
c. Cả hai đáp án a, b đều đúng
d. Cả hai đáp án a, b đều sai
C âu 332. Cho struct sinhvien có dạng: struct { char hoten[50]; int diemTinDC; }sinhvien;
Và một mảng sinhvien sv[50] đã được nhập đầy đủ dữ liệu, hỏi đoạn
chương trình sau thực hiện công việc gì? in ti; for (i=0;i<50;i++){
ifì(sv[i].dieniTinDC < 4) continue;
printfì("Ho ten sinh vien: %s", sv[i].hoten); ____ _ " _
printf("Diem Tin dai cuong: %d", sv[i].diemTinDC); }
a. In ra màn hình thông tin họ tên và điểm tin đại cương của các sinh viên có
đ iể m tin đại cư ơ n g >=4.
b. In ra màn hình thông tin họ tên và điểm tin đại cương của các sinh viên có
điểm tin đại cương < 4.
c. In ra màn hình thông tin họ tên và điểm tin đại cương của các sinh viên có
điểm tin đại cương = 4.
d. In ra màn hình thông tin họ tên và điểm tin đại cương của các sinh viên có
điểm tin đại cương < 5.
C âu 333. Phát biểu nào dưới đây là không đúng về biến trong ngôn ngữ c ?
a. Vùng nhớ dành cho biến cục bộ sẽ được giải phóng khi ra khỏi phạm vi khai báo biến 72
b. Biến toàn cục có thể được sử dụng ở tất cả các hàm ở sau vị trí khai báo biến
c. Biến static có phạm vi sử dụng giống biến toàn cục
d. Biến static chỉ được sử dụng trong phạm vi khai báo biến
C âu 334. Cho biết kết quả hiện trên màn hình?
int BP(int x){ int y=x*x ; x=y; return y; }
void main(){ int a=5; printf("%d%d",BP(a),a);} a. 255 C.2525 b. 55 d. Chương trình có lỗi
C âu 335. Cho hàm kiểm tra xem một số >2 có phải là sổ nguyên tố không. Hàm trả
về 1 nếu là số nguyên tố, ngược lại trả về 0. Giá trị của M, N là bao nhiêu? return k; ì a. M=1 N=0 c. M= 1 N=1 b. M=0 N=1
d. Chương trình không làm đúng yêu cầu
C âu 336. Chọn khai báo nguyên mẫu hàm không đúng: a. int TienGui(int, int);
b. float TienGui(SoTien, LaiSuat); c. void TienGui(int);
d. void TienGui(int SoTien, float LaiSuat);
C âu 337. Hãy cho biết đoạn chương trình sau in kết quả ra màn hình như thế nào? int ThayDoi(int x){ x){ ■ • : ■ • J -V*,; t 'i :■■ - í - - !' ' X++;
M M ĩM Ế Ẽ m é: ĨÌK-ư&sC- *■■■■; ■ 73 int x= 4;
printf("%d%d", ThayDoi(x), ThayDoi(x)); } a. 55 b. 45 c. 56 d. 44
C âu 338. Cho biết kết quả hiện trên màn hình của đoạn chương trình sau: int Tang(int x){ int y=3* ++x; x=y; return y ; } void main(){ int a=3; printf("% d% d”,Tang(a),a); a. 1212 b. 912 c. 93 d. 123
C âu 339. Cho biết kết quả hiện trên màn hình của đoạn chương trình sau: int BienDoi(int x){ i n t y = x*x; X = y; return y; void main(){ int a=2;
printf("°/od%d", BienDoi(a), a); a. 92 b. 62 c. 42 d. 69
C âu 340. Hòi kết quả hiển thị trên màn hình? int x,y;
int f^int x){ y = x -l; x = y -l; return x + y ;} void mainO{ 74 x=25;y=f(x); printf("x=%d, y=%d", X , y); } a. x=23, y=24 b. x=23, y=47 c. x=24, y=47 d. x=25, y=47
C âu 341. Cho chương trình viết bang ngôn ngữ c sau : #include void main(){ printfì("%f\n", sqrt(36.0)); ' . . - v ĩ ■!'■ ■ }
c ầ n thêm khai báo tệp tiêu đề nào để khi biên dịch chương trinh trên không có lỗi? a. #include c. #include b. #include d. #include
Câu 342. Cho một hàm viết bằng ngôn ngữ lập trình c như sau : long fiin(int n){ for(i=0; i<=n; i++) R = R * i; return R; ■ ì ’
Phát biểu nào sau đây là đúng về hàm fìin()?
a. Hàm tính toán giá trị 1"
c. Hàm tính toán giá trị n!
b. Hàm tính căn bậc 2 của n
d. Hàm trả về giá trị 0
C âu 343. Cho đoạn chương trình sau hỏi kết quả hiển thị ra màn hình là như thế nào? i n t X y intTinh(intx){ y = x - l ; x = y - 1; 75 c. Ca a và b đêu sai
d. Chương trình không thực hiện được vì có lôi cú pháp
Câu 344. Xét chương trình sau: l i i l K } Ket quả sẽ là: a. 4.1 5.2 b. 4.10 5.20 c. 5.2 4.1 d. 5.20 4.10
Câu 3 4 5 . X ác định lời gọi hợ p lệ cho hàm có tên C h u an H o aX au với g iá trị trả vị CÓ kiểu String: a. char *Bien; ChuanHoaXau(XauGoc) = Bien; b. float Bien; Bien = ChuanHoaXau(XauGoc); c. char *Bien; Bien = ChuanHoaXau(XauGoc); d. float Bien; Bien = ChuanHoaXau XauGoc; 76
C âu 346. Phát biểu nào về tệp dưới đây là đúng?
a. Việc truy cập cùng lúc vào nhiều phần tử của tệp là có thể nếu chế độ mở tệp cho phép
b. Tệp văn bản là trường hợp đặc biệt của tệp nhị phân
c. Sau mỗi thao tác đọc, ghi trên tệp, con trỏ tệp sẽ tự động trò về vị trí đầu tiên của tệp
d. EOF là một hằng số nguyên được định nghĩa trong thư viện conio.h
C âu 347. Khi dùng hàm fopen thì kiểu nào sau đây làm đối số của hàm này, dùng
để m ở một tệp để ghi bồ sung theo kiều văn bản, nếu tệp chưa tồn tại thì tạo a. (1) điên FILE *f; (2) điên fclose(f); b. (1) điền FILE f; (2) điền fclose(f); c.
(1) điền FILE f; (2) điền close(f); d.
(1) điền FILE *f; (2) điền FCLOSE(f); 77
PHẢN IV. BÀI TẬP Tự LUẬN LẬP TRÌNH
IV. 1. Phần bài tập có lời giải Bài 1:
( 3 x 2 - 2 x + 5 V x > 0 Cho hàm số: / 0 0 = 12x^+1 v 0 ^ X
Viết chương trình con tính giá trị của hàm số trên. Trong chương trình chính
nhập giá trị của đối số từ bàn phím, gọi chương trình con này và hiển thị kế quả ra màn hình. L ờ i giải: #include #include float f(float x); // Khai bao nguyen mau ham int main(){ float x;
printf("Nhap vao gia tri doi so x: "); scanf("% f',&x);
printf("Ket qua goi ham la: % 6.2f', f(x)); getch(); return 0; } float f(float x){
if(x>=0) return (3*x*x - 2*x + 5); else return ((2*x*x+l)/x); } 78 Bài 2:
Í—X30 + cos0.25x — 5 nếu X < 10 ln (x 2 + 1) + X
nếu 10 < X < 20 9 + X nếu X > 20
Viết chương trình hoàn chinh thực hiện các công việc sau: a) Viết hàm F(x) b)
Nhập k số thực và lưu vào màng Q (5 < k < 1 0 0 ) c)
Sử dụng hàm đã viết, tính giá trị hàm F tại các phần tử của mảng Q và lưu
các phần từ không âm vào mảng Y.
d) Tính số lượng các phần tử của mảng Y có giá trị nằm trong khoảng (10, 100) Lời giải: #include #inđude #include
float F(float); // Khai bao nguyen mau ham int main(){ float Q[100], Y[100]; int k, s, i, d; /* Nhap so k */ do{
printf("\n Nhap k : "); scanf("%d", &k);
}while((k<5) I (k> 100));
/* Nhap k so thuc, luu vao mang Q */
for(i=0; iprintf("\nNhap 80 thuc tliu %d. ", i+ 1); scanfl[''%r',&Q[i]); }
/* Tinh gia tri ham F tai cac phan tu cua mang Q, luu cac gia tri khong am vao mang Y*/ d = 0; for(i=0; iif(F(Q[i])>=0){ Y[dl = F(Ọ[i]); d++; } 79
/* Tinh so luong cac phan tu cua mang Y co gia tri trong (10, 100) */ s = 0;
for(i=0; i < d ; i++) if((Y[i]>10) & & (Y[i]<100)) S + + ;
printf("\nSo luong phan tu cua mang Y thoa man la %d", s); getch(); return 0; } /* Dinh nghia ham F */ float F(float x){
if(x<10) return -pow(x,10) + cos(0.25*x-5); else if(x>20) return 9+x; else return log(x*x+l)+x; } Bài 3:
Viết chương trình tính chu vi và diện tích hình tròn theo giá trị bán kính r
nhập từ bàn phím. Chu vi đường tròn: cv = 2 x n * r; diện tích hình tròn: dt = n x r 2 Lòi giải: #include #include #include int main(){
flo at r, cv, đt; // K hai bao 3 bien th u c
printf("\n Nhap vao ban kinh r = "); scanf("% f’,&r); cv = 2*M_PI*r; // Tinh chu vi
đt = M_PI*r*r; // Tinh dien tich
printf("\nChu vi = %10.2f\nDien tich = % 10.2f',cv, dt); getch(); return 0; } 80 Bài 4:
Hãy v iế t chương trình nhập vào các số nguyên a, b, c từ bàn phím. Tính và
đưa ra màn hình giá trị của a, b, c sau khi thực hiện các biểu thức: • a++ + -H-b • —a - b— * ++C
với a,b,c là các số nguyên nhập vào từ bàn phím. Lời giải: #include #include int main(){ int a, b. c, z;
printf("Nhap vao a = "); scanf("%d",&a);
printf("\nNhap vao b = "); scanf("%d",&b);
printf("\nNhap vao c = "); scanf("%d",&c); z = a++ + ++b;
printf("\nBicu thuc 1 = %d, a = %d, b = %d", z, a, b); z = ~ a - b— * ++c;
printf("\nBicu thuc 2 = %d, a = %d, b = %d, c = %d", z, a, b, c); getch(); return 0; } Bài 5:
Dùng biểu thức điều kiện ? : để đưa ra số lớn nhất trong 3 số thực nhập vào từ bàn phím. Lời giải: #include #include int main(){ float a, b, c, z;
printf("\nNhap vao so a = "); scanf("%f',&a); 81
printf("\nNhap vao so b - "); scanf("%f',&b);
printf("\nNhap vao so 9 = "); scanf("%f',&c);
z = (a>b)?(a>c?a:c):(b>c?b:c);
printf("\nSo Ion nhat = %0.2f\n", z); getch(); return 0; } Bài 6:
Hãy viết một chương trình c hoàn chinh thực hiện nhiệm vụ sau: Nhập vào
từ bàn phím một xâu ký tự có độ dài không quá 25 ký tự, nếu nhập xâu có độ
dài quá 25 ký tự thì yêu cầu nhập lại cho đến khi thỏa mẫn yêu cầu. Sau đó
hiển thị ra màn hình số lần xuất hiện ký tự đầu tiên trong xâu. L ờ i giải: #include #include #include int main(){ char s[26], c; int 1, n; ■ do{
printf("Nhap vao mot xau co do dai khong qua 25 ki t u : "); gcts(s); } while(strlen(s)>25); c = s[0]; n = 0;
for(i=0;iprintf("So lan xuat hien chu cai dau tien %c trong xau la %d", c, n); getch(); return 0; } 82 Bài 7:
Viết chương trình nhập vào từ bàn phím họ và tên của một người, sau đó in
phần tên ra màn hình. Ví dụ: "Tran Hung Dao" thì in ra "Dao". Lời giải: #include #include #include int inain(){ char t[30],*s, *p; int i;
printf("Nhap vao mot xau ho va te n :"); gets(t);
/* Loai bo ky tu cach o dau va cuoi xau*/ s = chuanhoa(t);
/* Dung ham stưchr duyet nguoc tu cuoi xau, tim vi tri đau tien cua mot ky
tu va tra ve con tro tro đen ky tu đo */
p = strrchr(s,''); // Tim ky tu trong dau tien tu cuoi xau s p = p + 1;
printf("\nPhan ten la: %s\n",p); getchO; return 0; }
/* Dinh nghía ham loai bo ky tu cach o dau va cuoi xau*/ char *chuanhoa(char *x){ while(*x = ' ’) X = X + + ;
while(*(x + strlen(x)) = " ) X = X—; return x; } Bài 8:
Viết chương trình nhập n số nguyên từ bàn phím (1 0 < n < 100), kết thúc
quá trình nhập số khi nhập một chữ cái hoặc đã nhập 100 số. Tìm xem có
bao nhiêu số thỏa mãn điều kiện: số đó bằng số đứng trước nó cộng 3, in ra màn hình các số đó. 6 - B T T H Đ C 83 L ờ i giải: #include #include #include #include int main(){
int n = 0, i, sl = 0, a[ 100]; char s[5]; do{
printf("\nNhap vao so thu % d :", n+1); scanf("%s",s);
/*Kiem tra neu la ki tu thi thoat khoi vong lap*/ if(isalpha(s[0])) break;
/*Dung ham atoi chuyen doi dang chuoi thanh dang so*/ a[n] = atoi(s); n++; }while(n<100);
printf(”\nCac so thoa man dieu kien bang so dung truoc cong 3 la: \n");
for(i=l;iif(a[i]= (afi-l]+ 3)){ sl++; printf("%d\t",a[i]); }
p rin tf("\n S o lu o n g cnc so th o a m an d icu k icn la: % d ", sl); getchO; retum 0; } Bài 9:
Viết chưcmg trình tìm ước số chung lớn nhất của hai số nguyên dương a, b
được nhập vào từ bàn phím. 84 Lời giải: Cách ì: #include #include int Itiain(){ unsigned int a, b;
printf("Nhap so thu n h a t:"); scanf("%d",&a);
printf("\nNhap so thu h a i:"); scanf("%d",&b); while(a!=b){ if(a>b)a -=b; else b -=a; } printf("\nUSCLN la %d",a); getch(); return 0; Cách 2: #include #include int main(){ unsigned int a, b, min, i;
p rin tf("N h a p so th u nhat: "); scunf("% U ",& a),
printf("\nNhap so thu hai: "); scanf("%d",&b);
/*Tim ra so nho hon trong hai so*/
min = a/*Dung vong lap duyet nguoc tu so nho hon toi 1*/ for(i=m in;i>=l;i~)
if((a % i= 0 )& & (b % i= 0 )) { printf("\nUSCLN la %d",i); break; 85 } getch(); return 0; } Bài 10:
Viết m ột chương trình thực hiện các công việc sau:
a. Đọc vào máy từ bàn phím một số nguyên dương n
b. Tính tổng s = 1 + 2+ 3 + ....+ n L ờ i giải: #include #include /*Khai bao nguyen mau ham*/
unsigned long sum (unsigned int n); /♦Chuông trinh chinh*/ int main(){ unsigned int n; unsigned long tong;
printf("N hap n: "); scanf("%d",&n); tong = sum(n);
printf("\nTong can tinh la: %d", tong); getchO; return 0; }
unsigned long sum (unsigned int n){ unsigned long s = 0; int i;
for(i= l;i< = n;i+ + ) s+=i; return s; } 86 Bài 11:
Viết hàm hoán đổi giá trị hai biến số nguyên. Lòi giải: #include #include
void swap( int* , int* ); /* Khai bao nguyen mau ham */ int main(){ int X, y ;
printf("Nhap vao so nguyen thu nhat X = "); scanf("%d",&x);
printf("Nhap vao so nguyen thu hai y = "); scanf(”%d",&y); swap(&x, &y);
printf("Sau khi hoan doi gia tri hai bien, X = %d, y = %d", X, y); getch(); return 0; }
void swap( int* X , int* y){ /* Dinh nghia ham swap */ int temp; temp = *x; *x = *y; *y = temp; } Bài 12:
Viết chương trình tính giá trị hàm Fibonaci với tham số n được nhập từ bàn phím. Biết rằng: •
fibonaci(O) = 0; fibonaci( 1) = 1; •
fibonaci(n) = fibonaci(n-l) + fìbonaci(n-2) Vn>l Lòi giải: #include #include
long fíbo( lo n g ); /* Khai bao nguyen mau ham */ 7-BTTHĐC 87 int main() { long result, n;
printf("Hay nhap vao mot so nguyen: "); scanf("%ld", &n); result = fibo(n);
printf("\nFibonaci cua %ld la: %ld", n, result); getchO; return 0; }
/* Dinh nghia de quy ham fibonaci */ long fibo( long n){
if ( n = 0 I n — 1 )retum n;
else return fibo(n-l) + fibo(n-2); } Bài 13:
Thông tin về một học sinh lưu trong một cấu trúc gồm các trường: M ã số
ký tự), Họ tên (không quá 30 ký tự), Điểm toán (số thực). Hãy viết n
chương trình hoàn chinh thực hiện các công việc sau:
a) Nhập vào danh sách học sinh của một lớp (biết rằng lớp này có không (
30 học sinh). Quá trình nhập kết thúc khi đã nhập đủ 30 học sinriì nbạc
nhập Mã số là xâu "$$$".
b) Sắp xếp danh sách học sinh theo thứ tự giảm dần cùa Điểm toán và hiên danh sách này ra màn hinh. L ờ i giải: #include #include #include typedef struct { char maso[9]; char hoten[31]; float diemtoan; 88 }HOCSINH; HOCSINH ds[30], tg; int main() { int ij,n = 0; float diemtoan; char maso[9]; charhoten[31]; for(i=0; i<30; i++){
printf("\nNhap ma so sv thu %d: ",i+l);
fflush(stdin); scanf("%s",maso);
/*Neu nhap ma so la xau "$$$" thi dung viec nhap*/
if(strcm p(m aso,"$$S")=0) break; n++; strcpy(ds[i] .maso,maso);
printf("\nNhap ho ten: "); fflush(stdin); gets(hoten); strcpy(ds[i].hoten,hoten);
printf("\nNhap diem toan: "); scanf("%f',&diemtoan); ds[i].diemtoan = diemtoan; }
/* Sap xep danh sach hoc sinh theo thu tu khong tang cua diem toan */ for(i=0; i< n -l; i++) fo r(j= i+ l;j< n ;j+ + )
it(ds[iJ.diemtoan < ds[jJ.diemtoan){ tg = ds[i]; ds[i] = ds[j]; ds[j] = tg; }
/* Hien thi danh sach ra man hinh */
printf("\n DANH SACH HOC SINH SAU KHI SAP XEP THEO DIEM TOAN");
printf("\n+-------- +-------------------------------- .+.---------- 1-"); 89 printf("\n| Ma so I Ho ten |Diem toan|");
printf("\n+-------- •+■-------------------------------- +------------ ■+"); for(i=0;ids[i].diemtoan);
printf("\n+--------- + ---------------------------------- + ---------- +\n"); getch(); return 0; } Bài 14:
Viết một chương trình thực hiện các công việc sau:
a. Đọc một dãy số nguyên 10 phần tử từ bàn phím vào mảng a.
b. Ghi dãy vừa đọc lên tệp "SONGUYEN.SL" ở thư mục gốc cùa ổ c.
c. Đọc tệp trên vào mảng b và hiển thị lên màn hình. Lòi giải: #include #include int main(){ FILE *f; int i, a[10], b[10]; for(i=0;i<10;i-H-){ printf("\na[%d]= ",i); scanf("°/od",& a[i]); }
/*Mo tep SONGUYEN.SL de ghi theo che do nhi phan*/
f = fopen("C:\\SONGUYEN.SL", "wb"); fwrite(a, sizeof(a), 1, f); fclose(f);
/*Mo tep SONGUYEN.SL de doc theo che do nhi phan*/
f=fopen("C:\\SONGUYEN.SL","rb"); fread(b, sizeof(a), 1, f); 90 fclose(f); /*Hien thi ra man hinh*/
printf("\nDay so doc duoc la:");
for(i=0;i<10;i++) printf("\n%d", b[i]); getch(); return 0; } Bài 15:
Viết chương trình sao chép tệp ở chế độ nhị phân. Lời giải: ^include #include ^include int main(){ int c; char tl [25], t2[25]; FILE * fl, *f2;
printf("\nTEP NCiUON:"); gets(tl);
printf("\nTEP DICH:"); gets(t2); fl=fopen(tl,"rb"); if(fl==NULL){
printf("\nTEP %s KHONG TON TAI",tl); getch(); exit(l); } f2=fopen(t2,"wb");
w hile((c=fgetc(fl))!=EOF) fputc(c,f2); fclose(fl); fclose(f2); 91
printf("\nDa sao chep xong..."); getch(); return 0; } Bài 16:
Thông tin về trẻ em sinh ra tại một bệnh viện bao gồm: Họ và tên là một xâu
không quá 30 kí tự; T háng sinh là một số nguyên; Năm sinh là một số
nguyên; C ân nặng (theo kg) là một số thực; Giói tính là một số nguyên chi
nhận hai giá trị 0, 1 với quy ước 1 là bé trai, 0 là bé gái.
Giả sử dữ liệu khá lớn, không thể lưu trữ ờ bộ nhớ trong.
Hãy viết chương trình thực hiện những công việc sau:
a. Nhập thông tin của các trẻ sơ sinh và ghi vào tệp nhị phân SOSINH.DAT
trên ổ D. Quá trình nhập kết thúc khi nhập giá trị Cân nặng là 0. Nếu gặp
lỗi khi tạo tệp, thông báo "Khong tao duoc tep" cho người sử dụng.
b. Nhập tháng T (1 < T < 12) và năm N (2 0 0 0 < N < 2 0 1 3 ) từ bàn
phím. Đọc tệp SOSINH.DAT và hiển thị ra màn hình danh sách các trẻ so
sinh được sinh ra trong tháng T năm N đó.
Danh sach tre so sinh thang.... nam ............. STT Ho va ten Can nang Gioi tinh
Quy cách hiển thị: Họ và tên trên 32 vị trí, cân nặng trên 5 vị trí với 2 chữ SC
thập phân, giới tính in nam hoặc nữ tùy theo giá trị lưu trong tệp là 1 hay c trên 5 vị trí.
Nếu không có em nào được sinh trong tháng năm đó, thông báo: "Khong cc
em nao sinh trong thang....nam ............
c. Ghi ra tệp văn bản KETQUA.TXT ờ thư mục hiện hành ti lệ sinh bí
trai/bé gái trong năm 2012. Nếu số bé gái sinh ra bàng 0 thì ghi giá trị -1. Lời giải: #include #include int main() { struct { 92 char ht[30]; // Ho va ten
int ths, ns, gt; // Thang sinh, nam sinh, gioi tinh float cn; // Can nang } te; // Tre em FILE *f; float trl; // Trong luong
int t, n, dem = 0, stt = 0, bt = 0, bg = 0;
if((f=fopen("D: WSOSINH.DAT","w b"))=N U L L ) { puts("\nKhong tao duoc tep"); getch(); exit(l); } else{ do{
printf("\nNhap trong luong: "); scanf("%f',&trl); if(trl > 0){
printf("\nNhap ho te n :"); fflush(stdin); gets(te.ht);
printf("\nNhap thang sin h :"); scanf("%d",&te.ths);
printf("\nNhap nam sin h :"); scanf("%d",&te.ns);
printf("\nNhap gioi tinh (1: nam; 0: nu):"); scanf("%d",&te.gt); te.cn = trl;
fwrite(&te, sizeof(te), 1, f); //G h i len tep } }whilc(ưl > O); fclose(f); // Dong tep }
printf("\nNhap thang va nam: "); scanf("%d%d",&t, &n);
f=fopen("D: \\SOSINH.DAT","rb");
printf("\nDanh sach tre so sinh thang %d nam %d", t, n);
while(fread(&te, sizeof(te), 1, f)){
if((te.ths = t) && (te.ns = n)){ if ( t e .g t = 1) 93
printf("\n %3d %32s % 5.2f nam", stt++, te.ht, te.cn);
else printf("\n %3d %32s % 5.2f nu", stt++, te.ht, te.cn); dem++; } } if(!dem)
printf("\nKhong CO em nao sinh trong thang %d nam %d", t, n); fclose(f);
/* Tinh ti le sinh be trai/be gai nam 2012 */
f=fopen("D:\\ SOSrNH.DAT","rb");
while(fread(&te, sizeof(te), 1, f)){
if((te.ns = 2012) && ( te .g t= l) ) bt++;
if((te.ns = 2012) && (te.gt==0)) bg++; } fclose(f);
/* Ghi ket qua len tep KETQUA.TXT 0 thu muc hien hanh */ f=fopen("KETQUA.TXT","wt");
if(bg>0) fprintf(f, "Ti le sinh be trai/be gai nam 2012: % 6.2f', ((float) bt)/bg);
else fprintf(f, "Ti le sinh be trai/be gai nam 2012: %6d", -1); fclose(f); getch(); return 0; 94
IV.2. Phần bài tập bạn đọc tự giải Bài 1:
Hãy viết một chương trình c hoàn chinh thực hiện những nhiệm vụ sau:
a. Viết hàm tính giá trị f(x) = 3x2+5 (x là số thực).
b. Nhập vào từ bàn phím một số thực. Hiển thị ra màn hình các giá trị của
hàm số với 20 giá trị đối số tăng dần bắt đầu từ số vừa nhập với bước tăng là Ax = 0.05. Bài 2:
Hãy viết một chương trình c hoàn chỉnh thực hiện những nhiệm vụ sau:
a. Viết hàm tính giá trị f(x) = 2x4 - 3 (x là số thực).
b. Nhập vào từ bàn phím một số thực. Hiển thị ra màn hình các giá trị của
hàm số với 20 giá trị đối số giảm dần bắt đầu từ số vừa nhập với bước giảm là Ax = 0.02 Bài 3:
Viết chương trình con tính giá trị của hàm số trẽn. Trong chương trình chính,
nhập giá trị của đối số từ bàn phím, gọi chương trình con này và hiển thị kết quà ra màn hình. Bài 4:
Viết chương trình nhập n số nguyên từ bàn phím (2 < n < 5 2 ), kết thúc
quá trình nhập số khi nhập một chữ cái hoặc đã nhập 52 số. Đếm xem có bao
nhiêu số chia hết cho 3, in ra màn hình các số đó. Rải 5:
Viết chương trình tìm bội số chung nhỏ nhất của hai số nguyên dương a, b
được nhập vào từ bàn phím. Bài 6:
Viết chương trình tìm ước số chung lớn nhất của ba số nguyên dương a, b, c
được nhập vào từ bàn phim. Bài 7:
Viết chương trình tính tổng sau: s = ! + X + X2 + X3 + ... + xn
với hai số n nguyên dương và X được nhập vào từ bàn phím. 95 Bài 8:
Viết chương trình tính tổng sau:
S = 1 - x + x2 - x 3 + ... + (-l)".xn
với hai số n nguyên dương và X được nhập vào từ bàn phím. Bài 9:
Viết chương trình thực hiện các công việc sau:
a. Đọc từ bàn phím một dãy n số thực, với n đọc từ bàn phím.
b. Đếm xem có bao nhiêu số dương, tính tổng của chúng. Đưa kết quả ra màn hình. Bài 10:
Viết chương trình thực hiện các công việc sau:
a. Nhập vào một dãy n số thực, với n nhập vào từ bàn phím và n < 100.
b. Sắp xếp dãy số ữên theo thứ tự không giảm, hiển thị dãy số sau khi sắp xếp ra màn hình. Bài 11:
Địa chi e-mail là một chuỗi ký tự có chứa duy nhất một ký tự a còng/a móc
'@ ' phân cách phần tên tài khoản và phần tên miền, tên tài khoản và tên miền
không chứa dấu cách/khoảng trắng.
Viết một chương trình c hoàn chỉnh, nhập vào từ bàn phím một chuỗi ký tự
và kiểm tra xem đó có phải là một địa chi e-mail không. Nếu đúng là địa chi
e-mail thì hiển thị thông báo "La dia chi e -m a ir, ngược lại thì hiển thị
"Khong p h a i dia chi e-mail". Giả sử người dùng nhập chuỗi chi bao gồm dấu cách, ký tự
ký tự dấu chấm 7 , các chữ số, các ký tự trong bảng chữ c ái L atin. Bài 12:
Viết một chương trình c hoàn chinh, nhập vào từ bàn phím một xâu ký tự,
sau đó chuyển toàn bộ ký tự chữ thường trong xâu thành ký tự chữ hoa và
hiển thị ra màn hình xâu ký tự đã xử lý này cùng với số lượng ký tự đã
chuyển thành ký tự chữ hoa. Giả sử người dùng nhập xâu đầu vào chi gồm
các ký tự trong bảng chữ cái Latin và/hoặc dấu cách. Bài 13:
Viết chương trình thực hiện nhập n xâu từ bàn phím (n cũng được nhập từ
bàn phím). Hiển thị ra màn hình xâu cuối cùng có độ dài lớn nhất. 96 Bài 14:
Viết chương trình nhập một chuỗi ký tự từ bàn phím (giả sử có độ dài không
quá 100 ký tự kể cả ký tự trắng), đếm xem có bao nhiêu từ, đưa ra màn hình
số từ và xâu sau khi loại bỏ các ký tự trắng (các từ được ngăn cách bời một
hoặc nhiều ký tự trắng). Bài 15:
Nhập một xâu từ bàn phím, quá trình nhập dừng khi gặp ký tự hoặc độ
dài cùa xâu vượt quá 50 kí tự. Các từ được ngăn cách bởi một hoặc nhiều ký tự trắng.
a. Có bao nhiêu từ bắt đầu bằng ký tự "H"?
b. Đưa ra màn hình theo thứ tụ ngược lại sau khi đã xóa hết các ký tự trắng trong
xâu. Ví dụ: Xâu ban đầu là "thi chuyen he", xâu đưa ra là "ehneyuhciht". Bài 16:
Viết chương trình đệ quy tính giá trị của dãy số được xác định theo công thức sau:
Ị U l = u 2 = 1
Ị u n = 4 u n_ ! + 3 u „ _ 2 V n > 3 Bài 17:
Hai số được gọi là nguyên tố cùng nhau nếu chúng có ước số chung lớn
nhất bằng một. Viết hàm kiểm tra hai số có nguyên tố cùng nhau hay không bằng cách: a. Sử dụng vòng lặp.
b. Sử dụng kĩ thuật đệ quy. Bài 18:
Viết chương trình đệ quy tính giá trị của giai thừa cách n!! được định nghĩa như sau: •
Nếu n = 2k+l thin!! = 1 .3 .5 ...(2 k + 1) •
Nếu n = 2k thì n!! = 2.4.6.,.(2k) Bài 19:
Thông tin về một n h ân viên lưu trong một cấu trúc gồm các trường: Họ tên
(không quá 30 ký tự), Địa chỉ (không quá 50 ký tự), Bậc lương (số nguyên).
Hãy viết một chương trình hoàn chỉnh thực hiện các công việc sau: 97
a. Nhập vào danh sách nhân viên của một cơ quan (biết rằng cơ quan này có
không quá 70 nhân viên). Quá trình nhập kết thúc khi đã nhập đù 70 nhân
viên hoặc khi nhập Họ tên là xâu "###".
b. Sắp xếp danh sách nhân viên theo thứ tự tăng dần của Bậc lương và hiển
thị danh sách này ra màn hình. Bài 20:
Biết rằng số học sinh trong lớp học nhỏ hơn 50. Một học sinh có các thông tin
sau: Họ tên, Năm sinh, Địa chỉ, Điểm toán. Hãy thực hiện các thao tác sau:
a) Xây dựng kiểu dữ liệu để lưu thông tin học sinh biết rằng Họ tên học sinh
có độ dài không quá 30 ký tự và Địa chỉ có độ dài không quá 100 ký tự.
b) Nhập danh sách học sinh cùa lớp học. Quá trình nhập dừng lại khi đã có đù
50 học sinh hoặc khi trả lời "No" khi được hỏi.
c) Sắp xếp danh sách học sinh theo điểm toán theo thứ tự giảm dần.
d) In ra màn hình họ tên những sinh viên có điểm toán thấp nhất trong lớp. Bài 21:
Biết rằng trong một cơ quan có không quá 100 nhân viên. Một nhân viên có
các thông tin sau: Họ tên, Năm sinh, Địa chỉ, M ức lưtmg. Hãy thực hiện các thao tác sau:
a. Xây dựng kiều dữ liệu để lưu thông tin nhân viên biết rằng Họ tên cán bộ
có độ dài không quá 30 ký tự và Địa chi có độ dài không quá 100 ký tự.
b. Nhập hồ sơ nhân viên của cơ quan. Quá trinh nhập dừng lại khi đã có đù
100 nhân viên hoặc khi trả lời "No" khi được hòi.
c. Sắp xếp danh sách nhân viên theo Năm sinh theo thứ tự giảm dần về tuổi.
d. In ra m à n h ìn h tê n v à m ứ c Urơng củ a n h ữ n g n h ân v iên có tu ô i cao n h ât trong cơ quan. Bài 22:
Số lượng xe ô-tô do một đơn vị quản lý không quá 50 xe. Mỗi hồ sơ xe có
các thông tin sau: N hãn hiệu xe, Biển số xe, Tên hãng sản xuất, Dung tích
xi lanh. Hãy thực hiện các thao tác sau:
a. Xây dựng kiểu dữ liệu để lưu hồ sơ xe biết rằng Tên hãng sản xuất, Nhãn
hiệu xe, Biển số xe là các xâu ký tự có độ dài không quá 50 ký tự.
b. Nhập hồ sơ xe của cơ quan. Quá trình nhập dừng lại khi đã có đủ 50 xe
hoặc khi trả lời "No" khi được hỏi. 98
c. sắp xếp danh sách xe theo Dung tích xi lanh theo thứ tự giảm dần.
d. In ra màn hình Nhãn hiệu xe và Dung tích xi lanh của niiững xe có dung tích xi lanh nhỏ nhất. Bài 23:
Biết rằng trong một kho hàng có không quá 100 mặt hàng. M ột m ặt hàng có
các thông tin sau: Tên m ặt hàng, Ngày nhập, s ố lượng, G iá, C hủng loại.
Hãy thực hiện các thao tác sau:
a. Xây dựng kiểu dữ liệu để lưu trữ thông tin mặt hàng biết rằng Tên mặt
hàng và Chủng loại có độ dài không quá 100 ký tự.
b. Nhập thông tin mặt hàng. Quá trình nhập dừng lại khi đã có đù 100 mặt
hàng hoặc khi trả lời "No" khi được hỏi.
c. Sắp xếp danh sách các mặt hàng theo giá giảm dần.
d. In ra màn hình tên và số lượng của những mặt hàng có giá thấp nhất trong kho. Bài 24:
Hãy viết một chương trình c hoàn chinh thực hiện nhiệm vụ sau: Nhập vào
từ bàn phím một dãy các số nguyên, quá trình nhập sẽ kết thúc khi số lượng
số nguyên nhập vào đủ 30 số hoặc tổng cùa tất cả các số nhập vào lớn hơn
1000. Hiển thị ra màn hình số lần xuất hiện của số đầu tiên trong dãy. Bài 25:
Quy tắc tính tiền điện tiêu thụ trong một tháng cùa một hộ dân như sau:
100 số đầu giá 550 đ/số, 50 số kế tiếp giá 1.000 đ/số và các số tiếp theo được
tính giá 1.500 đ/số. Ví dụ: nếu một hộ tiêu thụ 165 số điện trong tháng thì
tiền điện hộ đó phải trả là = 100 số X 550 đ/số + 50 số X 1000 đ/số + 15 số X
1500 đ /só = 127.500 đ.
a. Viết chương trình con hàm double TIENDIEN(int sodien) nhận tham số
vào là số điện năng tiêu thụ trong tháng của hộ dân và trả về số tiền điện
mà hộ dân phải thanh toán.
b. Nhập từ bàn phím số hộ dân N trong một thôn (điều kiện N < 40).
c. Nhập vào số điện tiêu thụ trong một tháng của N hộ dân đó, tính số tiền
mỗi hộ phải ừả và lưu các giá trị này vào một mảng p.
d. Tính và hiển thị tổng số tiền điện mà thôn phải trả trong tháng đó. 99 Bài 26:
Thông tin về nguồn vốn viện trợ ODA mà các quốc gia viện trợ cho Việt
Nam từ năm 2000 đến 2007 được lưu trong cấu trúc kiểu ODA gồm có: Tên
quốc gia (xâu không quá 30 ký tự thường); số tiền (mà quốc gia đó tài trợ,
đơn vị: triệu USD), Năm (năm tài trợ).
Giả sử thông tin trên đã được lưu trữ trong tệp TAITRO.DAT tại thư mục
gốc ổ D. Lập chương trình thục hiện những công việc sau:
a. Nhập thêm vào cuối file ưên thông tin về sự tài trợ của các quốc gia ưong
năm 2008. Điều kiện kết thúc là khi nhập tên quốc gia là xâu "$$$".
b. Nhập vào một số N (2000 < N < 2008). Đọc file trên, đưa ra tên, số tiền
tài trợ cùa các quốc gia cho Việt Nam trong năm N theo quy cách: 30 vị
trí cho phẩn tên quốc gia, 6 vị tri cho phần số tiền tài trợ, mỗi quốc gia trên một dòng.
c. Nhập vào một xâu ký tự s thể hiện tên một quốc gia. Đọc lại file trên và
đưa ra tổng số tiền từ năm 2003 đến nay mà quốc gia đó đã tài trợ cho
Việt Nam. Nếu không tìm thấy thì thông báo "KHÔNG TÌM THÁY". Bài 27:
Thông tin về xe máy được lưu trong cấu trúc gồm: H ãng sản x u ất (xâu
không quá 20 ký tự), Năm sản xuất (số nguyên). Hãy viết một chương trình
c thực hiện những công việc sau:
a. Nhập vào từ bàn phún thông tin về 30 xe máy và lưu vào một mảng cấu trúc.
b. Duyệt mảng này, đưa ra màn hình tổng số xe được sản xuất bời hãng
"Honda" và thông tin năm sản xuất của từng chiếc xe này. Bài 28:
Thông tin về đôi giầy được lưu trong cấu trúc gồm: N hà sản x u ất (xâu
không quá 25 ký tự), Kich thước (số nguyên). Hăy viết một chương trinh c
thực hiện những công việc sau:
a. Nhập vào từ bàn phím thông tin về 100 đôi giầy và lưu vào một màng cấu trúc.
b. Duyệt mảng này, đưa ra màn hình tồng số đôi giầy do Nhà sàn xuất "Binh
Tien" sản xuất và thông tin kích thước của từng đôi giầy này. Bài 29:
Hãy viết một chương trình c hoàn chinh thực hiện những nhiệm vụ sau:
a. Định nghĩa hàm có tên C hỉnhPhuong với đầu vào là một số nguycn. Hàm
trả về 1 nếu số đầu vào là số chính phương, nguợc lại trả về 0. 100
b. Nhập vào từ bàn phím một số nguyên dương n thỏa mãn 10 < n < 20.
Nhập n số nguyên từ bàn phím và lưu vào mảng A. Sử dụng hàm
C hinhP huong, hãy in ra màn hình các số chính phương có trong mảng. Bài 30:
Hãy viết một chương trình c hoàn chỉnh thục hiện những nhiệm vụ sau:
a. Định nghĩa một cấu trúc dữ liệu biều diễn một phân số với tử số, mẫu số là các số nguyên.
b. Định nghĩa 02 hàm: hàm N hap cho phép người dùng nhập một phân số từ
bàn phím. Hàm SoSanh cho phép so sánh hai phân số. Hàm so sánh ứả về
0 nếu hai phân số bàng nhau, 1 nếu phân số thứ nhất lớn hơn phân số thứ
hai, ngược lại trả về -1.
c. Trong hàm main yêu cầu người dùng nhập vào hai phân số và cho biết phân số nào lớn hơn. TÀI LIỆU THAM KHẢO
Trần Đình Khang và các tác già, Giáo trình tin học đại cương, NXB Bách K h o a -H à Nội, 2012. 101 ..........................
BÀI TẬP TIN HỌC ĐẠI CƯƠNG
NHÀ XUÁT BẢN BÁCH KHOA - HÀ NỘI
Ngõ 17- T ạ Quang Bửu - Hai Bà Trưng - Hà Nội
Điện thoại: 04.38684569; Fax:04. 38684570
Website: http://nxbbk.hut.edu.vn
Chịu trách nhiệm xu ấ t bản: TS. PHÙNG LAN HƯƠNG Phản biện: PGS. TS. ĐẶNG VÃN CHUYÉT GVC. TS. PHẠM ĐẢNG HẢI Biên tập: ĐỎ THANH THÙY Sứa bàn in: v ũ THỊ HÀNG TRÀN THỊ PHƯƠNG Trình bày: TRẦN TRUNG HIẾU
In 800 cuốn khổ 16 X 24cm tại Công ty TNHH in và thương mại Sông Lam,
số 1 Phùng Chí Kiên, p. Nghĩa Đô, c ầ u Giấy, Hà Nội.
Số đăng ký KHXB: 58-2013/CXB/90-01/BKHN; ISBN: 9786049113406,
do Cục Xuất bàn cấp ngày 10/1/2013.
Số QĐXB: 205/QĐ-ĐHBK-BKHN, ngày 9/8/2013.
In xong và nộp lưu chiểu quý III năm 2013.