You are on page 1of 29

Tin học đại cương

https://bkkhongsotach.edu.vn/ Hướng dẫn thực hành

Hướng dẫn thực hành Tin học đại cương

Bài 3.01: Lập chương trình thực hiện các công việc sau:
1. Nhập vào điểm 3 môn Toán, Lý, Hóa của học sinh
2. Tính tổng điểm và điểm trung bình của học sinh đó
Mô tả:
Giá trị đầu vào: Điểm Toán, điểm Lý, điểm Hóa
Giá trị đầu ra:
+ Dòng 1: Tổng điểm
+ Dòng 2: Trung bình

For example:
Dữ liệu đầu vào Kết quả
1 6.000000
2 2.000000
3

Hướng dẫn:
#include<stdio.h>

int main(){
double toan, ly, hoa;
double tong, tb;
scanf("%lf%lf%lf",&toan,&ly,&hoa);
tong = toan + ly + hoa;
tb=tong/3;
printf("%f\n%f",tong,tb);
return 0;
}

Bài 3.02: Lập chương trình thực hiện các công việc sau:
1. Nhập vào một số thực r (r > 0) bất kỳ
2. Tính chu vi M, diện tích S của hình trong bán kính r
Giá trị PI = 3.14159
Chú ý: Nếu giá trị đầu vào không thỏa mãn điều kiện chương trình in ra màn hình
chữ ERROR và kết thúc
Mô tả:

1
Tin học đại cương
https://bkkhongsotach.edu.vn/ Hướng dẫn thực hành

Giá trị đầu vào: số thực r


Giá trị đầu ra:
+ Dòng 1: Chu vi M
+ Dòng 2: Diện tích S

For example:
Dữ liệu đầu vào Kết quả
1 6.283180
3.141590

Hướng dẫn:
#include<stdio.h>

int main(){
double r;
scanf("%lf",&r);
double PI=3.14159;
if(r<=0){
printf("ERROR");
}
else{
double M,S;
M = 2*PI*r;
S=PI*r*r;
printf("%f\n%f",M,S);
}
return 0;
}

Bài 3.03: Lập trình thực hiện các công việc sau:
1. Nhập 2 số thực x,y
2. Tính các giá trị biểu thức sau:
=
A X 2 +Y2
=
B ( X + Y )2
=
C ( X − Y )2
Mô tả:
Giá trị đầu vào:

2
Tin học đại cương
https://bkkhongsotach.edu.vn/ Hướng dẫn thực hành

+ Số thực X
+ Số thực Y
Giá trị đầu ra:
+ Kết quả A
+ Kết quả B
+ Kết quả C

For example:
Dữ liệu đầu vào Kết quả
1 5.000000
2 9.000000
1.000000

Hướng dẫn:
#include<stdio.h>
#include<math.h>

int main(){
double x,y;
scanf("%lf%lf",&x,&y);
double A,B,C;
A=pow(x,2)+pow(y,2);
B=pow(x+y,2);
C=pow(x-y,2);
printf("%f\n%f\n%f",A,B,C);
return 0;
}

Bài 3.04: Viết chương trình yêu cầu người dùng nhập giá chưa có thuế của 1 kg
cà chua, số kg bạn muốn mua và thuế theo đơn vị phần trăm. Chương trình phải
tính tổng đã bao gồm thuế
Mô tả:
Giá trị đầu vào:
+ Giá không thuế
+ Cân nặng
+ Thuế
Giá trị đầu ra:
Tổng giá trị sau thuế

3
Tin học đại cương
https://bkkhongsotach.edu.vn/ Hướng dẫn thực hành

For example:
Dữ liệu đầu vào Kết quả
1 2.060000
2
3

Hướng dẫn:
#include<stdio.h>

int main(){
double giag, kg,thue;
scanf("%lf%lf%lf",&giag,&kg,&thue);
double tien;
tien = (giag*kg)*(100+thue)/100;
printf("%f",tien);
return 0;
}

