C++数组指针题(含答案).doc

上传人:w****2 文档编号:6561420 上传时间:2020-02-29 格式:DOC 页数:38 大小:46KB
返回 下载 相关 举报
C++数组指针题(含答案).doc_第1页
第1页 / 共38页
C++数组指针题(含答案).doc_第2页
第2页 / 共38页
C++数组指针题(含答案).doc_第3页
第3页 / 共38页
点击查看更多>>
资源描述
数组指针01:逆序输出从键盘输入n个整数(n100),存放在一个一维数组中,逆序输出能被3整除的元素,并逆序输出数组下标为3的倍数的元素。输入格式:第一个整数为个数n,后续为n个整数输出格式:第一行能被3整除的元素,第二行为下标为3的倍数的元素,各个数值之间用空格分隔。输入:10 2 7 9 10 5 4 3 6 8 20输出:6 3 920 3 10 2#include using namespace std;const int MAX=100;int main()int aMAX,n,i;cinn;for(i=0;iai;for(i=n-1;i=0;i-)if(ai%3=0)coutai ;cout=0;i-)if(i%3=0)coutai ;coutendl;return 0;数组指针02:逆序存储从键盘输入n(n100)个整数,存放在一个一维数组a中,将它们逆序存放在另一个整型数组b中,并按b数组中下标从小到大的顺序输出下标为3的倍数的数组元素。输入格式:第一个数为数组中元素个数n,之后为n个元素。输出格式:下标为3的倍数的元素,各个数值之间用空格分隔。输入:10 2 7 9 10 5 4 3 6 8 20输出:20 3 10 2#include using namespace std;const int MAX=100;int main()int aMAX,bMAX,n,i;cinn;for(i=0;iai;bn-1-i=ai;for(i=0;in;i+)if(i%3=0)coutbi ;coutendl;return 0;数组指针03:平均值从键盘输入任意个整数(以0结束,假设不超过100个),存放在一个一维数组中,计算这组数的平均值(实型)。输入:15 2 7 9 10 5 4 3 6 8 20 0输出:8.09091#include using namespace std;const int MAX=100;int main()int aMAX,n=0;double s=0;cinan;while(an)s+=an;n+;cinan;couts/nendl;return 0;数组指针04:最大值从键盘输入任意个整数(以0结束,个数不超过100),存放在一个一维数组中,输出这组数的最大值。输入:10 2 7 9 11 5 4 3 6 8 20 0输出:20#includeusing namespace std;const int MAX=100;int main()int aMAX,i,n=0,max;cinan;while(an)n+;cinan;max=a0;for(i=1;imax)max=ai;coutmaxendl;return 0;数组指针05:最小值的位置从键盘输入任意个整数(以0结束,个数不超过100),存放在一个一维数组中,数据从数组的0下标开始存储,输出这组数的最小值所在数组下标。输入:10 2 7 9 11 5 4 3 6 8 20 0输出:1#includeusing namespace std;const int MAX=100;int main()int aMAX,i,n=0,min=0;cinan;while(an)n+;cinan;for(i=1;in;i+)if(aiamin)min=i;coutminendl;return 0;数组指针06:排序从键盘输入任意个整数(以0结束,假设个数最大不超过100),将这些数存放在一个一维数组中,将它们从小到大排序后输出。输入:15 2 7 9 11 5 4 3 6 8 20 0输出:2 3 4 5 6 7 8 9 11 15 20#includeusing namespace std;const int MAX=100;int main()int aMAX,i,j,n=0,mini,temp;cinan;while(an)n+;cinan;for(i=0;in-1;i+)mini=i;for (j=i+1;jn;j+)if (ajamini) mini=j;if (mini!=i)temp=ai;ai=amini;amini=temp;for(i=0;in;i+)coutai ;coutendl;return 0;数组指针07:中位数从键盘输入n(n100)个整数(以0结束),存放在一个一维数组中,输出其中位数。说明:中位数(Medians)统计学名词,是指将数据按从小到大顺序排列起来,形成一个数列,居于数列中间位置的那个数据。若数列元素个数为奇数,则中位数为最中间的元素;若数列元素个数为偶数,则中位数为最中间两个元素的平均数。例如:输入2 7 9 11 5 4 3 6 8 20 0则排序后结果为2 3 4 5 6 7 8 9 11 20,则中间两个数的平均值为6.5输入:2 7 9 11 5 4 3 6 8 20 0输出:6.5#includeusing namespace std;const int MAX=100;int main()int aMAX,i,j,n=0,mini,temp;cinan;while(an)n+;cinan;for(i=0;in-1;i+)mini=i;for (j=i+1;jn;j+)if (ajamini) mini=j;if (mini!=i)temp=ai;ai=amini;amini=temp;if(n%2=1)coutan/2endl;elsecout(an/2+an/2-1)/2.0endl;coutendl;return 0;数组指针08:排序从键盘输入n(n100)个整数(以0结束),存放在一个一维数组中,将它们按奇数在前、偶数在后,同为奇数或偶数的按从小到大的顺序排序,并输出排序后的结果。其中:排序过程用函数实现。输入:10 2 7 9 11 5 4 3 6 8 20 0输出:3 5 7 9 11 2 4 6 8 10 20#includeusing namespace std;void sort(int s,int n)int i,j,t;for(i=0;in-1;i+)for(j=i+1;jn;j+)if(si%2)sj)t=si;si=sj;sj=t;int main()int s100,n=0,i;cinsn;while(sn)n+;cinsn;sort(s,n);for(i=0;in;i+)coutsi ;return 0;数组指针09:斐波那契数列输入一个正整数n(n100),将斐波那契数列的前n项保存到一维数组中,并输出斐波那契数列中对3取余为2的数。斐波那契数列为1 1 2 3 5 8 13 21 34 55输入:10输出:2 5 8#includeusing namespace std;const int MAX=100;int main()int aMAX,n,i;cinn;a0=a1=1;for(i=2;in;i+)ai=ai-1+ai-2;for(i=0;in;i+)if(ai%3=2)coutai ;coutendl;return 0;数组指针10:素数输入m、n(m,n100),输出m,n之间的素数。要求:使用塞选法求素数。用塞选法求100以内的素数过程:在一张纸上写上1到100全部整数,然后逐个判断它们是否是素数,找出一个非素数,就把它挖掉,最后剩下的就是素数。具体做法如下: 先将1挖掉(因为1不是素数)。 用2去除它后面的各个数(2除外),把能被2整除的数挖掉,即把2的倍数挖掉。 用3去除它后面的各数(3除外),把3的倍数挖掉。 分别用4、5各数作为除数去除这些数以后的各数。这个过程一直进行到在除数后面的数已全被挖掉为止。最后剩下的都是素数。输入:5 19输出:5 7 11 13 17 19#includeusing namespace std;int main()int m,n,a101,i,j;for(i=1;imn;for(i=2;i101;i+)for(j=i+1;j101;j+)if(aj%i=0)aj=0;for(i=m;i=n;i+)if(ai!=0)coutai ;return 0;数组指针11:数据插入从键盘输入n(n100)个整数(以0结束),存放在一个一维数组中,在输入一个插入位置pos(0=pos=n)及被插入的数值x,将x插入到下标为pos的位置。输出插入后数组中的所有元素。输入:10 2 7 9 11 5 4 3 6 8 20 08 100输出:10 2 7 9 11 5 4 3 100 6 8 20#includeusing namespace std;const int MAX=100;int main()int aMAX,i,pos,x,n=0;cinan;while(an)n+;cinan;cinposx;for(i=n-1;i=pos;i-)ai+1=ai;apos=x;n+;for(i=0;in;i+)coutai ;coutendl;数组指针12:有序插入从键盘输入n个整数(n100),存放在一个一维数组中,将它们从大到小排序,再从键盘输入一个整数x,将该数插入到该数组中,使得插入后依然为降序,输出插入后数组中的所有元素。其中将整数x插入到数组中使其依然有序用函数完成。输入格式:第一个为个数n,后续为n个整数,再输入一个整数x。输入:10 2 7 9 11 5 4 3 6 8 2012输出:20 12 11 9 8 7 6 5 4 3 2#includeusing namespace std;const int MAX=100;void sort(int a,int n)int i,j,t;for(i=0;in-1;i+)for(j=i+1;jn;j+)if(ai=0&ain;for(i=0;iai;sort(a,n);cinx;insert(a,n,x);for(i=0;in;i+)coutai ;coutendl;return 0;数组指针13:删除从键盘输入任意个整数(以0结束),假设整数个数为n(n100),则这些数据存放在一个一维数组0n-1下标中,假设元素所在位置依次为0n-1,再输入一个删除位置pos(0=posn),将pos位置的元素从数组中删除,若pos位置不合法,则不删除元素。输出删除后数组中的所有元素。输入:10 2 7 9 11 5 4 3 6 8 20 08输出:10 2 7 9 11 5 4 3 8 20#include using namespace std;const int MAX=100;int main()int aMAX,n=0,pos,i;cinan;while(an)n+;cinan;cinpos;if(pos=0&posn)for(i=pos+1;in;i+)ai-1=ai;n-;for(i=0;in;i+)coutai ;return 0;数组指针14:删除元素从键盘输入n(n100)个整数(以0结束),存放在一个一维数组从0n-1下标中,再输入要删除的元素x,将数组中所有的x全部删除。输出删除后数组中的所有元素。输入:10 2 7 9 5 11 5 4 3 6 5 8 20 05输出:10 2 7 9 11 4 3 6 8 20#includeusing namespace std;const int MAX=100;int main()int aMAX,n=0,i,j,x;cinan;while(an)n+;cinan;cinx;j=0;for(i=0;in;i+)if(ai!=x)aj=ai;j+;n=j;for(i=0;in;i+)coutai ;coutendl;return 0;数组指针15:矩阵输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和, 并存入一维数组row中, 再输出row的值。输入:1 2 3 45 6 7 89 10 11 12输出:10 26 42#includeusing namespace std;int main()int a34,row3=0,i,j;for(i=0;i3;i+)for(j=0;jaij;rowi+=aij;for(i=0;i3;i+)coutrowi ;return 0;数组指针16:对角线元素之和输入一个5*5的矩阵,求出两条对角线元素值之和。输入:11 12 13 14 4015 16 17 18 4119 10 11 12 4231 32 33 34 4351 52 53 54 55输出:268#includeusing namespace std;int main()int a55,s=0,i,j;for(i=0;i5;i+)for(j=0;jaij;for(i=0;i5;i+)s+=aii+ai4-i;s=s-a22;coutsendl;return 0;数组指针17:鞍点输入一个5*5的矩阵,输出所有的鞍点。所谓鞍点是指一行中的最大值也是该列中的最小值。输入:11 12 13 14 4055 56 57 58 4119 10 11 12 4231 32 33 34 4351 52 53 54 55输出:40#include using namespace std;int main()int a55,i,j,k,maxj,mini;for(i=0;i5;i+)for(j=0;jaij;for(i=0;i5;i+)maxj=0;for(j=1;jaimaxj)maxj=j;for(k=0;k5;k+)if(akmaxjaimaxj)break;if(k=5)coutaimaxjendl;return 0;数组指针18:回文字符串从键盘输入n(n100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3 level abccba abbd输出:level abccba#include #includeusing namespace std;bool f(char s)int length,i;bool flag=false;length=strlen(s);for (i=0;in;for(i=1;ic;if(f(c)coutc ;coutendl;return 0;数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusing namespace std;const int MAX=100;void Myconvert(char str)int i;for(i=0;stri;i+)if(stri=a&stri=A&stris1;Myconvert(s1);couts1endl;return 0;数组指针20:字符串长度输入n个(n100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3 world hello C+输出:4.33333#includeusing namespace std;const int MAX=100;int length(char * s)int i=0;while (si) i+;return i;int main( )char sMAX;int n,i;double sum=0;cinn;for (i=0;is;sum+=length(s);coutsum/nendl;return 0;
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!