C語言數(shù)組編程題與解答_第1頁
C語言數(shù)組編程題與解答_第2頁
C語言數(shù)組編程題與解答_第3頁
C語言數(shù)組編程題與解答_第4頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、.【程序 1】用篩選法求 100 之內(nèi)的素數(shù)篩選法又稱篩法,是求不超過自然數(shù)N ( N>1 )的所有 質(zhì)數(shù) 的一種方法 。 據(jù)說是古希臘的埃拉托斯特尼 ( Eratosthenes ,約公元前274 194 年)發(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ù)都劃去 。 這樣

2、一直做下去 ,就會把不超過N 的全部合數(shù)都篩掉 ,留下的就是不超過N 的全部質(zhì)數(shù) 。 因為希臘人是把數(shù)寫在涂臘的板上,每要劃去一個數(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).專業(yè)專注.continue;for(j=i+1;j<100;j

3、+)if(aj%ai=0)aj=0;for(j=1;j<100;j+)/j從 1 開始,去除 a0 (其值為 1), 因為 1 既不是質(zhì)數(shù) ,也不是合數(shù)if(aj!=0)printf("%d,",aj);printf("n");【程序 2】題目 :一個數(shù)如果恰好等于它的因子之和,這個數(shù)就稱為“完數(shù) ”。例如6=1 2 3.編程找出 1000 以內(nèi)的所有完數(shù) 。程序源代碼 :#include <stdio.h>int main()int k10;int i,j,n,s;for( j=2;j<1000;j+).專業(yè)專注.n=-1;s=

4、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:",j);for(i=0;i<=n;i+)printf("%d",ki);printf("n");return 1;.專業(yè)專注.【程序 3】題目 :用選擇法對10 個數(shù)進行從大到小排序1.程序分析 :可以利用選擇法,即從后9 個比較過程中,選擇一個最小的與第一個元素交換,下次類推 ,即用第二個元素與后8 個進行比較 ,并進行交換 。2.程序源代碼 :#include

5、 <stdio.h>#define N 10int main()int i,j,max,tem,aN;/*input data*/printf("please input ten num: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);.專業(yè)專注.pr

6、intf("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 (max!=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;.專業(yè)專注.=【程序 4】題目 :求一個 3*3 矩陣對角線元素之和1

7、.程序分析 :利用雙重for 循環(huán)控制輸入二維數(shù)組,再將 aii 累加后輸出 。2.程序源代碼 :#include <stdio.h>int main()float a33,sum=0;int i,j;printf("please 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"

8、,sum);return 1;【程序 5】.專業(yè)專注.題目 :將一個數(shù)組逆序輸出。1.程序分析 :用第一個與最后一個交換。2.程序源代碼 :#define N 5int main()int aN=9,6,5,4,1,i,temp;printf("n original 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

9、;i+)printf("%4d",ai);printf("n");return 1;.專業(yè)專注.【程序 6】打印出以下楊輝三角形 (要求打印出 10 行)。11112113311464115101051#include <stdio.h>void main()int n,i;int a10,b10;a0=1;a1=1;printf("%-4dn",a0);printf("%-4d%-4dn",a0,a1);for(n=3;n<=10;n+)b0=1;.專業(yè)專注.for(i=1;i<n-1;i

10、+)bi=ai-1+ai;bn-1=1;for(i=0;i<n;i+)printf("%-4d",bi);ai=bi;printf("n");【程序 7】有個 15 數(shù)按由小到大順序存放在一個數(shù)組中,輸入一個數(shù) ,要求用折半查找法找出該數(shù)組中第幾個元素的值。如果該數(shù)不在數(shù)組中 ,則打印出 "無此數(shù) "#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("p

11、lease enter search number:");scanf("%d",&w);for(l=0,h=14;).專業(yè)專注.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(" 無此數(shù) n");if(w=am)printf("it is at %d n",m+1);return 1;【程序 8】有一篇文章 ,共有 3 行文字,每行有個 80 字符 。 要求分別統(tǒng)計出其中英文大寫字母、

