1、C语言改错题答案精选改错题答案第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处:sj=si;应改为sj+
2、=si;第2处:sj=0;应改为sj=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处:ai+1=ai;应改为ai=ai+1;第6题计算如下公式的值 t=1-1/2*2-1/3*3-1/m*m第1处:for(i=2;im;i+)应改为for(i=2;i=m;i+)第2处:y-=1/(i*i);应改为y-=1.0/(i*i);第7题
3、 用选择法对数组中的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=sk;应改为t+=sk;第2处:*aver=&ave;应改为*aver=ave;第10题 将s所指字符串中出现的t1所指字符串全部替换成
4、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处
5、: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)第15题 判断字符ch是否与str所指串中的某个字符相同;若相同则什么也不做,若不同,则将其插在串的最后。第1处:void fun(char str,char ch)应改为void fu
6、n(char*str,char ch)第2处:if(*str=ch)应改为if(*str=0)第3处:str1=0;应改为str1=0;或str1=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处:应
7、填第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(s0)第20题 N个有序整数数列已放在一维数组中.利用折半查找算法查找整数m在数组中的位置。若找到,则返回其下标值;反之,则返回-1.第1处:void fun(int a,int m)应改为int fu
8、n(int a,int m)第2处:if(m=amid)应改为if(mamid)第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;im;i+)应改为for(i=2;i=m;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
9、 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,aij);应改为scanf(%d,&aij);第27题 根据以下公式求3.14值,并作为函数值返回第1处:t=0;应改为t=1.0;第2处:while(t
10、=eps)第28题 在字符串的最前端加入n个*,形成新串,并且覆盖原串第1处:s=p;应改为p=s;第2处:应填p+;或+p;或p+=1;或p=p+1第3处:ai=0;应改为ai=0;或ai=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(tti=a)|(tti=a)&(tti=z)
11、第2处:tti+=32;应改为tti-=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处:i
12、f(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=&t0;第2处:应填r=t;或r=&t0;第38题 通过某种方式实现两个变量的交换,规定不允许增加语句和表达式第1处:t=x;x=y;应改为t=*x;*x=y;第2处:return(y);应改为return(t)
13、;或return t;第39题 s所指字符串的正序和反序进行链接,形成一个新串放在t所指的数组中第1处:void fun(char s,char t)应改为void fun(char*s,char*t)第2处:t2*d-1=0;应改为t2*d=0;或td+i=0;或t2*d=0;或td+i=0;第40题 将n个无序整数从小到大排序第1处:for(i=j+1;in-1;i+)应改为for(i=j+1;inext)应改为while(p!=NULL)第2处:p=h-next;应改为p=p-next;第42题将字符串s中位于奇数位置的字符或ASCII码为偶数的字符依次放入字符串t中第1处:if(i%2
14、&si%2=0)应改为if(i%2|si%2=0)或if(i%2!=0|si%2=0)第2处:ti=0;应改为tj=0;或tj=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处:ajk=k*j;应改为ajk=(k+1)*(j+1);第45题 将s所指字符串中最后一次出现
15、的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题求出数组中最大数和次最大数并把最大数和a0中的数对调、此最大数和a1中的数对调。第1处:void fun(int*a,int n);应改为voi
16、d 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处:tk.num=bj.num;应改为strcpy(tk.num,bj.num);第50题 先将在字符串s中的字符按逆序存放到t串
17、中,然后把s中的字符按正序连接到t串的后面第1处:ti=ss1-i;应改为ti=ss1-i-1;或ti=ss1-1-51.下列给定程序中,函数fun的功能是:将m(1=m0)应改为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所指字符串中的内容
18、为1234, c所指数组中的内容为a4b3c2d1efg,而当a所指字符串中的内容为1234, b所知字符串中的内容为abcdefg时,c所指数组中的内容应该为1g2f3e4dcba.请改正程序中的错误,使它能计算出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构第1处:while(ij)应改为while(ii)第2处:c=0;应改为*c=0;或*c=0;58.下列给定程序中,函数fun的功能是:现将在字符串s中的字符按正序存放到t串中,然后把s中的字符按逆序连接到t串的后面。例如:当s中的字符串为ABCDE时,则t 中的字符串应该为ABCDEEDCBA.请改正程序
19、中的错误,使它能计算出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构第1处:for(i=0;i=s1;i+)应改为for(i=0;is1;i+)第2处:ts1=0;应改为t2*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 num5);应改为void fun
20、(char*s,int num5)第2处:numi=0;应改为numk=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.0
21、00160.请改正程序中的错误,使它能计算出正确的结果。注意:不要改动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
22、下列给定程序中,函数fun的功能是:将字符串p中的所有字符复制到字符串b中,要求每复制三个字符之后插入以个空格。例如,在调用fun函数之前给字符串a输入ABCDEFGHIJK,调用函数之后,字符串b中的内容则为ABC DEF GHI JK.请改正程序中的错误,使它能计算出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。第1处:i=1;应改为i=0;第2处:while(i3|*p)应改为while(i=1e-6)应改为if(fabs(x1-x0)=1e-6)68下列给定程序中,函数fun的功能是:根据输入的三个边长(整型值)判断能否构成三角形;构成的是等边三角形,还是等腰三角形,若能构成等边三角形函数返回,若能构成等腰三角形函数返回,若能构成三角形函数返回,若不能构成三角形函数返回请改正程序中的错误,使它能计算出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构第1处:return 1;应改为return 3;第2处:return 3;应改为return 1;69.下列给顶程序的功能是:读入一个英文文本行,将其中每个单词的第一个字母改成大写,然后输出次文本行例如,若输入I am a student to taske the examination ,则应输出 I Am
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1