Cool Blue Outer Glow Pointer

50 Bài Tập và Đáp Án - Nhập Môn Lập Trình C++

22/06/2021

 

25.  Nhập vào hai số nguyên a, b. In ra màn hình giá trị lớn nhất.

#include <conio.h>

#include <stdio.h>

void main()

{

     int a, b, max;

     printf("Nhap a: "); scanf("%d",&a);

     printf("Nhap b: "); scanf("%d",&b);

     if (a<b) max=b; else max=a;

     printf("\nGia tri lon nhat: %d",max);

     getch();

}

26. Cho ba số a, b, c đọc vào từ bàn phím. Hãy tìm giá trị lớn nhất của ba số trên và in ra kết quả.

#include <conio.h>

#include <stdio.h>

void main()

{

     int a, b, c, max;

     printf("Nhap a, b, c: "); scanf("%d %d %d",&a,&b,&c);

     max=a;

     if (max<b) max=b;

     if (max<c) max=c;

     printf("\nGia tri lon nhat: %d",max);

     getch();

}

27.    Cho ba số a, b, c đọc vào từ bàn phím. Hãy in ra màn hình theo thứ tự tăng dần các số. (Chỉ được dùng thêm hai biến phụ).

#include <conio.h>

#include <stdio.h>

void main()

{

     int a, b, c;

     printf("Nhap a: "); scanf("%d",&a);

     printf("Nhap b: "); scanf("%d",&b);

     printf("Nhap c: "); scanf("%d",&c);

     if (a>b)

     {

          a=a+b;

          b=a-b;

          a=a-b;

     }

     if (b>c)

     {

          b=b+c;

          c=b-c;

          b=b-c;

     }

if (a>b)

     {

          a=a+b;

          b=a-b;

          a=a-b;

     }

     printf("\nThu tu tang dan cac so: %d %d %d",a, b, c);

     getch();

}

28.    Giải và biện luận phương trình bậc nhất: ax + b=0

#include <conio.h>

#include <stdio.h>

void main()

{

    float a, b, x;

    printf("Nhap cac he so cua phuong trinh bac 1: ax + b=0");

    printf("\nNhap a, b: "); scanf("%d %d",&a,&b);

    x=-b/a;

    if (a==0) printf("\nPhuong trinh vo nghiem");

    else printf("\nPhuong trinh co nghiem x= %f",x);

    getch();

}

29.    Giải và biện luận phương trình bậc hai: ax2 + bx + c=0

#include <conio.h>

#include <stdio.h>

#include <math.h>

void main()

{

  float a, b, c, del, x1, x2, x;

  do

  {   

       printf("\nNhap cac he so cua phuong trinh bac 2: ax^2+bx+c=0");

       printf("\nNhap a, b, c: "); scanf("%f %f %f",&a,&b,&c);

  } while (a==0);

  del=(b*b)-(4*a*c);

  x1=(-b+sqrt(del))/(2*a);

  x2=(-b-sqrt(del))/(2*a);

  x=-b/a;

  if (del>0)

  {

       printf("\nPhuong trinh co 2 nghiem phan biet: ");

       printf("\nx1= %f \tx2= %f",x1,x2);          

  }

  else  if (del==0)

  {

       printf("\nPhuong trinh co nghiem kep: ");

       printf("\nx= %f",x);         

  }

  else  printf("\nPhuong trinh vo nghiem.");

  getch();

}

30.    Giải và biện luận phương trình trùng phương: ax4 + bx2 + c=0

#include <conio.h>

#include <stdio.h>

#include <math.h>

void main()

