最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

計算機二級C語言上機題庫(七)

2021-03-01 08:09 作者:朝顏晚扶桑  | 我要投稿

編程題

一、?數(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,調(diào)用該函數(shù)后,c=4152。

Void ?fun (int 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,調(diào)用該函數(shù)后,c=1524

Void ?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ù)的十位和個位數(shù)依次放在c數(shù)的個位和百位上。例如,當a=45,b=12,調(diào)用該函數(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,調(diào)用該函數(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合并形成一個整數(shù)放在c中。合并的方式是:將a數(shù)的十位和個位數(shù)依次放在c數(shù)的個位和百位上,b數(shù)的十位和個位數(shù)依次放在c數(shù)的十位和千位上。例如,當a=45,b=12,調(diào)用該函數(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,調(diào)用該函數(shù)后,c=1425。

Void ?fun (int a,int b,long*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,調(diào)用該函數(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ù)的百位和個位上。例如,當a=45時,b=12,調(diào)用該函數(shù)后,c=5142。

Void ?fun(int a,int b,int*c)

{*c=a%10*1000+b/10*100+a/10*10+b%10;}

10、?求n以內(nèi)(不包括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;i<n;i++)

If(i%5 = =0&&i%11= =0)s=s+i;

s=sqrt(s);return ?s;}

11、?計算并輸出給定整數(shù)n的所有因子(不包括1與自身)的平方和(規(guī)定n的值不大于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èi)(不包括n)同時能被3與7整除的所有自然數(shù)之和的平方根s,并作為函數(shù)值返回。若n為1000時,s=153.909064

double ?fun(int n)

{double s=0;int i;

for(i=0;i<n;i+ +)

if (i%3= = 0&&i%7= = 0)s+=1;s=sqrt(s); ??return s;}

13、?計算并輸出n(包括n)以內(nèi)能被5或9整除的所有自然數(shù)的倒數(shù)之和。如,若給n輸入20后,則輸出為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=aqrt(m);

for(i=2;i<=k;i+ +)

If(m%i= =0)break;

If(i>=k+1)s+=sqrt(m);}return s:}

15、?判斷整數(shù)X是否是同構數(shù)。若是同構數(shù),函數(shù)返回1;否則返回0。

int fun(int x)

(if(x<10)return (! ((x*x-x)%10));

else return (! ((x*x-x)%100));}

106、用篩選法求出100之內(nèi)的素數(shù)

Void fun (int *pt)

{int i,j,flag;*pt=2;*pt++;

for(i=3;i<100;i++){flag=1;

for(j=2;j<i;j+ +)

If(i%j= =0)flag=0;

If(flag){*pt=i;*pt++;}}*pt=0;}

16、?返回小蠶需要多少天才能爬到樹頂(樹高k厘米,小蠶每天白天向上爬m(xù)厘米,每天晚上因睡覺向下滑n厘米,爬到頂后不再下滑)(n<m<k)。例如,若分別輸入253、71、29給k、m、n,則輸出結果為:6。

int day(int k,int m,int n)

{int days,height=0;

for(days=1;;days++){height+=m;if(height>=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=0,i;

do{c=a+b;a=b;b=c;}while(c<t);

c=a;return?c;}

18、?求Fibonacci數(shù)列中大于T的最小的一個數(shù),結果由函數(shù)返回。其中Fibonacci數(shù)列F(n)的定義為:F(0)=0,F(xiàn)(1)=1,F(xiàn)(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<t) {c=a+b;a=b;b=c; }

else break;}return c;}

19、?W是一個大于10的無符號整數(shù),若w是n(n≥2)位的整數(shù),則函數(shù)求出w的后n-1位的數(shù)作為函數(shù)值返回。例如:w值為5923,則函數(shù)返回923;若w值為923,則函數(shù)返回23。

unsigned fun(unsigned w)

{if(w>=10000) return w%10000;

If(w>=1000) return w%1000;

If(w>=100) return w%100;

If(w>=10)return w%10;}

20、?對變量h中的值保留兩位小數(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)所求z1就是方程cos(x)-x=0的一個實根作為函數(shù)值返回。輸出結果Root=0.739085

Root=0.739085.

float fun0

{float x1=0.0,x0; ??do{x0=x1;x1=cos(x0);}while(fabs(x0-x1)>=le-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.764601

void 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=-s;}}

23、?S=(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*1));return s;}

