C语言程序设计(苏小红著)课后习题第八章答案
C语言是一种计算机程序设计语言。以下是由阳光网小编整理关于C语言程序设计(苏小红著)的课后习题答案,希望大家喜欢!
C语言程序设计(苏小红著)第八章答案
8.1(1) #include<stdio.h>
void Func(int x)
{
x=2;
}
int main()
{
int x=10;
Func(x);
printf("%d",x);
return 0;
}
8.1(2) #include<stdio.h>
void Func(int b[])
{
int j;
for(j=0;j<4;j++)
{
b[j]=j;
}
}
int main()
{
static int a[]={5,6,7,8},i;
Func(a);
for(i=0;i<4;i++)
{
printf("%d",a[i]);
}
return 0;
}
8.2(1) int PositiveNum(int a[],int n)
{
int i,count=0;
for(i=0;i<n;i++)
{
if(a[i]>0)
count++;
}
return 0;
}
8.2(2) void Fib(long f[],long n)
{
int i;f[0]=0;
f[1]=1;
for(i=2;i<n;i++)
{
f[i]=f[i-1]+f[i-2];
}
}
8.2(3) #include<stdio.h>
int main()
{
int a[10],n,max,min,maxPos,minPos;
for(n=0;n<10;n++)
{
scanf("%d",&a[n]);
}
max=min=a[0];
maxPos=minPos=0;
for(n=0;n<10;n++)
{
if(a[n]>max)
{
max=a[n];
maxPos=n;
}
else if(a[n]<min)
{
min=a[n];
minPos=n;
}
}
printf("max=%d,pos=%d\n",max,maxPos);
printf("min=%d,pos=%d\n",min,minPos);
return 0;
}
8.3 void DivArray(int *pArray,int n)
{
int i;
for(i=0;i<n;i++)
{
pArray[i]/=pAttay[0];
}
}
8.4 #include<stdio.h>
#define N 40
int FailNum(int score[],int n);
void ReadScore(int score[],int n);
int main()
{
int score[N],n;
printf("Input n:");
scanf("%d",&n);
ReadScore(score,n);
FailNum(score,n);
printf("FailNum students are %d\n",FailNum(score,n));
return 0;
}
int FailNum(int score[],int n)
{
int i,count=0;
for(i=0;i<n;i++)
{
if(score[i]<60)
count++;
}
return count;
}
void ReadScore(int score[],int n)
{
int i;
printf("Input score:");
for(i=0;i<n;i++)
{
scanf("%d",&score[i]);
}
}
8.5 #include<stdio.h>
#define N 40
int HighAver(int score[],int n);
int ReadScore(int score[]);
int main()
{
int score[N],n;
n=ReadScore(score);
printf("HighAver students are %d\n",HighAver(score,n));
return 0;
}
int HighAver(int score[],int n)
{
int i,count=0,sum=0,aver;
for(i=0;i<n;i++)
{
sum=sum+score[i];
aver=sum/n;
}
for(i=0;i<n;i++)
{
if(score[i]>aver)
count++;
}
return count;
}
int ReadScore(int score[])
{
int i=-1;
do{
i++;
printf("Input score:");
scanf("%d",&score[i]);
}while(score[i]>=0);
return i;
}
8.6 #include<stdio.h>
#define N 40
int ReadScore(int score[],long num[]);
int FindMax(int score[],long num[],int n);
int main()
{
int score[N],n,max,num,t;
long num[N];
t=FindMax(score,n);
max=score[t];
num=num[t];
printf("max=%d,num=%d\n",max,num);
return 0;
}
int ReadScore(int score[],long num[])
{
int i=-1;
do{
i++;
printf("Input student's ID and score:");
scanf("%ld%d",&num[i],&score[i]);
}while(num[i]>0&&score[i]>=0);
return i;
}
int FindMax(int score[],long num[],int n)
{
int max,i;
max=score[0];
for(i=1;i<n;i++)
{
if(score[i]>max)
max=score[i];
}
return i;
}
8.7 #include<stdio.h>
#define N 40
int Read(int a[]);
int ChangeArry(int a[],int n);
int main()
{
int a[N],n;
printf("%d\n",ChangeArry(a,n));
return 0;
}
int Read(int a[])
{
int i;
for(i=0;i<9;i++)
{
printf("Input a:");
scanf("%d",&a[i]);
return i;
}
int ChangeArry(int a[],int n)
{
int max,min,i,maxpos,minpos,term;
max=min=score[0];
for(i=1;i<n;i++)
{
if(a[i]>max)
max=score[i];
maxpos=n;
else(a[i]<min)
min=a[i];
minpos=n;
temp=maxpos;
maxpos=minpos;
minpos=temp;
}
return a[i];
}
8.10 #include<stdio.h>
#define N 5
void main()
{
int a[N][N];
int sum = 0;
int i, j;
printf("请输入一个%d*%d 的矩阵\n",N,N);
for(i = 0; i < N; i++)
{
for(j = 0; j < N; j++)
{
scanf("%d",&a[i][j]);
}
}
for(i = 0; i < N; i++)
{
for(j = 0; j < N; j++)
{
if(i == j || i + j == N - 1)
sum=sum+a[i][j];
}
}
printf("对角线元素之和为:%d\n",sum);
}
8.11 #include<stdio.h>
#define N 2
#define M 3
void main()
{
int a[N][M],b[N][M];
int i,j,sum1=0,sum2=0,sum=0;
printf("请输入一个%d*%d 的矩阵\n",N,M);
for(i = 0; i<N; i++)
{
for(j = 0; j< M; j++)
{
scanf("%d",&a[i][j]);
sum1=sum1+a[i][j];
}
}
printf("请输入一个%d*%d 的矩阵\n",N,M);
for(i = 0; i <N; i++)
{
for(j = 0; j <M; j++)
{
scanf("%d",&b[i][j]);
sum2=sum2+a[i][j];
}
}
sum=sum1+sum2;
printf("sum=%d\n",sum);
}
8.12 #include<stdio.h>
#define N 7
void YangHui(int a[N][N],int n);
void main()
{
int i,j,n,b[N][N];
printf("Input n:");
scanf("%d",&n);
YangHui(b,n);
for(i=0;i<n;i++)
{
for(j=0;j<=i;j++)
{
printf("%4d",b[i][j]);
}
printf("\n");
}
}
void YangHui(int a[N][N],int n)
{
int i,j;
for(i=0;i<n;i++)
{
a[i][0]=1;
a[i][i]=1;
}
for(i=2;i<n;i++)
{
for(j=1;j<i;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
}
8.13 #include<stdio.h>
#define N 12
void main()
{
int i;
int f[N]={1,1};
printf("%d:%d\n",0,f[0]);
printf("%d:%d\n",1,f[1]);
for(i=2;i<N;i++)
{
f[i]=f[i-1]+f[i-2];
printf("%d:%d\n",i+1,f[i]);
}
}
8.14 #include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define N 6000
void main()
{
int a[N],i;
int b1=0,b2=0,b3=0,b4=0,b5=0,b6=0;
float p1,p2,p3,p4,p5,p6;
srand(time(NULL));
for(i=0;i<N;i++)
{
a[i]=rand()%6+1;
printf("%3d",a[i]);
if(a[i]==1)
b1++;
if(a[i]==2)
b2++;
if(a[i]==3)
b3++;
if(a[i]==4)
b4++;
if(a[i]==5)
b5++;
if(a[i]==6)
b6++;
p1=(float)(b1/6000.0);
p2=(float)(b2/6000.0);
p3=(float)(b3/6000.0);
p4=(float)(b4/6000.0);
p5=(float)(b5/6000.0);
p6=(float)(b6/6000.0);
}
printf("骰子出现1 的概率:%.2f\n",p1);
printf("骰子出现2 的'概率:%.2f\n",p2);
printf("骰子出现3 的概率:%.2f\n",p3);
printf("骰子出现4 的概率:%.2f\n",p4);
printf("骰子出现5 的概率:%.2f\n",p5);
printf("骰子出现6 的概率:%.2f\n",p6);
}
【C语言程序设计(苏小红著)课后习题第八章答案】相关文章: