青海大学mooc测验和作业 下载本文

输入样例: 2013 3 11 输出样例: 1

输入样例: 2013 13 15 输出样例: month is error. 输入样例: 2013 3 32 输出样例: day is error.

源程序:

#include int main() {

int y,m,d,c,w;

scanf(\

if(y<1900) printf(\

else if(m<1 || m>12) printf(\ else if(d>31 || d<1) printf(\else { c=y/100; y=y0; if(m==1) m=13; if(m==2) m=14;

w=c/4-2*c+y+y/4+13*(m+1)/5+d-1; w=w%7;

if(w<0) w=(w+14)%7; printf(\} return 0; }

4求最后3位数值(10分)

题目内容:

小明在中学会求一个数的 n 次方了,但计算机还不会,请你来编写一个程序吧。由于计算机比较“笨”,所以我们编写程序的功能不用太强,只要能算出 a 的 n 次方的最后 3 位数就可以了。

输入格式:

a 和 n 的值。假设 a<=150 。 输出格式:

求 a 的 n 次方的最后 3 位数。

提示:再想一想,你的方法对吗?你用的是什么数据类型? 输入样例: 10 0

输出样例:

The last 3 numbers is 1.

源程序:

#include int main() { int a,n,i,x; int p=1;

scanf(\ if(n!=0 && a<=150) { for(i=1;i<=n;i++) p=p00*a; x=p00;

printf(\ }

else printf(\ return 0; }

第五周编程作业

1锻炼身体吧(10分)

题目内容:

沫沫,灰灰和渣渣去锻炼身体,如果对他们跑步的距离分别只计整数 a、 b、 c,由于他们身高的差距,造成了 a<=b<=c,并且渣渣跑了N米之后就再也跑不动了。但是,按照他们事先的约定: 只有当 c*c==a*a+b*b 时,他们的锻炼才有效果。

现在他们三个人想知道,如果渣渣的极限N已知,那么有多少种有锻炼效果的跑步方案(即a, b, c有多少种可能的取值)。 输入格式:

一个整数N,表示渣渣的体力极限, N <= 5000。 输出格式:

一个整数,代表他们跑步方案的个数。

Hint:对于输入N=5,有方案 a=3, b=4, c=5, 共一种。

输入样例: 5

输出样例: 1

源程序:

#include int main() { }

int n,a,b,c,m; scanf(\m=0;

for(c=1;c<=n;c++)

for(a=1;a<=n;a++)

for(b=1;b<=n;b++)

if(c*c==a*a+b*b && a<=b) m++;

printf(\return 0;

2寻找特殊偶数(10分)

题目内容:

有一种特殊偶数,它每一位上的数字都两两不相同。我们现在需要找出四位数中某一区间内的这类偶数。 输入格式:

所要寻找的四位偶数的范围。每组输入有两个数字:第一个数字是最小范围;第二个数字是最大范围。如果输入遇到0,输入结束。 输出格式:

列出此范围内的所有特殊偶数,并且列出此范围内特殊偶数的个数。 输入样例: 3000 3020 6040 6090 0 0 输出样例:

3012 3014 3016 3018 counter=4

6042 6048 6052 6054 6058 6072 6074 6078 6082 6084 counter=10 输入样例: 9 101 87 -1 0 0

输出样例: Error Error

源程序:

#include int main() {

int m,n,i,counter; int a,b,c,d; do{

scanf(\

if(m!=0 && n!=0 && (m>=1000 && m<10000) && (n>=1000 && n<10000) && m

for(i=m;i<=n;i++)

if(i%2==0) }

else if(m==0 && n==0) return 0; else

printf(\}while(1);

{ a=i/1000;b=i00/100;c=i0/10;d=i; if(a!=b && a!=c && a!=d && b!=c && b!=d && c!=d) }

printf(\

{ counter++; printf(\

return 0; }

3求最小 m 值(10分)

题目内容:

求满足下列不等式的最小 m。

1 + 2 + 3 + 4 + ...... + m ≥ n

例如:n=100,当 m =14 时,满足:1+2+3+4+...+13=91<100,而 1+2+3+4+......+14=105>100。 输入格式: n

输出格式: m

输入样例:

100 输出样例: 14

源程序:

#include int main() {

int n,m,s=0; scanf(\for(m=1;s

s=s+m;

printf(\return 0;

}

第六周作业

1? ? ? ? 单选(2分)求取满足式 的n,正确的语句是 A. for(i=1,s=0;(s=s+i*i++)<=1000;n=i) B. for(i=1,s=0;(s=s+i*++i)<=1000;n=i) C. for(i=1,s=0;(s=s+i*i)<=1000;n=++i) D. for(i=1,s=0;(s=s+i*i)<=1000;n=i++) 2? ? ? ? 单选(2分)下面的for语句 1. for(x=0,y=10;(y>0)&&(x<4);x++,y-- ) A. 循环执行3次 B. 循环执行4次 C. 是无限循环 D. 循环次数不定 3? ? 单选(2分) 已知int i=1; 执行语句while (i++<4) ;后,变量i的值为 A. 5 B. 3