《2023年改错题答案.docx》由会员分享,可在线阅读,更多相关《2023年改错题答案.docx(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2023年改错题答案 改错题答案 第1题读入一个整数k(2 第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+=si; 第2处:sj=0;应改为sj=0
2、; 第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;i void fun(char*s,char*t1,char*t2,char*w) 第2处:while(r)应改为while(*r) 第1
3、1题 将一个由八进制数字字符组成的字符串转换为与其面值相等的十进制整数 第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的功能:用
4、二分法求方程2x*x*x-4x*x+3x-6=0的一个根,并要求绝对误差不超过0.001.第1处:int r;应改为double r; 第2处 : while(fabs(n-m) 应 改 为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处:str1=0;应改为str1=0;或str1=0; 第16题 函数Cr
5、eatlink的功能是:创建带头节点的单项链表,并为各结点数据域赋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
6、;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 fun(int a,int m) 第2处:if(m=amid)应改为if(mamid) 第21题 建立一个带头节点的单项链表,并用随机函数
7、为各结点数据域赋值。 第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 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应改为
8、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=eps) 第28题 在字符串的最前端加入n个*,形成新串,并且覆盖原串 第1处:s=p;应改为p=s; 第2处:应填p+;或+p;或p+=1;或p=p+1 第3处:ai=0;应改为ai=0;或ai=0; 第29题 求出两个非零正整数
9、的最大公约数,并作为函数值返回 第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 应 改 为if(tti=a)&(tti 第1处:while(*s!=)应改为while(*s)或while(*s!=0)或while(*s!=0) 第2处:(*s)+;应改为s+; 第34题 将长整形数中每一位上为奇数的数依次取
10、出,构成一个新数放在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=&t0;
11、 第2处:应填r=t;或r=&t0; 第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处:t2*d-1=0;应改为t2*d=0;或td+i=0;或t2*d=0;或td+i=0; 第40题 将n个无序整数从小到大排序 第1处:for(i=j+1;inext)应改为
12、while(p!=NULL) 第2处:p=h-next;应改为p=p-next; 第42题将字符串s中位于奇数位置的字符或ASCII码为偶数的字符依次放入字符串t中 第1处:if(i%2&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 第1处:fun(int*a,int m)应改为
13、void fun(int(*a)M,int m) 第2处:ajk=k*j;应改为ajk=(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
14、 sum; 第47题求出数组中最大数和次最大数并把最大数和a0中的数对调、此最大数和a1中的数对调。 第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 : *t=malloc(sizeof(STU); 应 改 为t=(STU*)malloc(s
15、izeof(STU)*m); 第2处:tk.num=bj.num;应改为strcpy(tk.num,bj.num); 第50题 先将在字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序连接到t串的后面 第1处:ti=ss1-i;应改为ti=ss1-i-1;或ti=ss1-1aa a(此外aa.aa表示n个a,a和n的值在1至9之间)。例如,a=3,n=6,则以上表达式为: s=333333-33333-3333-333-33-3 其值是296298.a和n是fun函数的形参,表达式的值作为函数值main函数。 请改正程序中的错误,使程序能得出正确的结果。 注意:不要改动main函数,不
16、得增行或减行,也不得更改程序的结构 第92题答案 第1处:long s=0,t=1;应改为long s=0,t=0; 第2处:for(j=0;j 例如,程序运行后,输入0.0001,则程序输出3.1414 请改正程序中的错误,使程序能得出正确的结果。 注意:不要改动main函数,不得增行或减行,也不得更改程序的结构 第93题答案 第1处:while(t=num)应改为while(fabs(t)=num) 第2处:t=s%n;应改为t=s/n; 94在主函数中从键盘输入若干个数放入数组中,用0结束输入并放在最后一个元素中。下列给定程序中,函数fun的功能是:计算数组元素中的值为正数的平均值(不包
17、括0)例如;数组中元素的值依次为39,-47,21,2,-8,15,0,则程序的运行的结果为19.250000.请改正程序中的错误,使程序能得出正确的结果。 注意:不要改动main函数,不得增行或减行,也不得更改程序的结构 第94题答案 第1处:int sum=0.0;应改为double sum=0.0; 第2处:sum=c;应改为sum/=c; 95下列给定程序中,函数fun的功能是:计算平输出下列数的前N项之和SN,直到Sn+1大于q为止,q的值通过形参传入。 SN=2/1+3/2+4/3.+N+1/N 例如,若q的值为50.0,则函数值为49.394948 请改正程序中的错误,使程序能得
18、出正确的结果。 注意:不要改动main函数,不得增行或减行,也不得更改程序的结构 第95题答案 第1处:s=s+(n+1)/n;应改为s=s+(double)(n+1)/n; 第2处:return s;应改为return t; 96下列给定程序中,函数fun的功能是:求S的值。设 S=(2/1*3)*(42/3*5)*(62/5*7)*.*(2K2)/(2K-1)*(2K+1) 例如,当K为10时,函数值应为1.533852 请改正程序中的错误,使程序能得出正确的结果。 注意:不要改动main函数,不得增行或减行,也不得更改程序的结构 第96题答案 第1处:fun(int k)应改为doubl
19、e fun(int k) 第2处:return s应改为return s; 97下列给定程序中,函数fun的功能是:计算 S=f(-n)+f(-n+1)+.+f(0)+f(1)+f(2)+.+f(n)的值。 例如,当n为5时,函数值应为10.407143.f(x)函数定义如下: 请改正程序中的错误,使程序能得出正确的结果。 注意:不要改动main函数,不得增行或减行,也不得更改程序的结构 第97题答案 第1处:f(double x)应改为double f(double x) 第2处:return s应改为return s; 98下列给定程序中,函数fun的功能是:计算函数F(x,y,z)=(x
20、+y)/(x-y)+(z+y)/(z-y)的值。其中x和y的值不等。例如,当x的值为 9、y的值为 11、z的值为15时,函数值为-3.50.请改正程序中的错误,使程序能得出正确的结果。 注意:不要改动main函数,不得增行或减行,也不得更改程序的结构 第98题答案 第1处:#define FU(m,n)(m/n)应改为#define FU(m,n)(m)/(n) 第2处:Return(value);应改为return(value); 99数列中。第一项值为3,后一项都比前一项的值增5;下列给定程序中,函数fun的功能是:计算前n(4 注意:不要改动main函数,不得增行或减行,也不得更改程序
21、的结构 第99题答案 第1处:int i,j,k,sum;应改为int i,j=0,k,sum; 第2处:if(sum%4=2)应改为if(sum%4=2) (100)下列给定程序中,函数fun的功能是:统一一个无符号整数中各位数字值为零的个数,通过形参传回主函数:并把该整数中各位上最大的数字值作为函数值返回。例如,若输入无符号整数30800,则数字值为零的个数为3,各位上数字最大的 是8.请改正程序中的错误,使程序能得出正确的结果。 注意:不要改动main函数,不得增行或减行,也不得更改程序的结构 第100题答案 第1处:if(t=0)应改为if(t=0) 第2处:zero=count;应改为*zero=count; 改错题答案 改错题 改错题 改错题 改错题 改错题 改错题 改错题 改错题 改错题