c语言上机答案
- 格式:doc
- 大小:81.50 KB
- 文档页数:13
C语言程序设计题目与参考答案(1——9章)1.(课本第84页第7题)设圆半径r=1.5,圆柱的高h=3,求圆周长.圆面积.圆球表面积.圆球体积.圆柱体积。
用scanf输入数据,输出计算结果,输出时要求有文字说明,取小数点后2位数字。
请编程序:#include <stdio.h>int main()#define p 3.1416int main(){double r,h,l,s,S,v,V;scanf("%lf %lf",&r,&h);l=2*p*r;s=p*r*r;S=4*p*r*r;v=4/3*p*r*r*r;V=p*r*r*h;printf("l=%7.2f\ns=%7.2f\nS=%7.2f\nv=%7.2f\nV=%7.2f\n",l,s,S,v,V);return 0;}2.把560分钟化成小时和分钟。
#include<stdio.h>main(){int t,h,m;t=560;h=t/60;m=t%60;printf("560分钟等于%d小时%d分钟\n",h,m);}3.第112页第6题)有一个函数y=x(x<1),y=2x-1(1<=x<10),y=3x-11(x>=1写程序,输入x的值,输出y相应的值。
#include<stdio.h>int main(){float x,y;scanf("%f",&x);if(x<1) y=x;elseif(x<10) y=2*x-1;else y=3*x-11;printf("%f\n",y);}4.(第113页第11题)输出4个整数,要求按由小到大的顺序输出。
#include<stdio.h>int main(){float a,b,c,d,t;scanf("%f,%f,%f,%f",&a,&b,&c,&d);if(a>b) {t=a;a=b;b=t;}if(a>c) {t=a;a=c;c=t;}if(a>d) {t=a;a=d;d=t;}if(b>c) {t=b;b=c;c=t;}if(b>d) {t=b;b=d;d=t;}if(c>d) {t=c;c=d;d=t;}printf("%f,%f,%f,%f",a,b,c,d);}5.(第113页第12题)有4个圆塔,圆心分别为(2,2),(-2,2),(-2,-2),(2,-2),圆半径为1,这四个塔的高度为10米,塔以外无建筑物。
C语言上机考试题参考答案课本例题1.例4.10:由边长求三角形的面积#include<stdio.h>#include<math.h>void main(){float a,b,c,s,area;scanf("%f,%f,%f",&a,&b,&c);s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c));printf("a=%7.2f, b=%7.2f, c=%7.2f s=%7.2f\n",a,b,c,s);printf("area=%7.2f\n",area);}2.例5.3:符号函数#include<stdio.h>#include<math.h>void main(){int x,y;scanf("%d",&x);if(x<0) y=-1;elseif(x==0) y=0;else y=1;printf("x=%d,y=%d\n",x,y);}3.例5.4:改变字母的大小写#include<stdio.h>void main(){char ch;scanf("%c",&ch);ch=(ch>='A' && ch<='Z')?(ch+32):ch;printf("%c\n",ch);}4.例5.5:判断闰年#include<stdio.h>#include<math.h>void main(){int year;scanf("%d",&year);if((year%4==0 && year%100!=0)||(year%400==0)) printf("%d is 闰年");elseprintf("%d is not 闰年");}5 例6.6:求π的近似值#include<stdio.h>#include<math.h>void main(){int s;float n,t,pi;t=1;pi=0;n=1.0;s=1;while(fabs(t)>1e-6){pi=pi+t;n=n+2;s=-s;t=s/n;}pi=pi*4;printf("pi=%10.6\n",pi);}6 例7.2:Fibonacci数列#include<stdio.h>#include<math.h>void main(){int i;int f[20]={1,1};for(i=2;i<20;i++)f[i]=f[i-2]+f[i-1];for(i=0;i<20;i++){if(i%5==0) printf("\n");printf("%12d",f[i]);}printf("\n");}7 例7.3:起泡排序#include<stdio.h>#include<math.h>void main(){int a[10];int i,j,t;printf("input 10 numbers:\n"); for(i=0;i<10;i++)scanf("%d",&a[i]);printf("\n");for(j=0;j<9;i++)for(i=0;i<9-j;i++)if(a[i]>a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;}for(i=0;i<10;i++)printf("%d",a[i]);printf("\n");}8 例7.4:矩阵转置#include<stdio.h>#include<math.h>void main(){int a[2][3]={{1,2,3},{4,5,6}};int b[3][2],i,j;for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<=1;i++){for(j=0;j<=2;j++){printf("%5d",a[i][j]);b[i][j]=a[i][j];}printf("\n");}for(i=0;i<=2;i++){for(j=0;j<=1;j++)printf("%5d",b[i][j]);printf("\n");}}9 例7.5:求一组数中的最大或最小数#include<stdio.h>#include<math.h>void main(){int i,j,row=0,colum=0,max;int a[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}};max=a[0][0];for(i=0;i<=2;i++)for(j=0;j<=3;j++)if(a[i][j]>max){max=a[i][j];row=i;colum=j;}printf("max=%d,row=%d,colum=%d\n",max,row,colum);}10 例8.8:使用递归方法实现计算阶乘n!#include<stdio.h>#include<math.h>void main(){float fac(int n);int n;float y;scanf("%d",&n);y=fac(n);printf("%d!%10.0f\n",n,y);}float fac(int n){float f;if(n<0){printf("error");}elseif(n==0||n==1)f=1;elsef=fac(n-1)*n;return f;}1110.9:选择法排序#include<stdio.h>#include<math.h>void main(){void sort(int x[],int n);int *p,i,a[10];p=a;for(i=0;i<10;i++)scanf("%d",p++);p=a;sort(p,10);for(p=a,i=0;i<10;i++){printf("%d",*p);p++;}}void sort(int x[],int n){int i,j,k,t;for(i=0;i<n-1;i++){k=i;for(j=i+1;j<n;j++)if(x[j]>x[k]) k=j;if(k!=i){t=x[i];x[i]=x[k];x[k]=t;}}}12 习题4.9:华氏度转摄氏度#include <stdio.h>void main(){float c, f;printf("请输入一个华氏温度:");scanf("%f", &f);c=5*(f-32)/9;printf("对应的摄氏温度为:%.2f\n", c); }13题5.4:输出三个数中的最大者#include<stdio.h>#include<math.h>void main(){int a,b,c,max;scanf("%d%d%d",&a,&b,&c);max=a;if(max<b) max=b;if(max<c) max=c;printf("max=%d\n",max);}14习题5.6:成绩分数转为成绩等级(if-else和switch两种方法)方法一#include <stdio.h>void main(){float grade = 0.0;printf("请输入一个百分制成绩:");scanf("%f", &grade);if(grade>=90.0 && grade<=100.0)printf("成绩等级为:A\n");else if(grade>=80.0 && grade<90.0)printf("成绩等级为:B\n");else if(grade>=70.0 && grade<80.0)printf("成绩等级为:C\n");else if(grade>=60.0 && grade<70.0)printf("成绩等级为:D\n");else if(grade>=0.0 && grade<60.0)printf("成绩等级为:E\n");elseprintf("输入有误!请输入百分制成绩!\n");return 0;}方法二#include <stdio.h>void main(){float grade = 0.0;int t = 0;printf("请输入一个百分制成绩:");scanf("%f", &grade);if(grade>=0.0 && grade<=100.0){t = (int)grade/10;switch(t){case 10:case 9: printf("成绩等级为:A\n"); break;case 8: printf("成绩等级为:B\n"); break;case 7: printf("成绩等级为:C\n"); break;case 6: printf("成绩等级为:D\n"); break;case 5:case 4:case 3:case 2:case 1:case 0: printf("成绩等级为:E\n"); break;}}elseprintf("输入有误!请输入百分制成绩!\n"); }15习题5.7:拆分整数#include <stdio.h>void main(){int num;printf("请输入一个不多于5位的正整数:");scanf("%d", &num);if(num<=0 || num>=100000){printf("输入有误!");}else{if(num>=10000)printf("您输入的是5位数。
第一次上机作业(2021):要求:独立完成,上机调试通事后上交作业提交邮件主题命名:班级学号姓名(第1次作业),例如:电1301班2王鹏(第1次作业)以附件形式将每次作业的所有程序源程序紧缩打包后提交,紧缩文件命名格式同上。
程序必需采用缩进格式1.大写字母转换成小写字母从键盘输入一个大写英文字母,输出相应的小写字母。
例:输入G输出g2.求平方根输入一个实数x,计算并输出其平方根(保留1 位小数)。
例:输入17输出The square root of is3.温度转换设计一个程序将华氏温度转换成摄氏温度c = 5/9(f-32)a)输入华氏温度(实型)b)输出的摄氏温度结果保留两位小数例:Please input Fahrenheit temperature:The corresponding Celsius temperature is4. 计算旅途时刻输入二个整数time1 和time2,表示火车的起身时刻和抵达时刻,计算并输出旅途时刻。
(输入的有效的时刻范围是0000 到2359,不需要考虑起身时刻晚于抵达时刻的情形。
)例:输入712 1411 (起身时刻是7:12,抵达时刻是14:11)输出The train journey time is 6 hours 59 minutes.5. 数字加密输入一个四位数,将其加密后输出。
方式是将该数每一名上的数字加9,然后除以10 取余,做为该位上的新数字,最后将第1 位和第3 位上的数字互换,第2 位和第4 位上的数字互换,组成加密后的新数。
例:输入1257输出The encrypted number is 4601试探题:你可否编程找出谁做的好事?有四位同窗中的一名做了好事,不留名,夸奖信来了以后,校长问这四位是谁做的好事。
⏹A说:不是我。
⏹B说:是C。
⏹C说:是D。
⏹D说:他乱说。
已知三个人说的是实话,一个人说的是谎话。
此刻要依照这些信息,找出做了好事的人。
第01套:1、STYPE;FILE;fp2、for( i=0; i<=sl; i ++)t[2sl] = '\0';3、*c=(a/10)*1000+(b/10)*100+(a%10)*10+(b%10); 第02套:1、*fw或fw[];str;str2、void fun(long s,long *t)sl=sl*10;3、*c=(b/10)*1000+(a%10)*100+(b%10)*10+(a/10);第03套:1、fp;fclose(fp);fname或"myfile3.dat"2、<n或<=n-1p=i;3、*c=(b%10)*1000+(a%10)*100+(b/10)*10+(a/10); 第04套:1、"r"或"r+";fs;ft2、if (d%2==0)s /= 10;3、*c=(a%10)*1000+(b/10)*100+(a/10)*10+(b%10); 第05套:1、x;p;s2、k=1;num/=10 ;3、int i;float ave=0.0;for(i=0; i<n; i++) ave=ave+a[i] ;ave=ave/n;return ave;第06套:1、next;t->data或(*t).data;t2、fun (char *a)printf("%c", *a) ;3、int i;char *p=s, *q=t;for(i=0;*p && *q; i++) {p++; q++;}if(*p == 0 && *q == 0) return s ;if(*p) return s ;else return t ; 第07套:1、q;next;next2、p = j;p = i;3、int i ;*n=0 ;for(i=7 ; i<=m; i++)if((i % 7 == 0) || (i % 11 == 0)) a[(*n)++]=i ; 第08套:1、NULL;return n;head,ch2、for错写成Forc[t]=’\0’;3、int i ;for(i = 1 ; i < strlen(*ss) ; i+=2) {if(ss[i] >= 'a' && ss[i] <= 'z') ss[i] -= 32 ;} 第09套:1、*n;next;head2、Null应NULLif(*r==*p)3、int i, j = 0 ;for(i = 0 ; i < strlen(s) ; i += 2)if(s[i] % 2 == 0) t[j++] = s[i] ;t[j] = 0 ;第10套:1、data;next;head2、while(*r)*a = *r; a++; r++;3、int i, j = 0 ;for(i = 1 ; i < strlen(s); i+=2) t[j++] = s[i] ; t[j] = 0 ;}第11套:1、STU;stu[i].num;std[i]2、r++; p++;if ( *r == '\0' )3、int i, j = 0 ;for(i = 0 ; i < strlen(s); i++) if(s[i] % 2)t[j++] = s[i] ;t[j] = 0 ;第12套:1、std[i].year;std[i];n2、IsPrime ( int n )if ( !( n%i ))3、int i, max = a[0].s, j = 0; for(i = 1 ; i < N ; i++)if(max < a[i].s) {j = i ;max = a[i].s ;}*s = a[j] ;第13套:1、STU;score[i];&std2、if ( k > 0 )else if ( k==0 )3、int i, j;for(i = 0 ; i < N ; i++)for(j = 0 ; j <= i; j++) a[i][j] *= n ;第14套:1、*std;PERSON;std2、int错写成Intpt[i] = str[k][i] ;3、int i, j;for(i = 0 ; i < N ; i++)for(j = 0 ; j <= i; j++) a[i][j] = 0 ;第15套:1、*std;std[i].age;2、void fun ( int *a,int *b )t=*b;*b=*a;*a=t;3、int i,j, min, k ;for(i = 0 ; i < N ; i++) { min = tt[0][i] ; k = 0 ; for(j = 1 ; j < M ; j++) if(min > tt[j][i]) {min=tt[j][i] ;k = j ;}pp[i] = tt[k][i] ;}第16套:1、tt;tt.score[i];std2、m=i;if(a[k]>a[m]) m=k;3、if(w>10000) w %= 10000 ;else if(w>1000) w %= 1000 ; else if(w>100) w %= 100 ;else if(w>10) w %=10 ;return w ;第17套:1、i+1;m=j;t2、void fun(char *str, char ch)if(*str!=ch)str[1] = 0;3、char b[N] ;int i = 0, j ;memset(b, 0, N) ;for(j = strlen(s) - 1 ; j >= 0 ; j--) b[i++] = s[j] ; strcpy(s, b) ;第18套:1、k;len;ss[i][j]2、result*=n--;return result;3、char *p = s ;int i = 0 ;while(*p) {if(*p != c) s[i++] = *p ;p++ ;}s[i] = 0 ;第19套:1、ss[i];n+j;12、if( *p == ' ' )* (p-1) = toupper( *( p - 1 ) );3、char ch ;int i, j ;for(i = 1 ; i < 6 ; i++)for(j = i + 1 ; j < 6 ; j++) {if(*(s + i) < *(s + j)) {ch = *(s + j) ;*(s + j) = *(s +i) ;*(s + i) = ch ; } }第20套:1、N;len;*n=len2、t += 1.0/t;return t;3、int cnt = 0 ;char *p = str, *q ;while(*p) {q = strstr(p, substr) ;if(q == NULL) break;p = q + strlen(substr) ;cnt++ ;}return cnt ;第21套:1、M;<;k2、if(( 'a' <= tt[i] )&&( tt[i] <= 'z' ) )tt[i] -= 32;3、int i, cnt = 0 ;for(i = 2 ; i < m ; i++)if(isP(i)) xx[cnt++] = i ;*k = cnt ;第22套:1、j++;s[i]=t1[i];j2、for (j = i + 1; j < 6; j++)*(pstr+i)=*(pstr+j);3、int cnt = 0 ;char *p = ss ;while(*p) {if(*p == c) cnt++ ;p++ ;}return cnt ;第23套:1、&&;'\0';s[j]2、for(i=2; i<=m; i++)y+=1.0/(i*i)3、int c[3][3] ;int i, j ;for(i = 0 ; i < 3 ; i++)for(j = 0 ; j < 3 ; j++) {c[i][j] = a[j][i] ; /* 矩阵的转置 */ b[i][j] = a[i][j] + c[i][j] ;}第24套:1、s[i];'9';*t=n2、t=*x;*x=y;return(t);3、int i ;*n = 0 ; for(i = 7 ; i < 1000 ; i++)if(((i % 7) == 0 || (i % 11) == 0) && (i % 77) != 0) a[(*n)++] = i ;第25套:1、1;s[k];c2、long s = 0, t = 0 ;t=t/10;3、char *p = tt ;int i ;for(i = 0 ; i < 26 ; i++) pp[i] = 0 ;while(*p) {if(*p >= 'a' && *p <= 'z') pp[*p - 'a'] += 1 ; p++ ;}第26套:1、t=i;i;'\0'2、while(fabs(t)>=num)t=s/n;3、strncpy(b, a, n) ;b[n] = 0 ;strcat(b, a + n + 1) ;第27套:1、'\0';0;c2、double sum=0.0;或float sum=0.0;sum /= c;3、int i,j,t;float s=0;for(i=1;i<=n;i++) {t=0;for(j=1;j<=i;j++) t+=j;s=s+1./t;}return s;第28套:1、i++;m;m2、while ((high >= 2) && (n < 10))yes=0; break;3、float x0, x1=0.0;do {x0=x1; x1=cos(x0);} while(fabs(x0-x1)>0.000001);return x1;第29套:1、N;N-1;02、s+=(float)(n+1)/n;return t;3、int f0 = 0, f1 = 1, f ;do {f = f0 + f1 ;f0 = f1 ;f1 = f ;} while(f < t) ;return f ;第30套:1、0;j--;j2、double f( double x)return s;3、double s = 0.0 ;int i ;for(i = 1 ; i <= m ; i++) s += log(1.0 * i) ; s = sqrt(s) ;return s ;第31套:1、[N];t[i][j];t[j][i]2、#define FU(m,n) ((m)/(n))return错写成Return,变量value错写成Value。
4.1 温度转换背景:经常出国旅行的驴友都知道,需要时时了解当地的气温状况,但不少国家采用了不同的温度计量单位:有些使用华氏温度标准(F),有些使用摄氏温度(C)。
现在,请你根据温度转换公式设计一个温度转换程序,可以进行温度转换。
如果输入摄氏温度,显示转换的华氏温度;如果输入华氏温度,显示转换的摄氏温度。
温度转换的公式为:F=(C×9/5)+32 ;C=(F-32)×5/9 ;式中F--华氏温度,C--摄氏温度。
输入:第一个数据(1 或 2 )确定转换的类型:华氏转摄氏(1);摄氏转华氏(2);第二个数据是相应需要转换的温度值。
输出:相应的转换后的温度值(保留小数点后 2 位)。
#include <stdio.h>void main(){int lx;double f,c;scanf("%d",&lx);if(lx==1){scanf("%lf",&f);c=(f-32)*5/9;printf("The Centigrade is %.2f\n",c);}else{scanf("%lf",&c);f=(c*9/5)+32;printf("The Fahrenheit is %.2f\n",f);}}4.2 分段函数有一分段函数,y=f(x)。
当x小于6时,y=x-12;当x大于等于6且小于15时,y=3x-1;当x大于等于15时,y=5x+9.从键盘上输入一个整数x,输出对应的y值。
#include <stdio.h>void main(){int x,y;scanf("%d",&x);if(x<6)y=x-12;else if(x<15)y=3*x-1;elsey=5*x+9;printf("%d\n",y);return 0;}4.3 整数位数判断输入一个不多于5位的正整数,要求: (1)求它是几位数;(2)逆序打印出各位数字。
C语言上机练习参考标准答案C语言上机练习参考答案————————————————————————————————作者:————————————————————————————————日期:第1章C语言概述1-1编写程序,在屏幕上显示一个如下输出:---------------------------------Programming in C is fun!I love C language.---------------------------------Program#includemain(){ printf("---------------------------------\n");printf("Programming in C is fun!\n");printf("I love C language.\n");printf("---------------------------------\n");}1-2编写程序,在屏幕上显示一个如下图案:* * * ** * ** **Program (1)#includemain(){ printf("* * * *\n");printf(" * * *\n");printf(" * *\n");printf(" *\n ");}Program (2)#includemain(){ printf("%c%4c%4c%4c\n", '*', '*', '*', '*');printf("%3c%4c%4c\n", '*', '*', '*');printf("%5c%4c\n", '*', '*');printf("%7c\n ", '*');}1-3已知某个圆的半径,编写一个程序,用来计算并显示面积。
2010C语言实验报告参考答案实验一熟悉C语言程序开发环境及数据描述四、程序清单1.编写程序实现在屏幕上显示以下结果:The dress is longThe shoes are bigThe trousers are black答案:#include<stdio.h>main(){printf("The dress is long\n");printf("The shoes are big\n");printf("The trousers are black\n");}2.改错题(将正确程序写在指定位置)正确的程序为:#include <stdio.h>main(){printf("商品名称价格\n");printf("TCL电视机¥7600\n");printf("美的空调¥2000\n");printf("SunRose键盘¥50.5\n");}2.编写程序: a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。
答案:#include<stdio.h>main(){int a,b,c,x,y;a=150;b=20;c=45;x=a/b;y=a/c;printf("a/b的商=%d\n",x);printf("a/c的商=%d\n",y);x=a%b;y=a%c;printf("a/b的余数=%d\n",x);printf("a/c的余数=%d\n",y);}4. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b时,将a 赋给c。
(提示:用条件运算符)答案:#include<stdio.h>main(){int a,b,c;a=0;b=-10;c= (a>b) ? b:a;printf("c = %d\n",c);}五、调试和测试结果1.编译、连接无错,运行后屏幕上显示以下结果:The dress is longThe shoes are bigThe trousers are black3、编译、连接无错,运行后屏幕上显示以下结果:a/b的商=7a/c的商=3a/b的余数=10a/c的余数=154. 编译、连接无错,运行后屏幕上显示以下结果:c =-10实验二顺序结构程序设计四、程序清单1.键盘输入与屏幕输出练习问题1 D 。
问题2 改printf("%c,%c,%d\n",a,b,c);这条语句改成:printf("%c %c %d\n",a,b,c);问题3 改scanf("%c%c%d",&a,&b,&c);这条语句改为:scanf("%c,%c,%d",&a,&b,&c);问题4 改printf("%c,%c,%d\n",a,b,c);这条语句改成:printf("\’%c\’ \’ %c\’ %d\n",a,b,c);2(1)从键盘输入两个八进制数,计算两数之和并分别用十进制和十六进制数形式输出。
#include <stdio.h>int main(){int a,b,c;printf("Enter a and b:");scanf("%o%o",&a,&b);c = a + b;printf("d:%d\n",c);printf("x:%x\n",c);return 0;}2(2)编写程序:从键盘输入两个实数a和x,按公式计算并输出y的值:5ax++=)ln(sin()+xy+aeaxa#include<stdio.h>#include<math.h>int main(){float a,x,y;scanf("%f%f",&a,&x);y = pow(a,5) + sin(a*x) + exp(a*x) + log(a+x);printf("y=%f\n",y);return 0;}3.改错题正确的程序为:#include <stdio.h>main(){int a,b,c,s;scanf("%d%d%d",&a,&b,&c);s=a+b+c;printf("%d=%d+%d+%d\n",s,a,b,c); /*输出s=a+b+c*/printf("%d+%d+%d=%d\n",a,b,c,s); /*输出a+b+c=s*/} 五、调试和测试结果2(1) 输入: 12 14输出:261a2(2) 输入:1 0输出:2.000000实验三 选择结构程序设计四、设计流程(算法描述)(请写出上机内容2(2)题的算法描述)主要是两两比较,然后得出最大的数五、程序清单2(1) 输入整数x 和a ,计算并输出下列分段函数f (x )的值(保留2位小数),请调用log 函数求自然对数,调用fabs 函数求绝对值。
⎪⎩⎪⎨⎧=≠-+=a x a x xa x a a x f 0ln 21)(程序为:#include <stdio.h>#include <math.h>main(){int x,a;double y;printf("Enter a and x:");scanf("%d%d",&a,&x);if(fabs(x)!=a)y=log(fabs((float)(a+x)/(a-x)))/(2*a);elsey=0;printf("a=%d,f(%d)=%.2f\n",a,x,y);}(2)输入a 、b 、c 三个整数,输出最大数。
#include<stdio.h>main(){int a,b,c,x;scanf("%d%d%d",&a,&b,&c);if(a>=b)x=a;elsex=b;if (x<c)x=c;printf("the max number is:%d\n",x);return 0;}3.改错题正确程序为:#include <stdio.h>main(){double n;printf("Enter n:");scanf("%lf",&n);if(n<0)printf("%lf is less than 0\n",n);else if(n==0)printf("%lf is equal to 0\n",n);elseprintf("%lf is greater 0\n",n);}六、调试和测试结果2(1) Enter a and x:5 6a=5,f(6)=0.24Enter a and x:5 5a=5,f(5)=0.002(2) 输入:3 2 1 输出:the max number is:3输入:2 3 1 输出:the max number is:3输入:1 2 3 输出:the max number is:3实验四循环结构程序设计四、设计流程(算法描述)(请写出上机内容2的算法描述)首先求出每一个给定数的所有因子和,然后从2到5000循环,那一个数x与因子之和相等,就是完数。
五、程序清单1.编写程序:求1+2+3+...+100和12+22+33+ (1002)#include<stdio.h>#include<math.h>int main(){int i,j,sum;sum = 0;for (i=1;i<=100;i++)sum += i;printf("the sum is:%d\n",sum);sum =0;for(i=1;i<=100;i++){j=pow(i,2);sum +=j;}printf("the square sum is:%d\n",sum);return 0;}2.一个数如果恰好等于它的因子之和,这个数就称为“完数”,编写程序找出2~5000中的所有完数。
#include<stdio.h>#include<math.h>main(){int i,j,sum=0;for(i=2;i<=5000;i++) //遍历从2到5000的所有数{sum = 0;for (j=1;j<=i/2;j++) //找出给定整数X的所有因子和{if(i%j == 0)sum +=j;}if(i == sum) //sum为因子和,如果和i相等,则输出printf("%d ",i);}return 0;}3. 改错题正确的程序为:#include <stdio.h>main(){int n=1;int find=0;while(!find){if(n%5==1 && n%6==5 && n%7==4 && n%11==10){printf("n=%d\n", n);find =1;}n++;}}六、调试和测试结果1:结果:the sum is:5050the square sum is:3383502:结果:6 28 496实验五函数和预处理命令四、设计流程(算法描述)(请写出上机内容1的算法描述)利用循环将m乘n次五、程序清单m的值。
利用此函数编程序实现:从1.编写自定义函数long power(int m,int n),计算nm的值。
键盘输入两个整数m和n,计算出n#include<stdio.h>long power(int m,int n)//要返回的是long型{int i;long s;//因为是要返回的数,所以这里也定义为long型s=1;for(i=1;i<=n;i++){s *=m;}return s;}int main(void){int m,n;scanf("%d%d",&m,&n);printf("s=%ld\n",power ( m,n));return 0;}2、写出两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果,两个整数由键盘输入。