Bài 3.05: Lập chương trình thực hiện các công việc sau:
1. Nhập 3 số thực x, y, z bất kì
2. Tính giá trị biểu thức:
F = (( x + y + z ) / ( x 2 + y 2 + 1)) − x − z cos( y )
Mô tả:
Giá trị đầu vào:
+ Số thực x
+ Số thực y
+ Số thực z
Giá trị đầu ra:
Kết quả F

For example:
Dữ liệu đầu vào Kết quả
1 -1.248441
2
3

4
Tin học đại cương
https://bkkhongsotach.edu.vn/ Hướng dẫn thực hành

Hướng dẫn:
#include<stdio.h>
#include<math.h>

int main(){
double x,y,z;
scanf("%lf%lf%lf",&x,&y,&z);
double F;
F= ((x+y+z)/(x*x + y*y + 1)-fabs(x-z*cos(y)));
printf("%f",F);
return 0;
}

Bài 3.06: Lập chương trình thực hiện các công việc sau
1. Nhập 2 số thực X, Y
2. Tính giá trị biểu thức F
F = Y 6 + X ×Y 5 + X 2 ×Y 4 + X 3 ×Y 3 + X 4 ×Y 2 + X 5 ×Y + X 6
Mô tả:
Giá trị đầu vào:
+ Số thực X
+ Số thực Y
Giá trị đầu ra:
Kết quả F

Hướng dẫn:
#include<stdio.h>
#include<math.h>

int main(){
double x,y;
scanf("%lf%lf",&x,&y);
double F;
F=pow(y,6)+pow(y,5)*x+pow(x,2)*pow(y,4)+pow(x,3)*pow(y,3)+pow(x,4)*pow
(y,2)+pow(x,5)*y+pow(x,6);
printf("%f",F);
return 0;
}

5
Tin học đại cương
https://bkkhongsotach.edu.vn/ Hướng dẫn thực hành

Bài 4.01:
Nhập số nguyên và không âm n với n < 8
Viết chương trình tính giai thừa của n ( tính n! ).
Note:
- Sử dụng vòng lặp for để giải quyết bài toán.
- Nếu dữ liệu đầu vào không đúng mô tả của đề bài, hiển thị ra màn hình
"ERROR"
Mô tả giá trị đầu vào:
Số nguyên n
Mô tả giá trị đầu ra:
Kết quả n!
For example:
Dữ liệu đầu vào Kết quả

1 1

Hướng dẫn:
#include<stdio.h>

int main(){
int n;
scanf("%d",&n);
if(n>=8 || n<0){
printf("ERROR");
}
else{
int gt=1;
for(int i=1;i<=n;i++){
gt*=i;
}
printf("%d",gt);
}
return 0;
}

Bài 4.02:
Số nguyên tố là một số nguyên dương chỉ chia hết cho 1 và chính nó. Viết chương
trình nhập một số nguyên 𝑛𝑛 từ bàn phím, kiểm tra xem số nguyên 𝑛𝑛 đó có phải là
số nguyên tố hay không và thông báo ra màn hình.

6
Tin học đại cương
https://bkkhongsotach.edu.vn/ Hướng dẫn thực hành

Mô tả dữ liệu đầu vào:


Số nguyên 𝑛𝑛
Mô tả dữ liệu đầu ra:
La so nguyen to
Khong phai so nguyen to
For example:
Dữ liệu đầu vào Kết quả

1 Khong phai so nguyen to


Hướng dẫn:
#include<stdio.h>

int main(){
int n;
scanf("%d",&n);
if(n<=1){
printf("Khong phai so nguyen to");
}
else{
int count=0;
for(int i=2;i<n;i++){
if(n%i==0){
count++;
break;
}
}
if(count==0){
printf("La so nguyen to");
}
else{
printf("Khong phai so nguyen to");
}
}
}

Bài 4.03:
Lập chương trình thực hiện các công việc sau:
- Nhập một số nguyên dương bất kỳ nhỏ hơn 1000
- Tính tổng các chữ số của số đó. Ví dụ: số 123 có tổng các chữ số là 1+2+3=6.
- Thông báo kết quả ra màn hình.

7
Tin học đại cương
https://bkkhongsotach.edu.vn/ Hướng dẫn thực hành

