C数组指针题含答案.docx

上传人:b****0 文档编号:9087795 上传时间:2023-05-17 格式:DOCX 页数:25 大小:18.03KB
下载 相关 举报
C数组指针题含答案.docx_第1页
第1页 / 共25页
C数组指针题含答案.docx_第2页
第2页 / 共25页
C数组指针题含答案.docx_第3页
第3页 / 共25页
C数组指针题含答案.docx_第4页
第4页 / 共25页
C数组指针题含答案.docx_第5页
第5页 / 共25页
C数组指针题含答案.docx_第6页
第6页 / 共25页
C数组指针题含答案.docx_第7页
第7页 / 共25页
C数组指针题含答案.docx_第8页
第8页 / 共25页
C数组指针题含答案.docx_第9页
第9页 / 共25页
C数组指针题含答案.docx_第10页
第10页 / 共25页
C数组指针题含答案.docx_第11页
第11页 / 共25页
C数组指针题含答案.docx_第12页
第12页 / 共25页
C数组指针题含答案.docx_第13页
第13页 / 共25页
C数组指针题含答案.docx_第14页
第14页 / 共25页
C数组指针题含答案.docx_第15页
第15页 / 共25页
C数组指针题含答案.docx_第16页
第16页 / 共25页
C数组指针题含答案.docx_第17页
第17页 / 共25页
C数组指针题含答案.docx_第18页
第18页 / 共25页
C数组指针题含答案.docx_第19页
第19页 / 共25页
C数组指针题含答案.docx_第20页
第20页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C数组指针题含答案.docx

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

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

输出:

#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,则中间两个数的平均值为

输入:

2791154368200

输出:

#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])/<

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++;

for(i=0;i

cout<

cout<

}

数组指针12:

有序插入

从键盘输入n个整数(n<100),存放在一个一维数组中,将它们从大到小排序,再从键盘输入一个整数x,将该数插入到该数组中,使得插入后依然为降序,输出插入后数组中的所有元素。

其中将整数x插入到数组中使其依然有序用函数完成。

输入格式:

第一个为个数n,后续为n个整数,再输入一个整数x。

输入:

10279115436820

12

输出:

20121198765432

#include

usingnamespacestd;

constintMAX=100;

voidsort(inta[],intn)

{

inti,j,t;

for(i=0;i

for(j=i+1;j

{

if(a[i]

{

t=a[i];a[i]=a[j];a[j]=t;

}

}

}

voidinsert(inta[],int&n,intx)

{

inti;

for(i=n-1;i>=0&&a[i]

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

a[i+1]=x;

n++;

}

intmain()

{

inta[MAX],i,x,n;

cin>>n;

for(i=0;i

cin>>a[i];

sort(a,n);

cin>>x;

insert(a,n,x);

for(i=0;i

cout<

cout<

return0;

}

数组指针13:

删除

从键盘输入任意个整数(以0结束),假设整数个数为n(n<100),则这些数据存放在一个一维数组0~n-1下标中,假设元素所在位置依次为0~n-1,再输入一个删除位置pos(0<=pos

输出删除后数组中的所有元素。

输入:

102791154368200

8

输出:

1027911543820

#include

usingnamespacestd;

constintMAX=100;

intmain()

{

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

cin>>a[n];

while(a[n])

{

n++;

cin>>a[n];

}

cin>>pos;

if(pos>=0&&pos

{

for(i=pos+1;i

{

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

}

n--;

}

for(i=0;i

cout<

return0;

}

数组指针14:

删除元素

从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组从0~n-1下标中,再输入要删除的元素x,将数组中所有的x全部删除。

输出删除后数组中的所有元素。

输入:

10279511543658200

5

输出:

1027911436820

#include

usingnamespacestd;

constintMAX=100;

intmain()

{

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

cin>>a[n];

while(a[n])

{

n++;

cin>>a[n];

}

cin>>x;

j=0;

for(i=0;i

{

if(a[i]!

=x)

{

a[j]=a[i];

j++;

}

}

n=j;

for(i=0;i

cout<

cout<

return0;

}

数组指针15:

矩阵

输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和,并存入一维数组row中,再输出row的值。

输入:

1234

5678

9101112

输出:

102642

#include

usingnamespacestd;

intmain()

{

inta[3][4],row[3]={0},i,j;

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

for(j=0;j<4;j++)

{

cin>>a[i][j];

row[i]+=a[i][j];

}

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

cout<

return0;

}

数组指针16:

对角线元素之和

输入一个5*5的矩阵,求出两条对角线元素值之和。

输入:

1112131440

1516171841

1910111242

3132333443

5152535455

输出:

268

#include

usingnamespacestd;

intmain()

{

inta[5][5],s=0,i,j;

for(i=0;i<5;i++)

for(j=0;j<5;j++)

{

cin>>a[i][j];

}

for(i=0;i<5;i++)

s+=a[i][i]+a[i][4-i];

s=s-a[2][2];

cout<

return0;

}

数组指针17:

鞍点

输入一个5*5的矩阵,输出所有的鞍点。

所谓鞍点是指一行中的最大值也是该列中的最小值。

输入:

1112131440

5556575841

1910111242

3132333443

5152535455

输出:

40

#include

usingnamespacestd;

intmain()

{

inta[5][5],i,j,k,maxj,mini;

for(i=0;i<5;i++)

for(j=0;j<5;j++)

cin>>a[i][j];

for(i=0;i<5;i++)

{

maxj=0;

for(j=1;j<5;j++)

if(a[i][j]>a[i][maxj])

maxj=j;

for(k=0;k<5;k++)

if(a[k][maxj]

break;

if(k==5)

cout<

}

return0;

}

数组指针18:

回文字符串

从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。

其中判断一个字符串是否为回文字符串用函数实现。

所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。

输入格式:

第一个为个数n,后续为n个字符串。

输入:

3levelabccbaabbd

输出:

levelabccba

#include

#include

usingnamespacestd;

boolf(chars[])

{

intlength,i;

boolflag=false;

length=strlen(s);

for(i=0;i

{

if(s[i]!

=s[length-i-1])

break;

}

if(i==length/2)

flag=true;

returnflag;

}

intmain()

{

intn,i;

charc[20];

cin>>n;

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

{

cin>>c;

if(f(c))

cout<

}

cout<

return0;

}

数组指针19:

字符串转换

在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。

其中将字符串转换用一个函数完成。

输入:

ILoveLiaoNing23

输出:

ilOVElIAOnING23

#include

usingnamespacestd;

constintMAX=100;

voidMyconvert(charstr[])

{

inti;

for(i=0;str[i];i++)

if(str[i]>='a'&&str[i]<='z')

str[i]-=32;

else

if(str[i]>='A'&&str[i]<='Z')

str[i]+=32;

}

intmain()

{

chars1[MAX];

cin>>s1;

Myconvert(s1);

cout<

return0;

}

数组指针20:

字符串长度

输入n个(n<100)字符串,输出所有字符串长度的平均值。

其中求一个字符串的长度用自定义函数实现。

输入格式,第一个整数n为字符串个数,后续为n个字符串。

输入:

3worldhelloC++

输出:

#include

usingnamespacestd;

constintMAX=100;

intlength(char*s)

{

inti=0;

while(s[i])i++;

returni;

}

intmain()

{

chars[MAX];

intn,i;

doublesum=0;

cin>>n;

for(i=0;i

{

cin>>s;

sum+=length(s);

}

cout<

return0;

}

 

展开阅读全文
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2