{

  float a, b, c, del, x1, x2, x;

  do

  {

       printf("\nNhap cac he so cua phuong trinh bac 2: ax^4 + bx^2+c=0");

       printf("\nNhap a, b, c: "); scanf("%f %f %f",&a,&b,&c);

  } while (a==0);

  del=(b*b)-(4*a*c);

  x1=(-b+sqrt(del))/(2*a);

  x2=(-b-sqrt(del))/(2*a);

  x=-b/a;

  if (del>0)

  {

       if (x1==0)

       {

             if(x2==0) printf("\nPhuong trinh co 1 nghiem x=0");

             if(x2>0)

             {

                  printf("\nPhuong trinh co 3 nghiem phan biet: ");

                  printf("\nx1= 0 \tx2= %f \tx3= %f",sqrt(x2),-sqrt(x2));

             }

       } else if (x1>0)

             {

                  if (x2==0)

                  {

                        printf("\nPhuong trinh co 3 nghiem phan biet: ");

                        printf("\nx1= 0 \tx2= %f \tx3= %f",sqrt(x1),-sqrt(x1));

                  }   

                  if (x2>0)

                  {

                        printf("\nPhuong trinh co 4 nghiem phan biet: ");

printf("\nx1= %f \tx2= %f \tx3= %f \tx4= %f",sqrt(x1),-sqrt(x1),sqrt(x2),-sqrt(x2));

                  }

                  if (x2<0)

                  {

                        printf("\nPhuong trinh co 2 nghiem phan biet: ");

                        printf("\nx1= %f \tx2= %f",sqrt(x1),-sqrt(x1));

                  }

             }    else // x1<0

                  {   

                        if (x2<0) printf("\nPhuong trinh vo nghiem.");

                        if (x2>0)

                  {   

                        printf("\nPhuong trinh co 2 nghiem phan biet: ");

                        printf("\nx1= %f \tx2= %f",sqrt(x2),-sqrt(x2));

                  }

                  }

  } else  if (del==0)

       {

             if (x>0)

             {

                  printf("\nPhuong trinh co 2 nghiem phan biet: ");

                  printf("\nx1=%f \tx2=%f",sqrt(x),-sqrt(x));

             }   

             if (x<0) printf("\nPhuong trinh vo nghiem.");

             if (x==0) printf("\nPhuong trinh co 1 nghiem: x=0.");

                 

       } else  printf("\nPhuong trinh vo nghiem.");

  getch();

}

31.    Viết chương trình nhập vào một số nguyên n gồm ba chữ số. Xuất ra màn hình chữ số lớn nhất ở vị trí nào?

Ví dụ: n=291. Chữ số lớn nhất nằm ở hàng chục (chữ số 9).

#include <conio.h>

#include <stdio.h>

void main()

{

     int n, a, b, c;

     printf("\nNhap n gom 3 chu so: "); scanf("%d",&n);

     a=n%10;

     b=(n/10)%10;

     c=n/100;

     if (n>100 && n<1000)

     {

          if (a>b && a>c)

          printf("\nSo lon nhat la %d o hang don vi.",a);

          if (b>a && b>c)

          printf("\nSo lon nhat la %d o hang don chuc.",b);

          if (c>a && c>b)

          printf("\nSo lon nhat la %d o hang don tram.",c);

     } else printf("\nNhap sai!");

     getch();

}


 

 

* Bài 31 mở rộng với nhiều chữ số (dùng while và switch):

#include <conio.h>

#include <stdio.h>

void main()

{

     int n, max, b=1, i=1;

     printf("Nhap so nguyen n: "); scanf("%d",&n);

     max=n%10;

     while (n>0)

     {

          if (max<n%10)

          {

               max=n%10;

               b=i;

          }

          n=n/10;

          i++;

     }

     printf("\nChu so lon nhat la %d o vi tri: ",max);

     switch (b)

     {

          case 1: printf("don vi"); break;

          case 2: printf("hang chuc"); break;

          case 3: printf("hang tram"); break;

          case 4: printf("hang nghin"); break;

          /*mở rộng với nhiều chữ số*/

     }

     getch();

}

32.    Viết chương trình nhập vào một số nguyên n gồm ba chữ số. Xuất ra màn hình theo thứ tự tăng dần của các số?