24、?計算:s=(1-1n(1)-1n(2)- (3)-…1n(m))2s作為函數(shù)值返回。在C語言中可調(diào)用log(n)函數(shù) ??求ln(n)。log函數(shù)的引用說明是double ?log( double ?x).如,若 ?的值為15,則函數(shù)值為723。57080 ?

double 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!-x2/3!+……+(-1* ?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/(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;i<=n;i++){s1=s1+i;

s=s+1.0/s1;}return s;}

27、?根據(jù)以下公式求P的值,結果由函數(shù)值帶回。m與n為兩個正數(shù)且要求m>n。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<=m-n;i++)p=p/i;

return p;}

28、?p的值(要求滿足精度0.005,即某項小于0.005時停止迭代)。

??????p/2=1+1/3+1*2/(3*5)+1*2*3/(3*5*7)+1*2*3*4/(3*5*7*9)+…+1*2*3*…*n/(3*5*7*…*(2n+1)),如果輸入精度0.0005,則程序輸出3.140578。

double fun(double eps)

{double s=1.0,s1=1.0;int n=1;while(s1>=eps){s1=s1*n/(2*n+1);

s=s+s1;n++;}return 2*s;}

29、?S=1/(1×2)+1/(2×3)+……+1/(n×(n+1))例如,當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ù)的方差。

S=[ ∑(xk-x2) ?]0.5

?

其中x2= ????????????

??????????????K=1

例如,給定的10個數(shù)為95.0,89.0,76.0,95.0,88.0,72.0,85.0,81.0,90.0,56.0,則輸出為S=11.730729。

Double fun(double ?x[10])

{double x1=0.0,s=0.0;int i;

for(i=0;i<10;i++)x1=x1+x[i];

x1=x1/10;

for(i=0;i<10;i++)

s+=(x[i]-x1)*(x[i]-x1);

return sqrt(s/10);}

