Bài tập ngôn ngữ lập trình c

21 739 1
Bài tập ngôn ngữ lập trình c

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Bài tập ngôn ngữ lập trình c

BÀI TẬP NGÔN NGỮ LẬP TRÌNH C TRƯỜNG ĐẠI HỌC KHOA HỌC HUẾ KHOA CÔNG NGHỆ THÔNG TIN A NHẬP XUẤT DỮ LIỆU B LƯU ĐỒ - THUẬT TOÁN C CẤU TRÚC RẼ NHÁNH D CẤU TRÚC LẶP E HÀM – ĐỆ QUY F MẢNG MỘT CHIỀU 12 G CHUỖI 17 02/2013 10/2011 KHOA CÔNG NGHỆ THÔNG TIN, TRƯỜNG ĐẠI HỌC KHOA HỌC HUẾ A NHẬP XUẤT DỮ LIỆU Viết chương trình: Tính tổng, hiệu, tích thương hai số nguyên dương Nhập a, Tổng: Hiệu: Tích: Thương: b: 6 + = – = x = / = 10 24 1.50 Tính bậc số thực Nhập số thực: Căn bậc 2.646 Hiển thị mã ASCII kí tự Nhập ký tự: A Mã ASCII ký tự A là: 65 Hiển thị ký tự biết mã ASCII Nhập mã ASCII ký tự: 97 Ký tự có mã ASCII 97 là: a Tính trung bình cộng số nguyên Nhập a, b, c: Trung bình cộng 3, 4, là: 4.67 Tính khoảng cách điểm mặt phẳng Nhập tọa độ điểm A: Nhập tọa độ điểm B: Khoảng cách A(2,3) B(4,6) 3.6 Tính chu vi diện tích hình tròn biết bán kính (sử dụng : PI = 3.1416) Nhập bán kính (theo mét): Đường tròn bán kính 4m có chu vi 25.13 met Hình tròn bán kính 4m có diện tích 50.27 met vuong Tính chu vi diện tích hình chữ nhật biết chiều dài chiều rộng Nhập chiều dài, chiều rộng: Chu vi diện tích hình chữ nhật 4x6 la: 20 24 BÀI TẬP NGÔN NGỮ LẬP TRÌNH C (BẢN CHƯA HO[N THI ỆN) | NHẬP XUẤT 10/2011 KHOA CÔNG NGHỆ THÔNG TIN, TRƯỜNG ĐẠI HỌC KHOA HỌC HUẾ * Tính tổng, hiệu, tích, thương hai phân số (tử mẫu số nguyên dương) Nhập phân số Nhập phân số 2/3 cộng 3/4 2/3 trừ 3/4 2/3 nhân 3/4 2/3 chia 3/4 thứ (tử, mẫu): thứ (tử, mẫu): = 1.42 = -0.08 = 0.50 = 0.89 B LƯU ĐỒ - THUẬT TOÁN Thiết kế thuật toán sơ đồ khối: Xác định vị trí (thuộc góc phần tư thứ mấy) góc Nhập vào góc (theo độ): 95 Thuộc góc phần tư thứ 2 Xác định số ngày tháng năm năm nhuận Nhập vào tháng: 10 Tháng 10 có 31 ngày! Kiểm tra xem số thực a, b, c độ dài cạnh tam giác không Nhập vào số thực: - a = - b = - c = Đây độ dài cạnh tam giác Tìm ước chung lớn hai số nguyên dương Nhập a: 20 Nhập b: 15 UCLN(a,b): 5 Tính X(n) = + + + … + n Nhập n (n>0): X(3) = 6 Tính Y(n) = × × × … × n Nhập n (n>0): Y(3) = 24 Tính Z(n) = + + + … + 2n Nhập n (n>0): Z(3) = 12 BÀI TẬP NGÔN NGỮ LẬP TRÌNH C (BẢN CHƯA HO[N THI ỆN) | LƯU ĐỒ - TH 10/2011 KHOA CÔNG NGHỆ THÔNG TIN, TRƯỜNG ĐẠI HỌC KHOA HỌC HUẾ Tính A(n) = × × × … × (2n+1) Nhập n (n>0): A(3) = 105 Tính C(n) = 12 + 22 + 32 + … + n2 Nhập n (n>0): C(3) = 14 10 Tính B(n) = – + – + … + (-1)n+1n Nhập n (n>0): B(3) = 11 * Tính D(n) = + (1+2) + (1+2+3) + … + (1+2+3+…+n), với n > Nhập n (n>0): D(3) = 10 12 * Tính trung bình cộng n số thực nhập từ bàn phím Nhập số (nhập Nhập số (nhập Nhập số (nhập Nhập số (nhập Trung bình cộng để dừng): để dừng): để dừng): để dừng): số thực là: C CẤU TRÚC RẼ NHÁNH Viết chương trình: Xác định xem số nguyên chẵn hay lẻ Nhập số nguyên n: 8 số chẵn Xác định học lực dựa vào điểm trung bình sinh viên, biết: Điểm trung bình [0, 4) [4, 5) [5, 6.5) [6.5, 8) [8, 9) [9, 10] Học lực Kém Yếu Trung bình Khá Giỏi Xuất sắc Nhập điểm trung bình: Học lực sinh viên Giỏi Xác định số có giá trị lớn hai số thực a, b Nhập số thực thứ nhất: 12.3 Nhập số thực thứ hai: 3.7 Max(12.30, 3.70) = 12.30 BÀI TẬP NGÔN NGỮ LẬP TRÌNH C (BẢN CHƯA HO[N THI ỆN) | CẤU TRÚC R 10/2011 KHOA CÔNG NGHỆ THÔNG TIN, TRƯỜNG ĐẠI HỌC KHOA HỌC HUẾ Xác định số có giá trị lớn nhỏ ba số nguyên a, b, c Nhập số thứ nhất: Nhập số thứ hai: Nhập số thứ ba: Min(2, 5, 4) = Max(2, 5, 4) = 5 Giải biện luận phương trình bậc nhất: ax + b = (a, b ) Nhập a, b: 1.5 Phương trình có nghiệm: x = -2 Giải biện luận phương trình bậc hai: ax2 + bx + c = (a, b, c ) Nhập a, b, c: -3 Phương trình có nghiệm phân biệt: x1 = 1, x2 = Hiển thị số tự nhiên từ đến dạng chữ Nhập số (0 9): Số đọc chín Nhập vào số tự nhiên a, b c Xác định xem độ dài cạnh tam giác hay không Nếu có tính diện tích tam giác đồng thời kiểm tra xem có phả i tam giác đặc biệt hay không (cân, đều, vuông) Nhập a, b, c: Đây cạnh tam giác vuông có diện tích Nhập a, b, c: Đây cạnh tam giác có diện tích 5.33 Xác định chữ số lớn số nguyên gồm ba chữ số Nhập số nguyên (gồm chữ số): 362 Chữ số lớn 10 Tính tổng chữ số số nguyên gồm ba chữ số Nhập số nguyên (gồm chữ số): 362 Tổng chữ số 11 11 Xác định số ngày tháng Nhập vào tháng, năm: 10 2011 Tháng 10/2011 có 31 ngày! 12 Tính tiền cước Taxi Biết rằng: 1km 13000đ, km 12000đ, lớn 30km km thêm 11000đ Nhập số km: 31 Tiền cước: 372000 đồng BÀI TẬP NGÔN NGỮ LẬP TRÌNH C (BẢN CHƯA HO[N THI ỆN) | CẤU TRÚC R 10/2011 KHOA CÔNG NGHỆ THÔNG TIN, TRƯỜNG ĐẠI HỌC KHOA HỌC HUẾ 13 Nhập vào hai số tự nhiên tương ứng chiều rộng chiều dài hình chữ nhật Cho biết hình vuông, hình chữ nhật đứng hay hình chữ nhật nằm Nhập vào chiều dài, chiều rộng: Đây hình chữ nhật đứng 14 Tính cước sử dụng ADSL tháng biết dung lượng sử dụng, biết: Dung lượng 500 MB đầu 500 MB 500 MB Các MB Giá MB 50 đồng 40 đồng 30 đồng 20 đồng Nếu thuê bao sử dụng nhiều tối đa lấy 299000 đồng Nhập số MB sử dụng thuê bao: 810 Tiền cước: 37400 đồng 15 * Xác định thời điểm (sau giây) thời điểm (giả sử thời điểm vào hợp lệ) Nhập vào giờ, phút, giây: 01 59 59 01:59:59 sau giây 02:00:00 16 * Xác định ngày ngày (giả sử ngày nhập vào hợp lệ) Nhập vào ngày, tháng, năm: 31 10 2011 Ngày ngày 31/10/2011 ngày 01/11/2011 D CẤU TRÚC LẶP Viết chương trình: Tính n!, với n số nguyên dương Nhập n: 4! = 24 Tính n!, với n số nguyên dương Nhập n: 4! = 1*2*3*4 = 24 Tìm tất ước số số nguyên dương Nhập số nguyên dương: Các ước số là: Tìm tất phương án kết hợp loại giấy bạc 100đ, 200đ, 500đ với số tiền 10000đ Phương án 1: tờ 100đ, tờ 200đ, 18 tờ 500đ Phương án 2: tờ 100đ, 10 tờ 200đ, 16 tờ 500đ … Phương án 537: 98 tờ 100đ, tờ 200đ, tờ 500đ BÀI TẬP NGÔN NGỮ LẬP TRÌNH C (BẢN CHƯA HO[N THI ỆN) | CẤU TRÚC L 10/2011 KHOA CÔNG NGHỆ THÔNG TIN, TRƯỜNG ĐẠI HỌC KHOA HỌC HUẾ Trả lời câu hỏi sau cách duyệt tất cách để tìm kết quả: Yêu cau sáu bổ ba Ghét cau sáu bổ làm mười Mỗi người miếng trăm người Có mười bảy hỏi người ghét yêu Đáp án: có người thương người ghét Tìm phương án tối ưu (số tờ tiền nhất) kết hợp loại giấy bạc 100đ, 200đ, 500đ với số tiền 10000đ Phương án tối ưu: tờ 100đ, tờ 200đ, 19 tờ 500đ Kiểm tra xem số nguyên dương n có số nguyên tố hay không? Nhập số nguyên dương: 23 23 số nguyên tố Kiểm tra xem số nguyên n ≥ có phải số nguyên tố hay không? Nếu số nguyên tố (hợp số) đưa ví dụ (tích a*b a, b khác n) để chứng minh Nhập số nguyên dương: 23 23 số nguyên tố Nhập số tự nhiên: 15 15 hợp số 15 = 3*5 Tìm số nguyên tố nhỏ số nguyên dương n cho trước Nhập số nguyên dương: 11 Các số nguyên tố nhỏ là: 10 Kiểm tra xem số nguyên dương n có phải số phương không? Nhập số nguyên dương: 14 14 không số phương Nhập số nguyên dương: 25 25 môt số phương 25 = 5*5 11 Kiểm tra xem số nguyên dương n có phải số hoàn hảo hay không? (Số hoàn hảo số có tổng tất ước số hai lần nó) Nhập số nguyên dương: 6 số hoàn hảo 12 Đếm xem số tự nhiên n có chữ số Nhập số tự nhiên: 1420 Số chữ số 1420 BÀI TẬP NGÔN NGỮ LẬP TRÌNH C (BẢN CHƯA HO[N THI ỆN) | CẤU TRÚC L 10/2011 KHOA CÔNG NGHỆ THÔNG TIN, TRƯỜNG ĐẠI HỌC KHOA HỌC HUẾ 13 Hiển thị chữ số số tự nhiên n theo thứ tự từ phải sang trái Nhập số tự nhiên: 1420 Các chữ số 1420 14 Tính tổng chữ số số tự nhiên n Nhập số tự nhiên: 1420 Tổng chữ số 1420 15 Tìm chữ số lớn số tự nhiên n Nhập số tự nhiên: 1420 Chữ số lớn 1420 16 Kiểm tra xem số nguyên dương n có phải số Amstrong hay không? (Một số gọi số Amstrong ) Nhập số nguyên dương: 153 153 số Amstrong 17 Tìm ước số chung lớn bội số chung nhỏ hai số nguyên dương a, b Nhập hai số nguyên dương: Ước số chung lớn Bội số chung nhỏ 18 18 Đọc số tự nhiên Nhập số tự nhiên: 1410 Đọc là: bốn không 19 Lấy chữ số vị trí (tính từ phải sang trái) số tự nhiên Nhập số tự nhiên: 1410 Bạn muốn lấy chữ số vị trí thứ:3 Chữ số vị trí thứ (từ phải sang trái) số 1410 : 20 Lấy chữ số vị trí (tính từ trái sang phải) số tự nhiên Nhập số tự nhiên: 1410 Bạn muốn lấy chữ số vị trí thứ:3 Chữ số vị trí thứ (từ trái sang phải) số 1410 : 21 Liệt kê số hoàn hảo nhỏ 9000 Số hoàn hảo số có tổng ước số (không kể nó) Ví dụ: số số hoàn hảo tổng ước số 1+2+3=6 Các số hoàn hảo nhỏ 9000 là: 28 496 8128 22 Liệt kê tất số có chữ số cho tổng lập phương chữ số số 153 370 371 407 BÀI TẬP NGÔN NGỮ LẬP TRÌNH C (BẢN CHƯA HO[N THI ỆN) | CẤU TRÚC L 10/2011 KHOA CÔNG NGHỆ THÔNG TIN, TRƯỜNG ĐẠI HỌC KHOA HỌC HUẾ 23 In bảng cửu chương từ đến 5 5 5 5 x x x x x x x x x = = = = = = = = = 10 15 20 25 30 35 40 45 | | | | | | | | | 6 6 6 6 x x x x x x x x x = = = = = = = = = 12 18 24 30 36 42 48 54 | | | | | | | | | 7 7 7 7 x x x x x x x x x = = = = = = = = = 14 21 28 35 42 49 56 63 | | | | | | | | | 8 8 8 8 x x x x x x x x x = = = = = = = = = 16 24 32 40 48 56 64 72 | | | | | | | | | 9 9 9 9 x x x x x x x x x = = = = = = = = = 18 27 36 45 54 63 72 81 | | | | | | | | | 24 Vẽ hình chữ nhật đặc kích thước m×n dấu * Nhập m, * * * * * * * * * * * * * * * * n: * * * * 25 Vẽ hình chữ nhật rỗng kích thước m×n Nhập m, * * * * * * * * * * n: * * * * 26 Vẽ tam giác vuông cân đặc có độ dài cạnh a Nhập độ dài cạnh: * * * * * * * * * * 27 Vẽ tam giác cân có chiều cao h Nhập chiều cao tam giác: * * * * * * * * * * * * * * * * 28 Vẽ tam giác cân rỗng có chiều cao h Nhập chiều cao tam giác: * * * * * * * * * * * * BÀI TẬP NGÔN NGỮ LẬP TRÌNH C (BẢN CHƯA HO[N THI ỆN) | CẤU TRÚC L 10/2011 KHOA CÔNG NGHỆ THÔNG TIN, TRƯỜNG ĐẠI HỌC KHOA HỌC HUẾ 29 * Liệt kê tất số Fibonacci nhỏ số tự nhiên n Dãy số Fibonacci { định nghĩa sau: } { Nhập n: 20 1 13 30 * Tính với độ xác 0.01 ( tính theo độ) Biết: với tính theo radian Nhập góc (theo độ): 30 sin(30) = 0.5 31 * Tính với độ xác 0.01 ( tính theo độ) Biết: với tính theo radian Nhập góc (theo độ): 30 cos(60) = 0.5 32 * Tính π với độ xác đến k chữ số sau dấu chấm thập phân, biết: Độ xác (số chữ số sau dấu chấm thập phân): PI = 3.142 Độ xác (số chữ số sau dấu chấm thập phân): PI = 3.1416 E HÀM – ĐỆ QUY Viết chương trình (có sử dụng hàm): Tìm số lớn số thực Nhập số thực: 1.3 7.4 Số lớn là: 7.4 Gợi ý: xây dựng hàm có tham số kiểu số thực (float double ), giá trị trả hàm kiểu số thực (float double ) BÀI TẬP NGÔN NGỮ LẬP TRÌNH C (BẢN CHƯA HO[N THI ỆN) | HÀM – ĐỆ Q 10/2011 KHOA CÔNG NGHỆ THÔNG TIN, TRƯỜNG ĐẠI HỌC KHOA HỌC HUẾ Kiểm tra năm nhuận Chương trình kết thúc nhấn phím ESC Nhập vào năm: 1993 Đây năm nhuận Nhấn phím ESC để thoát, phím để tiếp tục (giả sử nhấn ENTER) Nhập vào năm: 1996 Đây năm nhuận Nhấn phím ESC để thoát, phím để tiếp tục (giả sử nhấn ESC) Chú ý: Năm nhuận năm:  Chia hết cho không chia hết cho 100,  Chia hết cho 400 Gợi ý:  Sử dụng hàm getch() để đọc ký tự hỏi có tiếp tục không  Mã ASCII ESC 27  Sử dụng cấu trúc while để lặp Kiểm tra số nguyên dương có phải nguyên tố không ? Chương trình kết thúc nhập vào số không Nhập vào số nguyên dương (0 để dừng): > số nguyên tốt có ước số Nhập vào số nguyên dương (0 để dừng): 13 > 13 số nguyên tố Nhập vào số nguyên dương (0 để dừng): Gợi ý: Viết hàm để kiểm tra SNT (có đối số số nguyên cần kiểm tra, giá trị trả có kiểu int : =1 SNT, =0 không SNT) sau s dụng cấu trúc while để lặp Trong vòng lặp, trước tiên nhập số nguyên x sau có gọi hàm kiểm tra SNT Tìm số nguyên tố thuộc đoạn [a,b], với a, b hai số nguyên dương cho trước a < b Nhập đoạn [a,b]: 10 20 Các số nguyên tố đoạn [10,20] là: 11, 13, 17, 19 Có tất số Gợi ý: Duyệt số nguyên từ a đến b Với số nguyên, gọi hàm kiểm tra SNT Nếu SNT xuất hình đồng thời « đếm » Để « đếm » số SNT tìm được, cần biến kiểu nguyên, ban đầu khởi tạo =0, lần « đếm » đơn giản tăng biến lên Tính an với n số tự nhiên theo cách đệ quy không đệ quy Tính giai thừa số tự nhiên cách đệ quy không đệ quy Nhập n: 4! = 24 Tính S = 0! + 1! + 2! + 3! + … + n!, với n số tự nhiên Nhập n: S = 0! + 1! + 2! + 3! + 4! = 34 BÀI TẬP NGÔN NGỮ LẬP TRÌNH C (BẢN CHƯA HO[N THI ỆN) | HÀM – ĐỆ Q 10 10/2011 KHOA CÔNG NGHỆ THÔNG TIN, TRƯỜNG ĐẠI HỌC KHOA HỌC HUẾ Gợi ý: Có cách để làm:  Sử dụng hàm tính giai thừa Cách không tối ưu tính (k+1)! không tận dụng k! tính trước  Giả sử tính xong S = 1! + 2! + … + k! cần phải tính tiếp (k+1)! + (k+2)! + … + n! để bổ sung vào S Để tính tiếp (k+1)! cộng dồn vào S mà tính lại từ đầu (nghĩa (k+1)! = * * … * (k+1)) cần tạo biến gt để lưu giá trị giai thừa tính (gt = k!) Cứ lần tính (k+1)! để cộng dồn vào S gán lại gt = gt * (k+1) S = S + gt Tính Cnk với n, k số nguyên dương k n Nhập n, k: C(5,3) = 10 Tìm ước số chung lớn hai số nguyên dương Nhập a, b: 12 UCLN(8,12) = 10 Tìm bội số chung nhỏ hai số nguyên dương Nhập a, b: BCLN(4,6) = 12 11 Tìm ước số chung lớn ba số nguyên dương Nhập a, b, c: 12 10 UCLN(8,12,10) = 12 Tìm bội số chung nhỏ ba số nguyên dương Nhập a, b: BCLN(4,6,5) = 60 13 Tính tổng chữ số số nguyên dương Nhập số nguyên dương: 465 Tổng chữ số 465 15 14 Hiển thị số tự nguyên tố nằm đoạn [a, b], biết số tự nguyên tố số có tổng chữ số số nguyên tố Trên hàng ghi tối đa 20 số Nhập a, b: 10 99 Các số tự nguyên tố thuộc đoạn [10,99] là: 10 11 12 14 16 20 21 23 25 29 30 32 34 38 41 43 47 49 50 52 56 58 61 65 67 70 74 76 83 85 89 92 94 98 15 Tìm số đảo ngược số nguyên dương Nhập số nguyên dương: 1340 Số đảo ngược 1340 số 431 BÀI TẬP NGÔN NGỮ LẬP TRÌNH C (BẢN CHƯA HO[N THI ỆN) | MẢNG MỘT 11 10/2011 KHOA CÔNG NGHỆ THÔNG TIN, TRƯỜNG ĐẠI HỌC KHOA HỌC HUẾ 16 Tìm số Fibonacci lớn nhỏ số nguyên n cho trước theo cách đệ quy không đệ quy Nhập n: 15 Fibonacci lớn nhỏ 15 13 F MẢNG MỘT CHIỀU Viết chương trình: Nhập vào mảng A gồm n (n ≤ 100) phần tử số nguyên, sau hiển thị mảng vừa nhập lên hình theo dạng sau: a a0 a1 a2 … an-1 Các phần tử khoảng trắng b a0,a1,a2,…,an-1 Các phần tử dấu phẩy c Các phần tử khoảng trắng bao cặp dấu [ ] [a0 a1 a2 … an-1] a Nhập Nhập Nhập Nhập Nhập Nhập Nhập Nhập Mảng Mảng Mảng vào số phần tử mảng: phần tử thứ 1: phần tử thứ 2: phần tử thứ 3: phần tử thứ 4: phần tử thứ 5: phần tử thứ 6: 10 phần tử thứ 7: vừa nhập là: 10 vừa nhập là: 1,2,8,4,7,10,9 vừa nhập là: [1 10 9] Khởi tạo mảng có 10 phần tử số nguyên khác đôi Tìm vị trí giá trị phần tử có giá trị lớn mảng Phần tử có giá trị lớn mảng [2 -3 -10 0] phần tử thứ 5, có giá trị Gợi ý: Cần biến để lưu giá trị lớn (vd: max ) vị trí tương ứng (vd: maxi ) Khởi tạo max = giá trị phần tử đầu tiên, maxi = (tức vị trí phần tử đầu tiên) Duyệt từ phần tử thứ cuối mảng, với phần tử, thấy giá trị lớn max cập nhật max maxi Sinh mảng gồm n (n ≤ 50) phần tử số nguyên ngẫu nhiên có giá trị thuộc [0, 127] Nhập số phần tử: Mảng ngẫu nhiên gồm phần tử là: [3 100 97 23] Gợi ý:  Xây dựng hàm để tạo ngẫu nhiên mảng Hàm có đối số mảng số phần tử mảng Hàm không cần giá trị trả (void) Để ngẫu nhiên số nguyên, cần include stdlib.h time.h Trước sinh ngẫu nhiên, gọi srand(time(NULL)) để khởi động sinh ngẫu nhiên Nếu không gọi lần chạy chương trình số “ngẫu nhiên” Mỗi lần muốn có số ngẫu nhiên gọi hàm rand() Hàm trả số nguyên ngẫu nhiên từ đếm RAND_MAX BÀI TẬP NGÔN NGỮ LẬP TRÌNH C (BẢN CHƯA HO[N THI ỆN) | MẢNG MỘT 12 10/2011 KHOA CÔNG NGHỆ THÔNG TIN, TRƯỜNG ĐẠI HỌC KHOA HỌC HUẾ  Trong chương trình chính, khai báo mảng nguyên a biến n lưu số phần tử mảng Gọi hàm tạo mảng ngẫu nhiên trên, sau xuất mảng vừa tạo hình Sinh mảng gồm n (n ≤ 40) phần tử số thực ngẫu nhiên có giá trị thuộc [0, 100] Nhập số phần tử: Mảng ngẫu nhiên gồm phần tử là: [3.00 7.20 95.21 97.36 23.23] Sắp xếp tăng dần mảng số nguyên có kích thước n (n ≤ 50) phần tử sinh ngẫu nhiên, giá trị phần tử thuộc [1, 500] Nhập số phần tử: Mảng ngẫu nhiên gồm phần tử là: [64 32 66 97 23] Mảng sau xếp là: [23 32 64 66 97] Gợi ý:  Sử dụng hàm tạo câu để sinh ngẫu nhiên mảng  Tạo hàm để xếp mảng Hàm nhận đối số: mảng nguyên số nguyên số phần tử mảng Hàm giá trị trả  Trong chương trình chính, khai báo mảng nguyên a biến n lưu số phần tử mảng Gọi hàm tạo mảng ngẫu nhiên trên, sau gọi hàm xếp mảng cuối xuất mảng vừa xếp hình Khởi tạo hai mảng A B có kích thước n m phần tử (n, m ≤ 40) chứa số nguyên phạm vi [1, 500] Sắp xếp hai mảng theo thứ tự tăng dần, sau trộn mảng lại với cho mảng nhận mảng tăng dần Mảng ban đầu: A: [4 2] B: [6 5] Mảng sau xếp: A: [2 9] B: [1 8] Trộn mảng A B ta được: [1 9] Gợi ý:  Sử dụng câu để xếp mảng theo thứ tự tăng dần  Trộn hai mảng cách: sử dụng hai biến i j vị trí hai mảng A B Bạn đầu, i=j=0 Sẽ lặp i=m j=n Mỗi lần lặp bổ sung a[i] b[j] vào mảng C đồng thời tăng i j tùy theo giá trị a[i] b[j] (phần tử nhỏ bổ sung) Khi i=m j=n, nghĩa có mảng duyệt hết, đơn giản duyệt phần tử mảng bổ sung vào C  Xuất mảng C hình Nhập vào mảng số thực gồm n (n ≤ 30) phần tử, sau kiểm tra xem mảng có đối xứng hay không Một mảng { } gọi đối xứng Mảng A: [7.2 5.0 5.0 7.2] Mảng đối xứng Mảng A: [1.0 3.3 3.3 2.0] Mảng không đối xứng BÀI TẬP NGÔN NGỮ LẬP TRÌNH C (BẢN CHƯA HO[N THI ỆN) | MẢNG MỘT 13 10/2011 KHOA CÔNG NGHỆ THÔNG TIN, TRƯỜNG ĐẠI HỌC KHOA HỌC HUẾ Gợi ý: Kiểm tra tính đối xứng cách cho biến i chạy từ đến n/2, kiểm tra xem có phần tử tương ứng an-i hay không Nếu có tiếp tục duyệt, ngược lại dừng kết luận mảng không đối xứng Nếu duyệt xong, nghĩa thỏa mãn tính đối xứng kết luận mảng đối xứng Nhập vào mảng số nguyên gồm n (n ≤ 20) phần tử sau tính trung bình cộng số chẵn Nhập vào số phần tử mảng: Phần tử thứ 1: Phần tử thứ 2: Phần tử thứ 3: Phần tử thứ 4: Trung bình cộng số chẵn là: 5.00 Liệt kê phần tử có giá trị nhỏ x mảng gồm n (n ≤ 30) phần tử số thực sinh ngẫu nhiên, phần tử có giá trị thuộc đoạn [0, 10] Nhập vào số phần tử mảng: Mảng sinh ngẫu nhiên gồm phần tử là: [2.3 8.5 4.0 7.2 10.0 9.8] Nhập vào x: 5.3 Có phần tử mảng có giá trị nhỏ 5.3 Đó là: 2.3 4.0 10 Nhập vào mảng số thực gồm n (n ≤ 100) phần tử số nguyên k Xóa phần tử thứ k mảng Nhập Phần Phần Phần Phần Nhập Mảng vào số phần tử mảng: tử thứ 1: 3.2 tử thứ 2: 2.3 tử thứ 3: 5.6 tử thứ 4: 8.4 vị trí phần tử cần xóa: sau xóa phần tử thứ là: 3.2 5.6 8.4 11 Xây dựng hàm để xóa phần tử có giá trị x mảng gồm n phần tử số nguyên Hãy sinh mảng nguyên ngẫu nhiên gồm (n ≤ 100) phần tử, phần tử có giá trị thuộc đoạn [0, 200], sau áp dụng hàm để xóa tất phần tử có giá trị x Nhập Mảng Nhập Mảng Có vào số phần tử mảng: sinh ngẫu nhiên gồm phần tử là: 5 vào x: sau xóa phần tử có giá trị 5: phần tử bị xóa khỏi mảng 12 Chèn số nguyên x vào mảng A cho sau chèn, mảng A có thứ tự tăng dần Biết trước mảng A có thứ tự tăng dần Mảng A ban đầu: [1 7] Nhập x: Mảng A sau chèn x = 4: [1 7] BÀI TẬP NGÔN NGỮ LẬP TRÌNH C (BẢN CHƯA HO[N THI ỆN) | MẢNG MỘT 14 10/2011 KHOA CÔNG NGHỆ THÔNG TIN, TRƯỜNG ĐẠI HỌC KHOA HỌC HUẾ 13 Nhập vào mảng A gồm n (n ≤ 100) phần tử số nguyên dương Trong trình nhập kiểm tra phần tử nhập vào không trùng, trùng thông báo yêu cầu nhập lại Quá trình nhập dừng lại nhập vào số Nhập phần tử thứ 1: Nhập phần tử thứ 2: Nhập phần tử thứ 3: Đã có phần tử mảng Vui lòng nhập lại! Nhập phần tử thứ 3: Nhập phần tử thứ 4: Mảng vừa nhập [5 4], gồm có phần tử 14 Quay vòng mảng A sang phải k vị trí Nhập Nhập Nhập Mảng số phần tử n: mảng A: số vị xoay k: A sau xoay vị trí: Gợi ý: Viết hàm để quay mảng A sang phải k vị trí Có cách để quay sang phải k vị trí Cách 1: tạo mảng sau dễ dàng tính toán vị trí sau quay mảng ban đầu (tốn thêm nhớ chạy nhanh hơn) Cách 2: quay vị trí, lần quay vị trí (không tốn thêm nhớ chạy lâu hơn) 15 Tách mảng số nguyên X thành mảng A B, cho mảng A chứa toàn số lẻ mảng B chứa toàn số chẵn Mảng X sinh cách ngẫu nhiên với phần tử có giá trị thuộc đoạn [1, 50] Nhập số phần tử mảng X: Mảng X sinh ngẫu nhiên: [22 14 30 43 2] Sau tách, ta có: - Mảng A: [7 43] - Mảng B: [22 14 30 2] 16 Nhập vào mảng A gồm n (n ≤ 100) phần tử số nguyên, sau hiển thị dãy tăng có mảng Nhập vào số phần tử mảng: Nhập phần tử thứ 1: Nhập phần tử thứ 2: Nhập phần tử thứ 3: Nhập phần tử thứ 4: Nhập phần tử thứ 5: Nhập phần tử thứ 6: 10 Nhập phần tử thứ 7: Mảng vừa nhập là: [1 10 9] Các dãy tăng mảng là: - Dãy thứ 1: - Dãy thứ 2: 10 - Dãy thứ 3: BÀI TẬP NGÔN NGỮ LẬP TRÌNH C (BẢN CHƯA HO[N THI ỆN) | MẢNG MỘT 15 10/2011 KHOA CÔNG NGHỆ THÔNG TIN, TRƯỜNG ĐẠI HỌC KHOA HỌC HUẾ 17 Tìm giá trị lớn thứ k mảng A gồm n số tự nhiên (n ≤ 50) Mảng A sinh cách ngẫu nhiên với phần tử có giá trị thuộc đoạn [0, 30] Nhập vào số phần tử mảng: Mảng sinh ngẫu nhiên gồm phần tử là: [1 10 4] Bạn muốn tìm giá trị lớn thứ mấy?: Giá trị lớn thứ mảng Nhập vào số phần tử mảng: Mảng sinh ngẫu nhiên gồm phần tử là: [1 10 4] Bạn muốn tìm giá trị lớn thứ mấy?: Giá trị lớn thứ mảng 18 Tìm giá trị xuất nhiều mảng số nguyên Mảng A ban đầu: [1 5 7] Giá trị xuất nhiều (xuất lần) 19 In tam giác Pascal Mảng chiều cao: 1 1 1 3 1 Gợi ý: Sử dụng mảng: mảng để lưu hàng tam giác, mảng để tính hàng 20 Nhập vào hai số nguyên dương a, b (a, b có tối đa 50 chữ số a > b) Tính tổng hiệu hai số Nhập a: Nhập b: a + b = a – b = 124356847384 293847563 124650694947 124062999821 21 * Nhập vào hai số nguyên dương a, b (a, b có tối đa 50 chữ số) Tính tích hai số Nhập a: 12435684 Nhập b: 2938 a * b = 36536039592 22 * Liệt kê tất chuỗi nhị phân độ dài k theo thứ tự từ điển Nhập k: Các chuỗi nhị phân có độ dài là: 00 01 10 11 BÀI TẬP NGÔN NGỮ LẬP TRÌNH C (BẢN CHƯA HO[N THI ỆN) | MẢNG MỘT 16 10/2011 KHOA CÔNG NGHỆ THÔNG TIN, TRƯỜNG ĐẠI HỌC KHOA HỌC HUẾ 23 * Liệt kê tất hoán vị tập {1,2, ,n} theo thứ tự từ điển Nhập n: Các hoán vị tập {1,2,3} là: 3 2 3 3 24 * Liệt kê tất tổ hợp chập k n phần tử theo thứ tự từ điển Nhập n, k: Các tổ hợp chập phần tử {1,2,3,4} là: 4 25 ** Liệt kê tất tập tập A (gồm n phần tử mảng cho trước, mảng có thứ tự tăng dần) cho tổng giá trị phần tử tập số nguyên k cho trước Biết tập A gồm phần tử có giá trị khác đôi Tập A ban đầu: Nhập k: Các tập A có tổng là: Gợi ý: Có cách duyệt dãy nhị phân có độ dài n Mỗi chuỗi tương ứng với tập A (=1 nghĩa thuộc tập A, =0 nghĩa không thuộc tập A) G CHUỖI Viết chương trình nhập vào chuỗi, loại bỏ khoảng trắng thừa chuỗi Nhập chuỗi: ˽˽˽Truong˽˽Tam˽˽˽Phong˽ Chuỗi sau loại bỏ khoảng trắng thừa là: Truong˽Tam˽Phong Viết chương trình in từ chuỗi dòng Nhập chuỗi: ˽˽˽Truong˽˽Tam˽˽˽Phong˽ Các từ chuỗi là: Truong Tam Phong BÀI TẬP NGÔN NGỮ LẬP TRÌNH C (BẢN CHƯA HO[N THI ỆN) | CHUỖI 17 10/2011 KHOA CÔNG NGHỆ THÔNG TIN, TRƯỜNG ĐẠI HỌC KHOA HỌC HUẾ Viết chương trình nhập vào chuỗi ký tự, xuất hình số ký tự có chuỗi (không kể kí tự trắng) Nhập chuỗi: ˽˽˽Truong˽˽Tam˽˽˽Phong˽ Chuỗi có 14 ký tự Viết chương trình nhập vào chuỗi bất kì, xuất hình số khoảng trắng chuỗi Nhập chuỗi: ˽˽˽Truong˽˽Tam˽˽˽Phong˽ Chuỗi có khoảng trắng Xây dựng hàm trích chuỗi bên trái chuỗi sau viết chương trình minh họa cách sử dụng Nhập chuỗi s: Truong˽Tam˽Phong left(s,6) = “Truong” Xây dựng hàm trích chuỗi bên phải chuỗi sau viết chương trình minh họa cách sử dụng Nhập chuỗi s: Truong˽Tam˽Phong right(s,5) = “Phong” Xây dựng hàm trích chuỗi bên chuỗi sau viết chương trình minh họa cách sử dụng Hàm có tham số sau:    Chuỗi Vị trí xuất phát (đếm từ 1) Số ký tự cần trích Nhập chuỗi s: Truong˽Tam˽Phong mid(s,8,3) = “Tam” Xây dựng hàm kiểm tra xem chuỗi có đối xứng hay không sau viết chương trình minh họa cách sử dụng Nhập chuỗi s (nhap chuoi rong de ket thuc): Truong “Truong” chuỗi không đối xứng Nhập chuỗi s (nhap chuoi rong de ket thuc): iogoi “iogoi” chuỗi đối xứng Nhập chuỗi s (nhap chuoi rong de ket thuc): abba “abba” chuỗi đối xứng Nhập chuỗi s (nhap chuoi rong de ket thuc): Xây dựng hàm tìm vị trí chuỗi minh họa chuỗi cho sau viết chương trình Nhập chuỗi s: Truong˽Tam˽Phong Nhập chuỗi s1: Phong Tìm thấy chuỗi “Phong” chuỗi “Truong Tap Phong” vị tí thứ 12 BÀI TẬP NGÔN NGỮ LẬP TRÌNH C (BẢN CHƯA HO[N THI ỆN) | CHUỖI 18 10/2011 KHOA CÔNG NGHỆ THÔNG TIN, TRƯỜNG ĐẠI HỌC KHOA HỌC HUẾ 10 Xây dựng hàm thay chuỗi minh họa chuỗi chuỗi sau viết chương trình Nhập chuỗi s: Truong˽Van˽Truong Nhập chuỗi s1: Truong Nhập chuỗi thay s2: Co Chuỗi “Truong˽Van˽Truong” sau thay “Truong” “Co” là: Co˽Van˽Co 11 Viết chương trình tìm kiếm xem ký tự xuất nhiều chuỗi Nhập chuỗi s: con˽co˽be˽be,˽no˽dau˽canh˽tre Ký tự xuất nhiều (3 lân) chuỗi là: e o 12 Viết chương trình nhập chuỗi số tự nhiên k, sau xoá từ thứ k (các từ tính từ 1) chuỗi Nhập chuỗi s: Truong˽Tam˽Phong Nhập số thứ tự từ cân xóa: Chuỗi “Truong˽Tam˽Phong” sau xóa từ thứ là: “Truong˽Tam” 13 Viết chương trình nhập hai chuỗi s1 s2 sau xây dựng hàm để xóa tất chuỗi s2 chuỗi s1 Ví dụ: s1=”Truong Tam Phong”, s2=”Phong” > s1=”Truong Tam” Nhập chuỗi s1: Truong˽Tam˽Truong Nhập chuỗi s2: Truong Chuỗi s1 sau xóa: ˽Tam˽ 14 Xây dựng hàm ghép hai chuỗi thành chuỗi 15 Viết chương trình đảo ngược thứ tự từ có chuỗi Nhập chuỗi: bo˽an˽co Chuỗi đảo ngược từ là: co˽an˽bo 16 Viết hàm cắt chuỗi họ tên thành hai chuỗi: chuỗi họ lót chuỗi tên Nhập họ tên: Truong˽Tam˽Phong Họ đệm là: Truong˽Tam Tên là: Phong 17 Chuẩn hóa họ tên: khoảng trắng thừa đầu, cuối đồng thời ký tự đầu từ phải ghi hoa, ký tự lại phải ghi thường Ví dụ: “ tRUong taM Phong ”  “Truong Tam Phong”) Nhập họ tên: ˽˽TRUong˽˽tam˽phOng˽ Họ tên sau chuẩn hóa: Truong˽Tam˽Phong BÀI TẬP NGÔN NGỮ LẬP TRÌNH C (BẢN CHƯA HO[N THI ỆN) | CHUỖI 19 10/2011 KHOA CÔNG NGHỆ THÔNG TIN, TRƯỜNG ĐẠI HỌC KHOA HỌC HUẾ 18 Nhập vào chuỗi bất kì, liệt kê số lần xuất ký tự chuỗi 19 Viết hàm đếm xem chuỗi có ký tự giống 20 Viết hàm kiểm tra chuỗi có ký tự số hay không, có trả số này, ngược lại trả -1 21 Nhập chuỗi bất kì, yêu cầu nhập ký tự muốn xóa Thực xóa tất ký tự chuỗi 22 Viết chương trình nhập vào chuỗi, đếm xem chuỗi có từ Các từ cách khoảng trắng, dấu hai chấm, dấu chấm , dấu phẩy, dấu chấm phẩy, dấu hỏi dấu chấm than BÀI TẬP NGÔN NGỮ LẬP TRÌNH C (BẢN CHƯA HO[N THI ỆN) | CHUỖI 20 [...]... bằng một số nguyên k cho trư c Biết tập A gồm c c phần tử c giá trị kh c nhau từng đôi một Tập A ban đầu: 1 2 5 4 Nhập k: 6 C c tập con c a A c tổng bằng 6 là: 1 5 2 4 Gợi ý: C một c ch là duyệt lần lượt c c dãy nhị phân c độ dài n Mỗi chuỗi sẽ tương ứng với một tập con c a A (=1 nghĩa là thu c tập A, =0 nghĩa là không thu c tập A) G CHUỖI 1 Viết chương trình nhập vào một chuỗi, hãy loại bỏ những... trong chuỗi Nhập chuỗi: ˽˽˽Truong˽˽Tam˽˽˽Phong˽ Chuỗi sau khi loại bỏ c c khoảng trắng thừa là: Truong˽Tam˽Phong 2 Viết chương trình in c c từ c a chuỗi trên từng dòng Nhập chuỗi: ˽˽˽Truong˽˽Tam˽˽˽Phong˽ C c từ c a chuỗi là: Truong Tam Phong BÀI TẬP NGÔN NGỮ LẬP TRÌNH C (BẢN CHƯA HO[N THI ỆN) | CHUỖI 17 10/2011 KHOA C NG NGHỆ THÔNG TIN, TRƯỜNG ĐẠI H C KHOA H C HUẾ 3 Viết chương trình nhập vào một chuỗi... trong một chuỗi đã cho sau đó viết chương trình Nhập chuỗi s: Truong˽Tam˽Phong Nhập chuỗi con s1: Phong Tìm thấy chuỗi “Phong” trong chuỗi “Truong Tap Phong” tại vị tí thứ 12 BÀI TẬP NGÔN NGỮ LẬP TRÌNH C (BẢN CHƯA HO[N THI ỆN) | CHUỖI 18 10/2011 KHOA C NG NGHỆ THÔNG TIN, TRƯỜNG ĐẠI H C KHOA H C HUẾ 10 Xây dựng hàm thay thế chuỗi con minh họa trong chuỗi bởi chuỗi con sau đó viết chương trình Nhập chuỗi... hai chuỗi thành một chuỗi 15 Viết chương trình đảo ngư c thứ tự c c từ c trong chuỗi Nhập chuỗi: bo˽an˽co Chuỗi đảo ngư c từ sẽ là: co˽an˽bo 16 Viết hàm c t chuỗi họ tên thành hai chuỗi: chuỗi họ lót và chuỗi tên Nhập họ tên: Truong˽Tam˽Phong Họ đệm là: Truong˽Tam Tên là: Phong 17 Chuẩn hóa họ tên: không c c c khoảng trắng thừa ở đầu, giữa và cuối đồng thời c c ký tự đầu c a mỗi từ phải ghi hoa, c c. .. trong chuỗi c ký tự số hay không, nếu c thì trả về số này, ngư c lại thì trả về -1 21 Nhập một chuỗi bất kì, yêu c u nhập một ký tự muốn xóa Th c hiện xóa tất c những ký tự đó trong chuỗi 22 Viết chương trình nhập vào một chuỗi, đếm xem chuỗi c bao nhiêu từ C c từ c thể c ch nhau bằng khoảng trắng, dấu hai chấm, dấu chấm , dấu phẩy, dấu chấm phẩy, dấu hỏi và dấu chấm than BÀI TẬP NGÔN NGỮ LẬP TRÌNH... Nhập n: 3 C c hoán vị c a tập {1,2,3} là: 1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1 24 * Liệt kê tất c c c tổ hợp chập k c a n phần tử theo thứ tự từ điển Nhập n, k: 4 2 C c tổ hợp chập 2 c a 4 phần tử {1,2,3,4} là: 1 2 1 3 1 4 2 3 2 4 3 4 25 ** Liệt kê tất c c c tập con c a tập A (gồm n phần tử trong một mảng cho trư c, mảng này c thứ tự tăng dần) sao cho tổng giá trị c c phần tử trong tập con này bằng... trích chuỗi con bên phải c a một chuỗi sau đó viết chương trình minh họa c ch sử dụng Nhập chuỗi s: Truong˽Tam˽Phong right(s,5) = “Phong” 7 Xây dựng hàm trích chuỗi con bên trong c a một chuỗi sau đó viết chương trình minh họa c ch sử dụng Hàm c c c tham số sau:    Chuỗi Vị trí xuất phát (đếm từ 1) Số ký tự c n trích Nhập chuỗi s: Truong˽Tam˽Phong mid(s,8,3) = “Tam” 8 Xây dựng hàm kiểm tra xem chuỗi... b c tối đa 50 chữ số) Tính tích c a hai số trên Nhập a: 12435684 Nhập b: 2938 a * b = 36536039592 22 * Liệt kê tất c c c chuỗi nhị phân độ dài k theo thứ tự từ điển Nhập k: 2 C c chuỗi nhị phân c độ dài 2 là: 00 01 10 11 BÀI TẬP NGÔN NGỮ LẬP TRÌNH C (BẢN CHƯA HO[N THI ỆN) | MẢNG MỘT 16 10/2011 KHOA C NG NGHỆ THÔNG TIN, TRƯỜNG ĐẠI H C KHOA H C HUẾ 23 * Liệt kê tất c c c hoán vị c a tập {1,2, ,n}... Nhập chuỗi con s1: Truong Nhập chuỗi con thay thế s2: Co Chuỗi “Truong˽Van˽Truong” sau khi thay thế “Truong” bởi “Co” là: Co˽Van˽Co 11 Viết chương trình tìm kiếm xem ký tự nào xuất hiện nhiều nhất trong chuỗi Nhập chuỗi s: con˽co˽be˽be,˽no˽dau˽canh˽tre Ký tự xuất hiện nhiều nhất (3 lân) trong chuỗi là: e o 12 Viết chương trình nhập một chuỗi và một số tự nhiên k, sau đó xoá từ thứ k (c c từ đư c tính... 12 11 Tìm ư c số chung lớn nhất c a ba số nguyên dương Nhập a, b, c: 8 12 10 UCLN(8,12,10) = 2 12 Tìm bội số chung nhỏ nhất c a ba số nguyên dương Nhập a, b: 4 6 5 BCLN(4,6,5) = 60 13 Tính tổng c c chữ số c a một số nguyên dương Nhập một số nguyên dương: 465 Tổng c c chữ số c a 465 là 15 14 Hiển thị c c số tự nguyên tố nằm trong đoạn [a, b], biết số tự nguyên tố là số c tổng c c chữ số c a nó là một ... tự chuỗi 22 Viết chương trình nhập vào chuỗi, đếm xem chuỗi c từ C c từ c ch khoảng trắng, dấu hai chấm, dấu chấm , dấu phẩy, dấu chấm phẩy, dấu hỏi dấu chấm than BÀI TẬP NGÔN NGỮ LẬP TRÌNH C. .. 500đ BÀI TẬP NGÔN NGỮ LẬP TRÌNH C (BẢN CHƯA HO[N THI ỆN) | C U TR C L 10/2011 KHOA C NG NGHỆ THÔNG TIN, TRƯỜNG ĐẠI H C KHOA H C HUẾ Trả lời c u hỏi sau c ch duyệt tất c ch để tìm kết quả: Yêu cau... mảng cho trư c, mảng c thứ tự tăng dần) cho tổng giá trị phần tử tập số nguyên k cho trư c Biết tập A gồm phần tử c giá trị kh c đôi Tập A ban đầu: Nhập k: C c tập A c tổng là: Gợi ý: C c ch

Ngày đăng: 31/03/2016, 16:55

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan