首页 C语言数组编程题与解答

C语言数组编程题与解答

举报
开通vip

C语言数组编程题与解答......【程序1】用筛选法求100之内的素数筛选法又称筛法,是求不超过自然数N(N>1)的所有质数的一种方法。据说是古希腊的埃拉托斯特尼(Eratosthenes,约公元前274~194年)发明的,又称埃拉托斯特尼筛子。具体做法是:先把N个自然数按次序排列起来。1不是质数,也不是合数,要划去。第二个数2是质数留下来,而把2后面所有能被2整除的数都划去。2后面第一个没划去的数是3,把3留下,再把3后面所有能被3整除的数都划去。3后面第一个没划去的数是5,把5留下,再把5后面所有能被5整除的数都划去。这样...

C语言数组编程题与解答
......【程序1】用筛选法求100之内的素数筛选法又称筛法,是求不超过自然数N(N>1)的所有质数的一种方法。据说是古希腊的埃拉托斯特尼(Eratosthenes,约公元前274~194年)发明的,又称埃拉托斯特尼筛子。具体做法是:先把N个自然数按次序排列起来。1不是质数,也不是合数,要划去。第二个数2是质数留下来,而把2后面所有能被2整除的数都划去。2后面第一个没划去的数是3,把3留下,再把3后面所有能被3整除的数都划去。3后面第一个没划去的数是5,把5留下,再把5后面所有能被5整除的数都划去。这样一直做下去,就会把不超过N的全部合数都筛掉,留下的就是不超过N的全部质数。因为希腊人是把数写在涂腊的板上,每要划去一个数,就在上面记以小点,寻求质数的工作完毕后,这许多小点就像一个筛子,所以就把埃拉托斯特尼的方法叫做“埃拉托斯特尼筛”,简称“筛法”。#include#includevoidmain(){inti,j;inta[100];for(i=0;i<100;i++)a[i]=i+1;for(i=1;i<100;i++){if(a[i]==0).专业专注.......continue;for(j=i+1;j<100;j++)if(a[j]%a[i]==0)a[j]=0;}for(j=1;j<100;j++)//j从1开始,去除a[0](其值为1),因为1既不是质数,也不是合数if(a[j]!=0)printf("%d,",a[j]);printf("\n");}【程序2】题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程找出1000以内的所有完数。程序源代码:#includeintmain(){intk[10];inti,j,n,s;for(j=2;j<1000;j++).专业专注.......{n=-1;s=j;for(i=1;i#defineN10intmain(){inti,j,max,tem,a[N];/*inputdata*/printf("pleaseinputtennum:\n");for(i=0;iintmain(){floata[3][3],sum=0;inti,j;printf("pleaseinputrectangleelement:\n");for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%f",&a[i][j]);for(i=0;i<3;i++)sum=sum+a[i][i];printf("duijiaoxianheis%6.2f",sum);return1;}【程序5】.专业专注.......题目:将一个数组逆序输出。1.程序分析:用第一个与最后一个交换。2.程序源代码:#defineN5intmain(){inta[N]={9,6,5,4,1},i,temp;printf("\noriginalarray:\n");for(i=0;ivoidmain(){intn,i;inta[10],b[10];a[0]=1;a[1]=1;printf("%-4d\n",a[0]);printf("%-4d%-4d\n",a[0],a[1]);for(n=3;n<=10;n++){b[0]=1;.专业专注.......for(i=1;iintmain(){inta[15]={1,4,9,13,21,34,55,89,144,233,377,570,671,703,812};intw,l,m,h;printf("pleaseentersearchnumber:");scanf("%d",&w);for(l=0,h=14;;).专业专注.......{m=(l+h)/2;if(w==a[m])break;if(w>a[m])l=m+1;if(wh)break;}if(l>h)printf("无此数\n");if(w==a[m])printf("itisat%d\n",m+1);return1;}【程序8】有一篇文章,共有3行文字,每行有个80字符。要求分别统计出其中英文大写字母、小写字母、空格以及其它字符的个数。#include#include.专业专注.......intmain(){chara[3][81];inti,j,len;intnum[5]={0,0,0,0,0};for(i=0;i<3;i++)gets(a[i]);for(i=0;i<3;i++){len=strlen(a[i]);for(j=0;j='a'&&a[i][j]<='z')num[0]++;elseif(a[i][j]>='A'&&a[i][j]<='Z')num[1]++;elseif(a[i][j]=='')num[2]++;elseif(a[i][j]>='1'&&a[i][j]<='9')num[3]++;elsenum[4]++;.专业专注.......}}printf("英文小写字母、大写字母、空格、数字、其他字符的个数分别为%d,%d,%d,%d,%d\n",num[0],num[1],num[2],num[3],num[4]);return1;}【程序9】打印以下图案*************************#include#defineN5intmain(){inti,j;for(i=0;iZa->zB->Yb->yC->Xc->x⋯即第一个字母变成第26个字母,第i个字母变成第(26-i+1)个字母。非字母字符不变,要求编程序将密码回 原文 少年中国说原文俱舍论原文大医精诚原文注音大学原文和译文对照归藏易原文 ,并打印出密码和原文。#includeintmain(){inti;charstr1[100],str2[100];.专业专注.......gets(str1);for(i=0;str1[i]!='\0';i++)if(str1[i]>='A'&&str1[i]<='Z')str2[i]=2*'A'+25-str1[i];/*str1[i]表示第(str1[i]-'A'+1)个字母,变成(26-(str1[i]-'A'+1)+1)个字母,对应的ASCII是26-(str1[i]-'A'+1)+1+'A'-1=2*'A"+25-str1[i]*/elseif(str1[i]>=97&&str1[i]<=122)str2[i]=2*'a'+25-str1[i];elsestr2[i]=str1[i];str2[i]='\0';printf("miwenis:%s\nyuanwenis:%s\n",str2,str1);return1;}【程序11】编一个程序,将两个字符串S1和S2比较,如果S1>S2,输出一个正数;S1=S2,输出0;S1#includeintmain(){intresult=0;inti=0;chara[20],b[20];gets(a);gets(b);while(a[i]!='\0'&&b[i]!='\0'){if(a[i]!=b[i]){result=a[i]-b[i];break;}i++;}if(a[i]=='\0'&&b[i]!='\0')result=-b[i];elseif(a[i]!='\0'&&b[i]=='\0').专业专注.......result=a[i];printf("返回值为%d\n",result);return1;}【程序12】编写一个程序,将字符数组s2中的全部字符拷贝到字符数组s1中,不用strcpy函数。拷贝时,’\0’也要拷贝过去,’\0’后面的字符不拷贝。#include#includevoidmain(){inti;chara[20];charb[20];gets(a);i=-1;do{i++;b[i]=a[i];}while(a[i]!='\0');.专业专注.......printf("拷贝后为%s\n",b);}【程序13】从键盘输入若干个整数,其值在0至4范围内,用-1作为输入结束的标志。统计每个整数的个数。参考程序:#includeintmain(){inti,s[5]={0},x;printf("Inputsomenumbers(between0to4):");scanf("%d",&x);while(x!=-1){if(x>=0&&x<=4)s[x]++;scanf("%d",&x);}for(i=0;i<=4;i++)printf("%d:%d\n",i,s[i]);.专业专注.......return1;}【程序14】从键盘输入两个字符串a和b,要求不用库函数strcat把串b的前五个字符连接到串a中;如果b的长度小于5,则把b的所有元素都连接到a中。试编程。参考程序:#include#includeintmain(){chara[80],b[80];inti=0,j;printf("Inputtwostrings:\n");gets(a);gets(b);while(a[i])i++;for(j=0;j<5&&b[j];j++)a[i++]=b[j];a[i]='\0';puts(a);.专业专注.......return1;}【程序15】阿姆斯特朗数:如果一个正整数等于其各个数字的立方和,则该数称为阿姆斯特朗数(亦称为自恋性数)。如407=43+03+73就是一个阿姆斯特朗数。试编程求1000以内的所有阿姆斯特朗数。程序分析:可采用穷举法,依次取1000以内的各数(设为i),将i的各位数字分解后,根据阿姆斯特朗数的性质进行计算和判断。程序源代码:#includeintmain(){inti,t,k,a[3];printf("therearefollowingArmstrongnumbersmallerthan1000:\n");for(i=2;i<1000;i++)//穷举要判定数的范围{for(t=0,k=1000;k>=10;t++){a[t]=(i%k)/(k/10);//截取整数的各位,分别赋于a[0]-a[2]k/=10;.专业专注.......}if(a[0]*a[0]*a[0]+a[1]*a[1]*a[1]+a[2]*a[2]*a[2]==i)printf("%d",i);}return1;}.专业专注.
本文档为【C语言数组编程题与解答】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: ¥13.0 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
is_916672
暂无简介~
格式:doc
大小:592KB
软件:Word
页数:0
分类:
上传时间:2021-09-26
浏览量:5