c语言课本第八章答案,c语言第八章课后题答案剖析-20210420061546.docx-原创力文档...

一、第八章习题8 ( p222-p228), 8.1-8.3全做,8.4-8.12中选做四道,8.13-8.19中选做三道,要求给

出所选择题目的程序及执行结果。

8-1( 1 )、

#i nclude

void Fun c(i nt x)

{

x=20;

}

int mai n()

{

int x=10;

Fun c(x);

prin tf("%d",x);

return 0;

}

结果:

分析:调用函数时只发生值的传递,形参与实参之间再也没有关系,子函数一旦退出,内部变量就释 放空间

(2)

#i nclude

void Func(int b[])

{

int j;

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

{

b[j]=j;

}

}

int mai n()

{

static int a[] = {5,6,7,8},i;

Fun c(a);

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

{

prin tf("%d",a[i]);

return 0;

}结果:分析:数组传递时向函数传递的是数组的地址值,实参与形参共享空间,

}

结果:

分析:数组传递时向函数传递的是数组的地址值,实参与形参共享空间,

改就会造成主函数中的数组也被修改。

8.2( 1)

int PositiveNum(i nt a[],i nt n)

{

在被调函数中对数组进行修

int i, count=0;

for(i=0; i

{

if(a[i]>0) count++;

}

retur n count;

}

(2)

void Fib(long f[] ,int n)

{

int i;

f[0]=0;

f[1]=1;

for(i=2; i

{

f[i]= f[i-1]+f[i-2];

}

}

(3)

#i nclude

int mai n()

{

int a[10], n,max,mi n, maxPos,mi nPos;

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

{ scan f("%d", &a[n ]);

}

max=min=a[0];

maxPos=min Pos= 0;

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

{

if(a[n]>max)

{

max=a[ n]; maxPos =n;

}

else if(a[n]

{

min=a[n]; min Pos =n;

}

}

prin tf("max=%d,pos=%d\n",max,maxPos);

prin tf("mi n=%d,pos=%d\n",mi n,min Pos); return 0;

}

结果:

ETji

max=69,pos=4

min =1> pos =0

Pi*ess an^ heto continu

(4)

#i nclude

#defi ne ROW 2

#defi ne COL 3

[ROW][ROW])MultiplyMatrix(i nt a[ROW][COL],i nt b[COL][ROW],i nt c

[ROW][ROW])

{

int i,j,k;

for(i=0; i

{

for(j=0; j

{

c[i][j]= 0;

for(k=0; k

{

c[i][j]= c[i][j]+a[i][k]*b[k][j];

}

}

}

}

void Prin tMatrix(i nt a[ROW][ROW])

{

int i,j;

for(i=0; i

{

for(j=0; j

{

prin tf("%6d",a[i][j]);

}

printf("\n");

}

}

int mai n()

{

int a[ROW][COL],b[COL][ROW],c[ROW][ROW],i,j; printf("Input 2*3 matrix a:\n");

for(i=0; i

{

for(j=0; j

{

scanf("%d", &a[i][j]);

}

}

printf("Input 3*2 matrix b:\n");

for(i=0; i

{

for(j=0; j

scanf("%d", &b[i][j]);

}

MultiplyMatrix( a,b,c); prin tf("Results:\n ”); Prin tMatrix(c);

return 0;

}

结果:

Input 2*3 natrix a =

1 1

1 1

1 1

Input 3*2 matrix

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值