Hi vọng Đề thi kết thúc học phần học kì 2 môn Lập trình căn bản năm 2020-2021 có đáp án - Trường ĐH Đồng Tháp được chia sẻ dưới đây sẽ cung cấp những kiến thức bổ ích cho các bạn trong quá trình học tập nâng cao kiến thức trước khi bước vào kì thi của mình. Chúc các bạn thi tốt!
Trang 1
de ‘ ' _xh 01
TRUONG DAI HQC DONG THÁP
DE THI KET THUC MON HOC đa NCT 7
Mơn học: LẬP TRÌNH CĂN BẢN mã MH: IN4012N, học kỳ: 2 năm học: wolf 2021 Ngành/khối ngành: ĐHCNTT20A,B + ĐHSTIN20A hình thức thi: Tự luận
Thời gian làm bài: 90 phút
Ghỉ chú: Sinh viên được sử dụng tài liệu Câu 1 (4.0 điểm) Lý thuyết
a) Lưu đồ bên dưới thực hiệu câu lệnh hay vòng lặp nào? oe > eats | Đ Công việ | A while —— B.do„while €, for D switch case
b) Doan chương trình sau dùng thực hiện công việc gì? CỐ ¬
for G = Or a < oly att) for (3 = itl; 3 <n; jt+)
if (a[il > a[jl) {
tam = afi]; ali] = ali]; alj] = tam; }
n phân tử mảng cho biên tam n phân tử tạm vào mảng Sắp xếp các phần tir mang theo thir ty tang dan, p xếp các phần tử mảng theo thứ tự giảm dần, e) Thư viện nào cần thiết cho đoạn chương trình sau: R‹.s int main() { printf ("Hello!"); return 0; co } Lỗ c “== — CEiỳ\)0/S8:86E04c21266935:J8'“ZETALL<TO-Coện
A include <stdio.h> B include <conio.h>
C include <stdlib.h> D include <iostream.h>
đ) Giả sứ cho một biến mắng str có 4 phần tử Ký hiệu nào là phần tứ thú 3 của mang? UIÌ B st[2| C str[3] D st|4] € ' đoạn chương trình sau không có lỗi Kết quả của đoạn chương trình?
#include <stdio.h>
void main(){ int i=1;
while (++i <= 4)
printf ("Hello! ah) }
A.Helio! Hello! Hello! - 7 -
B Hello! Hello! Hello! Hello!
C Hello! Hello! Hello! Hello! Hello!
Trang 2f) Gia sử đoạn chương trình sau không có lỗi Kết quả của đoạn chương trình? #include <stdio.h> int main () { char letter = 'D'; printf ("%d", letter) ;)} A 65 B 68 € 100 D.D g) Giả sử đoạn chương trình sau không có lỗi Kết quả của đoạn chương trình? #include <stdio.h> int func(int a, int b) { return (a*b) ; } int main () { int *ptr; int a=2,b=5; *ptr=func (a,b) ; printf ("$d",*ptr) ;} A 20 B 10 c 5 D.2 h) Giả sử đoạn chương trình sau không có lỗi Kết quả của đoạn chương trình? #include <stdio.h> int m_arr(int a[], int n){ int i, m=a[0]; for (i=0; i<n ; i++) m = (a[i]>=m)? a[i]:m; return (m); } int main(){ int a[] = {9, -5, 10, 1, 0}; printf ("%5d\n",m arr(a,5)); } A.9 B.-5 € 10 D.15 Câu 2 (6.0 điểm) Lập trình 4) (2.0 đ) Định nghĩa các hàm theo đệ quy và không đệ quy cho các bài toán: F(0)=1, F(n) = F(n-1)+2 Viết chương trình chính gọi hàm Ví dụ khi nhập n = § n=5 0 7 2 3 4 Jj Kết quả in: 13 5 7 9 11
b) (4.0 đ) Viết chương trình tạo cấu trúc MAYTINH gồm: Hiệu máy, Cấu hình, Năm sản xuất, Đơn giá Thực hiện các yêu cầu sau:
- Nhập, in danh sách cầu tric MAYTINH - Sắp xếp theo hiệu máy và in
- Ghi dữ liệu nhập ra file văn bản (fprintf)
Trang 3
pAp AN Dit THI KET THUC MON HỌC
Mon hoc: LAP TRINH CAN BAN, ma MH: IN4042N, hoc ky: 2, nam học: 2020 - 2021 Ngành/khôi ngành: ĐHCNT120A;B + ĐHSTIN20A
(mỗi câu 0.5 diêm) R f) B 68 | thứ tự tan dần _ —————— L@ A.inelude <stdioh> —_ {pe _d) B str[2] _— h) C 10
cu] Lập trình cầu trúc (Mã nguôn tham khảo)
Ä 1: Viết hàm không đệ quy (0.5) viết chương trình chính gọi hàm (0.5)
| int daylel (int n){ int i, tong=1; | for (i=0; i<n; itt) tong += 2; | return (tong) ; }
Ý 2: Viết hàm đệ quy (0.5) viết chương trình chính gọi hàm (0.5)
int dayle2 (int n){
| if (n<1)
| return 1;
else return (dayle2 (n-1)+2)7
}
by | Ý 1: Khai báo câu trúc và viết chương trình chính theo trình tự hợp lý | typedef struct maytinh{
| char hieumay [15] ; | char cauhinh[50];
int namsx; float dongia;};
| | void nhap(maytinh *P, int n); void inds(maytinh *p, int n);
| void sapxephieumay (maytinh *p, int n)/
| void ghifile (char *tenfile, maytinh *p, int nj); int main(){ | int n; | maytinh dsmt [100]; | printf ("\nSo luong may tinh: "); scanf ("%d",&n); nhap (dsmt, 1)? inds (dsmt, n); sapxephieumay (dsmt,n); inds (dsmt, n); | ghifile ("D:\\maytinh txt", dsmt, n); | | geteh L) ¡}
| : Định nghĩa hàm hoặc việt xử lý nhập in struct
void nhap (maytinh *p, int n){
| int i, nam;
| float gia;
| for (i = 0; i <n; att) {
| printf ("\nNhap thong tin may tinh gd: \n",it1);
Trang 4Print£("Nhap fflush (stdin) Cau hình I8đ]: ",i+1); ; gets ( (pti) “>cauhinh) ;
Print£ ("Nhap nam sx [$d]: ", itl);
scanf ("$d", snam) ; (P+i)->namsx = nam;
Printf("Nhap gia [Sd]: ", i+1);
scanf ("$£",&gia) ; (P†i) ->đongia = gia; }
}
void inds (maytinh *b, int n){
int i;
printf ("\nThong tin May tinh: \n");
printf ("Hieu may | Cau hinh
Nam sx| Don gia \n"); for (i = 0; i<n; it+)
printf ("%-15s|%-20s 1$-7d|%-8.2£\n" 1 (pti) - >hieumay, (pti) ->cauhinh, (p+i) ~>namsx, (p+i) ->dongia) ;
Y 3: Dinh nghia ham hoặc viết xử lý Sắp xếp theo hiệu máy 1,0
void sapxephieumay (maytinh *pe, int n){ maytinh temp; int i, 3; char sm1[15] ; sm2[15]; for (i=0; i< n-1; i++) for (3 = i+1; 3<n; j++) {
strepy(sm1, (peti) ~>hieumay) ; strepy(sm2, (pet) ~>hieumay) ; 1£ (stremp (sm1, sm2) >0) { temp = *(pe+i) ; *(pe+ti)= * (pc+3) ; *(pet+j)= temp;
Y 4: Định nghĩa hàm hoặc việt xử lý ghi ra file văn ban (text)
void ghifile (char xtenfile, maytinh *p, int n){ FILE *f£; £=fopen (tenfile, Nat");
for (inti = 0; i<n; it+) {
fprintf(f,"%-15s" 1 (pti) ~>hieumay) ; |
fprintf (£,"%-20s8" 7 (pti) ~>cauhinh) ; fprintf (£,"%-7q" , (pti) ->namsx) ;
printf ("Da ghi xong file!lti f£close (f); fprintf (f,"%-8, 2# VN, (pti) ->dongia) ; —_ a } —_
= Phân đưới đây được in 6 mat sau ciia dap án