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

Bài tập ngôn ngữ lập trình c đầy đủ các phần

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 (250.56 KB, 56 trang )

Ngôn Ngữ lập trình C - code Dũng NV 54k4CNTT
Câu 1.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 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.
// bai1.cpp : Defines the entry point for the console application.
// code Du~ng NV
#include "stdafx.h"
#include <conio.h>
#include <stdio.h>
unsigned long tong(int n)
{
int i;
unsigned long s=0;
for (i=0;i<=n;i++)
s+=(2*i+1);
return s;
}
int _tmain(int argc, _TCHAR* argv[])
{
int n;
printf("\nNhap N= ");
scanf("%d",&n);
printf("\n Tong s = %lu",tong(n));
getch();
return 0;
}
Câu 1.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 vào 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.
// bai2.cpp : Defines the entry point for the console application.
// code Dung NV
#include "stdafx.h"
#include <conio.h>


#include <stdio.h>
unsigned long giaithua(int n)
{
int i;
unsigned long gt=1;
if (n==0 || n==1) return 1;
for (i=2;i<=n;i++) gt=gt*i;
return gt;
}
int _tmain(int argc, _TCHAR* argv[])
{
int n;
printf("\nNhap N= ");
scanf("%d",&n);
printf("\nGiai thua %3d! = %lu",n,giaithua(n));
getch();
return 0;
}
Câu 1.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 vào 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.
// bai3.cpp : Defines the entry point for the console application.
// code Dung NV
1
Ngôn Ngữ lập trình C - code Dũng NV 54k4CNTT
#include "stdafx.h"
#include <conio.h>
#include <stdio.h>
#include <string.h>
char *nhiphan(int n)
{

int i=0,j,k,x;
char s[33],d[3]="01",tg;
x=n;
while (x!=0)
{
k=x%2;
s[i]=d[k];
i++;
x=x/2;
}
j=i;
for(i=0;i<(j/2);i++)
{
tg=s[i];
s[i]=s[j-i-1];
s[j-i-1]=tg;
}
s[j]=NULL;
return &s[0];
}
int _tmain(int argc, _TCHAR* argv[])
{
int n;
char np[33];
printf("\nNhap N= ");
scanf("%d",&n);
strcpy(np,nhiphan(n));
printf("\nchuen %d thanh xau nhi phan : %s",n,np);
getch();
return 0;

}
Câu 1.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 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.
// bai4.cpp : Defines the entry point for the console application.
// code Du~ng NV
#include "stdafx.h"
#include <conio.h>
#include <stdio.h>
unsigned long tong(int n)
{
int i;
unsigned long s=0;
for(i=1;i<=n;i++) s+=2*i;
return s;
}
int _tmain(int argc, _TCHAR* argv[])
{
int n;
printf("\nNhap N= ");
scanf("%d",&n);
printf("\n Tong s = %lu",tong(n));
getch();
2
Ngôn Ngữ lập trình C - code Dũng NV 54k4CNTT
return 0;
}
Câu 1.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 vào từ bàn phím số nguyên
không âm n, áp dụng hàm trên tìm và in ra màn hình xâu Hecxa tương ứng.
// bai5.cpp : Defines the entry point for the console application.
// code Dung NV

#include "stdafx.h"
#include <conio.h>
#include <stdio.h>
#include <string.h>
char *hecxa(int n)
{
int i=0,j,k,x;
char s[33],d[17]="0123456789ABCDEF",tg;
x=n;
while (x!=0)
{
k=x%16;
s[i]=d[k];
i++;
x=x/16;
}
j=i;
for(i=0;i<(j/2);i++)
{
tg=s[i];
s[i]=s[j-i-1];
s[j-i-1]=tg;
}
s[j]=NULL;
return &s[0];
}
int _tmain(int argc, _TCHAR* argv[])
{
int n;
char hx[33];

printf("\nNhap N= ");
scanf("%d",&n);
strcpy(hx,hecxa(n));
printf("\nchuen %d thanh xau nhi phan : %s",n,hx);
getch();
return 0;
}
Câu 1.6: Viết hàm tính tổng s = 1
3
+ 2
3
+ + n
3
, 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
// bai6.cpp : Defines the entry point for the console application.
// code Du~ng NV
#include "stdafx.h"
#include <conio.h>
#include <stdio.h>
unsigned long tong(int n)
{
int i;
unsigned long s=0;
for(i=1;i<=n;i++) s+=i*i*i;
return s;
3
Ngôn Ngữ lập trình C - code Dũng NV 54k4CNTT
}
int _tmain(int argc, _TCHAR* argv[])

