Tin học 8 hsg

- 0 / 0
Nguồn:
Người gửi: Lê Thị Giang
Ngày gửi: 10h:11' 28-08-2024
Dung lượng: 26.7 KB
Số lượt tải: 165
…………………………..
ĐỀ THI CHỌN HỌC SINH GIỎI HUYỆN LỚP 9
Năm học 2023 – 2024
MÔN: TIN HỌC
Thời gian làm bài: 150 phút
( Đề thi gồm 04 câu, 02 trang)
Tổng quan đề thi
Câu 1
tongtichcs.cpp
tongtichcs.inp
tongtichcs.out
Câu 2
mang.cpp
mang.inp
mang.out
Câu 3
xau.cpp
xau.inp
xau.out
Câu 4
dem.cpp
dem.inp
dem.out
Hãy viết chương trình C++ để làm các bài toán sau:
Câu 1 (6 điểm) Tổng tích chữ số.
Cho n là 1 số nguyên trong khoảng -32768 đến 32767.
- Yêu cầu: Hãy tính tổng và tích các chữ số của một số n?
- Dữ liệu vào: Trong tệp tongtichcs.inp nhập số n.
- Dữ liệu ra: Trong tệp tongtichcs.out dòng 1 tính tổng các chữ số, dòng 2 tính tích các chữ
số.
- Ví dụ:
tongtichcs.inp
tongtichcs.out
152
8
10
245
11
40
Câu 2 (6 điểm) Mảng
- Yêu cầu: Cho một dãy số gồm có N số hạng nguyên dương a1, a2,…aN (n<=250)
Hãy tìm giá trị lớn nhất (max), chỉ số của phần tử max, giá trị của phần tử nhỏ nhất (min),
chỉ số phần tử min.
- Dữ liệu vào: Trong tệp mang.inp dòng 1 nhập số lượng phần tử của mảng, dòng 2 các giá
trị của mảng.
- Dữ liệu ra: Trong tệp mang.out
Dòng 1: In ra giá trị của phần tử lớn nhất (max)
Dòng 2: In ra chỉ số của phần tử lớn nhất (max)
Dòng 3: In ra giá trị của phần tử nhỏ nhất (min)
Dòng 4: In ra chỉ số của phần tử nhỏ nhất (min)
- Ví dụ:
mang.inp
mang.out
4
Gia tri cua phan tu max:38
7 5 9 38
Chi so cua phan tu max:4
Gia tri cua phan tu min:5
Chi so cua phan tu min:2
Câu 3 (5 điểm) Xâu
- Yêu cầu: Chuyển đổi chữ thường thành chữ hoa.
- Dữ liệu vào: Trong tệp xau.inp nhập xâu có chữ thường
- Dữ liệu ra: Trong tệp xau.out in ra xâu hoa
- Ví dụ:
xau.inp
hello
hamy
xau.out
xau sau khi duoc chuyen thanh chu hoa là: HELLO
xau sau khi duoc chuyen thanh chu hoa là: HAMY
Câu 4 (3 điểm) Đếm số lượng các phần tử khác nhau trong dãy
Cho một dãy số gồm có N số hạng nguyên dương a 1, a2,…aN (Với N<104, 0 ≤ ak ≤ 1010,
1≤ k≤N).
- Yêu cầu: Trong dãy số trên đã sử dụng bao nhiêu số khác nhau?
- Dữ liệu vào: Trong tệp dem.inp dòng đầu ghi số N, dòng thứ hai ghi các số hạng a1,
a2,…aN (Với N<104, 0 ≤ ak ≤ 1010 , 1≤ k≤N), các số hạng cách nhau bởi một dấu cách.
- Dữ liệu ra: Trong tệp dem.out ghi số lượng các số khác nhau của dãy.
- Ví dụ:
dem.inp
dem.out
5
3
12142
------------Hết----------
MÃ KÍ HIỆU
HƯỚNG DẪN CHẤM ĐỀ THI HỌC SINH GIỎI LỚP 9
………………………
Năm học 2023-2024
MÔN: TIN HỌC
(Hướng dẫn chấm gồm 03 trang)
Câu
Đáp án
1
#include
(6 điểm) using namespace std;
int main()
{
freopen("tongtichcs.inp","r",stdin);
freopen("tongtichcs.out","w",stdout);
int p,n,s;
cin>>n;
s=0;p=1;
while (n!=0)
{
s=s+(n%10);
p=p*(n%10);
n=n/10;
}
cout<
}
2
#include
(6 điểm) using namespace std;
const long nmax=250;
long n,i,max1,min1,csmax,csmin,a[nmax];
int main()
{
freopen("mang.inp","r",stdin);
freopen("mang.out","w",stdout);
cin>>n;
for(long i=1;i<=n;i++)
{
cin>>a[i];
}
max1=a[1];
min1=a[1];
csmax=1; csmin=1;
for(long i=1;i<=n;i++)
{
Điểm
1.0 điểm
0.5 điểm
3.0 điẻm
1.5 điểm
1.0 điểm
3.0 điểm
}
cout<
if (a[i]
cout<<"\n";
cout<<"Gia tri cua phan tu max:"<
}
3
#include
(5 điểm) #include
using namespace std;
int main(){
freopen("xau.inp","r",stdin);
freopen("xau.out","w",stdout);
char str[25];
int i;
cin>>str;
for(i=0;i<=strlen(str);i++)
{
if(str[i]>=97&&str[i]<=122)
str[i]=str[i]-32;
}
cout<<"xau sau khi duoc chuyen thanh chu hoa là:"<
4
#include
(3 điểm) using namespace std;
const long nmax=250;
long n,i,max1,csmax,trunggian,a[nmax];
int main()
{
freopen("dem.inp","r",stdin);
freopen("dem.inp","w",stdout);
cin>>n;
for(long i=0;i<=n-1;i++)
cin>>a[i];
for(long j=n-1;j>=1;j--)
2.0 điểm
0.5 điểm
1.0 điểm
3.0 điểm
0.5 điểm
0.5 điểm
0.5 điểm
for(long i=0;i<=j-1;i++)
if(a[i]>a[j])
{
trunggian=a[i];
a[i]=a[j];
a[j]=trunggian;
}
cout<<"day so duoc sap xep la:\n";
cout<
{
cout<
}
cout<<"\n"<<" mang co cac phan tu khac nhau la:"<
}
-----------Hết-----------
1.0 điểm
1.0 điểm









Các ý kiến mới nhất