[電腦基礎知識]C語言上機編程題_第1頁
[電腦基礎知識]C語言上機編程題_第2頁
[電腦基礎知識]C語言上機編程題_第3頁
[電腦基礎知識]C語言上機編程題_第4頁
[電腦基礎知識]C語言上機編程題_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、 c語言上機編程題一、數(shù)字題:1將兩個兩位數(shù)的正整數(shù)a、b合并形成一個整數(shù)放在c中。合并的方式是:將a數(shù)的十位和個位依次放在c個位和十位上,b的十位和個位依次放在c的百位和千位上。如當a=16,b=35,則c=5361。void fun(int a ,int b,long *c)*c=(b%10)*1000+(b/10)*100+(a%10)*10+a/10;2將兩個兩位數(shù)的正整數(shù)a、b合并形成一個整數(shù)放在c中。合并的方式是將a數(shù)的十位和個數(shù)依次放在c數(shù)的千位和十位上,b數(shù)的十位和個數(shù)依次放在c數(shù)的百位和個位上。例如:當a=45,b=12,調用該函數(shù)后,c=4152。void fun(int

2、a,int b,long *c)*c=(a/10)*1000+(b/10)*100+(a%10)*10+(b%10);3將兩個兩位數(shù)的正整數(shù)a、b合并形成一個整數(shù)放在c中。合并的方式是:將a數(shù)的十位和個位數(shù)依次放在c數(shù)的個位和百位上,b數(shù)的十位和個位數(shù)依次放在c數(shù)的千位和十位上。例如,當a=45,b=12,調用該函數(shù)后,c=1524void fun(int a,int b,long *c)*c=(b/10)*1000+(a%10)*100+(b%10)*10+(a/10);4將兩個兩位數(shù)的正整數(shù)a、b合并形成一個整數(shù)放在c中。合并的方式是:將a數(shù)的十位和個位數(shù)依次放在c數(shù)的十位和千位上,b數(shù)的

3、十位和個位數(shù)依次放在c數(shù)的個位和百位上。例如,當a=45,b=12,調用該函數(shù)后,c=5241。void fun(int a,int b,long *c)*c=a%10*1000+b%10*100+a/10*10+b/10;5將兩個兩位數(shù)的正整數(shù)a、b合并形成一個整數(shù)放在c中。合并的方式是:將a數(shù)的十位和個位數(shù)依次放在c數(shù)的千位和十位上,b數(shù)的十位和個位數(shù)依次放在c數(shù)的個位和百位上。例如,當a=45,b=12,調用該函數(shù)后,c=4251。void fun(int a,int b,long *c)*c=a/10*1000+b%10*100+a%10*10+b/10;6將兩個兩位數(shù)的正整數(shù)a、b全

4、并形成一個整數(shù)放在c中。合并的方式是:將a數(shù)的十位和個位數(shù)依次放在c數(shù)的個位和百位上,b數(shù)的十位和個位數(shù)依次放在c數(shù)的十位和千位上。例如,當a=45,b=12,調用該函數(shù)后,c=2514。void fun(int a,int b,long *c)*c=(b%10)*1000+(a%10)*100+(b/10)*10+(a/10);7將兩個兩位數(shù)的正整數(shù)a、b合并形成一個整數(shù)放在c中。合并的方式是:將a數(shù)的十位和個位數(shù)依次放在c數(shù)的百位和個位上,b數(shù)的十位和個位數(shù)依次放在c數(shù)的千位和十位上。例如,當a=45,b=12,調用該函數(shù)后,c=1425。void fun(int a,int b,long

5、 *c)*c=(b/10)*1000+(a/10)*100+(b%10)*10+(a%10);8將兩個兩位數(shù)的正整數(shù)a、b合并形成一個整數(shù)放在c中。合并的方式是:將a數(shù)的十位和個位數(shù)依次放在c數(shù)的百位和個位上,b數(shù)的十位和個位數(shù)依次放在c數(shù)的十位和千位上。例如,當a=45,b=12,調用該函數(shù)后,c=2415。void fun(int a,int b,int *c)*c=(b%10)*1000+(a/10)*100+(b/10)*10+(a%10);9將兩個兩位數(shù)的正整數(shù)a,b合并形成一個整數(shù)放在c中。合并的方式是:將a數(shù)的十位和個位數(shù)依次放在c數(shù)的十位和千位上,b數(shù)的十位和個位數(shù)依次放在c數(shù)