{
int n;
printf("\nNhap N= ");
scanf("%d",&n);
printf("\n Tong s = %lu",tong(n));
getch();
return 0;
}
Câu 1.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?
// bai7.cpp : Defines the entry point for the console application.
// code Du~ng NV
#include "stdafx.h"
#include <conio.h>
#include <stdio.h>
int ktsnto(int n)
{
int i;
if (n==0 || n==1) return 0;
for (i=2;i*i<=n;i++) if (n%i==0) return 0;
return 1;
}
int _tmain(int argc, _TCHAR* argv[])
{
int n;
printf("\nNhap N= ");
scanf("%d",&n);
if (ktsnto(n)) printf("\n%5d La so nguen to",n);
else printf("\n%5d khong phai la so nguen to",n);
getch();

return 0;
}
Câu 1.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 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.
// baiso8.cpp : Defines the entry point for the console application.
// code Du~ng NV
#include "stdafx.h"
#include <conio.h>
#include <stdio.h>
unsigned long tong(int n)
{
int i;
unsigned long s=0;
for(i=1;i<=n;i++)
s+=i*(i+1)*(i+2);
return s;
}
int _tmain(int argc, _TCHAR* argv[])
{
int n;
printf("\nNhap N= ");
scanf("%d",&n);
printf("\n Tong s = %lu",tong(n));
getch();
return 0;
4
Ngôn Ngữ lập trình C - code Dũng NV 54k4CNTT
}
Câu 1.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?

Định nghĩa số hoàn thiện[sửa | sửa mã nguồn]
Số hoàn thiện là các số nguyên dương n sao cho:
n = s(n),
trong đó, s(n) là hàm tổng giới hạn các ước của n (nghĩa là tổng các ước chính thức của n), hoặc:
σ(n) = 2n,
trong đó, σ(n) là hàm tổng các ước của n (nghĩa là tổng các ước của n, bao gồm cả n).
nguồn :
// bai9.cpp : Defines the entry point for the console application.
//
// code Dung NV
#include "stdafx.h"
#include <conio.h>
#include <stdio.h>
int ktsht(int n)
{
int i;
int k=0;
for (i=2;i<n;i++) if(n%i==0)
{
k+=i;
if(k>n) return 0;
}
if (n==k) return 1; else return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
int n;
printf("\nNhap N= ");
scanf("%d",&n);
if (ktsht(n)) printf("\n%5d La so hoan thien",n);

else printf("\n%5d khong phai la so hoan thien",n);
getch();
return 0;
}
Câu 1.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.
// bai10.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <conio.h>
#include <stdio.h>
float min(float x, float y, float z)
{
float min1=x;
if (min1>y) min1=y;
else if (min1>z) min1 = z;
return min1;
5
Ngôn Ngữ lập trình C - code Dũng NV 54k4CNTT
}
int _tmain(int argc, _TCHAR* argv[])
{
float x,y,z;
printf("\nNhap 3 so thuc: ");
scanf("%f%f%f",&x,&y,&z);
printf("\nmin 3 so %7.3f,%7.3f,%7.3f la %7.3f",x,y,z,min(x,y,z));
getch();
return 0;
}
Câu 1.11: Viết hàm giải và biện luận phương trình bậc hai ax

