Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 12

ĐỀ CƯƠNG ÔN TẬP MÔN CƠ SỞ LẬP TRÌNH

Câu 1: Tìm lỗi đoạn chương trình sau:


#include”stdio.h”
int max(float a[], int n) // float thay bằng int, bỏ int n
{
M=a[0]; // khai báo max a[]=0
For(i=0;i<n;i++); // for không viết hoa, chưa khai báo I, I phải chạy từ 1,
cho i<10
If(a[i]>max) M=a[i]; //if không được viết hoa, đổi m thành
max
Return M; // không viết hoa return
}
main()
{
int b[100]={50,55,60,37,70},p;
p=max(b);
printf(“Gia tri lon nhat cua mang b:”,p); // thiếu %d, p đổi thành max(b)
}
Câu 2: Sửa lỗi và cho biết kết quả của chương trình sau (3 điểm)
#include<stdio.h>
int main()
{
int a = 20;
int b = 15;
int *p1, *p2;
p1 = a;
p2 = b; //thêm & vào a,b
b++;
int n = *p1 + *p2; // n = 36
printf("So n = %d", n);
return (0); // bỏ ()
}
Câu 3: Sửa lỗi và cho biết kết quả của chương trình sau (3 điểm)
#include <stdio.h>
#include <conio.h>
void tinhtoan(int &a, int &b )
{ while (a!=b)
if (a>b) a=a-b;
else b=b-a;
}
int main()
{ float a=50, b=15; phải đặt là int kiểu số nguyên
printf("Truoc khi goi ham a=%d, b=%d", a, b);
tinhtoan(a,b);
printf("\n Sau khi goi ham a=%d, b=%d", a, b);
return 0;
trước khi gọi: a=50, b=15
Sau khi gọi a= 5, b=5

}
Câu 4: Sửa lỗi và cho biết kết quả của chương trình sau (3 điểm)
#include <stdio.h>
#include <conio.h>
void tinhtoan(int &a, int &b )
{ while (a!=b)
if (a>b) a=a-b;
else b=b-a;
} trước khi gọi: a=10, b=15
Sau khi gọi a= 5, b=5
int main()
{ float a=10, b=15; int kiểu số nguyên
printf("Truoc khi goi ham a=%d, b=%d", a, b);
tinhtoan(a,b);
printf("\n Sau khi goi ham a=%d, b=%d", a, b);
return 0;
}
Câu 5: Sửa lỗi của chương trình sau (3 điểm)
#include”stdio.h”
void Inmt(int a[],int n)
{
for(i=0;i<n;i++) thiếu khai báo int cho i
printf(“%f”,a[i]); // %d
}
main()
{
float a[100]; thay float thành int
int n;
scanf(“%d”,n);// thiếu &
InMt(a);// thay inMt(a) thành inmt(a,n)
}
Câu 6: Sửa lỗi của chương trình sau (3 điểm)
#include”stdio.h”
#include <conio.h>
int main() // Kết quả = 8và 8
 {   int *x, y = 6;
 x =y; //&y
y++;
 *x+=1;
 printf("%d \t %d", *x, y);
 getch();
return 0;
 }
Câu 7: Sửa lỗi của chương trình sau (3 điểm)
#include”stdio.h”
bool kthh(int x)
{
S=0; // thiếu int
for(i=0;i<x;i++); // thiếu int, thừa ; cuối for, thiếu {}
if(x%i==0) S=S+i;
if(S=x) return true;
else return false;
}
main(){
int a[100]={ 3,6,2,20,56} //thiếu ;
for (int i=0;i<5;i++)
if(kthh(a)) printf( “%f”,a[i]); // thay if(a[i]), %d
}
Câu 8: Sửa lỗi của chương trình sau (3 điểm)
#include”stdio.h”
bool kthh(int x)
{
S=0; thiếu int
for(i=0;i<x;i++); // thiếu int i
if(x%i==0) S=S+i;
if(S=x) return true;
else return false;
} kết quả bằng 6
main(){
int a[100]={ 3,6,2,20,56}// thiếu;
for (int i=0;i<5;i++)
if(kthh(a)) printf( “%f”,a[i]); //thay bằng a[i]
}
Câu 9: Sửa lỗi của chương trình sau (3 điểm)
#include”stdio.h”
int Min(float a[], int n) // thay float = int
{
M=a[0]; // chưa khai báo int
For(i=0;i<n;i++); //for khong viết hoa, chưa khai báo int, bỏ ; cuối for,
thêm {}
If(a[i]>max) M=a[i];// if không viết hoa
Return M; //return không viết hoa
}
main(){
float b[100]={14,53,16,30,75},s;
s=min(b); //Min chứ không phải min
printf(“Gia tri nho nhat cua mang b:”,s); // thiếu %d
}
Câu 9: Sửa lỗi của chương trình sau (3 điểm)
#include”stdio.h”
bool kthh(int x)
{
S=0; thiếu int
for(i=0;i<x;i++); thiếu int
if(x%i==0) S=S+i;
if(S=x) return true;
else return false;
}
main(){
int a[100]={ 3,6,2,20,56}// thiếu ;
for (int i=0;i<5;i++)
if(kthh(a/*thiếu a[i]*/)) printf( “%f”,a[i]);
}