Chú ý:
- Sử dụng vòng lặp while để làm
- Nếu giá trị nhập vào lớn hơn hoặc bằng 1000 thì in ra màn hình ERROR.
Mô tả giá trị đầu vào:
Số nguyên n < 1000
Mô tả giá trị đầu ra:
Tổng các chữ số của số nguyên n

For example:
Dữ liệu đầu vào Kết quả

123 6

Hướng dẫn:
#include<stdio.h>

int main(){
int n;
scanf("%d",&n);
if(n>=1000){
printf("ERROR");
}
else{
int tong=0;
while(n>0){
tong += n%10;
n=n/10;
}
printf("%d",tong);
}
return 0;
}

Bài 4.04:
Viết chương trình thực hiện các công việc sau:
- Nhập 2 số nguyên dương 𝑎𝑎, 𝑏𝑏 bất kỳ
- Tìm ước số chung lớn nhất và bội số chung nhỏ nhất của 2 số đó
- Hiển thị kết quả ra màn hình

8
Tin học đại cương
https://bkkhongsotach.edu.vn/ Hướng dẫn thực hành

Chú ý: Kiểm tra dữ liệu đầu vào của chương trình, nếu không đúng thì kết thúc
chương trình và in ra màn hình ERROR.
Mô tả dữ liệu đầu vào:
Số nguyên dương a
Số nguyên dương b
Mô tả dữ liệu đầu ra:
Ước số chung lớn nhất
Bội số chung nhỏ nhất
For example:
Dữ liệu đầu vào Kết quả

1 1
2 2
Hướng dẫn:
#include<stdio.h>

int main(){
int a,b;
scanf("%d%d",&a,&b);
if(a<=0 || b<=0){
printf("ERROR");
}
else{
int uoc,boi;
for(int i=1;;i++){
boi=a*i;
if(boi%b==0){
break;
}
}
for(int i=a;i>0;i--){
if(a%i==0 && b%i==0){
uoc=i;
break;
}
}
printf("%d\n%d",uoc,boi);
}
return 0;
}

9
Tin học đại cương
https://bkkhongsotach.edu.vn/ Hướng dẫn thực hành

Bài 4.05:
Lập chương trình thực hiện các công việc sau:
1. Nhập 3 số thực a,b,c bất kì.
2. Giải và biện luận phương trình bậc 2:
ax 2 + bx + c =0
Tính cả trường hợp với a=0 và trường hợp nghiệm phức
Chú ý :
Phương trình vô nghiệm in ra màn hình Phuong trinh vo nghiem
Phương trình vô số nghiệm in ra màn hình Phuong trinh vo so nghiem
Nếu phương trình có 2 nghiệm phân biệt thì hiển thị nghiệm lớn trước rồi mới
đến nghiệm bé
Mô tả giá trị đầu vào:
Số thực a
Số thực b
Số thực c
Mô tả giá trị đầu ra:
Kết quả

For example:
Dữ liệu đầu vào Kết quả

2 1.000000
-3 0.500000
1

10
Tin học đại cương
https://bkkhongsotach.edu.vn/ Hướng dẫn thực hành

Hướng dẫn:
#include<stdio.h>
#include<math.h>

int main(){
double a,b,c;
scanf("%lf%lf%lf",&a,&b,&c);
if(a==0){
if(b==0){
if(c==0){
printf("Phuong trinh vo so nghiem");
}
else{
printf("Phuong trinh vo nghiem");
}
}
else{
printf("%f",-c/b);
}
}
else{
double delta = b*b - 4*a*c;
if(delta==0){
printf("%f",-b/2/a);
}
else if(delta >0){
printf("%f\n%f",(-b+sqrt(delta))/2/a,(-b-sqrt(delta))/2/a);
}
else{
printf("%f+%fi\n%f-%fi",-b/2/a,sqrt(-delta)/2/a,-b/2/a,sqrt(-
delta)/2/a);
}
}
return 0;
}

Bài 4.06:Viết chương trình tính các tổng sau:


S =1 + x + x 2 + x3 + ... + x n
Trong đó n là một số nguyên dương và x là một số thực bất kỳ được nhập từ bàn
phím khi chạy chương trình.

