C语言程序设计下mooc答案.pdf

上传人:小** 文档编号:13285429 上传时间:2020-06-11 格式:PDF 页数:27 大小:111.12KB
收藏 版权申诉 举报 下载
C语言程序设计下mooc答案.pdf_第1页
第1页 / 共27页
C语言程序设计下mooc答案.pdf_第2页
第2页 / 共27页
C语言程序设计下mooc答案.pdf_第3页
第3页 / 共27页
资源描述:

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

1、2016.03.2806.30 北京理工大学 MOOC C语言程序设计(下)网上作业答案 第一周编程作业 1、求最大公约数和最小公倍数(15分) 题目内容: 编写程序,在主函数中输入两个正整数 a,b,调用两个函数 fun1() 和 fun2(),分别 求 a 和 b 的最大公约数和最小公倍数,在主函数中输出结果。 输入格式: 两个正整数 输出格式: 最大公约数和最小公倍数 输入样例: 12,40回车 输出样例: 最大公约数:4回车 最小公倍数:120回车 时间限制:500ms内存限制:32000kb Code: #include int fun1(int m,int n) int r; r=

2、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(mn) t=m;m=n;n=t; printf(最大公约数:%dn,fun1(m,n); printf(最小公倍数:%dn,fun2(m,n); return 0; 2、排序并插入(15分) 题目内容: 编写程序,在主函数中 一个 10个 的整 一 数 ,用 输入 个数 ,调 用函数, 数 小 大排序 ,在函数中输入一个数,插入 数 中正 的 ,并输出

3、。 输入格式: 个整数和1个整数 输出格式: 10个整数 输入样例: 2,3,1,5,6, 6,8 ,31, 0回车 回车 输出样例: 1,2,3,5,6, ,31, 6,8 , 0回车 时间限制:500ms内存限制:32000kb Code: #include int main() int t, ,i,n10; for(i=0; i ; i ) scanf(%d, if(i8) scanf(,); scanf(%d, for(i=0;i ;i ) for( =0; n 1) t = n ; n = n 1; n 1 = t; for(i=0;i10;i ) printf(%d,ni); if

4、(i ) printf(,); return 0; 第 周编程作业 1、最大公约数(15分) 题目内容: 输入两个整数m,n,用 计 两个数的最大公约数。 输入格式: 输入两个整数m,n 输出格式: 最大公约数 输入样例: 12,40回车 输出样例: 4回车 时间限制:500ms内存限制:32000kb Code: #include int cd(int m,int n) int r; r=m%n; return r=0?n: cd(n,r); int main() int t,m,n; scanf(%d,%d, if(m0), 求1 3 5 . (2*n 1) 的和 输入格式: 输入整数n

5、输出格式: 输出和 输入样例: 5回车 输出样例: 25回车 时间限制:500ms内存限制:32000kb Code: #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;im;i ) t=t fun(i 1); printf(%dn,t); return 0; 第周编程作业 1、 数(10分) 题目内容: 编程 输入一个数,currency1数,“2fi 数,“fl3 1。 限 , 数”1。输出 数1和 的”。 输入

6、格式: 输入一个数 输出格式: 输出 数1和 的” 输入样例: 22回车 输出样例: 22,11,34,1 ,52,26,13,40,20,10,5,16,8,4,2,1回车 step=16回车 时间限制:500ms内存限制:32000kb Code: #include 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, for(i=1;i ) printf(%d,m); m=fun(m); if(m=1) break; printf(1nstep=%dn,i 1); ret

7、urn 0; 2、 (10分) 题目内容: 编程调用 函数。一个 个 ,一个 的一 一。样 个 2 , 出 时 个 时 出 输入格式: 输出格式: 出 时 数 个 出 数 输入样例: 输出样例:( 结果, 格式) sum=25回车 sell=8,sell=4,回车 时间限制:500ms内存限制:32000kb Code: #include int fun(int i) int sum; if(i= ) sum=2; else sum=(fun(i 1) 1)*2; return sum; int main() int i; printf(sum=%dn,fun(0); for(i=1;i= ;

8、i )printf(sell=%d,fun(i) 2); printf(n); return 0; 3、输出 数 和(10分) 题目内容: 编程调用 函数,求输入一个数,输出个数的 数 和。 输入格式: 输入一个数 输出格式: 输出个数的 数 和 输入样例: 2354回车 输出样例: 14回车 时间限制:500ms内存限制:32000kb Code: #include int main() int num = 0; int s = 0; int i = 0; scanf(%d, hile(num) s = num%10; num = num/10; i ; printf(%dn, s ); r

9、eturn 0; 第 周编程作业 1、 (15分) 题目内容: 输入一个 , , 输出 , 输出 O 输入格式: 一个 输出格式: or O 输入样例1: abcdedcba回车 输出样例1: 回车 输入样例2: 1234432回车 输出样例2: O回车 时间限制:500ms内存限制:32000kb Code: #include stdio.h #include strin .h char s100; int hui en(int a,int b) if(a=b ba) return 1; else if(sa=sb) return hui en(a 1,b 1); else return 0

10、; int main() int len th; int result ; ets(s); len th=strlen(s); result=hui en(0,len th 1); if(result=1) printf(n); else printf( On); 2、排序(10分) 题目内容: 用 , 一 数 int a10 中 小 大 序输出。 输入格式: 10个整数,格 输出格式: 排序 的10个数, 输入样例: 12 34 56 43 8 81 11 33 0回车 输出样例: ,11,12,33,34,43,56,81,8 , 0回车 时间限制:500ms内存限制:32000kb Co

11、de: #include stdio.h #include strin .h fun (pa,n) int *pa,n; int i, ,t; for(i=0;in 1;i ) for( =i 1; *(pa ) t=*(pa i); *(pa i)=*(pa ); *(pa )=t; int main () int a10,i; for( i=0; i10;i ) scanf(%d, fun(a,10); for(i=0;i ;i ) printf(%d,ai); printf(%dn,a ); return 0; 3、数(15分) 题目内容: 用 ,在一个一 数 int a10的 中, 的

12、数, 输出 数, ,输出 o。 输入格式: 第一 :10个整数,格 第 : 的数 输出格式: 的数or o 输入样例1: 11 22 43 56 8 0 6 4 2 10回车 43回车 输出样例1: 43回车 输入样例2: 1 8 3 4 5 6 2 1 回车 10回车 输出样例2: o回车 时间限制:500ms内存限制:32000kb Code: #include stdio.h #include strin .h int main() int b,i,a10,*p=a; for(i=0;i10;i ) scanf(%d, scanf(%d, for(i=0;i ) if(b=*(p i)

13、printf(%dn,*(p i); break; if(i= ) printf( on); break; return 0; 第五周编程作业 1 输出 学生成绩(15分) 题目内容: 输入3个同学4门课的成绩,输出 同学的成绩和平均分。 输入格式: 输入3个同学4门课的成绩 输出格式: 输出 同学的成绩和平均分 输入样例: 8 8 80 6 88 8 5 0 2 100 8 回车 1回车 输出样例: 8 8 80 6回车 80. 5回车 时间限制:500ms内存限制:32000kb Code: #include stdio.h #include strin .h int main() int

14、 n,i, ,a34; float x=0; for(i=0;i3;i ) for( =0; 4; ) scanf(%d, scanf(%d, for(i=0;i4;i ) x=x an 1i; x=x/4; for(i=0;i4;i ) printf(%d,an 1i); if(i!=3) printf( ); printf(n); printf(% n,x); return 0; 2、成绩排序(10分) 题目内容: 输入3个同学4门课的成绩, 其 平均分 高 低排序输出。 输入格式: 输入3个同学4门课的成绩 输出格式: 平均分 高 低排序输出 输入样例: 8 8 80 6 88 8 5

15、0 2 100 8 回车 输出样例: , 2,100,8 回车 88, 8, 5, 0回车 8 , 8,80, 6回车 时间限制:500ms内存限制:32000kb Code: #include stdio.h #include strin .h int main() int m,i, ,k,a34,b3; for(i=0;i3;i ) for( =0; 4; ) scanf(%d, for(i=0;i3;i ) bi=0; for( =0; 4; ) bi =ai ; for(i=0;i2;i ) for( =i 1; 3; ) if (bib ) m=bi;bi=b ;b =m; for(

16、k=0;k4;k ) m=aik;aik=a k;a k=m; for(i=0;i3;i ) for( =0; 3; ) printf(%d,ai ); printf(%dn,ai ); return 0; 第六周编程作业 1、统计 出 数(10分) 题目内容: 输入两个 ,输出第 个 在第一个 中出 的 数。果 ,输出 o 。 输入格式: 输入两个 输出格式: 输出第 个 在第一个 中出 的 数。 果 ,输出 o 输入样例1: This is his book回车 is回车 输出样例1: 3回车 输入样例2: This is my book回车 at回车 输出样例2: o回车 时间限制:50

17、0ms内存限制:32000kb Code: #include stdio.h #include strin .h int main() int m,n,i, ; char a100,b100; int k=0; char *p1=a,*p2=b; ets(a); ets(b); m=strlen(a); n=strlen(b); for(i=0;im n;i ) if(*(p1 i)=*(p2) for( =1; 0) printf(%dn,k); else printf( on); return 0; 2、成绩统计(10分) 题目内容: 下学生成绩 ,第一列前4 学生姓名,第一列最 一 平均

18、分, 中 数 学生成绩(一列同一门课) an lei 8 0 8 2 lihon 88 1 8 8 zhan li 84 6 83 5 liumin 88 0 1 83 AVRAG 编程输出:学生姓名,个学生的平均分,及 门课程平均分 输入格式: 输出格式: 学生姓名,个学生的平均分( 输出) 门课程平均分( 列输出) (平均分整数,输出整数,平均分小数,保留两 ) 输入样例: 输出样例: an lei,0.00回车 lihon ,0.50回车 zhan li,0.50回车 liumin ,80回车 AVRAG:4.50,6. 5,2.50,2回车 ( 作输出格式 例展 , 代 最终结果) 时

19、间限制:500ms内存限制:32000kb Code: #include stdio.h #include strin .h int main() int i, ; float a44= 8, 0,8 , 2,88, 1,8 , 8,84, 6,83, 5,88, 0, 1,83; float A4=0,B4=0; char n48= an lei,lihon ,zhan li,liumin ; for(i=0;i4;i ) for( =0; 4; ) Ai=Ai ai ; Ai=Ai/4; for(i=0;i4;i ) for( =0; 4; ) Bi=Bi a i; Bi=Bi/4; fo

20、r(i=0;i4;i ) if(Ai=(int)Ai) printf(%s,%dn,ni,(int)Ai); else printf(%s,%.2fn,ni,Ai); printf(AVRAG:); for(i=0;i4;i ) if(Bi=(int)Bi) printf(%d,(int)Bi); else printf(%.2f,Bi); if(i!=3) printf(,); printf(n); return 0; 第七周编程作业 1、 母 密 照 (15分) 题目内容: 先 一张 母 密 照 。 需 密的一 文 输入 密程序,程序根 密 中的 应关系,很简单地 输入的文 密输出, 于

21、中未出 的 密。 母 密 照 输入 a b c d e i k ; 输出 d k ; i a b c e 输入格式: 母 输出格式: 母 输入样例1: abc回车 输出样例1: d k回车 输入样例2: de回车 输出样例2: ;i回车 时间限制:500ms内存限制:32000kb Code: #include stdio.h #include strin .h struct m char x; char y; ; int main() int i, ; char c20; struct m =a,d,b, ,c,k,d,;,e,i,i,a, k,b,;,c, ,e; ets(c); for(

22、i=0;ci!=0;i ) for( =0; ) if(ci= .x) printf(%c, .y);break; if( =8) printf(%c,ci);break; return 0; 2、学生成绩(15分) 题目内容: 结构体,存储学生学和门课成绩及平均分,初始化成绩下 1, 0,80, 0,2,85, 5, 5,3,88,84,65,输入学,输出平均分,输入max,输 出最高分id。 输入格式: 输入学或max 输出格式: 输出平均分或最高分id 输入样例1: 1回车 输出样例1: 80回车 输入样例2: max回车 输出样例2: 2回车 输入样例3: 4回车 输出样例3: 0回车

23、 时间限制:500ms内存限制:32000kb Code: #include stdio.h #include strin .h struct m int id; float mark3; ; int main() int a4,i, ; struct m stu4=1, 0,80, 0,2,85, 5, 5,3,88,84,65; float ave3=0; for(i=0;i3;i ) for( =0; ch = zimu; ch_ next = ULL; if (node = ULL) node = ch_; else node next = ch_; node = node next;

24、 if (hear = ULL) hear = node; for (zimu = 2; zimu != (a 1); zimu ) ch_ = (CHAR_ *)malloc(sizeof(CHAR_); if (ch_ = ULL) exit(0); ch_ ch = zimu; ch_ next = ULL; node next = ch_; node = node next; for (node = hear, zimu = 0; node != ULL; node = node next, zimu ) node intch = zimu; scanf(%c, node = hear

25、; if (panduanzimu = 0 break; node = node next; else if (panduanzimu = a node = node next; printf(%c, record); else printf( ); node = hear; hile (node != ULL) hear = node next; free(node); node = hear; return 0; 2、链 合并(15分) 题目内容: 两个由单项链 存储的 序 母数 的合并, 重复的保留一个。 例: a, c ,f, b, e, 合并 结果a, b, c , e , f ,

26、。 输入格式: 两个 序 母数 输出格式: 合并 的 母数 输入样例1: a b c回车 d e f回车 输出样例1: a b c d e f回车 输入样例2: e f 回车 e m回车 输出样例2: e f m回车 时间限制:500ms内存限制:32000kb Code: #include #include typedef struct ode char data; struct ode *next; List,*LinkList; List* CreateLinkList() LinkList L = (LinkList)malloc(sizeof(List),P; P = L; char

27、 c; hile(1) P next = (LinkList)malloc(sizeof(List); P = P next; scanf(%c%c, if(c = n) break; P next = ULL; return L; LinkList Mer eLinkList(LinkList L1,LinkList L2) LinkList P1 = L1 next, P2 = L2 next; LinkList L = (LinkList)malloc(sizeof(List),P; P = L; hile(P1 P = P next; if(P1 data P2 data) P dat

28、a = 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; hile(P1) P next = (LinkList)malloc(sizeof(List); P = P next; P data = P1 data; P1 = P1 next; hile(P2) P next = (LinkList)malloc(sizeof(List); P = P next; P data = P2 da

29、ta; P2 = P2 next; P next = 0; return L; void ho List(LinkList L) LinkList P = L next; hile(P next) printf(%c ,P data); P = P next; printf(%cn,P data); int main() LinkList L1,L2,L3; L1 = CreateLinkList(); L2 = CreateLinkList(); L3 = Mer eLinkList(L1,L2); ho List(L3); return 0; 第九周编程作业 1、解析 (15分) 题目内容

30、: 输入一个 , 求 其中的 母n理解回车n,模拟文件缓冲区 读取的数 ,并 替换 的数 流解析出其中包括的 。(即通n分割两个 ) 输入格式: 一个 输出格式: 其中包括的 输入样例: abcnde回车 输出样例: abc回车 de回车 时间限制:500ms内存限制:32000kb Code: #include #include #include int main() int i, ,k; char a100; ets(a); k=strlen(a); printf(%c,a0); for(i=1;ik;i ) if(ai=n) if(ai 1!=n) printf(n); else pri

31、ntf(%c,ai); for(i=i 1;i=strlen(str) reverse(str,start,end 1); else if(startend) t=strstart; strstart=strend; strend=t; reverse(str,start 1,end 1); int main( ) char str100; int start, end; ets(str); start=0;end=strlen(str); reverse(str,start,end); printf(%sn, str); return 0; 第十周编程作业 1、基本 达式(15分) 题目内容

32、: 请结合C语言语 知识及 编译程的理解,完成一个 含一个 的基本 达式 的计 。 输入格式: 基本 达式 输出格式: 结果 输入样例: 1 2 输出样例: 3 时间限制:500ms内存限制:32000kb Code: #include #include int main() char op; int i,a,b; scanf(%d%c%d, s itch(op) case :printf(%d,a b);break; case :printf(%d,a b);break; case *:printf(%d,a*b);break; case /:printf(%d,a/b);break; ca

33、se %:printf(%d,a%b);break; default:break; return 0; 2、 的 计 含个 的 达式 的”(15分) 题目内容: 请在上一题的基础上,采用 的 ,计 含个 的 达式 的” ( 括,但 考虑优先级) 输入格式: 个 的 达式 输出格式: 结果 输入样例: 3*2 3 输出样例: 时间限制:500ms内存限制:32000kb Code: #include #include int main() static char op100; static int i, ,k,s,p100; scanf(%d, p0=s; for(i=0;1;i ) scanf

34、(%c, if(opi=n) break; scanf(%d, for( =0; i; ) if(op =* op =/) if(op =*) p *=p 1; for(k= ;ki 1;k ) opk=opk 1; pk 1=pk 2; else p /=p 1; for(k= ;ki 1;k ) opk=opk 1; pk 1=pk 2; i ; ; for( =0; i; ) if(op = op = ) if(op = ) p =p 1; for(k= ;ki 1;k ) opk=opk 1; pk 1=pk 2; else p =p 1; for(k= ;ki 1;k ) opk=opk 1; pk 1=pk 2; i ; ; printf(%d,p0);

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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