C語(yǔ)言經(jīng)典程序片段--精選文檔_第1頁(yè)
C語(yǔ)言經(jīng)典程序片段--精選文檔_第2頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、C語(yǔ)言經(jīng)典程序片段以下程序只能出了實(shí)現(xiàn)程序功能的核心語(yǔ)句,請(qǐng)掌握其編程思想。1. 編寫(xiě)函數(shù)fun求1!+2!+3!+ +n!的和,在main函 數(shù)中由鍵盤(pán)輸入n值,并輸出運(yùn)算結(jié)果。請(qǐng)編寫(xiě)fun 函數(shù)。int i;float f=1,s=0;for(i=1;i<=n;i+) f=f*i; s=s+f; return s;2. 從鍵盤(pán)為一維整型數(shù)組輸入10個(gè)整數(shù),調(diào)用fun函數(shù)找出其中最小的數(shù),并在main函數(shù)中輸出。 請(qǐng)編寫(xiě)fun函數(shù)。int min,i;min=x0;for(i=1;i<n;i+)if(xi<min) min=xi;return min;3. 從鍵盤(pán)輸入一個(gè)大

2、于3的整數(shù),調(diào)用函數(shù)fun判斷 其是否素?cái)?shù),然后在main函數(shù)中輸出相應(yīng)的結(jié)論信息。int i;int j;j= 1;for(i=2;i<n;i+)if(n%i=0) j= 0;return j;4. 輸入2個(gè)學(xué)生3門(mén)課的成績(jī),計(jì)算學(xué)生成績(jī)平均分,課程平均分和最高分.int i,j;float sum; for(i=0;i<2;i+) /*計(jì)算第i個(gè)學(xué)生平均分*/ sum=0; for(j=0;j<3;j+) sum=sum+scoreij; StuAgvi=sum/3; for(j=0;j<3;j+) /*計(jì)算第j門(mén)課的平均分*/ sum=0; for(i=0;i&l

3、t;2;i+) sum=sum+ score ij; CouAgvj=sum/2; Max=score00; for(i=0;i<2;i+) for(j=0;j<3;j+) if(Max<=scoreij) Max=scoreij; return ;5. 從字符串s中刪除指定的字符 i,k=0; for(i=0;si!='0'i+) if(si!=c) sk+=si; sk='0'6. 求出二維數(shù)組周邊元素之和,作為函數(shù)值返回。二 維數(shù)組的值在主函數(shù)中賦予。int s=0; int i,j; for(i=0;i<M;i+) s=

4、s+ai0+aiN-1; for(j=1;j<N-1;j+) s=s+a0j+aM-1j;return s;7. 求出菲波那契數(shù)列的前一項(xiàng)與后一項(xiàng)之比的極限的近似值。float f1=1,f2=1,f3; float r1=2,r2; do r2=r1; r1=f1/f2; f3=f1+f2; f1=f2; f2=f3; while(fabs(r1-r2)>1e-4); return r1;8. 求一個(gè)四位數(shù)的各位數(shù)字的立方和。int d,k,s=0; while (n>0) d=n%10; s+=d*d*d; n/=10; return s;9. 求1到100之間的偶數(shù)之積

5、。double y=1; int i; for(i=1;i<=m;i+) if(i%2=0)y*=i; return y;10. 找出一批正整數(shù)中的最大的偶數(shù)。int i,amax=-1; for(i=0;i<n;i+) if(ai%2=0) if (ai>amax) amax=ai; return amax;11. 求5行5列矩陣的主、副對(duì)角線(xiàn)上元素之和。注意,兩條對(duì)角線(xiàn)相交的元素只加一次。int s=0; int i,j; for(i=0;i<M;i+) s=s+aii+aiM-1-i; s=s-a(M-1)/2(M-1)/2; return s;12. 計(jì)算并輸出

