高级语言程序设计C上海理工大学计算机基础教研室2010年11月#includestdio.hmain(){inta,b,m,n;scanf(“%d%d”,&a,&b);m=1;n=1;if(a0)m=m+n;if(ab)n=2*m;elseif(a==b)n=5;elsen=m+1;printf(“m=%dn=%d\n”,m,n);}2)以下程序实现加、减、乘、除四则运算,请填空。(将修改后程序保存到学号文件夹下,文件名为shiyan2_2.c)#includestdio.hmain(){inta,b,d;charch;printf(Pleaseinputaexpression:);scanf(%d%c%d,);switch(ch){case'+':d=a+b;printf(%d+%d=%d\n,a,b,d);break;case'-':d=a-b;printf(%d-%d=%d\n,a,b,d);break;case'*':d=a*b;printf(%d*%d=%d\n,a,b,d);break;case'/':if()printf(Divisoriszero\n);elseprintf(%d/%d=%f\n,a,b,()a/b);/*强制类型转换*/break;default:printf(InputOperatorerror!\n);}}&a,&ch,&bb=0float#includestdio.hvoidmain(){intn,r;printf(“inputainteger:”);scanf(“%d”,&n);while(n!=0){r=n/10;printf(“%d”,r);n=n%10;}printf(“\n”);}r=n%10;n=n/10;#includestdio.hvoidmain(){inti,j;for(i=0;i4;i++){for(j=0;j=20;j++)printf(\n);for(j=0;j2*i+1;j++)printf(*);}}(3)下面的程序将输出如下的图形,要求顶端的*定位在第21字符位置,请改错。****************for(j=0;j=20-i;j++)printf();printf(\n);#includestdio.hvoidmain(){inti,j;for(i=0;___________________;i++){j=i*10+6;if(________________________)continue;printf(%d\n,j);}}(5)程序填空下面程序的功能是:输出100以内能被3整除且个位数为6的所有整数。i10j%3!=0(6)下面程序的功能是计算1-3+5-7+…-99+101的值,请填空。#includestdio.hvoidmain(){inti,t=1,s=0;for(i=1;i=101;i+=2){_________;s=s+t;________________;}printf(“%d\n”,s);}t=t*i;t=-t/i#includestdio.hvoidmain(){intn,i,j,k;n=0;for(i=1;i=9;i++)for(k=0;k=8;__________)if(k!=i)for(j=0;j=9;j++)if(_______________)n++;printf(“n=%d\n”,n);}(7)下面程序的功能是统计用数字0~9可以组成多少个没有重复的3位偶数,请填空。k+=2j!=i&&j!=k#includestdio.hvoidmain(){floate,t;intk,n;printf(“inputn=”);scanf(“%d”,&n);e=1;t=1;for(k=1;k=n;k++){t=t*k;e=e+1.0/t;}printf(“e=%f\n”,e);}(8)编程题利用公式e=1+1/1!+1/2!+1/3!+…+1/n!,求e值。(9)编写一个程序,输入若干个整数,以-1标记结束,输出其中的最大数和最小数。voidmain(){intn,min,max,first=1;printf(“Pleaseinput:”);while(1){scanf(“%d”,&n);if(n==-1)break;if(first){first=0;min=max=n;}else{if(maxn)max=n;elseif(nmin)min=n;}}printf(“Max=%d,Min=%d\n”,max,min);}voidmain(){intn,min,max,i=0,j,a[50];printf(“Pleaseinput:”);do{scanf(“%d”,&n);a[i++]=n;}while(n!=-1)min=max=a[0];for(j=1;ji;j++){if(maxa[j])max=a[j];elseif(a[j]min)min=a[j];}printf(“Max=%d,Min=%d\n”,max,min);}(10)编写一个程序,输出所有这样的三位数:这个三位数本身恰好等于其每个数字的立方和(如153=13+53+33)#includestdio.hvoidmain(){inti,a,b,c;for(i=100;i=999;i++){c=i%10;b=i/10%10;a=i/100;if(a*a*a+b*b*b+c*c*c==i)printf(“%4d”,i);}}改错题下列程序的功能为:从键盘上输入123,输出结果是54656。请纠正程序中存在错误,使程序实现其功能。#includestdio.hmain(){intc;while(c=getchar()!='\n'){switch(c-1){case'0':case'1':putchar(c+4);case'2':putchar(c+3);case'3':putchar(c+2);case'4':putchar(c+1);}}printf(\n);}改错题下列程序的功能为:从键盘上输入123,输出结果是54656。请纠正程序中存在错误,使程序实现其功能。#includestdio.hmain(){charc;while((c=getchar())!='\n'){switch(c-1){case'0':case'1':putchar(c+4);case'2':putchar(c+3);break;case'3':putchar(c+2);case'4':putchar(c+1);}}printf(\n);}#includestdio.hmain(){intday,x1,x2;day=0;x1=1020;while(_________){x2=__________;x1=x2;day++;}printf(“day=%d\n”,day);}下列程序的功能为:计算1020个西瓜几天后能卖完(第一天卖一半多两个,以后每天卖剩的一半多两个);请填写适当的符号或语句,使程序实现其功能.x0x1/2-2下列程序的功能为:找出做好事的人,案例情景为:有4位好友,其中之一位干了一件好事,不留名,记者来查此事,问4位,他们的话如下:A:不是我B:是CC:是DD:他胡说已知3个人说真话,一个人说假话,现在根据以上信息编程找出做了好事的人。提示:第一步:被测者从1—4第二步:将被测者代入表达式第三步:判断3个表达式为真吗?是的则打印结果程序结束。不是,判断是否全测完,不是转第一步,是打印未找到,程序结束。完成下面的程序。请填写适当的符号或语句,使程序实现其功能。#includestdio.hmain(){intk=0,sum=0,g=0;charman='';for(k=1;k=4&&_____________;k++){man=64+k;sum=(man!='A')+(man=='C')+__________________;if(_______________){clrscr();printf(\nman=%c\n,64+k);g=1;}}if(g!=1)printf(can'tfound!);getch();}g==10men==’D’+men!=’D’sum==3#includestdio.hmain(){intn,k;floatscore,sum,ave;sum=0.0;for(n=1;n=10;n++){for(k=1;k=4;k++){scanf(%f,&score);sum+=score;}ave=sum/4.0;printf(NO%d,%f\n,n,ave);}}改错题下列程序的功能为:按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,请纠正程序中存在错误,使程序实现其功能。#includestdio.hmain(){intn,k;floatscore,sum,ave;for(n=1;n=10;n++){sum=0.0;for(k=1;k=4;k++){scanf(%f,&score);sum+=score;}ave=sum/4.0;printf(NO%d,%f\n,n,ave);}}改错题下列程序的功能为:按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,请纠正程序中存在错误,使程序实现其功能。#includestdio.hmain(){inti,j,n,k;scanf(%d,&n);for(k=-1,i=1;i=n;i++){for(j=1;__________;j++)printf(%4c,'');for(j=1;_______;j++)printf(%4d,k=_____________);printf(\n);}}下列程序的功能为:用“奇数”构成的三角形,行数n从键盘输入。若n为5时,结果如图4-3所示,请填写适当的符号或语句,使程序实现其功能。1357911131517192123252729j4j=ik+2