c语言程序设计k r答案,C语言程序设计下mooc答案

《C语言程序设计下mooc答案》由会员分享,可在线阅读,更多相关《C语言程序设计下mooc答案(27页珍藏版)》请在人人文库网上搜索。

1、2016.03.2806.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:。

2、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,&m,&n);if(mint main()int t,j,i,n10; for(i=0; i nj+1) t = nj; nj = nj+1;nj+1 = t; for(i=0;i int 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,&m,&n);if(m0), 求1+3+。

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,&m);for(i=0;i int fun(int n)if(n%2=0) n=n/2;else n=3*n+1;return n; int main() int i,m; scanf(%d,&m);for(i=1;i+) printf(%d。

4、,m);m=fun(m);if(m=1) break;printf(1nstep=%dn,i+1); return 0; 2、卖鸭子(10分)题目内容:编程调用递归函数。一个人赶着鸭子去每个村庄卖,每经过一个村子卖去所赶鸭子的一半又一只。这样他经过了7个村子后还剩2只鸭子,问他出发时共赶多少只鸭子?经过每个村子时依次卖出多少只鸭子?输入格式:无输出格式:出发时总鸭子数每个村子卖出鸭子数输入样例:无输出样例:(不是结果,仅表示格式)sum=25回车sell=8,sell=4,回车时间限制:500ms内存限制:32000kbCode:#include int fun(int i)int sum;i。

5、f(i=7) sum=2;else sum=(fun(i+1)+1)*2;return sum;int main() int i;printf(sum=%dn,fun(0);for(i=1;iint main()int num = 0;int s = 0;int i = 0;scanf(%d, &num);while(num) s += num%10; num = num/10; i+; printf(%dn, s ); return 0;第四周编程作业1、对称字符串(15分)题目内容:从键盘输入一个字符串,判断是否为对称字符串,若是输出“YES”,若不是输出“NO”输入格式:一个字符串输出格。

6、式:YES or NO输入样例1:abcdedcba回车输出样例1:YES回车输入样例2:1234432回车输出样例2:NO回车时间限制:500ms内存限制:32000kbCode:#include stdio.h#include string.hchar s100;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 a10,i;for( i=0; i0) printf(%dn,k);else printf(Non);return 0;2、成绩统计(10分)题目内容:。

7、有如下学生成绩表,第一列前4行为学生姓名,第一列最后一行为平均分,表中给定数据为学生成绩(每一列为同一门课)wanglei78908792lihong88918978zhangli84768375liuming88907183AVERAGE编程输出:学生姓名,每个学生的平均分,及各门课程平均分输入格式:无输出格式:学生姓名,每个学生的平均分(按行输出)各门课程平均分(按列输出)(若平均分为整数,则输出整数,若平均分为小数,则保留两位)输入样例:无输出样例:wanglei,0.00回车lihong,0.50回车zhangli,0.50回车liuming,80回车AVERAGE:4.50,6.75。

8、,2.50,2回车(仅作输出格式实例展示,不代表最终结果)时间限制:500ms内存限制:32000kbCode:#include stdio.h#include string.hint main()int i,j;float a44=78,90,87,92,88,91,89,78,84,76,83,75,88,90,71,83;float A4=0,B4=0;char n48=wanglei,lihong,zhangli,liuming;for(i=0;i#includetypedef struct Char_char ch;char intch;struct Char_ *next;CHAR。

9、_;int main(void)CHAR_ *node = NULL;CHAR_ *ch_ = NULL;CHAR_ *hear = NULL;char zimu = a;char panduanzimu;char record;for (; zimu != e; zimu+)ch_ = (CHAR_ *)malloc(sizeof(CHAR_);if (ch_ = NULL)exit(0);ch_-ch = zimu;ch_-next = NULL;if (node = NULL)node = ch_;elsenode-next = ch_;node = node-next;if (hear。

10、 = NULL)hear = node;for (zimu -= 2; zimu != (a - 1); zimu-)ch_ = (CHAR_ *)malloc(sizeof(CHAR_);if (ch_ = NULL)exit(0);ch_-ch = zimu;ch_-next = NULL;node-next = ch_;node = node-next;for (node = hear, zimu = 0; node != NULL; node = node-next, zimu+)node-intch = zimu;scanf(%c, &panduanzimu);node = hear。

11、;if (panduanzimu = 0&panduanzimu intch)printf(%c, node-ch);break;node = node-next;else if (panduanzimu = a&panduanzimu ch)record = node-intch;node = node-next;printf(%c, record);elseprintf(N);node = hear;while (node != NULL)hear = node-next;free(node);node = hear;return 0;2、链表合并(15分)题目内容:实现两个由单项链表存储。

12、的有序字母数据的合并,如有重复的则只保留一个。例如:给定a, c ,f, b, e, g合并后结果为a, b, c , e , f , g。输入格式:两个有序字母数据输出格式:合并后的字母数据输入样例1:a b c回车d e f回车输出样例1:a b c d e f回车输入样例2:e f g回车e g m回车输出样例2:e f g m回车时间限制:500ms内存限制:32000kbCode:#include #include typedef struct Node char data; struct Node *next; List,*LinkList; List* CreateLinkLis。

13、t() LinkList L = (LinkList)malloc(sizeof(List),P; P = L; char c; while(1) P-next = (LinkList)malloc(sizeof(List); P = P-next; scanf(%c%c,&(P-data),&c); if(c = n) break; P-next = NULL; return L; LinkList MergeLinkList(LinkList L1,LinkList L2) LinkList P1 = L1-next, P2 = L2-next; LinkList L = (LinkLis。

14、t)malloc(sizeof(List),P; P = L; while(P1 & P2) P-next = (LinkList)malloc(sizeof(List); P = P-next; if(P1-data P2-data) P-data = P2-data; P2 = P2-next; else if(P1-data data) P-data = P1-data; P1 = P1-next; else P-data = P1-data;P1 = P1-next; P2 = P2-next; while(P1) P-next = (LinkList)malloc(sizeof(Li。

15、st); P = P-next; P-data = P1-data; P1 = P1-next; while(P2) P-next = (LinkList)malloc(sizeof(List); P = P-next; P-data = P2-data; P2 = P2-next; P-next = 0; return L; void ShowList(LinkList L) LinkList P = L-next; while(P-next) printf(%c ,P-data); P = P-next; printf(%cn,P-data); int main() LinkList L1。

16、,L2,L3; L1 = CreateLinkList(); L2 = CreateLinkList(); L3 = MergeLinkList(L1,L2); ShowList(L3); return 0; 第九周编程作业1、解析字符串(15分)题目内容:输入一个字符串,要求将其中的字母n理解为回车符号n,模拟文件缓冲区读取的数据,并按替换后的数据流解析出其中包括的字符串。(即通过n分割两个字符串)输入格式:一个字符串输出格式:其中包括的字符串输入样例:abcnde回车输出样例:abc回车de回车时间限制:500ms内存限制:32000kbCode:#include #include #in。

17、clude int main() int i,j,k; char a100; gets(a);k=strlen(a);printf(%c,a0);for(i=1;i #include void reverse(char str,int start,int end) char t;if(end=strlen(str) reverse(str,start,end-1); else if(start #include int main() char op; int i,a,b; scanf(%d%c%d,&a,&op,&b); switch(op) case +:printf(%d,a+b);bre。

18、ak; case -:printf(%d,a-b);break; case *:printf(%d,a*b);break; case /:printf(%d,a/b);break; case %:printf(%d,a%b);break; default:break; return 0; 2、递归的方法计算含多个运算符的四则运算表达式字符串的值(15分)题目内容:请在上一题的基础上,采用递归的方法,计算含多个运算符的四则运算表达式字符串的值(无括号,但要考虑优先级)输入格式:多个运算符的四则运算表达式字符串输出格式:运算结果输入样例:3*2+3输出样例:9时间限制:500ms内存限制:3200。

19、0kbCode:#include #include int main() static char op100; static int i,j,k,s,p100; scanf(%d,&s); p0=s; for(i=0;1;i+) scanf(%c,&opi); if(opi=n) break; scanf(%d,&pi+1); for(j=0;ji;j+) if(opj=*|opj=/) if(opj=*) pj*=pj+1; for(k=j;ki-1;k+) opk=opk+1; pk+1=pk+2; else pj/=pj+1; for(k=j;ki-1;k+) opk=opk+1; pk+1=pk+2; i-;j-; for(j=0;ji;j+) if(opj=+|opj=-) if(opj=+) pj+=pj+1; for(k=j;ki-1;k+) opk=opk+1; pk+1=pk+2; else pj-=pj+1; for(k=j;ki-1;k+)opk=opk+1; pk+1=pk+2; i-;j-; printf(%d,p0); 27欢迎下载。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值