C语言程序改错_第1页
C语言程序改错_第2页
C语言程序改错_第3页
C语言程序改错_第4页
C语言程序改错_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

〖第1题〗『程序改错』(5分)(题号:422)/*------------------------------------------------------【程序改错】--------------------------------------------------------题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。--------------------------------------------------------注意:不能够增添或删除程序行,也不能够改正程序的构造。------------------------------------------------------*/#include""main( ){/**********FOUND**********/longa,b,c,d,e,x,scanf("%ld",&x);a=x/10000;/**********FOUND**********/b=x/10000/1000;c=x%1000/100;d=x%100/10;e=x%10;/**********FOUND**********/if(a==0)printf("thereare5,%ld%ld%ld%ld%ld\n",e,d,c,b,a);elseif(b!=0)printf("thereare4,%ld%ld%ld%ld\n",e,d,c,b);elseif(c!=0)printf("thereare3,%ld%ld%ld\n",e,d,c);elseif(d!=0)printf("thereare2,%ld%ld\n",e,d);elseif(e!=0)printf("thereare1,%ld\n",e);getch( );}答案:1).longa,b,c,d,e,x;2).b=x%10000/1000;或b=x/1000%10;3).if(a!=0)或if(!a)〖第2题〗『程序改错』(5分)(题号:411)/*------------------------------------------------------【程序改错】--------------------------------------------------------题目:某个企业采纳公用电话传达数据,数据是四位的整数,在传达过程中是加密的,加密规则以下:每位数字都加上5,而后除以10的余数取代该位数字。再将重生成数据的第一位和第四位互换,第二位和第三位互换。举例:输入一个四位整数1234,则结果为:9876。--------------------------------------------------------注意:不能够增添或删除程序行,也不能够改正程序的构造。------------------------------------------------------*/#include""main( ){inta,i,aa[4],t;printf("输入一个四位整数:");/**********FOUND**********/scanf("%d",&a);aa[0]=a%10;/**********FOUND**********/aa[1]=a%100%10;aa[2]=a%1000/100;aa[3]=a/1000;/**********FOUND**********/for(i=0;i<=3;i++){aa[i]+=5;aa[i]%=10;}for(i=0;i<=3/2;i++){t=aa[i];aa[i]=aa[3-i];aa[3-i]=t;}for(i=3;i>=0;i--)printf("%d",aa[i]);getch( );}〖第1题〗『程序改错』(5分)(题号:253)/*------------------------------------------------------【程序改错】--------------------------------------------------------题目:输入10个数,要求输出这10个数的均匀值--------------------------------------------------------注意:不能够增添或删除程序行,也不能够改正程序的构造。------------------------------------------------------*/floataverage(floatarray[10]){inti;floataver,sum=array[0];/***********FOUND***********/for(i=0;i<10;i++)sum=sum+array[i];aver=sum/;return(aver);}main( ){/***********FOUND***********/intscore[10],aver;inti;printf("input10scores:\n");for(i=0;i<10;i++)/***********FOUND***********/scanf("%f",score);printf("\n");/***********FOUND***********/aver=average(score[10]);printf("averagescoreis%",aver);}答案:1).2).3).4).

for(i=1;i<10;i++)floatscore[10],aver;scanf("%f",&score[i]);aver=average(score);

for(i=1;i<=9;i++)或floataver,score[10];或scanf("%f",score+i);〖第2题〗『程序改错』(5分)(题号:414)/*------------------------------------------------------【程序改错】--------------------------------------------------------题目:输入一行字符,分别统计出此中英文字母、空格、数字和其余字符的个数。--------------------------------------------------------注意:不能够增添或删除程序行,也不能够改正程序的构造。------------------------------------------------------*/#include""main( ){charc;intletters=0,space=0,digit=0,others=0;printf("pleaseinputsomecharacters\n");/**********FOUND**********/while((c=getchar( ))=='\n'){/**********FOUND**********/if(c>='a'&&c<='z'&&c>='A'&&c<='Z')letters++;/**********FOUND**********/elseif(c=!'')space++;elseif(c>='0'&&c<='9')digit++;elseothers++;}printf("allinall:char=%dspace=%ddigit=%dothers=%d\n",letters,space,digit,others);}答案:1).

while((c=getchar( ))!='\n')2).if(c>='A'&&c<='Z')

c>='a'&&c<='z'||c>='A'&&c<='Z'或if(c<='z'&&c>='a'||

)

if(

c<='z'&&c>='a'

||3).

