Đề thi môn Kỹ thuật lập trình

                                
                                  
Sinh viên: ………………………………  
MSSV:……….........................................  
  thi môn K  Thu t L p Trình, niên khóa 2013-2014  
Thi gian : 100 phút  
Tài liu m  
Thang điểm tối đ   10  
PHN I: TRC NGHIM (4 điểm, sinh viên ch cn tr l  đú g  6  )  
Sinh viên trli các câu hi bằng cách khoanh tròn đáp án  Ú     T  
Câu 1. Gista khai báo: int m[] = {5, 4, 3, 2, 1}, i = 4;  
Hãy cho biết câu lệnh nào dưới đây KHÔNG hp lkhi truy xut phn tca mng m:  
A. int z= m[--i]; B.int z = m[2*2];  
C. int z = m[m[0]];  
D. int z = m[m[i]];  
Câu 2. Câu lệnh khai báo nào dưới đây KHÔNG hp l:  
A. int x[][3]= {{0}, {1}, {1, 2, 3}};  
B. int x[4][3] = {{1, 2, 3}, {1, 2, 3}, {1, 2, 3}, {1, 2, 3}};  
C. int x[4][] = {{1, 2, 3}, {1, 2, 3}, {1, 2, 3}, {1, 2, 3}};  
D. int x[][3] = {1, 2, 3, 4};  
Câu 3. Khai báo mng b như sau: int b[][3] = {{1},{2, 3}, {4, 5, 6}, {2}};  
Giá trca b[2][2]bng  
A. 0  
B. 3  
C. 6  
D. 2  
Câu 4. Cho biết khai báo nào dưới đây không hợp lệ  
A.int a[] = {1, 2}; B. char *b[3]; C. char s[10] = "test";  
D. int n = 2, a[n]={1,2,3};  
Câu 5. Nhận định nào dưới đây đúng:  
A. Chương trình C++ luôn bắt đầu thc thi từ hàm đầu tiên  
B. Tt cli gọi hàm đều nm trong hàm main.  
C. Chương trình C++ luôn bắt đu thc thi thàm main  
D. Trong chương trình C++, hàm main luôn phải đặt trước tt ccác hàm khác  
Câu 6. Gista có li gi hàm sau: fun(a + b, 3, max(n 1, b));  
Số lượng tham sthc ca hàm fun là.  
A. 3  
B. 4  
C. 5  
D. 6  
Câu 7. Cho biết kết xut ra màn hình của đoạn chương trình sau:  
1: #include <iostream.h>  
2: void func1(int); void func2(int);  
3: char st[] = "C++ Programing";  
4: void func1(int i) { cout << st[i]; if(i<4) {i+=1; func2(i);} }  
5: void func2(int i){ cout << st[i]; if(i<4) {i+=2; func1(i);}}  
6: void main(){ func1(0); cout<<endl; }  
A. C++ Programing  
B. C+Pr  
C. Program  
D. C+ P  
                                      niên khóa 2013-2014  
Trang 1/8  
                                
                                  
Sinh viên: ………………………………  
MSSV:……….........................................  
Câu 8. Gista khai báo “int *p, str[10];”, cho biết câu lệnh nào dưới đây đúng cú pháp  
A. p = &str;  
B. p = str; C. str++;  
D. str = p;  
Câu 9. Khai báo p và q là hai con tr: int *p, *q;  
Trong snhng câu lệnh dưới đây:  
i.  
p = 0;  
ii.  
p = p + q;  
iii. p = p + (10-3);  
iv.  
if(p == q) cout << “=”; else if(p != q) cout << “!”;  
A. Có đúng 1 câu lệnh hp lệ  
B. Có đúng 2 câu lnh hp lệ  
C. Có đúng 3 câu lệnh hp lệ  
D. C4 câu lệnh đều hp lệ  
Câu 10. Trong snhững khai báo sau đây:  
i.  
ii.  
struct a, b, c {int x; double y;} z;  
struct z {int x; double y;} a, b, c;  
iii. struct a, b, c {int x; double y;};  
iv.  
v.  
struct z {int x; double y;}; z a, b, c;  
struct {int x; double y;} a, b, c;  
Có bao nhiêu khai báo hp l?  
A. 1  
B. 2  
C. 3  
D. 4  
Câu 11. Từ khóa nào dưới đây KHÔNG được sdng khi khai báo biến:  
A. auto B. static C. external D. register  
Câu 12. Cho lp MyClass được định nghĩa như sau:  
class MyClass{ public: MyClass() {cout << 'A';}  
MyClass(char C) {cout << C;}  
~MyClass() {cout << 'B';}};  
Hãy cho biết kết xut ra màn hình của đoạn chương trình sau:  
1: void main() {  
2:  
3:  
4:  
MyClass p1, *p2;  
p2 = new MyClass('X');  
delete p2;  
}
A. ABX  
B. ABXB  
C. AXBB  
D. ACBB  
Câu 13. Cho lp MyClass được định nghĩa như sau:  
class MyClass{ public: MyClass() {cout << 1;}};  
Câu lnh khai báo sau xut gì ra màn hình  
MyClass a, b[2], *p[2];  
A. 1  
B. 111  
C. 11111  
D. Không xut gì ra màn hình  
Câu 14. Chn lựa đáp án đúng nht vhàm to (constructor) trên C++:  
A. Hàm to tự động đưc gi khi một đối tượng mi ca lớp được to ra  
                                      niên khóa 2013-2014  
