- Tên học phần: Tin học đại cươngCâu 1 1 điểm: Thực hiện các phép chuyển đổi cơ số sau phải ghi rõ quá trình tính toán: Số chữ dùng mới kiểu số nguyên 1256 - In ra phiếu hóa đơn tiền điệ
Trang 1- Tên học phần: Tin học đại cương
Câu 1 (1 điểm): Thực hiện các phép chuyển đổi cơ số sau (phải ghi rõ quá trình tính toán):
Số chữ dùng mới kiểu số nguyên (1256)
- In ra phiếu hóa đơn tiền điện theo mẫu sau:
b Đếm số các số chia hết cho 5 hoặc 7 có trong mảng
c Tính tổng của bình phương các số chẵn có trong mảng
d Từ mảng A tạo ra mảng B với các tính chất sau:
B[i] = A[i] nếu A[i] chẵn,
B[i] = 2* A[i] nếu A[i] lẻ
Ghi chú: Cán bộ coi thi không được giải thích gì thêm.
Trang 3printf("Nhap canh a="); scanf("%f", &a);
printf("Nhap canh b="); scanf("%f", &b);
printf("Nhap canh c="); scanf("%f", &c);
unsigned int a, b, r, t, uscln;
printf("Nhap vao so a:"); scanf("%d",&a);
printf("Nhap vao so b:"); scanf("%d",&b);
Trang 4int i, n, dem, tong;
printf("n="); scanf("%d", &n);
for (i=0; i<n; i++)
tong = tong + A[i]* A[i];
printf("\nTong cua binh phuong cac so chan la:%d\n",tong);
Trang 5}
Trang 6- Tên học phần: Tin học đại cương
Câu 1 (1 điểm): Thực hiện các phép chuyển đổi cơ số sau (phải ghi rõ quá trình tính toán):
Câu 2 (1 điểm): Vẽ sơ đồ khối để mô tả thuật toán tính tổng S = 2 + 4+ + 2n, trong đó n
là số nguyên dương cho trước Chú ý cần kiểm tra giá trị n > 0 khi nhập vào
Câu 3 (1 điểm): Viết chương trình tìm số lớn nhất và nhỏ nhất trong 3 số thực.
Câu 4 (1 điểm): Viết chương trình nhập vào 2 số thực x, y Sau đó, tính giá trị của biểu
thức sau:
Câu 5 (2 điểm): Viết chương trình tính căn bậc 2 của số thực a không âm cho trước theo
công thức lặp sau:
x0 = a, xn+1 = (xn + a/xn)/2Quá trình lặp sẽ dừng khi xn+1− xn < 10−6.
Câu 6 (2 điểm): Cho dãy số Fibonasi được định nghĩa như sau:
f0 = f1 = 1, fn = fn-1 + fn-2 (n = 2,3 )
a Viết hàm không đệ qui để tìm số hạng thứ N của dãy Fibonasi
b Viết hàm đệ qui để tìm số hạng thứ N của dãy Fibonasi
Câu 7 (2 điểm): Hãy viết chương trình thực hiện các công việc sau:
a Nhập vào một mảng A gồm n phần tử nguyên (1 ≤ n ≤ 100).
b Thông báo lên màn hình tổng các số âm và trung bình cộng các số dương của mảng trên
c Nhập vào một số nguyên X Tìm xem số nguyên X đó có trong mảng trên hay không, nếu có thì hiển thị lên màn hình các phần tử có giá trị bằng X, nếu không thì thông báo không tìm thấy
Ghi chú: Cán bộ coi thi không được giải thích gì thêm.
Trang 8printf("\nSo lon nhat la %f",max);
printf("\nSo nho nhat la %f",min);
printf("\n Nhap x: "); scanf("%f",&x);
printf("\n Nhap y: "); scanf("%f",&y);
Trang 9printf("\n Khong the tinh can bac 2 cua so am \n");
printf("\n Bam phim bat ky de nhap lai ");
Trang 10printf("\n Nhap mang gom %d phan tu \n",n);
for (i=0; i<n; i++)
{ printf("a[%d]= ",i); scanf("%d",&a[i]);
Trang 12printf("Kich thuoc mang A, N=");scanf("%d",&n);
if (n>100 || n<0) printf("\n Ban phai nhap lai!");
Trang 13Câu 1 (1 điểm): Thực hiện các phép chuyển đổi cơ số sau (phải ghi rõ quá trình tính toán):
a 14510 → X2
b 2358 → X16
c 10011101012 → X8
d 2F16 → X10
Câu 2 (1 điểm): Trình bày sơ đồ khối để mô tả thuật toán cho phép nhập vào một số
nguyên dương n, in ra màn hình kết quả của tổng s sau:
n s
n
−
= + + + +
Câu 3 (1 điểm): Viết chương trình nhập vào độ dài hai cạnh của một tam giác vuông In ra
màn hình giá trị sin của góc nhọn lớn nhất trong tam giác.
Câu 4 (1 điểm): Cho biết kết quả in ra màn hình (có giải thích) của đoạn chương trình sau:
int a = 9, b = 6;
a++;
a = a + b- -;
a = a +(- -b);
printf("Tong cua a va b la: %d", a + b);
Câu 5 (2 điểm): Viết chương trình nhập vào ngày, tháng, năm Máy sẽ hiện lên ngày,
tháng, năm hôm sau (Giả sử ta không tính năm nhuận)
Ví dụ: Ngày nhập vào là: 31/12/2012, thì ngày hôm sau sẽ là 01/01/2013
Câu 6 (2 điểm): Viết hàm đệ quy và không đệ quy có tham số đầu vào là một số nguyên
dương n Kết quả trả về của hàm là số lượng chữ số lẻ của số nguyên n
Trang 14c Nhập vào một giá trị nguyên x Tìm phần tử có giá trị x xuất hiện đầu tiên trong mảng
và in ra màn hình Nếu không tìm thấy thì in ra màn hình câu thông báo “Khong tim thay”
Ghi chú: Cán bộ coi thi không được giải thích gì thêm.
Trang 16printf("Sin goc nhon lon nhat la: %f", s);getch();
Trang 170.25 0.25
d=1;
if (m==12){
m=1;
y++;
}else
m++;
}break;
Trang 18d=1;
m++;
}break;
case 2:
if (d<28)
d++;
else{
d=1;
m++;
}break;
Trang 19if (n%2==1)
dem++;
n/=10;
}return dem;
return demLe(n/10) + 1;
} return demLe(n/10);
}
1.00
Trang 200.50
Trang 21Câu 2 (1 điểm): Trình bày sơ đồ khối để mô tả thuật toán cho phép nhập vào một số
nguyên dương n, in ra màn hình kết quả của tổng s sau:
n s
n
−
= + + + +
Câu 3 (1 điểm): Viết chương trình nhập vào một số nguyên không âm n Sau đó in ra giá
trị trung bình của các chữ số của số nguyên n Ví dụ: n = 123, kết quả in ra là: 2
Câu 4 (1 điểm): Viết chương trình để nhập vào 1 số thực x sau đó in ra màn hình giá trị
!2
!1
2 6
4 2
n
x x
x x
S = + + + + n
bằng phương pháp lặp (sử dụng vòng lặp), với hai giá trị x (giá trị số thực) và n (giá trị số nguyên) được nhập vào từ bàn phím.
Câu 6 (2 điểm): Viết hàm: long giaiThua(int n) để tính n! (n là số tự nhiên)
a) Sử dụng hàm đã viết ở câu a) để viết hàm:
int toHopChap(int n, int k)
tính tổ hợp chập k của n phần tử (k, n là các số tự nhiên, k <= n) Cho biết công thức tính tổ hợp chập k của n:
!
k n
n C
Ví dụ, kết quả in ra màn hình của hàm với n = 4 sẽ là 1 4 6 4 1
Cho biết các hệ số trong phép triển khai đa thức (a+b)n được xác định theo công thức sau đây:
(a b+ )n =C a n n+C a b n n− + + C n n−ab n− +C b n n n
Câu 7 (2 điểm): Hãy viết chương trình thực hiện các công việc sau:
Trang 22a Nhập vào một mảng A gồm n phần tử nguyên (1 ≤ n ≤ 100).
b Thông báo lên màn hình tổng các số âm và trung bình cộng các số dương của mảng trên
c Nhập vào một số nguyên X Tìm xem số nguyên X đó có trong mảng trên hay không, nếu có thì hiển thị lên màn hình các phần tử có giá trị bằng X, nếu không thì thông báo không tìm thấy
Ghi chú: Cán bộ coi thi không được giải thích gì thêm.
a.
Ipod có dung lượng 2.4GB=2.4*1024*1024=2516582.4KB
Mỗi bài hát có kích thước 4300KB Vậy số bài hát tối đa có thể lưu:
Trang 23tong = tong + n%10 ;sochuso++ ;
n=n/10 ;}
Trang 25int i;
printf("\n Nhap mang gom %d phan tu \n",n);
for (i=0; i<n; i++)
{ printf("a[%d]= ",i); scanf("%d",&a[i]);
Trang 26printf("Kich thuoc mang A, N=");scanf("%d",&n);
if (n>100 || n<0) printf("\n Ban phai nhap lai!");
Trang 27Câu 3 (1 điểm): Viết chương trình tính tổng S = 2
1
− +
+
y x
x
với x, y là các số thực được nhập vào từ bàn phím
Câu 4 (1 điểm): Viết chương trình tính diện tích của một tam giác có 3 cạnh a, b, c cho trước Câu 5 (2 điểm): Viết chương trình nhập vào số nguyên n, sau đó:
- In ra tổng các chữ số của n
- Cho biết các chữ số của n theo thứ tự từ trái sang phải có sắp xếp tăng dần không?
Ví dụ: n =1234, kết quả in ra:
- Tong cac chu so cua 1234 là 10
- Cac chu so tu trai sang phai da sap xep tang dan
Câu 6 (2 điểm):
c) Viết hàm: long giaiThua(int n) để tính n! (n là số tự nhiên)
d) Sử dụng hàm đã viết ở câu a) để viết hàm:
int toHopChap(int n, int k)
tính tổ hợp chập k của n phần tử (k, n là các số tự nhiên, k <= n) Cho biết công thức tính tổ hợp chập k của n:
!
k n
n C
Ví dụ, kết quả in ra màn hình của hàm với n = 4 sẽ là 1 4 6 4 1
Cho biết các hệ số trong phép triển khai đa thức (a+b)n được xác định theo công thức sau đây:
(a b+ )n =C a n n+C a b n n− + + C n n− ab n− +C b n n n
Câu 7 (2 điểm): Viết chương trình xử lý dữ liệu mảng với các yêu cầu sau:
a) Hàm nhập dữ liệu cho một mảng (gồm số phần tử và các giá trị của mảng).
b) Hàm hiển thị giá trị các phần tử trong một mảng
c) Hàm thống kê để trả về các giá trị thống kê cho mảng gồm Min, Max, Mean (nhỏ nhất, lớn
nhất và trung bình cộng của các phần tử trong mảng)
d) Hàm main với khai báo 2 mảng A và B rồi:
• Nhập dữ liệu cho A và B
• Hiển thị lại nội dung của A và B
• Hiển thị các giá trị thống kê trong mảng A và mảng B
(Ghi chú: Cán bộ coi thi không được giải thích gì thêm)
Trang 29printf("Nhap canh a="); scanf("%f", &a);
printf("Nhap canh b="); scanf("%f", &b);
printf("Nhap canh c="); scanf("%f", &c);
Trang 30printf("Tong cac chu so cua: %ld la %ld\n",n1,s);
7.5 #include <stdio.h>#include <conio.h>
void NhapMang(int A[], int * N)
{
do {printf("\nNhap so phan tu cua mang N (N>0) :");
scanf("%d",&(*N));
}while (*N<1);
for (int i=0; i<*N; i++){
printf("Nhap phan tu thu %d :",i+1);
scanf("%d",&A[i]);
}
0.5
0.5
Trang 32}
Trang 33Câu 1 (1 điểm):
a) Thực hiện chuyển số thập phân 173 sang số hệ 2 và số nhị phân 1101001111110011
2 sang số hệ 16 Chú ý trình bày chi tiết quá trình thực hiện.
a) Cho hai số nguyên dương 9 và 12 hệ thập phân Chuyển đổi các số này sang số hệ 2 với khuôn dạng 8 bít và thực hiện phép toán cộng đối với hai số hệ 2 này
Câu 2 (1 điểm): Viết thuật toán bằng lưu đồ để tính tổng: S = -1+2-3+4+…+(-1)nn với n
>=0
Câu 3 (1 điểm): Viết chương trình tính tiền điện với yêu cầu sau:
− Nhập vào:
Số chữ dùng cũ kiểu số nguyên (ví dụ:1235)
Số chữ dùng mới kiểu số nguyên (1256)
− In ra phiếu hóa đơn tiền điện theo mẫu sau:
Câu 5 (2 điểm): Viết chương trình nhập vào một số tự nhiên N Hãy in ra màn hình (theo
mẫu của ví dụ bên dưới) số dư của phép chia liên tiếp cho 8 của số này; phép chia sẽ dừng lại khi thương số bằng 0
Ví dụ:
Nhap vao 1 so tu nhien: 1034
Ket qua thuc hien lien tiep cac phep chia cho 8:
a) Viết hàm: long giaiThua(int n) để tính n! (n là số tự nhiên)
b) Sử dụng hàm đã viết ở câu a) để viết hàm:
int toHopChap(int n, int k)
Trang 34tính tổ hợp chập k của n phần tử (k, n là các số tự nhiên, k <= n) Cho biết công thức tín
h tổ hợp chập k của n:
!
k n
n C
Ví dụ, kết quả in ra màn hình của hàm với n = 4 sẽ là 1 4 6 4 1
Cho biết các hệ số trong phép triển khai đa thức (a+b)n được xác định theo công thức sau đây:
(a b+ )n =C a n n+C a b n n− + + C n n−ab n− +C b n n n
Câu 7 (2 điểm): Viết chương trình thực hiện các công việc sau đây:
a Nhập vào một mảng gồm n phần tử số nguyên (1 ≤ n ≤ 50)
b In ra màn hình giá trị trung bình của các số chẵn lớn 4
c Nhập vào một giá trị nguyên x Tìm phần tử có giá trị x xuất hiện đầu tiên trong mảng v
à in ra màn hình Nếu không tìm thấy thì in ra màn hình câu thông báo “Khong tim thay”
(Ghi chú: Cán bộ coi thi không được giải thích gì thêm)
Câu
Điểm 1.5 1.00 a.
Kết quả 10101101 2
Việc chuyển đổi một
số nhị phân sang hệ hexa được thực hiện trên nguyên tắc: xét
từ trái sang phải, chuyển 4 bít nhị phân liên tiếp sang thành một số hexa tương ứng.
0011 1111 0011 1101
Trang 350.25 b.
Trang 37void main()
{
float a, b, c, p , s;
printf("Nhap canh a="); scanf("%f", &a);
printf("Nhap canh b="); scanf("%f", &b);
printf("Nhap canh c="); scanf("%f", &c);
Trang 38long toHopChap(int k, int n)
0.25
tb = soluong!=0?(float)tong/soluong:0;
printf("Tong cac so chan lon hon 4 la: %.2f\n",tb); 0.25
c printf("Nhap gia tri x can tim: ");
scanf("%d",&x);
0.25
Trang 39Thực hiện phép tính d = a + b, e = a * b ở trong hệ đếm cơ số 8 (Yêu cầu có đặt phép tính cụ thể).
Câu 2 (1 điểm): Trình bày sơ đồ khối để mô tả thuật toán cho phép nhập vào một số nguyên dươ
ng n, in ra màn hình kết quả của tổng s sau:
n s
n
−
= + + + +
Câu 3 (1 điểm): Viết chương trình tìm số lớn nhất và nhỏ nhất trong 3 số thực
Câu 4 (1 điểm): Viết chương trình nhập vào 2 số thực x, y Sau đó, tính giá trị của biểu thức sau:
Câu 5 (2 điểm): Viết chương trình nhập vào ngày, tháng, năm Máy sẽ hiện lên ngày, tháng, năm
hôm sau (Giả sử ta không tính năm nhuận)
Ví dụ: Ngày nhập vào là: 31/12/2012, thì ngày hôm sau sẽ là 01/01/2013
Câu 6 (2 điểm): Xây dựng hàm tính trung bình cộng các chữ số của một số nguyên dương sau đ
ó viết chương trình minh họa việc sử dụng hàm này
Câu 7 (2 điểm): Viết chương trình thực hiện các công việc sau đây:
Trang 40b) Nhập vào một số tự nhiên n (điều kiện 10 <= n <= 100).
c) Nhập dãy số gồm n số nguyên
d) In ra màn hình số chính phương lớn nhất của dãy số vừa nhập Trong trường hợp dãy khôn
g có số chính phương nào thì in thông báo “Day khong co so chinh phuong nao”
e) In ra màn hình trung bình cộng các số dương ở vị trí lẻ của dãy số Trong trường hợp dãy s
ố không có số nguyên dương nào thì in ra thông báo “Day khong co so nguyen duong nao”
(Ghi chú: Cán bộ coi thi không được giải thích gì thêm)
S
Đ
Trang 41printf("\nSo lon nhat la %f",max);
printf("\nSo nho nhat la %f",min);
printf("\n Nhap x: "); scanf("%f",&x);
printf("\n Nhap y: "); scanf("%f",&y);
Trang 42if (m==12){
m=1;
y++;
}else
m++;
}break;
d=1;
m++;
}break;
}
0.50
Trang 43printf("Ngay hom sau la: %d/%d/%d",d,m,y);
//0.25đ
}
1.50
int main(){
int a;
printf("Nhap vao mot so
tu nhien: "); scanf("%d",
&a); //0.25đ (khai báo, nhập)
printf("Trung binh cong cac chu so cua %d la %.4f",
Trang 45Câu 1 (1 điểm): Cho a, b là hai số có biểu diễn ở hệ đếm cơ số 8 như sau:
Thực hiện phép tính d = a + b, e = a * b ở trong hệ đếm cơ số 8 (Yêu cầu có đặt phép tính cụ thể)
Câu 2 (1 điểm): Vẽ sơ đồ khối để mô tả thuật toán tính tổng S = 2 + 4+ + 2n, trong đó n là số n
guyên dương cho trước Chú ý cần kiểm tra giá trị n > 0 khi nhập vào
Câu 3 (1 điểm): Nhập vào 1 số nguyên n, sau đó in ra chữ số hàng đơn vị và hàng chục của số ng
uyên đó
Câu 4 (1 điểm): Viết chương trình nhập vào số giờ làm và tiền lương trong 1 giờ, sau đó in ra tổ
ng tiền lương thu được Biết rằng, nếu số giờ làm > 40 thì những giờ làm dôi ra được tính 1,5 lần.
Câu 5 (2 điểm): Viết chương trình tính tổng:
!
!3
!2
!1
2 6
4 2
n
x x
x x S
n
++++
=
bằng phương pháp lặp (sử dụng vòng lặp), với hai giá trị x (giá trị số thực) và n (giá trị số nguyên)
được nhập vào từ bàn phím
Câu 6 (2 điểm):
f) Viết hàm: long giaiThua(int n) để tính n! (n là số tự nhiên)
g) Sử dụng hàm đã viết ở câu a) để viết hàm:
int toHopChap(int n, int k)
tính tổ hợp chập k của n phần tử (k, n là các số tự nhiên, k <= n) Cho biết công thức tính tổ hợ
p chập k của n:
!
k n
n C
Ví dụ, kết quả in ra màn hình của hàm với n = 4 sẽ là 1 4 6 4 1
Cho biết các hệ số trong phép triển khai đa thức (a+b)n được xác định theo công thức sau đây:
(a b+ )n =C a n n+C a b n n− + + C n n−ab n− +C b n n n
Câu 7 (2 điểm): Viết chương trình thực hiện các công việc sau đây:
− Nhập vào một số tự nhiên n (điều kiện 10 <= n <= 100)
− Nhập dãy số gồm n số nguyên
− In ra màn hình số chính phương lớn nhất của dãy số vừa nhập Trong trường hợp dãy khôn
g có số chính phương nào thì in thông báo “Day khong co so chinh phuong nao”
Trang 46− In ra màn hình trung bình cộng các số dương ở vị trí lẻ của dãy số Trong trường hợp dãy s
ố không có số nguyên dương nào thì in ra thông báo “Day khong co so nguyen duong nao”
(Ghi chú: Cán bộ coi thi không được giải thích gì thêm)
Trang 48printf("nhap so gio lam: "); scanf("%f",&gio);
printf("nhap tien gio: "); scanf("%f",&dgia);