C語言程序改錯(cuò)_第1頁
C語言程序改錯(cuò)_第2頁
C語言程序改錯(cuò)_第3頁
C語言程序改錯(cuò)_第4頁
C語言程序改錯(cuò)_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、-第1題程序改錯(cuò)(5分)(題號(hào):422)/*- 【程序改錯(cuò)】-題目:給一個(gè)不多于5位的正整數(shù),要求:一、求它是 幾位數(shù),二、逆序打印出各位數(shù)字。-注意:不可以增加或刪除程序行,也不可以更改程序 的構(gòu)造。-*/*include"stdio.h"main( )/*FOUND*/long a,b,c,d,e,*,scanf("%ld",&*);a=*/10000;/*FOUND*/b=*/10000/1000;c=*%1000/100;d=*%100/10;e=*%10;/*FOUND*/if (a=0)printf("there are 5

2、, %ld %ld %ld %ld %ldn",e,d,c,b,a);else if (b!=0) printf("there are 4, %ld %ld %ld %ldn",e,d,c,b);else if (c!=0) printf(" there are 3,%ld %ld %ldn",e,d,c);else if (d!=0) printf("there are 2, %ld %ldn",e,d);else if (e!=0) printf(" there are 1,%ldn",e);getc

3、h();答案: 1). long a,b,c,d,e,*; 2). b=*%10000/1000; 或 b=*/1000%10; 3). if (a!=0) 或 if (!a)第2題程序改錯(cuò)(5分)(題號(hào):411)/*- 【程序改錯(cuò)】-題目:*個(gè)公司采用公用傳遞數(shù)據(jù),數(shù)據(jù)是四位的 整數(shù),在傳遞過程中是加密的,加密規(guī)則如下: 每位數(shù)字都加上5,然后除以10的余數(shù)代替該位數(shù) 字。再將新生成數(shù)據(jù)的第一位和第四位交換,第 二位和第三位交換。舉例:輸入一個(gè)四位整數(shù)1234,則結(jié)果為:9876。-注意:不可以增加或刪除程序行,也不可以更改程序 的構(gòu)造。-*/*include "stdio.h&q

4、uot;main()int a,i,aa4,t;printf("輸入一個(gè)四位整數(shù):");/*FOUND*/scanf("%d",&a);aa0=a%10;/*FOUND*/aa1=a%100%10;aa2=a%1000/100;aa3=a/1000;/*FOUND*/for(i=0;i<=3;i+)aai+=5;aai%=10;for(i=0;i<=3/2;i+)t=aai;aai=aa3-i;aa3-i=t;for(i=3;i>=0;i-)printf("%d",aai);getch();第1題程序改錯(cuò)(5

5、分)(題號(hào):253)/*- 【程序改錯(cuò)】-題目:輸入10個(gè)數(shù),要求輸出這10個(gè)數(shù)的平均值-注意:不可以增加或刪除程序行,也不可以更改程序的構(gòu)造。-*/float average(float array10) int i; float aver,sum=array0;/*FOUND*/ for(i=0;i<10;i+) sum=sum+arrayi; aver=sum/10.0; return(aver);main( ) /*FOUND*/ int score10,aver ; int i; printf("input 10 scores:n");for(i=0;i&l

6、t;10;i+)/*FOUND*/ scanf("%f", score);printf("n");/*FOUND*/aver=average(score10);printf("average score is %5.2f",aver);答案: 1). for(i=1;i<10;i+) 或 for(i=1;i<=9;i+) 2). float score10,aver; 或 float aver,score10; 3). scanf("%f", &scorei); 或 scanf("%f

7、", score+i); 4). aver=average(score);第2題程序改錯(cuò)(5分)(題號(hào):414)/*- 【程序改錯(cuò)】-題目:輸入一行字符,分別統(tǒng)計(jì)出其中英文字母、空 格、數(shù)字和其它字符的個(gè)數(shù)。-注意:不可以增加或刪除程序行,也不可以更改程序 的構(gòu)造。-*/*include "stdio.h"main()char c;int letters=0,space=0,digit=0,others=0;printf("please input some charactersn");/*FOUND*/while(c=getchar()=&#

8、39;n')/*FOUND*/if(c>='a'&&c<='z'&&c>='A'&&c<='Z')letters+;/*FOUND*/else if(c=!' ')space+;else if(c>='0'&&c<='9')digit+;elseothers+;printf("all in all:char=%d space=%d digit=%d others=%d

9、n",letters,space,digit,others);答案: 1). while(c=getchar()!='n') 2). if(c>='a'&&c<='z'|c>='A'&&c<='Z') 或 if(c<='z'&&c>='a'|c>='A'&&c<='Z') 或 if(c<='z'&&am

10、p;c>='a'| 3). else if(c=' ')第3題程序改錯(cuò)(5分)(題號(hào):250)/*- 【程序改錯(cuò)】-題目:以下程序輸出前六行輝三角形,即 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 -注意:不可以增加或刪除程序行,也不可以更改程序的構(gòu)造。-*/main( ) static int a66; int i,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

