Đề Thi Đánh Giá Năng Lực Lập Trình CCF GESP - C++ Cấp Độ 2

Câu Hỏi Trắc Nghiệm (2 điểm/câu, tổng 30 điểm)

1. Máy tính DJL-1 do Đại học Sơn Đông phát triển năm 1972 sử dụng bộ nhớ lõi từ với chu kỳ truy xuất 2μs. Thành phần này tương đương với thiết bị nào trong máy tính hiện đại?

A. RAM
B. Ổ cứng
C. Bộ xử lý
D. Màn hình

2. Số lượng mạng lớp A trong giao thức IPv4 là bao nhiêu?

A. 65000
B. 2 triệu
C. 126
D. 128

3. Trong C++, tên biến nào sau đây không hợp lệ?

A. gesp-ccf
B. gesp_ccf
C. GESPccf
D. _gespCCF

4. Đoạn mã nào sau đây tương đương với vòng lặp: for (int dem = 1; dem <= 9; ++dem)?

A. for (int dem = 0; dem < 10; dem++)
B. for (int dem = 0; dem <= 10; dem++)
C. for (int dem = 1; dem <= 9; dem++)
D. for (int dem = 0; dem <= 10; ++dem)

5. Kết quả xuất ra từ std::cout << (7 / 2 + 8 % 3) là gì?

A. 3
B. 4
C. 5
D. 6

6. Cho đoạn mã sau với biến a, b có thể thuộc kiểu số hoặc ký tự. Khi nhập -3 và 2.71, kết quả nào KHÔNG thể xảy ra?

std::cin >> a >> b;
std::cout << (a + b);
A. 0
B. -0.29
C. 44
D. Lỗi biên dịch

7. Để trích xuất chữ số hàng đơn vị của số nguyên dương N, biểu thức nào đúng?

A. N % 10
B. N / 10
C. N & 10
D. Không có đáp án đúng

Câu Hỏi Lập Trình (25 điểm/câu)

Bài Toán Tổng Các Chữ Số

Mô tả: Xác định số "đẹp" khi tổng các chữ số chia hết cho 7.

Yêu cầu: Viết chương trình xử lý n số nguyên, xuất "Yes" nếu là số đẹp, ngược lại "No".

Ví dụ:

Nhập: 3
      14
      23
      106
Xuất: Yes
      Yes
      No

Phân tích: Sử dụng vòng lặp trích xuất từng chữ số:

int soLuong;
std::cin >> soLuong;
while (soLuong--) {
    int giaTri, tong = 0;
    std::cin >> giaTri;
    while (giaTri > 0) {
        tong += giaTri % 10;
        giaTri /= 10;
    }
    std::cout << (tong % 7 == 0 ? "Yes" : "No") << '\n';
}

Bài Toán Ma Trận Chữ N

Mô tả: In ma trận kích thước m×m (m lẻ) với các đặc điểm:

  • Đường chéo chính, cột đầu và cột cuối là ký tự '+'
  • Các vị trí còn lại là ký tự '-'

Ví dụ với m=5:

+---+
++--+
+-+-+
+--++
+---+

Cài đặt mẫu:

int kichThuoc;
std::cin >> kichThuoc;
for (int hang = 0; hang < kichThuoc; ++hang) {
    for (int cot = 0; cot < kichThuoc; ++cot) {
        if (cot == 0 || cot == kichThuoc - 1 || hang == cot)
            std::cout << '+';
        else
            std::cout << '-';
    }
    std::cout << '\n';
}

Thẻ: C++ Lập trình căn bản Kiểm thử đơn vị Xử lý số nguyên Thuật toán vòng lặp

Đăng vào ngày 25 tháng 6 lúc 02:28