C语言程序设计第10章答案_第1页
C语言程序设计第10章答案_第2页
C语言程序设计第10章答案_第3页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、最新编排】第十章 0. #include void main()void swap(int *p,int *q);int x,y,z;int *p ,*p ,*p3; printf( 输入三个整数 nn); scanf(%d%d%d,&x,&y,&z);p =&x;p =&y;p3=&z;if(xy) swap(p ,p );if(xz) swap(p ,p3); if(yz) swap(p ,p3);printf(nn 三个数由小到达输出为:%d %d %dnn,x,y,z);void swap(int *p,int *q) int temp;temp=*p;*p=*q;*q=temp;0.

2、 #include #include #define N 80void main()void swap(char *p,char *q);char str 【 N】 ,str 【 N】 ,str3 【 N】 ;printf( 请输入三个字符串 nn);scanf(%s,str );scanf(%s,str );scanf(%s,str3);if(strcmp(str ,str )0) swap(str ,str );if(strcmp(str ,str3)0) swap(str ,str3);if(strcmp(str ,str3)0) swap(str ,str3); ,str3);prin

3、tf(nn 三个字符串由小到大排列, 分别为:nn%sn%sn%sn,str ,str void swap(char *p,char *q)char str 【 N】 ;strcpy(str,p);strcpy(p,q);strcpy(q,str);0.3#include #define N 0void main()void input(int num【 N】 );void swap(int *p,int *q);void exchange(int num【 N】 );void output(int num【N】 );int num 【 N】 ;input(num);exchange(num)

4、;output(num);void input(int num【 N】 )int i;printf( 输入十个整数 nn);for(i=0;iN;i+)scanf(%d,&num 【 i 】 );0.4#include #define N 0#define M 3void main()void move(int num 【 N】 ,int n,int m); int num 【 N】 ;int i;printf( 输入 %d个整数 nn,N); for(i=0;iN;i+)scanf(%d,&num 【 i 】 );move(num,N,M);nn,N);printf(nn 调整后地 %d 个

5、整数为: for(i=0;i=num;p-) *p=*(p- );*num=temp;m-;if(m0) move(num,n,m);0.5#include #define N 8void main()void leave(int num【 N】 );int num 【 N】 ;int i,*p;p=num; for(i=0;iN;i+) *(p+i)=i+ ;leave(num);while(*p=0) p+;printf( 最后留下地是第 %d 个人 nn,*p); int *p;int i=0,k=0,m=0; p=num; while(mN- ) if(*(p+i)!=0) k+; i

6、f(k=3)*(p+i)=0;k=0;m+;i+;if(i=N) i=0;0.6#include #define N 0void main()int count(char str【 N】 );int i;char str 【 N】 ;printf( 输入个字符串 nn); gets(str);printf(nn 字符串长度为: %dnn,count(str); int count(char str【 N】 )char *p; int i=0; p=str;while(*p!=0)i+; p+; return(i);0.7#include #define N 80#define M 4void

7、main()void copy(char str【 N】 ,char str 【 N】 );char str 【 N】 ,str 【 N】 ;printf( 输入字符串 str nn);gets(str );printf(nn 输入字符串 str nn);gets(str );copy(str ,str );printf(nn 整合之后地字符串为: nn); puts(str );void copy(char str【 N】 ,char str 【 N】)char *p ,*p ;int i;p =str ;p =str ;for(i=0;istrlen(str );i+)*(p +M+i)=

8、*(p +i);*(p +M+i)=0;0.8 #include #define N 80 void main()void count(char str【N】 ,int *cap,int *low,int *space,int *num,int *oth);char str 【 N】 ;int a=0,b=0,c=0,d=0,e=0;int *cap,*low,*space,*num,*oth;cap=&a;low=&b;space=&c;num=&d;oth=&e;printf( 输入个字符串 nn);gets(str); count(str,cap,low,space,num,oth);p

9、rintf(nn 大写字母个数为: %dnn 小写字母个数为: %dnn 空格个数位: %dnn 数字 个数为: %dnn 其他字符个数为: %dnn,*cap,*low,*space,*num,*oth);void count(char str【 N】 ,int *cap,int *low,int *space,int *num,int *oth)int i;for(i=0;str【i 】 !=0;i+)if(str 【 i 】 =A&str 【 i 】 =a&str 【 i 】 =0&str 【 i 】 =9) (*num)+;else (*oth)+;0.9#include #defin

10、e N 3void main()void move(int *p);int a 【 N】【 N】 ;int *p,i,j;printf( 输入个 %d*%d地矩阵 nn,N,N);for(i=0;iN;i+)for(j=0;jN;j+)scanf(%d,&a 【 i 】【j 】 ); p=&a 【 0】【 0】;move(p);for(i=0;iN;i+)for(j=0;jN;j+)printf(%d ,a【i 】【 j 】); printf(n);void move(int *p)int i,j,temp;for(i=0;iN;i+)for(j=i;jN;j+)temp=*(p+i*N+j)

11、;*(p+i*N+j)=*(p+j*N+i);*(p+j*N+i)=temp;0. 0#include #define N 3void main()void swap(int *p,int *q); void sort(int *p); int arr 【 N】【N】; int i,j,*p;printf( 输入个 %d*%d地矩阵 nn,N,N); for(i=0;iN;i+) for(j=0;jN;j+) scanf(%d,&arr【 i 】【j 】 ); p=&arr 【 0】【 0】 ; sort(p);printf( 调整后地矩阵为: nn); for(i=0;iN;i+)for(j

12、=0;jN;j+) printf(%d ,arr【i 】【 j 】); printf(n);void swap(int *p,int *q) int temp; temp=*p; *p=*q;*q=temp;void sort(int *p)int *max,*min; int i,j;max=p;min=p; for(i=0;iN;i+)for(j=0;j*max) max=p+i*N+j; if(*(p+i*N+j)*min) min=p+i*N+j; swap(max,(p+(N- )*(N+ )/ ); swap(min,p);min=p+ ; for(i=0;iN;i+)for(j=

13、0;jN;j+) if(*(p+i*N+j)*min)&(p+i*N+j)!=p) min=p+i*N+j; swap(min,(p+N- ); min=p+ ;for(i=0;iN;i+) for(j=0;jN;j+) ) min=p+i*N+j; if(*(p+i*N+j)*min)&(p+i*N+j)!=p)&(p+i*N+j)!=(p+N- swap(min,(p+(N- )*N); min=p+ ;for(i=0;iN;i+) for(j=0;jN;j+)if(*(p+i*N+j)*min)&(p+i*N+j)!=p)&(p+i*N+j)!=(p+N- )&(p+i*N+j)!=(p

14、+(N-)*N) min=p+i*N+j; swap(min,(p+N*N- );0. #include #define N 5void main()void swap(char *p,char *q);void sort(char *p); char str 【 N】【 N】 ,*p; int i;printf( 输入 %d个字符串 nn,N); for(i=0;iN;i+)scanf(%s,str 【 i 】 ); p=&str 【 0】【 0】 ; sort(p);printf(nn排序后地 %d 个字符串为 nn,N);for(i=0;iN;i+)printf(%sn,str【 i 】

15、 );void swap(char *p,char *q) char s 【 N】 ; strcpy(s,p); strcpy(p,q); strcpy(q,s);void sort(char *p)int i,j;for(i=0;iN;i+)for(j=i+ ;j0) swap(p+i*N),(p+j*N); 0. #include #define N 5#define M 0void main()void sort(char *p【 N】 );char str 【 N】【 M】 ,*p 【 N】 ; int i;printf( 输入 %d个字符串 nn,N); for(i=0;iN;i+)

16、 scanf(%s,str 【 i 】 );for(i=0;iN;i+)p 【 i 】 =str 【i 】 ;sort(p);printf(nn排序后地 %d 个字符串为 nn,N);for(i=0;iN;i+)printf(%sn,p【 i 】);void sort(char *p【 N】)int i,j; char *q;for(i=0;iN;i+)for(j=i+ ;j0)q=p 【 i 】 ;p 【i 】 =p【j 】;p 【j 】 =q;0. 3#include #include void main()float integral(float a,float b,int n,doub

17、le (*fun)(double); int n= 00;float a,b,c;double (*fun)(double);printf( 输入积分范围: (a,b)nn); scanf(%f%f,&a,&b);fun=sin;c=integral(a,b,n,fun); printf(nnsin 积分结果为: %fnn,c); fun=cos;c=integral(a,b,n,fun); printf(nncos 积分结果为: %fnn,c); fun=exp;c=integral(a,b,n,fun);printf(nnexp 积分结果为: %fnn,c);float integral(

18、float a,float b,int n,double (*fun)(double)int i;float x,h,area; h=(b-a)/n;x=a;area=0;for(i=0;in;i+)x=x+h;area=area+(*fun)(x)*h; return(area);0. 4#include #define N 0 void main()void swap(int *p,int *q);void back(int *p,int n);int a 【 N】 ,i,n;printf( 输入个数 nnn); scanf(%d,&n);printf(nn输入 %d 个整数 nn,n);

19、for(i=0;in;i+)scanf(%d,&a 【 i 】 );back(a,n);printf(nn 逆序排列为: nn); for(i=0;in;i+)printf(%d ,a【 i 】);printf(nn);void swap(int *p,int *q)int temp;temp=*p;*p=*q;*q=temp;void back(int *p,int n)int i;for(i=0;in/ ;i+)swap(p+i,p+n- -i);0. 5#include #define M 4#define N 5void main()void aver_count (char *cou

20、,float *sco);void aver_stu(float *sco,float *ave);void fail (char *cou,int *num,float *sco,float *ave);void good(char *cou,int *num,float *sco,float *ave);char course 【N】【 0】 ,*cou;float score【M】【 N】 ,aver 【 M】 ,*sco,*ave;int number 【 M】 ,*num,i,j;cou=course 【0】;printf( 输入 %d门课程名 nn,N);for(i=0;iN;i+

21、)scanf(%s,cou+i* 0);printf(nn按顺序输入 %d个学生学号和 %d门课程地成绩 nn,M,N);printf( 学号 );for(i=0;iN;i+)printf(%s ,cou+i* 0);num=number;sco=&score 【0】【0】;for(i=0;iM;i+)scanf(%d,num+i);for(j=0;jN;j+)scanf(%f,sco+i*N+j);aver_count (cou,sco);ave=aver;aver_stu(sco,ave);ave=aver;fail (cou,num,sco,ave);ave=aver;good(cou,

22、num,sco,ave);void aver_count (char *cou,float *sco)int i;float sum,aver;sum=0;for(i=0;iM;i+)sum+=(*(sco+i*N);aver=sum/M;printf( 第门课 %s 地平均成绩为: %fnn,cou,aver);void aver_stu(float *sco,float *ave)int i,j;float sum;for(i=0;iM;i+)sum=0;for(j=0;jN;j+)sum+=(*(sco+i*N+j);*(ave+i)=sum/N;void fail (char *cou

23、,int *num,float *sco,float *ave)int i,j,k,flag;nn);printf(= 两门以上课程不及格地学生 = printf( 学号 );for(i=0;iN;i+)printf( %-8s,cou+i* 0);printf( 平均成绩 nn);for(i=0;iM;i+)flag=0;for(j=0;jN;j+)if(*(sco+i*N+j) )printf(%-8d,*(num+i);for(k=0;kN;k+)printf(%-8. f,*(sco+i*N+k);printf(%-8. fnn,*(ave+i);void good(char *cou

24、,int *num,float *sco,float *ave)int i,j,k,flag;printf(= 平 均 成 绩 在 90 分 以 上 或 者 每 门 课 在 85 分 以 上 地 学 生 =nn);printf( 学号 );for(i=0;iN;i+)printf( %-8s,cou+i* 0);printf( 平均成绩 nn);for(i=0;iM;i+)flag=0;for(j=0;j=85) flag+= ;if(flag=5|(*(ave+i)=90)printf(%-8d,*(num+i);for(k=0;kN;k+)printf(%-8. f,*(sco+i*N+k

25、);printf(%-8. fnn,*(ave+i);#include #define N 50void main()char str 【 N】 ,*p;int i,j,temp;int number 【N】 ,*num;printf( 输入个字符串 nn);gets(str);p=str;temp=0;j=0;num=number;for(i=0;(*(p+i)!=0&i=0&(*(p+i)=0&(*(p+i+ )=9)temp=temp* 0+*(p+i)-48;elsetemp=temp* 0+*(p+i)-48;*(num+j)=temp;temp=0;j+;nn,j);printf(

26、nn 字符串中共有 %d个整数,它们分别为: for(i=0;ij;i+)printf(%d ,*(num+i);printf(nn);#include #define N 0void main()int strcmp(char *p char str ,char *p );【N】;【 N】 ,str,*p ;输入字符串);输入字符串 strchar *p printf( gets(str printf(nn gets(str ); p =str ; p =str ; printf(nn%dnn,strcmp(p str nn);nn);,p );int strcmp(char *p ,char *p int i,flag=0; for(i=0;*(p if(*(p else flag=*(p break; return flag; +i)!=0&*(p) +i)!=0;i+)+i)=*(p +i) flag=0; +i)-*(p +i); 0. 8#include void main()char *mon 【】 = 月份 , 二月份 , 三月份 , 四月份 , 五月份 , 六月份 , 七月份 , 八月份 , 九月份 , 十月份 , 十月份 , 十二月份 ;int n;printf( 输入

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论