31、?S=(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=(1n(1)+1n(2)+1n(3)+…+1n(m))0.5.可調(diào)用log(n)函數(shù)求ln(n)。若m的值為20,則函數(shù)值為6.506583。

double fun(int m)

{int i;double s=0.0;

for(i=1;i<=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。

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;}

34、?S=1+(1+20.5)+(1+20.5+30.5)+…+(1+20.5+30.5)+…+(1+20.5+30.5+…+n0.5)如,若給n輸入20后,則輸出為S=534.188884。

double fun(int n)

{int i;double s=0.0,s1=0.0;

for(i=1;i<=n;i++)

{s1=s1+pow(i,0.5);s=s+s1;}

return s;}

35、?Sn=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、?計算并輸出當x<0.97時下列多項 ??式的值,直到[Sn-Sn-1]<0.000001為止。

Sn=1+0.5x+(0.5*(0.5-1))/2!*x3(0.5*(0.5-1)*(0.5-2))/3!*x3+…+(0.5*(0.5-1)*(0.5-2))*…(0.5-n+1))/n!*xn.若給x輸入0.21后,則輸出為s=1.100000。

double fun(double x)

{double

S1=1.0,p=1.0,sum=0,s0,t=1;

int n=1;do{s0=s1;sum+=s0;t*=n;p*=(0.5-n+1)*x;s1=p/t;n++;}while(fabs(s1-s0)>=le-6);return sum;}

數(shù)組題

37、?求出一個2×M整型二維數(shù)組中最大元素的值,并將此值返回調(diào)用函數(shù)。

fun (int a[][M])

{int i,j,max=a[0][0];

for(i=0;i<2;i++)

for(j=0;j<M;j++)

if(max<a[i][j])max=a[i][j];

return max;}

38、?求出一個4×M整型二維數(shù)組中最小元素的值,并將此值返回調(diào)用函數(shù)。

fun (int a[][M])

{int i,j,min=a[0][0];

for(i=0;i<4;i++)

for(j=0;j<M;j++)

If(min>a[i][j])min=a[i][j];

Return min;}

39、?求出二維數(shù)組每列中最大元素,并依次放入PP所指的一維數(shù)組中。

void fun(int tt[M][N],int pp[N])

{int i,j,max;

for(j=0;j<N;j++){max=tt[0][j];

for(i=0;i<M;i++)

If(tt[i][j]>max)max=tt[i][j];pp[j]=max;}}

40、?程序定義了N×N的二維數(shù)組,給數(shù)組周邊元素置0值。

fun (int w[][N])

{int i,j;

for(i=0;i<N;i++)

for(j=0;j<N;j++)

if(i= =0︳︳i= =N-1︳︳j= =0︳︳j==N-1)

W[i][j]=0;}

41、?程序定義了N×N的二維數(shù)組,使數(shù)組中第一行元素中的值與倒數(shù)第一行元素中的值對調(diào)、第二行元素中的值與倒數(shù)第二行元素中的值對調(diào)、……、其他依次類推。

例如:a數(shù)組中的值為

0 11 12 7 9

1 9 7 4 5

20 13 18 3 1

14 5 6 8 2

15 9 17 4 1

則返回主程序后a數(shù)組中的值應為

15 9 17 4 1

14 5 6 8 2

20 13 18 3 1

1 9 7 4 5

0 11 12 7 9

int fun(int a[][N])

{int i,j,k;

for(i=0;i<N/2;i++)

for(j=0;j<N;j++)

{k=a[i][j];a[i][j]=a[N-i-1][j];a[N-i-1][j]=k;}}

42、程序定義了N×N的二維數(shù)組,使數(shù)組中第一行元素中的值與最后一列元素中的值對調(diào)、第二列元素中的值與倒數(shù)第二列元素中的值對調(diào)、……、其他依次類推。例如:a數(shù)組中的值為

0 11 12 7 9

1 9 7 4 5

20 13 18 3 1

14 5 6 8 2

15 9 17 4 1

則返回主程序后a數(shù)組中的值應為

9 7 12 11 0

5 4 7 9 1

1 3 18 13 20

2 8 6 5 14

1 4 17 9 15

Int fun(int a[][N])

{int i,j,k;

For(i=0;i<N/2;i++)

For(j=0;j<N;j++)

{k=a[j][i];a[j][i]=a[j][N-i-1];a[j][N-i-1]=k;}}

43、下列程序定義了N×N的二維數(shù)組,并在主函數(shù)中自動賦值。編寫函數(shù):使數(shù)字右上半三角元素中的值乘m。例如,若m的值為2,a數(shù)組中的值為

?a=1 9

???2 7

則返回主程序后a數(shù)組的值應為

2?18

2?14

int fun(int a[][N],int m)

{int i,j;

for(i=0;i<N;i++)

for(j=I;j<N;j++)a[i][j]*=m;}

44、程序定義了N×N的二維數(shù)組,使數(shù)組左下半三角元素中的值加上n。如:若n的值為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;i<N;i++)

for(j=0;j<=i;j++)

a[i][j]=a[i][j]+n;}

45、下列程序N×N的二維數(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 w[][N])

{int i,j,k=0;int s=0;

for(i=0;i<N;i++)

for(j=0;j<N;j++)

if(i= =0||i==N-1||j= =0||j= =N-1)

s=s+w[i][j]*w[i][j];return s;}

46、下列程序N×N的二維數(shù)組 ,并在主函數(shù)中賦值。求出數(shù)組周邊元素的平均值并作為函數(shù)值返回給主函數(shù)中的s。若a數(shù)組中的值為

?a =0 1 2 7 9

1 9 7 4 5

2 3 8 3 1

4 5 6 8 2

5 9 1 4 1

則返回主程序后的s值應為3.375。
double fun (int w[][N])

