ImageVerifierCode 换一换
格式:DOCX , 页数:53 ,大小:26.85KB ,
资源ID:21093381      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/21093381.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(c程序设计第十章答案武汉理工大学张晓勇版文档格式.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

c程序设计第十章答案武汉理工大学张晓勇版文档格式.docx

1、p2=& if(ab) p=p1;p1=p2;p2=p;a=%d,b=%dnmax=%d,min=%dn,*p1,*p2);10.3 指针变量作为函数参数。 void swap(int *p1,int *p2);pointer_2=&b) swap(pointer_1,pointer_2);n%d,%dnvoid swap(int *p1,int *p2) int temp; temp=*p1; *p1=*p2; *p2=temp;由于单向传送的值传递方式,形参值的改变不能使实参的值随之改变。10.4输入a,b,c这三个整数,按大小顺序输出。 void exchange(int *q1,int

2、 *q2,int *q3); int a,b,c,*p1,*p2,*p3;%d,%d,%db,&c);p3=&c; exchange(p1,p2,p3);n%d,%d,%dn,a,b,c);void exchange(int *q1,int *q2,int *q3) void swap(int *pt1,int *pt2); if(*q1*q2)swap(q1,q2);*q3)swap(q1,q3); if(*q2*q3)swap(q2,q3);void swap(int *pt1,int *pt2) temp=*pt1; *pt1=*pt2; *pt2=temp;注意这个交换过程,要理解一下

3、,由于函数单向传送的值传递方式,除了这种方法(运用指针变量做参数)可以得到多个变化的值,还有就是借助全局变量如:int a,b; void exchange(int x,int y);b) exchange(a,b);void exchange(int x,int y) a=y; b=x;这个地方要多理解一下。引用一个数组元素,可以用:(1)下标法,如啊ai形式;(2)指针法,如*(a+i)或*(p+i)。其中a是数组名,p是指向数组元素的指针变量,其初值p=a。 int a10; int *p, i; for(i=0;i10;i+) scanf(%dai);n); for(p=a;p(a+1

4、0);p+)%d ,*(p);这是用指针法引用一个数组的元素。 p=a;,p+);i+,p+),*p);第二个循环之前的p=a;这个语句的作用。10.7 将数组a中的n个元素按相反的顺序存放。 void inv(int x,int n); int i,a10=3,7,9,11,0,6,7,5,4,2;The original array: printf(,ai); inv(a,10);The array has been inverted:void inv(int x,int n) int temp,i,j,m=(n-1)/2;=m; j=n-1-i; temp=xi;xi=xj;xj=tem

5、p; return;下面这个程序和上面的运行情况一致。 void inv(int *x,int n);void inv(int *x,int n) int *p,temp,*i,*j,m=(n-1)/2; i=x;j=x+n-1;p=x+m; for(;=p;i+,j-) temp=*i;*i=*j;*j=temp;全部用指针来编的意义相同的程序: int i,arr10=3,7,9,11,0,6,7,5,4,2; int *p=arr; p=arr; inv(p,10); for(p=arr;arr+10;例10.9 用选择法对10个整数按由大到小的顺序排序 void sort(int x,

6、int n); int i,a10,*p; sort(p,10);The array has been sorted: for(p=a,i=0;void sort(int x,int n) int i,j,k,t;n-1; k=i; for(j=i+1;j*(x+k) k=j; if(k!=i) t=*(x+i);*(x+i)=*(x+k);*(x+k)=t; 这个程序里的数组元素引用和函数调用(用数组名做函数参数)都是通过指针来引用和调用的。10.10 输出二维数组有关的值。#define FORMAT int a34=1,3,5,7,9,11,13,15,17,19,21,23; prin

7、tf(FORMAT,a,*a); printf(FORMAT,a0,*(a+0); printf(FORMAT,&a0,&a00); printf(FORMAT,a1,a+1);a10,*(a+1)+0); printf(FORMAT,a2,*(a+2);a2,a+2); printf(FORMAT,a10,*(*(a+1)+0);例10.11 用指针变量输出二维数组元素的值。 int*p; for(p=*a;a0+12; if(p-a0)%4=0) printf(%4d注意一下这个程序的指针: #include int (*p)4,i,j;%d %di,&j);a%d,%d=%dn,i,j,

8、*(*(p+i)+j);10.13 用指向数组的指针做函数参数。 void average(float *p,int n); void search(float(*p)4,int n); float score34=65,67,70,60,80,87,90,81,90,99,100,98; average(*score,12); int n;please input the NO.) ;n); search(score,n-1);void average(float *p,int n) float *p_end=p+n-1; float sum=0,aver;=p_end; sum=sum+(

9、*p); aver=sum/n;average=%5.2fn,aver);void search(float(*p)4,int n) int i;the score of NO.%d are n,n);4;%5.2f ,*(*(p+n)+i); 10.14 查找有一门以上不及格的学生。 float score34=65,57,70,60,58,87,90,81,90,99,100,98; search(score,3); int i,j,flag; for(j=0; flag=0; if(*(*(p+j)+i)y)? x:y; return z;10.5.2 用指向函数的指针作函数参数。 in

10、t min(int,int); int add(int,int); void process(int,int,int(*fun)(int,int);please enter a and b:max= process(a,b,max);min= process(a,b,min);add= process(a,b,add);int min(int x,int y) if(x float integral_f1(float x,float y); float integral_f2(float,float); float integral_f3(float,float); float integra

11、l_f4(float,float); float integral_f5(float,float); float integral(float,float,float(*fun)(float,float); float a,b;%f,%fnthe integral of 1+x between %f and %f = %f,a,b,integral(a,b,integral_f1);nthe integral of 3+2x between %f and %f = %f,a,b,integral(a,b,integral_f2);nthe integral of exp(x)+1 betwee

12、n %f and %f = %f,a,b,integral(a,b,integral_f3);nthe integral of (1+x)2 between %f and %f = %f,a,b,integral(a,b,integral_f4);nthe integral of x3 between %f and %f = %f,a,b,integral(a,b,integral_f5);float integral_f1(float x,float y) float z; z=(y+y*y/2)-(x+x*x/2);float integral_f2(float x,float y) z=

13、(y*y+3*y)-(x*x+x*3);float integral_f3(float x,float y) z=(y+exp(y)-(x+exp(x);float integral_f4(float x,float y) z=(pow(y+1),3)-pow(x+1),3)/3;float integral_f5(float x,float y) z=(pow(y,4)-pow(x,4)/4;float integral(float x,float y,float(*fun)(float,float) float result; return (result);这个程序是和前面的10.5.2这个程序(用指向函数的指针作函数参数)大致相同的,只有较小的差别,注意观察和思考。10.6 返回指针值的函数。程序为: float score4=60,70,80,90,56,89,67,88,34,78,90,66; float *search(float(*pointer)4,int n); float *p; int i,m;please enter the number of the student:m);The scores of

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1