11
Tin học đại cương
https://bkkhongsotach.edu.vn/ Hướng dẫn thực hành

Chú ý: Kiểm tra dữ liệu đầu vào của chương trình, nếu không đúng thì kết thúc
chương trình và in ra màn hình Error.
Mô tả dữ liệu đầu vào:
Số nguyên dương n
Số thực x
Mô tả dữ liệu đầu ra:
Giá trị của S
For example:
Dữ liệu đầu vào Kết quả

1 2.500000
1.5
Hướng dẫn:
#include<stdio.h>
#include<math.h>

int main(){
int n;
double x;
scanf("%d%lf",&n,&x);
if(n<=0){
printf("Error");
}
else{
double S=0;
for(int i=0;i<=n;i++){
S = S + pow(x,i);
}
printf("%f",S);
}
return 0;
}

Bài 4.07:Viết chương trình tính các tổng sau:


S = 1 − x + x 2 − x3 + ... + (−1) n × x n
Trong đó n là một số nguyên dương và x là một số thực bất kỳ được nhập từ bàn
phím khi chạy chương trình.

12
Tin học đại cương
https://bkkhongsotach.edu.vn/ Hướng dẫn thực hành

Chú ý: Kiểm tra dữ liệu đầu vào của chương trình, nếu không đúng thì kết thúc
chương trình và in ra màn hình Error.
Mô tả dữ liệu đầu vào:
Số nguyên dương n
Số thực x
Mô tả dữ liệu đầu ra:
Giá trị của S
For example:
Dữ liệu đầu vào Kết quả

1 -0.500000
1.5
Hướng dẫn:
#include<stdio.h>
#include<math.h>

int main(){
int n;
double x;
scanf("%d%lf",&n,&x);
if(n<=0){
printf("Error");
}
else{
double S=0;
for(int i=0;i<=n;i++){
S = S + pow(-1,i)*pow(x,i);
}
printf("%f",S);
}
return 0;
}

Bài 4.08:Viết chương trình tính các tổng sau:


x x 2 x3 xn
S =1 + + + + ... +
1! 2! 3! n!

13
Tin học đại cương
https://bkkhongsotach.edu.vn/ Hướng dẫn thực hành

Trong đó n là một số nguyên dương và x là một số thực bất kỳ được nhập từ bàn
phím khi chạy chương trình.
Chú ý: Kiểm tra dữ liệu đầu vào của chương trình, nếu không đúng thì kết thúc
chương trình và in ra màn hình Error.
Mô tả dữ liệu đầu vào:
Số nguyên dương n
Số thực x
Mô tả dữ liệu đầu ra:
Giá trị của S
Dữ liệu đầu vào Kết quả
1 2.500000
1.5
Hướng dẫn:
#include<stdio.h>
#include<math.h>

int gt(int x){


int c=1;
for(int i=1;i<=x;i++){
c = c * i;
}
return c;
}
int main(){
int n;
double x;
scanf("%d%lf",&n,&x);
if(n<=0){
printf("Error");
}
else{
double S=0;
for(int i=0;i<=n;i++){
S = S + pow(x,i)/gt(i);
}
printf("%f",S);
}
return 0;
}

14
Tin học đại cương
https://bkkhongsotach.edu.vn/ Hướng dẫn thực hành

Bài 4.09:
Viết một chương trình yêu cầu người dùng nhập các giá trị của x và n và tính các
biểu thức sau:
S = x + x + x + ... + x (n dấu căn bậc 2)
Chú ý:

• Hiện thị kết quả 4 số sau dấu phẩy


• Nếu n < 1 hoặc x <0 hiển thị "Error"

Mô tả dữ liệu đầu vào: số dương x và số nguyên dương n

Mô tả dữ liệu đầu ra: Kết quả của các biểu thức trên
For example:
Dữ liệu đầu vào Kết quả

11 1.0000

Hướng dẫn:
#include<stdio.h>
#include<math.h>

