Tải bản đầy đủ (.doc) (13 trang)

Bài tập lập trình PHẦN I Hàm

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (58.51 KB, 13 trang )

PHẦN I : HÀM
Câu 1: viết hàm tính tổng s=1+3+5+...+(2*n+1), với n nguyên dương.
Viết chương trình nhập từ bàn phím số nguyên dương n, áp dụng
hàm trên tính và in ra màn hình tổng tương ứng.
#include <conio.h>
#include <stdio.h>
int tong(int n)
{int i,s;
for (i=0,s=0;i<=n;s=s+2*i+1,i++);
return s;
}
main()
{int n,s;
clrscr();
nhap: printf ("\n moi nhap n= ");
scanf ("%5d:",&n);
if (n<=0) goto nhap;
s=tong(n);
printf ("\n tong = %5d",s);
getch();
return 0;
}
Câu 2: viết hàm tính giai thừa của một số nguyên không âm. Viết
chương trình nhập từ bàn phím số nguyên dương n, áp dụng hàm
trên in ra màn hình giai thừa của n.
#include <conio.h>
#include <stdio.h>
int giai_thua(int n)
{int gt=1,i=1;
while (i<=n)
{gt=gt*i;


i++;
}
return gt;
}
void main()
{int n;
clrscr();
nhap: printf("\n nhap n= ");
scanf("%d",&n);
if (n<=0) goto nhap;


printf("\n giai thua cua %5d = %7d",n,giai_thua(n));
getch()
}
Câu 3: viết hàm đổi một số nguyên không âm thành xâu nhị phân.
Viết chương trình nhập từ bàn phím số nguyên không âm n, áp
dụng hàm trên in ra màn hình xâu nhị phân tương ứng.
#include <conio.h>
#include <stdio.h>
void chuyen(int n)
{int i=0,j,a[50];
while (n!=0)
{a[i]=n%2;
n=n/2;
i++;
}
j=i-1;
for (i=j;i>=0;i--)
printf("%d",a[i]);

}
void main()
{clrscr();
int n;
nhap: printf("\n nhap so nguyen can chuyen doi: ");
scanf("%d",&n);
if (n<=0) goto nhap;
printf("\n day nhi phan cua %d la: ");
chuyen(n);
getch();
}
Câu 4: viết hàm tính tổng s=2+4+6+...+2*n, với n nguyên dương.viết
chương trình nhập từ bàm phím số nguyên dương n, áp dụng hàm
trên tính và in ra màn hình tổng tương ứng.
#include <conio.h>
#include <stdio.h>
int tong(int n)
{int i,s;
for (i=1,s=0;i<=n;s=s+2*i,i++);
return s;
}
main()
{int n,s;
clrscr();


nhap: printf ("\n moi nhap n: ");
scanf ("%5d:",&n);
if (n<=0) goto nhap;
s=tong(n);

printf ("\n tong = %5d",s);
getch();
return 0;
}
Câu 5: viết hàm đổi một số nguyên không âm thành xâu Hecxa. Viết
chương trình nhập từ bàn phím số nguyên không âm n, áp dụng
hàm trên in ra màn hình xâu Hecxa tương ứng.
#include <conio.h>
#include <stdio.h>
#include <string.h>
void doi_xhx(int n,char s[])
{int i=0,r;
while (n!=0)
{r=n%16;
if (r<=9) s[i]=r+48;
else s[i]=r+55;
i++;
n=n/16;
}
s[i]=NULL;
}
void main()
{clrscr();
char s[50];
int n;
nhap: printf ("\n nhap n:");
scanf("%d",&n);
if (n<=0) goto nhap;
doi_xhx(n,s);
printf ("\n %d doi thanh xau hexa la: %s",n,strrev(s));

getch();
}
Câu 6: viết hàm tính tổng s=13+23+...+n3, với n nguyên dương. Viết
chương trình nhập vào từ bàn phím số nguyên dương n, áp dụng
hàm trên tính và in ra màn hình tổng tương ứng.
#include <conio.h>
#include <stdio.h>


