Hãy viết chương trình để in ra bảng sự thật của các phép toán logic AND,OR,NOT,NAND,XOR của định luật DE MORGAN... theo thứ tự tăng dần... 21.Viết chương trình liệt kê tất cả các số nguy
Trang 1kq=n/y+tongdq(n-1);
q;
,&n);
ntf(" ket qua tinh can bac n cua nla=%f\n",TinhCan(n,n)); intf(" ket qua tinh can bac n cua n theo ham
printf(" Theo tong lap =%f\n",tong(n));
getch();
}
3 Viết 1 hàm đệ quy để tính S
ương trình
}
return k
}
main()
{
clrscr();
float n;
float x;
printf("nhap n=");
scanf("%f"
pri
pr
chuan=%f\n",exp(1/n*log(n)));
printf(" Theo tong de quy=%f",tongdq(n));
1
( )2 1 1 2
1
−
n
5 3 5
1 1
1+ + +
=
S
Ch
.h>
de <conio.h>
t hamdequy(int n)
t ketqua;
0;
e
2*n-1;
xp(t*log(t))+hamdequy(n-1);
scr();
t n;
printf("Nhap n=");
#include <stdio
#include <math.h>
#inclu
floa
{
int t;
floa
if (n==0) ketqua=
els
{
t=
ketqua=1/e
}
return ketqua;
}
main()
{
clr
in
Trang 2scanf("%d",&n);
printf("Ket qua=%f ",hamdequy(n));
tch();
û quy tính i!, rồi gọi vào hàm chính để
ge
}
14 Hãy viết 1 hàm đê
tính tổng S
!
1
! 2
1 1
n
S = + + +
Chương trình
#include<conio.h>
th.h>
n) float ketqua = 1;
for (i=2; i<=n; i++)
= i;
n ketqua;
nt n)
i;
<=n; i++) kq=kq+1/giaithua(i);
rintf("\nNhap vao gia tri N : ");
scanf("%d", &n);
getch();
chương trình tìm ước số chung lớn nhất và bội
út của 2 số nhập từ bàn phím
#include <stdio.h>
#include <ma
float giaithua(int
{
int i;
ketqua *
retur
}
float tinh(i
{
float kq=0;
int
for (i=1; i
return kq;
}
void main()
{
clrscr();
int n;
p
printf("%d! = %f\n", n, giaithua(n));
printf("ket qua la=%f",tinh(n));
}
15 Hãy viết 1
số chung nhỏ nhâ
Trang 3Chương trình
#include <stdio.h>
#include <conio.h>
h>
-*/
b);
&& b != 0)
f (a == 0)
return a;
-*/
return a * b / USCLN(a, b);
-*/
nNhap vao so nguyen thu hai b= : ");
canf("%d",&b);
i
get
6 Hãy viết 1 chương trình nhập 1 số nguyên từ bàn phím và đổi số nguyên đó ra cơ số bất kỳ(2-16)
#include <math
/* -int USCLN(/* -int a, /* -int b)
{
a = abs(a);
b = abs(
while (a != 0
if (a > b)
a -= b;
else
b -= a;
i
return b;
else
}
/*
int BSCNN(int a, int b)
{
}
/* -main()
{
int a,b;
clrscr();
printf("\nNhap vao so nguyen thu nhat a= : ");
scanf("%d",&a);
printf("\
s
pr ntf("\nUSCLN cua %d va %d = %d", a,b, USCLN(a,b));
printf("\nBSCNN cua %d va %d = %u", a, b, BSCNN(a,b));
ch();
}
1
Chương trình
Trang 4#include <conio.h>
stdio.h>
s(int s,int cs)
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
s/cs;
doics(s,cs);
t[i]<10) printf("%d",gt[i]);
else printf("%c",gt[i]+55);
o can doi");
,&s);
ntf("nhap co so can doi");
anf("%d",&cs);
getch
ï 1 hàm kiểm tra n nhập từ bàn phím guyên tố không ?
#include <
#include <stdlib.h>
void doic
{
int i=1;
int gt[]={0,
if (s>0)
{
gt[i]=s%cs;
s=
if (g
}
}
main()
{
int s,cs;
clrscr();
printf("nhap s
scanf("%d"
pri
sc
doics(s,cs);
();
}
Hãy viết chương trình co
17
có phải là số n
Chương trình
#include <conio.h>
#include <math.h>
#include <stdio.h>
RUE 1 LSE 0 emtra(int n)
k=1;
k++;
e (n%k!=0);
#define T
#define FA
int ki
{
int i,k;
do {
} whil
Trang 5}
main()
{
int n,t;
clrscr();
printf("Nhap n=");
scanf("%d",&n);
iemtra(n);
f (t==TRUE) printf("%d la so nguyen to",n);
getch
18 Hãy viết chương trình để in ra bảng sự thật của các phép
toán logic AND,OR,NOT,NAND,XOR của định luật DE MORGAN
C Phép AND
A B Y
t=k
i
else printf("%d khong phai la so nguyen to",n);
();
}
0 0 0
0 1 0
1 0 0
1 1 1
D Phép OR
A B Y
0 0 0
0 1 1
1 0 1
1 1 1
E Phép NOR
A B Y
0 0 1
0 1 0
1 0 0
1 1 0
F.Phép NAND
A B Y
0 0 1
0 1 1
1 0 1
1 1 0
G.Phép NOT
A Y
0 1
0 1
1 0
1 0
Trang 6A B Y
H.Pheïp XOR
0 0 0
0 1 1
1 0 1
1 1 0
Chæång trçnh
#include <stdio.h>
#include <conio.h>
#define TRUE 1
#define FALSE 0
/* KHAI BAO CAC HAM NGUYEN MAU */
-*/
nt y);
t y);
NOT(int x);
t x,int y);
();
yright by NGUYEN VAN NGUYEN \n");
tf("\n\tBang chan tri cua dinh luat DE Morgan");
f("\n");
p tuc.An phim ESC de thoat");
27);
ch==13) goto tt;
/* -int AND(/* -int x,/* -int y);
int OR(int x,i
int NAND(int x,int y);
int NOR(int x,in
int
int XOR(in
void VIET();
/* -*/
int main(void)
{
char ch;
tt:clrscr
printf("\n\tCop
printf("\n");
prin
VIET();
printf("\n");
printf("\nAn Enter tie
do
{
ch=getch();
}while(ch!=13 && ch!=
if(
return(0);
}
/* -*/
int AND(int x,int y)
{
return(x&&y);
}
/* -*/
Trang 7int OR(int x,int y)
{
return(x||y);
}
/* -*/
int NOR(int x,int y)
{
return(!(x||y));
}
/* -*/
int NAND(int x,int y)
));
-*/
NOT(int x)
urn(!x);
,int y)
-*/
B,C,D,E,F,G,H;
tC\tD\tE\tF\tG\tH");
UE;A++) E;B++)
D=OR(A,B);
NAND(A,B);
G=NOT(A);
H=XOR(A,B);
.Số n là số Kaprekar nếu n=a-b,trong đó a phát sinh từ n bằng
î số theo thứ tự giảm dần;b phát sinh từ n
{
return(!(x&&y
}
/* -int
{
ret
}
int XOR(int x
{
return (x^y);
}
/*
void VIET()
{
int A,
printf("\n\tA\tB\
for(A=FALSE;A<=TR
for(B=FALSE;B<=TRU
{
C=AND(A,B);
E=NOR(A,B);
F=
printf("\n\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d",A,B,C,D,E,F,G,H); }
}
19
cách sắp xếp các chư
Trang 8theo thứ tự tăng dần Viết chương trình liệt kê các số Kaprekar nhỏ hơn 1 triệu
Chương trình
#include <stdio.h>
#include <conio.h>
ong n);
d sort();
(int n);
ong n,i;
if(karprekar(i)) printf("%8ld",i);
-*/
n;
;
while(m){
t++;
-*/
1;j>i;j )
if (a[i]>a[j]){
; a[j]=tam;
-*/
/* -*/
void Modulo(l
voi
int karprekar
int a[7],t;
/* -*/
void main()
{
clrscr();
l
printf("Nhap n=");scanf("%ld",&n);
for(i=1;i<n;i++)
getch();
}
/* -void Modulo(long n)
{
t=0
a[t]=m%10;
m/=10;
}
}
/* -void sort()
{
r(i=0;i<t-2;i++
tam=a[i];
a[i]=a[j]
}
Trang 9
/* -int karprekar(n)
{
for(i=0;i<t;i++){
x=x*10+a[i];
y=y*10+a[t-i-1];
guyên n và kiểm tra n có phải là
ố trong dãy Fibonacci không?
Modulo(n);
sort();
}
if(y-x==n) return 1;
return 0;
}
20.Viết chương trình nhập số n
1 s
Chương trình
#include <stdio.h>
lude <conio.h>
-*/
a(unsigned long t)
g x=0, y = 1, z = 0;
t)
= y;
(z==t)
0;
in()
ong n;
rscr();
so Fibonacci");
ong phai la so Fibonacci");
etch();
#inc
/* -int Kiemtr
{
lon
while (z <
{
z = x+y;
x
y = z;
}
if
return 1;
else return
}
/* -*/
void ma
{
unsigned l
cl
printf("Nhap N = "); scanf("%lu", &n);
if (Kiemtra(n))printf("%lu La
else
printf("%lu Kh
g
}
Trang 1021.Viết chương trình liệt kê tất cả các số nguyên bằng tổng
î số của nó
dụ: 145!=1!+4!+5!
giai thừa các chư
Ví
Chương trình
#include<stdio.h>
00;i++){
0;So=0;
j%10;
for(int k=1,t=1;k<=s;k++) t*=k;
f("%d\t",So);
h kiểm tra số nguyên có bằng tổng giai thừa
!+5!
h
#include<conio.h>
void main()
{
clrscr();
int i,j,s,So;
clrscr();
for(i=1;i<100
j=i;s=
while (j!=0){
if (So==i) print
}
getch();
}
22.Viết chương trìn
các chữ số của nó ?
Ví dụ: 145!=1!+4
Chương trìn
o.h>
id main()
t;
so can kiem tra n=",n);
&n);
s+=gt(t);
#include<stdi
#include<conio.h>
#include<math.h>
int gt(int n);
vo
{
clrscr();
int n,i,s,m,
printf("nhap
scanf("%d",
s=0;m=n;
while (n>0){
t=n%10;
Trang 11
n=n/10;
tim");
else printf("khong phai la so can tim");
getch();
}
nt gt(int n)
{
if (n==0||n==1) return 1;
else return n*gt(n-1);
}
if (s==m) printf("so can
i
}
Trang 12Phần V : KIỂU MẢNG
I M
Fibonacci là dãy số có 2 số đầu bằng 1 và các
ïng trước kề nó Viết chương trình
à xuất ra màn hình n số đầu của dãy số
* Th
ẢNG 1 CHIỀU
Dãy số nguyên
1
số sau bằng tổng 2 số đư
v nhập một số nguyên n
onacci
Fib
uật toán:
+ Khai báo mảng 1 chiều
Gán
Fibo[2]:=1;
ết Fibo[i]
Chương trình
+ Nhập n từ bàn phím
+
Fibo[1]:=1;
+ Cho i=3 đến n làm Fibo[i]:=Fibo[i-1] +Fibo[i-2];
+ Cho i=1 đến n vi
*
,&n);
ibo[1]=1;
Fibo[2]=1;
or (i=3; i<=n; i++) Fibo[i]=Fibo[i-1]+Fibo[i-2];
printf("%6d", Fibo[i]);
gồm n phần tử Sau đó in các phần tử
#include <conio.h>
#include <stdio.h>
#include <math.h>
void main()
{
clrscr();
int Fibo[1000],i,n;
printf("\Nhap vao so nguyen n= :");
scanf("%d"
F
f
printf("N so dau tien cua day Fibonaci la:\n");
for (i=1; i<=n; i++)
getch();
}
2 Nhập một mảng 1 chiều
đã nhập lên màn hình
* Thuật toán:
Trang 13+ Khai báo kiểu mảng 1 chiều
hập xuất
í tục đó làm việc
+ Viết một thủ tục n
+ Viết một thủ tục
+ Viết chương trình chính gọi 2 thu
* Chương trình
include <stdio.h>
#
#include <conio.h>
Max 100
han nhap mang 1 chieu*/
-*/
int n)
nf("%d", &a[i]);
eu*/
*/
xuat(int a[Max],int n)
rintf("Day da cho :\n");
<n; i++)
;
t a[Max],n,i;
í kiểu Integer Hãy xếp các phần tử
à các phần tử chẵn và chia
öi đảo mảng (dùng FOR)
#define
/* P
/* -void nhap(int a[Max],
{
int i;
for (i=0; i<n; i++)
{
printf("a[%d]=",i);
sca
}
}
/* Phan xuat mang 1 chi
/* -void
{
int i;
p
for (i=0; i
printf("%6d",a[i]);
}
void main()
{
clrscr()
in
printf("\nNhap vao n= :");
scanf("%d",&n);
nhap(a,n);
xuat(a,n);
etch();
g
}
3 Nhập 1 mảng với n phần tư
lẻ và chia hết cho 5 lên đầu mảng v
hết cho 5 xuống cuối mảng (dùng FOR) Rô
Trang 14Chæång trçnh
#include <stdio.h>
def int vt[100];
-*/
i;
ntf("a[%d]=",i);
d", &a[i]);
-*/
xuat(vt x,int n)
t i;
da cho :\n");
=1; i<=n; i++)
);
apxep(vt a,int n)
=1;i<=n; i++)
if ((a[i]%5==0)&& (a[i]%2==1))
=a[d];
i<=n; i++)
a[i]%5!=0)
[d]=tg;
-*/
(int a[100],int n)
#include <conio.h>
type
/* -void nhap(vt a,int n)
{
int
for (i=1; i<=n; i++)
{
pri
scanf("%
}
}
/* -void
{
in
printf("Day
for (i
printf("%6d", x[i]
}
void s
{
int tg,i,d;
d=1;
for(i
{
tg=a[i];
a[i]
a[d]=tg;
d++;
}
for(i=d;
if (
{
tg=a[i];
a[i]=a[d];
a
d++;
}
}
/*
void Dao_mang
Trang 15{
int i;
for (i=n; i>=1;i ) printf("%6d", a[i]);
vao n= :");
n);
an dau la :\n");
);
rintf("\nMang sau khi sap xep :\n");
sapxep(a,n);
Dao
getch();
}
4 Du
a/ Sa ột mảng C theo yêu cầu sau:
tử thứ nhất của mảng B là phần tử thứ hai của mảng + Phần tử thứ hai của mảng A của mảng là phần tử thứ ba
của mảng B là phần tử thứ tư của mảng C thế cho đến khi thực hiện xong việc sao
ình
Chương trình
}
void main()
{
clrscr();
int a[100],n,i;
printf("\nNhap
scanf("%d",&
nhap(a,n);
printf("\nMang b
xuat(a,n
p
xuat(a,n);
printf("\nMang dao la :");
_mang(a,n);
ìng chương trình con nhập 2 mảng một chiều A và B
o chép sang m
+ Phần tử thứ nhất của mảng A là phần tử thứ nhất của mảng
C
+ Phần
C
của mảng C
+ Phần tử thứ 2
Cứ tiếp tục như
chép
b/ Đưa mảng được sao chép lên màn h
*
io.h>
io.h>
t[100];
m,n,k,i;
#include <std
#include <con
typedef int v
/* -*/
void main()
{
clrscr();
vt a,b,c;
int
Trang 16/* -*/
tf("\nNhap vao n= :");
printf("a[%d]=",i);
++)
-*/
ntf("\nNhap vao m= :");
i);
");
tf("%6d", b[i]);
-*/
huat toan chep thoa man dieu kien bai toan ra*/
if (k==n) for(i=k+1; i<=m; i++) c[i+k]=b[i];
else for(i=k+1; i<=n; i++) c[i+k]=a[i];
tch();
bất kỳ sau đó sao chép sang một mảng khác
í lẻ được xếp đầu dãy của mảng Sau đó
/* Nhap mang A*/
prin
scanf("%d",&n);
for (i=1; i<=n; i++)
{
scanf("%d", &a[i]);
}
printf("Day A da cho :\n");
for (i=1; i<=n; i
printf("%6d", a[i]);
/* Nhap mang B*/
pri
scanf("%d",&m);
for (i=1; i<=m; i++)
{
printf("b[%d]=",
scanf("%d", &b[i]);
}
printf("Day B da cho :\n
for (i=1; i<=m; i++)
prin
printf("\n");
/* T
if(m>n) k=n; else k=m;
for(i=1; i<=k;i++)
{
c[2*(i-1)+1]=a[i];
c[2*i]=b[i];
}
printf("\nDay C sau khi sao chep\n");
for (i=1; i<=m+n; i++)
printf("%6d", c[i]);
ge
}
5.Nhập vào một mảng
với điều kiện các phần tư
đưa mảng sao chép lên màn hình
Trang 17* Chương trình
clude <stdio.h>
int vt[100];
-*/
luu toa do cot dong*/
,b;
:");
nf("%d",&n);
);
:\n");
6d", a[i]);
=1; i<=n; i++) a[i]%2==1)
xCol ;
printf("\n");
printf("\Day sau khi dua phan tu le len truoc\n");
viết một thủ tục nhập vào một mảng A gồm n phần tử Word,tính
ần tử cuối ) div 2 Rồi viết 1hàm tìm kiếm
#in
#include <conio.h>
typedef
/* -void main()
{
int xCol,xLine;/*
int i,n;
vt a
clrscr();
printf("\nNhap vao n=
sca
for (i=1; i<=n; i++)
{
printf("a[%d]=",i);
scanf("%d", &a[i]
}
printf("Day da cho truoc
for (i=1; i<=n; i++)
printf("%
xCol=n;
xLine=1;
for(i
if (
{
b[xLine]=a[i];
xLine++;
}
else
{
b[xCol]=a[i];
}
for (i=1; i<=n; i++) printf("%6d", b[i]);
getch();
}
6
x=(phần tử giữa + ph
x có trong mảng A?