Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 37 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
37
Dung lượng
681,33 KB
Nội dung
Sinh viên: Trần Văn Khôi-Khoan khai thác B K57-Email: pakercandy@gmail.com Page | 1 ĐỀ THI TIN HỌC ĐẠI CƯƠNG (SỐ 1) Thời gian 60 phút 1/ Viết chương trình nhập vào một dãy số nguyên dương (n < 100), sau đó tìm các phần tử vừa là sô chẵn vừa chia hết cho 13, nếu không có phần tử nào như vậy thì in ra thông báo ? Bài giải Private Sub Command1_Click() Dim x%(100), i As Byte, n As Byte, kq As String, kq1 As String, dem As Byte Const xd = vbCrLf dem = 0 kq = "Day nhap vao la: " & xd kq1 = "Cac phan tu vua la so chan vua chia het cho 13 la: " & xd Do n = InputBox("Nhap so luong phan tu") Loop Until n > 0 And n < 100 For i = 1 To n Do x(i) = InputBox("Nhap phan tu thu " & i) Loop Until x(i) > 0 kq = kq & x(i) & " " If x(i) Mod 2 = 0 And x(i) Mod 13 = 0 Then dem = dem + 1 kq1 = kq1 & x(i) & " " End If Next Print kq If dem = 0 Then MsgBox "Khong co phan tu nao thoa man" Else Print kq1 End If End Sub Sinh viên: Trần Văn Khôi-Khoan khai thác B K57-Email: pakercandy@gmail.com Page | 2 2/ Viết chương trình nhập vào số nguyên dương n, sau đó kiểm tra xem tích các chữ số của n có phải là số chia hết cho 3 và có 2 chữ số không ? Bài giải Private Sub Command1_Click() Dim n%, s$, i As Byte, tich% Do n = InputBox("Nhap so nguyen duong n") Loop Until n > 0 Print "So ban nhap vao la: " & n s = CStr(n): tich = 1 For i = 1 To Len(s) tich = tich * Mid(s, i, 1) Next If tich Mod 3 = 0 And Len(tich) = 2 Then Print "So vua nhap co tich cac chu so vua co 2 chu so vua chia het cho 3" Else Print "So vua nhap khong thoa man" End If End Sub ĐỀ THI TIN HỌC ĐẠI CƯƠNG (SỐ 2) Thời gian 60 phút 1/ Xây dựng chương trình nhập số liệu từ tệp “DAYSO.DAT” vào một dãy số nguyên gồm n phần tử. Hãy in ra vị trí của phần tử âm đầu tiên của dãy. Nếu không có phần tử âm thì đưa ra thông báo. Ví dụ: Dãy nhập vào là : vậy phần tử âm đầu tiên trong dãy là 3. Bài giải Private Sub Command1_Click() Dim n%, x%(500), i%, dem% Open App.Path & "\DAYSO.DAT " For Input As #21 Input #21, n For i = 1 To n Input #21, x(i) If x(i) < 0 Then dem = i Exit For End If Next Close #21 If dem = 0 Then MsgBox "Khong co phan tu am nao trong day." If dem > 0 Then Print "Phan tu am dau tien trong day o vi tri thu: " & dem End Sub Sinh viên: Trần Văn Khôi-Khoan khai thác B K57-Email: pakercandy@gmail.com Page | 3 2/ Xây dựng chương trình cho phép nhập vào một số nguyên dương n. Hãy tách n thành 2 số nguyên dương a, b (n = a + b), sao cho tích P = a* đạt cực đại. Bài giải Private Sub Command1_Click() Dim n%, i%, j%, p% Do n = InputBox("Nhap so nguyen duong n") Loop Until n > 0 Print "So nguyen duong nhap vao la: " & n p = 0 For i = 1 To n - 1 For j = n - 1 To 1 Step -1 If i + j = n And i * (j ^ 2) > p Then a = i: b = j: p = i * (j ^ 2) End If Next j Next i Print "So " & n; " bang tong cua " & a & " + " _ & b; " va tich " & a & " * " & "(" & b & " ^ 2) lon nhat" End Sub Sinh viên: Trần Văn Khôi-Khoan khai thác B K57-Email: pakercandy@gmail.com Page | 4 ĐỀ THI TIN HỌC ĐẠI CƯƠNG (SỐ 3) Thời gian 60 phút 1/ Viết chương trình nhập vào một số nguyên dương n, sau đó tính biểu thức sau: S . ) , trong đó j!! = Bài giải Private Sub Command1_Click() Dim n%, i%, j%, k%, kq$, bt2!, bt3!, gtc% Const xd = vbCrLf Do n = InputBox("Nhap so nguyen duong n") Loop Until n > 0 Print "So nguyen duong nhap vao la: " & n kq = "Gia tri cua bieu thuc voi n = " & n & " la: " & xd bt2 = 0: bt3 = 0: gtc = 1 For i = 1 To n For j = 1 To i If j Mod 2 = 0 Then For k = 1 To j If k Mod 2 = 0 Then gtc = gtc * k Next k Else For k = 1 To j If k Mod 2 = 1 Then gtc = gtc * k Next k End If bt3 = bt3 + 1 / gtc gtc = 1 Next j bt2 = bt2 + Tan(i) * bt3 Next i kq = kq & bt2 Print kq End Sub Sinh viên: Trần Văn Khôi-Khoan khai thác B K57-Email: pakercandy@gmail.com Page | 5 2/ Viết chương trình nhập vào một số nguyên dương n, sau đó chèn chữ số nhỏ nhất của n vào sau các chữ số chẵn của n. Ví dụ: n = 4123, chữ số nhỏ nhất là 1, chèn 1 vào sau các chữ số chẵn của n sẽ được số 411213. Bài giải Private Sub Command1_Click() Dim n%, s$, i%, j%, min$, s1$ Do n = InputBox("Nhap so nguyen duong n") Loop Until n > 0 Print "So nguyen duong n: " & n s = CStr(n): min = Mid(s, 1, 1) For i = 1 To Len(s) If Mid(s, i, 1) < min Then min = Mid(s, i, 1) Next Print "Chu so nho nhat cua n la: " & min s1 = "" For i = 1 To Len(s) If Mid(s, i, 1) Mod 2 = 1 Then s1 = s1 & Mid(s, i, 1) Else s1 = s1 & Mid(s, i, 1) & min End If Next i Print "Ket qua sau khi chen la: " & Val(s1) End Sub ĐỀ THI TIN HỌC ĐẠI CƯƠNG (SỐ 4) Thời gian 60 phút 1/ Xây dựng chương trình nhập vào họ tên của một người. Sau đó in ra xâu họ tên với ký tự đầu tiên của các từ được đổi thành chữ hoa, các ký tự còn lại là chữ thường. Ví dụ: Họ tên nhập vào là “trAN VAN hUng” xâu sau khi in ra sẽ là “Tran Van Hung”. Bài giải Private Sub Command1_Click() Dim s$, i%, kq$ Const xd = vbCrLf s = InputBox("Nhap ho va ten cua mot nguoi") s = LCase(Trim(s)) Do While InStr(s, " ") >= 2 s = Replace(s, " ", " ") Loop For i = 1 To Len(s) Mid(s, 1, 1) = UCase(Mid(s, 1, 1)) If Mid(s, i, 1) = " " Then Mid(s, i + 1, 1) = UCase(Mid(s, i + 1, 1)) Next Print "Ho va ten da xu ly la: " & xd & s End Sub Sinh viên: Trần Văn Khôi-Khoan khai thác B K57-Email: pakercandy@gmail.com Page | 6 2/ Xây dựng chương trình nhập vào tọa độ (x;y) của hai điểm, tính và hãy kiểm tra xem hai điểm đó có đối xứng nhau qua gốc tọa độ hay không ? Bài giải Private Sub Command1_Click() Dim xa%, ya%, xb%, yb% xa = hoanhdo1.Text: ya = tungdo1.Text: xb = hoanhdo2.Text: yb = tungdo2.Text If xa = -xb And ya = -yb Then Print "Hai diem nhap vao doi xung voi nhau qua O" Else Print "Hai diem nhap vao khong doi xung qua O" End If End Sub ĐỀ THI TIN HỌC ĐẠI CƯƠNG (SỐ 5) Thời gian 60 phút 1/ Xây dựng chương trình cho phép nhập vào 1 số nguyên dương n. Hãy kiểm tra xem số đó có phải số chính phương và chia hết cho 2 hay không ? (Số chính phương là số nguyên có giá trị bằng bình phương của một số nguyên khác, ví dụ 25 = ). Bài giải Private Sub Command1_Click() Dim n%, i%, a As Byte Do n = InputBox("Nhap so nguyen duong n") Loop Until n > 0 a = 0 For i = 1 To n / 2 If i * i = n Then a = 1 Next If n Mod 2 = 0 And a = 1 Then Print "So " & n & " vua la so chinh phuong vua chia het cho 2" If n Mod 2 = 0 And a <> 1 Then Print "So " & n _ & " la so chan nhung khong phai la so chinh phuong" If n Mod 2 = 1 And a = 1 Then Print "So " & n _ & " la so chinh phong nhung khong chia het cho 2" End Sub Sinh viên: Trần Văn Khôi-Khoan khai thác B K57-Email: pakercandy@gmail.com Page | 7 2/ Xây dựng chương trình nhập vào một danh sách cán bộ gồm họ tên, ngày sinh, đơn vị. Hãy in ra thông tin của những cán bộ mang họ “Trần”. Bài giải Private Type canbo hoten As String ngaysinh As Date donvi As String End Type ______________________________________________________________________________ Private Sub Command1_Click() Dim cb(100) As canbo, i As Byte, kq$, kq1$ Const xd = vbCrLf Do n = InputBox("Nhap so luong can bo") Loop Until n > 0 kq = "Danh sach can bo nhap vao: " & xd kq1 = "Danh sach can bo co ho Tran la: " & xd For i = 1 To n cb(i).hoten = InputBox("Nhap ho ten can bo thu " & i) cb(i).ngaysinh = InputBox("Nhap ngay sinh can bo thu " & i) cb(i).donvi = InputBox("Nhap don vi cua can bo thu " & i) Next For i = 1 To n kq = kq & "Ho ten: " & cb(i).hoten & _ ". Ngay sinh: " & cb(i).ngaysinh & ". Don vi: " & cb(i).donvi & xd Next Print kq For i = 1 To n If Mid(cb(i).hoten, 1, 4) = "Tran" Then kq1 = kq1 & "Ho ten: " & cb(i).hoten & _ ". Ngay sinh: " & cb(i).ngaysinh & ". Don vi: " & cb(i).donvi & xd Next If kq1 = "Danh sach can bo co ho Tran la: " & xd Then Print "Trong danh sach khong co nguoi nao ho Tran" Else Print kq1 End If End Sub Sinh viên: Trần Văn Khôi-Khoan khai thác B K57-Email: pakercandy@gmail.com Page | 8 ĐỀ THI TIN HỌC ĐẠI CƯƠNG (SỐ 6) Thời gian 60 phút 1/ Viết chương trình nhập vào một số thực a (a 0) và một số nguyên dương n, sau đó tính: S = Bài giải Private Sub Command1_Click() Dim a!, n%, i%, s! Do a = InputBox("Nhap so thuc a") n = InputBox("Nhap so nguyen duong n") Loop Until n > 0 And a <> 0 Print "So thuc a = " & a & ", so nguyen duong n = " & n a = Abs(a) s = 0 For i = n To 1 Step -1 s = Sqr(s + a ^ (-i)) Next Print "Gia tri cua bieu thuc bang: " & xd & s End Sub 2/ Nhập vào hai số nguyên dương a và b, xét xem tổng các chữ số của (a + b) có phải là số chẵn không ? Bài giải Private Sub Command1_Click() Dim a%, b% Do a = InputBox("Nhap so nguyen duong thu nhat") b = InputBox("Nha so nguyen duong thu 2") Loop Until a > 0 And b > 0 Print "So thu nhat la: " & a: Print "So thu hai la: " & b If (a + b) Mod 2 = 0 Then Print "Tong " & a & " + " & b & " chia het cho 2" Else Print "Tong " & a & " + " & b & " khong chia het cho 2" End If End Sub Sinh viên: Trần Văn Khôi-Khoan khai thác B K57-Email: pakercandy@gmail.com Page | 9 ĐỀ THI TIN HỌC ĐẠI CƯƠNG (SỐ 7) Thời gian 60 phút 1/ Viết chương trình nhập vào một dãy số nguyên (0 < n <100), sau đó đếm các phần tử là số chẵn và nằm trong khoảng (-1000, 1000). Bài giải Private Sub Command1_Click() Dim x%(100), i As Byte, dem% Do n = InputBox("Nhap so luong phan tu") Loop Until n > 0 And n < 100 dem = 0 For i = 1 To n x(i) = InputBox("Nhap phan tu thu " & i) If x(i) Mod 2 = 0 And x(i) > -1000 And x(i) < 1000 Then dem = dem + 1 Next If dem = 0 Then Print "Khong co phan tu nao chia het cho 2 vao thuoc (-1000,1000)" Else Print "So phan tu chia het cho 2 va thuoc khoang (-1000,1000) la: " & dem & " so." End If End Sub 2/ Viết chương trình nhập vào một số nguyên dương n và tính giá trị sau: S = ln( n + ln((n – 1) + ln((n – 2) + + ln(2 + ln(1)) ) Bài giải Private Sub Command1_Click() Dim n%, i%, s! Do n = InputBox("Nhap so nguyen duong n") Loop Until n > 0 s = 0 For i = 1 To n s = Log(s + i) Next Print "Gia tri cua bieu thuc bang: " & s End Sub Sinh viên: Trần Văn Khôi-Khoan khai thác B K57-Email: pakercandy@gmail.com Page | 10 ĐỀ THI TIN HỌC ĐẠI CƯƠNG (SỐ 8) Thời gian 60 phút 1/ Viết chương trình nhập vào một dãy số nguyên dương (n < 100), kiểm tra xem phần tử max của dãy số này có phải là số lẻ và chia hết cho 7 không ? Bài giải Private Sub Command1_Click() Dim x%(100), i As Byte, max%, n As Byte Do n = InputBox("Nhap so luong phan tu") Loop Until n > 0 And n < 100 For i = 1 To n x(i) = InputBox("Nhap phan tu thu " & i) Next max = x(1) For i = 2 To n If x(i) > max Then max = x(i) Next Print "Gia tri lon nhat cua day so la: " & max If max Mod 2 = 1 And max Mod 7 = 0 Then Print max & " vua la so le vua chia het cho 7" If max Mod 2 = 1 And max Mod 7 <> 0 Then Print max & " la so le nhung khong chia het cho 7" If max Mod 2 <> 1 And max Mod 7 = 0 Then Print max & " khong la so le nhung chia het cho 7" If max Mod 2 <> 1 And max Mod 7 <> 0 Then Print max & " khong la so le va cung khong chia het cho 7" End Sub 2/ Viết chương trình nhập vào một số thực dương a và một số nguyên dương n , tính giá trị sau: S = Bài giải Private Sub Command1_Click() Dim a!, n%, s!, i% Do a = InputBox("Nhap so thuc duong a") n = InputBox("Nhap so nguyen duong n") Loop Until n > 0 And a > 0 Print "So thuc a = " & a & ", so nguyen n = " & n s = 0 For i = n To 1 Step -1 s = Sqr(s + 1 / (a ^ i)) Next Print "Gia tri cua bieu thuc bang: " & s End Sub [...]... Trần Văn Khôi-Khoan khai thác B K57-Email: pakercandy@gmail.com ĐỀ THI TIN HỌC ĐẠI CƯƠNG (SỐ 18) Thời gian 60 phút 1/ Viết chương trình nhập vào một dãy số thực x1 , x2 , … , xn (n < 100), và nhập vào một số nguyên dương i với điều kiện 0 < i < n, sau đó đổi chỗ phần tử thứ i cho phần tử thứ nhất của dãy, và in ra dãy số kết quả ? Bài giải Private Sub Command1_Click() Dim x!(100), n As Byte, i As Byte,... End Sub Page | 35 Sinh viên: Trần Văn Khôi-Khoan khai thác B K57-Email: pakercandy@gmail.com ĐỀ THI TIN HỌC ĐẠI CƯƠNG (SỐ 25) Thời gian 60 phút 1/ Viết chương trình nhập vào một só nguyên dương n, sau đó kiểm tra xem các chữ số của n đều là số chẵn hay không? Ví dụ n = 2440, các chữ số 2,4,4,0 đều là số chẵn Bài giải Private Sub Command1_Click() Dim n%, s$, i As Byte, dem As Byte Do n = InputBox("Nhap... min End Sub Page | 25 Sinh viên: Trần Văn Khôi-Khoan khai thác B K57-Email: pakercandy@gmail.com ĐỀ THI TIN HỌC ĐẠI CƯƠNG (SỐ 20) Thời gian 60 phút 1/ Viết chương trình nhập vào một dãy số nguyên dương x1 , x2 , … , xn (0 < n < 100), sau đó tính trung bình cộng của các chữ số của phần tử 𝑥 𝑖 (i = 1,2, n) trong dãy ? Ví dụ: Dãy nhập vào là: {23,45} , dãy kết quả là {2.5, 4.5} Bài giải Private Sub Command1_Click()... viên: Trần Văn Khôi-Khoan khai thác B K57-Email: pakercandy@gmail.com ĐỀ THI TIN HỌC ĐẠI CƯƠNG (SỐ 23) Thời gian 60 phút 1/ Viết chương trình nhập vào 2 dãy số thực {𝑎1 , 𝑎2 , … , 𝑎 𝑛 } (0 < n 0, với các giá trị thực b và c nhập vào từ bàn phím ? Bài giải Private Sub Command1_Click() Dim b!, c!, delta!, e!, d! b = InputBox("Nhap so thuc b") c = InputBox("Nhap so thuc c") Print... Sinh viên: Trần Văn Khôi-Khoan khai thác B K57-Email: pakercandy@gmail.com ĐỀ THI TIN HỌC ĐẠI CƯƠNG (SỐ 19) Thời gian 60 phút 1/ Viết chương trình nhập số liệu từ tệp “DAYSO.DAT” vào một số thực dương x1 , x2 , … , xn (0 < n < 30), sau đó tính: S = n!𝑥1 1/𝑛 + (n - 1)!𝑥21/(𝑛−1) + (n – 2)!𝑥31/(𝑛−2) + + 1!𝑥 𝑛 1/1 + 1 Bài giải Cách 1 Private Sub Command1_Click() Dim n%, x!(30), i%, s!, gt&, j%, k% Open... End Sub Page | 16 Sinh viên: Trần Văn Khôi-Khoan khai thác B K57-Email: pakercandy@gmail.com ĐỀ THI TIN HỌC ĐẠI CƯƠNG (SỐ 14) Thời gian 60 phút 1/ Viết chương trình nhập vào một dãy số thực x1 , x2 , … , xn (0 < n < 100), sau đó tính và in ra giá trị của biểu thức: 𝑛 𝑛 S = (∑ 𝑖=1 𝑥 𝑖 )2 (∑ 𝑖=1 𝑥 𝑖 2 𝑖−1 ) Bài giải Private Sub Command1_Click() Dim x!(100), n As Byte, i As Byte, tong!, s!, s1! Do n =... Print "Trung binh cong cua cac phan tu la so chan va nho hon 1000 la: " & _ tong / dem End If End Sub ĐỀ THI TIN HỌC ĐẠI CƯƠNG (SỐ 17) Thời gian 60 phút 1/ Viết chương trình nhập số thực x và một số nguyên dương n , sau đó tính và in ra giá trị của biểu thức: S = 1 – x + 𝑥 2 - 𝑥 3 + + (−1) 𝑛 𝑥 𝑛 Bài giải Private Sub Command1_Click() Dim x!, n%, i%, s! x = InputBox("Nhap so thuc x") Do n = InputBox("Nhap... s End Sub Page | 13 Sinh viên: Trần Văn Khôi-Khoan khai thác B K57-Email: pakercandy@gmail.com ĐỀ THI TIN HỌC ĐẠI CƯƠNG (SỐ 11) Thời gian 60 phút 1/ Viết chương trình nhập vào một dãy số nguyên dương x1 , x2 , … , xn (0 < n < 100), sau đó tính tổng các phần tử 𝑥 𝑖 (i = 1,2, n) là số lẻ và lớn hơn 99 ? Bài giải Private Sub Command1_Click() Dim x%(100), n As Byte, i As Byte, tong%, dem As Byte, kq$ Do...Sinh viên: Trần Văn Khôi-Khoan khai thác B K57-Email: pakercandy@gmail.com ĐỀ THI TIN HỌC ĐẠI CƯƠNG (SỐ 9) Thời gian 60 phút 1/ Viết chương trình nhập vào một dãy số thực x1 , x2 , … , xn (n < 100), tìm trung bình cộng của các phần tử của dãy nằm trong đoạn [−100; 100] ? Bài giải Private Sub Command1_Click() Dim x!(100), i As Byte, n As Byte, tong!, dem%, kq$ Do n = InputBox("Nhap . pakercandy@gmail.com Page | 15 ĐỀ THI TIN HỌC ĐẠI CƯƠNG (SỐ 12) Thời gian 60 phút 1/ Giải bất phương trình -7 + bx + c > 0, với các giá trị thực b và c nhập vào từ bàn phím ? Bài giải Private Sub. K57-Email: pakercandy@gmail.com Page | 8 ĐỀ THI TIN HỌC ĐẠI CƯƠNG (SỐ 6) Thời gian 60 phút 1/ Viết chương trình nhập vào một số thực a (a 0) và một số nguyên dương n, sau đó tính: S =. 9 ĐỀ THI TIN HỌC ĐẠI CƯƠNG (SỐ 7) Thời gian 60 phút 1/ Viết chương trình nhập vào một dãy số nguyên (0 < n <100), sau đó đếm các phần tử là số chẵn và nằm