C语言改错题答案(精选)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

改错题答案

第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;

相关文档
最新文档