C語言數(shù)組編程題及解答--精選文檔_第1頁
C語言數(shù)組編程題及解答--精選文檔_第2頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、【程序1】用篩選法求100之內(nèi)的素數(shù)篩選法又稱篩法,是求不超過自然數(shù)N(N>1)的所有質(zhì)數(shù)的一種方法。據(jù)說是古希臘的埃拉托斯特尼(Eratosthenes,約公元前274194年)發(fā)明的,又稱埃拉托斯特尼篩子。 具體做法是:先把N個自然數(shù)按次序排列起來。1不是質(zhì)數(shù),也不是合數(shù),要劃去。第二個數(shù)2是質(zhì)數(shù)留下來,而把2后面所有能被2整除的數(shù)都劃去。2后面第一個沒劃去的數(shù)是3,把3留下,再把3后面所有能被3整除的數(shù)都劃去。3后面第一個沒劃去的數(shù)是5,把5留下,再把5后面所有能被5整除的數(shù)都劃去。這樣一直做下去,就會把不超過N的全部合數(shù)都篩掉,留下的就是不超過N的全部質(zhì)數(shù)。因為希臘人是把數(shù)寫在涂

2、臘的板上,每要劃去一個數(shù),就在上面記以小點,尋求質(zhì)數(shù)的工作完畢后,這許多小點就像一個篩子,所以就把埃拉托斯特尼的方法叫做“埃拉托斯特尼篩”,簡稱“篩法”。#include <stdio.h>#include <math.h>void main()int i,j;int a100;for(i=0;i<100;i+)ai=i+1;for(i=1;i<100;i+)if(ai=0)continue;for(j=i+1;j<100;j+)if(aj%ai=0)aj=0;for(j=1;j<100;j+) /j從1開始,去除a0(其值為1),因為1既不是質(zhì)

3、數(shù),也不是合數(shù)if(aj!=0)printf("%d,",aj);printf("n");【程序2】題目:一個數(shù)如果恰好等于它的因子之和,這個數(shù)就稱為“完數(shù)”。例如6=123.編程找出1000以內(nèi)的所有完數(shù)。程序源代碼:#include <stdio.h>int main()int k10;int i,j,n,s;for(j=2;j<1000;j+)n=-1;s=j;for(i=1;i<j;i+)if (j%i)=0)n+;s=s-i;kn=i;if(s=0) /說明是完數(shù)printf("%d is a wanshu:&

4、quot;,j);for(i=0;i<=n;i+)printf("%d ",ki);printf("n");return 1;【程序3】題目:用選擇法對10個數(shù)進(jìn)行從大到小排序1.程序分析:可以利用選擇法,即從后9個比較過程中,選擇一個最小的與第一個元素交換,下次類推,即用第二個元素與后8個進(jìn)行比較,并進(jìn)行交換。 2.程序源代碼:#include <stdio.h>#define N 10int main()int i,j,max,tem,aN;/*input data*/printf("please input ten nu

5、m:n");for(i=0;i<N;i+)printf("a%d=",i);scanf("%d",&ai);printf("n");printf("Before sorted n");for(i=0;i<N;i+)printf("%5d",ai);printf("n");/*sort ten num*/for(i=0;i<N-1;i+)max=i;for(j=i+1;j<N;j+)if(amax<aj) max=j;if (ma

6、x!=i)tem=ai;ai=amax;amax=tem;/*output data*/printf("After sorted n");for(i=0;i<N;i+)printf("%5d",ai); printf("n");return 1;=【程序4】題目:求一個3*3矩陣對角線元素之和 1.程序分析:利用雙重for循環(huán)控制輸入二維數(shù)組,再將aii累加后輸出。2.程序源代碼:#include <stdio.h>int main()float a33,sum=0;int i,j;printf("plea