6、給定整數(shù)n的所有因子之和(不包括1與自身)。注意:n的值不大于1000。int s=0,i; for(i=2;i<n;i+) if(n%i=0)s=s+i; return s;13. 計(jì)算n門(mén)課程的平均值,計(jì)算結(jié)果作為函數(shù)值返回。int i; float y=0; for(i=0;i<n;i+) y+=ai; y=y/n; return y;14. 調(diào)用函數(shù)fun判斷一個(gè)三位數(shù)是否"水仙花數(shù)"。在main函數(shù)中從鍵盤(pán)輸入一個(gè)三位數(shù),并輸出判斷結(jié)果。請(qǐng)編寫(xiě)fun函數(shù)。說(shuō)明:所謂"水仙花數(shù)"是指一3位數(shù),其各位數(shù)字立方和等于該數(shù)本身。例如:153

7、是一個(gè)水仙花數(shù),因?yàn)?53=1+125+27。int bw,sw,gw;bw=n/100;sw=(n-bw*100)/10;gw=n%10; if(n=bw*bw*bw+sw*sw*sw+gw*gw*gw) return 1; else return 0;15. 從鍵盤(pán)為一維整型數(shù)組輸入10個(gè)整數(shù),調(diào)用fun函數(shù) 找出其中最小的數(shù),并在main函數(shù)中輸出。int min,i;min=x0;for(i=1;i<n;i+)if(xi<min) min=xi;return min;16. 將主函數(shù)中輸入的字符串反序存放。例如:輸入字符串“abcdefg”,則應(yīng)輸出“gfedcba”。in

8、t i,j; char c;for(i=0,j=n-1;i<j;i+,j-) /*或者for(i=0,j=n-1;i<n/2;i+,j-)*/c=*(str+i);*(str+i)=*(str+j);*(str+j)=c;17. 統(tǒng)計(jì)出若干個(gè)學(xué)生的平均成績(jī),最高分以及得最高分的人數(shù)。int i;float sum=0,ave; Max=array0;for(i=0;i<n;i+) if(Max<array i) Max=array i; sum=sum+array i; ave=sum/n; for(i=0;i<n;i+) if(array i=Max) J+;r

9、eturn(ave);18. 求出N×M整型數(shù)組的最大元素及其所在的行坐標(biāo)及列坐標(biāo)(如果最大元素不唯一,選擇位置在最前面的一個(gè))。int max,i,j;max=array 00;Row=0;Col=0;for(i=0;i<N;i+) for(j=0;j<M;j+) if(max<array ij) max=array ij; Row=i;Col=j;return(max);19. 輸入一個(gè)字符串,過(guò)濾此串,只保留串中的字母字 符,并統(tǒng)計(jì)新生成串中包含的字母?jìng)€(gè)數(shù)。int i,j;for(i=0,j=0;*(ptr+i)!='0'i+)if(*(ptr

10、+i)<='z'&& *(ptr+i)>='a'|*(ptr+i)<='Z' && *(ptr+i)>='A')*(ptr+j)=*(ptr+i);j+;*(ptr+j)='0'return(j);20. 判斷m是否為素?cái)?shù)。int i,k=1; if(m<=1) k=0; for(i=2;i<m;i+) if(m%i=0) k=0;return k;21. 在鍵盤(pán)上輸入一個(gè)3行3列矩陣的各個(gè)元素的值(值為整數(shù)),然后輸出主對(duì)角線(xiàn)元素的積,并在fun

11、() 函數(shù)中輸出。int sum;int i,j;sum=1;for(i=0;i<3;i+) sum=sum*aii; return sum;22. 編寫(xiě)函數(shù)fun其功能是:根據(jù)整型形參m,計(jì)算如下 公式的值:y=1/2!+1/4!+1/m!(m是偶數(shù))double y=0.0;int i,j;double s=1;for (i=2;i<=m;i+=2)for(j=i-1;j<=i;j+)s=s*j;y=y+1.0/s;return y;23. 判斷一個(gè)整數(shù)w的各位數(shù)字平方之和能否被5整除,可以被5整除則返回1,否則返回0。int k,s=0; do s=s+(w%10)*(

12、w%10); w=w/10; while(w!=0); if(s%5=0)k=1; else k=0; return(k);24. 求1到w之間的奇數(shù)之和。long y=0; int i; for(i=1;i<=w;i+) if(i%2=1)y+=i; return y;25. 能計(jì)算從1開(kāi)始到n的自然數(shù)中偶數(shù)的平方的和,n由 鍵盤(pán)輸入,并在main()函數(shù)中輸出。(n是偶數(shù))int sum,i;sum =0;for(i=2;i<=n;i=i+2)sum=sum+i*i;return(sum);26. 在鍵盤(pán)上輸入一個(gè)3行3列矩陣的各個(gè)元素的值(值為整數(shù)),然后輸出主對(duì)角線(xiàn)元素的平