Trang 2/8  
                                
                                  
Sinh viên: ………………………………  
MSSV:……….........................................  
B. Khi khai báo, mi lp bt buc phi có mt hàm to  
C. Hàm to chỉ được gọi khi đối tượng được to ra bi lnh new  
D. Nếu nhiu hàm tạp được định nghĩa trong mt lp, thì khi một đối tượng được tạo ra, chương trình sẽ  
lần lượt gi các hàm to theo mt thtự ưu tiên  
Câu 15. Gisử trong chương trình có các khai báo hàm với các prototype như sau:  
(1) void calcul(int a, float b, int c=0);  
(2) void calcul(double a, int b, int c=0);  
(3) void calcul(float a, float b);  
Vic gi hàm thông qua câu lệnh “calcul(1.0,1);” sẽ thc hin hàm nào?  
A. (1)  
B. (2)  
C. (3)  
D. Chương trình báo lỗi vì khai báo quá nhiu hàm trùng tên  
Câu 16. Định nghĩa hàm nào dưới đây hợp lệ  
A. int func(void){return 0.0;}  
B. int func(void a){return 0;}  
C. int func(int a, int b, float c=3.0) {return 0;}  
D. int func(int a*b, float c) {return 0;}  
Câu 17. Hãy chn khai báo HP Ltrên C++ cho dãy arr gm 4 phn tcó kiểu là char và được khi  
to các giá trlần lượt là a, b, c, và d?  
A. char arr[] = {"a", "b", "c", "d"};  
B. char arr[] = {'a', 'b', 'c', 'd'};  
C. char arr[] = "abcd";  
D. char arr[] = 'abcd';  
PH    :   N CH TRNG (3 điểm, sinh viên ch cn tr l  đú g  2 câu)  
Câu 18. Hãy cho biết kết xut ra màn hình của đoạn chương trình sau:______________________  
1: #include <iostream.h>  
2: int  
3: int  
4:  
d = 1;  
func(int p){  
static int d = 15;  
d += p;  
5:  
cout << d << ";"; return d;  
}
6: void main(){  
7:  
8:  
int  
a = 4;  
cout << func(a + func(d)) << endl;  
}
Câu 19. Gisử ta có khai báo như sau:  
struct Foo1 {char str[32];  
float  
a;} x;  
union Foo2 { char str[32];  
float  
a;} y;  
Cho biết câu lnh: cout << sizeof(x) << sizeof(y); xut gì ra màn hình:__________________  
                                      niên khóa 2013-2014  
