1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Bài tập Tin học Đại cương part 5 pps

17 580 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 17
Dung lượng 205,44 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 1

kq=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 2

scanf("%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 3

Chươ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 6

A 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

print

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 7

int 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 8

theo 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 10

21.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ư

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 12

Phầ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 14

Chæå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?

Ngày đăng: 24/07/2014, 00:21

TỪ KHÓA LIÊN QUAN

w