《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(mch = zimu; ch_ next = ULL; if (node = ULL) node = ch_; else node next = ch_; node = node next; if (hear = ULL) hear = node; for (zimu = 2; zimu != (a 1); zimu ) ch_ = (CHAR_ *)。
3、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; if (panduanzimu = 0 break; node = node next; else if (panduanzimu = a node = nod。
4、e 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 , 。 输入格式: 两个 序 母数 输出格式: 合并 的 母数 输入样例1: a b c回车 d e f回车 输出样例1: a b c d e f回车 输入样例2: e。
5、 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 c; hile(1) P next = (LinkList)malloc(sizeof(List); P = P next; scanf(%c%c, if(c =。
6、 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 data = P2 data; P2 = P2 next; else if(P1 data data) P data = P1 data; P1 = P1 next; e。
7、lse 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 data; P2 = P2 next; P next = 0; return L; void ho List(LinkList L) LinkList P = L ne。
8、xt; 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分) 题目内容: 输入一个 , 求 其中的 母n理解回车n,模拟文件缓冲区 读取的数 ,并 替换 的数 流解析出其中包括的 。(即通n分割两个 ) 输入格式: 一个 输出格式: 。
9、其中包括的 输入样例: 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;i=strlen(str) reverse(str,start,end 1); else if(startend) t=strstart; strstart=strend; strend=t; reverse(str,start 1,end 1); int 。
10、main( ) char str100; int start, end; ets(str); start=0;end=strlen(str); reverse(str,start,end); printf(%sn, str); return 0; 第十周编程作业 1、基本 达式(15分) 题目内容: 请结合C语言语 知识及 编译程的理解,完成一个 含一个 的基本 达式 的计 。 输入格式: 基本 达式 输出格式: 结果 输入样例: 1 2 输出样例: 3 时间限制:500ms内存限制:32000kb Code: #include #include int main() char op; int。
11、 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; case %:printf(%d,a%b);break; default:break; return 0; 2、 的 计 含个 的 达式 的”(15分) 题目内容: 请在上一题的基础上,采用 的 ,计 含个 的 达式 的” ( 括,但 考虑优先级) 输入格式: 个 的 达式 输出格式: 结果 输入样例: 。
12、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(%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);。