int main(){
int n;
double x;
scanf("%lf%d",&x,&n);
if(n<1 || x <0){
printf("Error");
}
else{
double S=0;
for(int i=1;i<=n;i++){
S = sqrt(S+x);
}
printf("%.4f",S);
}
return 0;
}

15
Tin học đại cương
https://bkkhongsotach.edu.vn/ Hướng dẫn thực hành

Bài 4.10:
Viết một chương trình yêu cầu người dùng nhập các giá trị của x và n và tính các
biểu thức sau:
x 2 x3 xn
S =1 + x + + + ... +
2 3 n
Chú ý:

• Hiện thị kết quả 4 số sau dấu phẩy



o Nếu n < 1 hoặc x <0 hiển thị "Error"

Mô tả dữ liệu đầu vào: số dương x và số nguyên dương n

Mô tả dữ liệu đầu ra: Kết quả của các biểu thức trên
For example:
Dữ liệu đầu vào Kết quả

11 2.0000

Hướng dẫn:
#include<stdio.h>
#include<math.h>

int main(){
int n;
double x;
scanf("%lf%d",&x,&n);
if(n<1 || x<0 ){
printf("Error");
}
else{
double S=1;
for(int i=1;i<=n;i++){
S = S + pow(x,i)/i;
}
printf("%.4f",S);
}
return 0;
}

16
Tin học đại cương
https://bkkhongsotach.edu.vn/ Hướng dẫn thực hành

Bài 4.11: Viết một chương trình yêu cầu người dùng nhập các giá trị của x và n
và tính các biểu thức sau:
x x 2 x3 xn
S =1 + + + + ... +
1! 2! 3! n!
Chú ý:
Hiện thị kết quả 4 số sau dấu phẩy
Nếu n < 1 hoặc x <0 hiển thị "Error"
Mô tả dữ liệu đầu vào: số dương x và số nguyên dương n
Mô tả dữ liệu đầu ra: Kết quả của các biểu thức trên
For example:
Dữ liệu đầu vào Kết quả

11 2.0000
Hướng dẫn:
#include<stdio.h>
#include<math.h>

int gt(int x){


int c=1;
for(int i=1;i<=x;i++){
c = c * i;
}
return c;
}
int main(){
int n;
double x;
scanf("%lf%d",&x,&n);
if(n<1 || x<0){
printf("Error");
}
else{
double S=0;
for(int i=0;i<=n;i++){
S = S + pow(x,i)/gt(i);
}
printf("%.4f",S);
}
return 0;
}

17
Tin học đại cương
https://bkkhongsotach.edu.vn/ Hướng dẫn thực hành

Bài 4.12: Viết một chương trình yêu cầu người dùng nhập các giá trị của x và n
và tính các biểu thức sau:
x 2 x3 (−1) n × x n
S =1 − x + − + ... +
2! 3! n!
Chú ý:
Hiện thị kết quả 4 số sau dấu phẩy
Nếu n < 1 hoặc x <0 hiển thị "Error"
Mô tả dữ liệu đầu vào: số dương x và số nguyên dương n
Mô tả dữ liệu đầu ra: Kết quả của các biểu thức trên
For example:
Dữ liệu đầu vào Kết quả

11 0.0000
Hướng dẫn:
#include<stdio.h>
#include<math.h>
int gt(int x){
int c=1;
for(int i=1;i<=x;i++){
c=c*i;
}
return c;
}
int main(){
int n;
double x;
scanf("%lf%d",&x,&n);
if(n<1 || x<0){
printf("Error");
}
else{
double S=1;
for(int i=1;i<=n;i++){
S = S + pow(-1,i)*pow(x,i)/gt(i);
}
printf("%.4f",S);
}
return 0;
}

18
Tin học đại cương
https://bkkhongsotach.edu.vn/ Hướng dẫn thực hành

