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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

C程序设计第四版谭浩强习题例题第8章.docx

1、C程序设计第四版谭浩强习题例题第8章第8章例8.1#includeint main() int a=100,b=10; int *pointer_1,*pointer_2;/可以直接写为int *pointer_1=&a,*pointer_2=&b; pointer_1=&a; pointer_2=&b; printf(a=%d,n=%dn,a,b); printf(*pointer_1=%d,*pointer_2=%dn,pointer_1,pointer_2); return 0;例8.2#includeint main() int *p1,*p2,*p,a,b; printf(pleas

2、e enter two integer numbers:n); scanf(%d,%d,&a,&b); p1=&a; p2=&b; if(ab) p=p1; p1=p2; p2=p; /if可换为p1=&b;p2=&a ,p也不用定义了. printf(a=%d,b=%dn,a,b); printf(max=%d,min=%dn,*p1,*p2); return 0; 例8.3#includeint main() void swap(int *p1,int *p2); int a,b; int *pointer_1,*pointer_2; printf(please enter a and b

3、:n); scanf(%d,%d,&a,&b); pointer_1=&a; pointer_2=&b; if(ab) swap(pointer_1,pointer_2);/传递的两个地址. printf(max=%d,min=%dn,*pointer_1,*pointer_2); return 0; void swap(int *p1,int *p2)/必须是定义地址的函数. int temp; temp=*p1; *p1=*p2; *p2=temp;/这里不能直接调换p1,p2的地址值.例8.4#includeint main() void swap(int *p1,int *p2); i

4、nt a,b; int *pointer_1,*pointer_2; printf(please enter two integer numbers:n); scanf(%d,%d,&a,&b); pointer_1=&a; pointer_2=&b; if(ab) swap(pointer_1,pointer_2); printf(%d,%dn,a,b); printf(max=%d,min=%dn,*pointer_1,*pointer_2); return 0; void swap(int *p1,int *p2) int *p; p=p1; p1=p2; p2=p;例8.5#inclu

5、deint main() void exchange(int *q1,int *q2,int *q3); int a,b,c,*p1,*p2,*p3; printf(please enter three integer numbers:n); scanf(%d,%d,%d,&a,&b,&c); p1=&a; p2=&b; p3=&c; exchange(p1,p2,p3); printf(The order is:%d,%d,%dn,a,b,c); return 0; void exchange(int *q1,int *q2,int *q3) void swap(int *pt1,int *

6、pt2); if(*q1*q2)swap(q1,q2); if(*q1*q3)swap(q1,q3); if(*q2*q3)swap(q2,q3);void swap(int *pt1,int *pt2) int temp; temp=*pt1; *pt1=*pt2; *pt2=temp;例8.6数组下标法:#includeint main() int a10; int i; printf(please enter 10 integer numbers:n); for(i=0;i10;i+) scanf(%d,&ai); for(i=0;i10;i+) printf(%d ,ai); prin

7、tf(n); return 0;数组名指向法#includeint main() int a10; int i; printf(please enter 10 integer numbers:n); for(i=0;i10;i+) scanf(%d,&ai); for(i=0;i10;i+) printf(%d ,*(a+i); printf(n); return 0;指针变量法:#includeint main() int a10; int *p,i; printf(please enter 10 integer numbers:n); for(i=0;i10;i+) scanf(%d,&a

8、i); for(p=a;pa+10;p+) printf(%d ,*p); printf(n); return 0;进一步改进:#includeint main() int a10; int *p; printf(please enter 10 integer numbers:n); for(p=a;pa+10;p+) scanf(%d,p); for(p=a;pa+10;p+) printf(%d ,*p); printf(n); return 0;例8.7#includeint main() int a10,*p,i; p=a; printf(please enter 10 integer

9、 numbers:n); for(i=0;i10;i+) scanf(%d,p+); for(i=0;i10;i+,p+) printf(%d ,*p); printf(n); return 0;#includeint main() int a10,*p,i; p=a; printf(please enter 10 integer numbers:n); for(i=0;i10;i+) scanf(%d,p+); for(i=0,p=a;i10;i+,p+) printf(%d ,*p);/这里可改为for(i=0,p=a;i10;i+)printf(%d ,*p+); printf(n);

10、return 0;例8.8#includeint main() void inv(int x,int n); int i,a10=3,7,9,11,0,6,7,5,4,2; printf(The original array:n); for(i=0;i10;i+) printf(%d ,ai); printf(n); inv(a,10); printf(The array has been inverted:n); for(i=0;i10;i+) printf(%d ,ai); printf(n); return 0;void inv(int x,int n) int temp,i,j,m=(

11、n-1)/2; for(i=0;i=m;i+) j=n-1-i; temp=xi; xi=xj; xj=temp; return;#includeint main() void inv(int *x,int n); int i,a10=3,7,9,11,0,6,7,5,4,2; printf(The original array:n); for(i=0;i10;i+) printf(%d ,ai); printf(n); inv(a,10); printf(The array has been inverted:n); for(i=0;i10;i+) printf(%d ,ai); print

12、f(n); return 0;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(;i=p;i+,j-) temp=*i; *i=*j; *j=temp; return;例8.9#includeint main() void inv(int *x,int n); int i,arr10,*p=arr; printf(The original array:n); for(i=0;i10;i+,p+) scanf(%d,p); printf(n); p=arr; inv(p,10); printf(T