Ví dụ: n=291. Xuất ra 129.

#include <conio.h>

#include <stdio.h>

void main()

{

     int a, b, c;

     printf("Nhap a: "); scanf("%d",&a);

     printf("Nhap b: "); scanf("%d",&b);

     printf("Nhap c: "); scanf("%d",&c);

     if (a>b)

     {

          a=a+b;

          b=a-b;

          a=a-b;

     }

     if (b>c)

     {

          b=b+c;

          c=b-c;

          b=b-c;

     }

if (a>b)

     {

          a=a+b;

          b=a-b;

          a=a-b;

     }

     printf("\nThu tu tang dan cac so: %d %d %d",a, b, c);

     getch();

}

33.    Viết chương trình nhập vào năm hợp lệ. Cho biết năm này có phải là năm nhuận hay không? In kết quả ra màn hình.

#include <conio.h>

#include <stdio.h>

void main()

{

     int nam;

     printf("\nNhap nam: "); scanf("%d",&nam);

     if (nam%4==0)

     {

          if (nam%100!=0 || nam%400==0)

          printf("\nNam %d la nam nhuan!",nam);

     } else printf("\nNam %d khong la nam nhuan!",nam);

     getch();

}


 

34.    Nhập vào tháng và 1 năm. In ra số ngày tối đa trong tháng của năm đó. (theo lịch tây).

#include <conio.h>

#include <stdio.h>

void main()

{

     int t, n;

     printf("\nNhap thang: "); scanf("%d",&t);

     printf("\nNhap nam: "); scanf("%d",&n);

     switch(t)

     {

          case 1: case 3: case 5: case 7: case 8: case 10:  case 12:

          printf("\nThang %d nam %d co 31 ngay!",t,n); break;

          case 4: case 6: case 9: case 11:

          printf("\nThang %d nam %d co 30 ngay!",t,n); break;

          case 2: if ((n%4==0) && ((n%100!=0)||(n%400==0)))

               printf("\nThang %d nam %d co 29 ngay!",t,n);

               else printf("\nThang %d nam %d co 28 ngay!",t,n); break;

          default: printf("\nNhap thang sai!");

     }

     getch();

}

35.    Nhập vào ngày, tháng, năm. Kiểm tra xem ngày, tháng, năm đó có hợp lệ hay không, in kết quả ra màn hình.

#include <conio.h>

#include <stdio.h>

void main()

{

     int t, n, na;

     printf("\nNhap ngay: "); scanf("%d",&n);

     printf("\nNhap thang: "); scanf("%d",&t);

     printf("\nNhap nam: "); scanf("%d",&na);

     switch(t)

     {

          case 1: case 3: case 5: case 7: case 8: case 10:  case 12:

          {

               if (n>=1 && n<=31) printf("\Nhap hop le!");

               else printf("\nNhap ngay sai!");

          } break;

          case 4: case 6: case 9: case 11:

          {

               if (n>=1 && n<=30) printf("\nNhap hop le!");

               else printf("\nNhap ngay sai!");

          } break;

          case 2:

          {

               if ((na%4==0) && ((na%100!=0)||(na%400==0)))

                    if (n>=1 && n<=29) printf("\nNhap hop le");

                    else printf("\nNhap ngay sai!");

               else

                    if (n>=1 && n<=28) printf("\Nhap hop le");

                    else printf("\nNhap ngay sai!");

          } break;

          default: printf("\nNhap thang sai!");

     }

     getch();

}

36.    Nhập vào giờ, phút, giây. Kiểm tra xem giờ, phút, giây đó có hợp lệ không, in kết quả ra màn hình.

#include <conio.h>

#include <stdio.h>

void main()

