函数指针部分习题与解答.docx
- 文档编号:7988422
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:14
- 大小:24.35KB
函数指针部分习题与解答.docx
《函数指针部分习题与解答.docx》由会员分享,可在线阅读,更多相关《函数指针部分习题与解答.docx(14页珍藏版)》请在冰豆网上搜索。
函数指针部分习题与解答
课堂补充作业
1.1、有一个一维数组,内放10个学生成绩,写一个函数,求出平均分、最高分和最低分。
源程序如下(8-15.c):
#include
intMax=0,Min=0;
voidmain()
{floataverage(intarray[],intn);
floatave;intscore[10];
inti;
for(i=0;i<10;i++)
scanf(“%f”,&score[i]);
ave=average(score,10);
printf("max=%d\nmin=%d\naverage=%6.2f\n",Max,Min,ave);
}
floataverage(intarray[],intn)
{inti;
floataver;intsum=array[0];
Max=Min=array[0];
for(i=1;i {if(array[i]>Max)Max=array[i]; elseif(array[i] sum=sum+array[i];} aver=(float)sum/n; return(aver); } 1.2、在上例题的基础上,再求出超过平均值的人数(建议将数组中的数据用随机数)。 源程序如下(8-151.c): #include #include"stdlib.h" intMax=0,Min=0,NUM=0; voidmain() {floataverage(intarray[],intn); floatave;intscore[10]; inti; randomize(); for(i=0;i<10;i++) score[i]=random(100); for(i=0;i<10;i++) printf("%4d",score[i]); printf("\n"); ave=average(score,10); printf("max=%5d\nmin=%5d\nnum=%4d\naverage=%6.2f\n",Max,Min,NUM,ave); } floataverage(intarray[],intn) {inti; floataver;intsum=array[0]; Max=Min=array[0]; for(i=1;i {if(array[i]>Max)Max=array[i]; elseif(array[i] sum=sum+array[i]; } aver=(float)sum/n; for(i=0;i<10;i++) if(array[i]>aver)NUM++; return(aver); } 1.3、如果再将上例题改为: 在函数中使用指针,请编写程序(提示: 函数中用指针形式、数组中的数据用随机数产生) 源程序(8-153.c) include #include"stdlib.h" intMax=0,Min=0,NUM=0; voidmain() {floataverage(int*p,intn); floatave;intscore[10]; inti; randomize(); for(i=0;i<10;i++) score[i]=random(100); for(i=0;i<10;i++) printf("%4d",score[i]); printf("\n"); ave=average(score,10); printf("max=%5d\nmin=%5d\nnum=%4d\naverage=%6.2f\n",Max,Min,NUM,ave); } floataverage(int*p,intn) {inti; floataver;intsum=array[0]; Max=Min=array[0]; for(i=1;i {if(*(p+i)>Max)Max=array[i]; elseif(*(p+i) sum+=*(p+i); } aver=(float)sum/n; for(i=0;i<10;i++) if(*(p+i)>aver)NUM++; return(aver); } 2、输入10个整数,将其中最小数与第一个数交换,把最大数与最后一个交换。 写三个函数分别完成: (1)输入10个整数; (2)进行处理;(3)输出10个数,用指针法处理。 源程序8-lt1.c(指针形式) voidinput(int*a,intn) {int*p; for(p=a;p scanf("%d",p); } voidoutput(int*a,intn) {int*p; for(p=a;p printf("%5d",*p); printf("\n"); } voidinvert(int*a,intn) {int*p1,*p2,*p; inttemp; p1=p2=a;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 函数 指针 部分 习题 解答
![提示](https://static.bdocx.com/images/bang_tan.gif)