12、小寫字母 、空格以及其它字符的個數(shù)。#include <stdio.h>#include <string.h>.專業(yè)專注.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=strlen(ai);for(j=0;j<len;j+)if(aij>='a'&&aij<='z')num0+;else if(aij>='A'&&a

13、ij<='Z')num1+;else if(aij=' ')num2+;else if(aij>='1'&&aij<='9')num3+;elsenum4+;.專業(yè)專注.printf(" 英文小寫字母、大寫字母 、空格 、數(shù)字 、其他字符的個數(shù)分別為 %d,%d,%d,%d,%dn",num0,num1,num2,num3,num4);return 1;【程序 9】打印以下圖案* *#include <stdio.h>#define N 5int main()int

14、 i,j;for(i=0;i<N;i+).專業(yè)專注.for(j=0;j<i;j+)printf("");for(j=0;j<N;j+)printf("* ");printf("n");return 1;【程序 10】有一行電文譯文下面規(guī)律譯成密碼:A->Za->zB->Yb->yC->Xc->x即第一個字母變成第26 個字母 ,第 i 個字母變成第( 26-i+1 )個字母 。 非字母字符不變,要求編程序?qū)⒚艽a回原文,并打印出密碼和原文。#include <stdio.h&g

15、t;int main()int i;char str1100,str2100;.專業(yè)專注.gets(str1);for(i=0;str1i!='0'i+)if(str1i>='A'&&str1i<='Z')str2i=2*'A'+25-str1i;/*str1i 表示第 ( str1i-'A'+1) 個字母 ,變成 ( 26- ( str1i-'A'+1 ) +1 )個字母,對應(yīng)的 ASCII 是 26- ( str1i-'A'+1 )+1+'A&

16、#39;-1=2*'A"+25-str1i*/else if(str1i>=97&&str1i<=122)str2i=2*'a'+25-str1i;elsestr2i=str1i;str2i='0'printf("miwen is:%snyuanwen is:%sn",str2,str1);return 1;【程序 11】編一個程序 ,將兩個字符串S1 和 S2 比較,如果S1>S2,輸出一個正數(shù) ;S1=S2,輸出 0; S1<S2,輸出一個負數(shù) 。不要用 strcmp 函數(shù) 。 兩

17、個字符串用gets 函數(shù)讀入 。輸出的正數(shù)或負數(shù)的絕對值應(yīng)是相比較的兩個字符串相對應(yīng)字符的 ASCII 碼的差值 。例如 ,A與 C相比 ,由于 A<C,應(yīng)輸出負數(shù) ,由于 A與 C的碼差值為 2,因此應(yīng)輸出 "-2" 。同理 :"And" 和"Aid" 比較,根據(jù)第 2 個字符比較結(jié)果 ,n比i大 5,因此應(yīng)輸出 "5" 。.專業(yè)專注.#include <stdio.h>#include <string.h>int main()int result=0;int i=0;char a2

18、0,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'&&bi='0').專業(yè)專注.result=ai;printf(" 返回值為 %dn",result);return 1;【程序 12】編寫一個程序 ,將字符數(shù)組 s2 中的全部字符拷貝到字符

19、數(shù)組s1 中,不用 strcpy 函數(shù) ??截悤r ,0 也要拷貝過去 ,0 后面的字符不拷貝 。#include <stdio.h>#include <string.h>void main()int i;char a20;char b20;gets(a);i=-1;doi+;bi=ai;while(ai!='0');.專業(yè)專注.printf(" 拷貝后為 %sn",b);【程序 13 】從鍵盤輸入若干個整數(shù) ,其值在 0 至 4 范圍內(nèi) ,用 -1 作為輸入結(jié)束的標志 。統(tǒng)計每個整數(shù)的個數(shù) 。參考程序 :#include <st

20、dio.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);.專業(yè)專注.return 1;【程序 14 】從鍵盤輸入兩個字符串a(chǎn) 和 b ,要求不用庫函數(shù)strcat 把串 b 的前五個字符連接到串 a 中;如果 b 的長度小于 5,則把 b 的所有元素都連接到a 中。試編程。參考程序 :#include <stdio.h>#include <

溫馨提示

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

評論

0/150

提交評論