{

     int h, p, s;

     printf("\nNhap gio: "); scanf("%d",&h);

     printf("\nNhap phut: "); scanf("%d",&p);

     printf("\nNhap giay: "); scanf("%d",&s);

     if (h>=1 && h <=24 && p>=1 && p<=60 && s>=1 && s<=60 )

     printf("\n%d:%d:%d la hop le!",h,p,s);

     else printf("\n%d:%d:%d la sai!",h,p,s);

     getch();

}

38.    Viết chương trình tính tiền cước Taxi. Nhập số km, sau đó in ra số tiền phải trả.

#include <conio.h>

#include <stdio.h>

void main()

{

int n;

printf("Nhap so Km da di: "); scanf("%d",&n);

if (n>0)

{

      if (n<1) printf("\nTong tien: 13000 VND");

      if (n<=30) printf("\nTong tien: %d VND",13000+(n-1)*12000);

      if(n>30) printf("\nTong tien: %d VND",13000+30*12000+(n-30)*11000);

}

getch();

}


 

39.    Nhập vào 3 số nguyên dương. Cho biết 3 số đó có lập thành tam giác không?

Nếu có hãy cho biết tam giác đó thuộc loại nào? (vuông, cân, đều)

#include <conio.h>

#include <stdio.h>

void main()

{

int a, b, c;

printf("Nhap do dai 3 canh cua tam giac: "); scanf("%d %d%d", &a, &b, &c);

if ((a==0)||(b==0)||(c==0))

  printf("\nDay khong phai tam giac!");

else

  if ((a*a==b*b+c*c)||(b*b==a*a+c*c)||(c*c==a*a+b*b))

       printf("\nDay la tam giac vuong!");

   else

       if (a==b && a==c)

            printf("\nDay la tam giac deu!");

      else

      if ((a==b)||(a==c)||(b==c))

            printf("\nDay la tam giac can!");

         else

                 printf("\nDay la tam giac thuong!");

getch();

}

40.    Nhập vào số nguyên dương x. Kiểm tra x có phải là số chính phương không?

#include <conio.h>

#include <stdio.h>

#include <math.h>

void main()

{

int x,b;

printf("Nhap vao so nguyen x: ");

scanf("%d",&x);

b=sqrt(x);

if (b*b==x)

printf("\n%d la so chinh phuong: %d=%d^2",x,x,b);

   else

   printf("\n%d khong la so chinh phuong!",x);

getch();

}


 

48.    Viết chương trình in ra màn hình hình chữ nhật đặc có kích thước m x n (m, n nhập từ bàn phím).

#include <conio.h>

#include <stdio.h>

void main()

{

int m, n, i, j;

printf("\nNhap chieu dai: "); scanf("%d",&m);

printf("\nNhap chieu rong: "); scanf("%d",&n);

printf("\n");

for (i=1; i<=n; i++)

{

for (j=1; j<=m; j++)

      printf("*  ");

printf("\n\n");

}

getch();

}

49.    Viết chương trình in ra màn hình hình chữ nhật rỗng có kích thước m x n (m, n nhập từ bàn phím).

#include <conio.h>

#include <stdio.h>

void main()

{

int m, n, i, j;

printf("\nNhap chieu dai: "); scanf("%d",&m);

printf("\nNhap chieu rong: "); scanf("%d",&n);

printf("\n");

for (i=1; i<=n; i++)

{

      if ((i==1)||(i==n))

                for (j=1; j<=m ; j++)

                printf("*  ");

           else

           for (j=1; j<=m ; j++)

                if ((j==1)||(j==m))

                     printf("*  ");

                else printf("   ");

      printf("\n\n");

   }

getch();

}

50.    Viết chương trình in ra màn hình tam giác vuông cân đặc có độ cao h (h nhập từ bàn phím).

#include <conio.h>

#include <stdio.h>

void main()

{

     int h, i, j;

     printf("Nhap chieu cao cua tam giac: ");

     scanf("%d",&h);

     printf("\n");

     for (i=1; i<=h; i++)

     {

          for (j=1; j<=i; j++)

               printf("*  ");

          printf("\n\n");

      }

     getch();

}

