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ÀNG CÂU HỎI THI KẾT THÚC HỌC PHẦN
HỌC PHẦN: NGÔN NGỮ LẬP TRÌNH BẬC CAO
(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À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 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ÀNG CÂ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