2
+ bx + c = 0. Viết chương trình nhập vào từ bàn phím ba 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 ba hệ số a, b, c vừa nhập
// cbai11.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <conio.h>
#include <stdio.h>
#include <math.h>
void gaiptb2(float a,float b,float c)
{
float denta;
printf("\nGiai phuong trinh he so: a= %5.2f, b=%5.2f, c=%5.2f",a,b,c);
if (a==0&&b==0&&c==0) printf("\nPhuong trinh vo so nghiem");
else
if(a==0&&b==0&&c!=0) printf("\nPhuong trinh vo nghiem");
else
if(a==0&&b!=0) printf("\nPhuong trinh co ngiem %f",(-c)/b);
else
if (a!=0)
{
denta=b*b-4*a*c;
if (denta<0) printf("\nPhuong trinh vo nghiem");
if (denta==0) printf("\nPhuong trinh co nghiem kep x1=x2=%f",(-b)/(2*a));
if (denta>0) printf("\nPhuong trinh co 2 nghiem phan biet: x1 = %f, x2 = %f",(-b-sqrt(denta))/(2*a),(-
b+sqrt(denta))/(2*a));
}
}
int _tmain(int argc, _TCHAR* argv[])
{

float a,b,c;
printf("\nNhap he so a,b,c: ");
scanf("%f%f%f",&a,&b,&c);
gaiptb2(a,b,c);
getch();
return 0;
}
Câu 1.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? (sau đó xác định tam giác có tính chất gì: vuông, cân, vuông cân, đều, hay thường )
// cbai12.cpp : Defines the entry point for the console application.
// code Dung NV
#include "stdafx.h"
#include <conio.h>
#include <stdio.h>
#include <math.h>
int ktvuong(float a,float b,float c)
{
if(a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a) return 1; else return 0;
}
int ktcan(float a,float b,float c)
6
Ngôn Ngữ lập trình C - code Dũng NV 54k4CNTT
{
if (a==b||a==c||b==c) return 1; else return 0;
}
int ktdeu(float a,float b,float c)
{
if (a==b&&a==c&&b==c) return 1; else return 0;
}

int kttamgiac(float a,float b,float c)
{
if (a+b>c&&a+c>b&&b+c>a) return 1; else return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
float a,b,c;
printf("\nNhap 3 so thuc so a,b,c: ");
scanf("%f%f%f",&a,&b,&c);
printf("\nvoi 3 so thuc %f %f %f thi :",a,b,c);
if (kttamgiac(a,b,c))
{
if (ktcan(a,b,c)&&ktvuong(a,b,c)) printf("\nLap duoc tam giac vuong can");
else if (ktvuong(a,b,c)) printf("\nLap duoc tam giac vuong");
else if (ktdeu(a,b,c)) printf("\nLap duoc tam giac deu");
else if (ktcan(a,b,c)) printf("\nLap duoc tam giac can");
else printf("\nLap duoc tam giac thuong");
}
else printf("\nKhong phai 3 can cua 1 tam giac");
getch();
return 0;
}
Câu 1.13: Viết hàm đếm số từ trong một xâu ký tự chuẩn (xâu chuẩn theo nghĩa các từ trong xâu được ngăn cách bởi một
dấu cách trống). 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.
// bai13.cpp : Defines the entry point for the console application.
// code dung nv
#include "stdafx.h"
#include <conio.h>
#include <stdio.h>

#include <string.h>
#include <stdio.h>
#include <conio.h>
int sotu(char s[])
{
int i=0,n=0;
while (s[i]!='\0')
{
if (s[i]==' '&&s[i+1]!=' ') n++;
i++;
}
return n+1;
}
int _tmain(int argc, _TCHAR* argv[])
{
char s[100];
printf("Nhap vao mot xau ki tu: ");
gets(s);
printf("So tu trong xau vua nhap la: %d",sotu(s));
getch();
return 0;
}
Câu 1.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.
7
Ngôn Ngữ lập trình C - code Dũng NV 54k4CNTT
Dãy Fibonacci là dãy vô hạn các số tự nhiên bắt đầu bằng hai phần tử 1 và 1, các phần tử sau đó được thiết lập theo quy
tắc mỗi phần tử luôn bằng tổng hai phần tử trước nó. Công thức truy hồi của dãy Fibonacci là:
// cbai14.cpp : Defines the entry point for the console application.
// code Dung NV

