资源描述
第2练
以下题目在实验室上机完成,并用程序评测系统评测上机成绩。打开相关源程序后,只能在//********与//=======之间编写程序,若修改源程序的其它部分,可能得0分。
第一套
A. 教师示范题(C4_1A.cpp)
【题目描述】
一维数组a中有10个整数,编写一个程序输出这组数中的最大值。
【输入】
输入文件C4_1A.in有1行,包含10个整数,整数之间用空格隔开。
【输出】
输出文件C4_1A.out有1行,包含1个整数,即数组a中最大值。
【输入输出样例1】
C4_1A.in
C4_1A.out
8 67 29 59 11 53 69 37 26 91
91
【输入输出样例2】
C4_1A.in
C4_1A.out
3 21 5 98 44 12 1 1 67 61
98
【数据限制】
0≤a[i]≤200
#include <stdio.h>
int main()
{
int a[10];
int i,max;
freopen("C4_1A.in", "r", stdin);
freopen("C4_1A.out", "w", stdout);
for (i=0;i<10;i++)
scanf("%d",&a[i]);
//*********************************
//一维数组a中有10个整数,编写一个程序输出这组数中的最大值。
max=a[0];
for(i=0;i<10;i++)
{
if(max<a[i])
max=a[i];
}
//=================================
printf("%d",max);
return 0;
}
B. 学生模拟题(C4_1B.cpp)
【题目描述】
一维数组a中有20个整数,编写一个程序输出这组数中的最小值。
【输入】
输入文件C4_1B.in有1行,包含20个整数,整数之间用空格隔开。
【输出】
输出文件C4_1B.out有1行,包含1个整数,即数组a中最小值。
【输入输出样例1】
C4_1B.in
C4_1B.out
3 21 5 98 44 12 64 77 66 96 76 67 61 2 13 16 9 78 56 69
2
【输入输出样例2】
C4_1B.in
C4_1B.out
79 88 35 157 89 76 35 58 65 90 73 36 47 98 55 65 70 38 93 152
35
【数据限制】
0≤a[i]≤200
#include <stdio.h>
int main()
{
int a[20];
int i,min;
freopen("C4_1B.in", "r", stdin);
freopen("C4_1B.out", "w", stdout);
for (i=0;i<20;i++)
scanf("%d",&a[i]);
//***********************************
//一维数组a中有20个整数,编写一个程序输出这组数中的最小值。
min=a[0];
for(i=0;i<20;i++)
{
if(min>a[i])
min=a[i];
}
//===================================
printf("%d",min);
return 0;
}
C. 拓展题(C4_1C.cpp)
【题目描述】
一维数组a中有10个整数,编写一个程序输出这组数中的平均值并求有多少个数超过平均值。
【输入】
输入文件C4_1C.in有1行,包含10个整数,整数之间用空格隔开。
【输出】
输入文件C4_1C.in有1行,包含2个数,分别是平均值(保留一位小数)和超过平均值的个数,两个数之间用空格隔开。
【输入输出样例1】
C4_1C.in
C4_1C.out
57 89 76 35 58 65 90 73 36 47
62.6 5
【输入输出样例2】
C4_1C.in
C4_1C.out
98 44 12 64 5 66 2 76 67 61
49.5 6
【数据限制】
0≤a[i]≤200
#include <stdio.h>
int main()
{
int a[10];
int i,sum;
float avg;
freopen("C4_1C.in", "r", stdin);
freopen("C4_1C.out", "w", stdout);
for (i=0;i<10;i++)
scanf("%d",&a[i]);
//************************************
//一维数组a中有10个整数,编写一个程序输出这组数中的平均值并求有多少个数超过平均值。
sum=0;
for(i=0;i<10;i++)
{
sum+=a[i];
}
avg=sum/(i*1.0);//保留一位小数
sum=0;
for(i=0;i<10;i++)
{
if(a[i]>avg)
sum++;
}
//====================================
printf("%3.1f %d",avg,sum);
return 0;
}
第二套
A. 教师示范题(C4_2A.cpp)
【题目描述】
一维数组a中有n(0<n<100)个整数,编写一个程序将数组a中第k个(0≤k≤n-1)元素删除。
【输入】
输入文件C4_2A.in有2行,第1行有2个整数分别表示n和k,整数之间用空格隔开;第2行有n个整数表示数组a中的各个元素,整数之间用空格隔开。
【输出】
输出文件C4_2A.out有1行,包含n-1个整数,即删除后数组中的各个元素,整数之间用空格隔开。
【输入输出样例1】
C4_2A.in
C4_2A.out
10 5
23 21 5 98 19 12 6 10 8 61
23 21 5 98 19 6 10 8 61
【输入输出样例2】
C4_2A.in
C4_2A.out
20 11
23 21 5 98 19 12 6 10 8 61 89 67 56 34 56 32 67 87 45 32
23 21 5 98 19 12 6 10 8 61 89 56 34 56 32 67 87 45 32
【数据限制】
0≤a[i]≤100
#include <stdio.h>
int main()
{
int a[100]={0};
int n,i,k;
freopen("C4_2A.in", "r", stdin);
// freopen("C4_2A.out", "w", stdout);
scanf("%d%d",&n,&k);
for (i=0;i<n;i++)
scanf("%d",&a[i]);
//*********************************
//一维数组a中有n(0<n<100)个整数,编写一个程序将数组a中第k个(0
≤k≤n-1)元素删除。
for(i=k;i<n;i++)
{
a[i]=a[i+1];
}
for(i=0;i<n-1;i++)
printf("%d ",a[i]);
//=================================
return 0;
}
B. 学生模拟题(C4_2B.cpp)
【题目描述】
一维数组a中有n(0<n<99)个整数,编写一个程序在数组a中第k位置(0≤k≤n-1)插入一个元素d。
【输入】
输入文件C4_2B.in有2行,第1行有3个整数分别表示n、k和d,整数之间用空格隔开;第2行有n个整数表示数组a中的各个元素,整数之间用空格隔开。
【输出】
输出文件C4_2B.out有1行,包含n+1个整数,即插入后数组中的各个元素,整数之间用空格隔开。
【输入输出样例1】
C4_2B.in
C4_2A.out
10 5 78
23 21 5 98 19 12 6 10 8 61
23 21 5 98 19 78 12 6 10 8 61
【输入输出样例2】
C4_2B.in
C4_2B.out
20 16 91
23 21 5 98 19 12 6 10 8 61 89 67 56 34 56 32 67 87 45 32
23 21 5 98 19 12 6 10 8 61 89 67 56 34 56 32 91 67 87 45 32
【数据限制】
0≤a[i]≤100
#include <stdio.h>
int main()
{
int a[100]={0};
int n,i,k,d;
freopen("C4_2B.in", "r", stdin);
freopen("C4_2B.out", "w", stdout);
scanf("%d%d%d",&n,&k,&d);
for (i=0;i<n;i++)
scanf("%d",&a[i]);
//*********************************
//一维数组a中有n(0<n<99)个整数,编写一个程序在数组a中第k位置(0≤k≤n-1)插入一个元素d。
for(i=n;i>=k;i--)
{
a[i+1]=a[i];
if(i==k)
{
a[i]=d;
}
}
for(i=0;i<n+1;i++)
{
printf("%d ",a[i]);
}
//=================================
return 0;
}
C. 拓展题(C4_2C.cpp)
【题目描述】
一维数组a中有n(0<n<100)个整数,编写一个程序将数组a中所有值为d的元素删除。
【输入】
输入文件C4_2C.in有2行,第1行有2个整数分别表示n和d,整数之间用空格隔开;第2行有n个整数表示数组a中的各个元素,整数之间用空格隔开。
【输出】
输出文件C4_2C.out有1行,即删除后数组中的各个元素,整数之间用空格隔开。
【输入输出样例1】
C4_2C.in
C4_2C.out
10 21
23 21 5 98 19 21 6 10 8 61
23 5 98 19 6 10 8 61
【输入输出样例2】
C4_2C.in
C4_2C.out
20 56
23 21 5 98 56 12 6 10 8 61 89 67 56 34 56 56 67 87 45 32
23 21 5 98 12 6 10 8 61 89 67 34 67 87 45 32
【数据限制】
0≤a[i]≤100
#include <stdio.h>
int main()
{
int a[100]={0};
int n,i,j,d,m;
freopen("C4_2C.in", "r", stdin);
freopen("C4_2C.out", "w", stdout);
scanf("%d%d",&n,&d);
for (i=0;i<n;i++)
scanf("%d",&a[i]);
//*************************************
//一维数组a中有n(0<n<100)个整数,编写一个程序将数组a中所有值为d的元素删除。
for(i=0;i<n;i++)
{
if(a[i]==d)
{
for(j=i;j<n-1;j++)
a[j]=a[j+1];
n--;
i--;
}
}
for(i=0;i<n;i++)
{
printf("%d ",a[i]);
}
/* for(i=0;i<n;i++)
{
if(a[i]!=d)
{
printf("%d",a[i]);
if(i!=n-1)
printf(" ");
}
}
*/
/*
j=0;
for(i=0;i<n;i++)
{
if(a[i]!=d)
{
a[j]=a[i];
j++;
}
}
for(i=0;i<j;i++)
{
printf("%d ",a[i]);
}
*/
//=====================================
return 0;
}
第三套
A. 教师示范题(C4_3A.cpp)
【题目描述】
有一个4行5列的二维数组b,编写一个程序计算每一行的总和,并将此和顺序存放在一个长度为4的一维数组中,最后按顺序输出该一维数组。
【输入】
输入文件C4_3A.in有4行,每行有5个整数,整数之间用空格隔开。
【输出】
输出文件C4_3A.out有1行,包含4个整数,即每行的总和,整数之间用空格隔开。
【输入输出样例1】
C4_3A.in
C4_3A.out
3 21 5 98 10
44 12 1 12 8
67 61 45 67 17
35 36 78 90 19
137 77 257 258
【输入输出样例2】
C4_3A.in
C4_3A.out
13 21 55 98 47
12 18 19 67 61
89 90 36 78 10
89 87 67 90 12
234 177 303 345
【数据限制】
0≤b[i][j]≤100
B. 学生模拟题(C4_3B.cpp)
【题目描述】
有一个4行5列的二维数组b,编写一个程序计算每一列的总和,并将此和顺序存放在一个长度为5的一维数组中,最后按顺序输出该一维数组。
【输入】
输入文件C4_3B.in有4行,每行有5个整数,整数之间用空格隔开。
【输出】
输出文件C4_3B.out有1行,包含5个整数,即每列的总和,整数之间用空格隔开。
【输入输出样例1】
C4_3B.in
C4_3B.out
3 21 5 98 10
44 12 1 12 8
67 61 45 67 17
35 36 78 90 19
149 130 129 267 54
【输入输出样例2】
C4_3B.in
C4_3B.out
13 21 55 98 47
12 18 19 67 61
89 90 36 78 10
89 87 67 90 12
203 216 177 333 130
【数据限制】
0≤b[i][j]≤100
#include <stdio.h>
int main()
{
int b[4][5],a[5]={0};
int i,j;
freopen("C4_3B.in", "r", stdin);
freopen("C4_3B.out", "w", stdout);
for (i=0;i<4;i++)
for (j=0;j<5;j++)
scanf("%d",&b[i][j]);
//************************************
//有一个4行5列的二维数组b,编写一个程序计算每一列的总和,并将此和顺序存放在一个长度为5的一维数组中,
//最后按顺序输出该一维数组。
for(i=0;i<4;i++)
{
for(j=0;j<5;j++)
{
a[j]+=b[i][j];
}
}
for(i=0;i<5;i++)
{
printf("%d ",a[i]);
}
//====================================
return 0;
}
C. 拓展题(C4_3C.cpp)
【题目描述】
有一个5行5列的矩阵(即二维数组b),要求以主对角线为对称线,将对称元素相加并将结果存放在下三角元素中,右上三角元素置为0。
【输入】
输入文件C4_3C.in有5行,每行有5个整数,整数之间用空格隔开。
【输出】
输出文件C4_3C.out有5行,每行有5个整数,整数之间用空格隔开。
【输入输出样例1】
C4_3C.in
C4_3C.out
23 21 15 68 10
44 12 10 12 28
67 61 45 19 17
30 36 78 70 19
45 17 28 36 23
23 0 0 0 0
65 12 0 0 0
82 71 45 0 0
98 48 97 70 0
55 45 45 55 23
【输入输出样例2】
C4_3C.in
C4_3C.out
10 20 30 21 22
12 18 19 67 61
29 60 36 15 10
22 27 17 10 12
13 21 55 21 47
10 0 0 0 0
32 18 0 0 0
59 79 36 0 0
43 94 32 10 0
35 82 65 33 47
【数据限制】
0≤b[i][j]≤100
#include <stdio.h>
int main()
{
int b[5][5];
int i,j;
freopen("C4_3C.in", "r", stdin);
freopen("C4_3C.out", "w", stdout);
for (i=0;i<5;i++)
for (j=0;j<5;j++)
scanf("%d",&b[i][j]);
//*************************************
//有一个5行5列的矩阵(即二维数组b),要求以主对角线为对称线,将对称元素相加并将结果存放在下三角元素中,
//右上三角元素置为0。
for(i=0;i<=3;i++)
{
for(j=i+1;j<5;j++)
{
b[j][i]+=b[i][j];
b[i][j]=0;
}
}
for(i=0;i<=4;i++)
{
for(j=0;j<=4;j++)
{
printf("%d",b[i][j]);
if(j!=4)
{
printf(" ");
}
}
printf("\n");
}
//======================================
return 0;
}
(注:专业文档是经验性极强的领域,无法思考和涵盖全面,素材和资料部分来自网络,供参考。可复制、编制,期待你的好评与关注)
展开阅读全文