Đề thi cuối kì Kỹ thuật lập trình - Năm học 2013 - 2014 - Trường Đại học Bách Khoa TP Hồ Chí Minh

Câu 5. Nhận định nào dưới đây đúng:

A. Chương trình C++ luôn bắt đầu thực thi từ hàm đầu tiên B. Tất cả lời gọi hàm đều nằm trong hàm main.

C. Chương trình C++ luôn bắt đầu thực thi từ hàm main

D. Trong chương trình C++, hàm main luôn phải đặt trước tất cả các hàm khác

Câu 6. Giả sử ta có lời gọi hàm sau: fun(a + b, 3, mazin = 1, b) li Số lượng tham số thực của hàm fun là.

A 3

B. 4

C. 5

D. 6

pdf 8 trang xuanthi 27/12/2022 3440
Bạn đang xem tài liệu "Đề thi cuối kì Kỹ thuật lập trình - Năm học 2013 - 2014 - Trường Đại học Bách Khoa TP Hồ Chí Minh", để 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_cuoi_ki_ky_thuat_lap_trinh_nam_hoc_2013_2014_truong_d.pdf

Nội dung text: Đề thi cuối kì Kỹ thuật lập trình - Năm học 2013 - 2014 - Trường Đại học Bách Khoa TP Hồ Chí Minh

  1. Sinh viên: MSSV: Câu 8. Giả sử ta 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 số những 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 hợp lệ B. Có đúng 2 câu lệnh hợp lệ C. Có đúng 3 câu lệnh hợp lệ D. Cả 4 câu lệnh đều hợp lệ Câu 10. Trong số những khai báo sau đây: i. struct a, b, c {int x; double y;} z; ii. struct z {int x; double y;} a, b, c; iii. struct a, b, c {int x; double y;}; iv. struct z {int x; double y;}; z a, b, c; v. struct {int x; double y;} a, b, c; Có bao nhiêu khai báo hợp lệ ? A. 1 B. 2 C. 3 D. 4 Câu 11. Từ khóa nào dưới đây KHÔNG được sử dụng khi khai báo biến: A. auto B. static C. external D. register Câu 12. Cho lớp 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 xuất ra màn hình của đoạn chương trình sau: 1: void main() { 2: MyClass p1, *p2; 3: p2 = new MyClass('X'); 4: delete p2; } A. ABX B. ABXB C. AXBB D. ACBB Câu 13. Cho lớp MyClass được định nghĩa như sau: class MyClass{ public: MyClass() {cout << 1;}}; Câu lệnh khai báo sau xuất gì ra màn hình MyClass a, b[2], *p[2]; A. 1 B. 111 C. 11111 D. Không xuất gì ra màn hình Câu 14. Chọn lựa đáp án đúng nhất về hàm tạo (constructor) trên C++: A. Hàm tạo tự động được gọi khi một đối tượng mới của lớp được tạo ra – niên khóa 2013-2014 Trang 2/8
  2. Sinh viên: MSSV: Câu 20. Hãy cho biết kết quả xuất ra màn hình của đoạn chương trình sau:___ 1: #include 2: int foo(int n) { if(n == 0) return 0; 3: return n*foo(n-1); } 4: void main() { cout 2: void swap1(int c0[], int c1[]){int t; 3: t = c0[0]; c0[0]=c1[0]; c1[0]=t; } 4: void swap2(int* c0, int* c1){ int t; 5: t = *c0; *c0 = *c1; *c1 = t; } 6: void main(){ 7: int a[2] = {3, 5}, b[2] = {3, 5}; 8: swap1(a, a+1);swap2(&b[0], &b[1]); 9: cout << a[0] << ";" << a[1] << ";" << b[0] << ";" << b[1]; } Câu 23. Cho biết kết quả xuất 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 thực hiện đoạn mã sau, giá trị của x, y lần lượt bằng 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 xuất 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 xuất 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 chỉ ra các dòng bị lỗi trong đoạn chương trình sau:___ 1: class watch { 2: void watch() { 3: hour = 0; 4: minute = 1; } – niên khóa 2013-2014 Trang 4/8
  3. Sinh viên: MSSV: ___ ___ ___ ___ ___ ___ Câu 32. Viết hàm void In(int a[], int n) với n>0 là số phần tử của mảng a, hàm này in ra các phần tử a[i] (0 ≤ i < n) nếu tồn tại phần tử a[j] sao cho a[i] là bội của a[j]. Ví dụ: nếu mảng a=[9,2,3,4,5,6] với n=6 thì các phần tử được in ra là a[0], a[3] và a[5] bởi vì a[0] là bội của a[2], a[3] là bội của a[1] và a[5] là bội của a[1] và a[2]. ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ Câu 33. Danh sách sinh viên là một mảng một chiều, dùng để lưu trữ thông tin của 300 sinh viên. Thông tin của sinh viên bao gồm: MSSV (kiểu int), họ tên (kiểu string), danh sách môn học. Và mỗi môn học bao gồm: Mã môn học (kiểu int), Tên môn học (kiểu string), điểm giữa kỳ (kiểu float), điểm cuối kỳ (kiểu float). Yêu cầu: a) Viết phần khai báo cấu trúc và biến dùng để lưu trữ thông tin của các sinh viên này ___ ___ ___ – niên khóa 2013-2014 Trang 6/8
  4. Sinh viên: MSSV: ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ Họ và tên sinh viên: . Điểm MSSV: Chủ nhiệm bộ môn Giảng viên ra đề Chữ ký: Chữ ký: Họ tên: Họ tên: – niên khóa 2013-2014 Trang 8/8