51.    Viết chương trình in ra màn hình tam giác vuông rỗng đặc có độ cao h (h nhập từ bàn phím).

#include <conio.h>

#include <stdio.h>

void main()

{

     int h, i, j;

     printf("\nNhap chieu cao cua tam giac: ");

     scanf("%d",&h);

     printf("\n");

     for (i=1; i<=h; i++)

     {   

        if (i==h)

               for (j=1;j<=i;j++) printf("*  ");

          else

               for (j=1; j<=i; j++)

               if (j==1||j==i) printf("*  "); else printf("   ");

    printf("\n\n");

    }

     getch();

}


 

52.    Viết chương trình in ra màn hình tam giác cân đặc có độ cao h (h nhập từ bàn phím).

#include <conio.h>

#include <stdio.h>

void main()

{    int h, i, j, k;

     printf("Nhap chieu cao h: ");

     scanf("%d",&h);

     printf("\n");

     for (i=1; i<=h; i++)

          {

               for (j=1; j<=h-i; j++)   printf("   ");

               for (k=1; k<=2*i-1; k++) printf("*  ");

               printf("\n\n");

          }

     getch();

}

53.    Nhập vào 2 số nguyên dương a và b. Tìm ước chung lớn nhất của a và b.

#include <conio.h>

#include <stdio.h>

void main()

{

     int a, b, c, d;

     printf("\nNhap hai so a, b: ");

     scanf("%d %d",&a, &b);

     c=a;

     d=b;

     while (a!=b)

          if (a>b) a=a-b;

          else b=b-a;

     printf("\nUCLN cua %d va %d la: %d",c,d,a);

     getch();

}

54.    Nhập vào 2 số nguyên dương a và b. Tìm bội chung nhỏ nhất của a và b.

#include <conio.h>

#include <stdio.h>

void main()

{

     int a, b, c, d;

     printf("\nNhap hai so a, b: ");

     scanf("%d %d",&a, &b);

     c=a;

     d=b;

     while (a!=b)

          if (a>b) a=a-b;

          else b=b-a;

     printf("\nBCNN cua %d va %d la: %d",c,d,(c*d)/a);

     getch();

}

55.    Nhập vào số nguyên dương x. Kiểm tra x có phải là số nguyên tố không? (Số nguyên tố là số chỉ chia hết cho  1 và chính nó. VD: 2, 3, 5, 7,…).

#include <conio.h>

#include <stdio.h>

void main()

{

     int x, i, dem=0;

     printf("Nhap x: ");

     scanf("%d", &x);

     printf("\nSo %d ",x);

     for (i=1; i<=x; i++)

          {

               if (x%i==0)

               dem++;

          }

     if (dem==2) printf("la so nguyen to!");

     else printf("khong la so nguyen to!");

     getch();

}