#include "stdafx.h"
#include <conio.h>
#include <stdio.h>
int fibonaxi(int n)
{
int a=1,b=2,tg,i=3;
if (n==1||n==2) return 1;
while (i<=n)
{
tg=a+b;
a=b;
b=tg;
i++;
}
return b;
}
int _tmain(int argc, _TCHAR* argv[])
{
int n;
printf("\nNhap N= ");
scanf("%d",&n);
printf("so fibonaxi thu %5d la : %5d ",n,fibonaxi(n));
getch();
return 0;
}
Câu 1.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 trình nhập vào từ bàn phím hai
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ị của x và y trước và sau khi
đổi chỗ.
// cbai15.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
void doicho(float *x, float *y)
{
float tg;
tg = *x;
*x = *y;
*y = tg;
}
int _tmain(int argc, _TCHAR* argv[])
{
float a,b;
printf("Nhap so thuc a: a = "); scanf("%f",&a);
printf("Nhap so thuc b: b = "); scanf("%f",&b);
printf("\nTruoc khi doi cho.\n a = %5.2f\n b = %5.2f ",a,b);
doicho(&a,&b);
printf("\nSau khi doi cho.\n a = %5.2f\n b = %5.2f",a,b);
getch();
return 0;
}
8
Ngôn Ngữ lập trình C - code Dũng NV 54k4CNTT
Câu 1.16: Viết hàm tìm ước chung lớn nhất của 2 số nguyên dương. Viết chương trình nhập vào từ bàn phím 2 số nguyên
dương a 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
// cbai16.cpp : Defines the entry point for the console application.
// code Dung NV
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>

#include <math.h>
int ucln(int x, int y)
{
x = abs(x);
y = abs(y);
while (x!=y)
if (x>y) x=x-y; else y=y-x;
return x;
}
int _tmain(int argc, _TCHAR* argv[])
{
int a,b,c;
printf("Nhap a: a = "); scanf("%d",&a);
printf("Nhap b: b = "); scanf("%d",&b);
c = ucln(a,b);
printf("Uoc chung lon nhat cua 2 so %d va %d la: %d",a,b,c);
getch();
return 0;
}
Câu 1.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 màn hình độ dài của xâu vừa nhập?
// cbai17.cpp : Defines the entry point for the console application.
// code Dung NV
#include "stdafx.h"
#include <conio.h>
#include <stdio.h>
int dodaixau(char s[])
{
int i=0;
while (s[i]!='\0') i++;

return i;
}
int _tmain(int argc, _TCHAR* argv[])
{
char s[100];
printf("Nhap vao mot xau ki tu: ");
gets(s);
printf("Do dai xau vua nhap la: %d",dodaixau(s));
getch();
return 0;
}
Câu 1.18: Viết hàm đếm số chữ cái 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 trong xâu s có bao nhiêu chữ in hoa.
// cbai18.cpp : Defines the entry point for the console application.
// CODE DUNG NV
9
Ngôn Ngữ lập trình C - code Dũng NV 54k4CNTT
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <ctype.h>
int kthoa(char s[])
{
int i=0,dem=0;
while (s[i]!='\0')
{
if (s[i]>='A'&&s[i]<='Z') dem++;
i++;
}
return dem;

}
int _tmain(int argc, _TCHAR* argv[])
{
char s[100];
printf("Nhap vao mot xau ki tu: ");
gets(s);
printf("\nSo ky tu hoa la : %5d",kthoa(s));
getch();
return 0;
}
Câu 1.19: Viết hàm đổi các chữ cái in hoa củ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.
// cbai19.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <ctype.h>
void doi_kytu(char s[])
{
int i=0;
while (s[i]!='\0')
{
if (s[i]!=' ') s[i] = s[i]+'a'-'A';
i++;
}
s[i] = '\0';
}
int _tmain(int argc, _TCHAR* argv[])