7、se input rectangle element:n");for(i=0;i<3;i+)for(j=0;j<3;j+)scanf("%f",&aij);for(i=0;i<3;i+)sum=sum+aii;printf("duijiaoxian he is %6.2f",sum);return 1;【程序5】題目:將一個數(shù)組逆序輸出。1.程序分析:用第一個與最后一個交換。2.程序源代碼:#define N 5int main() int aN=9,6,5,4,1,i,temp;printf("n orig

8、inal array:n");for(i=0;i<N;i+)printf("%4d",ai);for(i=0;i<N/2;i+)temp=ai;ai=aN-i-1;aN-i-1=temp;printf("n sorted array:n");for(i=0;i<N;i+)printf("%4d",ai);printf("n");return 1;1QrP,jRCDC0#,?'eOG/M+f9B051Testing軟件測試網(wǎng);S$p-$a i 【程序6】W ?#At0uP+D0打印

9、出以下楊輝三角形(要求打印出10行)。 xW"(d01 51Testing軟件測試網(wǎng)2tk O;11 &Dz8H;qA6A6k%A,*|.|0121 51Testing軟件測試網(wǎng)2QX Vzau4b1331 51Testing軟件測試網(wǎng)Q jM+qd1Qq14641 51Testing軟件測試網(wǎng)AY MDU(Q15101051&9tS 6YW W0#include <stdio.h>void main()int n,i;int a10,b10;a0=1;a1=1;printf("%-4d

10、n",a0);printf("%-4d%-4dn",a0,a1);for(n=3;n<=10;n+)b0=1;for(i=1;i<n-1;i+)bi=ai-1+ai;bn-1=1;for(i=0;i<n;i+)printf("%-4d",bi);ai=bi;printf("n");r.vXMF3FL.DPXp0 【程序7】有個15數(shù)按由小到大順序存放在一個數(shù)組中,輸入一個數(shù),要求用折半查找法找出該數(shù)組中第幾個元素的值。如果該數(shù)不在數(shù)組中,則打印出"無此數(shù)"51Testing軟件測試網(wǎng)+V

11、eC7jpT5Si#i#include<stdio.h>int main()int a15=1,4,9,13,21,34,55,89,144,233,377,570,671,703,812;int w,l,m,h;printf("please enter search number:");scanf("%d",&w);for(l=0,h=14;)m=(l+h)/2;if(w=am)break;if(w>am)l=m+1;if(w<am)h=m-1;if(l>h)break;if(l>h)printf("

12、;無此數(shù)n");if(w=am)printf("it is at %d n",m+1); return 1;【程序8】有一篇文章,共有3行文字,每行有個80字符。要求分別統(tǒng)計出其中英文大寫字母、小寫字母、空格以及其它字符的個數(shù)。"w:Gm TP7u0 #include <stdio.h>#include <string.h>int main()char a381;int i,j,len;int num5=0,0,0,0,0;for(i=0;i<3;i+)gets(ai);for(i=0;i<3;i+)len=strle

13、n(ai);for(j=0;j<len;j+)if(aij>='a'&&aij<='z')num0+;else if(aij>='A'&&aij<='Z')num1+;else if(aij=' ')num2+;else if(aij>='1'&&aij<='9')num3+;elsenum4+;printf("英文小寫字母、大寫字母、空格、數(shù)字、其他字符的個數(shù)分別為%d,%d,%d,

14、%d,%dn",num0,num1,num2,num3,num4); return 1; 51Testing軟件測試網(wǎng),f*hISB4kP9G*Z 【程序9】打印以下圖案 51Testing軟件測試網(wǎng)gxy cua HtF* Y'D(MsY'Y0    * Y+PQlxI&Qi_8n0        * 51Testing軟件測試網(wǎng):j+w+v8S r      

15、      *  * 51Testing軟件測試網(wǎng)5$t D/s                * v?bFF'dj0#include <stdio.h>#define N 5 int main()int i,j;for(i=0;i<N;i+)for(j=0;j<i;j+)printf(" ");for(j=0;j&

16、lt;N;j+)printf("* ");printf("n");return 1;51Testing軟件測試網(wǎng),f*hISB4kP9G*Z 【程序10】有一行電文譯文下面規(guī)律譯成密碼: K'e4T5O-L)rj0A->Za->z 51Testing軟件測試網(wǎng)E7L7GQ#NcB->Yb->y /E;1Z:H0C->Xc->x 51Testing軟件測試網(wǎng)*3Z!T-TF 51Testing軟件測試網(wǎng)1PYr!_2g"oA即第一個字母變成第26個字母,