elseif(c=='')〖第3题〗『程序改错』(5分)(题号:250)/*------------------------------------------------------【程序改错】--------------------------------------------------------题目:以下程序输出前六行杨辉三角形,即111121133114641--------------------------------------------------------注意:不能够增添或删除程序行,也不能够改正程序的构造。------------------------------------------------------*/main( ){staticinta[6][6];inti,j,k;/***********FOUND***********/for(i=1;i<=6;i++){for(k=0;k<10-2*i;k++)printf("");for(j=0;j<=i;j++){/***********FOUND***********/if(j==0&&j==i)a[i][j]=1;else/***********FOUND***********/a[i][j]=a[i-1][j-1]+a[i][j-1];printf("");printf("%-3d",a[i][j]);}/***********FOUND***********/printf("\t");}}答案:1).for(i=0;i<6;i++)或for(i=0;i<=5;i++)2).if(j==0||j==i)3).a[i][j]=a[i-1][j]+a[i-1][j-1];或a[i][j]=a[i-1][j-1]+a[i-1][j];4).printf("\n");答案:1).scanf("%d",&a);2).aa[1]=a%100/10;或aa[1]=a/10%10;3).for(i=0;i<=3;i++)或for(i=0;i<4;i++)〖第1题〗『程序改错』(5分)(题号:3)/*------------------------------------------------------【程序改错】--------------------------------------------------------题目:用起泡法对10个整数从小到大排序。程序中共有4条错误语句,请更正错误。--------------------------------------------------------注意:不能够增添或删除程序行,也不能够改正程序的构造。------------------------------------------------------*/voidsort(intx[],intn){inti,j,k,t;for(i=0;i<n-1;i++)/**********FOUND**********/for(j=0;j<n-i;j++)/**********FOUND**********/if(x[i]>x[i+1]){t=x[j];x[j]=x[j+1];x[j+1]=t;}}main( ){inti,n,a[100];printf("pleaseinputthelengthofthearray:\n");scanf("%d",&n);for(i=0;i<n;i++)/**********FOUND**********/scanf("%d",a[i]);/**********FOUND**********/sort(n,a);printf("outputthesortedarray:\n");for(i=0;i<=n-1;i++)printf("%5d",a[i]);printf("\n");}答案:1).for(j=0;j<n-1-i;j++)或for(j=0;n-1-i>j;j++)或for(j=0;j<n-(1+i);j++)或for(j=0;n-(1+i)>j;j++)或for(j=0;j<=n-2-i;j++)2).if(x[j]>x[j+1])或if(x[j+1]<x[j])3).scanf("%d",&a[i]);或scanf("%d",a+i);4).sort(a,n);或sort(&a[0],n);〖第2题〗『程序改错』(5分)(题号:431)/*------------------------------------------------------【程序改错】--------------------------------------------------------题目:编写函数fun求1000之内所有8的倍数之和。--------------------------------------------------------注意:不能够增添或删除程序行,也不能够改正程序的构造。------------------------------------------------------*/#include""#defineN1000main( ){intsum;sum=fun(8);printf("%d之内所有%d的倍数之和为:%d\n",N,8,sum);getch( );}intfun(intm){/**********FOUND**********/ints=0;i;/**********FOUND**********/for(i=1;i>N;i++)/**********FOUND**********/if(i/m==0)s+=i;returns;}答案:1).ints=0,i;2).for(i=1;i<N;i++)3).if(i%m==0)〖第3题〗『程序改错』(5分)(题号:444)/*------------------------------------------------------【程序改错】--------------------------------------------------------题目:求100之内(包含100)的偶数之和.--------------------------------------------------------注意:不能够增添或删除程序行,也不能够改正程序的构造。------------------------------------------------------*/#include""main( ){/**********FOUND**********/inti,sum=1;/**********FOUND**********/for(i=2;i<=100;i+=1)sum+=i;/**********FOUND**********/printf("Sum=%d\n";sum);getch( );}答案:1).inti,sum=0;2).for(i=2;i<=100;i+=2)3).printf("Sum=%d\n",sum);〖第1题〗『程序改错』(5分)(题号:14)/*------------------------------------------------------【程序改错】--------------------------------------------------------题目:函数fun的功能是:求1到20的阶乘的和。请更正程序中的错误,使它能得出正确的结果。--------------------------------------------------------注意:不能够增添或删除程序行,也不能够改正程序的构造。------------------------------------------------------*/fun( ){intn,j;floats=,t=;for(n=1;n<=20;n++){/**********FOUND**********/s=1;for(j=1;j<=n;j++)/**********FOUND**********/t=t*n;/**********FOUND**********/s+t=s;}/**********FOUND**********/printf("jiecheng=%d\n",s);}main( ){fun( );}答案:1).t=1;或t=;2).t=t*j;或t*=j;或t=j*t;3).s=s+t;或s+=t;或s=t+s;4).printf("jiecheng=%f\n",s);〖第