Bài 5.01:
Nhập mảng n số nguyên từ bàn phím, in ra màn hình các giá trị từ cuối đến giá trị
đầu, sau đó tính tổng các phần tử của mảng.
Chú ý:
Nếu n <= 0 in "Error"
Mô tả giá trị đầu vào:
• Dòng đầu tiên chứa số nguyên dương n và là độ dài của mảng đầu vào.
• Dòng thứ hai chứa n số nguyên.
Mô tả giá trị đầu ra:
• Dòng đầu tiên là các phần tử của mảng được in theo thứ tự đảo ngược.
• Dòng đầu ra thứ hai là tổng các phần tử của mảng
For example:
Dữ liệu đầu vào Kết quả

5 54321
12345 15
Hướng dẫn:
#include<stdio.h>

int main(){
int n;
scanf("%d",&n);
if(n<=0){
printf("Error");
}
else{
int a[n];
int tong=0;
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
tong+=a[i];
}
for(int i=n-1;i>=0;i--){
printf("%d ",a[i]);
}
printf("\n%d",tong);
}
return 0;
}

19
Tin học đại cương
https://bkkhongsotach.edu.vn/ Hướng dẫn thực hành

Bài 5.02:
• Nhập mảng số nguyên từ bàn phím. Tính trung bình cộng các số âm, tổng các số
dương và đưa kết quả ra màn hình.
• Mô tả giá trị đầu vào:
- Dòng đầu tiên cho biết số phần tử mảng 𝑛𝑛.
- Dòng thứ 2 chứa giá trị của n phần tử mảng, các phần tử cách nhau một dấu cách.
• Mô tả giá trị đầu ra:
Một dòng gồm 2 giá trị cách nhau 1 dấu cách: (mỗi kết quả hiển thị số thực đến 6
số đằng sau dấu phảy)
- Giá trị trung bình cộng các số âm, nếu mảng không có số âm thì in ra "Mang
khong co so am"
- Giá trị tổng các số dương, nếu mảng không có số dương nào thì in ra: "Mang
khong co so duong"
Ví dụ:
• Đầu vào:
3
123
Đầu ra:
Mang khong co so am 6.000000

• For example:
Dữ liệu đầu vào Kết quả
2 -492.000000 295.000000
295 -492
5 Mang khong co so am 15.000000
12345

20
Tin học đại cương
https://bkkhongsotach.edu.vn/ Hướng dẫn thực hành

Hướng dẫn:
#include<stdio.h>

int main(){
int n;
scanf("%d",&n);
int a[n];
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
}
double tonga=0, tongd=0, count=0;
for(int i=0;i<n;i++){
if(a[i]<0){
count++;
tonga += a[i];
}
else{
tongd+=a[i];
}
}
if(count == 0){
printf("Mang khong co so am %f",tongd);
}
else if(count ==n){
printf("%f Mang khong co so duong",tonga/count);
}
else{
printf("%f %f",tonga/count, tongd);
}
return 0;
}

Bài 5.03:
Nhập mảng 𝑛𝑛 số nguyên bất kỳ từ bàn phím. Sắp xếp dãy số theo thứ tự tăng dần
và đưa kết quả ra màn hình (Mỗi phần tử cách nhau một dấu cách).
Mô tả giá trị đầu vào:
- Dòng đầu tiên cho biết số phần tử mảng 𝑛𝑛.
- Dòng thứ 2 chứa giá trị của 𝑛𝑛 phần tử mảng, mỗi phần tử cách nhau một dấu
cách.
Mô tả giá trị đầu ra:
Các phần tử in ra thành 1 dòng, cách nhau 1 dấu cách.

21
Tin học đại cương
https://bkkhongsotach.edu.vn/ Hướng dẫn thực hành

For example:
Dữ liệu đầu vào Kết quả

5 12345
14352

Hướng dẫn:
#include<stdio.h>

int main(){
int n;
scanf("%d",&n);
int a[n];
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
}
for(int i=0;i<n;i++){
for(int j=i+1;j<n;j++){
if(a[i]>a[j]){
int c=a[i];
a[i]=a[j];
a[j]=c;
}
}
}
for(int i=0;i<n;i++){
printf("%d ",a[i]);
}
return 0;
}

