C语言答案-.pdf

上传人:索**** 文档编号:76245430 上传时间:2023-03-08 格式:PDF 页数:23 大小:24.46KB
返回 下载 相关 举报
C语言答案-.pdf_第1页
第1页 / 共23页
C语言答案-.pdf_第2页
第2页 / 共23页
点击查看更多>>
资源描述

《C语言答案-.pdf》由会员分享,可在线阅读,更多相关《C语言答案-.pdf(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、C语言答案()?编程题1(2)键盘输入 10 个实型数,求其倒数的和并输出.参考答案#include"stdio.h"#include"math.h"main()int i;float a,sum=0;printf("Please input 10 number:");for(i=0;i<10;i+)scanf("%f",&a);sum+=1.0/a;printf("The result is:%fn",sum);2(3)键盘输入 10 个正实型数,求其方根的和并输出。参考答案#i

2、nclude"stdio.h"#include"math.h"main()int i;float a,sum=0;printf("Please input 10 number which are all great than 0:");for(i=0;i<10;i+)scanf("%f",&a);if(a<0)continue;sum+=sqrt(a);printf("The result is:%fn",sum);3(4)计算 s=1-2!+3!-4!+,-10!的值并输出

3、。参考答案#include"stdio.h"#include"math.h"main()int i;long sum=0,b=-1;for(i=1;i<=10;i+)b=-1*i*b;sum+=b;printf("The result is:%fn",sum);4(5)编写一个程序,从键盘输入一个三位整数,将它们逆序输出。例如输入 127,输出 721。参考答案#include"stdio.h"main()int num,a,b,c;printf("Please input the number:&

4、quot;);scanf("%d",&num);a=num/100;b=(num-100*a)/10;c=num-100*a-10*b;a+=b*10+c*100;printf("The result is%dn",a);5(7)打印出所有的“水仙花数”,所谓“水仙花数”是指一个 3 位数,其各位数字立方和等于该数本身。例如:153 是一水仙花数,因为153=13+53+33.参考答案main()int i,j,k,s;for(s=100;s<=999;s+)i=s/100;j=s/10%10;k=s-i*100-j*10;if(i*i*i

5、+j*j*j+k*k*k=s)printf("s=%dn",s);else continue;6(8)编写一程序,对于给定的一个百分制成绩,输出相应的五分制成绩。设:90 分以上为 A,8089分为 B,7079分为 C,6069分为 D,60 分以下为 E。参考答案#include"stdio.h"main()int a,b;printf("Please input the score:");scanf("%d",&a);b=a/10;switch(b)case 10:case 9:printf(&quo

6、t;A!n");break;case 8:printf("B!n");break;case 7:printf("C!n");break;case 6:printf("D!n");break;default:printf("E!n");break;7(9)计算 s=1-1/3+1/5-1/7+,1/101 的值并输出。参考答案main()int i,f=1;float sum=0.0;for(i=1;i<=101;i=i+2)sum=sum+1.0/i*f;f=(-1)*f;printf("

7、sum=%fn",sum);8(11)输入一个正整数,要求以相反的顺序输出该数。例如输入 12345,输出位 54321。参考答案main()int n;printf("Please enter n:");scanf("%d",&n);while(n>0)printf("%d",n%10);n=n/10;9(21)在主函数中输入 8 个整数,调用函数对其进行排序(从小到大),排序方法不限,最后在主函数中输出结果。参考答案#include"stdio.h"void main()int num8

8、,i;void taxis(int p,int);printf("Input 8 integers:n");for(i=0;i<8;i+)scanf("%d",num+i);taxis(num,8);printf("The result:n");for(i=0;i<8;i+)printf("%d,",numi);void taxis(int p,int n)int i,j;int code,temp;for(i=0;i<n-1;i+)code=i;for(j=i+1;j<n;j+)if(pj

9、<pcode)code=j;if(code!=i)temp=pi;pi=pcode;pcode=temp;10(41)从键盘输入十个整数,用合并排序法对输入的数据按照从小到大的顺序进行排序,将排序后的结果输出。?参考答案?#define N 16?#include"stdio.h"?merge(a,b,c,m)/*数组合并函数:将长度为m的*/?int a,b,c,m;/*数组 a、b 合并到 c*/?int i=0,j=0,k=0;?while(i<m&&j<m)?if(ai>bj)?ck+=bj+;/*将 ai、*bj 中的小*/