17、第i個字母變成第(26-i+1)個字母。非字母字符不變,要求編程序?qū)⒚艽a回原文,并打印出密碼和原文。51Testing軟件測試網(wǎng) b)hSs!e3u a/a#include <stdio.h>int main()int i;char str1100,str2100; gets(str1); for(i=0;str1i!='0'i+) if(str1i>='A'&&str1i<='Z') str2i=2*'A'+25-str1i; /* str1i表示第(str1i-'A'+1

18、)個字母,變成(26-(str1i-'A'+1)+1)個字母,對應(yīng)的ASCII是26-(str1i-'A'+1)+1+'A'-1=2*'A"+25-str1i */else if(str1i>=97&&str1i<=122) str2i=2*'a'+25-str1i; else str2i=str1i; str2i='0'printf("miwen is:%snyuanwen is:%sn",str2,str1); return 1;51Testin

19、g軟件測試網(wǎng),f*hISB4kP9G*Z 【程序11】0nB.D.r;Z0編一個程序,將兩個字符串S1和S2比較,如果S1>S2,輸出一個正數(shù);S1=S2,輸出0;S1<S2,輸出一個負(fù)數(shù)。不要用strcmp函數(shù)。兩個字符串用gets函數(shù)讀入。輸出的正數(shù)或負(fù)數(shù)的絕對值應(yīng)是相比較的兩個字符串相對應(yīng)字符的ASCII碼的差值。例如,A與C相比,由于A<C,應(yīng)輸出負(fù)數(shù),由于A與C的碼差值為2,因此應(yīng)輸出"-2"。同理:"And"和"Aid"比較,根據(jù)第2個字符比較結(jié)果,n比i大5,因此應(yīng)輸出"5"。

20、60;51Testing軟件測試網(wǎng)'xw U5"b)Y#include <stdio.h>#include <string.h> int main() int result=0;int i=0;char a20,b20;gets(a);gets(b);while(ai!='0'&&bi!='0')if(ai!=bi)result=ai-bi;break;i+;if(ai='0'&&bi!='0')result=-bi;else if(ai!='0&#

21、39;&&bi='0')result=ai;printf("返回值為%dn",result); return 1;#Qc X.FK*UA0 4O;c0u;?k,QMC;Q051Testing軟件測試網(wǎng),f*hISB4kP9G*Z 【程序12】編寫一個程序,將字符數(shù)組s2中的全部字符拷貝到字符數(shù)組s1中,不用strcpy函數(shù)??截悤r,0也要拷貝過去,0后面的字符不拷貝。 G-b4Q T%N"P&s0#include <stdio.h>#include <string.h> void main(

22、) int i;char a20;char b20;gets(a);i=-1;doi+;bi=ai;while(ai!='0'); printf("拷貝后為%sn",b);51Testing軟件測試網(wǎng) T3P4H"Jvj6G m;Zx hg【程序13】 從鍵盤輸入若干個整數(shù),其值在0至4范圍內(nèi),用-1作為輸入結(jié)束的標(biāo)志。統(tǒng)計每個整數(shù)的個數(shù)。參考程序:#include <stdio.h>int main() int i,s5=0,x;printf("Input some numbers(between 0 to 4):");scanf("%d",&x);while(x!=-1)if (x>=0&&x<=4) sx+;scanf("%d",&x);for(i=0;i<=4;i+)printf("%d: %dn",i,si);return 1;【程序14】從鍵盤

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論