C++数组指针题含答案.docx

上传人:b****6 文档编号:3155091 上传时间:2022-11-18 格式:DOCX 页数:21 大小:18.13KB
下载 相关 举报
C++数组指针题含答案.docx_第1页
第1页 / 共21页
C++数组指针题含答案.docx_第2页
第2页 / 共21页
C++数组指针题含答案.docx_第3页
第3页 / 共21页
C++数组指针题含答案.docx_第4页
第4页 / 共21页
C++数组指针题含答案.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

C++数组指针题含答案.docx

《C++数组指针题含答案.docx》由会员分享,可在线阅读,更多相关《C++数组指针题含答案.docx(21页珍藏版)》请在冰豆网上搜索。

C++数组指针题含答案.docx

C++数组指针题含答案

数组指针01:

逆序输出

从键盘输入n个整数(n<100),存放在一个一维数组中,逆序输出能被3整除的元素,并逆序输出数组下标为3的倍数的元素。

输入格式:

第一个整数为个数n,后续为n个整数

输出格式:

第一行能被3整除的元素,第二行为下标为3的倍数的元素,各个数值之间用空格分隔。

输入:

10279105436820

输出:

639

203102

#include

usingnamespacestd;

constintMAX=100;

intmain()

{

inta[MAX],n,i;

cin>>n;

for(i=0;i

cin>>a[i];

for(i=n-1;i>=0;i--)

if(a[i]%3==0)

cout<

cout<

for(i=n-1;i>=0;i--)

if(i%3==0)

cout<

cout<

return0;

}

数组指针02:

逆序存储

从键盘输入n(n<100)个整数,存放在一个一维数组a中,将它们逆序存放在另一个整型数组b中,并按b数组中下标从小到大的顺序输出下标为3的倍数的数组元素。

输入格式:

第一个数为数组中元素个数n,之后为n个元素。

输出格式:

下标为3的倍数的元素,各个数值之间用空格分隔。

输入:

10279105436820

输出:

203102

#include

usingnamespacestd;

constintMAX=100;

intmain()

{

inta[MAX],b[MAX],n,i;

cin>>n;

for(i=0;i

{

cin>>a[i];

b[n-1-i]=a[i];

}

for(i=0;i

if(i%3==0)

cout<

cout<

return0;

}

数组指针03:

平均值

从键盘输入任意个整数(以0结束,假设不超过100个),存放在一个一维数组中,计算这组数的平均值(实型)。

输入:

152791054368200

输出:

8.09091

#include

usingnamespacestd;

constintMAX=100;

intmain()

{

inta[MAX],n=0;

doubles=0;

cin>>a[n];

while(a[n])

{

s+=a[n];

n++;

cin>>a[n];

}

cout<

return0;

}

数组指针04:

最大值

从键盘输入任意个整数(以0结束,个数不超过100),存放在一个一维数组中,输出这组数的最大值。

输入:

102791154368200

输出:

20

#include

usingnamespacestd;

constintMAX=100;

intmain()

{

inta[MAX],i,n=0,max;

cin>>a[n];

while(a[n])

{

n++;

cin>>a[n];

}

max=a[0];

for(i=1;i

{

if(a[i]>max)

max=a[i];

}

cout<

return0;

}

数组指针05:

最小值的位置

从键盘输入任意个整数(以0结束,个数不超过100),存放在一个一维数组中,数据从数组的0下标开始存储,输出这组数的最小值所在数组下标。

输入:

102791154368200

输出:

1

#include

usingnamespacestd;

constintMAX=100;

intmain()

{

inta[MAX],i,n=0,min=0;

cin>>a[n];

while(a[n])

{

n++;

cin>>a[n];

}

for(i=1;i

{

if(a[i]

min=i;

}

cout<

return0;

}

数组指针06:

排序

从键盘输入任意个整数(以0结束,假设个数最大不超过100),将这些数存放在一个一维数组中,将它们从小到大排序后输出。

输入:

152791154368200

输出:

23456789111520

#include

usingnamespacestd;

constintMAX=100;

intmain()

{

inta[MAX],i,j,n=0,mini,temp;

cin>>a[n];

while(a[n])

{

n++;

cin>>a[n];

}

for(i=0;i

{

mini=i;

for(j=i+1;j

if(a[j]

if(mini!

=i)

{

temp=a[i];

a[i]=a[mini];

a[mini]=temp;

}

}

for(i=0;i

{

cout<

}

cout<

return0;

}

数组指针07:

中位数

从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,输出其中位数。

说明:

中位数(Medians)统计学名词,是指将数据按从小到大顺序排列起来,形成一个数列,居于数列中间位置的那个数据。

若数列元素个数为奇数,则中位数为最中间的元素;

若数列元素个数为偶数,则中位数为最中间两个元素的平均数。

例如:

输入2791154368200则排序后结果为234567891120,则中间两个数的平均值为6.5

输入:

2791154368200

输出:

6.5

#include

usingnamespacestd;

constintMAX=100;

intmain()

{

inta[MAX],i,j,n=0,mini,temp;

cin>>a[n];

while(a[n])

{

n++;

cin>>a[n];

}

for(i=0;i

{

mini=i;

for(j=i+1;j

if(a[j]

if(mini!

=i)

{

temp=a[i];

a[i]=a[mini];

a[mini]=temp;

}

}

if(n%2==1)

cout<

else

cout<<(a[n/2]+a[n/2-1])/2.0<

cout<

return0;

}

 

数组指针08:

排序

从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,将它们按奇数在前、偶数在后,同为奇数或偶数的按从小到大的顺序排序,并输出排序后的结果。

其中:

排序过程用函数实现。

输入:

102791154368200

输出:

35791124681020

#include

usingnamespacestd;

voidsort(ints[],intn)

{

inti,j,t;

for(i=0;i

for(j=i+1;j

if(((s[i]%2)<(s[j]%2))||(((s[i]%2)==(s[j]%2))&&(s[i]>s[j])))

{

t=s[i];

s[i]=s[j];

s[j]=t;

}

}

intmain()

{

ints[100],n=0,i;

cin>>s[n];

while(s[n])

{

n++;

cin>>s[n];

}

sort(s,n);

for(i=0;i

{

cout<

}

return0;

}

数组指针09:

斐波那契数列

输入一个正整数n(n<100),将斐波那契数列的前n项保存到一维数组中,并输出斐波那契数列中对3取余为2的数。

斐波那契数列为11235813213455……

输入:

10

输出:

258

#include

usingnamespacestd;

constintMAX=100;

intmain()

{

inta[MAX],n,i;

cin>>n;

a[0]=a[1]=1;

for(i=2;i

a[i]=a[i-1]+a[i-2];

for(i=0;i

{

if(a[i]%3==2)

cout<

}

cout<

return0;

}

数组指针10:

素数

输入m、n(m,n<100),输出[m,n]之间的素数。

要求:

使用塞选法求素数。

用塞选法求100以内的素数过程:

在一张纸上写上1到100全部整数,然后逐个判断它们是否是素数,

找出一个非素数,就把它挖掉,最后剩下的就是素数。

具体做法如下:

<1>先将1挖掉(因为1不是素数)。

<2>用2去除它后面的各个数(2除外),把能被2整除的数挖掉,即把2的倍数挖掉。

<3>用3去除它后面的各数(3除外),把3的倍数挖掉。

<4>分别用4、5…各数作为除数去除这些数以后的各数。

这个过程一直进行到在除数后面的数已全被挖掉为止。

最后剩下的都是素数。

输入:

519

输出:

5711131719

#include

usingnamespacestd;

intmain()

{

intm,n,a[101],i,j;

for(i=1;i<101;i++)

a[i]=i;

cin>>m>>n;

for(i=2;i<101;i++)

{

for(j=i+1;j<101;j++)

if(a[j]%i==0)

a[j]=0;

}

for(i=m;i<=n;i++)

{

if(a[i]!

=0)

cout<

}

return0;

}

数组指针11:

数据插入

从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,在输入一个插入位置pos(0<=pos<=n)及被插入的数值x,将x插入到下标为pos的位置。

输出插入后数组中的所有元素。

输入:

102791154368200

8100

输出:

10279115431006820

#include

usingnamespacestd;

constintMAX=100;

intmain()

{

inta[MAX],i,pos,x,n=0;

cin>>a[n];

while(a[n])

{

n++;

cin>>a[n];

}

cin>>pos>>x;

for(i=n-1;i>=pos;i--)

{

a[i+1]=a[i];

}

a[pos]=x;

n+

展开阅读全文
相关搜索

当前位置:首页 > 幼儿教育 > 少儿英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1