13、方和,并在 fun()函數(shù)中輸出。int sum;int i;sum=0;for(i=0;i<3;i+) sum=sum+aii*aii; return sum;27. 求一個(gè)大于10的n位整數(shù)的后n-1位的數(shù),并作為函 數(shù)值返回。int n=0;int i=1;while(w>10)n=n+i*(w%10);w/=10;i*=10;return n;28. 能計(jì)算從1開(kāi)始到n的自然數(shù)的和,n由鍵盤(pán)輸入,并在main()函數(shù)中輸出。int sum,i;sum =0;for(i=1;i<=n;i+)sum=sum+i;return(sum);29. 編寫(xiě)程序,實(shí)現(xiàn)矩陣(3行3列

14、)的轉(zhuǎn)置(即行列互換) int i,j,t; for(i=0; i < 3; i+) for(j=0; j < i; j+) t=arrayij; arrayij=arrayji; arrayji=t; 30. 對(duì)某一正數(shù)的值保留2位小數(shù),并對(duì)第三位進(jìn)行四舍五入。int i;i=(int)(h*1000)%10;if(i>=5)return(int)(h*100+1)/100.0;elsereturn(int)(h*100)/100.0;31. 計(jì)算出k以?xún)?nèi)最大的10個(gè)能被13或17整除的自然數(shù)之 和。int a=0,b=0;while(k>=2)&&(

15、b<10)if(k%13=0)|(k%17=0) a=a+k;b+; k-; return a;32. 找出一個(gè)大于給定整數(shù)且緊隨這個(gè)整數(shù)的素?cái)?shù),并作為函數(shù)值返回。int i,k;for(i=n+1;i+)for(k=2;k<i;k+)if(i%k=0)break;if(k=i)return(i);33. 根據(jù)整型參數(shù)n,計(jì)算如圖公式的值double a=1;int i;for(i=1;i<n;i+)a=1.0/(1+a);return a;34. 計(jì)算并輸出給定整數(shù)的所有因子之積(包括自身)。規(guī)定這個(gè)整數(shù)的值不大于50。long s=1,i; for(i=2;i<=n

16、;i+) if(n%i=0)s=s*i; return s;35. 求給定正整數(shù)n以?xún)?nèi)的素?cái)?shù)之積。(n<28)long i,k;long s=1; for(i=2;i<=n;i+) for(k=2;k<i;k+) if(i%k=0)break; if(k=i)s=s*i; return s;36. 求一個(gè)n位自然數(shù)的各位數(shù)字的積。(n 是小于10的 自然數(shù))long d,s=1; while (n>0) d=n%10; s*=d; n/=10; return s;37. 從字符串中刪除指定的字符。同一字母的大、小寫(xiě) 按不同字符處理。char *q=s; for(; *q

17、; q+) if(*q != c) *(s+)=*q; *s=0;38. 將兩個(gè)兩位數(shù)的正整數(shù)a、b合并形成一個(gè)整數(shù)放在c中。合并的方式是:將a數(shù)的十位和個(gè)位數(shù)依次放 在c數(shù)的百位和個(gè)位上, b數(shù)的十位和個(gè)位數(shù)依次放在c數(shù)的十位和千位上。 例如:當(dāng)a45,b=12。調(diào)用該函數(shù)后,c=2415。*c=a/10*100+a%10+b/10*10+b%10*1000;39. 編寫(xiě)程序,實(shí)現(xiàn)矩陣(3行3列)的轉(zhuǎn)置(即行列互換) int i,j,t; for(i=0; i < 3; i+) for(j=0; j < i; j+) t=arrayij; arrayij=arrayji; arr

