CHỦ ĐỀ 1: LỆNH ĐƠN VÀ LỆNH CÓ CẤU
TRÚC
Bài 1:Hãy cho biết kết quả của chương trình sau:
#include
main(){
int n=345;
int p=5;
float
x=34.567;
printf(“A:
%d %f\n”,n,x);
printf(“B:
%4d %10f\n”,n,x);
printf(“C:
%2d %3f\n”,n,x);
printf(“D:
%10.3f %10.3e\n”,x,x);
printf(“E:
%*d\n”,p,n);
printf(“F:
%*.*f\n”,12,5,x);
}
Bài 2: Viết chương trình:
a/ Đầu tiên in ra dòng chữ sau:
Ngon ngu
lap trinh
b/ Nếu bấm phím C thì in ra dòng chữ:
Turbo C
Còn nếu bấm phím P
thì in ra dòng chữ:
Turbo
Pascal
c/ Bấm tiếp phím bất kỳ thì chương trình kết thúc
Bài 3: Viết chương trình tính diện tích và chu vi của:
+ Hình
vuông, nếu biết cạnh của hình vuông
+ Hình chư
nhật, nếu biết 2 cạnh của hình chữ nhật
+ Hình
tròn, nếu biết bán kính của hình tròn
+ Tam
giác, nếu biết 3 cạnh của tam giác
Bài 4: Viết chương trình xác định giá trị cực đại và cực
tiểu của n số thực nhập vào từ bàn phím (không dùng kiểu mảng)
Bài 5: Viết chương trình tính:
+ Bội số
chung nhỏ nhất
+ Ước số
chung lớn nhất
của 2 số
nguyên a va b nhập vào từ bàn phím
Bài 6: Viết chương trình xác định số nguyên x nhập vào từ
bàn phím có phải là số nguyên tố hay không và đưa kết luận lên màn hình
(Số nguyên p>1 là số nguyên tố nếu p chỉ chia hết cho
1 và cho bản thân nó)
Bài 7: Viết chương trình in ra màn hình tất cả các số nguyên
tố có trong n số nguyên đầu tiên.
Bài 8: Viết chương trình giải phương trình bậc hai: ax2 + bx
+ c = 0
Bài 9: Viết chương trình in ra dãy số Fibonacci có n số hạng
(n nhập vào từ bàn phím). Biết rằng, dãy Fibonacci F(n) có dạng như sau:
F(1)=1; F(2)=1;
F(n)=F(n-1)+F(n-2)
VD: 1 1 2 3 5 8 13 …..
Bài 10: Viết chương trình tính n! ; với n là số nguyên
dương. Biết rằng: 0!=1 và n!=
1*2*3*…*n;
Bài 11: Viết chương trình tính xn
Bài 12:Viết chương trình tính : S= 1-x + x2 +….+ (-1)nxn
Bài 13: Viết chương trình tính căn bậc hai của một số a bằng
phép lặp Newton với công thức lặp sau đây:
x[0]=
(a+1)/2
x[n+1]=
(1/2)*(x[n]+ a/x[n]), với n=0,1,2,3…
sai số cho phép là (x[n+1]-x[n])/x[n]=eps<1e-5
Bài 14: Viết chương trình tìm số dòng, số từ, số ký tự của
văn bản vào từ bàn phím
CHỦ ĐỀ 2: CHƯƠNG TRÌNH CON
Bài 1: Viết lại các bài tập ở buổi 1,2 ở dạng hàm
Bài 2:Viết chương trình in ra màn hình tam giác Pascal như
sau:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
Bằng cách viết các hàm tính giai thừa và tính tổ hợp của một
số nguyên dương
Biết rằng:
Mỗi số
hạng của hàng thứ (n+1) là một tổ hợp chập k của n
Tohop(n,k)
=n!/(k! * (n-k)!)
Bài 3: Cho số tự nhiên n. Hãy liệt kê tất cả các cặp số p,
4p + 1 đều là số nguyên tố nhỏ hơn n. Trong đó p cũng là số nguyên tố nhỏ hơn n
Bài 4: Cho số tự nhiên n. Hãy phân tích n thành các thừa số
nguyên tố. Ví dụ 12=2*2*3
Bài 5: Cho số tự nhiên n. Hãy tìm tất cả các số 1, 2, … , n
sao cho các số trùng với phần cuối bình phương chính nó (ví dụ: 62 = 36, 252 =
625)
Bài 6: Một số tự nhiên đựơc gọi là Amstrong nếu tổng các luỹ
thừa bậc n của các chữ số của nó bằng chính nó. Trong đó n là số các chữ số (ví
dụ : 153 = 13 + 23 + 33). Hãy tìm tất cả các số Amstrong gồm 2,3,4 chữ số.
Bài 7: Mô phỏng nhân tay hai số tự nhiên bất kỳ
Ví dụ:
15
* 31
------
15
45
------
465
CHỦ ĐỀ 3: MẢNG VÀ CON TRỎ
Bài 1: Cho một danh sách n số nguyên, sắp xếp các số đó theo
thứ tự tăng dần
Bài 2: Viết chương trình nhập vào một danh sách n số nguyên.
Hãy đếm xem có bao nhiêu số chia hết cho 3.
Bài 3: Viết chương trình nhập vào một danh sách n số nguyên
đảm bảo nguyên tắc tăng, nếu nhập sai thì yêu cầu nhập lại. Sau khi nhập xong,
nhập thêm một số mới và chèn vào danh sách sao cho đảm bảo nguyên tắc tăng của
danh sách
VD: 1 2 5 7 8 13
Số mới : 4
Danh sách : 1 2 4 5 7 8 13
Bài 4: Viết chương trình ghép hai dãy tăng đã cho thành một
dãy tăng.
Bài 5: Cho mảng hai chiều A, lập chương trình:
- Tính tổng
tất cả các phần tử dương của mảng
- Đưa ra tổng
các phần tử A[i,j] mà i+j chia hết cho 5
Bài 6: Mảng A chứ n phần tử, lập chương trình:
- Sắp xếp
mảng A theo thứ tự giảm dần
- Tìm một
phần tử có giá trị cho trước
- Tìm số các
phần tử và số lượng các phần tử có giá trị trùng nhau.
Bài 7: Bài toán người du lịch
Cho n thành phố, cho giá cước phí đi từ thành phố i đến
thành phố j là Cij. Người du lịch cần xuất phát từ một thành phố đi qua tất cả
các thành phố, mỗi thành phố chỉ đi qua đúng một lần và quay trở về thành phố
xuất phát sao cho giá chi phí là nhỏ nhất.
Yêu cầu:
- Xây dựng
cấu trúc dữ liệu lưu trữ cặp thành phố cùng cước phí.
- Nhập vào số
thành phố, cước phí, thành phố xuất phát, thành phố đích.
- In kết quả
ra màn hình
CHỦ ĐỀ 4: KIỂU CHUỖI
Bài 1:Viết chương trình nhập vào Họ tên, Chức vụ, Trình độ
của 1 người sau đó in ra màn hình như sau:
- Quy Ong (Ba):
- Chuc vu :
- Co trinh
do:
Bài 2: Viết chương trình nhập vào 1 chuỗi rồi đảo ngược
chuỗi đó
Bài 3: Viết chương trình nhập vào 2 chuỗi (chữ thường), sau
đó:
- Đổi 2 chuỗi
ra chữ Hoa
- Từ chữ Hoa
đổi trở lại thành chữ thường
- Đảo ngược 2
chuỗi
Bài 4: Viết chương trình nhập vào 1 chuỗi, thống kê xem
chuỗi đó có bao nhiêu ký tự kể cả ký tự trống, sau đó đảo ngược chuỗi này.
Bài 5:Viết chương trình nhập vào Họ Tên của một người sau
đó:
- Cắt bỏ các kí tự vô nghĩa ở Họ Tên
- Cắt lấy Họ
- Cắt lấy Tên
Bài 6: Viết chương trình nhập vào 1 chuỗi sau đó sao chép
sang chuỗi đích có số ký tự chỉ định. Ví dụ chuỗi nhập vào là “Nguyen Van Dat”.
Nếu sao chép 6 ký tự thì chuỗi đích là “Nguyen”
Bài 7: Viết chương trình nhập vào 1 chuỗi sao đó trích ra 1
chuỗi con từ vị trí nào đó trong chuỗi nguồn và có chiều dài xác định. Ví dụ
chuỗi nguồn là “Nguyen Van Dat”, chuỗi trích từ vị trí thứ 8 và cho chiều dai
là 3 ký tự, kết quả chuỗi con là “Van”
Bài 8: Viết chương trình nhập vào 1 chuỗi nguồn, ví dụ “
Nguyen Van Thanh”, sau đó nhập vào 1 chuỗi con, ví dụ “Van”, máy sẽ xác định vị
trí bắt đầu của chuỗi con ở vị trí nào trong chuỗi nguồn. Kết quả in ra màn
hình như sau:
- chuỗi nguồn
là: Nguyen Van Thanh
- Chuỗi con
là : Van
- Vị trí bắt đầu
của chuỗi con là: 8
Bài 9: Viết chương trình để thực hiện các yêu cầu sau:
- Nhập vào 1
chuỗi bất kỳ, ví dụ: “Nguyen Van Thanh”
- Muốn xoá từ
vị trí nào: ví dụ : 9
- Muốn xoá
bao nhiêu ký tự, ví dụ : 2
Kết quả in ra màn hình như sau:
+ Chuỗi nguồn
là: Nguyen Van Thanh
+ Chuỗi còn lại
sau khi xoá: Nguyen V Thanh
Bài 10: Một xâu kí tự gọi là Palindrome nếu nó không thay
đổi khi ta đảo ngược thứ tự của các kí tự trong nó (ví dụ : “ABCDCBA”). Lập
chương trình đọc một xâu kí tự và xác định xem nó có tính Palimndrome không ?
Bài 11: Hãy tạo lập mảng các string trong đó mỗi string là
một địa danh. Sắp xếp mảng các địa danh theo thứ tự từ điển
Bài 12:Hãy tạo lập mảng các string, trong đó mỗi string là
Họ và tên của học sinh. Sắp xếp mảng các họ tên theo thứ tự từ điển (dựa vào
Tên)
CHỦ ĐỀ 5: KIỂU CẦU TRÚC
Bài 1:
Định nghĩa kiểu struct môt tả đa thức (từ, mẩu)
Viết các hàm nhập đa thức, in đa thức, cộng, trừ, nhân, chia
đa thức.
Sử dụng các hàm này để thực hiện các công việc sau:
a. Vào từ bàn phím các đa thức p1, p2, p3. Tính đa thức p
theo công thức:
p=(p1+p2)2+p3
In ra p1,
p2, p3 và p
b. Vào từ bàn phím các đa thức p1, p2. Tính đa thức p=p1/p2
In ra p1,
p2, đa thức thương.
Bài 2:
Xây dựng một struct ThiSinh gồm các thành phần sau:
- Họ
tên - Quê quán
-
Trường - Tuổi
- Số báo
danh - Điểm thi
Trong đó:
Họ tên lại là cấu trúc gồm hai thành phần họ,
tên đệm và tên.
Quê quán
cũng là một cấu trúc gồm hai thành phần Xã, huyện và tỉnh.
Điểm thi
cũng là cấu trúc gồm ba thành phần: toán, lý, hoá (chính xác đến ¼).
Xây dựng một mảng cấu trúc mà mỗi thành phần của nó là có
kiểu ThiSinh ở trên.
Nhập số liệu và lưu trữ vào mảng nói trên.
Tìm kiếm và in ra các thí sinh có tổng số điểm ba môn lớn
hơn 15.
Bài 3:
Nhập vào danh sách n hoc sinh với các thuộc tính : Họ tên,
năm sinh và tổng điểm. Sắp xếp danh sách theo thứ tự giảm của tổng điểm. Khi
tổng điểm như nhau thì học sinh có năm sinh nhỏ hơn sẽ được xếp trứơc. In danh
sách học sinh đã sắp xếp sao cho tất cả các chữ cái của họ tên chuyển thành chữ
hoa. Thể hiện các kết quả lên màn hình.
Hướng dẫn:
Xây dựng các hàm nhập, hàm xử lý họ tên để đổi các chữ cái
thành kiểu in Hoa, hàm sắp xếp để thực hiện các yêu cầu của đề.
Bài 4:
Cho một danh sách liên kết gồm các cấu trúc kiểu ts được
định nghĩa như sau:
struct ts
{
char
hoten[30];
int
namsinh;
float
tongdiem;
struct ts*
next;
}
Viết chương trình nhập dữ liệu cho danh sách trên và thực
hiện các yêu cầu sau:
+ In các
học sinh có năm sinh từ 1970 trở lại đây
+ Lập danh
sách các thí sinh trúng tuyển (điểm chuẩn =15)
+ Bổ sung
thêm một số thí sinh vào cuối danh sách
+ Xoá khỏi
danh sách các học sinh có tổng đểm <10
Bài 5:
Định nghĩa kiểu sinhvien gồm ba thành phần: Họ tên, năm
sinh, và con trỏ kiểu sinhvien.
Nhập từ bàn phím một số sinh viên và chứa vào một danh sách
liên kết. Kết thúc việt nhập bằng cách bấm phím Enter
In ra màn hình danh sách các sinh viên theo thứ tự Alphabet.
In ra màn hình danh sách các sinh viên theo thứ tự tuổi giảm
dần.
Viết một hàn thực hiện việc sửa đổi thông tin về một sinh
viên nào đó khi biết tên nhập vào từ bàn phím.
CHỦ ĐỀ 6: KIỂU TẬP TIN
Bài 1:
Viết chương trình để thống kê số lượng từ trong một tập tin
văn bản
Bài 2:
Viết chương trình để nối hai tập tin văn bản vào nhau.
Yêu cầu: Tập tin văn bản mới có các từ cách nhau không quá
một khoảng trắng (khoảng trắng có thể là tab ‘t\’, blank ‘ ‘, kí tự xuống dòng
‘\n’) và không có khoảng trắng ở đầu và cuối văn bản.
Bài 3:
Viết chương trình thực hiện các công việc sau:
Xây dựng file MT.txt và ghi lên đó các phần tử của hai ma
trận vuông cùng cấp A và B
Dùng file MT.txt để tính ma trận tích C=A*B, sau đó ghi bổ
sung ma trận C lên file MT.txt
Đọc các ma trận A, B và C từ file MT.txt rồi in ra màn hình
Bài 4:
Cho tệp dữ liệu matran.in được tổ chức theo khuôn dạng như
sau:
- Dòng đầu
tiên là một số tự nhiên n là cấp của ma trận vuông A
- n dòng tiếp
theo mỗi dòng ghi n số thực. Mỗi số thực được phân biệt với nhau bởi một hoặc
vài ký tự trống là các phần tử A[i][j] của ma trận vuông A;
Hãy viết chương trình tìm hàng, cột hoặc đường chép có tổng
các phần tử là lớn nhất. Ghi kết quả hàng, cột hoặc đường chéo vào tệp
matrax.out mỗi phần tử được phân biệt bởi một vài ký tự trống
Ví dụ:
3
1 2 4
4 8 12
3 -3 0
Tệp matrix.out
4 8 12
Bài 5:
Xét mảng struct
struct{
char hoten[25];
char quequan[30];
int tuoi;
}person[100];
Mỗi phần tử của mảng cấu trúc chứa thông tin về một người.
Hãy lập chương trình thực hiện các yêu cầu sau:
- Vào số liệu
cho từng người và ghi lên file nhansu.txt
- Đọc thông
tin từ file nhansu.txt và chứa vào mảng person
- Ghi danh
sách nhân viên từ mảng person vào file nhansu.txt theo thứ tự tăng của tuổi.
0 nhận xét:
Đăng nhận xét