Câu 10: Sửa lỗi của chương trình sau (3 điểm)


#include”stdio.h”
bool ktcp( x); // bỏ ; khai báo int x
{
for(i=1;i<=n/2;i++) // thay n thành x khai báo int cho x
if(i*i==x) return true;
return false;
}
main()
{
int a;
scanf(“%f”,b); //thay b thành &a
if(ktcp(a)) printf(“a la so chinh phuong); // thiếu “
else Printf(“a khong la so chinh phuong”);//printf không viết hoa
}
Câu 11: Sửa lỗi của chương trình sau (3 điểm)
#include”stdio.h”
int ucln(int a, int b)
{
while(a!=b)
{
if(a>b) a=a-b;
else b=b-a;
}
return a;
}
main()
{
float a,b;
scanf(“%d%d”,a,b);
printf(“Uoc chung lon nhat cua 2 so:”,uclc(a,b); biến ucln chứ k phải uclc, thêm )
}
Câu 12: Sửa lỗi của chương trình sau (3 điểm)
#include”stdio.h”
void sapxep(int a[],int n)
{
for(i=0;i<n-1;i++) // thiếu int cho i
for(j=i+1;j<n;j++)// thiếu int cho j
{
Float tem=a[i]; // không được viết hoa float
a[i]=a[j];
a[j]=temp; //tem not temp
}
// thiếu 1 {
main()
{
float a[100]={4, 5.6, 7, 9, 3.5};
Sapxep(a); // sapxep chứ k phải Sapxep
}
Câu 13: Sửa lỗi của chương trình sau (3 điểm)
#include”stdio.h”
void Inmt(int a[],int n)
{
for(i=0;i<n;i++) // chưa khai báo int cho i
printf(“%f”,a[i]); // %d chứ k phải %f,
}
main()
{
float a[100]; // đổi float thành int
int n;
// thêm print(“nhap N”);
scanf(“%d”,n); // n đổi thành &n
InMt(a); // sai tên hàm
}
Câu 14: Sửa lỗi của chương trình sau (3 điểm)
#include”stdio.h”
void Inmt(int a[],int n)
{
for(i=0;i<n;i++) //chưa khai báo int cho i
printf(“%f”,a[i]);
}
main()
{
float a[100]; // float đổi thành int
int n;
scanf(“%d”,n);
InMt(a); //sai tên hàm, thiếu n phải là Inmt(a, n)
}
Câu 15: Sửa lỗi của chương trình sau (3 điểm)
#include”stdio.h”
void nhapmt(int a[],int n)
{
for(i=0;i<n;i++) // chưa khai báo int cho i
scanf(“%d”,a[i]);
}
main()
{
float a[100]; //float đổi thành int
int n;
scanf(“%d”,n);
Nhapmt(a); // sai tên hàm
}
Câu 16: Tìm giá trị a, b khi thực hiện đoạn code sau (3 điểm)
int a, b=10,*c;
b++; //kết quả = 11 ,11
c=&b;
a=2*b-*c;
Câu 17: Tìm giá trị a, b khi thực hiện đoạn code sau (3 điểm)
int a=30, b=10;
while (a>b){ //kết quả = 10 20
b=b*2;
a=a-b;}
Câu 18: Tìm giá trị a, b khi thực hiện đoạn code sau (3 điểm)
int a=30, b=10;
do { //kết quả bằng 13 17
b=b+7;
a=a-b;}while (a>b) //while là biểu thức điều kiện
Câu 19: Tìm giá trị “p” khi thực hiện đoạn code sau (3 điểm)
int p =1,i;
for(i=5;i<10;i=i+2) //kết quả bằng 8
p=p*2;
Câu 20: Tìm giá trị “p” khi thực hiện đoạn code sau (3 điểm)
int p =1,i;
for(i=5;i<10;i=i+2) //kết quả bằng 8
p=p*2;
Câu 21: Tìm giá trị “p” khi thực hiện đoạn code sau (3 điểm)
int p =0,i;
for(i=5;i<10;i++)
if(i%2==1) //kết quả bằng 3
p++;
Câu 22: Tìm giá trị “c,d” khi thực hiện đoạn code sau (3 điểm)
int a=4,b=20,c=0,d;
while (2*a<b){ a++;
b=b-2; //kết quả bằng 18, 21
c=c+a;
d=a+b; }
Câu 23: Tìm giá trị “p” khi thực hiện đoạn code sau (3 điểm)
int p =0,i;
for(i=8;i<20;i=i+2) //kết quả bằng 2
if(i%3==0)
p++;
Câu 24: Tìm giá trị “c” khi thực hiện đoạn code sau (3 điểm)
int a=4,b=20,c=0;
while (a<b){
a=a+2;
b=b-3; //kết quả bằng 12
c=c+3;
}
Câu 25: Tìm giá trị a, b khi thực hiện đoạn code sau (3 điểm)
#include<stdio.h>
#include<math.h>
void xuat (int a[])
{
for(int i=0;i<6;i++)
printf("\t%d", a[i]);
}
int KT ( int n)
{ int x=sqrt(n);
if (x*x==n)
return 1;
return 0; // có 2 số chính phương
}
int main()
{
int d=0, a[10]={1, 2, 3, 4, 5, 6};
xuat(a);
for (int i=0;i<6;i++)
if (KT(a[i])==1) d++;
printf("\n Co %d so chinh phuong trong day so tren", d);
return 0;
}
Câu 27: Tìm giá trị a, b khi thực hiện đoạn code sau (3 điểm)
int a=30, b=10;
do { // kết quả bằng 13, 17
b=b+7;
a=a-b;}while (a>b)
Câu 28: Cho biết kết quả khi thực hiện chương trình sau: (3 điểm)
#include<stdio.h>
void xuat(int a[]);
float TB(int a[]);
int main()
{ int a[10]={5, 6, 7, 8, 9,10};
xuat(a);
printf("\n TB cac so le la: %.2f",TB(a));
return 0;
}
void xuat (int a[])
{
for(int i=0;i<6;i++)
printf("\t%d", a[i]);
} // trung bình các số lẻ là 7.00
float TB ( int a[])
{
int s=0,d=0;
for (int i=0;i<6; i++)
if (a[i]%2!=0)
{
s=s +a[i];
d++;
}
return (float)s/d;
}
Câu 29: Cho biết kết quả khi thực hiện chương trình sau: (3 điểm)
#include<stdio.h>
void xuat(int a[]);
int Dem(int a[]);
int main()
{
int a[10]={8, 6, 7, 8, 5, 8};
xuat(a);
printf("\n Trong day so tren co %d so co gia tri lon nhat",Dem(a));
return 0;
}
void xuat (int a[])
{
for(int i=0;i<6;i++)
printf("\t%d", a[i]); // có 3 giá trị lớn nhất
}
int Dem( int a[])
{
int d=0, max=a[0];
for (int i=0;i<6; i++)
if (a[i]>max) max=a[i];
for (int i=0;i<6;i++)
if (a[i]==max) d++;
return d;
}

Câu 30: Cho biết kết quả khi thực hiện chương trình sau (3 điểm)
#include<stdio.h>
#include<stdio.h>
void xuat (int a[])
{ for(int i=0;i<5;i++)
printf("%5d", a[i]);
}
void Gopmang(int a[], int b[], int c[])
{
int nc=0;
for (int i=0; i<5;i++)
{ c[nc]=a[i]; nc++; }
for (int i=0; i<5;i++)
{ c[nc]=b[i]; nc++; }
for(int i=0;i<nc;i++)
printf("\%5d", c[i]);
}
Câu 31:
Nhà hàng Máy tinh cần lưu một số thông tin như sau:
- Tên máy tính
- Số lượng
- Đơn giá
- Thành tiền =số lượng *Đơn giá
Yêu cầu
1. Xây dựng kiểu cấu trúc lưu trữ thông tin cho nhà hàng máy tính,,,
2. Nhập thông tin cho n món ăn trên....
3. Tìm và in ra thông tin những máy tính có tên “HP”
4. Đếm số đầu máy tính có số lượng >50....
5. Tìm và in ra thông tin máy tính có số lượng lớn nhất
6. Sắp xếp các máy tính theo thứ tự giảm dần của thành tiền.
Sau đó in ra màn hình
7. Tính tổng thành tiền của những máy tính có số lượng <50...

You might also like