2题〗『程序改错』

(5

分)(

题号:396)/*------------------------------------------------------【程序改错】--------------------------------------------------------题目:请编写一个函数fun,函数的功能是:统计出若干个学生的均匀成绩,最低分以及得最低分的人数。比如,输入10名学生的成绩分别为92,87,68,56,,84,67,75,92,66,则输出均匀成绩为,最高分为56,得最高分的人数为1人。--------------------------------------------------------注意:不能够增添或删除程序行,也不能够改正程序的构造。------------------------------------------------------*/#include""floatMin=0;intJ=0;floatfun(floatarray[],intn){inti;floatsum=0,ave;Min=array[0];for(i=0;i<n;i++){if(Min>array[i])Min=array[i];/**********FOUND**********/sum=+array[i];}/**********FOUND**********/ave=sum\n;for(i=0;i<n;i++)/**********FOUND**********/if(array[i]=Min)J++;return(ave);}main( ){floata[10],ave;inti=0;for(i=0;i<10;i++)scanf("%f",&a[i]);ave=fun(a,10);printf("ave=%f\n",ave);printf("min=%f\n",Min);printf("Total:%d\n",J);getch( );}答案:1).sum+=array[i];}或sum=sum+array[i];}2).ave=sum/n;3).if(array[i]==Min)J++;或if(Min==array[i])J++;〖第3题〗『程序改错』(5分)(题号:444)/*------------------------------------------------------【程序改错】--------------------------------------------------------题目:求100之内(包含100)的偶数之和.--------------------------------------------------------注意:不能够增添或删除程序行,也不能够改正程序的构造。------------------------------------------------------*/#include""main( ){/**********FOUND**********/inti,sum=1;/**********FOUND**********/for(i=2;i<=100;i+=1)sum+=i;/**********FOUND**********/printf("Sum=%d\n";sum);getch( );}答案:1).inti,sum=0;2).for(i=2;i<=100;i+=2)3).printf("Sum=%d\n",sum);〖第1题〗『程序改错』(5分)(题号:14)/*------------------------------------------------------【程序改错】--------------------------------------------------------题目:函数fun的功能是:求1到20的阶乘的和。请更正程序中的错误,使它能得出正确的结果。--------------------------------------------------------注意:不能够增添或删除程序行,也不能够改正程序的构造。------------------------------------------------------*/fun( ){intn,j;floats=,t=;for(n=1;n<=20;n++){/**********FOUND**********/s=1;for(j=1;j<=n;j++)/**********FOUND**********/t=t*n;/**********FOUND**********/s+t=s;}/**********FOUND**********/printf("jiecheng=%d\n",s);}main( ){fun( );}答案:1).t=1;或t=;2).t=t*j;或t*=j;或t=j*t;3).s=s+t;或s+=t;或s=t+s;4).printf("jiecheng=%f\n",s);〖第2题〗『程序改错』(5分)(题号:412)/*------------------------------------------------------【程序改错】--------------------------------------------------------题目:将一个正整数分解质因数。比如:输入90,打印出90=2*3*3*5--------------------------------------------------------注意:不能够增添或删除程序行,也不能够改正程序的构造。------------------------------------------------------*/#include""main( ){intn,i;printf("\npleaseinputanumber:\n");scanf("%d",&n);printf("%d=",n);for(i=2;i<=n;i++){/**********FOUND**********/while(n==i){/**********FOUND**********/if(n%i==1){printf("%d*",i);/**********FOUND**********/n=n%i;}elsebreak;}}printf("%d",n);}答案:1).while(n!=i)2).if(n%i==0)或if(!(n%i))3).n=n/i;〖第3题〗『程序改错』(5分)(题号:449)/*------------------------------------------------------【程序改错】--------------------------------------------------------题目:编写函数fun计算以下分段函数的值:x*20x<0且x≠-3f(x)=sin(x)0≤x<10且x≠2及x≠3x*x+x-1其余--------------------------------------------------------注意:不能够增添或删除程序行,也不能够改正程序的构造。------------------------------------------------------*/#include""#include""floatfun(floatx){/**********FOUND**********/floaty/**********FOUND**********/if(x<0||x!=y=x*20;elseif(x>=0&&x<&&x!=&&x!=y=sin(x);elsey=x*x+x-1;/**********FOUND**********/returnx;}main( ){floatx,f;printf("Inputx=");scanf("%f",&x);f=fun(x);printf("x=%f,f(x)=%f\n",x,f);getch( );}答案:1).floaty;2).if(x<0&&x!=3).returny;或return(y);〖第1题〗『程序改错』(5分)(题号:444)/*------------------------------------------------------【程序改错】--------------------------------------------------------题目:求100之内(包含100)的偶数之和.--------------------------------------------------------注意:不能够增添或删除程序行,也不能够改正程序的构造。------------------------------------------------------*/#include""main( ){/**********FOUND**********/inti,sum=1;/**********FOUND**********/for(i=2;i<=100;i+=1)sum+=i;/**********FOUND**********/printf("Sum=%d\n";sum);getch( );}答案:1).inti,sum=0;2).for(i=2;i<=100;i+=2)3).printf("Sum=%d\n",sum);〖第2题〗『程序改错』(5分)(题号:435)/*------------------------------------------------------【程序改错】--------------------------------------------------------题目:编写一个程序计算某年某月有几日。(注意要划分闰年)--------------------------------------------------------注意:不能够增添或删除程序行,也不行以改正程序的构造。------------------------------------------------------*/#include<>voidmain( ){intyy,mm,len;printf("year,month=");scanf("%d%d",&yy,&mm);/**********FOUND**********/switch(yy){case1:case3:case5:case7:case8:case10:case12:len=31;/**********FOUND**********/breakcase4:case6:case9:case11:len=30;break;case2:if(yy%4==0&&yy%100!=0||yy%400==0)len=29;elselen=28;break;/**********FOUND**********/defaultprintf("inputerror!\n");break;}printf("Thelengthof%d%did%d\n",yy,mm,len);getch( );}答案:1).switch(mm)2).break;3).default:〖第3题〗『程序改错』(5分)(题号:404)/*------------------------------------------------------【程序改错】--------------------------------------------------------题目:编写函数fun求20之内所有5的倍数之积。--------------------------------------------------------注意:不能够增添或删除程序行,也不能够改正程序的构造。------------------------------------------------------*/#defineN20#include""main( ){intsum;sum=fun(5);printf("%d之内所有%d的倍数之积为:%d\n",N,5,sum);getch( );}intfun(intm){/**********FOUND**********/ints=0,i;for(i=1;i<N;i++)/**********FOUND**********/if(i%m=0)/**********FOUND**********/s=*i;returns;}答案:1).ints=1,i;2).if(i%m==0)3).s*=i;或s=s*i;或s=i*s;〖第1题〗『程序改错』(5分)(题号:249)/*------------------------------------------------------【程序改错】--------------------------------------------------------题目:下边程序的功能是:从键盘输入十个学生的成绩,统计最高分,最低分和均匀分。max代表最高分,min代表最低分,avg代表均匀分。--------------------------------------------------------注意:不能够增添或删除程序行,也不能够改正程序的构造。------------------------------------------------------*/main( ){inti;/***********FOUND***********/floata[8],min,max,avg;printf("input10score:");for(i=0;i<=9;i++){printf("inputascoreofstudent:");/***********FOUND***********/scanf("%f",a);}/***********FOUND***********/max=min=avg=a[1];for(i=1;i<=9;i++){/***********FOUND***********/if(min<a[i])min=a[i];if(max<a[i])max=a[i];avg=avg+a[i];}avg=avg/10;printf("max:%f\nmin:%f\navg:%f\n",max,min,avg);}答案:1).floata[10],min,max,avg;2).scanf("%f",&a[i]);或scanf("%f",a+i);3).max=min=avg=a[0];4).if(min>a[i])或if(a[i]<min)或if(min>=a[i])或if(a[i]=<min)〖第2题〗『程序改错』(5分)(题号:405)/*------------------------------------------------------【程序改错】--------------------------------------------------------题目:编写函数x*x+x