10、else ck+=ai+;/*者存入 ck*/while(i<m)ck+=ai+;/*将 a 或 b 中剩余的数*/while(j<m)ck+=bj+;/*存入 c*/mergesort(w,n)/*数组排序函数:对长度为 n*/int w,n;/*的数组 w 排序*/int i,t,raN;for(i=1;i<n;i*=2);if(i=n)if(n>2)/*递归调用结束条件*/mergesort(w,n/2);/*将数组 w 一分为二,递归调*/mergesort(w+n/2,n/2);/*用 mergesort*/merge(w,w+n/2,ra,n/2);/*将排

11、序后的两数组重新合并*/for(i=0;i<n;i+)wi=rai;else if(*w>*(w+1)t=*w;*w=*(w+1);*(w+1)=t;else printf("Error:size of array is not a power of 2/n");main()int i;static int keyN=4,3,1,81,45,8,0,4,-9,26,7,4,2,9,1,-1;mergesort(key,N);for(i=0;i<N;i+)printf("%d",keyi);printf("n");11

12、(44)编写函数,采用递归方法将任一整数转换为二进制形式。参考答案turn(n,a,k)int n,a,k;if(n>0)ak=n%2;turn(n/2,a,k-1);else return;main()int i,n,a16=0;printf("nPlease enter n:");scanf("%d",&n);turn(n,a,15);for(i=0;i<16;i+)printf("%d",ai);12(45)编写函数,采用递归方法在屏幕上显示如下杨辉三角形:1 1 1 1 2 1 1 3 3 1 1 4 6

13、4 1 1 5 10 10 51,参考答案#include<stdio.h>main()int i,j,n=13;printf("N=");while(n>12)scanf("%d",&n);/*最大输入值不能大于12*/for(i=0;i<=n;i+)/*控制输出 N 行*/for(j=0;j<12-i;j+)printf("");/*控制输出第 i 行前面的空格*/for(j=1;j<i+2;j+)printf("%6d",c(i,j);/*输出第 i 行的第 j 个

14、值*/printf("n");?int c(x,y)/*求杨辉三角形中第x 行第 y 列的值*/int x,y;int z;if(y=1)|(y=x+1)return(1);/*若为 x 行的第 1 或第 x+1 列,则输出 1*/else/*否则;其值为前一行中第y-1 列与第 y 列值之和*/z=c(x-1,y-1)+c(x-1,y);return(z);13(54)编制一个计算函数y=f(x)的值程序,其中:14(70)任意输入一个偶数,请将它分解为两个素数之和。参考答案main()int j,k,n,m;printf("Please enter n:&qu

15、ot;);scanf("%d",&n);for(j=2;j<n;j+)/*穷举法分解 n 为两个素数 j 和 m 之和*/for(k=2;k<j;k+)/*检验 j 是否素数*/if(j%k=0)break;/*j 能够被小于它的一个数整除就不是素数*/if(k>=j)/*j 是素数*/m=n-j;for(k=2;k<m;k+)/*检验 m 是否素数*/if(m%k=0)break;if(k>=m)/*m 也是素数,输出结果*/printf("%4d=%4d+%4dn",n,j,m);break;15(90)编写程序

16、,输入三角型的三条边长,求其面积。注意:对于不合理的边长输入要输出数据错误的提示信息。参考答案#include"math.h"main()int flag=0;float a,b,c,s;do printf("Please enter a b c:");scanf("%f%f%f",&a,&b,&c);if(a>b+c|b>a+c|c>a+b)flag=1;while(flag);s=(a+b+c)/2;printf("S=%f",s=sqrt(s-a)*(s-b)*(s-

17、c);16(95)输入 n 值,输出如图所示矩形。*n=6 时的矩形参考答案分析:打印此图形用两重循环实现。图形要重复 n 行,故采用循环结构实现循环n 次,循环体内部打印一行''*''号,把上述思路表示为:for(i=1;i<=n;i+)打印一行''*''号;每行有 n 个''*''号,再采用循环结构实现n 次循环,循环内部用格式输出语句打印一个''*''号,即:for(j=1;j<=n;j+)printf("*");按照上述思路,实