56.    Nhập vào số nguyên dương x. Kiểm tra x có phải là số hoàn thiện không? (Một số hoàn thiện là một số có tổng các ước của nó (không kể nó) bằng chính nó.

VD: 6 là số hoàn thiện, vì tổng các ước số là 1+2+3=6.

#include <conio.h>

#include <stdio.h>

void main()

{

     int x, i, s=0;

     printf("\nNhap x: "); scanf("%d",&x);

     for (i=1; i<x; i++)

          if (x%i==0) s=s+i;

     if (s==x) printf("\nSo %d la so hoan thien!",x);

     else printf("\nSo %d khong la so hoan thien!",x);

     getch();

}


 

57.    Viết chương trình nhập vào số nguyên dương n. Liệt kê số nguyên tố từ 2 đến n.

#include <conio.h>

#include <stdio.h>

void main()

{

     int n, i, j, dem;

     printf("Nhap n: "); scanf("%d",&n);

     printf("\nKet qua: ");

     for (i=2; i<=n; i++)

     {   

          dem=0;

          for (j=2;j<i;j++)

         if (i%j==0) dem++; 

          if (dem==0) printf("%d\t",i);

     }

     getch();

}

58.    Viết chương trình nhập vào số nguyên dương n. Liệt kê n số nguyên tố đầu tiên.

#include <conio.h>

#include <stdio.h>

void main()

{

     int n, i, j, dem;

     printf("Nhap n: "); scanf("%d",&n);

     printf("\nKet qua: \n");

     for (i=2; n>0; i++)

     {   

          dem=0;

          for (j=2;j<i;j++)

         if (i%j==0) dem++; 

          if (dem==0)

          {

               printf("%d\t",i);

               n--;

          }

     }

     getch();

}

59.    Viết chương trình nhập vào một số nguyên gồm tối đa 10 chữ số (4 bytes). In ra màn hình giá trị nhị phân của số trên.

 

#include <conio.h>

#include <stdio.h>

#include <math.h>

void main()

{

     int n,i=0;

     long temp=0;

     printf("Nhap N: "); scanf("%d",&n);

     printf("\nHe nhi phan: ");

     while(n>0)

     {

          temp=temp+(n%2)*pow(10,i);

          i++;

          n=n/2;

     }

     printf("%d",temp);

     getch();

}

 

60.    Viết chương trình đếm số ước số của số nguyên dương N.

 

#include <conio.h>

#include <stdio.h>

void main()

{

     int n, i, dem=0;

     printf("Nhap N: "); scanf("%d",&n);

     for (i=1; i<=n; i++)

          if (n%i==0) dem++;

     printf("So uoc so cua %d la %d", n, dem);

     getch();

}


71. Tính S(n)= 1+ (1+2)/2! + (1+2+3)/3! + ... + (1+2+3+...+n)/n! 
với n>0.

#include <conio.h>

#include <stdio.h>

void main()

{

     float n, i, t=0, gt=1, s=0;

     do

     {

          printf("\nNhap n: "); scanf("%f",&n);

     } while (n<=0);

    

     for (i=1; i<=n; i++)

     {

          t=t+i;

          gt=gt*i;

          s=s+(t/gt);

     }

     printf("\nKet qua: S= %.2f",s);

     getch();

}

VIẾT CHƯƠNG TRÌNH THEO THỦ TỤC HÀM

 

74.    Viết chương trình tính diện tích và chu vi hình chữ nhật với chiều dài và chiều rộng được nhập từ bàn phím.

#include <conio.h>

#include <stdio.h>

int chuvi(int a, int b)

{

     int cv;

     cv=(a+b)*2;

     return cv;

}

int dientich(int a, int b)

{

     int dt;

     dt=a*b;

     return dt;

}

void main()

{

     int a, b;

     printf("Nhap a: "); scanf("%d",&a);

     printf("Nhap b: "); scanf("%d",&b);

     if (a>0 && b>0)

     {

          printf("\nChu vi HCN la: C= %d",chuvi(a,b));

          printf("\nDien tich HCN la: S= %d",dientich(a,b));

     } else printf("\nNhap sai!");

     getch();

}

75.    Viết chương trình tính diện tích và chu vi hình tròn với bán kính r được nhập từ bàn phím.

#include <conio.h>

#include <stdio.h>

float chuvi(float r)

{

   float cv;

   cv=2*3.14*r;

   return cv;

}

float dientich(float r)

{

   float dt;

   dt=3.14*(r*r);

   return dt;

}

void main()

{

   float r, c, s;

   printf("Nhap ban kinh r: "); scanf("%f",&r);

   c=chuvi(r);

   s=dientich(r);

   if (r>0)

   {

        printf("\nChu vi hinh tron la: C= %.2f",c);

        printf("\nDien tich hinh tron la: S= %.2f",s);

   } else printf("\nNhap sai!");

  

   getch();

}

 


 
Copyright © 2015 CỎ VEN BỜ - Blogspot of Xiaobao