funx<0

计算以下分段函数的值:且x≠-3f(x)=x*x+5x

0

≤x<10

x≠2及

x≠3x*x+x-1其余--------------------------------------------------------注意:不能够增添或删除程序行,也不能够改正程序的构造。------------------------------------------------------*/#include""floatfun(floatx){/**********FOUND**********/floaty/**********FOUND**********/if(x<0||x!=y=x*x+x;elseif(x>=0&&x<&&x!=&&x!=y=x*x+5*x;elsey=x*x+x-1;/**********FOUND**********/returnx;}main( ){floatx,f;printf("Inputx=");scanf("%f",&x);f=fun(x);printf("x=%f,f(x)=%f\n",x,f);getch( );}答案:1).floaty;2).if(x<0&&x!=或if(x<0&&x!=-3)或if(x<0&&x!=)或if(x<0&&x!=-3)3).returny;或return(y);〖第3题〗『程序改错』(5分)(题号:422)/*------------------------------------------------------【程序改错】--------------------------------------------------------题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。--------------------------------------------------------注意:不能够增添或删除程序行,也不能够改正程序的构造。------------------------------------------------------*/#include""main( ){/**********FOUND**********/longa,b,c,d,e,x,scanf("%ld",&x);a=x/10000;/**********FOUND**********/b=x/10000/1000;c=x%1000/100;d=x%100/10;e=x%10;/**********FOUND**********/if(a==0)printf("thereare5,%ld%ld%ld%ld%ld\n",e,d,c,b,a);elseif(b!=0)printf("thereare4,%ld%ld%ld%ld\n",e,d,c,b);elseif(c!=0)printf("thereare3,%ld%ld%ld\n",e,d,c);elseif(d!=0)printf("thereare2,%ld%ld\n",e,d);elseif(e!=0)printf("thereare1,%ld\n",e);getch( );}答案:1).longa,b,c,d,e,x;2).b=x%10000/1000;或b=x/1000%10;3).if(a!=0)或if(!a)〖第1题〗『程序改错』(5分)(题号:253)/*------------------------------------------------------【程序改错】--------------------------------------------------------题目:输入10个数,要求输出这10个数的均匀值--------------------------------------------------------注意:不能够增添或删除程序行,也不能够改正程序的构造。------------------------------------------------------*/floataverage(floatarray[10]){inti;floataver,sum=array[0];/***********FOUND***********/for(i=0;i<10;i++)sum=sum+array[i];aver=sum/;return(aver);}main( ){/***********FOUND***********/intscore[10],aver;inti;printf("input10scores:\n");for(i=0;i<10;i++)/***********FOUND***********/scanf("%f",score);printf("\n");/***********FOUND***********/aver=average(score[10]);printf("averagescoreis%",aver);}答案:1).2).3).4).