6、的百位和個位上。例如,當a=45時,b=12,調用該函數(shù)后,c=5142。void fun(int a ,int b,long *c)*c=a%10*1000+b/10*100+a/10*10+b%10;10求n以內(不包括n)同時能被5與11整除的所有自然數(shù)之和的平方根s并作為函數(shù)值返回。如:n為1000時,函數(shù)值應為s=96.979379。double fun(int n)double s=0.0;int i;for(i=0;in;i+)if(i%5=0&i%11=0)s=s+i;s=sqrt(s);return s;11計算并輸出給定整數(shù)n的所有因子(不包括1與自身)的平方和(規(guī)定n的值

7、不大于100)。如:n的值為56,則輸出為sum=1113。long fun(int n)int i;long s=0;for(i=2;i=n-1;i+)if(n%i=0)s+=i*i;return s;12求n以內(不包括n)同時能被3與7整除的所有自然數(shù)之和的平方根s,并作為函數(shù)值返回。若n為1000時,s=153.909064。double fun(int n)double s=0;int i;for(i=0;in;i+)if(i%3=0&i%7=0)s+=i;s=sqrt(s);return s;13計算并輸出n(包括n)以內能被5或9整除的所有自然數(shù)的倒數(shù)之和。如,若給n輸入20后,

8、則輸出為s=0.583333。double fun(int n)int i;double sum=0;for(i=1;i=n;i+)if(i%5=0|i%9=0)sum+=1.0/i;return sum;14計算并輸出3到n之間所有素數(shù)的平方根之和。如,若給n輸入100后,則輸出為sum=148.874270。double fun(int n)int m,k,i;double s=0;for(m=3;m=n;m+)k=sqrt(m);for(i=2;i=k+1)s+=sqrt(m);return s;15判斷整數(shù)x是否是同構數(shù)。若是同構數(shù),函數(shù)返回1;否則返回0。int fun(int x)

9、if(x10)return (!(x*x-x)%10);else return (!(x*x-x)%100);106、用篩選法求出100之內的素數(shù)void fun ( int *pt )int i,j,flag;*pt=2;*pt+;for(i=3;i100;i+)flag = 1;for(j=2;j=k)return days;height-=n;17求fibonacci數(shù)列中小于t的最大的一個數(shù),結果由函數(shù)返回。其中數(shù)列f(n)的定義為f(0)0,f(1)1,f(n)=f(n-1)+f(n-2)例如:t=1000時 ,函數(shù)值為987。int fun(int t)int a=1,b=1,c=

10、0,i;doc=a+b;a=b;b=c;while (ct);c=a;return c;18求fibonacci數(shù)列中大于t的最小的一個數(shù),結果由函數(shù)返回。其中fibonacci數(shù)列f(n)的定義為:f(0)=0,f(1)=1,f(n)=f(n-1)+f(n-2)例如,當t=1000時,函數(shù)值為1597。int fun(int t)int a=1,b=1,c=0,i;for(i=4;i=t;i+)if(c=10000) return w%10000;if(w=1000)return w%1000;if(w=100)return w%100;if(w=10) return w%10;20對變量h

11、中的值保留兩位小數(shù),并對第三位進行四舍五入(規(guī)定h中的值為正數(shù))。例如:若h 值為8.32433,則函數(shù)返回8.32;若h值為8.32533,則函數(shù)返回8.33。float fun (float h )long t;t=(h*1000+5)/10;return (float)t/100;21利用以下所示的簡單迭代方法求方程cos(x)-x=0的一個實根。xn-1=cos(xn)迭代步驟如下:(1)取x1初值為0.0;(2)x0=x1,把x1的值賦給x0;(3)x1=cos(x0),求出一新的x1;(4)若x0-x1的絕對值小于0.000001,則招待步驟(5),否則執(zhí)行步驟(2);(5)所求x