11、(j=0&&j=i) aij=1; else /*FOUND*/ aij=ai-1j-1+aij-1; printf(" "); printf("%-3d",aij); /*FOUND*/ printf("t"); 答案: 1). for(i=0;i<6;i+) 或 for(i=0;i<=5;i+) 2). if(j=0|j=i) 3). aij=ai-1j+ai-1j-1; 或 aij=ai-1j-1+ai-1j; 4). printf("n");答案: 1). scanf("

12、;%d",&a); 2). aa1=a%100/10; 或 aa1=a/10%10; 3). for(i=0;i<=3;i+) 或 for(i=0;i<4;i+)第1題程序改錯(cuò)(5分)(題號(hào):3)/*- 【程序改錯(cuò)】-題目:用起泡法對(duì)10個(gè)整數(shù)從小到大排序。 程序中共有4條錯(cuò)誤語句,請(qǐng)改正錯(cuò)誤。-注意:不可以增加或刪除程序行,也不可以更改程序的構(gòu)造。-*/void sort(int *,int n) int i,j,k,t; for(i=0;i<n-1;i+)/*FOUND*/ for(j=0;j<n-i;j+)/*FOUND*/ if(*i>*

13、i+1) t=*j;*j=*j+1;*j+1=t;main() int i,n,a100; printf("please input the length of the array:n"); scanf("%d",&n); for(i=0;i<n;i+)/*FOUND*/ scanf("%d",ai);/*FOUND*/ sort(n,a); printf("output the sorted array:n"); for(i=0;i<=n-1;i+) printf("%5d"

14、;,ai); 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(*j>*j+1) 或 if(*j+1<*j) 3). scanf("%d",&ai); 或 scanf("%d",a+i); 4). sort(a,n); 或 sort(&a0,n);第2

15、題程序改錯(cuò)(5分)(題號(hào):431)/*- 【程序改錯(cuò)】-題目:編寫函數(shù)fun求1000以所有8的倍數(shù)之和。-注意:不可以增加或刪除程序行,也不可以更改程 序的構(gòu)造。-*/*include"stdio.h"*define N 1000main()int sum; sum=fun(8); printf("%d以所有%d的倍數(shù)之和為:%dn",N,8,sum); getch();int fun(int m)/*FOUND*/int s=0;i; /*FOUND*/ for(i=1;i>N;i+)/*FOUND*/if(i/m=0) s+=i; retur

16、n s; 答案: 1). int s=0,i; 2). for(i=1;i<N;i+) 3). if(i%m=0)第3題程序改錯(cuò)(5分)(題號(hào):444)/*- 【程序改錯(cuò)】-題目:求100以包括100的偶數(shù)之和.-注意:不可以增加或刪除程序行,也不可以更改程序的構(gòu)造。-*/*include "stdio.h"main()/*FOUND*/int i,sum=1;/*FOUND*/for(i=2;i<=100;i+=1)sum+=i;/*FOUND*/printf("Sum=%d n"sum);getch();答案: 1). int i,sum

