Đề thi/Bài tập lập trình C, C++(nên luyện)

Bộ đề thi, bài tập lập trình C, C++ này sẽ giúp bạn chủ động luyện kỹ năng lập trình đồng thời chủ động ôn tập cho các kỳ thi trong các môn học lập trình. Đây là cách mà trước đây khi học Đại Học tôi đã áp dụng để luyện tư duy, kỹ năng lập trình của mình. Bạn thử xem!

Danh sách bài tập lập trình C

Bài 1: Nhập vào một số nguyên nhập từ bàn phím, kiểm tra số đó chia hết cho 7 hay không?

Lời giải:

#include <stdio.h>

int main() {
    int number;

    // Nhập số nguyên từ bàn phím
    printf("Nhập một số nguyên: ");
    scanf("%d", &number);

    // Kiểm tra xem số có chia hết cho 7 hay không
    if (number % 7 == 0) {
        printf("%d chia hết cho 7.\n", number);
    } else {
        printf("%d không chia hết cho 7.\n", number);
    }

    return 0;
}

Bài 2: Viết chương trình sẽ yêu cầu người dùng nhập điểm số của học sinh, và sau đó dựa trên điểm số đó, xác định xếp loại của học sinh theo các mức sau:

  • Nếu điểm số từ 9.0 trở lên, học sinh sẽ được xếp loại là “Xuất sắc”.
  • Nếu điểm số từ 8.0 đến 8.9, học sinh sẽ được xếp loại là “Giỏi”.
  • Nếu điểm số từ 6.5 đến 7.9, học sinh sẽ được xếp loại là “Khá”.
  • Nếu điểm số từ 5.0 đến 6.4, học sinh sẽ được xếp loại là “Trung bình”.
  • Nếu điểm số dưới 5.0, học sinh sẽ được xếp loại là “Yếu”.

Code mẫu:

#include <stdio.h>

int main() {
    float score;

    // Nhập điểm số từ bàn phím và kiểm tra ràng buộc
    do {
        printf("Nhập điểm số của học sinh (từ 0 đến 10): ");
        scanf("%f", &score);

        if (score < 0 || score > 10) {
            printf("Điểm số không hợp lệ. Vui lòng nhập lại.\n");
        }
    } while (score < 0 || score > 10);

    // Xác định xếp loại dựa trên điểm số
    if (score >= 9.0) {
        printf("Xếp loại: Xuất sắc\n");
    } else if (score >= 8.0) {
        printf("Xếp loại: Giỏi\n");
    } else if (score >= 6.5) {
        printf("Xếp loại: Khá\n");
    } else if (score >= 5.0) {
        printf("Xếp loại: Trung bình\n");
    } else {
        printf("Xếp loại: Yếu\n");
    }

    return 0;
}

Bài 3: Viết chương trình in ra bảng cửu chương 4

Giải

#include <stdio.h>

int main() {
    int i;
    int number = 4;

    printf("Bảng cửu chương %d:\n", number);

    for (i = 1; i <= 10; i++) {
        printf("%d x %d = %d\n", number, i, number * i);
    }

    return 0;
}

Kết quả đầu ra:

Bảng cửu chương 4:
4 x 1 = 4
4 x 2 = 8
4 x 3 = 12
4 x 4 = 16
4 x 5 = 20
4 x 6 = 24
4 x 7 = 28
4 x 8 = 32
4 x 9 = 36
4 x 10 = 40

Bài 4: Viết chương trình C để tính diện tích hình chữ nhật dựa trên chiều dài và chiều rộng nhập từ bàn phím.

#include <stdio.h>

int main() {
    float length, width;

    // Nhập chiều dài và chiều rộng từ bàn phím
    printf("Nhập chiều dài: ");
    scanf("%f", &length);
    printf("Nhập chiều rộng: ");
    scanf("%f", &width);

    // Tính diện tích hình chữ nhật
    float area = length * width;

    // Hiển thị kết quả
    printf("Diện tích hình chữ nhật có chiều dài %.2f và chiều rộng %.2f là: %.2f\n", length, width, area);

    return 0;
}

Bài 5: Viết chương trình C để tìm ước chung lớn nhất (GCD) của hai số nguyên nhập từ bàn phím.

#include <stdio.h>

int findGCD(int a, int b) {
    if (b == 0) {
        return a;
    } else {
        return findGCD(b, a % b);
    }
}

int main() {
    int num1, num2;

    // Nhập hai số nguyên từ bàn phím
    printf("Nhập số nguyên thứ nhất: ");
    scanf("%d", &num1);
    printf("Nhập số nguyên thứ hai: ");
    scanf("%d", &num2);

    // Tìm ước chung lớn nhất
    int gcd = findGCD(num1, num2);

    // Hiển thị kết quả
    printf("Ước chung lớn nhất của %d và %d là: %d\n", num1, num2, gcd);

    return 0;
}

