Bài tập C++ hay có lời giải

Các bạn đang học C++ và các bạn đang muốn tìm thêm các bài tập C++ mẫu hay để tìm hiểu và học tập nâng cao kiến thức C++ cho mình. Vậy mời các bạn cùng tham khảo và tải các bài tập C++ hay có lời giải mà bài viết tổng hợp và chia sẻ dưới đây.

Bài tập C++ hay có lời giải

Dưới đây là các bài tập C++ hay có lời giải cơ bản , các bạn có thể tải thêm nhiều bài tập C++ hay cơ bản, nâng cao tại đường dẫn cuối bài.

Bài tập C++ Hàm

1. Tìm ước chung lớn nhất của 2 số a, b

#include "iostream"
  using namespace std;
  int ucln(int, int);
  int ucln(int x, int y){
  if (x < y){
  x = x + y;
  y = x - y;
  x = x - y;
  }
  while (y != 0){
  int m = x%y;
  x = y;
  y = m;
  }
  return x;
  }
int main()
  {
  int a, b;
  cin >> a >> b;
  cout << ucln(a, b);
  return 0;
  }

2. Viết chương trình có dùng hàm kiểm tra năm nhuận

#include  <iostream.h>
  #include <conio.h>
  int isLeapYear(int y)
  { return y % 4 == 0 && (y % 100 != 0 || y % 400 == 0);
  }
  void main()
  {
  int n;
  do
  {
  cin >> n;
  if (isLeapYear(n)) cout << n << " la nam  nhuan.\n"; else cout << n << " Khong phai nam  nhuan.\n";
  }
  while (n>1);
  }

Bài tập C++ Câu lệnh điều khiển

Nhập vào 1 số nguyên, yêu cầu xuất ra chữ số hàng trăm của số đó, nếu không có thì xuất ra 0

VD:

Input

Output

1234

2

#include <iostream>
  using namespace std;
  int main()
    {
  int n, i;
  cin >> n;
  i = 0;
  if (n < 100) {
  cout << i << endl;
  }
  else {
  i = n / 100 % 10;
  cout << i << endl;
  }
  return 0;
  }

Bài tập C++ Chuỗi ký tự

1. Viết chương trình bỏ ký tự a trong một chuỗi

#include <iostream.h>  #include <conio.h> #include <stdio.h> void main()
  {
  int i,j; char x[80];
  cout<<"\nnhap mot chuoi : "; gets(x);
  for  (i=j=0;x[i]!=NULL;i++) if (x[i]!='a')
  {
  x[j]=x[i]; j++;
  }
  x[j]= NULL;
  cout<<"\nChuoi ky tu sau khi bo ky tu a la :"; puts(x);
  getch();
  }

2. Viết chương trình trích chuỗi con bên trái của một chuỗi


#include <iostream.h> #include <conio.h>
#include <stdio.h> void main()
{
clrscr();
char ten[25], *tentro; tentro=ten;
int i,sokytu;
cout<<"\n nhap mot chuoi ky tu : "; gets(ten);
cout<<"\nban muon trich bao nhieu ky tu :"; cin>>sokytu;
for (i=0;i<sokytu;i++) cout<<*tentro++;
getch();
}

Bài tập C++ Mảng và con trỏ

1. Tìm số nhỏ nhất và lớn nhất trong mảng

#include  "iostream"
  using  namespace std;
  int  main()
  {
  int a[100];
  int n = 0;
  int x;
  while (cin >> x) {
  a[n] = x;
  n++;
  }
  int maxval = a[0], minval = a[0];
  for (int i = 1; i < n; i++) {
  if (maxval < a[i])
  maxval = a[i];
  if (minval > a[i])
  minval = a[i];
  }
  cout << minval << endl;
  cout << maxval << endl;
return 0;
  }

2. Viết chương trình nhập một mảng thực cấp không quá 20x20 và tìm giá trị lớn nhất trong các phần tử của mảng

