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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

c程序设计第四版谭浩强第八章答案.docx

1、c程序设计第四版谭浩强第八章答案#include#include#include#include/*int main() int *p1,*p2,*p3,*t,a,b,c; printf(enter three number:); scanf(%d %d %d,&a,&b,&c); p1=&a;p2=&b;p3=&c; if(ab) t=p1;p1=p2;p2=t; if(ac) t=p1;p1=p3;p3=t; if(bc) t=p2;p2=p3;p3=t; printf(sort number:%d %d %dn,*p1,*p2,*p3);*/*#define N 20int main()

2、 char *p1,*p2,*p3,*t,aN,bN,cN; printf(enter three strings:); scanf(%s %s %s,a,b,c); p1=a;p2=b;p3=c; if(strcmp(a,b)0) t=p1;p1=p2;p2=t; if(strcmp(a,c)0) t=p1;p1=p3;p3=t; if(strcmp(b,c)0) t=p2;p2=p3;p3=t; printf(sort string:%s %s %sn,p1,p2,p3);*/*void input(int *p) int i; printf(enter 10 number:); for(

3、i=0;i10;i+) scanf(%d,p+i);void output(int *p) int i; printf(new 10 number:); for(i=0;i10;i+) printf(%-2d,*(p+i);void sort(int *p,int n) int i,t; for(i=0;i*(p+i+1) t=*(p+i);*(p+i)=*(p+i+1);*(p+i+1)=t; for(i=n-2;i0;i-) if(*(p+i-1)*(p+i) t=*(p+i);*(p+i)=*(p+i-1);*(p+i-1)=t; int main() int a10,*p=a; inp

4、ut(p); sort(p,10); output(p); putchar(n);*/*#define N 10void houyi(int *p,int m) int i,bN=0; for(i=0;iN-m;i+) bi+m=*(p+i); for(;iN;i+) bi-N+m=*(p+i); for(i=0;iN;i+) printf(%3d,bi);int main() int aN,i,m,*p=a; printf(enter number:); for(i=0;iN;i+) scanf(%d,&ai); printf(enter m:); scanf(%d,&m); printf(

5、new number:); houyi(p,m); putchar(n);*/*int main() int count(int *p,int n); int n,*p,i; printf(enter number:); scanf(%d,&n); p=(int *)calloc(n,sizeof(int); for(i=0;in;i+) *(p+i)=0; printf(the last number is %dn,count(p,n)+1); free(p);int count(int *p,int n) int i,j=1,k=0; for(i=0;in;i+) if(*(p+i)!=3

6、) *(p+i)=j; if(*(p+i)=3) j=1; /数到3时将下一个重置为1 else j+=1; if(i=(n-1) i=-1; /轮到到最后一个人报数时,将i重置为-1,执行完for语句后自动加一变为0,从头开始 k+=1; /报完一个数后加一 else if(i=(n-1) i=-1; /检查到最后一个人是3时,将i重置为-1,执行完for语句后自动加一变为0,从头开始 continue; /检查到这个人是3时,跳过报数 if(k=3*(n-1) /报数的总个数达到3*(n-1)时,就只剩一个人了 break; else continue; for(i=0;i=a&*p=A&

7、*p=0&*p=9) s+=1; else if(*p= ) k+=1; else o+=1; p+; printf(大写字母:%dn小写字母:%dn空格:%dn数字:%dn其他:%dn,d,x,k,s,o);int main() char aN,*p=a; printf(enter string:); gets(a); count(p);*/*void zhuangzhi(int (*p)3) int i,j,t; for(i=0;i3;i+) for(j=0;j3;j+) if(ij) t=*(*(p+i)+j); /*(*(p+i)+j)代表aij *(*(p+i)+j)=*(*(p+j

8、)+i); *(*(p+j)+i)=t; int main() int (*p)3,a33,i,j; p=a; printf(enter array:n); for(i=0;i3;i+) for(j=0;j3;j+) scanf(%d,&aij); zhuangzhi(p); printf(new array:n); for(i=0;i3;i+) for(j=0;j3;j+) printf(%-2d,aij); if(j=2) putchar(n); */*void central(int (*p)5) int i,j,l=0,r=0,t; /r代表行,l代表列 for(i=0;i5;i+)