{
char s[100];
printf("Nhap vao mot xau ki tu: ");
gets(s);
printf("\nXau ban dau: %s \n",s);
doi_kytu(s);
printf("\nXau sau khi chuyen doi: %s ",s);
getch();
10
Ngôn Ngữ lập trình C - code Dũng NV 54k4CNTT
return 0;
}
Câu 1.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ím hai 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 hai hệ số a, b vừa nhập.
// cbai20.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
void giaiptb1(float a, float b)
{
if (a!=0) printf("\nPhuong trinh co mot nghiem: x = %5.2f",-b/a);
else if (b==0) printf("\nPhuong trinh co vo so nghiem");
else printf("\nPhuong trinh vo nghiem.");
}
int _tmain(int argc, _TCHAR* argv[])
{
float a,b;
printf("\nNhap a,b : ");
scanf("%f%f",&a,&b);

giaiptb1(a,b);
getch();
return 0;
}
Câu 2.1: Viết chương trình nhập một mảng một chiều a gồm n số thực. Hãy tính và in ra màn hình trung bình cộng của
các phần tử trong mảng.
//code Dung NV
#include <stdio.h>
#include <conio.h>
#include <windows.h>
void nhapmang(float a[],int n)
{
int i;
for (i=0;i<n;i++)
{
printf("\nNhap phan tu thu %5d : ",i);
scanf("%f",&a[i]);
}
}
void xemmang(float a[],int n)
{
11
Ngôn Ngữ lập trình C - code Dũng NV 54k4CNTT
int i;
printf("\n");
for (i=0;i<n;i++)
printf(" %5.2f ",a[i]);
printf("\n");
}
float tbcong(float a[],int n)

{
int i;
float s=0;
for (i=0;i<n;i++) s+=a[i];
return s/n;
}
void main()
{
int n;
float a[500];
printf("\nnhap so phan tu trong mang : ");
scanf("%d",&n);
nhapmang(a,n);
xemmang(a,n);
printf("\ntrung binh cong cua mang: %5.3f ",tbcong(a,n));
getch();
}
Câu 2.2: Viết chương trình nhập một mảng một chiều n số nguyên. Sắp xếp mảng theo thứ tự tăng dần. In ra màn hình
mảng trước và sau khi sắp xếp
//code Dung NV
#include <stdio.h>
#include <conio.h>
void nhapmang(float a[],int n)
{
int i;
for (i=0;i<n;i++)
{
printf("\nNhap phan tu thu %5d : ",i);
12
Ngôn Ngữ lập trình C - code Dũng NV 54k4CNTT

scanf("%f",&a[i]);
}
}
void xemmang(float a[],int n)
{
int i;
printf("\n");
for (i=0;i<n;i++)
printf(" %5.2f ",a[i]);
printf("\n");
}
void sapxep2(float b[],int n)
{
int i,j;
float tg2;
for (i=0;i<n-1;i++)
for (j=i+1;j<n;j++)
if (b[i]>b[j])
{
tg2=b[i];
b[i]=b[j];
b[j]=tg2;
}
}
void main()
{
int n;
float a[100];
printf("\nnhap so phan tu trong mang : ");
scanf("%d",&n);

nhapmang(a,n);
xemmang(a,n);
sapxep2(a,n);
printf("\nMang sau khi sap xep");
xemmang(a,n);
13
Ngôn Ngữ lập trình C - code Dũng NV 54k4CNTT
getch();
}
Câu 2.3: Viết chương trình nhập một mảng một chiều n số thực. Sắp xếp mảng theo thứ tự giảm dần. In ra màn hình
mảng trước và sau khi sắp xếp
//code Dung NV
#include <stdio.h>
#include <conio.h>
void nhapmang(float a[],int n)
{
int i;
for (i=0;i<n;i++)
{
printf("\nNhap phan tu thu %5d : ",i);
scanf("%f",&a[i]);
}
}
void xemmang(float a[],int n)
{
int i;
printf("\n");
for (i=0;i<n;i++)
printf(" %5.2f ",a[i]);
printf("\n");

}
void sapxep2(float b[],int n)
{
int i,j;
float tg2;
for (i=0;i<n-1;i++)
for (j=i+1;j<n;j++)
if (b[i]<b[j])
{
tg2=b[i];
b[i]=b[j];
b[j]=tg2;
}
14
Ngôn Ngữ lập trình C - code Dũng NV 54k4CNTT
}
void main()
{
int n;
float a[100];
printf("\nnhap so phan tu trong mang : ");
scanf("%d",&n);
nhapmang(a,n);
xemmang(a,n);
sapxep2(a,n);
printf("\nMang sau khi sap xep");
xemmang(a,n);
getch();
}
Câu 2.4: Viết chương trình nhập một mảng một chiều n số thực. Đếm và thông báo ra màn hình trong mảng có bao nhiêu