12、1就是方程cos(x)-x=0的一個實根作為函數(shù)值返回。輸出結果root=0.739085。float fun()float x1=0.0,x0;dox0=x1;x1=cos(x0);while(fabs(x0-x1)=1e-6);return x1;22根據(jù)以下公式計算s,計算結果通過形指針sn傳回;s通過形參傳入。sn=1/1-1/3+1/5-1/7+(-1)n/(2n-1)例如:若n的值為11時, s=0.764601void fun(float *sn,int n)int i;float s=1;*sn=0;for(i=0;i=n;i+)*sn=*sn+s*(1.0/(2*i+1);s

13、=-s;23s=(1+1/2)+(1/3+1/4)+(1/(2n-1)+1/2n)如,若給n輸入12后,則輸出為s=3.775958。n的值要求大于1但不大于100。double fun(int n)int i;double s=0.0;for(i=1;i=n;i+)s=s+(1.0/(2*i-1)+1.0/(2*i);return s;24計算:s=(1-ln(1)-ln(2)-ln(3)-ln(m)2s作為函數(shù)值返回。在c語言中可調用log(n)函數(shù)求ln(n)。log函數(shù)的引用說明是double log(double x)。如,若m的值為15,則函數(shù)值為723.570801。double

14、 fun(int m)int i;double s=1.0;for(i=1;i=m;i+)s=s-log(i);return (s*s);25計算下列級數(shù),和值由函數(shù)值返回。s=1-x+x2/2!-x3/3!+(-1*x)n/n!。如當n=15,x=0.5時,值為0.606531。double fun(double x, int n)int i,j=1;double s=1.0,s1=1.0;for(i=1;i=n;i+)j=-1*j;s1=s1*i;s=s+j*pow(x,i)/s1;return s;26根據(jù)以下公式計算s,計算結果作為函數(shù)值返回;n通過形參傳入。s=1+1/(1+2)+1

15、/(1+2+3)+1/(1+2+3+n)。若n的值為11時,值為1.833333。float fun(int n)int i,s1=0;float s=0.0;for(i=1;in。p=m!/(n!(m-n)!),例如:m=12,n=8時,運行結果為495.000000。float fun (int m, int n)int i;double p=1.0;for(i=1;i=m;i+) p=p*i;for(i=1;i=n;i+) p=p/i;for(i=1;i=eps)s1=s1*n/(2*n+1);s=s+s1;n+;return 2*s;29s=1/(12)+1/(23)+1/(n(n+1

16、)例如,當n=10時,函數(shù)值為0.909091。double fun(int n)int i;double s=0.0;for(i=1;i=n;i+)s=s+1.0/(i*(i+1);return s;30計算并輸出給定10個數(shù)的方差。 例如,給定的10個數(shù)為95.0,89.0,76.0,65.0,88.0,72.0,85.0,81.0,90.0,56.0,則輸出為s=11.730729。double fun(double x10)double x1=0.0,s=0.0;int i;for(i=0;i10;i+)x1=x1+xi;x1=x1/10;for(i=0;i10;i+)s+=(xi-x

17、1)*(xi-x1);return sqrt(s/10);31s=(1-1/2)+(1/3-1/4)+(1/(2n-1)-1/2n)。例如,若給n輸入8后,則輸出為s=0.662872。double fun(int n)int i;double s=0.0;for(i=1;i=n;i+)s=s+(1.0/(2*i-1)-1.0/(2*i);return s;32計算s=(ln(1)+ln(2)+ln(3)+ln(m)0.5??烧{用log(n)函數(shù)求ln(n)。若m的值為20,則函數(shù)值為6.506583。double fun(int m)int i;double s=0.0;for(i=1;i=

18、m;i+)s=s+log(i);return sqrt(s);33計算下列和值由函數(shù)值返回。s=1+x+x2/2!+x3/3!+xn/n!例如,當n=10,x=0.3時,函數(shù)值為1.349859。double fun(double x, int n)int i;double s=1.0,s1=1.0;for(i=1;i=n;i+)s1=s1*i;s=s+pow(x,i)/s1;return s;34s=1+(1+20.5)+(1+20.5+30.5)+(1+20.5+30.5+n0.5)如,若給n輸入20后,則輸出為s=534.188884。double fun(int n)int i;dou

19、ble s=0.0,s1=0.0;for(i=1;i=n;i+)s1=s1+pow(i,0.5);s=s+s1;return s;35sn=1+1/1!+1/2!+1/3!+1/4!+1/n!如,若給n輸入15,則輸出為s=2.718282。double fun(int n)double t,sn=1.0;int i,j;for(i=1;i=n;i+)t=1.0;for(j=1;j=i;j+)t*=j;sn+=1.0/t;return sn;36計算并輸出當x0.97時下列多項式的值,直到|sn-sn-1|=1e-6);return sum;二、數(shù)組題:37求出一個2m整型二維數(shù)組中最大元素的

20、值,并將此值返回調用函數(shù)。fun (int am)int i,j,max=a00;for(i=0;i2;i+)for(j=0;jm;j+)if(maxaij)max=aij;return max;38求出一個4m整型二維數(shù)組中最小元素的值,并將此值返回調用函數(shù)。fun (int am)int i,j,min=a00;for(i=0;i4;i+)for(j=0;jaij)min=aij;return min;39求出二維數(shù)組每列中最大元素,并依次放入pp所指的一維數(shù)組中.void fun(int ttmn,int ppn)int i,j,max;for(j=0;jn;j+)max=tt0j;fo

21、r(i=0;imax)max=ttij;ppj=max;40程序定義了nn的二維數(shù)組,給數(shù)組周邊元素置0值。fun(int wn )int i,j;for(i=0;in;i+)for(j=0;jn;j+)if(i=0|i=n-1|j=0|j=n-1)wij=0;41程序定義了nn的二維數(shù)組,使數(shù)組中第一行元素中的值與倒數(shù)第一行元素中的值對調、第二行元素中的值與倒數(shù)第二行元素中的值對調、其他依次類推。例如:a數(shù)組中的值為0 11 12 7 91 9 7 4 520 13 18 3 114 5 6 8 215 9 17 4 1則返回主程序后a數(shù)組中的值應為15 9 17 4 114 5 6 8 2

22、20 13 18 3 11 9 7 4 50 11 12 7 9int fun(int an )int i,j,k;for(i=0;in/2;i+)for(j=0;jn;j+)k=aij;aij=an-i-1j;an-i-1j=k;42程序定義了nn的二維數(shù)組,使數(shù)組中第一列元素中的值與最后一列元素中的值對調、第二列元素中的值與倒數(shù)第二列元素中的值對調、其他依次類推。例如:a數(shù)組中的值為0 11 12 7 91 9 7 4 520 13 18 3 114 5 6 8 215 9 17 4 1則返回主程序后a數(shù)組中的值應為9 7 12 11 05 4 7 9 11 3 18 13 202 8 6

23、 5 141 4 17 9 15int fun(int an )int i,j,k;for(i=0;in/2;i+)for(j=0;jn;j+)k=aji;aji=ajn-i-1;ajn-i-1=k;43下列程序定義了nn的二維數(shù)組,并在主函數(shù)中自動賦值。編寫函數(shù):使數(shù)字右上半三角元素中的值乘以m。例如,若m的值為2,a數(shù)組中的值為a=1 9 2 7則返回主程序后a數(shù)組的值應為2 182 14int fun(int an, int m)int i,j;for(i=0;in;i+)for(j=i;jn;j+)aij*=m;44程序定義了nn的二維數(shù)組使數(shù)組左下半三角元素中的值加上n。如:若n的值

24、為3,a數(shù)組中的值為a=2 5 4 1 6 9 5 3 7則返回主程序后a數(shù)組中的值應為 5 5 4 4 9 9 8 6 10 fun(int a n, int n)int i, j;for(i=0; in; i+)for(j=0; j=i; j+)aij=aij+n;45下列程序定義了nn的二維數(shù)組,并在主函數(shù)中賦值。編寫函數(shù):求出數(shù)組周邊元素的平方和并作為函數(shù)值返回給主函數(shù)中的s。例如:若a 數(shù)組中的值為a=0 1 2 7 9 1 11 21 5 5 2 21 6 11 1 9 7 9 10 2 5 4 1 4 1則返回主程序后s的值應為310。int fun (int wn)int i,

25、j,k=0;int s=0;for(i=0;in;i+)for(j=0;jn;j+)if(i= =0|i= =n-1|j= =0|j= =n-1)s=s+wij*wij;return s;46下列程序定義了nn的二維數(shù)組,并在主函數(shù)中賦值。求出數(shù)組周邊元素的平均值并作為函數(shù)值返回給主函數(shù)中的s。若a 數(shù)組中的值為a =0 1 2 7 91 9 7 4 52 3 8 3 14 5 6 8 25 9 1 4 1則返回主程序后s的值應為3.375。double fun (int wn)int i,j,k=0;double av=0.0;for(i=0;in;i+) for(j=0;jn;j+)if(

26、i=0|i=n-1|j=0|j=n-1)av=av+wij;k+;return av/k;47求出二維數(shù)組周邊元素之和,作為函數(shù)值返回。二維數(shù)組中的值在主函數(shù)中賦予。例如:若二維數(shù)組中的值為1 3 5 7 92 9 9 9 46 9 9 9 81 3 5 7 0則函數(shù)值為61。int fun( int a mn)int i,j,sum=0;for(i=0;im;i+)for(j=0;jn;j+)if(i=0|i=m-1|j=0|j=n-1)sum=sum+aij;return sum;48實現(xiàn)矩陣(3行3列)的轉置(即行列互換)。例如,若輸入下面的矩陣:100 200 300400 500 6

27、00700 800 900則程序輸出:100 400 700200 500 800300 600 900int fun (int array33)int i,j,t;for(i=0;i3;i+)for(j=i+1;j3;j+)t=arrayij;arrayij=arrayji;arrayji=t;49實現(xiàn)b=a+a,即把矩陣a加上a的轉置,存放在矩陣b中。輸入下面矩陣: 1 2 3 4 5 6 7 8 9其轉置矩陣為:1 4 7 2 5 8 3 6 9則程序輸出:2 6 10 6 10 14 10 14 18void fun (int a33, int b33)int i,j;for(i=0;

28、i3;i+)for(j=0;j3;j+)bij=aij+aji;50將m行n列的二維數(shù)組中的數(shù)據(jù)按列的順序依次放到一維數(shù)組中。例如,二維數(shù)組中的數(shù)據(jù)為:33 33 33 3344 44 44 4455 55 55 55則一維數(shù)組中的內容應是:33,44,55,33,44,55,33,44,55,33,44,55。void fun(int (*s)10,int *b,int *n,int mm,int nn)int x,y;for(x=0;xnn;x+)for(y=0;ymm;y+)bx*mm+y=*(sy+x);(*n)+;51將m行n列的二維數(shù)組中的數(shù)據(jù),按行的順序依次放到一維數(shù)組中,一維數(shù)

29、組中數(shù)據(jù)的個數(shù)存放在形參n所指的存儲單元中。若二維數(shù)組中的數(shù)據(jù)為:33 33 33 3344 44 44 4455 55 55 55則一維數(shù)組中的內容應該是33,33,33,33,44,44,44,44,55,55,55,55.void fun (int (*s)10, int *b, int *n, int mm, int nn)int i,j,k=0;for(i=0;imm;i+)for(j=0;jnn;j+)bk+=sij;*n=k;52求出一個mn二維數(shù)組每行元素的和數(shù),并依次放入一個一維數(shù)組中傳回主函數(shù)。例如,若有以下二維數(shù)組:6 10 2 10 1617 15 15 8 64 18

30、 11 19 120 12 1 3 7則輸出:44,61,64,23fun (int an,int b)int i,j,sum=0,n=0;for(i=0;im;i+)for(j=0;jn;j+)sum+=aij;bn+=sum;sum=0;53輸出一個如下的n階方陣。變量n從文件c9670503.in中讀取。例如,若讀入 4 或 5 ,則分別輸出1 2 3 48 7 6 59 10 11 1216 15 14 13或1 2 3 4 510 9 8 7 611 12 13 14 1520 19 18 17 1625 24 23 22 21void mtrx( int n )int am=0,d

31、=0,i,j,k;file *fp ;fp=fopen(dat52.dat,w);for(i=1;i=n;i+)for(j=0;jn;j+ )d+=1;aj=d;if(i%2)for(k=0;k=0;k-)printf( %3d,ak);fprintf(fp, %3d,ak);printf(n);fprintf(fp,n);fclose(fp);54求數(shù)組的最小元素在數(shù)組中的下標并存放在k所指的存儲單元中.如輸入:234,345,753,134,436,458,100,321,135,760則輸出結果為6,100。int fun(int *s,int t,int *k)int i;*k=0;f

32、or(i=0;isi)*k=i;return s*k;55找出一維數(shù)組元素中最大的值和它所在的下標,最大值和它所在的下標通過形參傳回。數(shù)組元素中的值已在主函數(shù)中賦予。主函數(shù)中x是數(shù)組名,n是x中的數(shù)據(jù)個數(shù),max存放最大值,index存放最大值所在元素的下標。void fun(int a,int n, int *max, int *d)int i;*max=a0;*d=0;for(i=0;in;i+)if(*maxai)*max=ai;*d=i;56把20個隨機數(shù)存入一個數(shù)組,然后輸出該數(shù)組中的最小值。int fun(int list,int size)int x,i;x=0;for(i=1;

33、ilisti)x=i;return x;57將數(shù)組xx(有n個元素)的前k個元素(kn)移到數(shù)組的尾部,變?yōu)楹髃個元素,但是數(shù)組的這兩段(原前k個元素為一段、另外的n-k個元素為一段)中元素的順序不得改變。例如,若輸入:7和 1 2 3 4 5 6 7,再輸入:5,則輸出應為:6 7 1 2 3 4 5。void move(int n,int xx,int k)int i,j,t;for(i=0;ik;i+)t=xx0;for(j=1;jn;j+)xxj-1=xxj;xxn-1=t;58移動一維數(shù)組中的內容,若數(shù)組中有n個整數(shù),要求把下標從p到n-1(pn-1)的數(shù)組元素平移到數(shù)組的前面,一維

34、數(shù)組中的原始內容為1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,p的值為6。移動后,一維數(shù)組中的內容應為7,8,9,10,10,11,12,13,14,15,1,2,3,4,5,6。void fun(int *w, int p, int n)int i,j,t;for(i=p;i=0;j-)wj+1=wj;w0=t;59移動一維數(shù)組中的內容,若數(shù)組中有n個整數(shù),要求把下標從0到p(pn-1)的數(shù)組元素平移到數(shù)組的最后如一維數(shù)組中的原始內容為1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,p為3移動后一維數(shù)組中的內容應為5,6,7,8,9,10,

35、11,12,13,14,15,1,2,3,4。void fun(int *w, int p, int n)int i,j,t;for(i=0;i=p;i+)t=w0;for(j=1;jn;j+)wj-1=wj;wj-1=t;60刪去一維數(shù)組中所有相同的數(shù),使之只剩一個。數(shù)組中的數(shù)已按由小到大的順序排列,函數(shù)返回刪除后數(shù)組中數(shù)據(jù)的個數(shù)。若一維數(shù)組中的數(shù)據(jù)是:2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10刪除后,數(shù)組中的內容應該是:2,3,4,5,6,7,8,9,10。int fun(int a, int n)int i,j=1;for(i=1;in;i+)if(

36、aj-1!=ai)aj+=ai;return j;61求出能整除x且不是奇數(shù)的各整數(shù),并按從小到大的順序放在pp所指的數(shù)組中,這些除數(shù)的個數(shù)通過形參n返回。若x中的值為24,則有6個數(shù)符合要求,它們是2,4,6,8,12,24。void fun (int x, int pp , int *n)int i,j=0;for(i=2;i=x;i=i+2)if(x%i=0)ppj+=i;*n=j;62求出能整除x且不是偶數(shù)的各整數(shù),并按從小到大的順序放在pp所指的數(shù)組中,這些除數(shù)的個數(shù)通過形參n返回。例如,若x中的值為30,則有4個數(shù)符合要求,它們是1,3,5,15。void fun (int x,

37、int pp, int *n)int i,j=0;for(i=1;ix;i=i+2)if(x%i=0)ppj+=i;*n=j;63將大于整數(shù)m且緊靠m的k個非素數(shù)存入所指的數(shù)組中.如,若輸入15,5,則應輸出16,18,20,21,22。void fun(int m, int k, int xx)int i,j,n;for(i=m+1,n=0;nk;i+)for(j=2;ji;j+)if(i%j=0)xxn+=i;break;64求出1到1000之內能被5或13整除、但不能同時被5和13整除的所有整數(shù)并將它們放在a所指的數(shù)組中,通過n返回這些數(shù)的個數(shù)。void fun(int *a,int *

38、n)int i,j=0;for(i=1;i=1000;i+)if(i%5= =0|i%13= =0) & i%65 !=0)aj+=i;*n=j;65求出1到m(含m)之內能被7或11整除的所有整數(shù)放在數(shù)組a中,通過n返回這些數(shù)的個數(shù).若傳給m的值為50,輸出7,11,14,21,22,28,33,35,42,44,49void fun(int m, int *a, int *n)int i,j=0;for(i=1;i=m;i+)if(i%7=0|i%11=0)aj+=i;*n=j;66求出1到1000之內能被7或11整除、但不能同時被7和11整除的所有整數(shù)并將它們放在a所指的數(shù)組中,通過n返

39、回這些數(shù)的個數(shù)。void fun(int *a,int *n)int i,j=0;for(i=1;i=1000;i+)if(i%7=0|i%11=0)&i%77!=0) aj+=i;*n=j;67將大于整數(shù)m且緊靠m的k個素數(shù)存入所指的數(shù)組中。例如,若輸入17,5,則應輸出19,23,29,31,37。void fun(int m, int k, int xx)int i,j,n;for(i=m+1,n=0;nk;i+)for(j=2;j=i)xxn+=i;68求出小于或等于lim的所有素數(shù)并放在aa數(shù)組中,該函數(shù)返回所求出的素數(shù)的個數(shù)。int fun(int lim, int aamax)i

40、nt i,j,k=0;for(i=2;i=lim;i+)for(j=2;j=i)aak+=i;return k;69將所有大于1小于整數(shù)m的非素數(shù)存入xx所指數(shù)組中,非素數(shù)的個數(shù)通過k傳回。例如,輸入17,則應輸出4,6,8,9,10,12,14,15,16。void fun(int m, int *k, int xx)int i,j,n=0;for(i=4;im;i+)for(j=2;ji;j+)if(i%j=0)break;if(ji)xxn+=i;*k=n;70將所有大于1小于整數(shù)m的素數(shù)存入xx所指數(shù)組中,素數(shù)的個數(shù)通過k傳回。輸入25,則應輸出2,3,5,7,11,13,17,19,

41、23。void fun(int m, int *k, int xx)int i,j,t,n=0;for(i=2;im;i+)t=1;for(j=2;ji;j+)if(i%j=0)t=0;break;if(t=1)xxn+=i;*k=n;71m個人的成績存放在score數(shù)組中,編寫函數(shù):將高于平均分的人數(shù)作為函數(shù)值返回,將高于平均分的分數(shù)放在up所指的數(shù)組中.如,當score數(shù)組中的數(shù)據(jù)為24,35,88,76,90,54,59,66,96時,函數(shù)返回的人數(shù)應該是5,up中的數(shù)據(jù)應為88,76,90,66,96。int fun(int score ,int m,int up )int i,j=0

42、;float av=0.0;for(i=0;im;i+)av=av+scorei/m;for(i=0;iav)upj+=scorei;return j;72m個人的成績存放在score數(shù)組中,編寫函數(shù):將低于平均分的人數(shù)作為函數(shù)值返回,將低于平均分的分數(shù)放在below所指的數(shù)組中,當score數(shù)組中的數(shù)據(jù)為10,20,30,40,50,60,70,80,90時,函數(shù)返回的人數(shù)應該是4,below中的數(shù)據(jù)應為10,20,30,40。int fun(int score ,int m, int below )int i,j=0;float av=0.0;for(i=0;im;i+)av=av+sco

43、rei/m;for(i=0;im;i+)if(scoreiav)belowj+=scorei;return j;73計算n門課程的平均分,計算結果作為函數(shù)值返回。若有5門課程的成績是90.5,72,80,61.5,55,則函數(shù)的值為71.80。float fun (float *a, int n)float av=0.0;int i;for(i=0;in;i+)av=av+ai;return (av/n);74統(tǒng)計各年齡段的人數(shù)。n個年齡通過調用隨機函數(shù)獲得,并放在主函數(shù)的age數(shù)組中。要求函數(shù)把0至9歲年齡段的人數(shù)在d0中,把10至19歲年齡段的人數(shù)放在d1中,把20至29歲年齡段的人數(shù)放在

44、d2中,依次類推,把100歲(含100)以上年齡的人數(shù)都放在d10中。結果在主函數(shù)中輸出。void fun(int *a, int *b)int i,j;for(j=0;jm;j+)bj=0;for(i=0;i=100)b10+;else bai/10+;75分別求出數(shù)組中所有奇數(shù)之和以及所有偶數(shù)之和。形參n給出數(shù)組中數(shù)據(jù)的個數(shù);利用指針odd返回奇數(shù)之和,利用指針even返回偶數(shù)之和。例如:數(shù)組中的值依次為:1,9,2,3,11,6;則利用指針odd返回奇數(shù)之和24;利用指針even返回偶數(shù)之和8。fun(int *a,int n,int *odd,int *even )int i;*odd

45、 =*even=0;for(i=0;i=0;pos-)if(bbpos=y)for(i= os;i*n-1;i+)bbi=bbi+1;(*n)-;77求出數(shù)組dd中前k個數(shù)的小數(shù)部分的和, 并返回此值。若輸入4和101.91、213.87、345.79、420.83,則輸出3.4。double acc( int k, double dd )int i,a;double b,sum=0;for(i=0;ik;i+)a=ddi;b=ddi-a;result+=b;return sum;78求出數(shù)組pp中n個數(shù)的整數(shù)部分的和,并返回此值。若輸入4和11.91、23.87、35.79、40.83, 則

46、輸出109.0,整數(shù)部分的值應小于10的16次方。double pdt( int n, double pp )int i,a;double sum=0;for(i=0;in;i+)a=ppi;sum+=a;return sum;79計算并輸出給定數(shù)組(長度為9)中每相鄰兩個元素之平均值的平方根之和。例如,給定數(shù)組中的9個元素依次為12.0、34.0、4.0、23.0、34.0、45.0、18.0、3.0、11.0,輸出應為:s=35.951014。double fun(double x9)int i;double avg=0.0,sum=0.0;for(i=0;i=a& ssi=a&ssi=z)ssi=ssi+32;82將s所指字符串中下標為偶數(shù)同時ascii值也為偶數(shù)的字符刪除, s中剩余的字符形成一個新串放在t所指的數(shù)組中。例如,若s所指字符串中的內容為abcdefg12345,最后t所指的數(shù)組中的內容應是abcdefg135。void fun(char *s, char t)int i,slenth,n=0;slenth=strlen(s);for(i=0;islenth;i+)if(si%2=0&i%2=0) ;else tn+=si;tn=0;83將s所指字符串中下標為奇數(shù)、同時ascii值也為奇

溫馨提示

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

評論

0/150

提交評論