18、ayji=t; 40. 判斷整數(shù)x是否是同構(gòu)數(shù)。若是同構(gòu)數(shù),函數(shù)返回1;否則返回0。x的值由主函數(shù)從鍵盤(pán)讀入,要求不大于100。說(shuō)明:所謂“同構(gòu)數(shù)”是指這樣的數(shù),這個(gè)數(shù)出現(xiàn)在它的平方數(shù)的右邊。int k; k=x*x; if(k%10=x)|(k%100=x) return 1; else return 0;41. 編寫(xiě)一個(gè)函數(shù),該函數(shù)可以統(tǒng)計(jì)一個(gè)長(zhǎng)度為2的字符串在另一個(gè)字符串中出現(xiàn)的次數(shù)。例如:假定輸入的字符串為:asdasasdfgasdaszx67asdmklo, 字符串為:as,則應(yīng)輸出6。int i,n=0; for(i=0;i<=strlen(str)-2;i+) if(st

19、ri=substr0)&&(stri+1=substr1) n+; return n;42. 刪除所有值為y的元素。數(shù)組元素中的值和y的值由 主函數(shù)通過(guò)鍵盤(pán)輸入。int i,j; for(i=0;i<*n;) if(bbi=y) for(j=i;j<*n;j+) bbj=bbj+1; *n=*n-1; else i+; 43. 在鍵盤(pán)上輸入一個(gè)3行3列矩陣的各個(gè)元素的值(值 為整數(shù)),然后輸出矩陣第一行與第三行元素之和, 并在fun()函數(shù)中輸出。int sum;int i,j;sum=0;for(i=0;i<3;i+=2)for(j=0;j<3;j+)

20、 sum=sum+aij; return sum;44. 將兩個(gè)兩位數(shù)的正整數(shù)a、b合并形成一個(gè)整數(shù)放在c中。合并的方式是:將a數(shù)的十位和個(gè)位數(shù)依次放在c數(shù)的千位和十位上, b數(shù)的十位和個(gè)位數(shù)依次放在 c數(shù)的個(gè)位和百位上。 例如:當(dāng)a45,b=12。調(diào)用該函數(shù)后,c=4251。 *c=a/10*1000+a%10*10+b/10+b%10*100;45. 將從鍵盤(pán)上輸入的每個(gè)單詞的第一個(gè)字母轉(zhuǎn)換為大寫(xiě)字母,輸入時(shí)各單詞必須用空格隔開(kāi),用.結(jié)束輸入。if (*c= ' ') return 1;else if(status && *c <= 'z

21、9; && *c >= 'a')*c += 'A' - 'a'return 0;46. 把20個(gè)隨機(jī)數(shù)存入一個(gè)數(shù)組,然后輸出該數(shù)組中的 最小值。其中確定最小值的下標(biāo)的操作在fun函數(shù)中 實(shí)現(xiàn),請(qǐng)給出該函數(shù)的定義。int i,min=0; for(i=1; i <size; i+)if(listmin>listi) min=i; return min;從低位開(kāi)始取出長(zhǎng)整型變量s中偶數(shù)位上的數(shù),依次 構(gòu)成一個(gè)新數(shù)放在t中。 例如:當(dāng)s中的數(shù)為:7654321時(shí),t中的數(shù)為:642。 long sl=10;s /= 1

22、0; t = s % 10;while(s > 0) s = s/100; t = s%10*sl + t;sl = sl * 10;從低位開(kāi)始取出長(zhǎng)整型變量s奇數(shù)位上的數(shù),依次構(gòu)成一個(gè)新數(shù)放在t中。 例如:當(dāng)s中的數(shù)為:7654321時(shí),t中的數(shù)為:7531。long sl=10; t = s % 10;while(s > 0) s = s/100; t = s%10*sl + t;sl = sl * 10;47. 請(qǐng)編一個(gè)函數(shù)void fun(int ttMN,int ppN), tt指向一個(gè)M行N列的二維數(shù)組,求出二維數(shù)組每列 中最小元素,并依次放入pp所指一維數(shù)組中。二維