13、he array has been inverted:n); for(p=arr;parr+10;p+) printf(%d ,*p); printf(n); return 0;void inv(int *x,int n) int *p,m,temp,*i,*j; m=(n-1)/2; i=x;j=x+n-1;p=x+m; for(;i=p;i+,j-) temp=*i; *i=*j; *j=temp; return;例8.10#includeint main() void sort(int x,int n); int i,*p,a10; p=a; printf(please enter 10

14、 integer numbers:n); for(i=0;i10;i+) scanf(%d,p+); p=a; sort(p,10); for(p=a,i=0;i10;i+) printf(%d ,*p+);/书中为 printf(%d ,*p);p+; printf(n); return 0;void sort(int x,int n) int i,j,k,t; for(i=0;in-1;i+) k=i; for(j=i+1;jxk)k=j; if(k!=i) t=xi; xi=xk; xk=t; #includeint main() void sort(int *x,int n); int

15、 i,*p,a10; p=a; printf(please enter 10 integer numbers:n); for(i=0;i10;i+) scanf(%d,p+); p=a; sort(p,10); for(p=a,i=0;i10;i+) printf(%d ,*p+); printf(n); return 0;void sort(int *x,int n) int i,j,k,t; for(i=0;in-1;i+) k=i; for(j=i+1;j*(x+k)k=j; if(k!=i) t=*(x+i); *(x+i)=*(x+k); *(x+k)=t; 例8.11 #inclu

16、deint main() int a34=1,3,5,7,9,11,13,15,17,19,21,23; printf(%d,%dn,a,*a); printf(%d,%dn,a0,*(a+0); printf(%d,%dn,&a0,&a00); printf(%d,%dn,a1,a+1); printf(%d,%dn,&a10,*(a+1)+0); printf(%d,%dn,a2,*(a+2); printf(%d,%dn,&a2,a+2); printf(%d,%dn,a10,*(*(a+1)+0); printf(%d,%dn,*a2,*(*(a+2)+0); return 0;例8.

17、12#includeint main() int a34=1,3,5,7,9,11,13,15,17,19,21,23; int *p; for(p=a0;pa0+12;p+) if(p-a0)%4=0)printf(n); printf(%4d,*p); printf(n); return 0;例8.13#includeint main() int a34=1,3,5,7,9,11,13,15,17,19,21,23; int (*p)4,i,j; p=a; printf(please enter row and colum:); scanf(%d,%d,&i,&j); printf(a%d

18、,%d=%dn,i,j,*(*(p+i)+j); return 0;#includeint main() int a4=1,3,5,7; int (*p)4; p=&a; printf(%dn,(*p)3); return 0;例8.14#includeint main() 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); search(score,2); return 0;vo

19、id average(float *p,int n) float *p_end; float sum=0,aver; p_end=p+n-1; for(;p=p_end;p+) sum=sum+(*p); aver=sum/n; printf(average=%5.2fn,aver);void search(float (*p)4,int n) int i; printf(The score of No.%d are:n,n); for(i=0;i4;i+) printf(%5.2f ,*(*(p+n)+i); printf(n);例8.15#includeint main() void se

20、arch(float (*p)4,int n); float score34=65,57,70,60,58,87,90,81,90,99,100,98; search(score,3); return 0;void search(float (*p)4,int n) int i,j,flag; for(j=0;jn;j+) flag=0; for(i=0;i4;i+) if(*(*(p+j)+i)60)flag=1; if(flag=1) printf(No.%d fails,his scores are:n,j+1); for(i=0;i4;i+) printf(%5.2f ,*(*(p+j

21、)+i); printf(n); 例8.16#includeint main() char string=I love China; printf(%sn,string); printf(%cn,string7); return 0;例8.17#includeint main() char *string=I love China; printf(%sn,string); return 0;例8.18字符数组#includeint main() char a=I an a student.,b20; int i; for(i=0;*(a+i)!=0;i+) *(b+i)=*(a+i); *(b

22、+i)=0; printf(string a is:%sn,a); printf(string b is:); for(i=0;*(b+i)!=0;i+) printf(%c,bi);/这三句可替换为printf(string b is:%sn,b); printf(n); return 0;例8.19指针变量指向字符数组#includeint main() char a=I an a student.,b20,*p1,*p2; p1=a; p2=b; for(;*p1!=0;p1+,p2+) *p2=*p1; *p2=0; printf(string a is:%sn,a); printf(

23、string b is:%sn,b); return 0;例8.20字符数组名做函数参数#includeint main() void copy_string(char from,char to); char a=I an a teacher.; char b=You are a student.; printf(string a=%snstring b=%sn,a,b); printf(copy string a to string b:n); copy_string(a,b); printf(nstring a=%snstring b=%sn,a,b); return 0;void cop

24、y_string(char from,char to) int i=0; while(fromi!=0) toi=fromi;i+; toi=0;字符型指针变量做参数#includeint main() void copy_string(char from,char to); char a=I an a teacher.; char b=You are a student.; char *from=a,*to=b; printf(string a=%snstring b=%sn,a,b); printf(copy string a to string b:n); copy_string(fro

25、m,to); printf(nstring a=%snstring b=%sn,a,b); return 0;void copy_string(char from,char to) int i=0; while(fromi!=0) toi=fromi;i+; toi=0;字符型指针变量做形参和实参#includeint main() void copy_string(char *from,char *to); char *a=I an a teacher.; char b=You are a student.; char *p=b; printf(string a=%snstring b=%sn,a,b); printf(copy string a to string b:n); copy_string(a,p); printf(nstring a=%snstring b=%sn,a,b); return 0;void copy_string(c

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

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