C数组指针题含答案.docx

上传人:scccc 文档编号:13559487 上传时间:2022-01-16 格式:DOCX 页数:40 大小:67.67KB
返回 下载 相关 举报
C数组指针题含答案.docx_第1页
第1页 / 共40页
C数组指针题含答案.docx_第2页
第2页 / 共40页
C数组指针题含答案.docx_第3页
第3页 / 共40页
C数组指针题含答案.docx_第4页
第4页 / 共40页
C数组指针题含答案.docx_第5页
第5页 / 共40页
点击查看更多>>
资源描述

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

1、数组指针 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;输入: 10 2 7 9 10 5 4 3 6 8 20cinai;for(i

2、=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 的倍数的元素,各个数值之间用空格分隔。输出: 20 3 10 2#include using namespace std;const int MAX=100;int main()int

3、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

4、;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()数组指针05:最小值的位置int aMAX,i,n=0,max;cinan;while(an)(n+;cinan;max=a0;for(i=1;imax)max=ai;coutmaxendl;return 0;从键盘输入任意个整数(以

5、 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) ,将这些数存放在一个一

6、维数组中,将它们从小到大排序后输出。输入: 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+

7、)coutai ;coutendl;return 0;数组指针07:中位数从键盘输入n(n100)个整数(以0结束),存放在一个一维数组中,输出其中位数。说明:中位数( Medians )统计学名词,是指将数据按从小到大顺序排列起来,形成一个数列,居于数列中间位置的那个数据。若数列元素个数为奇数,则中位数为最中间的元素;若数列元素个数为偶数,则中位数为最中间两个元素的平均数。例如:输入 2 7 911 5 4 3 6 8 20 0 则排序后结果为 2 3 4 5 6 7 8 9 11 20, 则中间两个数的平均值为输入: 2 7 9 11 5 4 3 6 8 20 0输出: 6.5#inclu

8、deusing 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)个整数(以

9、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;so

10、rt(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 ;coute

11、ndl;return 0;数组指针 10:素数输入m n (mi n100),输出m,n之间的素数。要求:使用塞选法求素数。用塞选法求100 以内的素数过程:在一张纸上写上1 到 100全部整数,然后逐个判断它们是否是素数,找出一个非素数,就把它挖掉,最后剩下的就是素数。具体做法如下: 先将 1 挖掉 ( 因为 1 不是素数 ) 。 用 2 去除它后面的各个数( 2 除外), 把能被 2 整除的数挖掉,即把2 的倍数挖 掉。 用 3 去除它后面的各数( 3 除外),把3 的倍数挖掉。分别用4、5各数作为除数去除这些数以后的各数。这个过程一直进行到在除数后面的数已全被挖掉为止。最后剩下的都是素数

12、。输入: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

13、 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 , 将该数插

14、入到该数组中, 使得插入后依然为降序, 输出插入后数组中的所有元素。其中将整数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;inser

15、t(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

16、;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+)coutaireturn 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

17、 8 20#includeusing namespace std;const int MAX=100;int main()int aMAX,n=0,i,j,x;cinan;while(an)n+;cinan;数组指针15:矩阵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;输入 3 行 4 列的矩阵存储在一个二维数组中,分别求出各行元素之和 , 并存入一维数组 row 中, 再输出 row 的值。输入:1 2 3 45 6 7 89 10 11 12输出: 10 26

18、 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

19、,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;j

20、aij;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 abcc

21、ba#include #include using 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:字符串转换int main()在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:

22、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;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1