23、數(shù)組中的數(shù)已在主函數(shù)中賦予。int i,j; for(j=0;j<N;j+) ppj=tt0j; for(i=1;i<M;i+) if(ttij<ppj) ppj=ttij; 48. 請(qǐng)編一個(gè)函數(shù)void fun(int ttMN,int ppN), tt指向一個(gè)M行N列的二維數(shù)組,求出二維數(shù)組每列 中最大元素,并依次放入pp所指一維數(shù)組中。二維 數(shù)組中的數(shù)已在主函數(shù)中賦予。int i,j; for(j=0;j<N;j+) ppj=tt0j; for(i=1;i<M;i+) if(ttij>ppj) ppj=ttij; 49. 根據(jù)整型形參m,計(jì)算如下公式的

24、值:y=1/21/4 1/6.1/2mdouble y=0; int i; for(i=1; i<=m; i+) y+=1.0/(2*i); return(y);50. 對(duì)長(zhǎng)度為7個(gè)字符的字符串,除首、尾字符外,將其余5個(gè)字符按降序排列。例如:原來(lái)的字符串為CEAedca,排序后輸出為CedcEA i,j; char t; for(i=1;i<num-1;i+) for(j=i+1;j<num-1;j+) if(si<sj) t=si;si=sj;sj=t;51. 求小于lim的所有素?cái)?shù)并放在aa數(shù)組中,該函數(shù)返回所求出素?cái)?shù)的個(gè)數(shù)。int n=0; int i

25、,j; for(i=2;i<=lim;i+) for(j=2;j<i;j+) if(i%j=0) break; if(j=i) aan+=i; return n;52. 對(duì)長(zhǎng)度為8個(gè)字符的字符串,將8個(gè)字符按降序排列。int i,j; char t; for(i=0;i<num;i+) for(j=i+1;j<num;j+) if(si<sj) t=si;si=sj;sj=t;53. 求大于lim(lim小于100的整數(shù))并且小于100的所有素?cái)?shù)并放在aa數(shù)組中,該函數(shù)返回所求出素?cái)?shù)的個(gè)數(shù)。int n=0; int i,j; for(i=lim;i<=100

26、;i+) for(j=2;j<i;j+) if(i%j=0) break; if(j=i) aan+=i; return n;54. 根據(jù)整型形參m,計(jì)算如下公式的值: y=1/5+1/61/71/81/9+1/10.1/(m+5)double y=0; int i; for(i=0; i<=m; i+) y+=1.0/(i+5); return(y);55. 根據(jù)整型形參m,計(jì)算如下公式的值:y=sin(m)*10。double y=0; y=sin(m)*10; return(y);56. 實(shí)現(xiàn)兩個(gè)整數(shù)的交換。int t; t=*a;*a=*b;*b=t;57. 把20個(gè)隨機(jī)數(shù)

27、存入一個(gè)數(shù)組,然后輸出該數(shù)組中的最大值。 int i,max=0; for(i=1; i <size; i+)if(listmax<listi) max=i; return max;58. 編寫(xiě)程序, 求矩陣(3行3列)與2的乘積int i,j; for(i=0; i < 3; i+) for(j=0; j < 3; j+) arrayij=arrayij*2; 59. 求給定正整數(shù)m以?xún)?nèi)的素?cái)?shù)之和。int i,k,s=0; for(i=2;i<=m;i+) for(k=2;k<i;k+) if(i%k=0)break; if(k=i)s=s+i; retu

28、rn s;60. 求一個(gè)給定字符串中的字母的個(gè)數(shù)。int i,k=0; for(i=0;si!='0'i+) if(si>='a'&&si<='z'|si>='A'&&si<='Z') k+;return k;61. 求一個(gè)四位數(shù)的各位數(shù)字的立方和。int d,s=0; while (n>0) d=n%10; s+=d*d*d; n/=10; return s;62. 求1到100之間的偶數(shù)之積。double y=1; int i; for(i=1;i&

29、lt;=m;i+) if(i%2=0)y*=i; return y;63. 求一組數(shù)中大于平均值的數(shù)的個(gè)數(shù)。int i,k=0; float s=0,ave; for(i=0;i<n;i+) s+=ai; ave=s/n; printf("%f ",ave); for(i=0;i<n;i+) if(ai>ave)k+;return k;64. 找出一批正整數(shù)中的最大的偶數(shù)。int i,amax=-1; for(i=0;i<n;i+) if(ai%2=0) if (ai>amax) amax=ai; return amax;65. 求一分?jǐn)?shù)序列2