{int i,j,k=0;double av=0.0;

for(i=0;i<N;i++)

for(i=0;i<N;j++)

if(i= =0||i= =N-1||j= =0||j= =N-1)

{av=av+w[i][j];k++;}return av/k;}

47、求出二維數(shù)組周邊元素之和,作為函數(shù)值返回。二維數(shù)組中的值在主函數(shù)中賦予。例如:若二維數(shù)組中的值為

1 3 5 7 9

2 9 9 9 4

6 9 9 9 8

1 3 5 7 0

則函數(shù)值為61。

int fun(int a [M][N])

{int i,j,sum=0;

for(i=0;i<M;i++)

for(j=0;j<N;j++)

if(i= =0||i= =M-1||j= =0||j= =N-1)

sum=sum+a[i][j];return sum;}

48、實現(xiàn)矩陣(3行3列)的轉置(即行列互換)。例如,若輸入下面的矩陣:

100 ?200 ?300

400 ?500 ?600

700 ?800 ?900

則程序輸出:

100 ?400 ?700

200 ?500 ?800

300 ?600 ?900

int fun (int array[3][3])

{int i,j,t;

for(i=0;i<3;i++)

for(j=i+1;j<3;j++){t=array[i][j];

array[i][j]=array[j][i];

array[j][i]=t;}}

49、實現(xiàn)B=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 18

Void fun(int a[3][3],int b[3][3])

{int i,j;

for(i=0;i<3;i++)

for(j=0;i<3;j++)

b[i][j]=a[i][j]+a[j][i];}

50、將M行N列的二維數(shù)組中的數(shù)據(jù)按列的順序依次放到一維數(shù)組中,例如,二維數(shù)組中的數(shù)據(jù)為:

33 33 33 33

44 44 44 44

55 55 55 55

則一維數(shù)組中的內(nèi)容應該是

33,44,55,33,44,55,33,44,55,33,44,55。

Void fun(int (*s)[10],int *b,int *n,int ㎜ int m)

{int x,y;

For(x=0;x<nn;x++)

For(y=0,y<mm;y++)

{b[x*mm+y]=*(s[y]+x);(*n)++;}}

51、將M行N列的二維數(shù)組中的數(shù)據(jù),按行的順序依次放到一維數(shù)組中,一維數(shù)組中數(shù)據(jù)的個數(shù)存放在形參n所指的存儲單元中。若二維數(shù)組中的數(shù)據(jù)為:

33 33 33 33

44 44 44 44

55 55 55 55

則一維數(shù)組中的內(nèi)容應該是

33,33,33,33,44,44,44,44,55,55,55,55.

Void fin (int (*s)[10],int*b, int*n, int mm, int m)

{int i,j,k=0;

for(i=0;i<mm;i++)

for(j=0;j<nn;j++)b[k++]=s[i][j];

*n=k;}

52、求出一個M×N二維數(shù)組每行元素的和數(shù),并依次放入一個一維數(shù)組中傳回主函數(shù)。例如,若有以下二維數(shù)組:

6 10 2 10 16

17 15 15 8 6

4 18 11 19 12

0 12 1 3 7

則輸出:44,61,64,23

fun (int a[][N],int b[])

{int i,j,sum=0,n=0,

for(i=0;i<M;i++)

{for(j=0;j<N;j++)sum+=a[i][j];

b[n++]=sum;sum=0;}}

53輸出一個如下的n階方陣。變量n文件c9670503.In中。例如若讀入4或5,則分別輸出1 ?2 ??3 ??4

8 ?7 ??6 ??5

9 ?10 ?11 ?12

16 ?15 ?14 ?13

1 2 3 4 5

10 9 8 7 6

11 12 13 14 15

20 19 18 17 16

25 24 23 22 21

Void Mtrx(int)

{int a[M]={0},d=0,I,j,k;} *fp;

Fp=fopen(dat52.dat,w);

For(i=1;i<=n;i++)