9、for(j=0;j*(*(p+r)+l) r=i;l=j; t=*(*(p+2)+2);*(*(p+2)+2)=*(*(p+r)+l);*(*(p+r)+l)=t; /最大元素放在中心 l=0;r=0; for(i=0;i5;i+) /四个角放最小元素 ,每次从第二个元素开始对比 for(j=1;j5;j+) if(*(*(p+i)+j)*(*(p+r)+l) r=i;l=j; /找出最小元素 t=*(*p);*(*p)=*(*(p+r)+l);*(*(p+r)+l)=t; /将最小元素与左上角元素交换,下同 l=4;r=0; /换完重置r和l,下同 for(i=0;i5;i+) for(j=

10、1;j*(*(p+i)+j) r=i;l=j; t=*(*p+4);*(*p+4)=*(*(p+r)+l);*(*(p+r)+l)=t; r=4;l=0; for(i=0;i5;i+) for(j=1;j*(*(p+i)+j) r=i;l=j; t=*(*(p+4);*(*(p+4)=*(*(p+r)+l);*(*(p+r)+l)=t; r=4;l=4; for(i=0;i5;i+) for(j=1;j*(*(p+i)+j) r=i;l=j; t=*(*(p+4)+4);*(*(p+4)+4)=*(*(p+r)+l);*(*(p+r)+l)=t;int main() int a55,(*p)5

11、=a,i,j; printf(enter array:n); for(i=0;i5;i+) for(j=0;j5;j+) scanf(%d,*(p+i)+j); central(p); printf(new array:n); for(i=0;i5;i+) for(j=0;j5;j+) printf(%-3d,*(*(p+i)+j); putchar(n); */*void sort(char *p,int n) /指针数组处理 int i,j; char *k; for(i=1;in;i+) for(j=i;j0) k=pi-1;pi-1=pj;pj=k; int main() char *

12、p10=gutsy,glory,gonad,girth,gaudy,gypsy,gusto,guppy,group,grope; /测试数据gutsy glory gonad girth gaudy gypsy gusto guppy group grope int i; printf(enter strings:); for(i=0;i10;i+) printf(%s ,pi); sort(p,10); printf(nnew strings:); for(i=0;i10;i+) printf(%s ,pi); putchar(n);*/*#define N 20void sort(char

13、 *p,int n) /指针处理 int i,j; char kN; for(i=1;in;i+) for(j=i;j0) /不能写为p+i-1,否则出错 strcpy(k,p+20*(i-1);strcpy(p+20*(i-1),p+20*j);strcpy(p+20*j,k); int main() char a10N; char *p=a0; /不能写为*p=a,这等价于是把行向量赋值给列向量 int i; printf(enter strings:n); for(i=0;i10;i+) scanf(%s,&ai); /可写为gets(ai),这样写的话,每次输入字符串后按enter,或

14、写为scanf(%s,&ai),每输一个字符后按空格即可; sort(p,10); printf(new strings:n); for(i=0;i10;i+) printf(%s ,ai); putchar(n);*/*#define n 1000 /矩形法求定积分,n为区间分割数目double ding(double a,double b,double (*fun)(double) double s=0; int i; for(i=1;in;i+) s+=(*fun)(i*(b-a)/n); return s*=(b-a)/n;int main() double a,b,s1,s2,s3;

15、 /定义积分下限,上限,用double精度较高 printf(输入积分下限,上限,分割区间数目:); scanf(%lf %lf,&a,&b); s1=ding(a,b,sin); s2=ding(a,b,cos); s3=ding(a,b,exp); printf(sin(x)从%f到%f的积分为%fn,a,b,s1); printf(cos(x)从%f到%f的积分为%fn,a,b,s2); printf(exp(x)从%f到%f的积分为%fn,a,b,s3);*/*#define N 10void nixu(int *p) int i,m=N/2,t; for(i=0;im;i+) t=*

16、(p+i); *(p+i)=*(p+N-1-i); *(p+N-1-i)=t; int main() int aN,*p=a,i; printf(enter %d numbers:n,N); for(i=0;iN;i+) scanf(%d,&ai); nixu(p); printf(new numbers:n); for(i=0;iN;i+) printf(%d ,ai); putchar(n);*/*void average1(float (*p)6,int n) int i; float ave=0; for(i=0;in;i+) ave+=*(*(p+i)+1)/4; printf(第一

17、门课程的平均分为:%4.2fn,ave);float average(float (*p)6) int i; float ave=0; for(i=1;i6;i+) ave+=*(*p+i)/5; return ave;void out(float (*p)6,int n) int i,j,k,l,s=0; printf(两门课以上不及格的学生:n); for(i=0;in;i+) k=0; for(j=1;j6;j+) if(*(*(p+i)+j)=2) s=1; printf(%4.0f,*(*(p+i); for(l=1;l6;l+) printf(%4.0f,*(*(p+i)+l);

18、printf( 平均分为:%4.2fn,average(p+i); if(s=0) /没有符合条件的学生时输出“无” printf(无!n);void in(float (*p)6,int n) int i,j,l; for(i=0;in;i+) for(j=0;j=90) printf(平均分在90分以上的学生:%4.0f,*(*(p+i); for(l=1;l=85) continue; else break; if(j=6) printf(全部课程成绩在85分以上的学生:%4.0f,*(*(p+i); for(l=1;l6;l+) printf(%4.0f,*(*(p+i)+l); pu

19、tchar(n); int main() int i,j; float a46=1001,65,67,55,60,45,1002,80,87,90,81,85,1003,90,99,100,98,95,1004,86,89,90,91,85; float (*p)6=a; for(i=0;i4;i+) for(j=0;j6;j+) printf(%4.0f ,aij); putchar(n); average1(p,4); out(p,4); in(p,4);*/*#define N 10 /方法一int num1(char *p) /将数字字符串转为整形数字的函数 int n=strlen(

20、p),i,a=0; for(i=0;in;i+) a+=(int)(*(p+i)-48)*pow(10,n-1-i); return a;void number(char *p) int i,num=0,j=1,k=-1,n=strlen(p); /j用于计算数字长度,k用于计算数字个数 int aN; /最多容纳N个整数 for(i=0;i=n;i+) if(*p9) if(num=1) *p=0; ak=num1(p-j); num=0; else if(num=0) num=1; j=1; /找到新数字时重置j k+=1; else j+=1; p+; for(i=0;ik+1;i+)

21、printf(%d ,ai); putchar(n);*/*#define N 10void number(char *p) /方法二 int i,num=0,j=1,k=-1,n=strlen(p); /j用于计算数字长度,k用于计算数字个数 char aN10; /最多容纳N个整数,每个整数最多十位数 for(i=0;i=n;i+) if(*p9) if(num=1) *p=0; strcpy(ak,p-j); num=0; else if(num=0) num=1; j=1; /找到新数字时重置j k+=1; else j+=1; p+; for(i=0;ik+1;i+) printf(%s ,ai); putchar(n);int main() char a100,*p=a; /最多可输入100个字符 printf(enter strings:n); gets(p); number(p);*/*#define N 20 /字符串比较函数int str_cmp(char *p1,char *p2) int i,n=strlen(p1); for(i=0;i*(p2+i) return *(p1+i)-*(p2+i); break; else return *(p1+i

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2