#include <math.h>
int tong(int n)
{int i=1,s=0;
while (i<=n)
{s=s+pow(i,3);
i++;
}
return s;
}
main()
{int n,s;
clrscr();
nhap: printf ("\n moi nhap n: ");
scanf ("%5d:",&n);
if (n<=0) goto nhap;
s=tong(n);
printf ("\n tong = %5d",s);
getch();
return 0;
}
Câu 7: viết hàm kiểm tra tính nguyên tố của một số nguyên dương.

Viết chương trình nhập vào từ bàn phím số nguyên dương n, áp
dụng hàm trên hãy cho biết n có phải là số nguyên tố hay không?
#include <conio.h>
#include <stdio.h>
#include <math.h>
int SNT(int a)
{int i;
if (a==1) return 0;
if (a<4) return 1;
else
for (i=2; ;i++)
{if (i>sqrt(a)) return 1;
if ((a%i)==0) return 0;
}
}
main()
{clrscr();
int n;
nhap: printf ("\n moi nhap so nguyen n: ");
scanf ("%d",&n);
if (n<=0) goto nhap;
if (SNT(n)==0) printf("\n %d khong phai la so nguyen to",n);


else printf("\n %d la so nguyen to",n);
getch();
return 0;
}
Câu 8: viết hàm tính tổng s=1*2*3+2*3*4+...+n*(n+1)*(n+2), với n
nguyên dương.viết chương trình nhập từ bàm phím số nguyên

dương n, áp dụng hàm trên tính và in ra màn hình tổng tương ứng.
#include <conio.h>
#include <stdio.h>
int tong(int n)
{int i=1,s=0;
while (i<=n)
{s=s+i*(i+1)*(i+2);
i++;
}
return s;
}
main()
{int n,s;
clrscr();
nhap: printf ("\n moi nhap n= ");
scanf ("%5d:",&n);
if (n<=0) goto nhap;
s=tong(n);
printf ("\n tong = %5d",s);
getch();
return 0;
}
Câu 9: Viết hàm kiểm tra tính hoàn thiện của một số nguyên dương
.Viết chương trình nhập vào từ bàn phím số nguyên dương n, áp
dụng hàm trên thông báo ra màn hình số n có phải là số hoàn thiện
hay không?
#include <conio.h>
#include <stdio.h>
#include <math.h>
void SHT(int a)