for(i=1;i<10;i++)floatscore[10],aver;scanf("%f",&score[i]);aver=average(score);

for(i=1;i<=9;i++)或floataver,score[10];或scanf("%f",score+i);〖第2题〗『程序改错』(5分)(题号:449)/*------------------------------------------------------【程序改错】--------------------------------------------------------题目:编写函数x*20f(x)=sin(x)x*x+x-1

funx<00

计算以下分段函数的值:且x≠-3≤x<10且x≠2及其余

x≠3--------------------------------------------------------注意:不能够增添或删除程序行,也不能够改正程序的构造。------------------------------------------------------*/#include""#include""floatfun(floatx){/**********FOUND**********/floaty/**********FOUND**********/if(x<0||x!=y=x*20;elseif(x>=0&&x<&&x!=&&x!=y=sin(x);elsey=x*x+x-1;/**********FOUND**********/returnx;}main( ){floatx,f;printf("Inputx=");scanf("%f",&x);f=fun(x);printf("x=%f,f(x)=%f\n",x,f);getch( );}答案:1).floaty;2).if(x<0&&x!=3).returny;或return(y);〖第3题〗『程序改错』(5分)(题号:405)/*------------------------------------------------------【程序改错】--------------------------------------------------------题目:编写函数x*x+x

funx<0

计算以下分段函数的值:且x≠-3f(x)=x*x+5xx*x+x-1

0

≤x<10其余

x≠2及

x≠3--------------------------------------------------------注意:不能够增添或删除程序行,也不能够改正程序的构造。------------------------------------------------------*/#include""floatfun(floatx){/**********FOUND**********/floaty/**********FOUND**********/if(x<0||x!=y=x*x+x;elseif(x>=0&&x<&&x!=&&x!=y=x*x+5*x;elsey=x*x+x-1;/**********FOUND**********/returnx;}main( ){floatx,f;printf("Inputx=");scanf("%f",&x);f=fun(x);printf("x=%f,f(x)=%f\n",x,f);getch( );}答案:1).floaty;2).if(x<0&&x!=或if(x<0&&x!=-3)x!=-3)