30、/1,3/2,5/3,8/5,13/8,21/13的前n項(xiàng)之和。int i; float f1=1,f2=1,f3,s=0; for(i=1;i<=n;i+) f3=f1+f2; f1=f2; f2=f3; s=s+f2/f1; return s;66. 編寫(xiě)函數(shù)判斷一個(gè)整數(shù)m的各位數(shù)字之和能否被7整除, 可以被7整除則返回1,否則返回0。調(diào)用該函數(shù)找出 100200之間滿(mǎn)足條件的所有數(shù)。int k,s=0; do s=s+m%10; m=m/10; while(m!=0); if(s%7=0)k=1; else k=0; return(k);67. 用函數(shù)將第2個(gè)串連接到第1個(gè)串之后,

31、不允許使用strcat函數(shù)。int i,j; for(i=0;c1i!='0'i+); for(j=0;c2j!='0'j+) c1i+j=c2j; c1i+j='0'68. 用函數(shù)求一個(gè)N階方陣右下三角元素的和(包括副對(duì)角線(xiàn)上的元素)。 int i,j,k=0; for(i=0;i<N;i+) for(j=N-1-i;j<N;j+) k=k+aij; return(k);69. 用函數(shù)求fibonacci數(shù)列前n項(xiàng)的和。long f,k=f1+f2; int i; for(i=3;i<=28;i+) f=f1+f2; k=k+

32、f; f1=f2; f2=f; return(k);70. 編寫(xiě)函數(shù)實(shí)現(xiàn)兩個(gè)數(shù)據(jù)的交換,在主函數(shù)中輸入任意三個(gè)數(shù)據(jù),調(diào)用函數(shù)對(duì)這三個(gè)數(shù)據(jù)從大到小排序。int k; k=*a; *a=*b; *b=k;71. 從鍵盤(pán)上輸入任意實(shí)數(shù),求出其所對(duì)應(yīng)的函數(shù)值。 z=e的x次冪(x>10) z=log(x+3) (x>-3) z=sin(x)/(cos(x)+4)double z; if(x>10) z=exp(x); else if(x>-3) z=log(x+3); else z=sin(x)/(cos(x)+4); return(z);72. 從鍵盤(pán)上輸入任意實(shí)數(shù)x,求出其