17、=0; 2). for(i=2;i<=100;i+=2) 3). printf("Sum=%d n",sum);第1題程序改錯(cuò)(5分)(題號(hào):14)/*- 【程序改錯(cuò)】-題目:函數(shù)fun的功能是:求1到20的階乘的和。 請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。-注意:不可以增加或刪除程序行,也不可以更改程序的構(gòu)造。-*/fun() int n,j; float s=0.0,t=1.0; for(n=1;n<=20;n+) /*FOUND*/ s=1; for(j=1;j<=n;j+)/*FOUND*/ t=t*n;/*FOUND*/ s+t=s; /*F

18、OUND*/ printf("jiecheng=%dn",s);main() fun();答案: 1). t=1; 或 t=1.0; 2). t=t*j; 或 t*=j; 或 t=j*t; 3). s=s+t; 或 s+=t; 或 s=t+s; 4). printf("jiecheng=%fn",s);第2題程序改錯(cuò)(5分)(題號(hào):396)/*- 【程序改錯(cuò)】-題目:請(qǐng)編寫一個(gè)函數(shù)fun,函數(shù)的功能是:統(tǒng)計(jì)出假設(shè)干 個(gè)學(xué)生的平均成績(jī),最低分以及得最低分的人數(shù)。 例如,輸入10名學(xué)生的成績(jī)分別為92,87,68,56, 92,84,67,75,92,66,

19、則輸出平均成績(jī)?yōu)?7.9, 最高分為56,得最高分的人數(shù)為1人。-注意:不可以增加或刪除程序行,也不可以更改程序的構(gòu)造。-*/*include "stdio.h"float Min=0;int J=0;float fun(float array,int n)int i;float sum=0,ave; Min=array0;for(i=0;i<n;i+) if(Min>array i) Min=array i;/*FOUND*/sum=+array i; /*FOUND*/ ave=sumn; for(i=0;i<n;i+)/*FOUND*/if(arra

20、y i=Min) J+;return(ave);main( ) float a10,ave; int i=0; for(i=0;i<10;i+) scanf("%f",&ai); ave=fun(a,10); printf("ave=%fn",ave); printf("min=%fn",Min); printf("Total:%dn",J); getch();答案: 1). sum+=arrayi; 或 sum=sum+array i; 2). ave=sum/n; 3). if(arrayi=Mi

21、n) J+; 或 if(Min=arrayi) J+;第3題程序改錯(cuò)(5分)(題號(hào):444)/*- 【程序改錯(cuò)】-題目:求100以包括100的偶數(shù)之和.-注意:不可以增加或刪除程序行,也不可以更改程序的構(gòu)造。-*/*include "stdio.h"main()/*FOUND*/int i,sum=1;/*FOUND*/for(i=2;i<=100;i+=1)sum+=i;/*FOUND*/printf("Sum=%d n"sum);getch();答案: 1). int i,sum=0; 2). for(i=2;i<=100;i+=2) 3

22、). printf("Sum=%d n",sum);第1題程序改錯(cuò)(5分)(題號(hào):14)/*- 【程序改錯(cuò)】-題目:函數(shù)fun的功能是:求1到20的階乘的和。 請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。-注意:不可以增加或刪除程序行,也不可以更改程序的構(gòu)造。-*/fun() int n,j; float s=0.0,t=1.0; 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=%dn&

23、quot;,s);main() fun();答案: 1). t=1; 或 t=1.0; 2). t=t*j; 或 t*=j; 或 t=j*t; 3). s=s+t; 或 s+=t; 或 s=t+s; 4). printf("jiecheng=%fn",s);第2題程序改錯(cuò)(5分)(題號(hào):412)/*- 【程序改錯(cuò)】-題目:將一個(gè)正整數(shù)分解質(zhì)因數(shù)。例如:輸入90,打印出 90=2*3*3*5-注意:不可以增加或刪除程序行,也不可以更改程序 的構(gòu)造。-*/*include "stdio.h"main()int n,i;printf("nplease

24、 input a number: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題程序改錯(cuò)(5分)(題號(hào):449)/*- 【程序改錯(cuò)】-

25、題目:編寫函數(shù)fun計(jì)算以下分段函數(shù)的值: *20 *<0且*-3 f(*)= sin(*) 0*<10且*2及*3 *+*-1 其它-注意:不可以增加或刪除程序行,也不可以更改程序的構(gòu)造。-*/*include"math.h"*include "stdio.h"float fun(float *)/*FOUND*/float y/*FOUND*/ if (*<0 | *!=-3.0) y=*20; else if(*>=0 && *<10.0 && *!=2.0 && *!=

26、3.0) y=sin(*); else y=*+*-1;/*FOUND*/ return *;main() float *,f; printf("Input *="); scanf("%f",&*); f=fun(*); printf("*=%f,f(*)=%fn",*,f); getch();答案: 1). float y; 2). if (*<0 && *!=-3.0) 3). return y; 或 return (y);第1題程序改錯(cuò)(5分)(題號(hào):444)/*- 【程序改錯(cuò)】-題目:求100以包

27、括100的偶數(shù)之和.-注意:不可以增加或刪除程序行,也不可以更改程序的構(gòu)造。-*/*include "stdio.h"main()/*FOUND*/int i,sum=1;/*FOUND*/for(i=2;i<=100;i+=1)sum+=i;/*FOUND*/printf("Sum=%d n"sum);getch();答案: 1). int i,sum=0; 2). for(i=2;i<=100;i+=2) 3). printf("Sum=%d n",sum);第2題程序改錯(cuò)(5分)(題號(hào):435)/*- 【程序改錯(cuò)】-

28、題目:編寫一個(gè)程序計(jì)算*年*月有幾天 。注意要區(qū)分閏年-注意:不可以增加或刪除程序行,也不可 以更改程序的構(gòu)造。-*/*include<stdio.h>void main()int yy,mm,len;printf("year,month=");scanf("%d%d",&yy,&mm);/*FOUND*/switch(yy)case 1:case 3:case 5:case 7:case 8:case 10:case 12:len=31;/*FOUND*/breakcase 4:case 6:case 9:case 11:l