{for(j=0;j<n;j++){d+;a[j] if(i%2) ?for(k=0;k<n;k++)

{printf(%3d??,

a[k]);fprintf(fp,%3d,a[k]);}

else for(k=n-1;k>=0;k--)

{print(\n);fprintf(fp,\n)

Fclose(fp);}

54、求數(shù)組的最小元素在數(shù)組中下標存放在k所指的存儲單元中。如輸 ?234,345,753,134,436,458,100, 5,760則輸出結果為6,100。

int fun(int *s,int t,int )

{inti;*k=0;for(i=0;i<t;i++)if(s[*k]>s[i])*k=i;}

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=a[0];*d=0;

for(i=0;i<n;i++)

if (*max<a[i]){*max=a[i];*d=i;}}

56、把20個隨機數(shù)存入一個數(shù)組,然后輸出該數(shù)組中的最小值。

int fun(int list[],int size)

{int x,i;x=0;

for(i=1;i<size;i++)

if(list[x]>list[i])x=i;return x;}

57、將數(shù)組xx(有n個元素)的前k個元素(k<n)移到數(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;i<k;i++){t=xx[0];

for(j=1;j<n;j++)

xx[j-1]=xx[j];xx[n-1]=t;}}

58、移動一維數(shù)組中的內(nèi)容,若數(shù)組中有n個整數(shù),要求把下標從p到n-1(p≤n-1)的數(shù)組元素平移到數(shù)組的前面,一維數(shù)組中的原始內(nèi)容為

1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,P的值為6。移動后,一維數(shù)組中的內(nèi)容應為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<=n-1;i++){t=w[n-1];

for(j=n-2;j>=0;j- -)

W[j+1]=w[j];w[0]=t;}}

59、移動一維數(shù)組中的內(nèi)容,若數(shù)組中有n個整數(shù),要求把下標從0到P(P≤n-1)的數(shù)組元素平移到數(shù)組的最后,如一維數(shù)組中的原始內(nèi)容應為1,2,3,4,5,6,7,8,9,10,10,11,12,13,14,15,P為3移動后一維數(shù)組中的內(nèi)容應為5,6,7,8,9,10,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=w[0];

For(j=1;j<n;j++)

w[j-1]=w[j];w[j-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ù)組中的內(nèi)容應該是:2,3,4,5,6,7,8,9,10。

Int fun(int a[],int n)

{int i,j=1;

for(i=1;i<n;i++)

if(a[j-1]!=a[i])a[j++]=a[i];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)pp[j++]=i;*n=j;}

62、求出能整除X且不是偶數(shù)的各整數(shù),并按從小到大的順序放在PP所指的數(shù)組中,這些除數(shù)個數(shù)通過形參n返回。若X中的值為30,則有4個數(shù)符合要求,它們是1,3,5,15。

void fun (int x,int pp[],int*n)

{int i,j=0;

for(i=1;i<x;i=i+2)

if(x%i= =0)pp[j++]=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;n<k;i++)

for(j=2;j<i;j++)

if(i%j= =0){xx[n++]=i;break;}}

64、求出1到1000之內(nèi)能被5或13整除、但不能同時被5和13整除的所有整數(shù)并將它們放在a所指的數(shù)組中,通過n返回這些數(shù)的個數(shù)。

void fun(int *a,int *n)

{int i,j=0;

for(i=1;i<=1000;i++)

if((i%5= =0||i%13= =0)&& i %65 !=0)

a[j++]=i;*n=j}

65、求出1到m(含m)之內(nèi)能被7或11整除的所有整數(shù)放在數(shù)組a中,通過n返回這些數(shù)的個數(shù)。若傳給m的值為50,輸出7,11,14,21,22,28,33,35,42,44,49

void fun(int m,int *a,int *n)

{int i,j=0;

for(i=1;i<=m;i++)

If(i%7= =0||i%11= =0)a[j++]=i;*n=j;}

66、求出1到1000之內(nèi)能被7或11整除的所有整數(shù),但不能同時被7和11整除的所有整數(shù)并將它們放在a所指的數(shù)組中,通過a返回這些數(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)

a[j++]=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;n<k;i++)

