学生课外上机练习题目 下载本文

}

case 9:x=y0;y=x0;break; }

printf(\n”,x,y); return 0;

38. 笑笑作为数学课代表,每次考试后,数学老师都会让他统计成绩,老师并不关心具体某个人的成绩,而只关心参加考试的人数、平均成绩、最低分和最高分。 #include int main() {

int n=0;;

double score,tot=0,min=0,max=0; scanf(\ while(score>=0) {

n++;

tot=tot+score;

if(min>score) min=score; if(max

if(n==0)

printf(\ else { }

printf(\学生人数=%d\\n\

printf(\学生的平均成绩=%.2lf\\n\ printf(\最高分=%lf\\n\ printf(\最低分=%lf\\n\ }

return 0;

39. 爱因斯坦走楼梯:有一条长阶梯,若每步跨2阶,则最后剩1阶;若每步跨3阶,则最后剩2阶;若每步跨5阶,则最后剩4阶;若每步跨6阶,则最后剩5阶;若每步跨7阶,则最后正好一阶不剩;问该楼梯有多少阶? #include int main() {

int n=7;

while(!((n%2==1)&&(n%3==2)&&(n%5==4)&&(n%6==5))) n=n+7;

printf(“%d\\n”,n); return 0;

}

40. 如果一个正整数是素数,它的反位数也是素数,这称这样的数为绝对素数 ,求是正绝对素数的所有两位数。 #include #include int main() {

int i,j,k,m,flag1=0,flag2=0; for(i=10;i<100;i++) {

m=sqrt(i);

for(j=2;j<=m;j++) if(i%j==0) {

flag1=0; break; }

if(j>m) flag1=1;

if(flag1==1)

{

k=(i)*10+i/10; m=sqrt(k);

for(j=2;j<=m;j++) if(k%j==0) {

flag2=0; break; }

if(j>m) flag2=1; }

if(flag1*flag2==1) printf(“%d “,i);

}

return 0; }

41. 输出10000以内的所有完数(这个数正好等于它的所有真因子的和) #include int main() {

int i,j,s;

for(i=1;i<=10000;i++) {

s=0;

}

for(j=1;j

printf(“%d “,i); }

return 0;

42. 求4位数以内的相亲数(两个数i和s为相亲数是指i的真因子和为s,而s的真因子和为i)

#include int main() {

int i,s1,s2,j;

for(i=1;i<10000;i++) {

s1=0;

for(j=1;j

for(j=1;j

printf(“%d “,i); }

return 0; }

43. 谁是偷盗者问题:甲、乙、丙、丁4人为偷盗嫌疑犯,只有一个是真正的偷盗者,在审讯过程,四人都有可能说真话或假话。 甲:乙没有偷、丁偷的 乙:我没有偷,丙偷的 丙:甲没有偷,乙偷的 丁:我没有偷

请编写一个程序,推断谁是偷盗者 #include int main() {

int a,b,c,d;

for(a=0;a<=1;a++) for(b=0;b<=1;b++) for(c=0;c<=1;c++) for(d=0;d<=1;d++)

if(a+b+c+d==1&&((!b&&d)||(b&&!d))==1&&((!b&&c)||(b&&!c))==1&&((!a&&b)||(a&&!b))==1&&(d||!d)==1) {

if (a==1)

printf(\甲是小偷!\\n\else if(b==1)

printf(\乙是小偷!\\n\else if(c==1)

printf(\丙是小偷!\\n\else if(d==1)

printf(\丁是小偷!\\n\ }

return 0; }

44. 定义这样一个整数函数f(n),当n是偶数时,f(n)=n/2;当n是奇数时,f(n)=(3n+1)/2。这个猜想是说:对于任意的整数n,计算f(n),f(f(n)),f(f(f(n))),…….,若干步之后,总会得到1。输出对于给定的n,求出数字序列中第一次出现1的位置。 #include int main() {

int n,f,k=0; do {

scanf(“%d”,&n); }while(n<=0); do {

if(n%2==0) f=n/2; else

f=(3*n+1)/2; n=f; k++;

printf(“%d,”,f); }while(f!=1);

printf(“\\n%d\\n”,k); return 0; }

45.在歌星大奖赛中,有10个评委为参赛的选手打分,分数为1~100分。选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均值。请编写一个程序实现。

46.有大、中、小三个酒桶,分别能装A斤、B斤和C斤酒,其中A、B、C均为整数,