或if(x<0&&x!=)或if(x<0&&3).returny;或return(y);〖第1题〗『程序改错』(5分)(题号:249)/*------------------------------------------------------【程序改错】--------------------------------------------------------题目:下边程序的功能是:从键盘输入十个学生的成绩,统计最高分,最低分和均匀分。max代表最高分,min代表最低分,avg代表均匀分。--------------------------------------------------------注意:不能够增添或删除程序行,也不能够改正程序的构造。------------------------------------------------------*/main( ){inti;/***********FOUND***********/floata[8],min,max,avg;printf("input10score:");for(i=0;i<=9;i++){printf("inputascoreofstudent:");/***********FOUND***********/scanf("%f",a);}/***********FOUND***********/max=min=avg=a[1];for(i=1;i<=9;i++){/***********FOUND***********/if(min<a[i])min=a[i];if(max<a[i])max=a[i];avg=avg+a[i];}avg=avg/10;printf("max:%f\nmin:%f\navg:%f\n",max,min,avg);}答案:1).floata[10],min,max,avg;2).scanf("%f",&a[i]);或scanf("%f",a+i);3).max=min=avg=a[0];4).if(min>a[i])或if(a[i]<min)或if(min>=a[i])或if(a[i]=<min)〖第2题〗『程序改错』(5分)(题号:440)/*------------------------------------------------------【程序改错】--------------------------------------------------------题目:编制统计营业员一天的营业额的程序,设程序采纳一个循环实现,每次循环输入一笔交易金额并累计营业额。因为营业员一天达成的交易次数是不确立的,为此以最后附带输入一笔0或负数交易额作为交易金额已所有输入结束的标记。有以下统计营业员一天营业额的算法:统计营业员一天营业额{营业额清0;输入第一笔交易额;while(交易额>{累计营业额;输入下一笔交易额;}输出营业额;}记一笔交易额为变量sale,营业额为sigma。--------------------------------------------------------注意:不能够增添或删除程序行,也不能够改正程序的构造。------------------------------------------------------*/#include<>voidmain( ){/**********FOUND**********/floatsale,sigmasigma=;printf("Entersaledata.\n");/**********FOUND**********/scanf("%f",sale);while(sale>{/**********FOUND**********/sigma+==sale;printf("Enternextsaledata(<=0tofinish).\n");scanf("%f",&sale);}printf("Sigmaofsaleis%.2f\n",sigma);getch( );}答案:1).floatsale,sigma;2).scanf("%f",&sale);3).sigma+=sale;或sigma=sigma+sale;〖第3题〗『程序改错』(5分)(题号:424)/*------------------------------------------------------【程序改错】--------------------------------------------------------题目:打印出杨辉三角形(要求打印出10行).--------------------------------------------------------注意:不能够增添或删除程序行,也不能够改正程序的构造。------------------------------------------------------*/#include""main( ){inti,j;inta[10][10];printf("\n");/**********FOUND**********/for(i=1;i<10;i++){a[i][0]=1;a[i][i]=1;}/**********FOUND**********/for(i=1;i<10;i++)for(j=1;j<i;j++)/**********FOUND**********/a[i][i]=a[i-1][j-1]+a[i-1][j];for(i=0;i<10;i++){for(j=0;j<=i;j++)printf("%5d",a[i][j]);printf("\n");getch( );}}1).for(i=0;i<10;i++)for(i=0;i<=9;i++)2).for(i=2;i<10;i++)for(i=2;i<=9;i++)3).a[i][j]=a[i-1][j-1]+a[i-1][j];a[i][j]=a[i-1][j]+a[i-1][j-1];/*--------------------------------------------------------------------------------------------------------------,111121133114641--------------------------------------------------------------------------------------------------------------*/main( ){staticinta[6][6];inti,j,k;/***********FOUND***********/for(i=1;i<=6;i++){for(k=0;k<10-2*i;k++)printf("");for(j=0;j<=i;j++){/***********FOUND***********/if(j==0&&j==i)a[i][j]=1;else/***********FOUND***********/a[i][j]=a[i-1][j-1]+a[i][j-1];printf("");printf("%-3d",a[i][j]);}/***********FOUND***********/printf("\t");}}答案:1).for(i=0;i<6;i++)或for(i=0;i<=5;i++)2).if(j==0||j==i)3).a[i][j]=a[i-1][j]+a[i-1][j-1];或a[i][j]=a[i-1][j-1]+a[i-1][j];4).printf("\n");〖第2题〗『程序改错』(5分)(题号:253)/*------------------------------------------------------【程序改错】--------------------------------------------------------题目:输入10个数,要求输出这10个数的均匀值--------------------------------------------------------注意:不能够增添或删除程序行,也不能够改正程序的构造。------------------------------------------------------*/floataverage(floatarray[10]){inti;floataver,sum=array[0];/***********FOUND***********/for(i=0;i<10;i++)sum=sum+array[i];aver=sum/;return(aver);}main( ){/***********FOUND***********/intscore[10],aver;inti;printf("input10scores:\n");for(i=0;i<10;i++)/***********FOUND***********/scanf("%f",score);printf("\n");/***********FOUND***********/aver=average(score[10]);printf("averagescoreis%",aver);}答案:1).for(i=1;i<10;i++)或for(i=1;i<=9;i++)2).floatscore[10],aver;或floataver,score[10];3).scanf("%f",&score[i]);或scanf("%f",score+i);4).aver=average(score);〖第

