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ố a
và b
, 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