{int i=1,s=0;
for ( ; ;i++)
{if (i>a/2) break;
else if ((a%i)==0) s=s+i;
}
if (s==a) printf ("\n %5d la so hoan thien",a);


else printf ("\n %5d khong phai la so hoan thien",a);
}
main(
{clrscr()
int n;
nhap: printf ("\n moi nhap so nguyen n: ");
scanf ("%d",&n);
if (n<=0) goto nhap;
SHT(n);
getch();
return 0;
}
Câu 10: viết hàm tìm số bé nhất của 3 số thực. viết chương trình
nhập vào từ bàn phím 3 số thực x, y, z, áp dụng hàm trên tìm và in
ra màn hình số bé nhất của 3 số vừa nhập.
#include <conio.h>
#include <stdio.h>
float min_3so(float a,float b,float c)
{float min,min1;
min=(min1=areturn min;
}

void main()
{clrscr();
float a,b,c;
printf("\n nhap a,b,c: ");
scanf("%f%f%f",&a,&b,&c);
printf("\n min=%5.2f",min_3so(a,b,c));
getch();
}
Câu 11: viết hàm giải và biện luận phương trình bậc hai
ax2+bx+c=0. viết chương trình nhập vào từ bàn phí 3 số thực a, b, c,
áp dụng hàm trên cho biết kết quả giải phương trình bậc hai với 3
hệ số a, b, c vừa nhập.
#include <conio.h>
#include <stdio.h>
#include <math.h>
void PTB2(float a, float b, float c)
{float delta, x1, x2;
if (a==0)
if (b==0)


if (c==0)
printf ("\n phuong trinh co vo so nghiem");
else
printf ("\n phuong trinh vo nghiem");
else
printf ("\n phuong trinh co mot nghiem x= %5.2f",-c/b);
else
{delta=b*b-4*a*c;
if (delta<0) printf ("\n phuong trinh vo nghiem");

else
if (delta==0) printf ("\n phuong trinh co nghiem kep x1=x2=%5.2f",b/(2*a));
else
{printf ("\n phuong trinh co 2 nghiem phan biet");
x1=(-b+sqrt(delta))/(2*a);
x2=(-b-sqrt(delta))/(2*a);
printf ("\n x1= %5.2f \n x2= %5.2f",x1,x2);
}
}
}
main()
{clrscr();
float a,b,c;
printf ("\n nhap cac he so a,b,c: ");
scanf ("%f%f%f",&a,&b,&c);
PTB2(a,b,c);
getch();
return 0;
}
Câu 12: viết hàm kiểu int kiểm tra xem 3 số thực có thể lập thành 3
cạnh của một tam giác hay không? Viết chương trình nhập vào từ
bàn phím 3 số thực a, b, c, áp dụng hàm trên thông báo ra màn hình
3 số vùa nhập có tạo thành 3 cạnh của một tam giác hay không?
#include <conio.h>
#include <stdio.h>
int tg(float a,float b,float c)
{if ((a+b>c) && (a+c>b) && (b+c>a)) return 1;
else return 0;
}
void main()

{clrscr();
float a,b,c;
printf("\n nhap a,b,c: ");


scanf("%f%f%f",&a,&b,&c);
if (tg(a,b,c)==0) printf("\n 3 so vua nhap khong tao thanh tam giac!");
else printf("\n 3 so vua nhap co tao thanh 3 canh tam giac");
getch();
}
Câu 13: viết hàm đếm số từ trong một xâu kí tự chuẩn. viết chương
trình nhập vào từ bàn phím một xâu kí tự chuẩn s, áp dụng hàm
trên thông báo ra màn hình số từ của xâu.
#include <conio.h>
#include <stdio.h>
#include <string.h>
#include <ctype.h>
char dem_tu(char s[])
{char d=1,i=0;
while (i{if (s[i]==32) d=d+1;
i++;
}
return d;
}
void main()
{clrscr();
char s[100];
printf("\n moi nhap xau: ");
fflush(stdin); gets(s);

printf("\n so tu trong xau la: %3d",dem_tu(s));
getch();
}
Câu 14: viết hàm tính số fibonaxi thứ n. viết chương trình nhập vào
từ bàn phím số nguyên dương n. áp dụng hàm trên tìm và in ra màn
hình số fibonaxi tương ứng.
#include <conio.h>
#include <stdio.h>
int fibonaxi(int n)
{int i=3, f1=1, f2=1, fn;
if (n<3) return f1;
while (i<=n)
{fn=f1+f2;
f1=f2;
f2=fn;
i++;
}


return fn;
}
void main()
{clrscr();
int n;
nhap: printf("\n nhap n= ");
scanf("%d",&n);
if (n<=0) goto nhap;
printf("\n so fibonaxi thu %d la: %5d",n,fibonaxi(n));
getch();
}

Câu 15: viết hàm có kiểu void nhằm đổi chỗ giá trị hai biến thực cho
nhau. Viết chương trinh nhập vào từ bàn phímhai số thực x, y, áp
dụng hàm trên để đổi chỗ giá trị hai biến x, y cho nhau. In ra màn
hình giá trị x và y trước và sau khi đổi chỗ.
#include <conio.h>
#include <stdio.h>
void doi_cho(float *a, float *b)
{float tg;
tg=*a;
*a=*b;
*b=tg;
}
void main()
{clrscr();
float x,y;
printf("\n nhap x,y: ");
scanf("%f%f",&x,&y);
printf("\n truoc khi doi cho x=%5.2f, y=%5.2f",x,y);
doi_cho(&x,&y);
printf("\n sau khi doi cho x=%5.2f, y=%5.2f",x,y);
getch();
}


Câu 16: viết hàm tìm ước chung lớn nhất của hai số nguyên dương.
Viết chương trình nhập vào từ bàn phím hai số nguyên dươnga và
b, áp dụng hàm trên tìm và in ra màn hình ước chung lớn nhất của
chúng.
#include <conio.h>
#include <stdio.h>

int ucln(int a,int b)
{while (a!=b)
if (a>b) a=a-b;
else b=b-a;
return a;
}
void main()
{int a,b;
clrscr();
printf("\n nhap a,b: ");
scanf("%d%d",&a,&b);
printf("\n uoc chung lon nhat cua %d va %d la: %d",a,b,ucln(a,b));
getch();
}
Câu 17: viết hàm tính độ dài xâu kí tự (không sử dụng hàm chuẩn
strlen). Viết chương trình nhập vào từ bàn phím xâu kí tự s, áp
dụng hàm trên in ra độ dài xâu vừa nhập.
#include <conio.h>
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int do_dai_xau(char s[])
{int i;
for (i=0;s[i]!=NULL;i++);
return i;
}
void main()
{char s[500];
printf ("\n moi nhap xau: ");
fflush(stdin); gets(s);

printf("\ do dai xau la: %d",do_dai_xau(s));
getch();
}


Câu 18: viết hàm đếm các chữ số in hoa trong một xâu kí tự. viết
chương trình nhập vào từ bàn phím xâu kí tự s, áp dụng hàm trên
cho biết xâu kí tự s có bao nhiêu chữ cái in hoa.
#include <conio.h>
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int dem(char s[])
{int d=0,i=0;
while (i{if ((s[i]<91)&&(s[i]>64)) d=d+1;
i++;
}
return d;
}
void main()
{clrscr();
char s[50];
printf("\n moi nhap xau: ");
fflush(stdin); gets(s);
printf("\n so chu cai in hoa trong xau la: %d",dem(s));
getch();
}
Câu 19: viết hàm đổi các chữ cái in hoacủa một xâu kí tự thành chữ
cái in thường . viết chương trình nhập vào từ bàn phím xâu kí tự s,

áp dụng hàm trên đổi các chữ cái in hoa của xâu s thành chữ cái in
thường. in ra màn hình xâu trước và sau khi đổi.
#include <conio.h>
#include <stdio.h>
#include <string.h>
#include <ctype.h>
char *doi(char s[])
{int i=0;
while (i{if ((s[i]<91)&&(s[i]>64)) s[i]=s[i]+32;
i++;
}
return s;
}
void main()
{clrscr();
char s[50];


printf("\n moi nhap xau: ");
fflush(stdin); gets(s);
printf("\n xau truoc khi doi: %s",s);
printf("\n xau sau khi doi: %s",doi(s));
getch();
}


Câu 20: : viết hàm giải và biện luận phương trình bậc nhất ax+b=0.
viết chương trình nhập vào từ bàn phí 2 số thực a, b, áp dụng hàm
trên cho biết kết quả giải phương trình bậc nhất với 2 hệ số a, b vừa

nhập.
#include <conio.h>
#include <stdio.h>
void PTBN(float a,float b)
{float x;
if (a==0)
if (b==0) printf ("\n phuong trinh co vo so nghiem");
else printf ("\n phuong trinh vo nghiem");
else
{x=-b/a;
printf ("\n phuong trinh co mot nghiem x= %5.2f",x);
}
}
main()
{clrscr();
float a,b;
printf ("\n moi nhap cac gia tri a,b: ");
scanf ("%f%f",&a,&b);
PTBN(a,b);
getch();
return 0;
}



×