3题〗『程序改错』

(5

分)(

题号:396)/*------------------------------------------------------【程序改错】--------------------------------------------------------题目:请编写一个函数fun,函数的功能是:统计出若干个学生的均匀成绩,最低分以及得最低分的人数。比如,输入10名学生的成绩分别为92,87,68,56,,84,67,75,92,66,则输出均匀成绩为,最高分为56,得最高分的人数为1人。--------------------------------------------------------注意:不能够增添或删除程序行,也不能够改正程序的构造。------------------------------------------------------*/#include""floatMin=0;intJ=0;floatfun(floatarray[],intn){inti;floatsum=0,ave;Min=array[0];for(i=0;i<n;i++){if(Min>array[i])Min=array[i];/**********FOUND**********/sum=+array[i];}/**********FOUND**********/ave=sum\n;for(i=0;i<n;i++)/**********FOUND**********/if(array[i]=Min)J++;return(ave);}main( ){floata[10],ave;inti=0;for(i=0;i<10;i++)scanf("%f",&a[i]);ave=fun(a,10);printf("ave=%f\n",ave);printf("min=%f\n",Min);printf("Total:%d\n",J);getch( );}答案:1).sum+=array[i];}或sum=sum+array[i];}2).ave=sum/n;3).if(array[i]==Min)J++;或if(Min==array[i])J++;〖第1题〗『程序改错』(5分)(题号:405)/*------------------------------------------------------【程序改错】--------------------------------------------------------题目:编写函数fun计算以下分段函数的值:x*x+xx<0且x≠-3f(x)=x*x+5x0≤x<10且x≠2及x≠3x*x+x-1其余--------------------------------------------------------注意:不能够增添或删除程序行,也不能够改正程序的构造。------------------------------------------------------*/#include""floatfun(floatx){/**********FOUND**********/floaty/**********FOUND**********/if(x<0||x!=y=x*x+x;elseif(x>=0&&x<&&x!=&&x!=y=x*x+5*x;elsey=x*x+x-1;/**********FOUND**********/returnx;}main( ){floatx,f;printf("Inputx=");scanf("%f",&x);f=fun(x);printf("x=%f,f(x)=%f\n",x,f);getch( );}答案:1).floaty;2).if(x<0&&x!=或if(x<0&&x!=-3)

