Bài tập minh họa học phần Nhập môn lập trình

BÀI TẬP MINH HỌA MÔN TIN HỌC CƠ SỞ A1  
ĐẠI HỌC QUỐC GIA TPHCM  
TRƢỜNG ĐH KHOA HỌC TỰ NHIÊN  
KHOA CÔNG NGHỆ THÔNG TIN  
BỘ MÔN TIN HỌC CƠ SỞ  
  
BÀI TẬP MINH HỌA  
HỌC PHẦN NHẬP MÔN LẬP TRÌNH  
Mục lục:  
Trang 1  
BÀI TẬP MINH HỌA MÔN TIN HỌC CƠ SỞ A1  
Tuần 3. CÁC KHÁI NIỆM CƠ BẢN VỀ KỸ THUẬT LẬP TRÌNH  
CÁC BÀI TẬP CƠ BẢN  
Bài tập 1:  
Viết chƣơng trình in ra các dòng chữ sau đây:  
1. In C, lowercase letters are significant.  
2. main is where program execution begins.  
3. Opening and closing braces enclose program statements in a routine.  
4. All program statements must be terminated by a semicolon.  
#include <stdio.h>  
int main (void)  
{
printf ("\t1. In C, lowercase letters are significant.\n");  
printf ("\t2. main is where program execution begins.\n");  
printf ("\t3. Opening and closing braces enclose program statements in a  
routine.\n");  
printf ("\t4. All program statements must be terminated by a  
semicolon.\n");  
return 0;  
}
Chú ý:  
1. Ngôn ngữ C phân biệt chữ hoa và chữ thƣờng.  
2. Mỗi chƣơng trình luôn có một và chỉ một hàm main. Hàm main sẽ là nơi đầu tiên chƣơng trình  
thực hiện.  
3. Mỗi khi có mở ngoặc thì phải có đóng ngoặc. vd: {…} và (…)  
4. Các dòng lệnh phải kết thúc bằng dấu chấm phẩy „;‟  
Bài tập 2:  
Viết chƣơng trình tính ra kết quả của phép trừ 15 cho 87, và xuất kết quả ra màn hình.  
#include <stdio.h>  
int main (void)  
{
int x = 15;  
int y = 87;  
int z = x – y;  
printf ("%d - %d = %d", x, y, z);  
return 0;  
}
Bài tập 3:  
Viết đoạn chƣơng trình sau đây mà không có các ký tự bôi đen, sau đó biên dịch chƣơng trình (F7) và  
xem thông báo lỗi. Ghi chú lại các lỗi mà chương trình thông báo. Sau đó, sửa lại chƣơng trình cho  
đúng và biên dịch lại.  
Ghi chú: thông báo lỗi sẽ hiện ra ở cửa sổ phía dƣới của Visual C++. Nhấn F4 lần lƣợt nhảy đến các lỗi.  
#include <stdio.h>  
#define TWENTYFIVE  
25;  
int main ()  
{
Trang 2  
 
BÀI TẬP MINH HỌA MÔN TIN HỌC CƠ SỞ A1  
int sum;  
/* COMPUTE RESULT */  
sum = TWENTYFIVE + 37 – 19;  
/* DISPLAY RESULTS */  
printf ("The answer is %i\n", sum);  
return 0;  
}
Bài tập 4:  
Viết đoạn chƣơng trình sau đây và dự đoán kết quả của chƣơng trình. Sau đó biên dịch và chạy chƣơng  
trình để xem kết quả chính xác. Nếu kết quả khác với mình dự đoán thì phân tích xem tại sao lại nhƣ vậy.  
#include <stdio.h>  
int main ()  
{
int answer, result;  
answer = 100;  
result = answer - 10;  
printf ("The result is %i\n", result + 5);  
return 0;  
}
The result is 95  
Bài tập 5:  
Dự đoán kết quả của chƣơng trình sau và giải thích tại sao. Chạy chƣơng trình và so sánh kết quả thật sự  
với kết quả dự đoán.  
#include <stdio.h>  
#define PRINT(format,x) printf ("x = %"#format"\n", x)  
int main (void)  
{
int integer = 5;  
char character = '5';  
PRINT(d, character); PRINT(d, integer);  
PRINT(c, character); PRINT(c, integer=53);  
return 0;  
}
x = 53  
x = 5  
x = 5  
x = 5  
Bài tập 6:  
Dự đoán kết quả của chƣơng trình sau và giải thích tại sao. Chạy chƣơng trình và so sánh kq thật sự với  
kq dự đoán.  
#include <stdio.h>  
#define PR(x)  
printf("x = %.8g\t", (double)x)  
#define PRINT4(x1,x2,x3,x4)  
PR(x1); PR(x2); PR(x3); PR(x4)  
int main (void)  
{
double d;  
float f;  
long l;  
int i;  
Trang 3  
BÀI TẬP MINH HỌA MÔN TIN HỌC CƠ SỞ A1  
i = l = f = d = 100/3; PRINT4(i, l, f, d);  
i = l = f = d = 100/3. ; PRINT4(i, l, f, d);  
return 0;  
}
x = 33 x = 33 x = 33 x = 33 x = 33 x = 33 x = 33 x = 33.333332 x = 33.333333  
Bài tập 7:  
Viết chƣơng trình tính giá trị biểu thức sau và giải thích kết quả.  
3x3 - 5x2 + 6  
Với x = 2.55.  
#include <stdio.h>  
int main (void)  
{
float x = 2.55;  
float y = 3*x*x*x - 5*x*x + 6;  
printf ("%f", y);  
return 0;  
}
23.231623  
CÁC BÀI TẬP THÊM CÓ ĐỘ KHÓ TRUNG BÌNH  
1. Viết chƣơng trình in lên màn hình nhƣ sau:  
*************************  
*
*
THAO CHUONG BANG  
NGON NGU C  
*
*
*************************  
2. Viết chƣơng trình nhập vào năm sinh, in ra tuổi.  
Ví dụ nhập 1988 in ra:  
Ban sinh nam 1988 vay ban 19 tuoi.  
3. Viết chƣơng trình thực hiện các yêu cầu sau (không dùng hàm chuyển đổi):  
a. Nhập vào một kí tự và in ra mã ASCII tƣơng ứng với kí tự đó.  
b. Nhập vào một số nguyên (1 255) và in ra kí tự có mã ASCII tƣơng ứng.  
4. Nhập vào bán kính của hình tròn, tính và in ra chu vi, diện tích của hình tròn đó.  
5. Viết chƣơng trình nhập vào 2 số nguyên. Xuất ra min, max.  
Ví dụ:  
Nhập vào 5 và 7  
Xuất ra: min =5, max = 7  
6. Tìm hiểu ý nghĩa các thông báo lỗi thƣờng gặp.  
7. Tìm hiểu bộ thƣ viện trợ giúp MSDN.  
Trang 4  
BÀI TẬP MINH HỌA MÔN TIN HỌC CƠ SỞ A1  
CÁC BÀI TẬP THÊM CÓ ĐỘ KHÓ CAO  
1. Nhập vào bán kính đáy R và chiều cao h của hình trụ tròn, tính diện tích đáy, diện tích xung quanh  
và thể tích của hình trụ tròn theo công thức (các số liệu là số thực, giá trị PI đã đƣợc C định nghĩa  
sẵn bằng hằng số M_PI):  
a. Sđáy R2  
b. Sxungquanh2Rh  
c. V Sđáyh  
2. Nhập vào số thực x, tính và in ra các giá trị y1, y2, lầy 2 số lẻ:  
d. y1 4(x2 10x x 3x 1)  
sin(x2 ) x2 1  
e. y2   
e2x cos  
x
4
3. Nhập số tiền nguyên N đồng, đổi ra xem đƣợc bao nhiêu tờ 10 đồng, 5 đồng, 2 đồng và 1 đồng.  
Ví dụ:  
N = 543đ = 54 tờ 10đ + 0 tờ 5đ + 1 tờ 2đ + 1 tờ 1đ  
4. Nhập vào số nguyên có 3 chữ số, tính tổng 3 chữ số đó.  
Ví dụ:  
Số 543 có tổng 3 chữ số là: 5 + 4 + 3 = 12  
5. Viết chƣơng trình nhập giờ, phút, giây và thực hiện kiểm tra tính hợp lệ của dữ liệu nhập vào.  
6. Viết chƣơng trình nhập 2 giờ (giờ, phút, giây) và thực hiện tính '+' và '-' của 2 giờ này.  
Trang 5  
BÀI TẬP MINH HỌA MÔN TIN HỌC CƠ SỞ A1  
Tuần 4. CÁC CẤU TRÚC LẬP TRÌNH - CẤU TRÚC CHỌN  
CÁC BÀI TẬP CƠ BẢN  
Bài tập 1  
Viết chƣơng trình nhập vào một số x, nếu x = 100 thì xuất ra thông báo “Gia tri cua x la 100”,  
ngƣợc lại, xuất ra thông báo “Gia tri của x khac 100”.  
#include "stdafx.h"  
#include <iostream.h>  
int main(int argc, char* argv[])  
{
int x;  
cout << "Nhap x = ";  
cin >> x;  
if(x == 100)  
cout << "\nGia tri cua x la 100 ";  
if(x != 100)  
cout << "\nGia tri cua x khac 100 ";  
return 0;  
}
Bài tập 2:  
#include "stdafx.h"  
#include <iostream.h>  
int main(int argc, char* argv[])  
{
int x;  
cout << "Nhap x = ";  
cin >> x;  
if(x == 100)  
cout << "\nGia tri cua x la 100 ";  
else  
cout << "\nGia tri cua x khac 100 ";  
return 0;  
}
Bài tập 3  
Giải phƣơng trình bậc 1: ax + b = 0  
#include "stdafx.h"  
#include <iostream.h>  
int main(int argc, char* argv[])  
{
float x, a, b;  
cout << "Nhap a = ";  
cin >> a;  
cout << "Nhap b = ";  
cin >> b;  
if(a == 0)  
{
if(b == 0)  
cout << "\nPhuong trinh co vo so nghiem. " << endl;  
else  
cout << "\nPhuong trinh vo nghiem. " << endl;  
}
Trang 6  
 
BÀI TẬP MINH HỌA MÔN TIN HỌC CƠ SỞ A1  
else  
{
cout << "\nPhuong trinh co nghiem duy nhat: x = " << -b/a << endl;  
}
return 0;  
}
Bài tập 4  
Nhập vào 1 tháng, năm, cho biết tháng đó có bao nhiêu ngày.  
// Thang co 31 ngay: 1, 3, 5, 7, 8, 10, 12  
// Thang co 30 ngay: 4, 6, 9, 11  
// Thang 2 co 28 hoac 29 ngay  
#include <stdio.h>  
#include <conio.h>  
void main()  
{
//khai bao bien  
int ngay, thang, nam;  
int nhuan;  
//nhap du lieu  
printf("Nhap vao mot thang: ");  
scanf("%d",&thang);  
printf("Nhap vao mot nam: ");  
scanf("%d",&nam);  
//kiem tra nam nhuan  
nhuan = 0;  
if ((nam%400 == 0) || (nam%4 == 0 && nam%100 != 0))  
nhuan = 1;  
ngay = 0;  
switch (thang)  
{
case 1:  
case 3:  
case 5:  
case 7:  
case 8:  
case 10:  
case 12:  
ngay = 31;  
break;  
case 4:  
case 6:  
case 9:  
case 11:  
ngay = 30;  
break;  
case 2:  
if (nhuan == 1) ngay = 29;  
else ngay = 28;  
break;  
}
printf("So ngay cua thang %d cua nam %d la: %d",thang, nam, ngay);  
getch();  
}
Trang 7  
BÀI TẬP MINH HỌA MÔN TIN HỌC CƠ SỞ A1  
CÁC BÀI TẬP THÊM CÓ ĐỘ KHÓ TRUNG BÌNH  
1. Giải phƣơng trình bậc 2: ax2 + bx + c = 0  
2. Nhập vào 3 số a, b, c. In ra màn hình 3 số này theo thứ tự tăng dần.  
3. Nhập vào 4 số a, b, c, d.  
a. In ra số lớn nhất và số nhỏ nhất.  
b. In ra 2 số không phải số lớn nhất và số nhỏ nhất.  
4. Nhập vào độ dài 3 cạnh a, b, c của 1 tam giác.  
a. Cho biết 3 cạnh đó có lập thành một tam giác không ?  
b. Nếu có, cho biết loại tam giác này (thƣờng, cân, vuông, đều, vuông cân).  
5. Nhập 1 chữ cái, nếu là chữ thƣờng thì đổi thành chữ hoa, ngƣợc lại đổi thành chữ thƣờng.  
6. Tính tiền đi taxi từ số km đã đƣợc nhập vào, biết:  
1 km đầu giá 15000đ  
Từ km thứ 2 đến km thứ 5 giá 13500đ  
Từ km thứ 6 trở đi giá 11000đ  
Nếu đi hơn 120km sẽ đƣợc giảm 10% trên tổng số tiền.  
7. Xếp loại các học sinh trong lớp. Nhập vào họ tên, điểm toán, lý, hóa của các học sinh. Tính điểm  
trung bình 3 môn và phân loại nhƣ sau:  
suất xắc: đtb >=9.0  
giỏi: 9.0 > đtb >= 8.0  
khá: 8.0 > đtb >= 6.5  
trung bình: 6.5 > đtb >= 5.0  
yếu: 5.0 > đtb >= 3.0  
kém: 3.5 > đtb  
CÁC BÀI TẬP THÊM CÓ ĐỘ KHÓ CAO  
8. Viết chƣơng trình nhập vào ngày, tháng, năm. Hãy cho biết ngày kế tiếp và ngày trƣớc của ngày  
đó. (có code tham khảo bên dƣới)  
#include <stdio.h>  
#include <conio.h>  
void main()  
{
//khai bao bien  
int ngay, thang, nam;  
int ngaytruoc, ngayke;  
int nhuan;  
//nhap du lieu  
printf("Nhap vao mot ngay: ");  
scanf("%d",&ngay);  
printf("Nhap vao mot thang: ");  
scanf("%d",&thang);  
printf("Nhap vao mot nam: ");  
scanf("%d",&nam);  
//kiem tra nam nhuan  
nhuan = 0;  
if ((nam%400 == 0) || (nam%4 == 0 && nam%100 != 0))  
nhuan = 1;  
Trang 8  
BÀI TẬP MINH HỌA MÔN TIN HỌC CƠ SỞ A1  
ngaytruoc = ngay-1;  
ngayke = ngay+1;  
switch (thang)  
{
case 1:  
case 5:  
case 7:  
case 10:  
case 12:  
case 4:  
case 6:  
case 9:  
case 11:  
if (ngay == 30)  
{
ngaytruoc = 29;  
ngayke = 1;  
}
else  
{
ngaytruoc = ngay-1;  
ngayke = ngay+1;  
}
break;  
case 2:  
if (nhuan == 1)  
{
if (ngay == 29)  
{
ngaytruoc = 28;  
ngayke = 1;  
}
else if (ngay == 1)  
{
ngaytruoc = 31;  
ngayke = 2;  
}
}
else  
if (ngay == 28)  
{
ngaytruoc = 27;  
ngayke = 1;  
}
else if (ngay == 1)  
{
ngaytruoc = 31;  
ngayke = 2;  
}
break;  
case 3:  
if (ngay == 31)  
{
ngaytruoc = 30;  
ngayke = 1;  
}
else if (ngay == 1)  
{
if (nhuan == 1)  
{
ngaytruoc = 29;  
ngayke = 2;  
Trang 9  
BÀI TẬP MINH HỌA MÔN TIN HỌC CƠ SỞ A1  
}
else  
{
ngaytruoc = 28;  
ngayke = 2;  
}
}
break;  
case 8:  
if (ngay == 31)  
{
ngaytruoc = 30;  
ngayke = 1;  
}
else if (ngay == 1)  
{
ngaytruoc = 31;  
ngayke = 2;  
}
break;  
}
printf("Ngay truoc cua ngay %d cua thang %d cua nam %d la: %d",ngay,  
thang, nam, ngaytruoc);  
printf("\n");  
printf("Ngay ke tiep cua ngay %d cua thang %d cua nam %d la: %d",ngay,  
thang, nam, ngayke);  
getch();  
}
Trang 10  
BÀI TẬP MINH HỌA MÔN TIN HỌC CƠ SỞ A1  
Tuần 5. VÒNG LẶP WHILE  
CÁC BÀI TẬP CƠ BẢN  
Bài 1: Hãy tính tổng s = 1 + 2 + 3 ..... + n  
Cách 1:  
#include <stdio.h>  
void main()  
{
int n;  
long s = 0;  
printf("nhap vao n ");  
scanf("%d", &n);  
while (i <= n)  
{
s += i;  
i++;  
}
printf("ket qua la: s= %ld", s);  
}
Bài 2: Tính tổng các số chia hết cho 4 và không chia hết cho 5 nhỏ hơn n  
#include <stdio.h>  
void main()  
{
int n;  
long s = 0;  
printf("nhap vao n ");  
scanf("%d", &n);  
for (int i = 1;i <=n;i++)  
if(!(i%4) && i%5)  
s += i;  
printf("ket qua la: s= %ld", s);  
}
Bài 3: Tìm số nguyên tố lớn nhất nhỏ hơn n, 0<n<50. (số nguyên tố là số >=2 và chỉ có 2 ƣớc số là 1 và  
chính nó)  
#include <stdio.h>  
void main()  
{
int k,n;  
do  
{
printf("nhap so nguyen n: ");  
scanf("%d",&n);  
} while (n<=0 || n>=50);  
k=n-1;  
while (k>1)  
{
int t=2;  
while (k%t!=0)  
t++;  
Trang 11  
 
BÀI TẬP MINH HỌA MÔN TIN HỌC CƠ SỞ A1  
if(t==k)  
{
printf("so nguyen to lon nhat nho hon %d la %d\n", n, k);  
break;  
}
k--;  
}
if(k<=1)  
printf("khong co so nguyen to nao nho hon %d",n);  
}
Bài 4: Nhập vào 1 số nguyên dƣơng, xuất ra số ngƣợc lại. VD: nhập 123, xuất ra 321  
#include <stdio.h>  
void main()  
{
int n;  
do  
{
printf("nhap so nguyen duong n: ");  
scanf("%d",&n);  
} while (n<=0);  
int don_vi = n%10;  
while (don_vi!=0)  
{
printf("%5d", don_vi);  
n = n/10;  
don_vi = n%10;  
}
}
CÁC BÀI TẬP THÊM CÓ ĐỘ KHÓ TRUNG BÌNH  
1. Tính S = 13 +23 + 33 + ……+ N3  
2. Tính S = 12 +22 + 32 + ……+ N2  
3. Tính S = 1 + 1/2 + 1/3 + …. + 1/n  
4. Tính S = 1/(1x2) + 1/(2x3) + 1/(3x4) + ….. + 1/(n x (n+1))  
5. Tính S = 1 + 1.2 + 1.2.3 + …. + 1.2.3….n  
6. Tính S = 1 + x + x2 + ….. + xn  
7. Tính S = 1! + 2! + 3! +….. + n!  
8. Tìm số nguyên dƣơng n nhỏ nhất sao cho 1 + 2 + 3 + …… + n > 1000  
9. Tìm và in lên màn hình tất cả các số nguyên trong phạm vi từ 10 đến 99 sao cho tích của 2 chữ số  
bằng 2 lần tổng của 2 chữ số đó.  
10. Tìm các ƣớc số chung nhỏ nhất của 2 số nguyên dƣơng  
11. Kiểm tra 1 số có phải là số nguyên tố hay không.  
12. In ra tất cả các số nguyên tố nhỏ hơn số n đƣợc nhập vào từ bàn phím.  
Trang 12  
BÀI TẬP MINH HỌA MÔN TIN HỌC CƠ SỞ A1  
CÁC BÀI TẬP THÊM CÓ ĐỘ KHÓ CAO  
1. Kiểm tra xem các chữ số của số nguyên dƣơng n có giảm dần/ tăng dần từ trái sang phải không.  
2. Kiểm tra xem 1 số nguyên dƣơng n có phải là số đối xứng/ số toàn số lẻ/ số toàn số chẵn không  
3. Tìm chữ số lớn nhất, nhỏ nhất của số nguyên dƣơng n.  
4. S 2*N 2*(N 1) ... 42  
1 1 1  
1
5. S     
0! 1! 2!  
n!  
x3 x5  
x2n1  
6. S x   
...(1)n  
...(1)n  
vơi –< x <   
́
3! 5!  
(2n 1)!  
x2 x4  
x2n  
7. S 1  
vơi –< x <   
́
2! 4!  
(2n)!  
1
8.  
1x x2 x3 xn vơi –1 < x < 1  
́
1x  
n0  
(1)n  
1
1
1
9. cos(x) 1x2 x4   
x6   
x2n vơi –< x <   
́
(2n)!  
2
24  
720  
n0  
(1)n  
2
1
1
1
1
2
10. arccotan(x)   x x3 x5 x7 x9   
x2n1  
n0 2n 1  
3
5
7
9
(1)n1  
1
1
1
11. arctan(x) x x3 x5 x7   
x2n1 vơi –1 < x < 1  
́
2n 1  
3
5
7
n1  
1
1
1
1
12. ex 1x x2 x3 x4   
xn vơi –< x <   
́
2
6
24  
n0 n!  
1
1
1
(1)n1  
13. ln(1x) x x2 x3 x4   
xn vơi –< x <   
́
2
3
4
n
n1  
1x  
1x  
2
2
2
2
14. ln  
2x x3 x5 x7   
x2n1 vơi –< x <   
́
3
5
7
n1 2n 1  
1
1
1
(1)n  
15. sin(x) x x3   
x5   
x7   
x2n1 vơi –< x <   
́
6
120  
5040  
n0 (2n 1)!  
nguyên tô  
tƣ phai qua trai, (iv) In cac chƣ sô  
̉
16. Nhâp  
tô cua no; (iii) In cac chƣ sô  
0); (v) In ra tâ  
sô nguyên k. In ra k sô  
̣
sô  
́
nguyên dƣơng n. (i) Kiêm tra co phai la sô  
́
́
; (ii) Tìm các thừa số nguyên  
tƣ trai qua phai (chú ý số  
̉
́
̀
́
́
́
̉
̃
̉
̃
̉
́
́
̀
́
́
̀
́
́
t ca cac căp  
̣
sô  
́
nguyên dƣơng a và b (a b) sao cho: a2 b2 n . (vi) Nhâp  
u thâp  
phân (chú ý: 10k có thể tràn số).  
̣
̉
́
́
́
thâp phân đƣng sau dâ  
̣
́
̣
́
Trang 13  
BÀI TẬP MINH HỌA MÔN TIN HỌC CƠ SỞ A1  
17. Nhâp  
̣
2 sô  
́
nguyên dƣơng a, b khác không. (i) Tìm USCLN(a, b); (ii) Tìm hai số nguyên x  
và y sao cho: USCLN(a, b) = a * x + b * y.  
18. Nhâp sô nguyên dƣơng n. Cho biêt đo la (i) sô  
sô xêp tăng dân hay giam dân không? (iv) tông cac chƣ sô  
sô lơn va nho nhâ  
̣
́
́
́
đô  
́
i xƣng, (ii) sô  
́
gâ  
̀n đối xƣng, (iii) các chữ  
́
́
̀
́
̉
́
́
̀
̀
́
cho đên khi nho hơn 10, (v) chƣ  
́
̉
̃
̉
̃
́
́
́
t.  
̉
́
̀
19. Xác định phần tử thứ k của dãy Fibonacci: f0 0, f1 1, fk fk1 fk2 , vơi k 2.  
́
20. In ra binh phƣơng cua n sô  
́
nguyên dƣơng đâ  
̀
u tiên, nhƣng (i) chỉ dùng phép „+‟ va phep „–  
̉
̀
́
̀
„; (ii) Chỉ dùng phép „+‟.  
Trang 14  
BÀI TẬP MINH HỌA MÔN TIN HỌC CƠ SỞ A1  
Tuần 6. VÒNG LẶP FOR  
CÁC BÀI TẬP CƠ BẢN  
Bài 1: Viết chƣơng trình tính tổng n số tự nhiên đầu tiên  
S = 1 + 2 + 3 + ... + n  
#include "stdafx.h"  
#include “stdio.h”  
void main()  
{
int n;  
long S = 0;  
printf(" Nhap gia tri n : ");  
scanf("%d",&n);  
if ( n <= 0)  
{
printf("Gia tri n khong hop le.\n");  
return;  
}
for (int i=1;i<=n;i++)  
S = S + i;  
printf("Tong n so tu nhien dau tien la : S = %ld \n",S);  
}
Bài 2: Viết chƣơng trình cho phép ngƣời dùng nhập một số nguyên N > 1. Cho biết N có phải là số  
nguyên tố hay không ?  
Gợi ý:  
Để kiểm tra N có phải là số nguyên tố hay không thì ta kiểm tra xem N có ƣớc số trong đoạn [2, n-1]  
không ? Nếu có ƣớc số trong đoạn đó thì N không phải là số nguyên tố.  
#include "stdafx.h"  
#include “stdio.h”  
void main()  
{
int n,i;  
printf("Nhap gia tri N :");  
scanf("%d",&n);  
if (n <= 1)  
{
printf(" Gia tri N khong hop le.\n");  
return;  
}
for (i=2; i<=n -1; i++)  
{
if ( n%i == 0)  
{
printf("N khong phai la so nguyen to.\n");  
return;  
}
}
printf(" N la so nguyen to. \n");  
}
Trang 15  
 
BÀI TẬP MINH HỌA MÔN TIN HỌC CƠ SỞ A1  
Bài 3: Viết chƣơng trình vẽ một hình chữ nhật bằng các dấu „*‟ với chiều dài và chiều rộng do ngƣời  
dùng nhập vào.  
#include "stdafx.h"  
#include “stdio.h”  
void main()  
{
int m,n,i,j;  
printf("Nhap chieu dai hinh chu nhat : m = ");  
scanf("%d",&m);  
printf("Nhap chieu rong hinh chu nhat : n = ");  
scanf("%d",&n);  
printf("\n");  
for (i=0; i<n; i++)  
{
for (j=0; j<m; j++)  
printf("*");  
printf("\n");  
}
}
Bài 4: Viết chƣơng trình đảo ngƣợc một dãy số với các cách sử dụng vòng lặp For khác nhau.  
Cách 1:  
#include "stdafx.h"  
#include “stdio.h”  
int x[] = {1,2,3,4,5};  
int n = sizeof(x)/sizeof(int);  
void main()  
{
int i,j;  
int c;  
for (i=0, j=n-1; i<j; ++i,--j)  
{
c= x[i];  
x[i] = x[j];  
x[j] = c;  
}
printf("\n Day ket qua la :\n");  
for (i=0; i<n; i++)  
printf(" %d", x[i]);  
}
Cách 2:  
#include "stdafx.h"  
#include “stdio.h”  
int x[] = {1,2,3,4,5};  
int n = sizeof(x)/sizeof(int);  
void main()  
{
int i,j;  
int c;  
for (i=0, j=n-1; i<j; c=x[i], x[i]=x[j], x[j]=c, i++, j--)  
{
// than FOR rong  
}
printf("\n Day ket qua la :\n");  
for (i = -1; ++i < n ;) // vang thanh phan thu 3  
printf(" %d", x[i]);  
}
Trang 16  
BÀI TẬP MINH HỌA MÔN TIN HỌC CƠ SỞ A1  
Cách 3:  
#include "stdafx.h"  
#include “stdio.h”  
int x[] = {1,2,3,4,5};  
int n = sizeof(x)/sizeof(int);  
void main()  
{
int i=0,j=n-1;  
int c;  
for ( ; ; ) // cau lenh FOR vang ca 3 thanh phan  
{
c= x[i];  
x[i] = x[j];  
x[j] = c;  
if (++i >= --j) break;  
}
printf("\n Day ket qua la :\n");  
for (i=0; i-n; ) // thay quan he i<n bang bieu thuc i-n  
printf(" %d", x[i++]);  
}
Cách 4:  
#include "stdafx.h"  
#include “stdio.h”  
int x[] = {1,2,3,4,5};  
int n = sizeof(x)/sizeof(int);  
void main()  
{
int i=0,j=n-1;  
int c;  
for ( ; c=x[i],x[i]=x[j],x[j]=c, ++i<--j; );  
printf("\n Day ket qua la :\n");  
for ( i=0 ; printf(" %d",x[i]), ++i-n ; );  
}
Bài 5: Viết chƣơng trình tìm Ƣớc số chung lớn nhất (USCLN) của hai số a và b, sử dụng vòng lặp FOR.  
#include "stdafx.h"  
#include “stdio.h”  
void main()  
{
int a,b;  
printf("Nhap gia tri a : a =");  
scanf("%d",&a);  
printf("Nhap gia tri b : b =");  
scanf("%d",&b);  
for ( ; a != b ; )  
{
if (a>b)  
a = a-b;  
else  
b=b-a;  
}
printf("\n Uoc so chung lon nhat cua hai so la : %d \n",a);  
}
Trang 17  
BÀI TẬP MINH HỌA MÔN TIN HỌC CƠ SỞ A1  
CÁC BÀI TẬP THÊM CÓ ĐỘ KHÓ TRUNG BÌNH  
1. Xuất tất cả các ký tự từ a đến z, A đến Z, 0 đến 9  
2. Xuất ra bảng mã ASCII: gồm 2 cột: ký tự và mã ASCII, yêu cầu hiển thị thành từng trang một,  
3. Tính tổng các số nguyên tố nhỏ hơn 1000  
4. Viết chƣơng trình nhập vào 1 số nguyên , hãy viết cách đọc số nguyên đó  
5. Viết chƣơng trình in bảng cửu chƣơng ra màn hình  
6. Cần có tổng 20000 từ 3 loại tiền 10000, 20000, 50000. Hãy cho biết tất cả các phƣơng án đó.  
7. Các bài toán vẽ hình: tam giác, hình chữ nhật, cây thông,…  
8. Liệt kê tất cả các ƣớc số của số nguyên dƣơng n. Cho biết có bao nhiêu ƣớc số và tìm tổng của tất  
cả các số ƣớc số đó.  
9. Tìm BSCNN của 2 số nguyên dƣơng a, b.  
10. Kiểm tra 1 số có phải là số nguyên tố không.  
11. Tìm chữ số đảo ngƣợc của số nguyên dƣơng n  
12. Tìm chữ số lớn nhất/ nhỏ nhất của số nguyên dƣơng n  
13. Đếm số lƣợng chữ số, tính tổng các chữ số của số nguyên dƣơng n  
14. Đếm số lƣợng chữ số lẻ/ chẵn của số nguyên dƣơng n.  
15. Tính dãy Fibonacci:  
F0 = 0, F1 = 1, Fn = Fn-1 + Fn-2  
CÁC BÀI TẬP THÊM CÓ ĐỘ KHÓ CAO  
Làm lại các bài khó của chương trước với vòng lặp for  
Trang 18  
BÀI TẬP MINH HỌA MÔN TIN HỌC CƠ SỞ A1  
Tuần 7. CHƯƠNG TRÌNH CON  
1. Viết hàm để xác định số nhỏ hơn trong 2 số, sau đó sử dụng hàm này để xác định số nhỏ hơn  
trong 3 số.  
2. Viết hàm tính ƣớc số chung lớn nhất và bội số chung nhỏ nhất của hai số nguyên dƣơng a,b.  
3. Viết hàm tính giá trị n! , với n là số nguyên dƣơng và n > 1.  
n ! = 1 x 2 x ... x (n-1) x n  
4. Viết hàm tính X n không dùng đệ quy.  
n!  
5. Viết chƣơng trình tính hàm tổ hợp C(n,k)   
trong đó cần cài đặt hàm tính n!.  
k!(n k)!  
6. Viết hàm tính chu vi và diện tích hình chữ nhật khi biết độ dài 2 cạnh. Sau đó vẽ hình chữ nhật ra  
màn hình bằng các dấu *. Hàm tính chu vi, diện tích và hàm vẽ hình chữ nhật phải độc lập nhau.  
* * * * * * * * * * * * * * *  
*
*
*
*
*
*
*
*
* * * * * * * * * * * * * * *  
7. Viết chƣơng trình con xuất ra tam giác Pascal nhƣ sau :  
1
1 1  
1 2 1  
1 3 3 1  
1 4 6 4 1  
8. Viết hàm nhập vào tháng bằng số rồi in ra tên tháng bằng chữ ra màn hình.  
9. Viết hàm để kiểm tra một ngày nào đó có hợp lệ hay không, kiểm tra năm nhuần.  
10. Viết hàm đổi ngày tháng năm thành thứ trong tuần.  
11. Viết hàm để nhận biết một số nguyên dƣơng có phải là số nguyên tố hay không.  
12. Viết chƣơng trình in ra tất cả các số nguyên tố nhỏ hơn số nguyên dƣơng M cho trƣớc ( sử dụng  
hàm kiểm tra số nguyên tố đã cài đặt ở trên ).  
13. Viết hàm kiểm tra một số nguyên dƣơng có phải là số chính phƣơng hay không. Xuất tất cả các số  
chính phƣơng trong khoảng A,B.  
Trang 19  
 
BÀI TẬP MINH HỌA MÔN TIN HỌC CƠ SỞ A1  
14. Một số tự nhiên đƣợc gọi là số hoàn thiện nếu nó bằng tổng tất cả các ƣớc số của nó, kể cả 1. Hãy  
viết hàm kiểm tra một số có phải là số hoàn thiện hay không, và in ra tất cả các số hoàn thiện nhỏ  
hơn số N cho trƣớc.  
15. Viết hàm tính tổng nghịch đảo của n số nguyên.  
16. Viết hàm đếm số các số chẵn trong khoảng từ M đến N, tính tổng các số đó.  
17. Tính Sin của giá trị x bất kì theo công thức :  
x3 x5 x7  
sin x x   
... So sánh kết quả với hàm sin(double) đã có.  
3! 5! 7!  
18. Viết chƣơng trình con xuất ra màn hình dãy số Fibonanci cấp n, xác định theo công thức :  
Fib(1) = 1  
Fib(2) = 1  
Fib(n) = Fib(n-1) + Fib(n-2) với n> 2.  
19. Ta có các loại tiền 50.000, 20.000, 10.000, 5.000, 2.000, 1.000. Viết hàm cho biết số tờ của từng  
loại tiền để tổng của chúng bằng một số tiền nào đó mà ngƣời dùng nhập vào. Cho biết tất cả các  
phƣơng án có thể có, sau đó thông biết phƣơng án nào cho kết quả có số tờ ít nhất.  
20. Cho trƣớc mảng số nguyên n phần tử và số M. Tìm tập hợp các phần tử trong A sao cho tổng của  
chúng bằng M.  
Tuần 8. CHƯƠNG TRÌNH CON (tt)  
CÁC BÀI TẬP THÊM VỀ CHƯƠNG TRÌNH CON  
1. Viết hàm đổi một số hệ 10 sang hệ 16 và ngƣợc lại.  
2. Viết hàm làm tròn một số thực với 2 tham số đầu vào : số cần phải làm tròn và số chữ số phần  
thập phân có nghĩa sau khi làm tròn.  
3. Viết chƣơng trình đảo vị trí các kí số trong một số. Dữ liệu input là một số nguyên dƣơng n, giá trị  
của n sẽ thay đổi sau khi gọi thực hiện chƣơng trình con đảo kí số.  
Ví dụ :  
void main()  
{
int n = 12345;  
DaoKiSo(n);  
// n == 54321  
}
4. Viết chƣơng trình con rút gọn một phân số.  
5. Viết hàm tính khoảng cách giữa 2 điểm trong hệ tọa độ vuông góc khi biết tọa độ của chúng.  
Trang 20  
 
Tải về để xem bản đầy đủ
pdf 54 trang myanh 26520 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài tập minh họa học phần Nhập môn lập trình", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_tap_minh_hoa_hoc_phan_nhap_mon_lap_trinh.pdf