#include <conio.h> #includen <stdio.h> void main()
{
float a[20][20],smax; int m,n,i,j,imax,jmax; clrscr();
puts(" Cho biet so hang va so cot cua ma tran: "); scanf("%d%d",&m,&n);
for (i=0;i<m;++i) for (j=0;j<n;++j)
{
printf("\n a[%d][%d]=",i,j);
scanf("%f",&a[i][j]);
}
smax=a[0][0];
for (i=0;i<m;++i) for(j=0;j<n;++j)
if(smax<a[i][j])
smax=a[i][j]; puts("\n\n Ma tran"); for (i=0;i<m;++i)
for (j=0;j<n;++j)
{
if (j==0) puts(""); printf("%6.1f",a[i][j]);
}
puts("\n\n Phan tu max:"); printf("\n Co gia tri=%6.1f", smax); getch();
}

Bài tập C++ Nhập xuất dữ liệu

1. Nhập vào 1 ký tự, yêu cầu ra mã ASCII của ký tự đó

        VD:

Input

Output

A

65

#include  <iostream>
  using  namespace std;
  int  main()
  {
  char m;
  cin >> m;
  cout << int(m);
  return 0;
  }

2. Nhập vào 1 số gồm 2 chữ số, yêu cầu xuất ra tổng chữ số của nó ra màn hình

      VD:

Input

Output

23

5

#include  <iostream>
  using namespace  std;
  int main()
  {
  int a;
  cin >> a;
  cout << a%10 + a/10;
  return 0;
  }

Bài tập C++ Vòng lặp

1. Nhập 1 số nguyên n, xuất tổng các số lẻ từ 1 đến n

VD:

Input

Output

3

4

#include <iostream>
  using namespace std;
  int main()
  {
  int  n , s = 0;
  cin>>n;
  for(int i=1; i<=n; i=i+2)
  {
  s = s+i;
  }
  cout << s;
  return 0;
  }

2. Nhập vào 1 số nguyên n, xuất ra n!

      VD:

Input

Output

3

6

#include <iostream>
  using namespace std;
  int main()
  {
  int  n , giaithua = 1;
  cin  >> n;
  for  (int i = 1; i <= n; i++) {
  giaithua  = giaithua*i;
  }
  cout  << giaithua << endl;
  return 0;
  }

Bài tập C++ Kiểu tập tin

Viết chương trình thực hiện các yêu cầu:

      • Nhập 10 số thực vào một file văn bản có tên là INPUT.
      • Đọc nội dung file INPUT.
      • Tính tổng bình phương các số có trong file INPUT.
#include <stdio.h> #include <stdlib.h> #include <conio.h>
void write()
{FILE *f = fopen("input","wt");
/*Ghi vao file van ban 10 so thuc */ 
for (int i=1; i<=10;i++)
{ float a;
printf("\n Nhap so thu %d: ",i); scanf("%f", &a);
fprintf(f,"%f ",a);
}
fclose(f);
}
void read()
{ int i;float a;
FILE *f = fopen("input","rt"); printf("\n Noi dung tap tin la : \n\n"); do
{ fscanf(f,"%f",&a);
if (!feof(f))
printf("%.2f ",a);
} while (!feof(f)); fclose(f);
}
float tongbp()
{ int i;float tong = 0;
FILE *f = fopen("input","rt"); do
{ float a; fscanf(f,"%f",&a);
if (!feof(f)) tong+=a*a;
}while (!feof(f)); fclose(f);
return tong;
}
void main()
{ clrscr();
write();
read();
printf("\n Tong binh phuong la %.2f \n ",tongbp()); getch();
}

Các bạn có thể tải nhiều bài tập C++ hay có lời giải tại đây.

bai-tap-c-hay-co-loi-giai.rar

Như vậy trên đây bài viết đã tổng hợp các bài tập C++ hay có lời giải, các bạn có thể tải về và đọc code tham khảo. Hi vọng các bạn sẽ có thêm nhiều kiến thức hay, bổ ích để nâng cao kiến thức về C++. Chúc các bạn thành công!

Viết bình luận