C++数组补充习题 下载本文

第 1 页 共 4 页机密 第 1 页 2014-12-1818:02:58

第1题:

编写程序,从任意n个数中找出最大数和最小数,并将它们相互交换后输出。输入分2行:第一行为n的值,第二行为n个数。 样例输入: 5

1 5 3 2 0

样例输出:1 0 3 2 5

第2题:

编写程序,将任意n个数按从大到小的顺序排序。输入分2行:第一行为n的值,第二行为n个数。 样例输入: 5

1 5 3 2 0

样例输出:5 3 2 1 0 第3题:

编写程序,将一个数组中的数循环左移。输入分2行:第一行为n的值,第二行为n个数。 样例输入: 5

1 5 3 2 0

样例输出:5 3 2 0 1 第4题:

编写程序,输入若干学生的成绩,计算平均分,并输出低于平均分的学生成绩。输入分2行:第一行为n的值,第二行为n个数;输出分2行:第一行为平均分,第二行为低于平均分的成绩。 样例输入: 5

60 70 80 90 100

样例输出: 80 60 70

第5题:

编写程序,利用顺序查找法从一个数列中查找某数是否存在,如果存在则输出该数的下标,否则输出NO。输入分3行:第一行为n的值代表数列中数的个数,第二行为n个数,第三行为要查找的数。 样例输入: 5

6 2 3 8 5 3

样例输出:2 样例输入: 5

6 2 3 8 5 4

样例输出:NO 1

样例输出:3 5 2 样例输入: 5

1 1 3 5 2 4

样例输出:1 1 3 5 2

第8题:

编写程序,从任意n个数(升序排列)中插入某一个数k。输入分3行:第一行为n的值代表数列中数的个数,第二行为n个数,第三行为要插入的数k。 样例输入: 5 1 2 3 4 6 0 样例输出:0 1 2 3 4 6

样例输入: 5

1 2 3 4 6 5

样例输出:1 2 3 4 5 6 样例输入: 5

1 2 3 4 6 8

样例输出:1 2 3 4 6 8

第6题:

编写程序,将一个数组中的数循环右移。输入分2行:第一行为n的值,第二行为n个数。 样例输入: 5 1 5 3 2 0

样例输出:0 1 5 3 2 第7题:

编写程序,从任意n个数(允许有重复)中删除某一个数k。输入分3行:第一行为n的值代表数列中数的个数,第二行为n个数,第三行为要删除的数k。 样例输入: 5

1 1 3 5 2

第9题:

从任意一组正整数中找出素数,计算素数之和,并按从大到小顺序排序。输出分2行:第一行为素数之和,第二行为素数排序结果。 样例输入:1 3 5 2 0 样例输出: 10 5 3 2

第 2 页 共 4 页机密 第 2 页 2014-12-1818:02:58

1、#include int main()

