二级C语言改错题精选.docx
- 文档编号:6592164
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:19
- 大小:26.10KB
二级C语言改错题精选.docx
《二级C语言改错题精选.docx》由会员分享,可在线阅读,更多相关《二级C语言改错题精选.docx(19页珍藏版)》请在冰豆网上搜索。
二级C语言改错题精选
改错题答案
第1题读入一个整数k(2<=k<=1000),打印它的所有质因子(即所有为素数的因子)。
第1处:
IsPrime(intn);应改为IsPrime(intn)
第2处:
if!
(n%i)应改为if(!
(n%i))
第2题fun函数的功能是:
逐个比较a、b两个字符串对应位置中的字符,把ASCII值大于或相等的字符依次存放到c数组中,形成一个新的字符串。
第1处:
intk=1;应改为intk=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处:
voidfun(char*s,inta,intb)应改为voidfun(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处: voidfun(char*p);应改为voidfun(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处: voidfun(char*s,*t1,*t2,*w)应改为voidfun(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处: 应填returnt; 第14题函数fun和funx的功能: 用二分法求方程2x*x*x-4x*x+3x-6=0的一个根,并要求绝对误差不超过0.001. 第1处: intr;应改为doubler; 第2处: while(fabs(n-m)<0.001)应改为while(fabs(n-m)>0.001) 第15题判断字符ch是否与str所指串中的某个字符相同;若相同则什么也不做,若不同,则将其插在串的最后。 第1处: voidfun(charstr,charch)应改为voidfun(char*str,charch) 第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处: returnp;应改为returnh; 第17题计算并输出K以内最大的十个能被13或17整除的自然数之和 第1处: if((k%13=0)||(k%17=0))应改为if((k%13==0)||(k%17==0)) 第2处: 应填} 第18题实现两个整数的交换 第1处: voidfun(inta,intb)应改为voidfun(int*a,int*b) 第2处: t=b;b=a;a=t;应改为t=*b;*b=*a;*a=t; 第19题从低位开始取出长整形s中偶数位上的数,依次构成一个新数放在t中。 第1处: voidfun(longs,longt)应改为voidfun(longs,long*t) 第2处: while(s<0)应改为while(s>0) 第20题N个有序整数数列已放在一维数组中….利用折半查找算法查找整数m在数组中的位置。 若找到,则返回其下标值;反之,则返回-1. 第1处: voidfun(inta[],intm)应改为intfun(inta[],intm) 第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处: intfun(n)应改为intfun(intn) 第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处: ifn==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处: longk;应改为longk=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);或returnt; 第39题s所指字符串的正序和反序进行链接,形成一个新串放在t所指的数组中 第1处: voidfun(chars,chart)应改为voidfun(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,intm)应改为voidfun(int(*a)[M],intm) 第2处: a[j][k]=k*j;应改为a[j][k]=(k+1)*(j+1); 第45题将s所指字符串中最后一次出现的t1所指字符串替换成t2所指子串, 第1处: voidfun(char*s,t1,t2,w)应改为voidfun(char*s,char*t1,char*t2,char*w) 第2处: while(w)应改为while(*w) 第46题已知一个数列从第0项开始的前三项分别为0、0、1以后,以后的各项都是其相邻的前三项之和。 第1处: fun(intn)应改为doublefun(intn) 第2处: returnsum应改为returnsum; 第47题求出数组中最大数和次最大数并把最大数和a[0]中的数对调、此最大数和a[1]中的数对调。 第1处: voidfun(int*a,intn);应改为voidfun(int*a,intn) 第2处: m=0;应改为m=i; 第48题从N个字符串中找到最长的那个串,并将其地址作为函数值返回 第1处: fun(char(*sq)[N])应改为char*fun(char(*sq)[M]) 第2处: returnsq;应改为returnsp; 第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处: voidfun(charstr[][],intm,char*pt)应改为voidfun(charstr[][10],intm,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处: intfun(doublex[],intn)应改为intfun(doublex[],intn){ 53.下列给定程序中,函数fun的功能是: 用递归算法计算斐波拉级数数列中第n项的值。 从第一项起,斐波拉级数序列为1、1、2、3、5、8、13、21.........例如,若给n输入7,该项的斐波拉级数值为13. 请改正程序中的错误,使它能计算出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构 第1处: switch(g);应改为switch(g) 第2处: case1;应改为case1: 54.下列给定程序中,函数fun的功能是: 比较两个字符串,将长的那个字符串的首地址作为函数值返回。 请改正程序中的错误,使它能计算出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构 第1处: doublefun(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处: voidfun(char(*pstr)[6])应改为voidfun(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的功能是: 统计字符串中各元音字母(即: AEIOU)的个数。 注意: 字母不分大、小写。 例如: 若输入THIsisaboot,则输出应该时1、0、2、2、0. 请改正程序中的错误,使它能计算出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构 第1处: voidfun(char*s,intnum[5]);应改为voidfun(char*s,intnum[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(intm)应改为doublefun(intm) 第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中的内容则为ABCDEFGHIJK. 请改正程序中的错误,使它能计算出正确的结果。 注意: 不要改动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处: voidfun(longs,longt)应改为voidfun(longs,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(intn)应改为doublefun(intn) 第2处: b+=c;应改为b=c; 67下列给定程序中,函数fun的功能是: 应用递归算法求某数a的平方根.求平方根的替代公式如下: x1=1/2(x0+a/x0) 例如: 2的平方根值为1.414214 请改正程序中的错误,使它能计算出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构 第1处: fun(doublea,doublex0)应改为doublefun(doublea,doublex0) 第2处: if(abs(x1-x0)>=1e-6)应改为if(fabs(x1-x0)>=1e-6) 68下列给定程序中,函数fun的功能是: 根据输入的三个边长(整型值)判断能否构成三角形;构成的是等边三角形,还是等腰三角形,若能构成等边三角形函数返回3,若能构成等腰三角形函数返回2,若能构成三角形函数返回1,若不能构成三角形函数返回0 请改正程序中的错误,使它能计算出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构 第1处: return1;应改为return3; 第2处: return3;应改为return1; 69.下列给顶程序的功能是: 读入一个英文文本行,将其中每个单词的第一个字母改成大写,然后输出次文本行.例如,若输入Iamastudenttotasketheexamination,则应输出IAm
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二级 语言 改错 精选