C语言程序设计教程北京理工大学出版社-部分课后习题答案.doc_第1页
C语言程序设计教程北京理工大学出版社-部分课后习题答案.doc_第2页
C语言程序设计教程北京理工大学出版社-部分课后习题答案.doc_第3页
C语言程序设计教程北京理工大学出版社-部分课后习题答案.doc_第4页
C语言程序设计教程北京理工大学出版社-部分课后习题答案.doc_第5页
全文预览已结束

下载本文档

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

文档简介

CP5/*4、编写程序输入一位学生的生日(年:y0、月:m0、日:d0);并输入当前的日期(年:y1、 月:m1、日:d1);输出改学生的实足年龄。 (P116) */main( ) int y0, m0, d0, y1, m1, d1, age; printf(Please input current day:n); scanf(%d,%d,%d,&y1,&m1,&d1); printf(Please input birthday:n); scanf(%d,%d,%d,&y0,&m0,&d0); age = y1-y0; if ( m1m0 ) age-; else if(m1=m0&d1d0) age-; printf(age=%dn,age); /*7、某商店位促销推出如下让利销售方案,其中 M 位购买金额,n 为让利百分比。 M100, N=0; 100=M200, N=1.5% 200=M300, N=2.5% 300=M400, N=3.5% 400=M500, N=4.5% 500=M600, N=6%; 编写程序,对输入的购买金额,输出顾客购买金额、实际支出金额和返还金额。*/ main( ) int m,k; float n; printf (Please input 购买金额 m :n); scanf (%d,&m); k = m/100; switch (k) case 0: n=0; break; case 1: n=0.015; break; case 2: n=0.025; break; case 3: n=0.035; break; case 4: n=0.045; break; case 5: n=0.055; break; default: n=0.06; break; printf(%5d,%7.2f,%7.2f,m,m-n*m,m*n);/*输出购买金额、实际支付金额和返还金额 */ =CP65./*计算6个学生5门课成绩,每人的平均成绩。*/#includevoid main()int i,j,xuesheng;double fen,mean,zongfen;for(i = 1; i = 6; i +)zongfen = 0;for(j = 1; j = 5; j +)scanf(%lf,&fen);zongfen = zongfen + fen;mean = zongfen / 5.0;printf(xuesheng%d = %lfn,i,mean);/8.所有大于1010的四位偶数,该偶数各位数字两两不相同。#includevoid main() int t,a,b,c,d; for(t=1010;t9999;t+) if(t%2=0) a=(t/1000)%10; b=(t/100)%10; c=(t/10)%10; d=t%10; if(a!=b) & (a!=c) & (a!=d) & (b!=c) & (b!=d) & (c!=d) printf(%d,t); =cp8/*1、编写一个判断一个整数是否是素数的函数,使用该函数编写验证 1000 以内的哥德巴赫猜想是成 立。 (每个不小于 6 的偶数都是两个素数之和)*/ #include main( ) int i, j; for ( i=6; i=1000; i+=2 ) for ( j=3; j=i/2; j+=2 ) if ( flag(j) & flag(i-j) ) printf(%d=%d+%dn, i, j, i-j); break; flag (n) /* 函数 flag 的功能是判断整数 n 是否为素数 */ int n; int i; if ( n%2 = 0) return(0); for ( i=3; in/2; i+ ) if ( n%i=0 ) return(0); return(1); /* 3、编写一个求水仙花数的函数,求 100 到 999 之间的全部水仙花数。所谓水仙花数是指一个三位数, 其各位数字立方的和等于该数。例如:153 就是一个水仙花数: 153 = 1*1*1 + 5*5*5 + 3*3*3 参考程序:*/ main( ) int i=0,j,k,a,b,c,s; for (a=1; a=9; a+) for (b=0; b=9; b+) for (c=0; c0) k= z%10; sum += k*k*k; z /= 10; return ( m=sum ); /*4、请编写一个函数,输出整数的全部素数因子。例如:120 时,因子为: 2,2,2,3,5 参考答案:*/main ( ) int m; printf (nEnter m=); scanf (%d, &m); primedec (m); primedec(m) int m; int k=2; while (k=m) if (m%k = 0 ) printf (%d, , k); m = m/k; else k+; =cp9/*1、编写一函数,其功能是交换两个变量 x、y 的值。编程序实现对数组 a100,b100调用 此函数,交换 a、b 中具有相同下标的数组元素的值,且输出交换后的 a、b 数组。 /*p279_1.c*/ /this is a wrong program#include stdlib.h void swap(int *pa,int *pb)int t; t=*pa;*pa=*pb;*pb=t; main() int a100,b100,i;for(i=0;i100;i+) /*产生数组a和b */ ai=random(100); bi=random(100); printf(before swap A:n); /*输出交换前数组a */ for(i=0;i100;i+) printf(%3d,ai); printf(n); printf(before swap B:n); /*输出交换前数组b */ for(i=0;i100;i+) printf(%3d,bi); printf(n); for(i=0;i100;i+) /*a、b数组元素交换 */ swap(&ai,&bi); printf(after swap A:n); /*输出交换后数组a */ for(i=0;i100;i+) printf(%3d,ai); printf(n); printf(after swap B:n);/*输出交换后数组b */ for(i=0;i100;i+) printf(%3d,bi); printf(n); /this is a wrong program#includevoid swap(int *x,int *y)int temp;temp=*x;*x=*y;*y=temp;void main()int a100,b100,i;i=0;printf(enter y to reset the array or other to quit reset:);if(getch()=y)for(i=0;i100;i+)printf(a%d:,i);scanf(%d,a+i);for(i=0;i100;i+)printf(b%d:,i);scanf(%d,a+i);printf(atbn);for(i=0;i100;i+)printf(%dt%dn,ai,bi);while(i100)swap(a+i,b+i);i+;printf(nnatbn);for(i=0;i100;i+)printf(%dt%dn,ai,bi);/7、将空格分开的字符串称为单词。输入多行字符串,直到输入stop单词时才停止。最后输 出单词的数量。 /解 1:#include string.h main() char s200; long n=0; int i,m; gets(s); while(strcmp(stop,s)!=0)m=strlen(s); for(i=0;i0)n+; printf(Input a string:n); gets(s); printf(words number:%dn,n); /*8、将输入的两行字符串连接后,将串中的空格全部移到串首后输出。 /* P280_8A */ #include string.h main() char s180,s240,*p1=s1,*p2=s2;printf(Input 2 string:n);gets(s1); gets(s2); while(*p1!=0)p1+;/*指针指向s1的末尾*/ while(*p2!=0)/*连接s2*/ *p1+=*p2+;*p1=0; while(p1!=s1) /*将空格移到字符串前面*/ if(*p1!=32)p1-;continue; else p2=p1; while(p2!=s1) /*将空格之前的所有字符向后移动一个字符位置*/ *p2=*(p2-1);p2-; *p2= ; p1-; puts(s1); /*11、设一个以符号.结束的英文句子长度小于 80 字节。请编写程序读入改句子,并检查其 是否为回文(即正读和反读都是一样的,不考虑空格和标点符号)。例如: 读入:madam im adam. 输出:yes 读入:abcdba 输出:no /* P280_11.c */ #include string.hmain() char a20,*ps,*pe;int n; gets(a); n=strlen(a);ps=a;pe=ps+n; while(ps=pe)if(*psZ&*psz)ps+; if(*peZ&*pez)pe-; if(*ps!=*pe)break; ps+;pe-; if(pspe)printf(%s:yes!n,a);else printf(%s:No!n,a); =cp10/1.错的#includestruct std /定义学生结构体,包含学好number,成绩score,名次mc int number; int score; int mc;#define N 100int main() int i,j,max,num; static int t=1; struct std stduentN,temp; cinmax; for(i=0;istduenti.number; cinstduenti.score; for(i=0;imax-1;i+) /冒泡法排序,从高分到低分 for(j=0;jmax-i;j+) if(stduentj.scorestduentj+1.score) temp=stduentj; stduentj=stduentj+1; stduentj+1=temp; for(i=0;istduenti+1.score) stduenti.mc=t+; stduenti+1.mc=t; else if(stduenti.score=stduenti+1.score) stduenti.mc=t; stduentmax-1.mc=t; cout 成绩 学号 名次 endl; for(i=0;imax;i+) cout stduenti.

温馨提示

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

评论

0/150

提交评论