TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP KHOA ĐIỆN TỬ Bộ môn: Kỹ thuật phần mềm NGÂN HÀNGCÂU HỎI THI KẾT THÚC HỌC PHẦN HỌC PHẦN: NGÔN NGỮLẬPTRÌNHBẬCCAO (3 TÍN CHỈ) DÙNG CHO ĐÀO TẠO BẬC ĐẠI HỌC THEO HỌC CHẾ TÍN CHỈ CHO CÁC NGÀNH TRONG TOÀN TRƯỜNG THÁI NGUYÊN – 9/2008 TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP Khoa Điện tử Bộ môn: KHMT&CNPM CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự do – Hạnh phúc Thái Nguyên, ngày 30 tháng 9 năm 2008 NGÂN HÀNGCÂU HỎI THI NGÔN NGỮLẬPTRÌNHBẬCCAO Sử dụng cho hệ đại học theo các chuyên ngành: Các ngành trong toàn trường. 1. NỘI DUNG ĐÁNH GIÁ THI KẾT THÚC HỌC PHẦN 2. PHƯƠNG PHÁP ĐÁNH GIÁ Thi kết thúc học phần là thi viết với thời lượng 90 phút, chấm điểm theo thang điểm 10. 3. NGUYÊN TẮC TỔ HỢP ĐỀ THI - Mỗi đề thi có 4 câu hỏi. - Mỗi đề thi được tổ hợp từ 2 câu hỏi lý thuyết (phần 4.1; 4.2) và 2 câu hỏi bài tập (phần, 4.3, 4.4). 4. NGÂN HÀNGCÂU HỎI 4.1. CÂU HỎI LOẠI 1 (2 ĐIỂM) 1. Nêu các quy tắc cơ bản để đặt một tên mới (tên hàm, tên biến…) trong C++? Trong C++, hai tên bien_dem và Bien_dem có được hiểu là cùng một tên hay không? Vì sao? 2. Nêu cú pháp của việc chuyển đổi kiểu dữ liệu tường minh (ép kiểu)? Giá trị của biểu thức (5/2) là bao nhiêu? Vì sao? 3. Nêu thứ tự thực hiện các phép toán trong biểu thức ở câu lệnh cout và cho biết kết quả in ra màn hình sau khi thực hiện chương trình sau: #include <iostream.h> void main(){ cout<<(2+3*5/2-3<<1&5|7);} 4. Nêu thứ tự thực hiện các phép toán trong biểu thức ở câu lệnh cout và cho biết kết quả in ra màn hình sau khi thực hiện chương trình sau: #include <iostream.h> void main(){ cout<<(6^3||4+3-6&&7/3);} 2 5. Nêu thứ tự thực hiện các phép toán trong biểu thức ở câu lệnh cout và cho biết kết quả in ra màn hình sau khi thực hiện chương trình sau: #include <iostream.h> void main(){ int a=2,b=2; cout<<(--a-5+b++*4>>2&7); } 6. Nêu thứ tự thực hiện các phép toán trong biểu thức ở câu lệnh cout và cho biết kết quả in ra màn hình sau khi thực hiện chương trình sau: #include <iostream.h> void main(){ int a=2,b=2; cout<<(2+--a>b?1:2); } 7. Nêu tác dụng của từng câu lệnh trong hàm main và cho biết kết quả in ra màn hình sau khi thực hiện chương trình sau: #include <iostream.h> void main(){ char *s="abcdefgh",*st=s; st+=4; *st=0; s+=1; *s+=1; cout<<s; } 8. Nêu tác dụng của từng câu lệnh trong hàm main và cho biết kết quả in ra màn hình sau khi thực hiện chương trình sau: #include <iostream.h> void main(){ unsigned char c=200; float f=4.5; c+=100; f+=0.5; cout<<f/2+c/3; } 9. Nêu tác dụng của từng câu lệnh trong hàm main và cho biết kết quả in ra màn hình sau khi thực hiện chương trình sau: #include <iostream.h> void main(){ char *s="abcdefgh",*st=s; st+=4; *st+=4; s+=1; *s+=1; 3 cout<<s; } 4.2.CÂU HỎI LOẠI 2 (2 ĐIỂM) 1. Viết đoạn chương trình khai báo hàm S với tham số n kiểu số nguyên để tính theo công thức dưới đây, trong hàm chỉ được phép sử dụng cấu trúc lặp while: 2222 1 22222 .321 )1( . 321 1 21 1 1 n S n +++ − +− ++ + + −= + , n>0 2. Viết đoạn chương trình khai báo hàm S với tham số n kiểu số nguyên để tính theo công thức dưới đây, trong hàm chỉ được phép sử dụng cấu trúc lặp for: ! )2( . !3 2 !2 2 !1 2 1 32 n S n − ++−+−= , n>0 3. Viết đoạn chương trình khai báo hàm S với hai tham số x kiểu số thực và n kiểu số nguyên để tính theo công thức dưới đây, trong hàm chỉ được phép sử dụng cấu trúc lặp for: n xx .xxxS +++++= , n>0 4. Viết đoạn chương trình khai báo hàm S với tham số n kiểu số nguyên để tính theo công thức dưới đây, trong hàm chỉ được phép sử dụng cấu trúc lặp while: n2 1 )1( . 8 1 6 1 4 1 2 1 S 1n + −++−+−= , n>0 5. Viết đoạn chương trình khai báo hàm S với tham số n kiểu số nguyên để tính theo công thức dưới đây, trong hàm chỉ được phép sử dụng cấu trúc lặp do while: 222222222 .321 1 . 321 1 21 1 1 n S +++ ++ ++ + + += , n>0 6. Viết đoạn chương trình khai báo hàm S với tham số n kiểu số nguyên để tính theo công thức dưới đây, trong hàm chỉ được phép sử dụng cấu trúc lặp for: n S n ++++ − +− ++ + + −= + .321 )1( . 321 1 21 1 1 1 , n>0 7. Viết đoạn chương trình khai báo hàm S với tham số n kiểu số nguyên để tính theo công thức dưới đây, trong hàm chỉ được phép sử dụng cấu trúc lặp while: 12 1 )1( . 7 1 5 1 3 1 1 1 − −++−+−= + n S n , n>0 8. Viết đoạn chương trình khai báo hàm S với tham số n kiểu số nguyên để tính theo công thức dưới đây, trong hàm chỉ được phép sử dụng cấu trúc lặp do while: ! 2 . !3 2 !2 2 !1 2 1 32 n S n +++++= , n>0 4 9. Viết đoạn chương trình khai báo hàm S với tham số n kiểu số nguyên để tính, trong hàm chỉ được phép sử dụng cấu trúc lặp for: ! 1 )1( . !4 1 !3 1 !2 1 !1 1 1 n S n + −++−+−= , n>0 10. Cho biết kết quả in ra màn hình sau khi thực hiện chương trình sau: #include <iostream.h> int f1(int x,int &y){return ++x+y++;} int f2(int &x,int y){return --x-y--;} void main(){ int x=3,y=4; cout<<"f1="<<f1(x,y); cout<<" x="<<x<<" y="<<y<<endl; cout<<"f2="<<f2(y,x); cout<<" x="<<x<<" y="<<y<<endl; } 11. Cho biết kết quả in ra màn hình sau khi thực hiện chương trình sau: #include <iostream.h> int f1(int x,int &y){x++; y++; return x+y;} int f2(int &x,int &y){return --x+y--;} void main(){ int a=5,b=6; cout<<"f1="<<f1(a,b); cout<<" a="<<a<<" b="<<b<<endl; cout<<"f2="<<f2(b,a); cout<<" a="<<a<<" b="<<b<<endl; } 12. Cho biết kết quả in ra màn hình sau khi thực hiện chương trình sau: #include <iostream.h> void f(int n,char a,char b,char c){ if (n){ f(n-1,b,c,a); cout<<"n="<<n<<" a="<<a; cout<<" b="<<b<<" c="<<c<<endl; } } void main(){ f(2,'C','B','A');} 4.3.CÂU HỎI LOẠI 3 (3 ĐIỂM) 1. Trình bày cú pháp và nguyên lý hoạt động của cấu trúc điều khiển if 5 Áp dụng câu lệnh if viết chương trình tính số ngày của tháng t, năm y (với 1 <= t <= 12) 2. Trình bày cú pháp và nguyên lý hoạt động của cấu trúc điều khiển switch Áp dụng câu lệnh switch viết chương trình tính số ngày của tháng t, năm y (với 1 <= t <= 12) 3. Trình bày cú pháp và nguyên lý hoạt động của cấu trúc điều khiển do Áp dụng câu lệnh do viết chương trình giải bài toán sau: Có n tấn than, mỗi ngày đốt hết m kg, hỏi sau bao nhiêu ngày thì dùng hết số than trên, n và m nhập từ bàn phím. 4. Trình bày cú pháp và nguyên lý hoạt động của cấu trúc điều khiển while Áp dụng câu lệnh while viết chương trình giải bài toán sau: Nhập mảng n phần tử số thực, tìm giá trị nhỏ nhất trong mảng 5. Trình bày cú pháp và nguyên lý hoạt động của cấu trúc điều khiển for Áp dụng câu lệnh for viết chương trình giải bài toán sau: Nhập mảng n phần tử số nguyên, liệt kê các giá trị các phần tử là số nguyên tố 6. Trình bày cú pháp và nguyên lý hoạt động của cấu trúc điều khiển if Áp dụng câu lệnh if viết chương trình giải bài toán sau: Nhập xâu ký tự từ bàn phím, kiểm tra xem xâu có phải là đối xứng hay không? 7. Trình bày cú pháp và nguyên lý hoạt động của cấu trúc điều khiển switch Áp dụng câu lệnh switch viết chương trình giải bài toán sau: Nhập xâu ký tự từ bàn phím, đếm xem trong xâu các ký tự số xuất hiện bao nhiêu lần 8. Trình bày cú pháp và nguyên lý hoạt động của cấu trúc điều khiển do Áp dụng câu lệnh do viết chương trình giải bài toán sau: Lặp đi lặp lại công việc: nhập vào một ký tự, nếu là ký tự chữ thường thì in ra chứ HOA tương ứng, cho đến khi nhập ký tự + hoặc – thì kết thúc. 9. Trình bày cú pháp và nguyên lý hoạt động của cấu trúc điều khiển while Áp dụng câu lệnh while viết chương trình giải bài toán sau: Tính số fibonaci thứ n, với n nhập từ bàn phím 10. Trình bày cú pháp và nguyên lý hoạt động của cấu trúc điều khiển for Áp dụng câu lệnh for viết chương trình giải bài toán sau: Tìm các số có 4 chữ số thoả mãn chia cho 8 dư 7 và chia cho 125 dư 4. 4.4. CÂU HỎI LOẠI 4 (3 ĐIỂM) 6 1. Viết chương trình nhập mảng n phần tử số nguyên, đếm, tính tổng và liệt kê các số nguyên tố trong mảng 2. Viết chương trình nhập mảng n phần tử số nguyên, đếm, tính tổng và liệt kê các số chính phương trong mảng 3. Viết chương trình nhập mảng n phần tử số nguyên, nhập phần tử cần tìm kiếm M, nếu tìm thấy: thông báo số lượng và vị trí của những phần tử tìm thấy, ngược lại thông báo không tìm thấy 4. Viết chương trình nhập mảng n phần tử số nguyên, in ra các số lẻ theo thứ tự trị tuyệt đối tăng dần, các số chẵn theo thứ tự trị tuyệt đối giảm dần 5. Nhập xâu ký tự từ bàn phím, đếm xem trong xâu ký tự nào xuất hiện nhiều nhất 6. Nhập xâu ký tự từ bàn phím, in ra từ dài nhất trong xâu (từ là dãy ký tự không chứa ký tự trắng) 7. Nhập xâu ký tự từ bàn phím, chuẩn hoá xâu đó (loại bỏ các dấu cách thừa trong xâu), đếm xem trong xâu có bao nhiêu từ. 8. Nhập mảng n sinh viên gồm các thông tin: tên, giới tính, điểm toán, điểm lý, điểm hoá. In danh sách (số thứ tự, tên, tổng điểm) các sinh viên không bị thi lại môn nào theo thứ tự giảm dần của tổng điểm 9. Nhập mảng n sinh viên gồm các thông tin: tên, giới tính, điểm toán, điểm lý, điểm hoá. In danh sách (số thứ tự, tên, tổng điểm) các sinh viên nữ có thi lại theo thứ tự tăng dần của tổng điểm 10. Viết chương trình tính giá trị của đa thức 01 1 1 .)( axaxaxaxP n n n nn ++++= − − tại giá trị x với bậc n, giá trị x và các hệ số của đa thức nhập từ bàn phím THÔNG QUA BỘ MÔN TRƯỞNG BỘ MÔN THÔNG QUA HỘI ĐỒNG KHOA HỌC GIÁO DỤC KHOA ĐIỆN TỬ CHỦ TỊCH ThS. Nguyễn Thị Hương TS. Nguyễn Hữu Công 7 . nhập mảng n phần tử số nguyên, đếm, tính tổng và liệt kê các số nguyên tố trong mảng 2. Viết chương trình nhập mảng n phần tử số nguyên, đếm, tính tổng. NAM Độc lập – Tự do – Hạnh phúc Thái Nguyên, ngày 30 tháng 9 năm 2008 NGÂN HÀNG CÂU HỎI THI NGÔN NGỮ LẬP TRÌNH BẬC CAO Sử dụng cho hệ đại học theo các chuyên