33、所對(duì)應(yīng)的函數(shù)值。 z=(x-4)的二次冪(x>4) z=x的八次冪(x>-4) z=z=4/(x*(x+1)(x>-10) z=|x|+20(其他)float z; if(x>4) z=sqrt(x-4); else if(x>-4) z=pow(x,8); else if(x>-10) z=4/(x*(x+1); else z=fabs(x)+20; return(z);73. 編寫(xiě)函數(shù)用選擇排序法對(duì)數(shù)組中的數(shù)據(jù)進(jìn)行從小到大的排序。int i,j,k,t; for(i=0;i<n-1;i+) k=i; for(j=i+1;j<n;j+) if(

34、ak>aj) k=j; if(k!=i) t=ai; ai=ak; ak=t; 74. 編寫(xiě)函數(shù)用冒泡排序法對(duì)數(shù)組中的數(shù)據(jù)進(jìn)行從小到大的排序。int i,j,t; for(i=0;i<n-1;i+) for(j=0;j<n-1-i;j+) if(aj>aj+1) t=aj; aj=aj+1; aj+1=t;75. 給定n個(gè)數(shù)據(jù), 求最大值出現(xiàn)的位置(如果最大值出 現(xiàn)多次,求出第一次出現(xiàn)的位置即可)。int i,k; k=0; for(i=1;i<=n;i+) if(si>sk) k=i; return(k+1);76. 用輾轉(zhuǎn)相除法求兩個(gè)整數(shù)的最大公約數(shù)。i

35、nt r,t; if(n<m) t=n;n=m;m=t; r=n%m; while(r!=0) n=m;m=r;r=n%m; return(m);77. 求一批數(shù)中小于平均值的數(shù)的個(gè)數(shù)。int i,sum=0,k=0; double average; for(i=0;i<n;i+) sum=sum+ai; average=sum*1.0/n; for(i=0;i<n;i+) if(average>ai) k+;return(k);78. 給定n個(gè)數(shù)據(jù), 求最小值出現(xiàn)的位置(如果最小值出現(xiàn)多次,求出第一次出現(xiàn)的位置即可)。int i,k; k=0; for(i=1;i&l

36、t;n;i+) if(si<sk) k=i; return(k);79. 用函數(shù)實(shí)現(xiàn)字符串的復(fù)制, 不允許用strcpy()函數(shù)。int i; for(i=0;str1i!='0'i+) str2i=str1i;str2i='0'80. 產(chǎn)生20個(gè)30,120上的隨機(jī)整數(shù)放入二維數(shù)組a54 中,求每行元素的和。int i,j; for(i=0;i<5;i+) bi=0; for(j=0;j<4;j+) bi=bi+aij; 81. 將字符串中的大寫(xiě)字母轉(zhuǎn)換為對(duì)應(yīng)的小寫(xiě)字母,其它字符不變。int i; for(i=0;stri!='0&#

37、39;i+) if(stri>='A' && stri<='Z') stri=stri+32;82. 用函數(shù)求N個(gè)10,60上的整數(shù)中能被5整除的最大的數(shù),如存在則返回這個(gè)最大值,如果不存在則返回0。int i; for(i=0;i<n;i+) if(arri%5=0 && arri>m) m=arri;83. 求一批數(shù)中最大值和最小值的差。int i,max,min; max=min=a0; for(i=1;i<n;i+) if(ai>max) max=ai; else if(ai<mi

38、n) min=ai; return(max-min);84. 編寫(xiě)函數(shù)判斷一個(gè)整數(shù)能否同時(shí)被3和5整除,若能則返回值為1,否則為0。調(diào)用該函數(shù)求出15300之 間能同時(shí)被3和5整除的數(shù)的個(gè)數(shù)。if(n%3=0&&n%5=0) return(1); return(0);85. 編寫(xiě)函數(shù)求表達(dá)式的和(n的值由主函數(shù)輸入)。1-1/2+1/3-1/4+.+1/mfloat s=0; int i,k=1; for(i=1;i<=n;i+) s=s+k*1.0/i; k=-k; return(s);86. 編寫(xiě)函數(shù)求表達(dá)式的和(n的值由主函數(shù)輸入)。 1-1/2+1/3-1/4+.

39、+1/mfloat s=0; int i,k=1; for(i=1;i<=n;i+) s=s+k*1.0/i; k=-k; return(s);87. 編寫(xiě)函數(shù)求1100中奇數(shù)的平方和。float s=0; int i; for(i=1;i<=n;i=i+2) s=s+i*i; return(s);88. 將字符串中的小寫(xiě)字母轉(zhuǎn)換為對(duì)應(yīng)的大寫(xiě)字母, 其它字符不變。int i; for(i=0;stri!='0'i+) if(stri>='a' && stri<='z') stri=stri-32;89. 求

40、一批數(shù)中最大值和最小值的積。int i,max,min; max=min=a0; for(i=1;i<n;i+) if(ai>max) max=ai; else if(ai<min) min=ai; return(max*min);90. 編寫(xiě)函數(shù)求3!+6!+9!+12!+15+18!+21!。int i,j; float t,s=0; for(i=3;i<=n;i=i+3) t=1; for(j=1;j<=i;j+) t=t*j; s=s+t; return(s);91. 產(chǎn)生20個(gè)30,120上的隨機(jī)整數(shù)放入二維數(shù)組 a54中, 求其中的最小值。int i,

41、j,s; s=a00; for(i=0;i<5;i+) for(j=0;j<4;j+) if(s>aij)s=aij; return(s);92. 求n階方陣主、副對(duì)角線(xiàn)上的元素之積。int i,j; float t=1; for(i=0;i<N;i+) for(j=0;j<N;j+) if(i=j|i+j=N-1) t=t*arrij;return(t);93. 編寫(xiě)函數(shù)fun對(duì)主程序中用戶(hù)輸入的具有10個(gè)數(shù)據(jù)的數(shù)組a按由大到小排序,并在主程序中輸出排序結(jié)果。int k,j,t; for (k=0;k<n-1;k+) for (j=k+1;j<n;j

42、+) if (arrayk<arrayj) t=arrayk; arrayk=arrayj; arrayj=t;94. 編寫(xiě)函數(shù)fun(str,i,n),從字符串str中刪除第i個(gè)字符開(kāi)始的連續(xù)n個(gè)字符(注意:str0代表字符串的第一個(gè)字符)。while(stri+n-1) stri-1=stri+n-1; i+; stri-1='0'95. 編寫(xiě)函數(shù)fun求s=1k+2k +3k + .+Nk的值, (1的K次方到N的K次方的累加和)。long power,sum=0; int i,j; for(i=1;i<=n;i+) power=i; for(j=1;j<

43、;k;j+) power *= i; sum += power; return sum;96. 編寫(xiě)程序求無(wú)理數(shù)e的值并輸出。計(jì)算公式為: e=1+1/1!+1/2!+1/3!+.+1/n! 當(dāng)1/n!<0.000001時(shí)e=2.718282。long int j; int i,k; double e,jc; i=1; e=0.0; jc=1.0; while(jc>=0.000001) e=e+jc; j=1; for(k=1;k<=i;k+) j=j*k; jc=1.0/j; i+; return e;97. 編寫(xiě)main程序調(diào)用函數(shù)fact求解從m個(gè)元素選n個(gè)元 素的組

44、合數(shù)的個(gè)數(shù)。計(jì)算公式是:組合數(shù)m!/(n!.(m-n)!)。要求:m不能小于n,否則應(yīng)有容錯(cuò)處理。說(shuō)明:函數(shù)fact(x)的功能是求x!。while(m<n) printf("m和n輸入錯(cuò)!請(qǐng)重新輸入:n"); scanf("%d%d",&m,&n); zhsgs=fact(m)/(fact(n)*fact(m-n);98. 若x、y為奇數(shù),求x到y(tǒng)之間的奇數(shù)和;若x、y為偶 數(shù),則求x到y(tǒng)之間的偶數(shù)和。int i,s=0; for(i=x;i<=y;i+=2) s=s+i; return s;99. 編寫(xiě)函數(shù)fun生成一個(gè)對(duì)

45、角線(xiàn)元素為1,其他元素都為0的3*3的二維數(shù)組。for(i=0;i<3;i+) for(j=0;j<3;j+) if(i=j) arrij=1; else arrij=0;100. 編寫(xiě)函數(shù)fun,求任一整數(shù)m的n次方。long int x=1; int i; for(i=1;i<=n;i+) x=x*m; return x;101. 輸入三個(gè)字符串,按由小到大順序輸出。編寫(xiě)交換 函數(shù)fun,用交換指針的方式實(shí)現(xiàn)交換。char *p=NULL; strcpy(p,p1); strcpy(p1,p2); strcpy(p2,p);102. 編寫(xiě)函數(shù)fun計(jì)算下列分段函數(shù)的值: x2+x+6 x<0且x-3 f(x)= x2-5x+6 0x<10且x2及x3 x2-x-1 其它float y; if (x<0 && x!=-3.0) y=x*x+x+6; else if(x>=0 && x<10.0 && x!=2.0 && x!=3.0) y=x*x-5*x+6; else y=x*x-x-1;return y;103. 編寫(xiě)函數(shù)fun求1000以?xún)?nèi)所有7的倍數(shù)之和。int s=0,i; for(i=1;i<N;i+) if(

溫馨提示

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

評(píng)論

0/150

提交評(píng)論