phần tử âm.
//code Dung NV
#include <stdio.h>
#include <conio.h>
void nhapmang(float a[],int n)
{
int i;
for (i=0;i<n;i++)
{
printf("\nNhap phan tu thu %5d : ",i);
scanf("%f",&a[i]);
}
}
void xemmang(float a[],int n)
{
int i;
printf("\n");
for (i=0;i<n;i++)
printf(" %5.2f ",a[i]);
printf("\n");
15
Ngôn Ngữ lập trình C - code Dũng NV 54k4CNTT
}
int dem(float a[],int n)
{
int i,dem1=0;
for (i=0;i<n;i++) if (a[i]<0) dem1++;
return dem1;
}
void main()

{
int n;
float a[500];
printf("\nnhap so phan tu trong mang : ");
scanf("%d",&n);
nhapmang(a,n);
xemmang(a,n);
printf("\nSo phan tu am trong mang : %5d",dem(a,n));
getch();
}
Câu 2.5: Viết chương trình nhập một mảng một chiều n số thực. Đếm và thông báo ra màn hình trong mảng có bao nhiêu
phần tử dương.
//code Dung NV
#include <stdio.h>
#include <conio.h>
void nhapmang(float a[],int n)
{
int i;
for (i=0;i<n;i++)
{
printf("\nNhap phan tu thu %5d : ",i);
scanf("%f",&a[i]);
}
}
void xemmang(float a[],int n)
{
int i;
16
Ngôn Ngữ lập trình C - code Dũng NV 54k4CNTT
printf("\n");

for (i=0;i<n;i++)
printf(" %5.2f ",a[i]);
printf("\n");
}
int dem(float a[],int n)
{
int i,dem1=0;
for (i=0;i<n;i++) if (a[i]>0) dem1++;
return dem1;
}
void main()
{
int n;
float a[500];
printf("\nnhap so phan tu trong mang : ");
scanf("%d",&n);
nhapmang(a,n);
xemmang(a,n);
printf("\nSo phan tu duong trong mang : %5d",dem(a,n));
getch();
}
Câu 2.6: Viết chương trình nhập một mảng một chiều n số thực. Tìm và in ra màn hình giá trị lớn nhất của mảng
//code Dung NV
#include <stdio.h>
#include <conio.h>
void nhapmang(float a[],int n)
{
int i;
for (i=0;i<n;i++)
{

printf("\nNhap phan tu thu %5d : ",i);
scanf("%f",&a[i]);
}
17
Ngôn Ngữ lập trình C - code Dũng NV 54k4CNTT
}
void xemmang(float a[],int n)
{
int i;
printf("\n");
for (i=0;i<n;i++)
printf(" %5.2f ",a[i]);
printf("\n");
}
float max(float a[],int n)
{
int i;
float max1=a[0];
for (i=1;i<n;i++)
if (a[i]>max1)
max1=a[i];
return max1;
}
void main()
{
int n;
float a[500];
printf("\nnhap so phan tu trong mang : ");
scanf("%d",&n);
nhapmang(a,n);

xemmang(a,n);
printf("\nSo lon nhat trong mang : %5.2f ",max(a,n));
getch();
}
Câu 2.7: Viết chương trình nhập một mảng một chiều gồm n số nguyên. Tính và in ra màn hình tổng của các phần tử
trong mảng.
//code Dung NV
#include <stdio.h>
#include <conio.h>
void nhapmang(int a[],int n)
18
Ngôn Ngữ lập trình C - code Dũng NV 54k4CNTT
{
int i;
for (i=0;i<n;i++)
{
printf("\nNhap phan tu thu %5d : ",i);
scanf("%d",&a[i]);
}
}
void xemmang(int a[],int n)
{
int i;
printf("\n");
for (i=0;i<n;i++)
printf(" %5d ",a[i]);
printf("\n");
}
int tong(int a[],int n)
{

int i,s=0;
for (i=0;i<n;i++) s+=a[i];
return s;
}
void main()
{
int n;
int a[500];
printf("\nnhap so phan tu trong mang : ");
scanf("%d",&n);
nhapmang(a,n);
xemmang(a,n);
printf("\nTong cac phan tu trong mang : %5d",tong(a,n));
getch();
}
Câu 2.8: Viết chương trình nhập một mảng một chiều gồm n số nguyên dương. Tính và thông báo ra màn hình tổng các
phần tử có giá trị chẵn trong mảng.
19
Ngôn Ngữ lập trình C - code Dũng NV 54k4CNTT
//code Dung NV
#include <stdio.h>
#include <conio.h>
void nhapmang(int a[],int n)
{
int i;
for (i=0;i<n;i++)
{
printf("\nNhap phan tu thu %5d : ",i);
scanf("%d",&a[i]);
}

}
void xemmang(int a[],int n)
{
int i;
printf("\n");
for (i=0;i<n;i++)
printf(" %5d ",a[i]);
printf("\n");
}
int tongchan(int a[],int n)
{
int i,s=0;
for (i=0;i<n;i++) if (a[i]%2==0) s+=a[i];
return s;
}
void main()
{
int n;
int a[500];
printf("\nnhap so phan tu trong mang : ");
scanf("%d",&n);
nhapmang(a,n);
xemmang(a,n);
printf("\nTong cac phan tu chan trong mang : %5d",tongchan(a,n));
20
Ngôn Ngữ lập trình C - code Dũng NV 54k4CNTT
getch();
}
Câu 2.9: Viết chương trình nhập một mảng một chiều gồm n số nguyên dương. Tính và thông báo ra màn hình tổng các
phần tử có giá trị lẻ trong mảng.

