2016.03.28—06.30 北京理工大学 MOOCC 语言程序设计(下)网上作业答案第一周编程作业1、求最大公约数和最小公倍数(15 分)题目内容:编写程序,在主函数中输入两个正整数 a,b,调用两个函数 fun1() 和 fun2(),分别求 a 和 b 的最大公约数和最小公倍数,在主函数中输出结果。输入格式:两个正整数输出格式:最大公约数和最小公倍数输入样例:12,40[回车]输出样例:最大公约数:4[回车]最小公倍数:120[回车]时间限制:500ms 内存限制:32000kbCode:#include int fun1(int m,int n) {int r; r=m%n; return r==0?n:fun1(n,r); }int fun2(int m,int n){int t;t=m*n/fun1(m,n);return t; } int main() { int t,m,n;scanf(“%d,%d“,if(mint main(){int t,j,i,n[10]; for(i=0; i n[j+1]){ t = n[j]; n[j] = n[j+1];n[j+1] = t; }}}for(i=0;iint gcd(int m,int n) { int r; r=m%n; return r==0?n:gcd(n,r); } int main() { int t,m,n; scanf(“%d,%d“,if(m0), 求 1+3+5+7….+(2*n-1) 的和输入格式:输入整数 n输出格式:输出和输入样例:5[回车]输出样例:25[回车]时间限制:500ms 内存限制:32000kbCode:#include int fun(int n){int f;if(n==1) f=1;else f=fun(n-1)+2;return f;} int main() { int i,m,t=0; scanf(“%d“,for(i=0;iint fun(int n){if(n%2==0) n=n/2;else n=3*n+1;return n;} int main() { int i,m; scanf(“%d“,for(i=1;;i++) {printf(“%d,“,m);m=fun(m);if(m==1) break;}printf(“1\nstep=%d\n“,i+1); return 0; }2、卖鸭子(10 分)题目内容:编程调用递归函数。一个人赶着鸭子去每个村庄卖,每经过一个村子卖去所赶鸭子的一半又一只。这样他经过了 7 个村子后还剩 2 只鸭子,问他出发时共赶多少只鸭子?经过每个村子时依次卖出多少只鸭子?输入格式:无输出格式:出发时总鸭子数每个村子卖出鸭子数输入样例:无输出样例:(不是结果,仅表示格式 )sum=25[回车]sell=8,sell=4,[回车]时间限制:500ms 内存限制:32000kbCode:#include int fun(int i){int sum;if(i==7) sum=2;else sum=(fun(i+1)+1)*2;return sum;}int main() {int i;printf(“sum=%d\n“,fun(0));for(i=1;iint main(){int num = 0;int s = 0;int i = 0;scanf(“%d“, while(num) {s += num%10; num = num/10; i++; } printf(“%d\n“, s ); return 0;}第四周编程作业1、对称字符串(15 分)题目内容:从键盘输入一个字符串,判断是否为对称字符串,若是输出“YES”,若不是输出“NO”输入格式:一个字符串输出格式:YES or NO输入样例 1:abcdedcba[回车]输出样例 1:YES[回车]输入样例 2:1234432[回车]输出样例 2:NO[回车]时间限制:500ms 内存限制:32000kbCode:#include “stdio.h“#include “string.h“char s[100];int huiwen(int a,int b){if(a==b||b*(pa+j)){t=*(pa+i);*(pa+i)=*(pa+j);*(pa+j)=t;}} }} int main (){int a[10],i;for( i=0; i<10;i++)scanf(“%d“,fun(a,10);for(i=0;i<9;i++)printf(“%d,“,a[i]);printf(“%d\n“,a[9]);return 0;}3、查找数(15 分)题目内容:用指针方法,在一个一维数组 int a[10]的元素中,查找给定的数,若找到则输出该数,若没找到,输出 No。输入格式:第一行:10 个整数,空格隔开第二行:要查找的数输出格式:找到的数 orNo输入样例 1:11 22 43 56 78 90 76 4 2 10[回车]43[回车]输出样例 1:43[回车]输入样例 2:1 8 3 4 5 6 2 1 7 9[回车]10[回车]输出样例 2:No[回车]时间限制:500ms 内存限制:32000kbCode:#include “stdio.h“#include “string.h“int main(){int b,i,a[10],*p=a;for(i=0;i<10;i++) scanf(“%d“,scanf(“%d“,for(i=0;;i++){if(b==*(p+i)){printf(“%d\n“,*(p+i));break;}if(i==9) {printf(“No\n“);break;}}return 0;}第五周编程作业1输出指定学生成绩(15 分)题目内容:从键盘输入 3 个同学 4 门课的成绩,输出指定同学的成绩和平均分。输入格式:输入 3 个同学 4 门课的成绩输出格式:输出指定同学的成绩和平均分输入样例:89 78 80 76 88 78 75 90 99 92 100 89[回车]1[回车]输出样例:89 78 80 76[回车]80.75[回车]时间限制:500ms 内存限制:32000kbCode:#include “stdio.h“#include “string.h“int main(){int n,i,j,a[3][4];float x=0;for(i=0;i<3;i++){for(j=0;j<4;j++){scanf(“%d“,}}scanf(“%d“,for(i=0;i<4;i++) x=x+a[n-1][i];x=x/4;for(i=0;i<4;i++) {printf(“%d“,a[n-1][i]);
展开阅读全文