或if(x<0&&x!=)或if(x<0&&x!=-3)3).returny;或return(y);〖第2题〗『程序改错』(5分)(题号:22)/*------------------------------------------------------【程序改错】--------------------------------------------------------题目:函数fun的功能是:求出两个非零正整数的最大条约数,并作为函数值返回。比如,若给num1和num2分别输入49和21,则输出的最大条约数为7。请更正程序中的错误,使它能得出正确的结果。--------------------------------------------------------注意:不能够增添或删除程序行,也不能够改正程序的构造。------------------------------------------------------*/intfun(inta,intb){intr,t;if(a<b){t=a;/**********FOUND**********/b=a;/**********FOUND**********/a=t;}r=a%b;while(r!=0){a=b;b=r;/**********FOUND**********/r=a/b;}/**********FOUND**********/returna;}main( ){intnum1,num2,a;scanf("%d%d",&num1,&num2);a=fun(num1,num2);printf("themaximumcommondivisoris%d\n\n",a);}答案:1).a=b;2).b=t;3).r=a%b;}4).returnb;或return(b);或return(b);〖第3题〗『程序改错』(5分)(题号:388)/*------------------------------------------------------【程序改错】--------------------------------------------------------题目:函数fun的功能是:求出数组中最大数和次最大数,并把最大数和a[0]中的数对调、次最大数和a[1]中的数对调。--------------------------------------------------------注意:不能够增添或删除程序行,也不能够改正程序的构造。------------------------------------------------------*/#include<>#include<>#defineN20intfun(int*a,intn){inti,m,t,k;for(i=0;i<2;i++)/**********FOUND**********/{m=0;/**********FOUND**********/for(k=1;k<n;k++)/**********FOUND**********/if(a[k]>a[m])k=m;t=a[i];a[i]=a[m];a[m]=t;}}main( ){intx,b[N]={11,5,12,0,3,6,9,7,10,8},n=10,i;clrscr( );for(i=0;i<n;i++)printf("%d",b[i]);printf("\n");fun(b,n);for(i=0;i<n;i++)printf("%d",b[i]);printf("\n");}答案:1).{m=i;2).for(k=i;k<n;k++)3).if(a[k]>a[m])m=k;〖第1题〗『程序改错』(5分)(题号:253)/*------------------------------------------------------【程序改错】--------------------------------------------------------题目:输入10个数,要求输出这10个数的均匀值--------------------------------------------------------注意:不能够增添或删除程序行,也不能够改正程序的构造。------------------------------------------------------*/floataverage(floatarray[10]){inti;floataver,sum=array[0];/***********FOUND***********/for(i=0;i<10;i++)sum=sum+array[i];aver=sum/;return(aver);}main( ){/***********FOUND***********/intscore[10],aver;inti;printf("input10scores:\n");for(i=0;i<10;i++)/***********FOUND***********/scanf("%f",score);printf("\n");/***********FOUND***********/aver=average(score[10]);printf("averagescoreis%",aver);}答案:1).for(i=1;i<10;i++)或for(i=1;i<=9;i++)2).floatscore[10],aver;或floataver,score[10];3).scanf("%f",&score[i]);或scanf("%f",score+i);4).aver=average(score);〖第

2题〗『程序改错』

(5

分)(

题号:363)/*------------------------------------------------------【程序改错】--------------------------------------------------------题目:求出a所指数组中最大数和次最大数(规定最大数和次最大数不在a[0]和a[1]中),挨次和a[0]、a[1]中的数对调。比如数组中原有的数为:7、10、12、0、3、6、9、11、5、8,输出的结果为:12、11、7、0、3、6、9、10、5、8。--------------------------------------------------------注意:不能够增添或删除程序行,也不能够改正程序的构造。------------------------------------------------------*/#include<>#include<>#defineN20intfun(int*a,intn){intk,m1,m2,max1,max2,t;max1=max2=-32768;m1=m2=0;for(k=0;k<n;k++)if(a[k]>max1){max2=max1;m2=m1;max1=a[k];m1=k;}/**********FOUND**********/elseif(a[k]>max1){max2=a[k];m2=k;}/**********FOUND**********/t=a[0];a[m1]=a[0];a[m1]=t;/**********FOUND**********/t=a[1];a[m2]=a[1];a[m2]=t;}main( ){intx,b[N]={7,10,12,0,3,6,9,11,5,8},n=10,i;clrscr( );for(i=0;i<n;i++)printf("%d",b[i]);printf("\n");fun(b,n);for(i=0;i<n;i++)printf("%d",b[i]);printf("\n");getch( );}答案:1).elseif(a[k]>max2)或elseif(max2<a[k])2).t=a[0];a[0]=a[m1];a[m1]=t;3).t=a[1];a[1]=a[m2];a[m2]=t;〖第3题〗『程序改错』(5分)(题号:249)/*------------------------------------------------------【程序改错】--------------------------------------------------------题目:下边程序的功能是:从键盘输入十个学生的成绩,统计最高分,最低分和均匀分。max代表最高分,min代表最低分,avg代表均匀分。--------------------------------------------------------注意:不能够增添或删除程序行,也不能够改正程序的构造。------------------------------------------------------*/main( ){inti;/***********FOUND***********/floata[8],min,max,avg;printf("input10score:");for(i=0;i<=9;i++){printf("inputascoreofstudent:");/***********FOUND***********/scanf("%f",a);}/***********FOUND***********/max=min=avg=a[1];for(i=1;i<=9;i++){/***********FOUND***********/if(min<a[i])min=a[i];if(max<a[i])max=a[i];avg=avg+a[i];}avg=avg/10;printf("max:%f\nmin:%f\navg:%f\n",max,min,avg);}答案:1).floata[10],min,max,avg;2).scanf("%f",&a[i]);或scanf("%f",a+i);3).max=min=avg=a[0];4).if(min>a[i])或if(a[i]<min)或if(min>=a[i])或if(a[i]=<min)〖第1题〗『程序改错』(5分)(题号:574)/*----------------

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论