//code Dung NV
#include <stdio.h>
#include <conio.h>
void nhapmang(int a[],int n)
{
int i;
for (i=0;i<n;i++)
{
printf("\nNhap phan tu thu %5d : ",i);
scanf("%d",&a[i]);
}
}
void xemmang(int a[],int n)
{
int i;
printf("\n");
for (i=0;i<n;i++)
printf(" %5d ",a[i]);
printf("\n");
}
int tongle(int a[],int n)
{
int i,s=0;
for (i=0;i<n;i++) if (a[i]%2!=0) s+=a[i];
return s;
}
void main()
{
int n;
int a[500];

printf("\nnhap so phan tu trong mang : ");
21
Ngôn Ngữ lập trình C - code Dũng NV 54k4CNTT
scanf("%d",&n);
nhapmang(a,n);
xemmang(a,n);
printf("\nTong cac phan tu le trong mang : %5d",tongle(a,n));
getch();
}
Câu 2.11: Viết chương nhập vào một mảng hai chiều a
mxn
gồm các số nguyên. Hãy in ra màn hình dạng chuyển vị của
ma trận a.
// code Dung NV
#include <stdio.h>
#include <conio.h>
void nhapmang(int a[][50],int x,int y)
{
int i,j;
for (i=0;i<x;i++)
for (j=0;j<y;j++)
{
printf("nhap phan tu [%d][%d] : ",i,j);
scanf("%d",&a[i][j]);
}
}
void inmang(int a[][50],int x,int y)
{
int i,j;
for (i=0;i<x;i++)

{
for (j=0;j<y;j++)
printf(" %5d ",a[i][j]);
printf("\n");
}
}
void inchuyenvi(int a[][50],int x,int y)
{
int i,j;
for (i=0;i<y;i++)
22
Ngôn Ngữ lập trình C - code Dũng NV 54k4CNTT
{
for (j=0;j<x;j++)
printf(" %5d ",a[j][i]);
printf("\n");
}
}
void main()
{
int m,n;
int a[50][50];
printf("nhap so hang ,so cot");
scanf("%d%d",&m,&n);
printf("nhap mang : \n");
nhapmang(a,m,n);
printf("\n in mang \n");
inmang(a,m,n);
printf("\nIn duoi dang ma tran chuyen vi\n");
inchuyenvi(a,m,n);

getch();
}
Câu 2.12: Viết chương trình nhập hai ma trận a
mxn
, b
mxn
gồm các số nguyên. Hãy tính và in ra màn hình ma trận c
mxn

