You are on page 1of 4

TRƯỜNG ĐH SƯ PHẠM KỸ THUẬT TP.

HCM ĐỀ KT MÔN: LẬP TRÌNH C


KHOA ĐIỆN – ĐIỆN TỬ Học kỳ II Năm học 2022 – 2023
BỘ MÔN KT MÁY TÍNH – VIỄN THÔNG Đề số 323 Đề có 4 trang
Thời gian: 65 phút
Được sử dụng 01 tờ A4 viết tay
Họ và tên: ………………………………...
MSSV : ………………………………...

Câu 1: Cho biết kết quả hiển thị các đoạn chương trình độc lập sau (giả sử các thư viện đã được khai
báo): (5.0 điểm)
int main(){ void main() {
int a=2; int i, n=5, factorial = 1;
for (int i=0; i<4; i++) { for (i = 1; i <= n; i++)
if(i==a) continue ; factorial = factorial * i;
a++; } printf("Factorial is: %d",factorial);
printf ("a=%d,i= %d",a,i); } }
int main(){ int main(){
int n = 6; int j;
for (int i = 1; i <=n; i++) for (int i = 1; i < 4; i++)
if (n%i == 0) j = i;
printf("%3d", i); printf("%3d", j);
}
}
int main(void){ int func(int b){
int a[3][3] = { {4,2},{3},{3,1}}; int a=2;
for (int i = 0; i <= 3; i++){ return ++a+b;
for (int j = 0; j <= 3; j++){ }
printf("%d\t", a[i][j]); void main(void){
if (j == 3) int b=0,i;
printf("\n"); } for (i = 4; i>0; i-=2)
} b+=func(i);
} printf("%d",b); }
int Ham(int a, int b){ #define s "Lap trinh C"
return a + 2 * b; void main(void){
} char c[] = "DH SPKT TPHCM";
int main(void){ int i;
int n = 3, m = 5; for (i = 0; c[i] != '\0'; i += 1)
for (int i = 1; i < 3; i++) printf("%c", c[i]);
printf("%3d\n", Ham(n,m)+i); printf("\n%s", s);
}
}
int main(void){ int F1(int x){
int A[5] = { 1, 4, 3, 8, 1 }; x = ++x + 3;
int j,a,b; return x;
for (int i = 0; i < 4; i++){ }
j = i + 1; void main (void){
A[i] = A[j]; int x = 5, y;
} y = F1(x);
printf("%d%d", A[3], A[2]);
printf("%d%d",x,y);}
}
int main(){
int a[] = { 3, 0, 1, 7 };
int b = a[3]/a[0] + a[2];
switch (b){
case 0: printf("%d",a[0]); break;
case 1: printf("%d",a[1]); break;
case 2: printf("%d",a[2]); break;
case 3: printf("%d", a[3]);
break;
default:
printf("%d%d%d%d",a[0],a[3]);
}}

Câu 2: Tìm và sửa lỗi đoạn chương trình sau: (1.5 điểm)

int ham (int a){ .... ..................................................................................


for (j = 1; j <= a; j++)
.... ..................................................................................
printf("%c", "*");
} .... ..................................................................................
int main(void){ .... ..................................................................................
int n[5] = { 9, 3, 5, 4, 1, };
int i; .... ..................................................................................
for (i = 0; i < 5; i+1) { .... ..................................................................................
printf("%5d", i, n[i]);
.... ..................................................................................
ham(n[i]);
printf("\n"); .... ..................................................................................
} .... ..................................................................................
}

Câu 3. (3.5 điểm) Viết 01 chương trình C thực hiện các yêu cầu sau:

Định nghĩa hàm sắp xếp giá trị phần tử mảng từ nhỏ đến lớn, đối số cấp cho hàm là mảng, số
phần tử của mảng (0.75đ)
Định nghĩa hàm tính giá trị trung bình của mảng, hàm trả về trung bình các phần tử của mảng
(0.5đ)
Viết hàm main cho nhập vào n là số phần tử mảng, điều kiện 0<n<50, nếu không thỏa cho nhập
lại đến khi thỏa. Nhập và xuất giá trị cho mảng (0.75đ)
Tính và in ra giá trị trung bình của mảng (sử dụng hàm). (0.25đ).
Tìm và in ra có nhiêu phần tử lớn hơn giá trị trung bình của mảng. (0.25đ)
Sắp xếp lại mảng có giá trị phần tử từ nhỏ đến lớn (sử dụng hàm). In ra mảng đã sắp xếp từ nhỏ
đến lớn và từ lớn dến nhỏ (0.75đ)
In ra 2 phần tử lớn nhất của mảng (0.25đ)
TRƯỜNG ĐH SƯ PHẠM KỸ THUẬT TP.HCM ĐỀ KT MÔN: LẬP TRÌNH C
KHOA ĐIỆN – ĐIỆN TỬ Học kỳ II Năm học 2022 – 2023
BỘ MÔN KT MÁY TÍNH – VIỄN THÔNG Đề số 324 Đề có 4 trang
Thời gian: 65 phút
Được sử dụng 01 tờ A4 viết tay
Họ và tên: ………………………………...
MSSV : ………………………………...

