Đề cương ôn tập môn Lập trình C, Đại học Công Nghiệp Hà Nội. Gồm 63 câu hỏi và code mẫu (Trong đề thi chắc chắn có). Gồm có các thuật toán: Tìm kiếm, tính toán, Sắp xếp, Chèn, Tách/Ghép mảng. Bao gồm cả file code.c đính kèm.
Trang 11
CÂU HỎI ÔN TẬP MÔN KT LTN
Viết hàm NHẬP/XUẤT vào mảng có tối đa 50 phần tử nguyên Viết chương trình thực hiện các công việc sau dùng hàm và đưa kết quả tính toán ra màn hình:
TÌM KIẾM, TÍNH TOÁN
1 Tìm phần tử chẵn nhỏ nhất trong mảng 2 Tìm phần tử nguyên tố lớn nhất trong mảng 3 Tìm phần tử chính phương lớn nhất trong mảng 4 Tìm phần tử chính phương chẵn lớn nhất
5 Tìm vị trí các phần tử dương bé nhất trong mảng 6 Tìm vị trí các phần tử chẵn lớn nhất trong mảng
7 Tìm vị trí các phần tử chính phương chẵn bé nhất trong mảng 8 Tìm vị trí các phần tử chính phương chẵn lớn nhất trong mảng 9 Tìm vị trí các phần tử chính phương lớn nhất trong mảng 10 Tìm vị trí các phần tử chính phương bé nhất trong mảng 11 Tìm vị trí phần tử nguyên tố lẻ nhỏ nhất đầu tiên
12 Tìm vị trí các phần tử nguyên tố lớn nhất trong mảng 13 Tìm vị trí phần tử chính phương lớn nhất cuối cùng 14 Tìm vị trí các phần tử nguyên tố lẻ trong mảng
15 Đếm phần tử nguyên tố trong mảng các phần tử nguyên 16 Đếm phần tử nguyên tố lớn nhất của mảng
17 Đếm các phần tử chính phương
18 Đếm các phần tử nguyên tố trong mảng 19 Tính tổng các phần tử nguyên tố trong mảng
20 Tính trung bình cộng các phần tử nguyên tố trong mảng 21 Tính trung bình cộng các phần tử chính phương trong mảng 22 Tính tổng các phần tử chính phương trong mảng
Trang 237 Chèn phần tử nguyên tố nhỏ nhất vào vị trí k bất kỳ trong mảng
38 Chèn phần tử chính phương bé nhất trong mảng vào vị trí cuối cùng của mảng
39 Chèn phần tử chính phương bé nhất vào vị trí phần tử nguyên tố cuối cùng của mảng
40 Viết hàm tìm phần tử chẵn lớn nhất trong mảng các phần tử nguyên và chèn phần tử đó vào vị trí đầu tiên của mảng
41 Chèn phần tử chính phương nhỏ nhất vào vị trí phần tử nguyên tố cuối cùng trong mảng 42 Chèn phần tử x vào vị trí k trong mảng với x, k nhập từ bàn phím
XÓA PHẦN TỬ
43 Xóa phần tử nhỏ nhất trong mảng 44 Xóa phần tử lớn nhất trong mảng 45 Xóa tất cả các phần tử âm trong mảng 46 Xóa tất cả các phần tử dương trong mảng
47 Xóa tất cả các phần tử nguyên tố trong mảng các phần tử nguyên 48 Xóa tất cả các phần tử chính phương trong mảng
49 Xóa tất cả các phần tử nhỏ hơn x trong mảng với x nhập vào từ bàn phím 50 Xóa phần tử chính phương chẵn lớn nhất trong mảng
51 Xóa các phần tử chính phương nhỏ nhất trong mảng 52 Xóa các phần tử dương nhỏ nhất trong mảng
53 Xóa các phần tử dương lớn nhất trong mảng 54 Xóa các phần tử âm nhỏ nhất trong mảng 55 Xóa các phần tử âm lớn nhất trong mảng 56 Xóa phần tử lẻ lớn nhất của mảng
57 Xóa phần tử lẻ nhỏ nhất của mảng 58 Xóa phần tử chẵn lớn nhất của mảng 59 Xóa phần tử chẵn nhỏ nhất của mảng TÁCH/GHÉP MẢNG
60 Tách mảng thành hai mảng chứa các phần tử nguyên tố và mảng gồm các phần tử không nguyên tố
61 Tách mảng thành hai mảng chứa các phần tử chẵn và mảng chứa các phần tử lẻ
62 Tách mảng thành mảng gồm các phần tử chính phương và mảng các phần tử không chính phương
63 Tách mảng thành các mảng chứa các phần tử âm và mảng chứa các phần tử dương
Trang 3#include<stdio.h>#include<conio.h>#include<stdlib.h>void Nhap(int*a, int n){
int i;
printf("\n Nhap vao phan tu thu a[%d]= ",i);scanf("%d",(a+i));
void Xuat(int*a, int n){
int i;
printf("\t %d",*(a+i));}
/* -*///1: Tim phan tu chan nho nhat
void Min_chan(int*a,int n){
int i, min=0;for(i=0;i<n;i++)if(*(a+i)%2==0)min=*(a+i);if(min==0)
printf("\n Khong co so chan trong mang");else
printf("\n So chan min trong mang la: ");for(i=0;i<n;i++)
/* -*///2: Tim phan tu nguyen to lon nhat
int kt_nt(int n){
int i,dem=0;for(i=1;i<=n;i++)if(n%i==0)
dem++;if(dem==2)return 1;return 0;}
void Max_nt(int*a, int n){
int i, max;for(i=0;i<n;i++)if(kt_nt(*(a+i))==1)max=*(a+i);
printf("\n Khong co so nguyen to trong mang");else
Trang 4printf("\n Max nt la: %d", max);}
/* -*///3: Tim chinh phuong lon nhat
int kt_cp(int n){
int i;
return 1;return 0;}
void Max_cp(int*a, int n){
int i, max=0;for(i=0;i<n;i++)if(kt_cp(*(a+i))==1)max=*(a+i);
printf("\n Max cp la: %d",max);}
/* -*///4: Tim phan tu cp chan lon nhat
void Max_cpc(int*a, int n){
int i, max=0;for(i=0;i<n;i++)
printf("\n Cp chan max la: %d", max);}
}
/* -*///5: Tim vi tri phan tu duong be nhat
int Min_duong(int*a, int n){
int i, min=0;for(i=0;i<n;i++)if(*(a+i)>0)min=*(a+i);for(i=0;i<n;i++)
if(*(a+i)>0&&*(a+i)<min)
Trang 5min=*(a+i);return min;}
void vt_minduong(int*a, int n){
int i, min;
printf("\n Ko co so duong trong mang");else{
printf("\n Vi tri so min duong la: ");for(i=0;i<n;i++)
if(*(a+i)==min)printf("\t %d",i);}
/* -*///6: Tim vi tri cac phan tu chan lon nhat
int max_chan(int*a, int n){
int i, max=0;for(i=0;i<n;i++)if(*(a+i)%2==0)max=*(a+i);for(i=0;i<n;i++)
return max;}
void vt_maxchan(int*a,int n){
int i, max;
printf("\n Ko co phan tu chan trong mang");else{
printf("\n Vi tri phan tu chan max la:");for(i=0;i<n;i++)
if(*(a+i)==max)printf("\t %d",i);}
/* -*///7: Tim vi tri chinh phuong chan min
int min_cpc(int*a, int n){
int i,min=0;for(i=0;i<n;i++)if(kt_cp(*(a+i))==1)min=*(a+i);
return min;}
void vt_mincpc(int*a, int n){
int i,min;
Trang 6printf("\n Ko co so cp chan trong mang");else{
printf("\n Vi tri so cp chan min la");for(i=0;i<n;i++)
if(*(a+i)==min)printf("\t %d",i);}
/* -*///8: Tim vt phan tu cp chan max
int max_cpc(int*a, int n){
int i,max;
return max;}
void vt_maxcpc(int*a, int n){
int i,max;
printf("\n Ko cp so cp chan trong mang");else{
printf("\n Vi tri phan tu cp chan max la");for(i=0;i<n;i++)
if(*(a+i)==max)printf("\t %d",i);}
/* -*///9: Tim vi tri cac phan tu cp lon nhat trong mang
int max_cp(int*a, int n){
int i,max=0;for(i=0;i<n;i++)if(kt_cp(*(a+i))==1)max=*(a+i);
return max;}
void vt_maxcp(int*a, int n){
int i,max;
printf("\n Ko co so cp trong mang");else{
printf("\n Vi tri so cp max la");
Trang 7for(i=0;i<n;i++)if(*(a+i)==max)printf("\t %d",i);}
/* -*///10: Vi tri phan tu cp min
int min_cp(int*a, int n){
int i,min=0;for(i=0;i<n;i++)if(kt_cp(*(a+i))==1)min=*(a+i);
return min;}
void vt_mincp(int*a, int n){
int i,min;
printf("\n Ko co so cp trong mang");else{
printf("\n Vi tri so cp min la: ");for(i=0;i<n;i++)
if(*(a+i)==min)printf("\t %d",i);}
/* -*///11: Tim vi tri phan tu nguyen to le min dau tien
int min_ntl(int*a, int n){
int i,min=0;for(i=0;i<n;i++)
return min;}
void vt_minntl_dau(int*a, int n){
int i,min,vt=0;min=min_ntl(a,n);if(min==0)
printf("\n Ko co so nt le trong mang");else{
printf("\n Vi tri min nt le dau tien la: %d",vt);}
/* -*///12: Tim vi tri cac phan tu nguyen to max
Trang 8int max_nt(int*a, int n){
int i,max=0;for(i=0;i<n;i++)if(kt_nt(*(a+i))==1)max=*(a+i);
return max;}
void vt_maxnt(int*a, int n){
int i, max;max=max_nt(a,n);if(max==0)
printf("\n Ko co so nguyen to trong mang ");else{
printf("\n Vi tri nguyen to max la: ");for(i=0;i<n;i++)
if(*(a+i)==max)printf("\t %d",i);}
/* -*///13: Tim vi tri cac phan tu cp max cuoi cung
void vt_maxcp_cuoi(int*a, int n){
int i,max,vt=0;max=max_cp(a,n);if(max==0)
printf("\n Ko co so cp trong mang ");else{
printf("\n Vi tri cp max cuoi cung la: %d",vt);}
/* -*///14: Tim vi tri cac phan tu nt le
void vt_ntl(int*a, int n){
int i,dem=0;for(i=0;i<n;i++)
/* -*///15: Dem phan tu nguyen to trong mang
void Dem_nt(int*a, int n)
Trang 9int i,dem=0;for(i=0;i<n;i++)if(kt_nt(*(a+i))==1)dem++;
printf("\n Dem phan tu nguyen to trong mang la: %d",dem);}
/* -*///16: Dem phan tu nguyen to max trong mang
void Dem_ntmax(int*a,int n){
int i,dem=0,max;max=max_nt(a,n);if(max==0)
printf("\n Ko co so nguyen to trong mang");else{
printf("\n Dem so nguyen to max la %d",dem);}
/* -*///17: Dem phan tu cp trong mang
void Dem_cp(int*a, int n){
int i,dem=0;for(i=0;i<n;i++)if(kt_cp(*(a+i))==1)dem++;
printf("\n Dem phan tu cp trong mang la: %d",dem);}
/* -*///18: Giong bai 15
/* -*///19: Tinh tong cac phan tu nguyen to trong mang
void Tong_nt(int*a, int n){
int i,tong=0;for(i=0;i<n;i++)if(kt_nt(*(a+i))==1)tong=tong+*(a+i);
printf("\n Tong cac so nguyen to la %d",tong);}
/* -*///20: Tinh trung binh cong cac phan tu nt trong mang
void tbc_nt(int*a, int n){
int i,dem,tong;float tbc;dem=0;tong=0;for(i=0;i<n;i++)if(kt_nt(*(a+i))==1){
tong=tong+*(a+i);}
Trang 10printf("\n Ko co so nguyen to trong mang");else{
printf("\n TBC cac so nguyen to la %f",tbc);}
/* -*///21: Tinh trung binh cong cac phan tu cp trong mang
void tbc_cp(int*a, int n){
int i,dem,tong;float tbc;dem=0;tong=0;for(i=0;i<n;i++)if(kt_cp(*(a+i))==1){
printf("\n Ko co so cp trong mang");else{
printf("\n TBC so cp la: %f",tbc);}
/* -*///22: Tinh tong cac phan tu cp trong mang
void Tong_cp(int*a, int n){
int i,tong=0;for(i=0;i<n;i++)if(kt_cp(*(a+i))==1)tong=tong+*(a+i);
printf("\n Tong cac so cp la %d",tong);}
int main(){
int *a,n;do
printf("\n Mang vua nhap la: ");Xuat(a,n);
printf("\n");}
Trang 11#include<stdio.h>#include<conio.h>#include<stdlib.h>void Nhap(int*a, int n){
int i;
printf("\n Nhap vao phan tu thu a[%d]= ",i);scanf("%d",(a+i));
void Xuat(int*a, int n){
int i;
printf("\t %d",*(a+i));}
/* -*///23: Sap xep mang tang dan am, giam dan duong
void Hoanvi(int*a,int*b){
int tam;tam=*a;*a=*b;*b=tam;}
void sapxep23(int*a, int n){
int i,j;
//sap xep am tangfor(i=0;i<n-1;i++)for(j=i+1;j<n;j++)
//sap xep duong giamfor(i=0;i<n-1;i++)for(j=i+1;j<n;j++)
/* -*///24: Sap xep mang theo thu tu tang dan
void sapxep24(int*a, int n){
int i,j;
/* -*///25: Sap xep mang theo thu tu tang dan nt, giam dan ko nt
int kt_nt(int n){
int i,dem=0;for(i=1;i<=n;i++)if(n%i==0)
dem++;
Trang 12if(dem==2)return 1;return 0;}
void sapxep25(int*a, int n){
int i,j;
/* -*///26: Sap xep mang theo thu tu giam dan nt, tang dan ko nt
void sapxep26(int*a, int n){
int i,j;
/* -*///27: Sap xep nt ve dau mang giam dan, ko nt ve cuoi mang tang danvoid sapxep27(int*a, int n)
int i,j;
/* -*///28: Sap xep am ve dau mang, duong ve cuoi mang
void sapxep28(int*a, int n){
int i,j;
/* -*/
Trang 13//29: Sap xep chan ben phai mang, le ben trai mangvoid sapxep29(int*a, int n)
int i,j;
/* -*///30: Sap xep giam dan chan, tang dan le
void sapxep30(int*a, int n){
int i,j;
/* -*///31: Sap xep cp ve dau mang theo tt giam dan
int kt_cp(int n){
int i;
return 1;return 0;}
void sapxep31(int*a, int n){
int i,j;
/* -*///32: Sap xep tang dan cp
void sapxep32(int*a, int n){
int i,j;
/* -*///33: Sap xep cp tang dan dau mang, ko cp giam dan cuoi mang
void sapxep33(int*a, int n){
Trang 14int i,j;
int main(){
int *a,n;do
printf("\n Mang vua nhap la: ");Xuat(a,n);
printf("\n Mang sau khi sap xep la: ");Xuat(a,n);
free(a);printf("\n");}
Trang 15#include<stdio.h>#include<conio.h>#include<stdlib.h>void Nhap(int*a, int n){
int i;
printf("\n Nhap vao phan tu thu %d la ",i);scanf("%d",(a+i));
void Xuat(int*a, int n){
int i;
printf("\t %d",*(a+i));}
/* -*///34: Chen phan tu nguyen to dau tien vao vi tri k
int kt_nt(int n){
int i,dem=0;for(i=1;i<=n;i++)if(n%i==0)
dem++;if(dem==2)return 1;return 0;}
int nt_dau(int*a, int n){
int i,ntdau=0;for(i=n-1;i>=0;i )if(kt_nt(*(a+i))==1){
return ntdau;}
void Chen_X(int*a,int *n,int vt,int X){
int i;
int main(){
int *a,n,k;do
Trang 16printf("\n Mang vua nhap la");Xuat(a,n);
printf("\n Nt dau la %d",nt_dau(a,n));do
/* -*///35: Chen nto cuoi cung vao vi tri phan tu nho nhat dau tien cua mangint nt_cuoi(int*a, int n)
int i,ntcuoi=0;for(i=0;i<n;i++)if(kt_nt(*(a+i))==1)ntcuoi=*(a+i);
return ntcuoi;}
int vt_minmang(int*a, int n){
int i,vt=0,min;min=*(a+0);for(i=0;i<n;i++)if(*(a+i)<min){
return vt;}
printf("\n Ko co so nguyen to trong mang");else{
Chen_X(a,&n,vt_minmang(a,n),X);printf("\n Mang sau khi chen la: ");Xuat(a,n);
/* -*///36: Chen nto max vao vi tri dau tien cua mang
int max_nt(int*a, int n){
int i,max=0;for(i=0;i<n;i++)if(kt_nt(*(a+i))==1)max=*(a+i);
if(kt_nt(*(a+i))==1&&*(a+i)>max)
Trang 17max=*(a+i);return max;}
printf("\n Ko co so nguyen to trong mang");else{
int min_nt(int*a, int n){
int i,min=0;for(i=0;i<n;i++)if(kt_nt(*(a+i))==1)min=*(a+i);
return min;}
printf("\n Ko co so nguyen to trong mang");else{
printf("\n Nhap vao vi tri k= ");scanf("%d",&k);
printf("\n Mang sau khi chen la: ");Xuat(a,n);
/* -*///38: Chen min cp vao vi tri cuoi cung cua mang
int kt_cp(int n){
int i;
return 1;return 0;}
int min_cp(int*a, int n){
int i,min=0;for(i=0;i<n;i++)if(kt_cp(*(a+i))==1)min=*(a+i);
if(kt_cp(*(a+i))==1&&*(a+i)<min)
Trang 18min=*(a+i);return min;}
printf("\n Ko co so cp trong mang");else{
int vt_ntcuoi(int*a, int n){
int i,vt=0;for(i=0;i<n;i++)if(kt_nt(*(a+i))==1)vt=i;
return vt;}
printf("\n Ko co so nt trong mang");else{
int chan_max(int*a, int n){
int i,max=0;for(i=0;i<n;i++)if(*(a+i)%2==0)max=*(a+i);for(i=0;i<n;i++)
return max;}
printf("\n Ko co so chan trong mang");else{
printf("\n Mang sau khi chen la: ");Xuat(a,n);
/* -*///41: Giong cau 39
/* -*/
Trang 19//42: Chen phan tu x vao vi tri k, nhap tu ban phim/*
int *a,n,k,X;do
printf("\n Mang vua nhap la");Xuat(a,n);
printf("\n ");}
Trang 20void Nhap(int*a, int n){
int i;
printf("\n Nhap vao phan tu thu a[%d]=", i);scanf("%d", (a+i));
void Xuat(int*a, int n){
int i;
printf("\t %d", *(a+i));}
/* _*///Bai 43: Xoa phan tu nho nhat trong mang
void xoa_vt(int*a, int*n, int vt){
int i;
int so_min(int*a, int n){
int i, min;min=*(a+0);for(i=0;i<n;i++)if(*(a+i)<min)min=*(a+i);return min;}
/* printf("\n So nho nhat trong mang la: %d",so_min(a,n));Xoa_X(a,&n,so_min(a,n));
printf("\n Mang vua xoa la: ");Xuat(a,n); */
/* _*///Bai 44: Xoa phan tu lon nhat trong mang
int so_max(int*a, int n){
int i, max;max=*(a+0);for(i=0;i<n;i++)if(*(a+i)>max)
Trang 21max=*(a+i);return max;}
/* _*///bai 45: Xoa tat ca cac phan tu am trong mang
void xoa_am(int*a, int* n){
int i;
/* xoa_am(a,&n);
printf("\n Mang vua xoa la: ");Xuat(a,n); */
/* _*///Bai 46: Xoa tat ca cac phan tu duong
void xoa_duong(int*a, int*n){
int i;
/* _*///Bai 47: Xoa tat ca cac phan tu nguyen to
int kt_nt(int n){
int i, dem=0;for(i=1;i<=n; i++)if(n%i==0)
for(i=1;i<=n; i++)if(dem==2)
return 1; return 0;}
void xoa_nt(int*a, int*n){
int i;
/* _*/// Bai 48: Xoa tat ca cac phan tu cp trong mang
int kt_cp(int n){
int i;
for(i=1;i<=n;i++)if(i*i==n)
Trang 22return 1;return 0;}
void xoa_cp(int*a, int*n){
int i;
/* _*///Bai 49: Xoa tat ca cac phan tu nho hon x, x nhap tu ban phim
void xoa_nho_x(int*a, int*n, int x){
int i;
/* _*///Bai 50: Xoa phan tu cp chan lon nhat trong mang
int cpc_max(int*a, int n){
int i,max;
return max;}
/* _*///Bai 51: Xoa cp min
int cp_min(int*a, int n){
int i, min=0;for(i=0;i<n;i++)if(kt_cp(*(a+i))==1)min=*(a+i);
return min;}
int main(){
int *a, n;do
printf("\n Nhap vao so phan tu cua mang la: ");scanf("%d", &n);