tổng của hai ma trận trên.
//code Dung NV
#include <stdio.h>
#include <conio.h>
void nhapmang(int a[][50],int x,int y)
{
int i,j;
for (i=0;i<x;i++)
for (j=0;j<y;j++)
{
printf("nhap phan tu [%d][%d] : ",i,j);
scanf("%d",&a[i][j]);
}
}
23
Ngôn Ngữ lập trình C - code Dũng NV 54k4CNTT
void inmang(int a[][50],int x,int y)
{
int i,j;
for (i=0;i<x;i++)
{

for (j=0;j<y;j++)
printf(" %5d ",a[i][j]);
printf("\n");
}
}
void tongmatran(int a[][50],int b[][50],int c[][50],int x,int y)
{
int i,j;
for (i=0;i<x;i++)
for (j=0;j<y;j++)
c[i][j]=a[i][j]+b[i][j];
}
void main()
{
int m,n;
int a[50][50],b[50][50],c[50][50];
printf("nhap so hang : ");
scanf("%d",&m);
printf("nhap so cot : ");
scanf("%d",&n);
printf("nhap mang a : \n");
nhapmang(a,m,n);
printf("nhap mang b : \n");
nhapmang(b,m,n);
printf("\n mang a \n");
inmang(a,m,n);
printf("\n mang b \n");
inmang(b,m,n);
tongmatran(a,b,c,m,n);
printf("\n mang c \n");

24
Ngôn Ngữ lập trình C - code Dũng NV 54k4CNTT
inmang(c,m,n);
getch();
}
Câu 2.13: Viết chương trình nhập và xem mảng hai chiều a
nxn
, tính và in ra màn hình tổng các phần tử nằm trên đường
chéo chính.
//code Dung NV
#include <stdio.h>
#include <conio.h>
void nhapmang(int a[][50],int x)
{
int i,j;
for (i=0;i<x;i++)
for (j=0;j<x;j++)
{
printf("nhap phan tu [%d][%d] : ",i,j);
scanf("%d",&a[i][j]);
}
}
void inmang(int a[][50],int x)
{
int i,j;
for (i=0;i<x;i++)
{
for (j=0;j<x;j++)
printf(" %5d ",a[i][j]);
printf("\n");

}
}
int tongcc(int a[][50],int x)
{
int i,s=0;
for (i=0;i<x;i++) s+=a[i][i];
return s;
}
void main()
25

×