MOOC C语言下编程题答案参考V2.0(1)

发布时间 : 星期一 文章MOOC C语言下编程题答案参考V2.0(1)更新完毕开始阅读

MOOC C语言下编程题答案参考V2.0(已更正)

*分两栏布局

大部分比较简单,有难度的只有几题,做了标注“*”,建议想一下再参考

第一周编程作业

1求最大公约数和最小公倍数(15分)

#include int main () { int x,y,gcd(int,int),lcm(int,int); scanf(\ printf(\最大公约数:%d\\n最小公倍数:%d\}

int gcd(int a,int b) {

int t; if(a

int lcm(int m,int n) {return m*n/gcd(m,n);}

2排序并插入(15分)

#include int main () {

int x[20],i,j,t; scanf(\n%d\6],&x[7],&x[8],&x[9]); for(i=1;i<=9;i++) { for(j=0;j<=9-i;j++) {

if(x[j]>x[j+1]) { t=x[j+1]; x[j+1]=x[j]; x[j]=t; } } } printf(\%d\[9]); }

第二周编程作业

最大公约数(15分) #include int main () { int x,y,gcd(int,int); scanf(\ printf(\}

int gcd(int a,int b) {

int t; if(a

奇数求和(15分)

#include

int sum(int n) { if(n==1) return 1; else return n+sum(n-2); }

int main() {

int n; scanf(\

printf(\

}

第三周编程作业

巧算自然数

#include int main() {

int n,i,step=0; scanf(\ while(1) { if(n%2==0) { printf(\ n/=2; step++; } else if(n==1) { printf(\ step++; break; } else { printf(\ n=n*3+1; step++; } } printf(\}

*卖鸭子

#include

int duck(int village) { if(village==7) return 2; return (duck(village+1)+1)*2; }

int main() { int sum=duck(0); int sell=0; printf(\ for(int i=1;i<=7;i++) { sell = sum-duck(i); sum = duck(i); printf(\ } printf(\ return 0; }

输出各位数字之和 #include #include int sum(char *p,int l) { if(l==1) return p[0]-'0'; else return p[0]-'0'+sum(p+1,l-1); }

int main() { int len,r; char num[1000]; gets(num); len=strlen(num); r=sum(num,len); printf(\}

第四周编程作业

对称字符串

#include #include int main () { char str[1000],*s; int len,flag=1,i; gets(str); len=strlen(str);

s=str;

for(i=0;i

if(flag) printf(\ else printf(\

}

排序

#include int main() { int x[10],i,j,t; for(i=0;i<10;i++) scanf(\ for(i=0;i<9;i++) for(j=0;j<9-i;j++) { if(x[j]>x[j+1]) { t=x[j+1]; x[j+1]=x[j]; x[j]=t; } } for(i=0;i<9;i++) printf(\ printf(\}

查找数

#include int main() { int x[11],i,*p=x,flag=0; for(i=0;i<11;i++) scanf(\ for(i=0;i<10;i++) { if(p[i]==x[10]) {flag=1;break;}} if(flag) printf(\ else printf(\}

第五周编程作业

输出指定学生成绩

#include int main () {

int x[3][4],i,j,s; double r; for(i=0;i<3;i++) for(j=0;j<4;j++) scanf(\ scanf(\ s--; for(i=0;i<3;i++) printf(\ printf(\ if(((x[s][0]+x[s][1]+x[s][2]+x[s][3])%4)!=0) {

r=((double)x[s][0]+(double)x[s][1]+(double)x[s][2]+(double)x[s][3])/4; printf(\ } else

printf(\][3])/4); }

*成绩排序

#include void order(int(*p)[4]); int main() { int a[3][4],i,j; int(*p)[4];

for(i=0;i<3;i++) for(j=0;j<4;j++)

scanf(\ p=a; order(p); return 0; }

void order(int(*p)[4]) { int temp,k,j,i,b[]={0,0,0}; for(j=0;j<3;j++) for(i=0;i<4;i++) b[j]+=*(*(p+j)+i);

for(j=0;j<2;j++) for(i=j+1;i<3;i++)

{if(b[j]

for(j=0;j<3;j++) for(i=0;i<4;i++)

if(i!=3) printf(\ else printf(\}

第六周编程作业

统计字符串出现次数 #include int main() { char x[1000],c[100],*p=x; int i,j,k,counter=0; gets(x); getchar(); gets(c); while(*p!='0') { if(*p==c[0]) { for(i=0;p[i]==c[i]||c[i]!='0';i++); if(c[i]=='0') counter++; } p++; } if(counter>0) printf(\ else printf(\}

成绩统计

#include int main() {

printf(\

\\nzhangli,79.50\\nliuming,83\\nAVERAGE:84.50,86.75,82.50,82\\n\}

第七周编程作业

字母加密对照表 #include struct keyboard { char input; char output; };

struct keyboard translate[]= {

'a','d','b','w','c','k','d',';','e','i', 'i','a','k','b',';','c','w','e' };

int main() {

int i=0; char ch;

while((ch=getchar())!='\\n') { for(i=0;translate[i].input!=ch&&i<9;i++); if(i==9) printf(\ else printf(\ } printf(\} 学生成绩

#include struct grade { int number; int grade1; int grade2; int grade3; };

联系合同范文客服:xxxxx#qq.com(#替换为@)