欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    C数组指针题(含规范标准答案).doc

    • 资源ID:3003408       资源大小:22.94KB        全文页数:38页
    • 资源格式: DOC        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C数组指针题(含规范标准答案).doc

    .数组指针01:逆序输出从键盘输入n个整数(n<100),存放在一个一维数组中,逆序输出能被3整除的元素,并逆序输出数组下标为3的倍数的元素。输入格式:第一个整数为个数n,后续为n个整数输出格式:第一行能被3整除的元素,第二行为下标为3的倍数的元素,各个数值之间用空格分隔。输入:10 2 7 9 10 5 4 3 6 8 20输出:6 3 920 3 10 2#include <iostream>using namespace std;const int MAX=100;int main()int aMAX,n,i;cin>>n;for(i=0;i<n;i+)cin>>ai;for(i=n-1;i>=0;i-)if(ai%3=0)cout<<ai<<" "cout<<endl;for(i=n-1;i>=0;i-)if(i%3=0)cout<<ai<<" "cout<<endl;return 0;数组指针02:逆序存储从键盘输入n(n<100)个整数,存放在一个一维数组a中,将它们逆序存放在另一个整型数组b中,并按b数组中下标从小到大的顺序输出下标为3的倍数的数组元素。输入格式:第一个数为数组中元素个数n,之后为n个元素。输出格式:下标为3的倍数的元素,各个数值之间用空格分隔。输入:10 2 7 9 10 5 4 3 6 8 20输出:20 3 10 2#include <iostream>using namespace std;const int MAX=100;int main()int aMAX,bMAX,n,i;cin>>n;for(i=0;i<n;i+)cin>>ai;bn-1-i=ai;for(i=0;i<n;i+)if(i%3=0)cout<<bi<<" "cout<<endl;return 0;数组指针03:平均值从键盘输入任意个整数(以0结束,假设不超过100个),存放在一个一维数组中,计算这组数的平均值(实型)。输入:15 2 7 9 10 5 4 3 6 8 20 0输出:8.09091#include <iostream>using namespace std;const int MAX=100;int main()int aMAX,n=0;double s=0;cin>>an;while(an)s+=an;n+;cin>>an;cout<<s/n<<endl;return 0;数组指针04:最大值从键盘输入任意个整数(以0结束,个数不超过100),存放在一个一维数组中,输出这组数的最大值。输入:10 2 7 9 11 5 4 3 6 8 20 0输出:20#include<iostream>using namespace std;const int MAX=100;int main()int aMAX,i,n=0,max;cin>>an;while(an)n+;cin>>an;max=a0;for(i=1;i<n;i+)if(ai>max)max=ai;cout<<max<<endl;return 0;数组指针05:最小值的位置从键盘输入任意个整数(以0结束,个数不超过100),存放在一个一维数组中,数据从数组的0下标开始存储,输出这组数的最小值所在数组下标。输入:10 2 7 9 11 5 4 3 6 8 20 0输出:1#include<iostream>using namespace std;const int MAX=100;int main()int aMAX,i,n=0,min=0;cin>>an;while(an)n+;cin>>an;for(i=1;i<n;i+)if(ai<amin)min=i;cout<<min<<endl;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#include<iostream>using namespace std;const int MAX=100;int main()int aMAX,i,j,n=0,mini,temp;cin>>an;while(an)n+;cin>>an;for(i=0;i<n-1;i+)mini=i;for (j=i+1;j<n;j+)if (aj<amini) mini=j;if (mini!=i)temp=ai;ai=amini;amini=temp;for(i=0;i<n;i+)cout<<ai<<" "cout<<endl;return 0;数组指针07:中位数从键盘输入n(n<100)个整数(以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#include<iostream>using namespace std;const int MAX=100;int main()int aMAX,i,j,n=0,mini,temp;cin>>an;while(an)n+;cin>>an;for(i=0;i<n-1;i+)mini=i;for (j=i+1;j<n;j+)if (aj<amini) mini=j;if (mini!=i)temp=ai;ai=amini;amini=temp;if(n%2=1)cout<<an/2<<endl;elsecout<<(an/2+an/2-1)/2.0<<endl;cout<<endl;return 0;数组指针08:排序从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,将它们按奇数在前、偶数在后,同为奇数或偶数的按从小到大的顺序排序,并输出排序后的结果。其中:排序过程用函数实现。输入:10 2 7 9 11 5 4 3 6 8 20 0输出:3 5 7 9 11 2 4 6 8 10 20#include<iostream>using namespace std;void sort(int s,int n)int i,j,t;for(i=0;i<n-1;i+)for(j=i+1;j<n;j+)if(si%2)<(sj%2)|(si%2)=(sj%2)&&(si>sj)t=si;si=sj;sj=t;int main()int s100,n=0,i;cin>>sn;while(sn)n+;cin>>sn;sort(s,n);for(i=0;i<n;i+)cout<<si<< ;return 0;数组指针09:斐波那契数列输入一个正整数n(n<100),将斐波那契数列的前n项保存到一维数组中,并输出斐波那契数列中对3取余为2的数。斐波那契数列为1 1 2 3 5 8 13 21 34 55输入:10输出:2 5 8#include<iostream>using namespace std;const int MAX=100;int main()int aMAX,n,i;cin>>n;a0=a1=1;for(i=2;i<n;i+)ai=ai-1+ai-2;for(i=0;i<n;i+)if(ai%3=2)cout<<ai<<" "cout<<endl;return 0;数组指针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各数作为除数去除这些数以后的各数。这个过程一直进行到在除数后面的数已全被挖掉为止。最后剩下的都是素数。输入:5 19输出:5 7 11 13 17 19#include<iostream>using namespace std;int main()int m,n,a101,i,j;for(i=1;i<101;i+)ai=i;cin>>m>>n;for(i=2;i<101;i+)for(j=i+1;j<101;j+)if(aj%i=0)aj=0;for(i=m;i<=n;i+)if(ai!=0)cout<<ai<<" "return 0;数组指针11:数据插入从键盘输入n(n<100)个整数(以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#include<iostream>using namespace std;const int MAX=100;int main()int aMAX,i,pos,x,n=0;cin>>an;while(an)n+;cin>>an;cin>>pos>>x;for(i=n-1;i>=pos;i-)ai+1=ai;apos=x;n+;for(i=0;i<n;i+)cout<<ai<<" "cout<<endl;数组指针12:有序插入从键盘输入n个整数(n<100),存放在一个一维数组中,将它们从大到小排序,再从键盘输入一个整数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#include<iostream>using namespace std;const int MAX=100;void sort(int a,int n)int i,j,t;for(i=0;i<n-1;i+)for(j=i+1;j<n;j+)if(ai<aj)t=ai;ai=aj;aj=t;void insert(int a,int &n,int x)int i;for(i=n-1;i>=0&&ai<x;i-)ai+1=ai;ai+1=x;n+;int main()int aMAX,i,x,n;cin>>n;for(i=0;i<n;i+)cin>>ai;sort(a,n);cin>>x;insert(a,n,x);for(i=0;i<n;i+)cout<<ai<<" "cout<<endl;return 0;数组指针13:删除从键盘输入任意个整数(以0结束),假设整数个数为n(n<100),则这些数据存放在一个一维数组0n-1下标中,假设元素所在位置依次为0n-1,再输入一个删除位置pos(0<=pos<n),将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 <iostream>using namespace std;const int MAX=100;int main()int aMAX,n=0,pos,i;cin>>an;while(an)n+;cin>>an;cin>>pos;if(pos>=0&&pos<n)for(i=pos+1;i<n;i+)ai-1=ai;n-;for(i=0;i<n;i+)cout<<ai<<" "return 0;数组指针14:删除元素从键盘输入n(n<100)个整数(以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#include<iostream>using namespace std;const int MAX=100;int main()int aMAX,n=0,i,j,x;cin>>an;while(an)n+;cin>>an;cin>>x;j=0;for(i=0;i<n;i+)if(ai!=x)aj=ai;j+;n=j;for(i=0;i<n;i+)cout<<ai<<" "cout<<endl;return 0;数组指针15:矩阵输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和, 并存入一维数组row中, 再输出row的值。输入:1 2 3 45 6 7 89 10 11 12输出:10 26 42#include<iostream>using namespace std;int main()int a34,row3=0,i,j;for(i=0;i<3;i+)for(j=0;j<4;j+)cin>>aij;rowi+=aij;for(i=0;i<3;i+)cout<<rowi<<" "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#include<iostream>using namespace std;int main()int a55,s=0,i,j;for(i=0;i<5;i+)for(j=0;j<5;j+)cin>>aij;for(i=0;i<5;i+)s+=aii+ai4-i;s=s-a22;cout<<s<<endl;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 <iostream>using namespace std;int main()int a55,i,j,k,maxj,mini;for(i=0;i<5;i+)for(j=0;j<5;j+)cin>>aij;for(i=0;i<5;i+)maxj=0;for(j=1;j<5;j+)if(aij>aimaxj)maxj=j;for(k=0;k<5;k+)if(akmaxj<aimaxj)break;if(k=5)cout<<aimaxj<<endl;return 0;数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3 level abccba abbd输出:level abccba#include <iostream>#include<cstring>using namespace std;bool f(char s)int length,i;bool flag=false;length=strlen(s);for (i=0;i<length/2;i+)if (si!=slength-i-1)break;if (i=length/2)flag=true;return flag;int main()int n,i;char c20;cin>>n;for(i=1;i<=n;i+)cin>>c;if(f(c)cout<<c<<" "cout<<endl;return 0;数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#include<iostream>using namespace std;const int MAX=100;void Myconvert(char str)int i;for(i=0;stri;i+)if(stri>=a&&stri<=z)stri-=32;elseif(stri>=A&&stri<=Z)stri+=32;int main()char s1MAX;cin>>s1;Myconvert(s1);cout<<s1<<endl;return 0;数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3 world hello C+输出:4.33333#include<iostream>using 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;cin>>n;for (i=0;i<n;i+)cin>>s;sum+=length(s);cout<<sum/n<<endl;return 0;

    注意事项

    本文(C数组指针题(含规范标准答案).doc)为本站会员(小**)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开