C语言程序设计参考答案(湘大出版社)_第1页
C语言程序设计参考答案(湘大出版社)_第2页
C语言程序设计参考答案(湘大出版社)_第3页
C语言程序设计参考答案(湘大出版社)_第4页
C语言程序设计参考答案(湘大出版社)_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

.C语言程序设计参考答案(湘大版)主编:长寿湖畔有人家创建日期:2015.9修改日期:2016.10第5章 分支结构5.2 任给一个三位十进制整数,若该数中有且只有两个数码相同,则输出该数。#include #include int main() int shu,a,b,c; printf(请输入一个三位的整数n); scanf(%d,&shu); a=shu%10; b=shu/10%10; c=shu/100; if(a=b&b!=c) printf(%dn,shu); else if(b=c&c!=a) printf(%dn,shu); else if(c=a&a!=b) printf(%dn,shu); return 0;5.3用case实现:y=cos(x+3.0) 0=x10Y=cos2(x+7.5) 10=x20Y=cos4(x+4.0) 20=x30#include #include #include int main() int x; double a; printf(请输入一个整数n); scanf(%d,&x); switch(x/10) case 0: printf(%fn,cos(x+3.0);break; case 1: a=cos(x+7.5);printf(%fn,a*a);break; case 2: a=cos(x+4.0);printf(%fn,a*a*a*a); return 0;5.4给定一个整数,判断是奇数还是偶数,如果是奇数,则判断它是不是素数(质数)。#include #include #include int main() int x; int i,gen; printf(请输入一个整数n); scanf(%d,&x); if(x%2=0) printf(偶数n); else printf(奇数n); if(x1) gen=sqrt(x); for(i=3;igen) printf(素数n); else printf(非素数n); return 0;5.53个数成等差数列,首尾两个数之积为中项的5倍,后2个数的和是第一个数的8倍,求这3个数。这3个数分别是:3 9 15第6章 循环结构6.1利用公式:,求的近似值,直到最后一项的绝对值小于10-6为止。#include #include int main() int i=1; double sum=0; while(1.0/i0.000001) if(i+1)/2%2=0) sum-=1.0/i; else sum+=1.0/i; i+=2; printf(%fn,sum*4); return 0;6.22/1,3/2,5/3,8/5,13/8,21/13.。,求前20项的和。#include #include #include int main() int zi=2,mu=1,i=1,te; double sum=0; while(i=20) sum+=(zi/(mu+0.0); te=zi; zi=zi+mu; mu=te; i+; printf(%fn,sum); return 0;6.3分别编程输出菱形图案 * A * BBB * CCCCC* DDDDDDD * EEEEEEEEEE * FFFFFFF* GGGGG * HHH * I第一个图#include #include #include int main() int kong=4,i,k,shu=1; for(i=1;i10;i+) if(i0;k-) printf( ); kong-; for(k=0;kshu;k+) printf(*); shu+=2; printf(n); if(kong=-1) kong=1; if(shu=11) shu=7; else for(k=0;k0;k-) printf(*); shu-=2; printf(n); return 0;第二个图#include #include #include int main() int kong=4,i,k,shu=1; for(i=1;i10;i+) if(i0;k-) printf( ); kong-; for(k=0;kshu;k+) printf(%c,i-1+A); shu+=2; printf(n); if(kong=-1) kong=1; if(shu=11) shu=7; else for(k=0;k0;k-) printf(%c,i-1+A); shu-=2; printf(n); return 0; 6.4求出3000以内的亲密数,即整数A的全部因子(除本身)之和等于B,整数B的全部因子(除本身)之和等于A。#include #include #include int main() int i,k,gen,sum,s2; for(i=2;i=3000;i+) gen=sqrt(i); sum=0; for(k=1;ki&sum3000) /printf(%d %dn,i,sum); gen=sqrt(sum); s2=0; for(k=1;k=gen;k+) if(sum%k=0) s2+=k; if(sum/k)!=sum) s2+=(sum/k); if(k*k=sum) s2-=k; if(s2=i) printf(%d %dn,i,sum); return 0;6.5求出所有水仙花数。即三位数的各位数字的立方和等于自己,例如153=13+53+33.#include #include #include int main() int a,b,c,i; for(i=100;i1000;i+) a=i%10; b=i/10%10; c=i/100; if(i=a*a*a+b*b*b+c*c*c) printf(%dn,i); return 0;6.61000以内的所有完数,即一个数等于它的因子之和,例如6=1+2+3.并输出它的因子。#include #include #include int main() int sum,i,k,gen,g; for(i=6;i1000;i+) sum=1; gen=sqrt(i); for(k=2;k=gen;k+) if(i%k=0) sum+=k; sum+=i/k; if(k*k=i) sum-=k; if(sum=i) printf(%dn因子:1 ,sum); for(g=2;g=gen;g+) if(i%g=0) printf(%d ,g); if(i/g!=g) printf(%d ,i/g); printf(n); return 0;6.73025分成两段30和25,且(30+25)2=3025,求出全部四位数。#include #include #include int main() int i,a,b,c; for(i=1000;i10000;i+) a=i/100; b=i%100; c=a+b; if(c*c=i) printf(%dn,i); return 0;6.8求出满足下面条件的三位数:该数只有两个数字相同,例如121,112#include #include #include int main() int i,a,b,c; for(i=100;i1000;i+) a=i/100; b=i%10; c=i/10%10; if(c=a&a!=b|a=b&b!=c|b=c&c!=a) printf(%dn,i); return 0;6.9猴子吃桃问题。第一天吃了一半还多一个,以后每天都这样,第十天发现,只有一个了,问一共有多少桃子?#include #include #include int main() int i,sum=1; for(i=9;i0;i-) sum=(sum+1)*2; printf(%dn,sum); return 0;第7章 数组7.1 输入一个整型十进制数,转成十六进制,并输出。#include #include int main() int n,i=0,k; int shu10; scanf(%d,&n); i=0; while(n0) shui=n%16; i+; n/=16; for(k=i-1;k=0;k-) if(shuk10) printf(%d,shuk); else printf(%c,A+shuk%10); printf(n); return 0;7.2 输入一个整数,判断其是不是回文数.#include #include int main() int n,i,k; int shu10; scanf(%d,&n); i=0; while(n0) shui=n%10; n/=10; i+; k=0; i-; while(ki) printf(Yesn); else printf(Non); return 0;7.3有一个34的矩阵,找出其中的最大值,及对应的坐标号。#include #include int main() int shu34; int i,k,max=0,xx,yy; for(i=0;i3;i+) for(k=0;kmax) max=shuik; xx=i;yy=k; printf(%dn%d %dn,max,xx,yy); return 0;7.4 求数列第10项及前10项的和。F1=1,f2=1,F(n)=3*f(n-1)+2*f(n-2)#include #include int main() int i; int f12,sum=2; f1=f2=1; for(i=3;i=10;i+) fi=fi-1*3+fi-2*2; sum+=fi; printf(第10项:%dn和:%dn,f10,sum); return 0;7.5打印杨辉三角,8行#include #include int main() int hui1020; int i,k,kon=7; for(i=0;i10;i+) for(k=0;k20;k+) huiik=0; for(i=0;i10;i+) for(k=0;k=i;k+) huiik=(k=0)?1:huii-1k-1+huii-1k; for(i=0;i0;k-) printf( ); kon-; for(k=0;k0) printf(%2d ,huiik); printf(n); return 0;7.6从键盘输入2个字符串,若不相等,则把短的字符串连接到长的字符串后面,输出新的字符串。#include #include int main() char f1100,f2100; int i,k; scanf(%s,f1); scanf(%s,f2); i=k=0; while(f1i&f2k) i+;k+; if(f1i|f2k) if(f1i) while(f1i) i+; k=0; while(f2k) f1i=f2k; i+;k+; f1i=0; printf(%sn,f1); else while(f2k) k+; i=0; while(f1i) f2k=f1i; i+;k+; f2k=0; printf(%sn,f2); return 0;7.7输出如下图案:* * * * * * * * * * * * * * * * #include #include int main() char tu47; int i,k,kon=5; for(i=0;i4;i+) for(k=0;k7;k+) tuik=*; for(i=0;i4;i+) for(k=i+1;kkon+i+1;k+) tuik= ; kon-=2; for(i=0;i4;i+) for(k=0;k7;k+) printf(%c ,tuik); printf(n); return 0;第8章 函数 8.1将十进制整数变成十六进制字符串输出。#include #include void bian(int n,char f) int ff10,i=0,k,g=0; while(n) ffi+=n%16; n/=16; for(k=i-1;k=0;k-) if(ffk10) fg+=ffk+0; else fg+=ffk%10+A; fg=0;int main() int n; char f10; scanf(%d,&n); bian(n,f); printf(%sn,f); return 0;8.2 筛法求1000以内的素数。#include int main()int shu1001;int i,k;for(i=2;i=1000;i+) shui=0;for(i=2;i=1000;i+) if(shui=0) printf(%d ,i); for(k=i*2;k=1000;k+=i) shuk=1; return 0;未完待续。8.3输出NN的反时针方向的螺旋方阵。8.4打印n阶魔方阵。8.5用移位的方法,实现十进制数以二进制形式输出。8.6分别编写5个函数,实现字符串的复制,连接,大写转小写,小写转大写,字符串比较。8.7利用海伦公式求三角形面积。S=(a+b+c)/2;分别定义2个函数,一个求s,一个求面积,主函数输入3边的长,并判断是否合法,然后求面积。 8.8编写程序,求2的n次方,n可以大于100.用数组存结果。8.9 编写程序,求n!,例如100!8.10求1!+2!+.+10!8.11在数字插入千分位符,例如1234567,表示成1,234,5678.12给定年,月,日,判断那是该年的第几天,并判断是星期几?8.13给若干字符串冒泡排序。8.14将数字字符串转成数字。如“123”是

温馨提示

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

评论

0/150

提交评论