29、en=30;break;case 2:if (yy%4=0 && yy%100!=0 | yy%400=0)len=29;elselen=28;break;/*FOUND*/default printf("input error!n");break;printf("The length of %d %d id %dn",yy,mm,len);getch();答案: 1). switch(mm) 2). break; 3). default :第3題程序改錯(cuò)(5分)(題號(hào):404)/*- 【程序改錯(cuò)】-題目:編寫函數(shù)fun求20以所有5的倍

30、數(shù)之積。-注意:不可以增加或刪除程序行,也不可以更改程序的構(gòu)造。-*/*define N 20*include "stdio.h"main() int sum; sum=fun(5); printf("%d以所有%d的倍數(shù)之積為: %dn",N,5,sum); getch();int fun(int m)/*FOUND*/ int s=0,i; for(i=1;i<N;i+)/*FOUND*/ if(i%m=0) /*FOUND*/ s=*i; return s;答案: 1). int s=1,i; 2). if(i%m=0) 3). s*=i;

31、或 s=s*i; 或 s=i*s;第1題程序改錯(cuò)(5分)(題號(hào):249)/*- 【程序改錯(cuò)】-題目:下面程序的功能是:從鍵盤輸入十個(gè)學(xué)生的成績(jī),統(tǒng)計(jì)最 高分,最低分和平均分。ma*代表最高分,min代表最低分, avg代表平均分。-注意:不可以增加或刪除程序行,也不可以更改程序的構(gòu)造。-*/main( ) int i;/*FOUND*/float a8,min,ma*,avg; printf("input 10 score:"); for(i=0;i<=9;i+) printf("input a score of student:"); /*FOU

32、ND*/ scanf("%f",a); /*FOUND*/ma*=min=avg=a1;for(i=1;i<=9;i+)/*FOUND*/ if(min<ai) min=ai; if(ma*<ai) ma*=ai; avg=avg+ai;avg=avg/10;printf("ma*:%fnmin:%fnavg:%fn",ma*,min,avg);答案: 1). float a10,min,ma*,avg; 2). scanf("%f",&ai); 或 scanf("%f",a+i); 3)

33、. ma*=min=avg=a0; 4). if (min>ai) 或 if (ai<min) 或 if (min>=ai) 或 if (ai=<min)第2題程序改錯(cuò)(5分)(題號(hào):405)/*- 【程序改錯(cuò)】-題目:編寫函數(shù)fun計(jì)算以下分段函數(shù)的值: *+* *<0且*-3 f(*)= *+5* 0*<10且*2及*3 *+*-1 其它-注意:不可以增加或刪除程序行,也不可以更改程序的構(gòu)造。-*/*include "stdio.h"float fun(float *)/*FOUND*/float y/*FOUND*/ if (*&l

34、t;0 |*!=-3.0) y=*+*; else if(*>=0 && *<10.0 && *!=2.0 && *!=3.0) y=*+5*; else y=*+*-1;/*FOUND*/return *;main() float *,f; printf("Input *="); scanf("%f",&*); f=fun(*); printf("*=%f,f(*)=%fn",*,f); getch();答案: 1). float y; 2). if (*<0

35、 && *!=-3.0) 或 if (*<0 && *!=-3) 或 if(*<0&&*!=-3.0) 或 if(*<0&&*!=-3) 3). return y; 或 return (y);第3題程序改錯(cuò)(5分)(題號(hào):422)/*- 【程序改錯(cuò)】-題目:給一個(gè)不多于5位的正整數(shù),要求:一、求它是 幾位數(shù),二、逆序打印出各位數(shù)字。-注意:不可以增加或刪除程序行,也不可以更改程序 的構(gòu)造。-*/*include"stdio.h"main( )/*FOUND*/long a,b,c,d,e,*,

36、scanf("%ld",&*);a=*/10000;/*FOUND*/b=*/10000/1000;c=*%1000/100;d=*%100/10;e=*%10;/*FOUND*/if (a=0)printf("there are 5, %ld %ld %ld %ld %ldn",e,d,c,b,a);else if (b!=0) printf("there are 4, %ld %ld %ld %ldn",e,d,c,b);else if (c!=0) printf(" there are 3,%ld %ld %ldn",e,d,c);else if (d!=0) printf("there are

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論