Bài 6: Viết chương trình C để tính chu vi và diện tích hình tròn dựa trên bán kính nhập từ bàn phím.

#include <stdio.h>
#include <math.h>

int main() {
    float radius;
    const float PI = 3.14159265;  // Giá trị xấp xỉ của số pi

    // Nhập bán kính từ bàn phím
    printf("Nhập bán kính hình tròn: ");
    scanf("%f", &radius);

    if (radius < 0) {
        printf("Bán kính không thể là một giá trị âm.\n");
        return 1; // Kết thúc chương trình với mã lỗi
    }

    // Tính chu vi và diện tích hình tròn
    float circumference = 2 * PI * radius;
    float area = PI * pow(radius, 2);

    // Hiển thị kết quả
    printf("Chu vi của hình tròn là: %.2f\n", circumference);
    printf("Diện tích của hình tròn là: %.2f\n", area);

    return 0;
}

Tạo một hàm nhận hai số làm đối số và trả về tổng của chúng.

Ví dụ

addition(3, 2) ➞ 5

addition(-3, -6) ➞ -9

addition(7, 3) ➞ 10

Lời giải:

#include <stdio.h>

int addition(int a, int b) {
    return a + b;
}

int main() {
    int num1 = 3;
    int num2 = 2;
    
    int sum = addition(num1, num2);

    printf("Tổng của %d và %d là: %d\n", num1, num2, sum);

    return 0;
}

Trong ví dụ này, hàm addition nhận hai tham số ab, sau đó trả về tổng của chúng bằng cách sử dụng phép cộng (a + b). Trong hàm main, chúng ta gọi hàm addition với hai số cụ thể (3 và 2), sau đó in ra tổng của chúng trên màn hình.


Viết hàm lấy một số nguyên phút(minutes) và chuyển nó thành giây

Ví dụ:

convert(5) ➞ 300

convert(3) ➞ 180

convert(2) ➞ 120

Code

#include <stdio.h>

int convert(int minutes) {
    return minutes * 60;
}

int main() {
    int minutes = 5;  // Thay đổi giá trị số phút tại đây nếu cần
    int seconds = convert(minutes);

    printf("%d phút tương đương %d giây.\n", minutes, seconds);

    return 0;
}

Hàm convert nhận số phút làm đối số và trả về số giây tương ứng bằng cách nhân với 60 (vì mỗi phút có 60 giây). Trong hàm main, chúng ta gọi hàm convert với số phút cụ thể và in kết quả ra màn hình.


Viết hàm kiểm tra một số có phải đối xứng không

Case

isPalindrome(121) => Số 121 là số đối xứng.
isPalindrome(12345) => Số 12345 không phải là số đối xứng.
isPalindrome(5555) => Số 5555 là số đối xứng.
isPalindrome(2002) => Số 2002 là số đối xứng.
isPalindrome(0) => Số 0 là số đối xứng.

Code

#include <stdio.h>
#include <stdbool.h>

bool isPalindrome(int num) {
    int reversed = 0;
    int originalNum = num;

    while (num > 0) {
        int digit = num % 10;
        reversed = reversed * 10 + digit;
        num /= 10;
    }

    return originalNum == reversed;
}

int main() {
    int number;

    // Nhập số nguyên từ bàn phím
    printf("Nhập một số nguyên: ");
    scanf("%d", &number);

    if (isPalindrome(number)) {
        printf("%d là số đối xứng.\n", number);
    } else {
        printf("%d không phải là số đối xứng.\n", number);
    }

    return 0;
}

Hàm isPalindrome kiểm tra xem một số có phải là số đối xứng hay không. Nó đảo ngược số ban đầu và sau đó so sánh với số ban đầu. Nếu chúng giống nhau, số đó là số đối xứng. Chương trình nhập một số từ bàn phím và sau đó gọi hàm isPalindrome để kiểm tra xem số đó có phải là số đối xứng không, sau đó hiển thị kết quả tương ứng.

Đang cập nhật

Đề xuất cho bạn

Subscribe
Notify of
guest

0 Comments
Newest
Oldest Most Voted
Inline Feedbacks
View all comments

Tặng Ebook chia sẻ kinh nghiệm học lập trình web đi làm cho người mới bắt đầu!

Đây là tấm bản đồ chia sẻ lại cách học lập trình web đi làm đã giúp nhiều học trò của unitop kiếm được thu nhập từ 8-30tr mỗi tháng.

Ebook Bí quyết học lập trình web đi làm - Phan Văn Cương - Unitop.vn
0
Bạn đang nghĩ gì? Hãy để lại bình luận tại đâyx
()
x