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

提交評論