第一篇:程序改錯(cuò)題集
在考生文件夾下的給定程序modi33.c中,函數(shù)fun的功能是:計(jì)算輸出high以內(nèi)最大的10個(gè)素?cái)?shù)之和。high由主函數(shù)傳給fun函數(shù)。
若high的值為:100,則函數(shù)的值為:732。
請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
#include
for(j=2;j<=high/2;j++)/************found************/
if(high%j==0){yes=0;break}
if(yes){sum+=high;n++;}
high--;} return sum;}
main(){system(“cls”);printf(“%dn”,fun(100));} 第1 處內(nèi)容填寫(xiě)有誤
第[1]處操作錯(cuò)誤
題面要求操作:內(nèi)容為[while((high>=2)&&(n<10))] 實(shí)際操作結(jié)果:內(nèi)容為[while((high>=2)&&(n<10)] 第2 處內(nèi)容填寫(xiě)有誤
第[2]處操作錯(cuò)誤
題面要求操作:內(nèi)容為[if(high%j==0){yes=0;break;}] 實(shí)際操作結(jié)果:內(nèi)容為[if(high%j==0){yes=0;break}]
本題的考核點(diǎn)是C語(yǔ)言中一些規(guī)定的應(yīng)用。
本題中的第一處錯(cuò)誤是:在C語(yǔ)言中,“{”和“}”應(yīng)成對(duì)出現(xiàn),所以程序中的語(yǔ)句“ while((high>=2)&&(n<10)”應(yīng)改為“while((high>=2)&&(n<10))”或相同作用的語(yǔ)句。
本題中的第二處錯(cuò)誤是:C語(yǔ)言中,“;”是語(yǔ)句的一部分,是語(yǔ)句結(jié)束的標(biāo)志,不可缺少,所以,“ if(high%j==0){yes=0;break}”應(yīng)改為“if(high%j==0){yes=0;break;}”或相同作用的語(yǔ)句。
本評(píng)析僅作參考。
學(xué)生的記錄由學(xué)號(hào)和成績(jī)組成,N名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組s中,請(qǐng)編寫(xiě)函數(shù)fun,它的功能是:按分?jǐn)?shù)的高低排列學(xué)生的記錄,高分在前。
注意:部分源程序存在考生文件夾下的文件prog91.c中。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。#include
char num[10];
int s;} STREC;int fun(STREC a[]){
}
main(){ STREC s[N]={{“GA05”,85},{“GA03”,76},{“GA02”,69},{“GA04”,85},{“GA01”,91},{“GA07”,72},{“GA08”,64},{“GA06”,87},{“GA015”,85},{“GA013”,91},{“GA012”,64},{“GA014”,91},{“GA011”,91},{“GA017”,64},{“GA018”,64},{“GA016”,72}};
int i,n;FILE *out;
fun(s);
printf(“The data after sorted:n”);
for(i=0;i { if((i)%4==0)printf(“n”); printf(“%s %4d”,s[i].num,s[i].s); } printf(“n”); out=fopen(“out16.dat”,“w”); for(i=0;i { if((i)%4==0 && i)fprintf(out,“n”); fprintf(out,“%s %4d”,s[i].num,s[i].s); } fprintf(out,“n”); fclose(out);}生成的結(jié)果文件的內(nèi)容有誤 文件[out16.dat]未創(chuàng)建 本題的考核點(diǎn)是按分?jǐn)?shù)的高低排列學(xué)生記錄的算法。 解題思路:通過(guò)選擇法或其它的方法對(duì)學(xué)生記錄按分?jǐn)?shù)從高到低進(jìn)行排序。 本評(píng)析僅供參考。 int fun(STREC a[]){int i,j,p,t,k;char h;for(i=0;i 1、Gaicuo1.cpp的功能是:1!+2!+3!+……+20!。 程序有兩處錯(cuò)誤,在****found****處附近有錯(cuò),請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確結(jié)果。 注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include float s=0,t;int n,i;for(n=1;n<=20;n++){ for(i=1,t=1;i<=n;i++)t=t*i;/****found*****/ /****found****/ } 2、gaicuo2.cpp的功能是:輸入兩個(gè)不等的整數(shù)分別給x和y,輸出其中的大數(shù)。程序有兩處錯(cuò)誤,在****found****處附近有錯(cuò),請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include } 3、gaicuo3.cpp的功能是交換兩個(gè)數(shù),若輸入10和20,則輸出20和10。程序有兩處錯(cuò)誤,在****found****處附近有錯(cuò),請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include 注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include 如果程序正確運(yùn)行時(shí),屏幕的顯示和要求輸入形式如下: input a,b,c: 2.0 2.0 3.0 ←此處的2.0 2.0 3.0是用戶輸入的數(shù)據(jù) a=2.000000,b=2.000000,c=3.000000 ←此處是要求的輸出格式 s=4.000000,v=12.000000 程序有兩處錯(cuò)誤,在****found****處附近有錯(cuò),請(qǐng)改正程序中的錯(cuò)誤,使它能得出上面的正確結(jié)果。 注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include 注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include { /****found****/ int sum=0,i=1;/****found****/ while(i<=100) } 8.Gaicuo8.cpp中的函數(shù)isprime(int a)是用來(lái)判斷自變量a是否為素?cái)?shù),若是返回1,否則返回0。程序有兩處錯(cuò)誤,在****found****處附近有錯(cuò),請(qǐng)改正程序中的錯(cuò)誤,使它能得出上面的正確結(jié)果。 注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include 注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include { int length(char *);char s[]=“abcdef”;int len1,len2;/****found****/ len1=length(“ ”);//判斷有幾個(gè)空格 /****found****/ len2=length(s);//判斷有幾個(gè)字符 printf(“l(fā)en1=%d,len2=%dn”,len1,len2);} int length(char *s){ int i=0;while(*(s+i)!='
第二篇:程序改錯(cuò)題