18、现打印矩形。参考答案:main()int i,j,n;printf("nPlease Enter n:");scanf("%d",&n);for(i=1;i<=n;i+)for(j=1;j<=n;j+)printf("*");printf("n");?17(96)输入 n 值,输出如图所示平行四边形。*?*?*?*?*?*n=6 时的平行四边形参考答案分析:此题和上题的区别在于每行''*''的数量逐行 减 少,可 以 使 用 上 题 控 制 空 格 个 数 的 思

19、 路 来 控 制''*''号的个数,请注意每行''*''的个数都是奇数。参考答案:main()int i,j,n;printf("nPlease Enter n:");scanf("%d",&n);for(i=1;i<=n;i+)for(j=1;j<=n-i;j+)printf("");for(j=1;j<=2*i-1;j+)printf("*");printf("n");18(97)输入 n 值,输出如图

20、所示高为n 的等腰三角形。*n=6 时的等腰三角形参考答案分析:此题图形是第 3 题图形的垂直反转,在编程上我们可以变换一个思路。对于图形中的第i 行(1in),共需要输出 2n-i 个字符,其中前面的 i-1 个字符为空格,后面的字符为''*''号。按照这一思路可以编写出如下程序。参考答案:main()int i,j,n;printf("nPlease Enter n:");scanf("%d",&n);for(i=1;i<=n;i+)/*重复输出图形的 n 行*/for(j=1;j<=2*n-i;j

21、+)/*重复输出图形一行中的每个字符*/if(j<=i-1)printf("");/*输出前面的空格*/else printf("*");/*输出后面的*号*/printf("n");19(108)编程求 sum=1!+2!+3!+,+20!20(110)编写程序,求 S=1/(1*2)+1/(2*3)+1/(3*4)+,前50 项之和。参考答案#include"stdio.h"main()int i;float sum=0;for(i=1;i<=50;i+)sum+=1.0/(i*(i+1);prin

22、tf("sum=%f n",sum);21(117)统计在1030-25830之间有多少个数能同时被13 和 27 整除。参考答案#include"stdio.h"main()int i,num=0;for(i=1030;i<=25830;i+)if(i%13=0)&&(i%27=0)num+;printf("num=%d n",num);22(121)统计在30-15810之间有多少个数能被23 整除,而不能被 37整除。参考答案#include"stdio.h"main()int i,nu

23、m=0;for(i=30;i<=15810;i+)if(i%23=0)&&(i%37!=0)num+;printf("num=%d n",num);23(122)统计在210-15870之间有多少个数能被19 整除,而不能被21 整除。参考答案#include"stdio.h"main()int i,num=0;for(i=210;i<=15870;i+)if(i%19=0)&&(i%21!=0)num+;printf("num=%d n",num);24(133)求一维整型数组中零的个数。

24、要求:主函数定义数组 a10=-15,-22,13,44,-25,66,0,88,-39,10,调用自定义函数求出零的个数,然后在主函数中输出结果。参考答案#include"stdio.h"main()int a10=-15,-22,13,44,-25,66,0,88,-39,10,n;int num(int x10);n=num(a);printf("The number is%dn",n);int num(int x10)int i,n=0;for(i=0;i<=9;i+)if(xi=0)n+;return(n);25(137)统计数组中小于数

25、组元素平均值的元素的个数。要求:主函数定义一维整型数组a10=12,34,56,78,90,9,87,65,43,21,调用自定义函数统计小于数组元素平均值的元素的个数,并在主函数中输出结果?参考答案#include"stdio.h"main()int a10=12,21,34,43,56,65,78,87,90,9,n;int num(int a10);n=num(a);printf("The number is%dn",n);int num(int a10)int i,n=0;float aver,sum=0;for(i=0;i<=9;i+)sum+=ai;aver=sum/10;for(i=0;i<=9;i+)if(ai<AVER)n+;return(n);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