Bài 5.04:
Viết chương trình cho phép nhập vào 1 mảng số nguyên (tối đa 10 phần tử), in ra
màn hình tích của 2 phần tử liên tiếp lớn nhất. Nếu mảng chỉ có 1 phần tử trả về
kết quả là 0. Nếu tích lớn nhất là một số âm thì trả về 0.
Mô tả giá trị đầu vào:
- Dòng đầu tiên chứa số nguyên n: số phần tử của mảng (2 <= n <=10)
- Dòng thứ 2 chứa danh sách các số cách nhau khoảng trắng
Mô tả giá trị đầu ra:
Tích 2 phần tử liên tiếp lớn nhất.

22
Tin học đại cương
https://bkkhongsotach.edu.vn/ Hướng dẫn thực hành

For example:
Dữ liệu đầu vào Kết quả

5 27
19326

Hướng dẫn:
#include<stdio.h>

int main(){
int n;
scanf("%d",&n);
if(n==1){
printf("0");
}
else{
int a[n];
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
}
int tich=a[0]*a[1];
for(int i=1;i<n-1;i++){
if(tich<a[i]*a[i+1]){
tich=a[i]*a[i+1];
}
}
if(tich<0){
printf("0");
}
else{
printf("%d",tich);
}
}
return 0;
}

Bài 5.05:
Viết chương trình cho phép nhập vào 1 mảng số nguyên (tối đa 10 phần tử), in ra
màn hình tổng của 2 phần tử liên tiếp lớn nhất. Nếu mảng chỉ có 1 phần tử trả về
kết quả là 0. Nếu tổng lớn nhất là một số âm thì trả về 0.

23
Tin học đại cương
https://bkkhongsotach.edu.vn/ Hướng dẫn thực hành

Mô tả giá trị đầu vào:


- Dòng đầu tiên chứa số nguyên n: số phần tử của mảng (2 <= n <=10)
- Dòng thứ 2 chứa danh sách các số cách nhau khoảng trắng
Mô tả giá trị đầu ra:
Tổng 2 phần tử liên tiếp lớn nhất.
For example:
Dữ liệu đầu vào Kết quả

5 12
19326

Hướng dẫn:
#include<stdio.h>

int main(){
int n;
scanf("%d",&n);
if(n==1){
printf("0");
}
else{
int a[n];
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
}
int tich=a[0]+a[1];
for(int i=1;i<n-1;i++){
if(tich<a[i]+a[i+1]){
tich=a[i]+a[i+1];
}
}
if(tich<0){
printf("0");
}
else{
printf("%d",tich);
}
}
return 0;
}

24
Tin học đại cương
https://bkkhongsotach.edu.vn/ Hướng dẫn thực hành

Bài 6.01:
Viết chương trình đọc hai chuỗi S và T. Đếm số lần mỗi ký tự xuất hiện trong cả
hai chuỗi.
Chú ý:
Đầu tiên xuất một chuỗi các ký tự riêng biệt trong cả hai chuỗi. Sau đó, đối với
mỗi ký tự đó hiển thị ra số lần xuất hiện trong cả hai chuỗi.

Mô tả giá trị đầu vào:

• Chuỗi S
• Chuỗi T
Mô tả giá trị đầu ra:

• Một chuỗi các ký tự riêng biệt xuất hiện trong S hoặc T. (Sắp xếp các ký tự này
theo thứ tự tăng dần theo giá trị ASCII của chúng).
• Trên mỗi dòng là số lần xuất hiện của một ký tự (theo thứ tự trong chuỗi trên dòng
1).
For example:
Dữ liệu đầu vào Kết quả

b ab
a 1
1

Hướng dẫn:
#include<stdio.h>
#include<string.h>
#include<ctype.h>

int main(){
char S[1000],T[1000];
fgets(S,sizeof(S),stdin);
fgets(T,sizeof(T),stdin);
int a[1000]={};
for(int i=0;i<strlen(S)-1;i++){
a[S[i]]+=1;
}
for(int i=0;i<strlen(T)-1;i++){

25
Tin học đại cương
https://bkkhongsotach.edu.vn/ Hướng dẫn thực hành

a[T[i]]+=1;
}
for(int i=0;i<1000;i++){
if(a[i]!=0){
printf("%c",i);
}
}
for(int i=0;i<1000;i++){
if(a[i]!=0){
printf("\n%d",a[i]);
}
}
}