Trang 3/8  
                                
                                  
Sinh viên: ………………………………  
MSSV:……….........................................  
Câu 20. Hãy cho biết kết quxut ra màn hình của đoạn chương trình sau:__________________  
1:  
#include <iostream.h>  
int foo(int n) { if(n == 0) return 0;  
return n*foo(n-1); }  
void main() { cout << foo(6) << endl; }  
2:  
3:  
4:  
Câu 21. Đoạn chương trình sau xuất gì ra màn hình :_____________________________________  
int s = 0, t[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};  
for(int i = 0; i<9; i+=2)  
cout << s << endl;  
s += *(t + i);  
Câu 22. Hãy cho biết kết xut của đoạn chương trình sau:_________________________________  
1:  
#include <iostream.h>  
2:  
3:  
4:  
5:  
6:  
7:  
8:  
9:  
void swap1(int c0[], int c1[]){int t;  
t = c0[0]; c0[0]=c1[0]; c1[0]=t; }  
void swap2(int* c0, int* c1){ int t;  
t = *c0; *c0 = *c1; *c1 = t; }  
void main(){  
int a[2] = {3, 5}, b[2] = {3, 5};  
swap1(a, a+1);swap2(&b[0], &b[1]);  
cout << a[0] << ";" << a[1] << ";" << b[0] << ";" << b[1]; }  
Câu 23. Cho biết kết quxut ra màn hình của đoạn chương trình sau:______________________  
char st[20] = "HELLO Viet Nam\0\t\\";  
cout << strlen(st) << " " << st << endl;  
Câu 24. Định nghĩa hàm func như sau:  
void func(int a, int& b) {a++; b++;}  
Hãy cho biết sau khi thc hiện đoạn mã sau, giá trca x, y lần lượt bng bao nhiêu: __________  
int x = 0, y = 1;  
func(x, y);  
Câu 25. Định nghĩa hàm fun như sau:  
void fun(int *a, int *b){  
int w; *a = *a + *a; w = *a; *a = *b; *b = w;  
}
Hãy cho biết kết xut của đoạn chương trình sau:______________________________________  
int x = 2.0, y = 5.0;  
int *px = &x, *py = &y;  
fun(px, py);  
cout << x << ", " << y << endl;  
Câu 26. Hãy cho biết kết xut của đoạn chương trình sau:_________________________________  
void main() {  
int a[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0}, *p;  
p = a;  
cout << *p+9 << endl; }  
Câu 27. Hãy chra các dòng blỗi trong đoạn chương trình sau:___________________________  
1:  
class watch {  
void watch() {  
2:  
3:  
4:  
hour = 0;  
minute = 1; }  
                                      niên khóa 2013-2014  
Trang 4/8  
                                
                                  
Sinh viên: ………………………………  
MSSV:……….........................................  
5:  
6:  
7:  
private:  
int hour = 12;  
int minute; };  
Câu 28. Cho biết kết xut của đoạn chương trình sau: __________________________________  
1:  
#include <iostream.h>  
class A{public: A() {cout<<"A";}  
~A(){cout << "a";}};  
class B{A a;  
public: B() {cout<<"B";}  
~B(){cout << "b";}};  
void main() { B b;}  
2:  
3:  
4:  
5:  
6:  
7:  
Câu 29. Biết rằng chương trình sau xuất 23 ra màn hình, hãy điền vào chtrng  
1:  
#include <iostream.h>  
class MyClass{public: void Print() const {cout << 23;}};  
void main() {  
MyClass* p = new MyClass();  
___________Print();  
}
2:  
3:  
4:  
5:  
6:  
Câu 30. Khi cho thực thi đoạn chương trình sau:  
1:  
2:  
3:  
#include <iostream>  
using namespace std;  
class Father{  
4:  
5:  
public: Father(){cout << "Cha ";}  
};  
6:  
class Child: public Father{  
7:  
8:  
public: Child(){ cout << "Con ";}  
};  
9:  
10:  
11:  
void main(){  
Child c;  
}
Kết quin ra màn hình là: _____________________________________  
PHN III: LP TRÌNH (3 điểm)  
Câu 31. Viết hàm đệ quy int sumOddDigit(int n) thc hin chức năng sau:  
o Trv-1 nếu n < 0.  
o Trvtng ca các chslca sn nếu n >= 0.  
Ví d: nếu n = 1468952 thì kết qulà : 1 + 9 + 5 = 15.  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
                                      niên khóa 2013-2014  
Trang 5/8  
                                
                                  
Sinh viên: ………………………………  
MSSV:……….........................................  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
Câu 32. Viết hàm void In(int a[], int n) vi n>0 là sphn tca mng a, hàm này in ra các phn tử  
a[i] (0 ≤ i < n) nếu tn ti phn ta[j] sao cho a[i] là bi ca a[j].  
Ví d: nếu mng a=[9,2,3,4,5,6] vi n=6 thì các phn tử được in ra a[0], a[3] và a[5] bi vì  
a[0] là bi ca a[2], a[3] là bi ca a[1] và a[5] là bi ca a[1] và a[2].  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
Câu 33. Danh sách sinh viên là mt mng mt chiều, dùng để lưu trữ thông tin ca 300 sinh viên.  
Thông tin ca sinh viên bao gm: MSSV (kiu int), htên (kiu string), danh sách môn hc.  
Và mi môn hc bao gm: Mã môn hc (kiu int), Tên môn hc (kiểu string), điểm gia kỳ  
(kiểu float), điểm cui k(kiu float).  
Yêu cu:  
a)  
Viết phn khai báo cu trúc và biến dùng để lưu trữ thông tin ca các sinh viên này  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
                                      niên khóa 2013-2014  
Trang 6/8  
                                
                                  
Sinh viên: ………………………………  
MSSV:……….........................................  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
b)  
Viết hàm cho phép người dùng nhp thông tin vcác sinh viên và thông tin ca các môn Toán  
Ri Rc 1, Thiết kế hthng svà KThut Lp Trình.  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
c)  
Viết chương trình in ra danh sách sinh viên có điểm trung bình trên 7.0 cho cba môn trình  
bày trong câu b. Biết rằng điểm trung bình = 0.4 x điểm gia kỳ + 0.6 x điểm cui k.  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
                                      niên khóa 2013-2014  
Trang 7/8  
                                
                                  
Sinh viên: ………………………………  
MSSV:……….........................................  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
__________________________________________________________________  
Họ và tên sinh viên: …………………………………. Điểm  
MSSV:………………………………………………..  
Chnhim bmôn  
Chký:  
Giảng viên ra đề  
Chký:  
Htên:  
Htên:  
                                      niên khóa 2013-2014  
Trang 8/8  
pdf 8 trang Thùy Anh 28/04/2022 7280
Bạn đang xem tài liệu "Đề thi môn Kỹ thuật lập trình", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfde_thi_mon_ky_thuat_lap_trinh.pdf