改错题答案
第1题读入一个整数k(2<=k<=1000),打印它的所有质因子(即所有为素数的因子)。
第1处:IsPrime(int n);应改为IsPrime(int n)
第2处:if!(n%i)应改为if(!(n%i))
第2题fun函数的功能是:逐个比较a、b两个字符串对应位置中的字符,把ASCII值大于或相等的字符依次存放到c数组中,形成一个新的字符串。
第1处:int k=1;应改为int k=0;
第2处:while(*p!=*q)应改为while(*p||*q)
第3题fun函数的功能:是依次取出字符串中所以数字字符,形成新的字符串并取代原符串
第1处:s[j]=s[i];应改为s[j++]=s[i];
第2处:s[j]="\0";应改为s[j]='\0';
第4题fun函数的功能;分别统计字符串中大写字母和小写字母的个数
第1处:void fun(char*s,int a,int b)应改为void fun(char*s,int*a,int*b)
第2处:a++;应改为(*a)++;
第3处:b++;应改为(*b)++;
第5题假定整数数列中的数不重复,并存放在数组中。
第1处:a[i+1]=a[i];应改为a[i]=a[i+1];
第6题计算如下公式的值t=1-1/2*2-1/3*3-…1/m*m
第1处:for(i=2;i 第2处:y-=1/(i*i);应改为y-=1.0/(i*i); 第7题用选择法对数组中的n个元素按从小到大的顺序进行排序 第1处:p=j应改为p=j; 第2处:p=i;应改为p=j; 第8题在字符串str中找出ASCII码值最大的字符将其放在第一个位置上;并将该字符前的原字符向后顺序移动。 第1处:void fun(char*p);应改为void fun(char*p) 第2处:p=q+i;应改为q=p+i; 第9题从n个学生的成绩中统计出低于平均分的学生人数,此人数由函数值返回,平均分存放在形参aver所指的存储单元中。 第1处:t=s[k];应改为t+=s[k]; 第2处:*aver=&ave;应改为*aver=ave; 第10题将s所指字符串中出现的t1所指字符串全部替换成t2所指字符串,所形成的新串放在w所指的数组中。 第1处:void fun(char*s,*t1,*t2,*w)应改为void fun(char*s,char*t1,char*t2,char*w) 第2处:while(r)应改为while(*r) 第11题将一个由八进制数字字符组成的字符串转换为与其面值相等的十进制整数 第1处:n=*p-'o';应改为n=*p-'0'; 第2处:n=n*7+*p-'o';应改为n=n*8+*p-'0'; 第12题求出在字符串中最后一次出现的字符串的地址,通过函数值返回,并在主函数中输出从此地址开始的字符串;若未找到,则函数值未NULL. 第1处:a=NuLL;应改为a=NULL; 第2处:if(r==p)应改为if(*r==*p) 第13题根据形参m计算如下公式的值。t=1+1/2+1/3+….1/m 第1处:t+=1.0/k;应改为t+=1.0/i; 第2处:应填return t; 第14题函数fun和funx的功能:用二分法求方程2x*x*x-4x*x+3x-6=0的一个根,并要求绝对误差不超过0.001. 第1处:int r;应改为double r; 第2处:while(fabs(n-m)<0.001)应改为while(fabs(n-m)>0.001) 第15题判断字符ch是否与str所指串中的某个字符相同;若相同则什么也不做,若不同,则将其插在串的最后。 第1处:void fun(char str,char ch)应改为void fun(char*str,char ch) 第2处:if(*str==ch)应改为if(*str=='\0') 第3处:str[1]='0';应改为str[1]='\0';或str[1]=0; 第16题函数Creatlink的功能是:创建带头节点的单项链表,并为各结点数据域赋0到m-1的值。 第1处:p->next=NULL;应改为p=s; 第2处:s->data=rand()%m;应改为s->data=rand()%(m-1); 第3处:return p;应改为return h; 第17题计算并输出K以内最大的十个能被13或17整除的自然数之和 第1处:if((k%13=0)||(k%17=0))应改为if((k%13==0)||(k%17==0)) 第2处:应填} 第18题实现两个整数的交换 第1处:void fun(int a,int b)应改为void fun(int*a,int*b) 第2处:t=b;b=a;a=t;应改为t=*b;*b=*a;*a=t; 第19题从低位开始取出长整形s中偶数位上的数,依次构成一个新数放在t中。 第1处:void fun(long s,long t)应改为void fun(long s,long*t) 第2处:while(s<0)应改为while(s>0) 第20题N个有序整数数列已放在一维数组中….利用折半查找算法查找整数m在数组中的位置。若找到,则返回其下标值;反之,则返回-1. 第1处:void fun(int a[],int m)应改为int fun(int a[],int m) 第2处:if(m>=a[mid])应改为if(m>a[mid]) 第21题建立一个带头节点的单项链表,并用随机函数为各结点数据域赋值。 第1处:p=h;应改为p=h->next; 第2处:p=h->next;应改为p=p->next; 第22题根据整型参数m,计算如下公式的值t=1+1/2*2+1/3*3+…1/m*m 第1处:for(i=2;i 第2处:y+=1/(i*i);应改为y+=1.0/(i*i); 第23题按以下递归方式求函数值 fun(n)=10 (n=1)和fun(n-1)+2第1处:int fun(n)应改为int fun(int n) 第2处:if(n=1)应改为if(n==1) 第24题从s所指字符串中,找出t所指字符串的个数作为函数值返回。 第1处:if(r==p)应改为if(*r==*p) 第2处:if(r=='\0')应改为if(*r=='\0') 第25题计算n! 第1处:if n==0应改为if(n==0) 第2处:result=n--;应改为result*=n--; 第26题先从键盘输入一个3行3列矩阵的各个元素的值,然后输出主对角线元素之和 第1处:应填sum=0; 第2处:scanf("%d,",a[i][j]);应改为scanf("%d,",&a[i][j]); 第27题根据以下公式求3.14值,并作为函数值返回 第1处:t=0;应改为t=1.0; 第2处:while(t<=eps)应改为while(t>=eps) 第28题在字符串的最前端加入n个*,形成新串,并且覆盖原串 第1处:s=p;应改为p=s; 第2处:应填p++;或++p;或p+=1;或p=p+1 第3处:a[i]='0';应改为a[i]='\0';或a[i]=0; 第29题求出两个非零正整数的最大公约数,并作为函数值返回 第1处:b=a;应改为a=b; 第2处:return(a);应改为return(b); 第30题计算正整数num的各位上的数字之积 第1处:long k;应改为long k=1; 第2处:num\=10;应改为num/=10; 第31题将字符串tt中的小写字母都改为对应的大写字母,其他字符不变。 第1处:if((tt[i]>='a')||(tt[i]<='z'))应改为if((tt[i]>='a')&&(tt[i]<='z')) 第2处:tt[i]+=32;应改为tt[i]-=32; 第32题按顺序给s所指数组中的元素赋予2开始的偶数,然后…. 第1处:if(i+1%5==0)应改为if((i+1)%5==0) 第33题将s所指字符串中的字母转换为按字母序列的后续字母,其他的字符不变 第1处:while(*s!='@')应改为while(*s)或while(*s!='\0')或while(*s!=0) 第2处:(*s)++;应改为s++; 第34题将长整形数中每一位上为奇数的数依次取出,构成一个新数放在t中 第1处:t=0;应改为*t=0; 第2处:if(d%2==0)应改为if(d%2!=0) 第35题将p所指字符串中每一个单词的最后一个字母改成大写 第1处:if(p=='')应改为if(*p=='') 第2处:*p=toupper(*(p-1));应改为*(p-1)=toupper(*(p-1)); 第36题求三个数的最小公倍数, 第1处:j=1;应改为j=0; 第2处:while(t!=0&&m!=0&&n!=0)应改为while(t!=0||m!=0||n!=0) 第37题计算s所指字符串中含有t所指字符串的数目并作为函数值返回 第1处:*r=t;应改为r=t;或r=&t[0]; 第2处:应填r=t;或r=&t[0]; 第38题通过某种方式实现两个变量的交换,规定不允许增加语句和表达式 第1处:t=x;x=y;应改为t=*x;*x=y; 第2处:return(y);应改为return(t);或return t; 第39题s所指字符串的正序和反序进行链接,形成一个新串放在t所指的数组中 第1处:void fun(char s,char t)应改为void fun(char*s,char*t) 第2处:t[2*d-1]='\0';应改为t[2*d]='\0';或t[d+i]='\0';或t[2*d]=0;或t[d+i]=0; 第40题将n个无序整数从小到大排序 第1处:for(i=j+1;i 第2处:t=i;应改为p=i; 第41题建立一个带头节点的单项链表,并用随机函数为各节点赋值。fun的功能是将单向链表结点数据域为偶数的值累加起来, 第1处:while(p->next)应改为while(p!=NULL) 第2处:p=h->next;应改为p=p->next; 第42题将字符串s中位于奇数位置的字符或ASCII码为偶数的字符依次放入字符串t中 第1处:if(i%2&&s[i]%2==0)应改为if(i%2||s[i]%2==0)或if(i%2!=0||s[i]%2==0) 第2处:t[i]='\0';应改为t[j]='\0';或t[j]=0; 第43题找到100至n(不大于100)之间三个位上的数字都相等的所有整数,把这些整数放在s所指数组中,个数作为函数值返回。 第1处:k=n;应改为k=i; 第2处:b=k/10;应改为b=k%10; 第44题根据形参m的值(2<=m<=9)在m行m列的二维数组中存放如下所示的数据 第1处:fun(int**a,int m)应改为void fun(int(*a)[M],int m) 第2处:a[j][k]=k*j;应改为a[j][k]=(k+1)*(j+1); 第45题将s所指字符串中最后一次出现的t1所指字符串替换成t2所指子串, 第1处:void fun(char*s,t1,t2,w)应改为void fun(char*s,char*t1,char*t2,char*w) 第2处:while(w)应改为while(*w) 第46题已知一个数列从第0项开始的前三项分别为0、0、1以后,以后的各项都是其相邻的前三项之和。 第1处:fun(int n)应改为double fun(int n) 第2处:return sum应改为return sum; 第47题求出数组中最大数和次最大数并把最大数和a[0]中的数对调、此最大数和a[1]中的数对调。 第1处:void fun(int*a,int n);应改为void fun(int*a,int n) 第2处:m=0;应改为m=i; 第48题从N个字符串中找到最长的那个串,并将其地址作为函数值返回 第1处:fun(char(*sq)[N])应改为char*fun(char(*sq)[M]) 第2处:return sq;应改为return sp; 第49题对N名学生的学习成绩,按从高到低的顺序找出前m(m<=10)名学生来, 第1处:*t=malloc(sizeof(STU));应改为t=(STU*)malloc(sizeof(STU)*m); 第2处:t[k].num=b[j].num;应改为strcpy(t[k].num,b[j].num); 第50题先将在字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序连接到t 串的后面 第1处:t[i]=s[s1-i];应改为t[i]=s[s1-i-1];或t[i]=s[s1-1- 51.下列给定程序中,函数fun的功能是:将m(1<=m<=10)个字符串连接起来,组成一个新串,放在pt所指向字符串中,例如:把3个串abc,CD,EF串联起来,结果是abcCDEF. 请改正程序中的错误,使它能计算出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 第1处:void fun(char str[][],int m,char*pt)应改为void fun(char str[][10],int m,char*pt) 第2处:pt[i]=str[k,i];应改为pt[i]=str[k][i]; 52.下列给定程序中,函数fun的功能是:给定n个实数,输出平均值,并统计在平均值以上(含平均值)的实数个数。例如,n=8时,输193.199,195.673,195.757,196.051,196.092,196.596,196.579,196.763所得平均值为195.838750,在平均值以上的实数个数为5. 请改正程序中的错误,使它能计算出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构 第1处:int fun(double x[],int n)应改为int fun(double x[],int n){ 53.下列给定程序中,函数fun的功能是:用递归算法计算斐波拉级数数列中第n项的值。从第一项起,斐波拉级数序列为1、1、2、3、5、8、13、21.........例如,若给n输入7,该项的斐波拉级数值为13. 请改正程序中的错误,使它能计算出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构 第1处:switch(g);应改为switch(g) 第2处:case 1;应改为case 1: 54.下列给定程序中,函数fun的功能是:比较两个字符串,将长的那个字符串的首地址作为函数值返回。 请改正程序中的错误,使它能计算出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构 第1处:double fun(char*s,char*t)应改为char*fun(char*s,char*t) 第2处:(*ss)++;应改为ss++; 第3处:(*tt)++;应改为tt++; 55.下列给定程序中,函数fun的功能是:为一个偶数寻找两个素数,这两个素数之和等于 该偶数,并将这两个素数通过形参指针传回主函数。 请改正程序中的错误,使它能计算出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构 第1处:y=0;应改为y=1; 第2处:d=i-a;应改为d=a-i; 56.下列给定程序中,函数fun的功能是:用冒泡法对6个字符串按由小到大的顺序进行排序。 请改正程序中的错误,使它能计算出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构 第1处:void fun(char(*pstr)[6])应改为void fun(char*pstr[6]) 第2处:if(strcmp(*(pstr+i),pstr+j)>0)应改为if(strcmp(*(pstr+i),*(pstr+j))>0) 第3处:*(pstr+i)=pstr+j;应改为*(pstr+i)=*(pstr+j); 57.下列给定程序中,函数fun的功能是:首先把b所指字符串中的字符按逆序存放,然后将a所指字符串中的字符和b所指字符串中的字符,按排列的顺序交叉合并到c所指数组中,过长的剩余字符接在c所指数组的尾部。例如,当a所指字符串中的内容为abcdefg, b所指字符串中的内容为1234,c所指数组中的内容为a4b3c2d1efg,而当a所指字符串中的内容为1234, b所知字符串中的内容为abcdefg时,c所指数组中的内容应该为1g2f3e4dcba. 请改正程序中的错误,使它能计算出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构 第1处:while(i>j)应改为while(i 第2处:c=0;应改为*c='\0';或*c=0; 58.下列给定程序中,函数fun的功能是:现将在字符串s中的字符按正序存放到t串中,然后把s中的字符按逆序连接到t串的后面。例如:当s中的字符串为ABCDE时,则t 中的字符串应该为ABCDEEDCBA. 请改正程序中的错误,使它能计算出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构 第1处:for(i=0;i<=s1;i++)应改为for(i=0;i 第2处:t[s1]='\0';应改为t[2*s1]='\0'; 59下列给定程序中,函数fun的功能是:统计字符串中各元音字母(即:A E I O U)的个数。注意:字母不分大、小写。例如:若输入THIs is a boot,则输出应该时1、0、2、2、0. 请改正程序中的错误,使它能计算出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构 第1处:void fun(char*s,int num[5]);应改为void fun(char*s,int num[5]) 第2处:num[i]=0;应改为num[k]=0; 第3处:switch(s)应改为switch(*s) 60下列给定程序中,函数fun的功能是:找出一个大于给定整数m且紧随m的素数,并作为函数值返回。 请改正程序中的错误,使它能计算出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构 第1处:if(i%k!=0)应改为if(i%k==0) 第2处:if(k=i) 61.下列给定程序中,函数fun的功能是:根据整型形参m,计算如下公式的值。 Y=1/100*100+1/200*200+1/300*300+.......+1/m*m 例如,若m=2000,则应该输出:0.000160. 请改正程序中的错误,使它能计算出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 第1处:fun(int m)应改为double fun(int m) 第2处:for(i=100,i<=m,i+=100)应改为for(i=100;i<=m;i+=100) 62.下列给定程序中,函数fun的功能是:计算并输出high以内最大的10个素数之和。High 由主函数传给fun函数。若high的值为100,则函数的值为732. 请改正程序中的错误,使它能计算出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 第1处:break应改为break; 63下列给定程序中,函数fun的功能是:将字符串p中的所有字符复制到字符串b中,要求每复制三个字符之后插入以个空格。例如,在调用fun函数之前给字符串a输入ABCDEFGHIJK,调用函数之后,字符串b中的内容则为ABC DEF GHI JK. 请改正程序中的错误,使它能计算出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 第1处:i=1;应改为i=0; 第2处:while(i<3||*p)应改为while(i<3&&*p) 第3处:b[k]='';应改为b[k++]=''; 64.下列给定程序中,函数fun的功能是:将大写字母转换为对应小写字母之后的第五个字母:若小写字母为v-z,是小写字母的值减21,转换后的小写字母作为函数值返回。 请改正程序中的错误,使它能计算出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 第1处:c=c-32;应改为c=c+32; 第2处:c=c-5;应改为c=c+5; 65.下列给定程序中,函数fun的功能是:从低位开始取出长整型变量s中的齐数位上的数,依次构成一个新数放在t中,例如:当s总的数为7654321时,t中的数为7531. 请改正程序中的错误,使它能计算出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构 第1处:void fun(long s,long t)应改为void fun(long s,long*t) 第2处:s1=s1*100;应改为s1=s1*10; 66.下列给定程序中,函数fun的功能是:求出以下分数序列的前n项之和。 2/1,3/2,5/3,8/5,13/8,21/13........... 和值通过函数值返回mian()函数。例如:若n=5则应该输出8.391667 请改正程序中的错误,使它能计算出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构 第1处:fun(int n)应改为double fun(int n) 第2处:b+=c;应改为b=c; 67下列给定程序中,函数fun的功能是:应用递归算法求某数a的平方根.求平方根的替代公式如下: x1=1/2(x0+a/x0) 例如:2的平方根值为1.414214 请改正程序中的错误,使它能计算出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构 第1处:fun(double a,double x0)应改为double fun(double a,double x0) 第2处:if(abs(x1-x0)>=1e-6)应改为if(fabs(x1-x0)>=1e-6) 68下列给定程序中,函数fun的功能是:根据输入的三个边长(整型值)判断能否构成三角形;构成的是等边三角形,还是等腰三角形,若能构成等边三角形函数返回3,若能构成等腰三角形函数返回2,若能构成三角形函数返回1,若不能构成三角形函数返回0 请改正程序中的错误,使它能计算出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构 第1处:return 1;应改为return 3; 第2处:return 3;应改为return 1; 69.下列给顶程序的功能是:读入一个英文文本行,将其中每个单词的第一个字母改成大写,然后输出次文本行.例如,若输入I am a student to taske the examination ,则应输出I Am A Student To Take The Examination. 请改正程序中的错误,使它能计算出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构 第1处:void upfst(char p)应改为void upfst(char*p) 70.下列给定程序中,函数fun的功能是:从整数1到55之间,选出能被3整除、且有一为以上的数是5的那些数,并把这些数放在b所指的数组中,这些数的个数作为函数值返回。规定,函数中a1放各位数,a2 放十位数。 请改正程序中的错误,使程序能得出正确的结果。 注意:不要改动main函数,不得增行或减行,也不得更改程序的结构。 第1处:int fun(int*b);应改为int fun(int*b) 第2处:for(k=10;k<=55;k++)应改为for(k=1;k<55;k++) 第3处:return k;应改为return i 71下列给定程序中,函数fun的功能是:求K!(K<13),所求阶乘的值作为函数值返回。例如:若K=10,则应输出3628800. 请改正程序中的错误,使程序能得出正确的结果。 注意:不要改动main函数,不得增行或减行,也不得更改程序的结构。 第71题答案 第1处:if k>1应改为if(k>1) 72下列给定程序中,函数fun的功能是:统计子字符串substr在字符串str中出现的次数。例如,若字符串为aaas lkaaas,子字符串为as,则应输出2. 请改正程序中的错误,使程序能得出正确的结果。 注意:不要改动main函数,不得增行或减行,也不得更改程序的结构。 第72题答案 第1处:int fun(char*str,*substr)应改为int fun(char*str,char*substr) 第2处:for(i=0,str[i],i++)应改为for(i=0;str[i];i++) 73. 下列给定程序中,函数fun的功能是:传入一个整数m,计算如下公式的值。 T=1-1/2-1/3-……-1/m 例如,若输入5,则应输出-0.283333. 请改正程序中的错误,使程序能得出正确的结果。 注意:不要改动main函数,不得增行或减行,也不得更改程序的结构。 第73题答案 第1处:t=1.0-1/i;应改为t-=1.0/i;或t=t-1.0/i;或t-=(double)1/i; 第2处:应填return t; 74. 下列给定程序中,函数fun的功能是:利用插入排序法对字符串中的字符按从小到大的顺序进行排序,插入法的基本算法是:先对字符串中的头两个元素进行排序。然后把第三个字符插入到前两个字符中,插入后前三个字符依然有序:再把第四个字符插入到前三个字符中,。。。。。待排序的字符串已在主函数中赋予。 请改正程序中的错误,使程序能得出正确的结果。 注意:不要改动main函数,不得增行或减行,也不得更改程序的结构。 第74题答案 程序改错------------------------------------- 1题目:在一个一维整型数组中找出其中最大的数及其下标。 程序中共有4条错误语句,请改正错误。 -----------------*/ #define N 10 /**********FOUND**********/ float fun(int *a,int *b,int n) { int *c,max=*a; for(c=a+1;cmax) { max=*c; /**********FOUND**********/ b=c-a;} return max; } main() { int a[N],i,max,p=0; printf("please enter 10 integers:\n"); for(i=0;i 下列程序是建立一个包含学生有关数据的单向链表。但该程序有2个错误,错误出现在每个注释行附近,请调试改正。调试改正中,不得改变程序结构,也不得增删语句。 #define NULL 0 struct stud { long num; char name[10]; float score; struct stud *next; }; /* …………… comment …………… */ int n; struct stud create() 序中有两处错误代码,请改正.注意,不得改变程序结构。 #include <> main() { int a[8],*p=a; int i,j; int tempmin,tempcode; printf("\n input the numbers:\n"); for (i=0;i<8;i++) scanf("%d",p+i); tempmin=*p; for (i=0;i<7;i++) { for (j=i;j<8;j++) if (j==i||*(p+j) 【程序改错】 1.功能:利用递归函数调用方式,将所输入的5个字符,以相反顺序 打印出来。 char next; next=getchar(); palin(n-1); 2.功能:求广义菲玻那契级数的第n项。广义菲玻那契级数的前n 项为: 1,1,1,3,5,9,17,31,…… 项值通过函数值返回 main ( )函数。 例如:若 n = 15,则应输出:The value is: 2209。 for (k=4; k<=n; k++) a=b; return d; 3.功能:根据整型形参m,计算如下公式的值: y=1/2+1/8+1/18+...+1/2m*m double y=0.0; 4.功能:编制统计营业员一天的营业额的程序,设程序采用一个循环 实现,每次循环输入一笔交易金额并累计营业额。由于营 业员一天完成的交易次数是不确定的,为此以最后附加输 入一笔0或负数交易额作为交易金额已全部输入结束的标志。 float sale,sigma; scanf("%f",&sale); sigma=sigma+sale; 5.功能:读取7个数(1-50)的整数值,每读取一个值,程序打印出该值个数的*。while(n<8) while(a<1||a>50); for(i=0;i 1、以下程序的功能是求如下表达式: 1 1 1 S = 1 + ——+ ———+ ...... + ——————— 1+2 1+2+3 1+2+3+......+n 『答案』:1 scanf("%d",&n); 2 float fun(int n) 3 for(i=1;i<=n;i++) 4 s+=1.0/t 或s= s + 1.0 /t; 2、题目:函数fun的功能是:根据整型形参m的值,计算如下公式的值。 1 1 1 t = 1- ——- ——- ... - —— 2x2 3x3 mxm 例如,若m=5,则应输出:0.536389 『答案』:1 for(i=2;i<=m;i++)或for(i=2;i 第12次上机程序改错第1题 【程序改错】 -------------------------------------------------------- 功能:求二分之一的圆面积,函数通过形参得到圆的半径,函数返回二分之一的圆面积。 例如:输入圆的半径值:19.527 输出为:s = 598.950017。 ------------------------------------------------------*/ #include printf ( "Enter x: "); scanf ( "%f", &x ); printf (" s = %f\n ", fun ( x ) ); } 第2题【程序改错】 功能:先将在字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序连接到t串的后面。 例如:当s中的字符串为:“ABCDE”时,则t中的字符串应为:“EDCBAABCDE”。 ------------------------------------------------------*/ #include (一)功能:用选择法对数组中的n个元素按从小到大的顺序进行排序。#include "stdio.h" #define N 20 void fun(int a[], int n) { int i, j, t, k; for (j = 0 ;j < n-1 ;j++) { /**********ERROR**********/ k = j for (i = j+1;i < n; i++) /**********ERROR**********/ if(a[i] >a[k]) /**********ERROR**********/ k=j; t = a[k] ; a[k] = a[j] ; a[j] = t; } } main() { int a[N]={9,6,8,3,-1},i, m = 5; printf("排序前的数据:") ; for(i = 0;i < m;i++) printf("%d ",a[i]); printf("\n"); fun(a,m); printf("排序后的数据:") ; for(i = 0;i < m;i++) printf("%d ",a[i]); printf("\n"); } 【参考答案】 k = j; 【参考答案】 if(a[i] < a[k]) if(a[k] > a[i]) 【参考答案】 k = i; (二)功能:求广义菲玻那契级数的第n项。广义菲玻那契级数的前n 项为: 1,1,1,3,5,9,17,31,…… 项值通过函数值返回 main ( )函数。 例如:若 n = 15,则应输出:The value is: 2209。 #include "conio.h" #include "stdio.h" long fun ( int n ) { long a=1, b=1, c=1, d=1, k; /**********ERROR**********/ for (k=4; kc语言程序改错题
C语言程序改错及填空题
c语言程序改错
C语言程序改错2
C语言程序改错题
程序改错完整版---C语言
齐齐哈尔大学C语言题库 程序改错(部分)