Bài 6.02:
Viết chương trình thực hiện công việc sau:

• Nhập vào từ bàn phím một câu tiêu đề bài báo bất kỳ.
• Chuẩn hóa xâu đã nhập bằng cách xóa các dấu cách thừa ở đầu, cuối, giữa để đảm
bảo chỉ có 1 dấu cách phân tách giữa các từ.
• Đưa câu tiêu đề đã được chuẩn hóa ra màn hình.
Mô tả giá trị đầu vào:

• Câu tiêu đề được nhập thành 1 dòng từ bàn phím.


Mô tả giá trị đầu ra:

• Câu đã chuẩn hóa in ra thành 1 dòng với quy cách <nội dung>
• For example:
Dữ liệu đầu vào Kết quả

h ell o h ell o

Hướng dẫn:
#include<stdio.h>
#include<string.h>

int main(){
char s[1000],t[1000];
fgets(s,sizeof(s),stdin);
int count=0;

26
Tin học đại cương
https://bkkhongsotach.edu.vn/ Hướng dẫn thực hành

for(int i=0;i<strlen(s)-1;i++){
if(s[i]!=' '){
break;
}
count++;
}
int j=0;
for(int i=count;i<strlen(s)-1;i++){
if(s[i]==' ' && s[i+1]==' '){
continue;
}
else{
printf("%c",s[i]);
}
}
}

Bài 6.03:
Viết chương trình thực hiện công việc sau:
Nhập vào một xâu ký tự từ bàn phím (tối đa 100 ký tự).
• Hiển thị 0 nếu số lượng ký tự chữ và số lượng ký tự số trong xâu bằng nhau.
• Hiểu thị 1 nếu số lượng ký tự chữ nhiều hơn số lượng ký tự số
• Hiển thị 2 nếu số lượng ký tự chữ ít hơn số lượng ký tự số
Mô tả giá trị đầu vào:

• Dòng đầu tiên nhập vào một xâu ký tự.


Mô tả giá trị đầu ra:

• Hiển thị giá trị của phép so sánh số lượng ký tự chữ và số lượng ký tự số.
• For example:
Dữ liệu đầu vào Kết quả

123abc 0

Hướng dẫn:
#include<stdio.h>
#include<string.h>
#include<ctype.h>

int main(){

27
Tin học đại cương
https://bkkhongsotach.edu.vn/ Hướng dẫn thực hành

char a[100];
fgets(a,sizeof(a),stdin);
int kytu=0, so=0;
for(int i=0;i<strlen(a)-1;i++){
if(isalpha(a[i])){
kytu++;
}
if(isdigit(a[i])){
so++;
}
}
if(kytu == so){
printf("0");
}
else if(kytu > so){
printf("1");
}
else {
printf("2");
}
}

Bài 6.04:
Viết chương trình thực hiện công việc sau:
Nhập một số nhị phân (tối đa 16 bit) biểu diễn số nguyên có dấu từ bán phím. Biết
rằng bit đầu tiên là bit dấu, thực hiện chuyển đổi số nhị phân sang số thập phân
tương ứng.
Mô tả giá trị đầu vào:

• Dòng đầu tiên nhập vào một xâu ký tự.


Mô tả giá trị đầu ra:

• Hiển thị giá trị số nhị phân tương ứng.


For example:
Dữ liệu đầu vào Kết quả

0101 5

Hướng dẫn:
#include<stdio.h>

28
Tin học đại cương
https://bkkhongsotach.edu.vn/ Hướng dẫn thực hành

#include<string.h>
#include<math.h>

int main(){
char s[20];
fgets(s,sizeof(s),stdin);
int dai;
dai = strlen(s)-1;
int a[dai];
for(int i=0;i<dai;i++){
if(s[i]=='0'){
a[i]=0;
}
else{
a[i]=1;
}
}
int S=-1*a[0]*pow(2,dai-1);
for(int i=1;i<dai;i++){
S = S + a[i]*pow(2,dai-1-i);
}
printf("%d",S);
}

29

You might also like