{for(j=2;j<I;j++)if(i%j==0)break;

If(j>=i)xx[n++]=i;}}

68、求出小于或等于lim的所有素數(shù)并放在aa數(shù)組中,該函數(shù)返回所求出的素數(shù)的個數(shù)。

int fun(int lim,int aa[MAX])

{int i,j,k=0;

for(i=2;i<=lim;i++)

{for(j=2;j<i;j++)if(i%j= =0)break;

if(j>=i)aa[k++]=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;i<m;i++)

{for(j=2;j<i;j++)if(i%j= =0)break;

if(j<i)xx[n++]=i;}*k=n;}

70、將所有大于1小于整數(shù)m的素數(shù)存入XX所指數(shù)組中,系數(shù)的個數(shù)通過k傳回。輸入25,則應輸出2,3,5,7,11,13,17,19,23.

void fun(int m,int*k,int xx[])

{int i,j,t,n=0;

for(i=2;i<m;i++)

{t=1;for(j=2;j<1;j++)

if(i%j= =0){t=0;break;}

if(t= =1)xx[n++]=i;}*k=n;}

71、m個人的成績存放在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;float av=0.0;

for(i=0;i<m;i++)av=av+score[i]/m;

for(i=0;i<m;i++)

if(score[i]>av)up[j++]=score[i];

return j;}

72、m個人的成績存放在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;i<m;i++)

av+= score[i]

av=av/m;

for(i=0;i<m;i++)?

if(score[i]<av)below[j++]=score[i];

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;i<n;i++)av=av+a[i];

Return (av/n);}

74、統(tǒng)計各年齡段的人數(shù)。N個齡通過調(diào)用隨機函數(shù)獲得,并放在主函數(shù)的age數(shù)組中。要求函數(shù)把0至9歲年齡段的人數(shù)在d[0]中,把10至19歲年齡段的人數(shù)放在d(1)中,把20至29歲年齡段的人數(shù)放在d[2]中,依次類推,把100歲(含100)以上年齡的人數(shù)都放在d[10]中。結果在主函數(shù)中輸出。

void fun(int *a,int*b)

{int i,j;

for(j=0;j<M;j++)b[j]=0;

for(i=0;i<N;i++)

if(a[i]>=100)b[10]++;

else b[a[i]/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=*even=0;

for(i=0;i<n;i++)

if(a[i]%2==1)*odd+=a[i];

else*even+=a[i];}

76、刪除bb數(shù)組中所有值為Y的元素。

void fun(int bb[],int *n,int y)

{int i,pos=*n-1;

for(;pos>=0;pos--)

if(bb[pos]= =y)

{for(i=os;i<*n-1;i++)

bb[i]=bb[i+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;i<k;i++){a=dd[i];

b=dd[i]-a;result+=b;}return sum;}

78、求出數(shù)組PP中n個數(shù)的整數(shù)部分的和,并返回此值。若輸入4和11.91、23.87、35.79、40.83,則輸出109.0,整數(shù)部分的值應小于10的16次方。

Double Pbt(int n,double pp[])

{int i,a;double sum=0;

for(i=0;i<n;i++){a=pp[i];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 x[9])

{int i;double avg=0.0,sum=0.0;

for(i=0;i<8;i++){avg=(x[i]+x[i+1])/2;

sum+=sqrt(avg);}return sum;}


計算機二級C語言上機題庫(七)的評論 (共 條)

分享到微博請遵守國家法律
襄垣县| 凤凰县| 松桃| 当涂县| 丘北县| 新和县| 高清| 松溪县| 西乌珠穆沁旗| 江阴市| 广灵县| 阳高县| 浦东新区| 鄢陵县| 湘潭县| 镇安县| 自贡市| 郯城县| 上饶县| 弥渡县| 东台市| 微山县| 山东| 稷山县| 团风县| 卓资县| 明光市| 尉氏县| 东光县| 正蓝旗| 平罗县| 南充市| 政和县| 扶沟县| 张家口市| 静安区| 永和县| 平阴县| 祥云县| 鹤庆县| 平利县|