{ int n,w1,w2,j,k,t; cin>>n;w1=0;w2=0; int a[50],i;

for (i=0;i<=n-1;i++) cin>>a[i];

for (j=1;j<=n-1;j++) if(a[w1]a[k]) w2=k;

{t=a[w1];a[w1]=a[w2];a[w2]=t;}

for (i=0;i<=n-1;i++) cout<

2、#include int main()

{ int a[50],i,j,t,w,n; cin>>n;

for (i=0;i<=n-1;i++) cin>>a[i];

for (i=0;i<=n-2 ;i++) {w=i;

for(j=i+1;j<=n-1;j++) if (a[w]

{t=a[i];a[i]=a[w];a[w]=t;} }

for (i=0;i<=n-1;i++) cout<

3、#include int main()

{ int a[50],i,n,t; cin>>n;

for(i=0;i<=n-1;i++) cin>>a[i]; t=a[0];

for (i=0;i<=n-1;i++) a[i]=a[i+1]; a[n-1]=t;

for(i=0;i<=n-1;i++) cout<

4、#include int main() { int a[50],i,n; float s,v; s=0; cin>>n;

for(i=0;i<=n-1;i++) cin>>a[i];

for (i=0;i<=n-1;i++) s=s+a[i]; v=s/n;

cout<

cout< int main() { int a[50],i,n,w,j; cin>>n;j=0; for (i=0;i<=n-1;i++) cin>>a[i]; cin>>w; for (i=0;i<=n-1;i++) if (a[i]==w) {cout<

6、#include int main()

{ int a[50],n,i,x; cin>>n;

for (i=0;i<=n-1;i++) cin>>a[i]; x=a[n-1];

for (i=n-1;i>=0;i--) a[i+1]=a[i]; a[0]=x;

for (i=0;i<=n-1;i++) cout<

7、#include int main()

{ int a[200],i,n,w,q=0,k; cin>>n;

for(i=0;i<=n-1;i++) cin>>a[i]; cin>>w; for (i=0;i

8、#include int main()

{ int a[50],i,n,q,j; cin>>n;

for(i=0;i<=n-1;i++) cin>>a[i]; cin>>q;

for (i=0;i<=n-1;i++) if (q=i+1;j--) a[j]=a[j-1]; a[i]=q;

for (i=0;i<=n;i++) cout<

9、#include int main() {int

a[100],b[100],p=0,i,x,j,t,k=0,

第 3 页 共 4 页机密 第 3 页 2014-12-1818:02:58

w,s=0,gs; cin>>x; while(x>0)

{a[p]=x;cin>>x;p++;} for(i=0;i

{gs=0;for(j=1;j<=a[i];j++) if(a[i]%j==0) gs++; if(gs==2)

{b[k]=a[i];k++;} }

for(i=0;i

s=s+b[i];cout<

for(j=i+1;j

for(i=0;i

第1题: 编写程序,找出m行n列的二维数组中所有元素的最大值。输入分m+1行:第一行为m和n的值,以下m行代表二维数组,其中每一行包括n个数。 样例输入: 3 3 1 2 3 4 5 6 7 8 9

样例输出:9

第2题:

编写程序,计算二维数组中各列之和。输入分m+1行:第一行为m和n

的值,以下m行代表二维数组,其中每一行包括n个数。 样例输入: 3 3 1 2 3 4 5 6 7 8 9

样例输出:12 15 18 第3题:

编写程序,计算矩阵(3行3列)的转置。 样例输入: 1 2 3 4 5 6 7 8 9

样例输出: 1 4 7 2 5 8 3 6 9 第4题:

编写程序,输出矩阵(3行3列)的右上三角。 样例输入: 1 2 3 4 5 6 7 8 9

样例输出:

1 2 3 5 6 9

第5题:

编写程序,输出矩阵(3行3列)的右下三角。 样例输入: 1 2 3 4 5 6 7 8 9

样例输出:

3 5 6 7 8 9

1、#include int main() { int a[50][50],i,m,n,j,t,e,w1,w2; cin>>m>>n; for (i=0;i>a[i][j]; t=a[0][0];

for (i=0;i

2、#include int main() { int a[50][50],i,m,n,j,t,e,w1,w2; cin>>m>>n; for (i=0;i>a[i][j]; for (j=0;j

for (i=0;i

t=t+a[i][j];cout<

3、#include int main()

{ int a[3][3],i,m,n,j,t,e,w1,w2; for (i=0;i<3;i++) for (j=0;j<3;j++) cin>>a[i][j]; for (i=0;i<3;i++) for (j=0;j

for (i=0;i<3;i++) {cout<

第 4 页 共 4 页机密 第 4 页 2014-12-1818:02:58

for (j=0;j<3;j++) cout<

4、#include int main()

{ int a[3][3],i,j; for (i=0;i<3;i++) for (j=0;j<3;j++) cin>>a[i][j]; for (i=0;i<3;i++) for (j=i;j<3;j++) cout<

5、#include int main()

{ int a[3][3],i,j; for (i=0;i<3;i++) for (j=0;j<3;j++) cin>>a[i][j]; for (i=0;i<3;i++) for (j=2-i;j<3;j++) cout<

编写程序,比较两个字符串的大小,不允许使用strcmp函数。输入分2行,每一行均为字符串(不包含空格)。如果第一个字符串大于第二个字符串,则输出1;如果两个字符串大小相等,则输出0;如果第一个字符串小于第二个字符串,则输出-1。

样例输入: China China

样例输出:0

#include #include int main() {

char str1[100],str2[100]; int s1=0,s2=0,m=0,n=0,j=0; cin>>str1;

for(m=0;str1[m]!='\\0';m++) s1=s1+str1[m]; cin>>str2;

for(n=0;str2[n]!='\\0';n++) s2=s2+str2[n]; if(s1>s2) cout<<\if(s1==s2) cout<<\if(s1