Câu 1: Cho biết kết quả hiển thị các đoạn chương trình độc lập sau (giả sử các thư viện đã được khai
báo): (5.0 điểm)

int main(){ void main() {


int a=3; int i, n=6, factorial = 1;
for (int i=0; i<4; i++) { for (i = 1; i <= n; i++)
if(i==a) continue ; factorial = factorial * i;
a++; } printf(“Factorial is: %d",factorial);
printf (“a=%d,i= %d”,a,i); } }
int main(){ int main(){
int n = 7; int j;
for (int i = 1; i <=n; i++) for (int i = 1; i < 4; i++)
if (n%i == 0) j = i+1;
printf(“%3d”, i); printf(“%3d”, j);
}
}
int main(void){ int func(int b){
int a[3][3] = { {9},{3,2},{3,1}}; int a=2;
for (int i = 0; i <= 3; i++){ return ++a+b;
for (int j = 0; j <= 3; j++){ }
printf("%d\t", a[i][j]); void main(void){
if (j == 3) int b=2,i;
printf("\n"); } for (i = 4; i>0; i-=2)
} b+=func(i);
} printf("%d",b); }
int Ham(int a, int b){ #define s "Lap trinh C"
return a + 2 * b; void main(void){
} char c[] = "DH SPKT TPHCM";
int main(void){ int i;
int n = 3, m = 4; for (i = 0; c[i] != 'T'; i += 1)
for (int i = 1; i < 3; i++) printf("%c", c[i]);
printf("%3d\n", Ham(n,m)+i); printf("\n%s", s);}
}
int main(void){ int F1(int x){
int A[5] = { 1, 4, 3, 8, 1 }; x = ++x + 3;
int j,a,b; return x;
for (int i = 0; i < 4; i++){ }
j = i + 1; void main (void){
A[i] = A[j]; int x = 9, y;
} y = F1(x);
printf("%d%d", A[1], A[2]);
printf("%d%d",x,y);}
}
int main(){
int a[] = { 3, 2, 1, 9 };
int b = a[3]/a[0] + a[2];
switch (b){
case 0: printf("%d",a[0]); break;
case 1: printf("%d",a[1]); break;
case 2: printf("%d",a[2]); break;
case 3: printf("%d", a[3]);
break;
default:
printf("%d%d%d%d",a[1],a[3]);
}}

Câu 2: Tìm và sửa lỗi đoạn chương trình sau: (1.5 điểm)
void ham (int a[]){ .... ..................................................................................
for (int j; j ≤ a; j++)
.... ..................................................................................
printf("%c", "*");
} .... ..................................................................................
int main(void){ .... ..................................................................................
int n[5] = { 4, 1, 5, 7, 1, };
for (int i = 0; i < 5; i+1){ .... ..................................................................................
printf("%5d%5d", n[i]); .... ..................................................................................
ham(n);
.... ..................................................................................
printf("\n");
} .... ..................................................................................
} .... ..................................................................................

Câu 3. (3.5 điểm) Viết 01 chương trình C thực hiện các yêu cầu sau:
Định nghĩa hàm tìm kiếm, đối số cấp cho hàm là mảng, số phần tử của mảng, số nguyên cần
tìm. Hàm trả về vị trí đầu tiên của số trong mảng, nếu không có hàm trả về -1 (0.75đ)
Định nghĩa hàm tính giá trị trung bình của mảng, hàm trả về trung bình các phần tử của mảng
(0.5đ)
Viết hàm main cho nhập vào n là số phần tử mảng, điều kiện 50<n<100, nếu không thỏa cho
nhập lại đến khi thỏa. Nhập và xuất giá trị cho mảng (0.75đ)
Tính và in ra giá trị trung bình của mảng (sử dụng hàm). (0.5đ).
Tìm và in ra có nhiêu phần tử bé hơn hoặc bằng giá trị trung bình của mảng. (0.5đ)
Tìm và in ra vị trí số 9 đầu tiên trong mảng đã nhập. Nếu không có in ra “Khong co!” (0.5đ)

You might also like