1. Trang chủ
  2. » Công Nghệ Thông Tin

100 BÀI TẬP VỀ NGÔN NGỮ LẬP TRÌNH C

101 2,2K 7

Đ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 101
Dung lượng 1,63 MB

Nội dung

Câu 1:Tính n giai thừa, với n nhập từ bàn phím.. Câu 7: Viết chương trình nhập vào mảng một chiều n phần tử số nguyên,kiểm tra xem có số nguyên tố hay không, nếu có thì xuất ra các số ng

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ VIỄN THÔNG

 BÁO CÁO MÔN NGÔN NGỮ LẬP TRÌNH GVHD: Nguyễn Siêu Đẳng

SVTH: Nguyễn Minh Vỵ -11341040 Võ Văn Trung -11341054

LỚP : 113410

Trang 2

- Các bài tập dưới đây chúng em xin bỏ phần thư viện trên khi đưa ra word

Câu 1:Tính n giai thừa, với n nhập từ bàn phím.

Code:

#include <stdio.h> //thu vien can dung

#include <conio.h>//thu vien cho ham getch()

//chuong trinh chinh chinh

Trang 3

tam=tinhgiaithua(n); //loi goi ham

printf("ket qua giai thua cua so da nhap la: %d",tam);

Trang 4

//xu ly chuong trinh

while(a!=b) // so sanh 2 so a,b co khac nhau khong

printf("uoc so chung lon nhat cua 2 so la: %d",uscln);

printf("\nboi so chung nho nhat cua 2 so la: %d",bscnn);

// ham tim uscln va bscnn

void usclnbscnn(int a,int b,int &usc,int &bcnn) //dinh nghia ham bang cach truyen tham bien{

int c;

c=a*b;

while(a!=b)

{

Trang 5

printf("uoc so chung lon nhat cua 2 so la: %d",uscln);

printf("\nboi so chung nho nhat cua 2 so la: %d",bscnn);

Trang 6

printf("\nthuong cua 2 so la: %d",a/b);

printf("\ntich cua 2 so la: %d",a*b);

printf("\ntong cua 2 so la: %d",a+b);

printf("\nhieu cua 2 so la: %d",a-b);

//ham kiem tra so nguyen to

int ktsnt(int sonhapvao)

Trang 7

else return 0; //tra ve de biet khong phai so nguyen to

kq=ktsnt(n);//goi ham tra ve gia tri luu vao kq de kiem tra

if(kq==0) printf("\nday khong phai la snt");

else printf("\nla so nguyen to");

getch();

}

Thực hiện:

Trang 8

Câu 7: Viết chương trình nhập vào mảng một chiều n phần tử số nguyên,kiểm tra xem có số nguyên tố hay không, nếu có thì xuất ra các số nguyên tố,nếu không thì in ra câu thông báo Yêu cầu viết hàm hàm kiểm tra số nguyên tố.

Code:

#include <stdio.h>

#include <conio.h>

//ham kiem tra so nguyen to

int ktsnt(int sonhapvao)

if(tt==2) return 1;//gia tri tra ve de biet la so nguyento

else return 0;//tra ve de biet khong phai so nguyen to

// nhap n voi n khong am va phai nho hon 100

do { printf("xin moi nhap so phan tu mang: ");

scanf("%d",&n);

}while((n<0)||(n>100));

//chuuong trinh nhap mang

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

Trang 10

Câu 8: Viết chương trình cho mảng 1 chiều n phần tử số nguyên,xuất ra màn hình giá trị lớn nhất

// nhap n voi n khong am va phai nho hon 100

