c语言第八章课后题答案Word文档下载推荐.docx
- 文档编号:18614049
- 上传时间:2022-12-29
- 格式:DOCX
- 页数:20
- 大小:54.92KB
c语言第八章课后题答案Word文档下载推荐.docx
《c语言第八章课后题答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《c语言第八章课后题答案Word文档下载推荐.docx(20页珍藏版)》请在冰豆网上搜索。
for(i=0;
i<
i++)
printf("
a[i]);
数组传递时向函数传递的是数组的地址值,实参与形参共享空间,在被调函数中对数组进行修改就会造成主函数中的数组也被修改。
8.2
(1)
intPositiveNum(inta[],intn)
inti,count=0;
n;
if(a[i]>
0)count++;
returncount;
voidFib(longf[],intn)
inti;
f[0]=0;
f[1]=1;
for(i=2;
f[i]=f[i-1]+f[i-2];
(3)
inta[10],n,max,min,maxPos,minPos;
for(n=0;
n<
10;
n++)
scanf("
&
a[n]);
max=min=a[0];
maxPos=minPos=0;
if(a[n]>
max)
{
max=a[n];
maxPos=n;
}
elseif(a[n]<
min)
min=a[n];
minPos=n;
max=%d,pos=%d\n"
max,maxPos);
min=%d,pos=%d\n"
min,minPos);
(4)
#defineROW2
#defineCOL3
MultiplyMatrix(inta[ROW][COL],intb[COL][ROW],intc[ROW][ROW])
inti,j,k;
ROW;
for(j=0;
c[i][j]=0;
for(k=0;
k<
COL;
k++)
{
c[i][j]=c[i][j]+a[i][k]*b[k][j];
}
voidPrintMatrix(inta[ROW][ROW])
inti,j;
printf("
%6d"
a[i][j]);
\n"
);
inta[ROW][COL],b[COL][ROW],c[ROW][ROW],i,j;
Input2*3matrixa:
scanf("
a[i][j]);
Input3*2matrixb:
b[i][j]);
MultiplyMatrix(a,b,c);
Results:
PrintMatrix(c);
8-3、
viodDivArray(intpArray[],intn)
for(i=0;
pArray[i]/=pArray[0];
错误分析:
原代码中定义了一个未初始化的指针,而不是数组,有可能会使指针访问到不该访问的内存空间,造成危险,应该定义数组,对数组中的数进行修改操作。
8-6、
#defineN40
intReadscore(intscore[],longnum[]);
intFindMax(intscore[],longnum[],intn);
voidmain()
intscore[N];
longnum[N];
intn;
intm;
n=Readscore(score,num);
/*接收人数*/
m=FindMax(score,num,n);
最高的成绩:
%d\n学号为:
%ld\n"
score[m],num[m]);
intReadscore(intscore[],longnum[])
inti=-1;
do{
i++;
请输入学号:
"
%ld"
num[i]);
请输入成绩:
score[i]);
}while(score[i]>
=0&
&
num[i]>
=0);
returni;
intFindMax(intscore[],longnum[],intn)
intk;
intmax=score[0];
if(score[i]>
max=score[i];
k=i;
returnk;
8-7
voidSort(intscore[]);
voidReadscore(intscore[]);
intscore[10];
Readscore(score);
Sort(score);
voidReadscore(intscore[])
inputscore:
"
voidSort(intscore[])
intk,p;
inttemp;
intmin=score[0];
elseif(score[i]<
min=score[i];
p=i;
temp=score[k];
score[k]=score[p];
score[p]=temp;
%d"
score[i]);
8-10
inta[10][10];
intsum1=0;
intsum2=0;
请输入维数n(n<
=10):
scanf("
n);
请输入元素a[%d][%d]:
i,j);
sum1+=a[i][i];
sum2+=a[i][n-1-i];
主对角线之和:
%d\n副对角线之和:
%d\n"
sum1,sum2);
8-12
inta[7][7];
7;
i++)/*使对角线上、第一列的数均为1*/
a[i][i]=1;
a[i][0]=1;
i++)/*计算中间的数*/
for(j=1;
i;
a[i][j]=a[i-1][j-1]+a[i-1][j];
i++)/*打印杨辉三角形*/
=i;
}#include<
8-13
longFibonacci(intn);
longm;
m=Fibonacci(12);
m);
longFibonacci(intn)
if(n==0)
return0;
elseif(n==1)
return1;
else
returnFibonacci(n-1)+Fibonacci(n-2);
结果
8-14
stdlib.h>
time.h>
floata=0,b=0,c=0,d=0,e=0,f=0;
srand(time(NULL));
/*注意:
只能将产生随机数种子写在循环外面*/
6000;
m=rand()%6+1;
switch(m)
case1:
a++;
break;
case2:
b++;
case3:
c++;
case4:
d++;
case5:
e++;
case6:
f++;
面数:
--1------2------3------4------5------6--\n"
概率:
%.2f%%%.2f%%%.2f%%%.2f%%%.2f%%%.2f%%"
a/6000,b/6000,c/6000,d/6000,e/6000,f/6000);
8-15
voidProduceNum(intnum[]);
voidGuessNum(intguess[]);
voidPanZhengWu(intnum[],intguess[],intresult[]);
intnum[4];
intguess[4];
intresult[2];
intflag=0;
ProduceNum(num);
请输入您想猜的次数:
GuessNum(guess);
PanZhengWu(num,guess,result);
if(result[0]==4)
Congradulations!
flag=1;
break;
if(flag==0)
Sorry!
Youhaven'
tguesstherightnumber!
/*功能:
产生4位相异的数字放入num【4】中
入口参数:
无
返回值:
*/
voidProduceNum(intnum[])
num[0]=rand()%10;
num[1]=rand()%10;
num[2]=rand()%10;
num[3]=rand()%10;
for(i=0;
for(j=i+1;
if(num[i]==num[j])/*判断是否产生4个完全相异的数字*/
flag=1;
//if(flag==0)
//printf("
%d%d%d%d\n"
num[0],num[1],num[2],num[3]);
}while(flag);
用户输入所猜的数并存入guess【4】中
voidGuessNum(intguess[])
请输入4位您猜的数:
输入第%d个数:
i+1);
guess[i]);
判断猜数正误
计算机产生的数、用户猜的数
voidPanZhengWu(intnum[],intguess[],intresult[])
intx=0;
inty=0;
if(num[i]==guess[i])/*数字对且位置对*/
x++;
if(num[i]==guess[j])/*数字对(含有位置对和位置不对的两种情况)*/
y++;
y=y-x;
result[0]=x;
result[1]=y;
猜测结果:
%dA%dB\n"
result[0],result[1]);
二、收集资料,总结数组(包括一维数组和二维数组)作为函数参数时应注意的问题,以及参数传递的特点。
向函数传递数组时,只需使用不带方括号的的数组名作为函数实参调用即可(即:
仅仅用一个数组名,不带方括号和下标)
注意:
1、由于数组名代表数组第一个元素的地址,因此用数组名作为函数实参实际上是将数组的首地址传给被调函数
2、将数组的首地址传给被调函数后,形参与实参数组具有相同的首地址,实际上占用相同的存储空间
3、在被调函数中修改形参数组元素时,实际上相当于修改是参数组中的元素
4、数组作函数形参时,数组的长度可不出现在数组名的方括号内,通常用另一个整型实参来制定数组的长度
成绩
批阅教师
批阅日期
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 第八 课后 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)