do { printf("xin moi nhap so phan tu mang: ");

Trang 11

Câu 9: Viết chương trình tìm giá trị nhỏ nhất trong mảng một chiều 5 phần tử ,không được nhập số âm, yêu cầu viết hàm tìm min.

Code:

#include <stdio.h>

#include <conio.h>

//ham tim min

void somin(int a[],int sophantu)

{

int i,min=a[0];

for(i=1;i<sophantu;i++){

if(min>a[i]) min=a[i];

}printf("so %d la so nho nhat trong mang",min);

Trang 12

Thực hiện:

Câu 10: Chương trình nhập vào ngày, tháng năm, kiểm tra tính hợp lệ của ngày vừa

nhập,nếu hợp lệ thì in ra ngày trước và ngày sau của ngày tháng ta nhập vào.

Code:

# include<stdio.h>

# include<math.h> // thư viện toán

void main()

{int ngay, thang, nam, hople, hople2, ngay1,ngay2,thang1,thang2,nam1,nam2;

printf("moi ban nhap ngay ");

case 1 : case 3 : case 5: case 7: case 8 : case 10 :case 12 : hople=31 ; break ;

case 4 : case 6 : case 9: case 11: hople=30 ; break ;

case 2: if ((nam%4==0) && (nam%400==0 || nam%100!=0)) hople=29; else hople=28; break; default : printf ("\n ban nhap sai thang roi"); break;}

if (ngay>hople) printf("\n ngay khong hop le"); else printf("\n ngay hop le");

if ((ngay <=hople)&& (thang<=12))

{

Trang 13

printf("\nthang ban vua nhap co %d ngay",hople);

case 1 : case 3 : case 5: case 7: case 8 : case 10 :case 12 : hople2=31 ; break ;

case 4 : case 6 : case 9: case 11: hople2=30 ; break ;

Trang 14

Câu 11: Viết chương trình nhập số tiền nguyên n đồng, đổi ra xem có bao nhiêu tờ 10 đồng,5 đồng , 2 đồng và 1 đồng.

Trang 15

int i,n,tam=0;

int a[100];// khai bao 1 chuoi la 100 vi tri de chua cac gia tri

// nhap n voi n khong am va phai nho hon 100

do { printf("xin moi nhap so phan tu mang: ");

// nhap n voi n khong am va phai nho hon 100

do { printf("xin moi nhap so phan tu mang: ");

scanf("%d",&n);

}while((n<0)||(n>100));

Trang 16

//chuuong trinh nhap mang

//ham kiem tra so nguyen to

int ktsnt(int sonhapvao)

{

int i,tt=0;

Trang 17

if(tt==2) return 1;//gia tri tra ve de biet la so nguyento

else return 0;//tra ve de biet khong phai so nguyen to

//nhap mang

for(i=0;i<n;i++){ printf("nhap phan tu thu %d: ",i);

scanf("%d",&a[i]);

}//xu ly chuong trinhfor(i=0;i<n;i++){ if(ktsnt(a[i])==1)//goi ham ktsnt va thuc hien phep cong tong=tong+a[i];

}printf("tong cac so nguyen to la: %d ",tong);

getch();

}

Thực hiện:

Câu 15: Viết chương trình nhập vào mảng 1 chiều n phần tử,xuất ra mảng vừa nhập tìm và in

ra số chẳn lớn nhất, lẽ lớn nhất, và nếu không có số lẽ,hoặc chẳn thì in ra thông báo.

Code:

Trang 18

printf("\nSo le lon nha la: %d",a[i]);

//Tim va in ra so chan lon nhat neu kho co in ra thong bao

Trang 19

Câu 16: Viết hàm tính tổng 2 số nguyên

Trang 21

Câu 19: Viết hàm tìm số lớn nhất trong 2 số

Trang 22

void maxmin(int a[],int n)

printf("so lon nhat la: %d",max);

printf("\nso nho nhat la: %d",min);

// nhap n voi n khong am va phai nho hon 100

do { printf("xin moi nhap so phan tu mang: ");

Trang 23

// nhap n voi n khong am va phai nho hon 100

do { printf("xin moi nhap so phan tu mang: ");

printf("mang tang dan theo thu tu:");

Trang 24

Câu 22: Viết chương trình nhập vào mảng 1 chiều n phần tử kiểu số nguyên, sắp xếp theo thứ

// nhap n voi n khong am va phai nho hon 100

do { printf("xin moi nhap so phan tu mang: ");

printf("mang giam dan theo thu tu:");

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

printf("\n%d",a[i]);

getch();

Trang 25

//ham nhap mang

void nhapmang(int a[],int n)

// nhap n voi n khong am va phai nho hon 100

do { printf("xin moi nhap so phan tu mang: ");

scanf("%d",&n);

}while((n<0)||(n>100));

nhapmang(a,n);//loi goi ham nhap mang

printf("mang vua nhap la:");// xuat ra man hinh mang vua nhap

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

printf("\n%d",a[i]);

getch();

}

Trang 26

//ham xuat mang

void xuatmang(int a[],int n)

// nhap n voi n khong am va phai nho hon 100

do { printf("xin moi nhap so phan tu mang: ");

Trang 27

Câu 25: Viết chương trình nhập vào 4 số từ bàn phím, xuất ra màn hình số lớn nhất, thao tác được nhập lại.

float a,b,c,d,max1,max2,max;//khai bao so thuc

while(1) //bieu thuc luon dung,thuc hien lai tao tac

Trang 28

Câu 26: Viết chương trình nhập vào mảng 1 chiều n phần tử kiểu số nguyên, xuất ra màn hình số lẽ riêng, số chẵn riêng.

// nhap n voi n khong am va phai nho hon 100

do { printf("xin moi nhap so phan tu mang: ");

//// xap sep chan,le ra 2 mang /////////////

printf("\ncac so chan la");

Trang 29

// nhap n voi n khong am va phai nho hon 100

do { printf("xin moi nhap so phan tu mang: ");

/////// tach lay so chan////////////////////////////////

printf("\ncac so chan la");

Trang 30

// nhap n voi n khong am va phai nho hon 100

do { printf("xin moi nhap so phan tu mang: ");

Trang 32

Câu 29: Viết chương trình nhập vào mảng 1 chiều n phần tử kiểu số nguyên, xuất ra màn hình các số theo thứ tự tăng dần, số lớn nhất,số nhỏ nhất, mảng chẳn, mảng lẽ riêng Code:

//in ra tang dan

printf("\ncac so tang dan");

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

printf("\n%d",a[i]);

printf("\nso lon nhat la: %d",a[n-1]);

printf("\nso nho la : %d",a[0]);

////xap sep chan,le ra 2 mang

printf("\ncac so chan la");

Trang 33

//xay dung ham tinh tong///

int tongmang(int a[],int n)

{

Trang 34

#include <stdlib.h> //thu vien can thiet cho ham cap va giai phong bo nho

//chuong trinh chinh/////////

for(i=0;i<n;i++) {

printf("nhap vao phan tu thu %d: ",i);

Trang 35

scanf("%d",(a+i));// a+i la doi so,la dia chi }

max=a[0]; //gan max bang a[0] de so sanh for(i=1;i<n;i++)

if(max<a[i])

max=a[i];

printf(" %d la so lon nhat trong mang",max);

}free(a); //giai phong bo nho cap phat con trogetch();

#include <stdlib.h> //thu vien can thiet cho ham cap va giai phong bo nho

//chuong trinh chinh/////////

for(i=0;i<n;i++) {

printf("nhap vao phan tu thu %d: ",i);

scanf("%d",(a+i));// (a+i) la doi so,la dia chi }

for(i=0;i<n-1;i++) for(j=i+1;j<n;j++)

Trang 36

if(*(a+i)>*(a+j)) // *(a+i) la noi dung phan tu thu i {

tam=*(a+i);

*(a+i)=*(a+j);

*(a+j)=tam;

} printf("mang tang dan theo thu tu");

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

printf("\n%d",*(a+i));

}free(a); //giai phong bo nho cap phat con trogetch();

Trang 37

if(*(a+i)<*(a+j)) // *(a+i) la noi dung phan tu thu i

printf("\nso nho nhat la: %d",*(a+5));

printf("\nso lon nhat la: %d",*(a)); // *(a) là phần tử thứ a[0]

printf("noi dung cua a[0] la: %d",*n);// phan tu thu 0

printf("\nnoi dung cua a[1] la: %d",*(n+1)); //phan tu thu 1

printf("\nnoi dung cua a[2] la: %d",*(n+2)); //phan tu thu 2

getch();

}

Trang 38

//////////ham nhap mang///////

void nhapmang(int *a,int n)

//////////ham sap xep ////////

void sapxeptang(int *a,int n)

Trang 39

if(x== NULL) //tra ve gia tri null,neu khong thanh cong

printf(" cap phat khong thanh cong");

else { //thuc hien chuong trinh ////

nhapmang(x,n); ///goi ham sapxeptang(x,n);///goi ham }

free(x);//giai phong bo nho getch();

{ printf(" xin moi nhap mot ten\n");

char s[100]; // khai bao mot bien chuoi 100 vi tri

gets(s); //nhap ten

puts(s); //xuat chuoi

getch();

}

Thực hiện:

Trang 40

Câu 37: Viết chương trình nhập vào một chuỗi kí tự từ bàn phím, cho biết có bao nhiêu chữ

“a”,nếu không có thì in ra câu thông báo.

if(tam==0) printf("chuoi ban nhap khong co ky tu a");

else printf(" co tong cong %d ky tu a",dem);

Trang 42

Câu 40: Viết chương trình nhập vào danh sách 5 người, in ra danh sách vừa nhập.

Code:

#include <stdio.h>

#include <conio.h>

#include <string.h> //thu vien chuoi

//*tao mot cau truc*//

Trang 43

{struct sv lop1; //khai bao bien lop1 thuoc kieu cau truc sv

printf("nhap ho ten sinh vien\n"); /* de truy xuat toi cac phan tu ta su dung 'ten bien.ten truong'*/gets(lop1.hoten);

printf("nhap mssv\n");

gets(lop1.mssv);

printf("nhap diem thi mon NGON NGU LAP TRINH\n");

printf("nhap diem qua trinh sinh vien\n");

scanf("%f",&lop1.diemqt);

printf("nhap diem thi cua sinh vien\n");

scanf("%f",&lop1.diemthi);

lop1.diemtongket=lop1.diemqt*0.3+lop1.diemthi*0.7;

printf("diem tong ket sv la: %f",lop1.diemtongket);

if(lop1.diemtongket<5) printf("\nsinh vien phai hoc lai");

else printf("\nsinh vien dau");

printf("\nso ban nhap la: %f",so);

getch();

}

Trang 44

Thực hiện:

Câu 43: Viết chương trình sử dụng cấu trúc Switch để xếp loại học sinh như sau:

Từ 0 đến 3 là kém, 4 là yếu, từ 5 đến 6 là trung bình, từ 7 đến 8 là khá, từ 9 đến 10 là giỏi Code:

#include <stdio.h>

#include <conio.h>

void main()

{

int diem; //diem nhap boi nguoi dung

printf(" nhap vao diem: ");

Trang 45

int a[100], b[100],n,i,j;

printf("nhap so phan tu: ");

Trang 46

int a[100] ,chan[100],le[100], j=0, i,n,t,k=0 ;

// nhap so duong khong nhap am

// nhap vao mang

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

Trang 48

Câu 48: Viết chương trinh tìm các số có 3 chữ số với điều kiện :tích của 3 chữ số ấy bằng tổng 3 chữ số ấy.

printf("cac so co 3 chu so thoa a*b*c=a+b+c la:");

for(i=1;i<1000;i++) ///toi 999 la co 3 chu so

//ham kiem tra so nguyen to

int ktsnt(int sonhapvao)

Trang 49

if(tt==2) return 1; //gia tri tra ve de biet la so nguyento

else return 0; //tra ve de biet khong phai so nguyen to

kq=ktsnt(n);//goi ham tra ve gia tri luu vao kq de kiem tra

if(kq==0) printf("\nday khong phai la snt");

else printf("\nla so nguyen to");

int n, tram, chuc, donvi;

printf("\nNhap vao mot so tu 100 - 999 : ");

printf("\nSo hang tram = %d", tram);

printf("\nSo hang chuc = %d", chuc);

printf("\nSo hang don vi = %d", donvi);

getch();

}

Trang 50

printf("\n1 Hinh tam giac");

printf("\n2 Hinh tron");

Trang 51

printf("\n3 Hinh vuong");

printf("\n4 Hinh chu nhat");

printf("\n\nNhap vao ba canh tam giac : ");

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

printf("\nChu vi tam giac = %d", a+b+c);

printf("\nChu vi hinh tron = %f", 2 * M_PI * r);

printf("\nDien tich hinh tron = %f", M_PI * r * r);

printf("\nChu vi hinh vuong = %d", 4 * a);

printf("\nDien tich hinh vuong = %d", a * a);

Trang 52

printf("\n\nNhap vao cac canh hinh chu nhat : ");

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

printf("\nChu vi hinh chu nhat = %d", 2 * (a+b));

printf("\nDien tich hinh chu nhat = %d", b * a);

Trang 54

Câu 54: Viết chương trình nhập vào phần thực và phần ảo của 2 số phức A và B, xuất ra màn hình tổng, hiệu, tích , thương,của chúng Và argument,modul của số A.

Code:

#include <math.h>

#include <conio.h>

#include <stdio.h>

typedef struct tagcomplex {

float thuc, ao;

} complex;

complex tong(complex a, complex b)

{

complex c;

c.thuc = a.thuc + b.thuc;

c.ao = a.ao + b.ao;

c.thuc = a.thuc - b.thuc;

c.ao = a.ao - b.ao;

c.thuc = a.thuc*b.thuc - a.ao*b.ao;

c.ao = a.thuc*b.ao + a.ao*b.thuc;

tongbp = b.thuc*b.thuc + b.ao*b.ao;

c.thuc = (a.thuc*a.ao + b.thuc*b.ao)/tongbp;

c.ao = (a.ao*b.thuc - a.thuc*b.ao)/tongbp;

Trang 55

printf("\nNhap he so thuc va phuc cua A : ");

scanf("%f%f", &a.thuc, &a.ao);

printf("\nNhap he so thuc va phuc cua B : ");

scanf("%f%f", &b.thuc, &b.ao);

printf("\nArgument cua a = %f", argument(a));

printf("\nModul cua a = %f", modul(a));

getch();

}

Thực hiện:

Trang 56

Câu 55: Viết chương trình tím thứ ,khi nhập vào ngày,tháng năm Sử dụng cấu trúc để quản

long int number;

number = 1461 * funct1(y,m) / 4 + 153 * funct2(m) / 5 + d;

Trang 57

printf ("Nhap vao mot ngay (dd mm yyyy), vd 12 03 1999 \n");

scanf ("%d %d %d", &date_1.day, &date_1.month, &date_1.year);

number_of_days1 = day_count (date_1.month, date_1.day, date_1.year);

Trang 58

Câu 56: Viết chương trình cho phép nhập 2 mức giờ , bao gồm giờ,phút ,giây, cho mỗi mức giờ, sau đó tính tổng 2 mức giờ ấy lại.

int gio1, phut1, giay1, gio2, phut2, giay2, gio3 = 0, phut3 = 0, giay3;

printf("\nNhap vao gia tri chi gio thu nhat (hh:mm:gg): ");

scanf("%d:%d:%d", &gio1, &phut1, &giay1);

printf("\nNhap vao gia tri chi gio thu hai (hh:mm:gg): ");

scanf("%d:%d:%d", &gio2, &phut2, &giay2);

giay3 = giay1 + giay2;

Trang 59

Câu 57: Viết chương trình tính số pi với sai số là 0,0001.

printf("\nSo PI tinh toan duoc la : %lf", PI);

printf("\nSo M_PI trong C = %lf", M_PI);

//ham giai thua

unsigned long giaithua(int n)

Ngày đăng: 05/02/2015, 08:41

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w