(2)将c-=1/(k*k);改为:
c-=1.0/(k*k);
3.程序修改题
下列给定程序中,函数fun的功能是:
将s所指字符串中最后一次出现的s1所指子串替换成s2所指子串,所形成的新串放在str所指的数据中。
在此处,要求s1和s2所指字符串的长度相同。
例如,当s所指字符串中的内容为abcdabfabc,s1所指子串中的内容为ab,s2所指子串中的内容为99时,则在str所指的数组中的内容为abcdabf99c。
答案:
(1)将voidfun(char*s,s1,s2,str)改为:
voidfun(char*s,char*s1,char*s2,char*str)
(2)将while(str)改为:
while(*str)
4.程序修改题
给定程序中,函数fun的功能是:
先从键盘上输入一个3行3列矩阵的各个元素的值,然后输出主对角线元素之和。
请改正函数fun中的错误或在横线处填上适当的内容并把横线删除,使其能得出正确的结果。
答案:
(1)填sum=0;
(2)将scanf("%d",a[i][j]);改为:
scanf("%d",&a[i][j]);
5.程序修改题
给定程序中,fun函数的功能是:
求出以下分数序列的前n项之和。
2/1、3/2、5/3、8/5、13/8、21/13、……和值通过函数值返回main函数。
例如,若n=5,则应输出:
8.391667。
答案:
(1)将fun(intn)改为:
doublefun(intn)
(2)将c=a;a+=b;b+=c;改为:
c=a;a+=b;b=c;
6.程序修改题
假定整数数列中的数不重复,并存放在数组中。
给定程序中,函数fun的功能是:
删除数列中值为x的元素变量,变量n存放的是数列中元素的个数。
答案:
(1)将if(P==n)return-1;改为:
if(p==n)return-1;
(2)将a[i+1]=a[i];改为:
a[i]=a[i+1];
7.程序修改题
给定程序中,函数fun的功能是:
在字符串的最前端加入n个*号形成新串,并且覆盖原串。
注意:
字符串的长度最长允许为79。
答案:
(1)将s=p;改为:
p=s;
(2)将while(*p);改为:
while(*p++);
8.程序修改题
给定程序中,函数fun的功能是:
计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值。
其中x和y的值不等,z和y的值不等。
例如,当x的值为9、y的值为11、z的值为15时,函数值为-3.50。
答案:
(1)将FU(m,n)(m/n)改为:
FU(m,n)((m)/(n))
(2)将Return(Value);改为:
return(value);
9.程序修改题
给定程序中,函数fun的功能是:
给一维数组a输入任意4个整数,并按下例的规律输出。
例如,输入1、2、3、4程序运行后将输出以下方阵:
4123
3412
2341
1234
答案:
(1)将voidfun(inta)改为:
voidfun(inta[])
(2)将aa[j]=a[j-1];改为:
a[j]=a[j-1];
10.程序修改题
给定程序中,函数fun的功能是:
统计一个无符号整数中各位数字值为零的个数,通过形参传回主函数;并把该整数中各位上最大的数字值作为函数值返回。
例如,若输入无符号整数30800,则数字值为零的个数为3,各位上数字值最大的是8。
答案:
(1)将if(t=0)改为:
if(t==0)
(2)将zero=count改为:
*zero=count
11.程序修改题
给定程序中,函数fun的功能是:
先将s所指字符串中的字符按逆序存放到t所指字符串中,然后把s所指串中的字符按正序连接到t所指串的后面。
例如,当s所指的字符串为:
“ABCDE”时,则t所指的字符串应为:
“EDCBAABCDE”。
答案:
(1)将inti;改为:
inti,sl;
(2)将t[i]=s[sl-i];改为:
t[i]=s[sl-i-1];12.程序修改题
给定程序中函数fun的功能是:
判断一个整数是否是素数,若是返回1,否则返回0。
在main()函数中,若fun返回1输出YES,若fun返回0输出NO!
。
答案:
(1)将k++改为:
k++;
(2)将if(m=k)改为:
if(m==k)
13.程序修改题
给定程序中函数fun的功能是:
统计字符串中各元音字母(即:
A、E、I、O、U)的个数。
注意,字母不分大、小写。
例如:
若输入:
THIsisaboot,则输出应该是:
1、0、2、2、0。
答案:
(1)将num[i]=0;改为:
num[k]=0;
(2)将switch(s)改为:
switch(*s)
14.程序修改题
给定程序中,函数fun的功能是:
读入一个字符串(长度<20),将该字符串中的所有字符按ASCII码升序排序后输出。
例如,若输入:
edcba,则应输出:
abcde。
答案:
(1)将for(i=strlen(t);i;i--)改为:
for(i=strlen(t)-1;i;i--)
(2)将if(t[j]if(t[j]>t[j+1])
15.程序修改题
给定程序中,函数fun的功能是:
由形参给定n个实数,输出平均值,并统计在平均值以上(含平均值)的实数个数。
例如,n=8时,输入:
193.199、195.673、195.757、196.051、196.092、196.596、196.579、196.763,所得平均值为:
195.838745,在平均值以上的实数个数应为:
5
答案:
(1)将intj,c=0,floatxa=0.0;改为:
intj,c=0;floatxa=0.0;
(2)将if(x[j]=>xa)改为:
if(x[j]>=xa)
16.程序修改题
给定程序中,函数fun的功能是:
在p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上;并将该字符前的原字符向后顺序移动。
例如,调用fun函数之前给字符串输入:
ABCDeFGH,调用后字符串中的内容为:
eABCDFGH。
答案:
(1)将q=p+i改为:
q=p+i;
(2)将While(q>p)改为:
while(q
17.程序修改题
给定程序中,函数fun的功能是:
将s所指字符串中的字母转换为按字母序列的后续字母(但Z转换为A、z转换为a),其他字符不变。
答案:
(1)将while(*s!
='@')改为:
while(*s!
='\0')
(2)将(*s)++;改为:
s++
18.程序修改题
下列给定程序中,函数fun()的功能是:
通过某种方式实现两个变量值的交换,规定不允许增加语句和表达式。
例如变量a中的值原为8,b中的值原为3;程序运行后a中的值为3,b中的值为8。
答案:
(1)将t=x;x=y;改为:
t=*x;*x=y;
(2)将return(y);改为:
return(t);
19.程序修改题
N个有序整数数列已放在一维数组中,给定下列程序中,函数fun()的功能是:
利用折半查找算法查找整数m在数组中的位置。
若找到,则返回其下标值;反之,则返回-1。
折半查找的基本算法是:
每次查找前先确定数组中待查的范围:
low和high(low如果m的值大于中间位置元素中的值,则下一次的查找范围放在中间位置之后的元素中;反之,下次查找范围落在中间位置之前的元素中。
直到low>high,查找结束。
答案:
(1)将voidfun(inta[],intm)改为:
intfun(inta[],intm)
(2)将elseif(m>=a[mid])改为:
elseif(m>a[mid])
20.程序修改题
下列给定程序中,函数fun()的功能是:
根据形参m的值(2≤m≤9),在m行m列的二维数组中存放如下所示的数据,由main()函数输出。
例如,若输入2,则输出
12
24
输入4,则输出
1234
2468
36912
481216
答案:
(1)将fun(int**a,intm)改为:
voidfun(int(*a)[M],intm)
(2)将a[j][k]=k*j;改为:
a[j][k]=(k+1)*(j+1);
21.程序修改题
已知一个数列从0项开始的前3项:
0、0、1,以后的各项都是其相邻的前3项之和。
下列给定的程序中,函数fun()的功能是:
计算并输出该数列前n项的平方根之和sum。
N的值通过形参传入。
例如,当n=10时,程序的输出结果应为23.197745。
答案:
(1)将fun(intn)改为:
doublefun(intn)
(2)将returnsum改为:
returnsum;
22.程序修改题
下列给定程序中,函数fun()的功能是:
从N个字符串中找出最长的那个串,并将其地址作为函数值返回。
各字符串在主函数中输入,并放入一个字符串数组中。
答案:
(1)将fun(char(*sq)[N])改为:
char*fun(char(*sq)[M])
(2)将returnsq;改为:
returnsp;
23.程序修改题
下列给定程序中,函数fun()的功能是:
用递归算法计算斐波拉契级数列中第n项的值。
从第一项起,斐波拉契级数序列为1、1、2、3、5、8、13、21、……例如,若给n输入7,该项的斐波拉契级数值为13。
答案:
(1)将switch(g);改为:
switch(g)
(2)将case1;case2:
return1;改为:
case1:
case2:
return1;
24.程序修改题
下列给定程序中,函数fun()的功能是:
用冒泡法对6个字符串按由小到大的顺序进行排序。
请改正程序中的错误,使其能得出正确的结果。
答案:
(1)将fun(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);
25.程序修改题
下列给定程序中,函数fun()的功能是:
首先把b所指字符串中的字符按逆序存放,然后将a所指字符串中的字符和b所指字符串中的字符,按排列的顺序交叉合并到c所指数组中,过长的剩余字符接在c所指数组的尾部。
例如,当a所指字符串中的内容为abcdefg,b所指字符串中的内容为1234时,c所指数组中的内容应该为a4b3c2d1efg;而当a所指字符串中的内容为1234,b所指字符串中的内容为abcdefg时,c所指数组中的内容应该为1g2f3e4dcba。
答案:
(1)将while(i>j)改为:
while(i(2)将*c=o;改为:
*c='\0';
26.程序修改题
在给定程序中,函数fun()的功能是:
利用插入排序法对字符串中的字符按从大到小的顺序进行排序。
插入法的基本方法是:
先对字符串中的头两个元素进行排序,然后把第3个字符插入到前两个字符中,插入后前3个字符依然有序;再把第4个字符插入到前3个字符中,待排序的字符串已在主函数中赋予。
答案:
(1)将while((j>=0)||(ch>aa[j]))改为:
while((j>=0)&&(ch>aa[j]))
(2)将aa[j]=ch;改为:
aa[j+1]=ch;
27.程序修改题
给定程序中,函数fun()的功能是:
找出一个大于给定整数m且紧随m的素数,并作为函数值返回。
答案:
(1)将if(i%k!
=0)改为:
if(i%k==0)
(2)将if(k
if(k>=i)
28.程序修改题
下列给定程序中,函数fun()的功能是:
根据整型参数m,计算如下公式的值:
y=1/(100×100)+1/(200×200)+1/(300×300)+…
+1/(m×m)
例如,若m=2000,则应输出0.000160。
答案:
(1)将fun(intm)改为:
doublefun(intm)
(2)将for(i=100,i<=m,i+=100)改为:
for(i=100;i<=m;i+=100)
29.程序修改题
下列给定程序中,函数fun()的功能是:
将字符串p中所有字符复制到字符串b中,要求每复制3个字符之后插入一个空格。
例如,在调用fun()函数之前给字符串a输入ABCDEFGHIJK,调用函数之后,字符串b中的内容则为ABCDEFGHIJK。
答案:
(1)将i=1;改为:
i=0;
(2)将while(i<3||*p)改为:
while(i<3&&*p)
(3)将b[k]='';改为:
b[k++]='';
30.程序修改题
在给定程序中,函数fun()的功能是:
输入的两个数中较小的数。
例如:
输入5、10,结果为minis5。
答案:
将intfun(intx,y)改为:
intfun(intx,inty)
31.程序修改题
下列给定程序中,函数fun()的功能是:
应用递归算法求某数a的平方根。
求平方根的迭代公式如下:
例如,2的平方根为1.414214。
答案:
(1)将fun(doublea,doublex0)改为:
doublefun(doublea,doublex0)
(2)将if(fabs(x1-x0)>0.00001)改为:
if(fabs(x1-x0)>=0.00001)
32.程序修改题
下列给定程序中,函数fun()的功能是:
根据输入的3个边长(整型值),判断能否构成三角形?
若能构成等边三角形,则返回3;若是等腰三角形,则返回2;若能构成三角形则返回1;若不能,则返回0。
答案:
(1)将return1;改为:
return3;
(2)将elsereturn3;改为:
elsereturn1;
33.程序修改题
在给定程序中,函数fun()的功能是:
求k!
(k<12),所有阶乘的值作为函数值返回。
例如:
若k=10,则应输出3628800。
请改正程序中的错误,使其能得出正确的结果。
答案:
(1)将ifk>0改为:
if(k>0)
(2)将elseif(k=0)改为:
elseif(k==0)
34.程序修改题
假定整数不重复数列{97,2,7,1,2,4,-1}中的数存放在数组s中。
下列给定程序中,函数fun的功能是:
删除数列中值为a的元素,同时将其他元素前移。
Sum中存放的是数列中元素的个数。
答案:
将x[j+1]=x[j]改为:
x[j]=x[j+1];
35.程序修改题
在给定程序中,函数fun()的功能是:
利用插入排序法对字符串中的字符按从小到大的顺序进行排序。
插入法的基本方法是:
先对字符串中的头两个元素进行排序,然后把第3个字符插入到前两个字符中,插入后前3个字符依然有序;再把第4个字符插入到前3个字符中,待排序的字符串已在主函数中赋予。
答案:
将c=aa[i];改为:
ch=aa[i];
36.程序修改题
下列给定程序中,函数fun()的功能是:
输出M行N列整数方阵,然后求两条对角线上的各元素之和,返回此和数。
请改正程序中的错误,使其能得出正确的结果。
答案:
(1)将fun(doubleb,doublex0)改为:
doublefun(doubleb,doublex0)
(2)将if(abs(x1-x0)>=1e-6)改为:
if(fabs(x1-x0)>=1e-6)
37.程序修改题
在给定程序中,函数fun()的功能是:
将长整型数中每一位上为偶数的数依次取出,构成一个新数放在t中。
高位仍在高位,低位仍在低位。
例如,当s中的数为87653142时,t中的数为8642。
答案:
(1)将intd;改为:
longd;
(2)将if(d%2=0)改为:
if(d%2==0)
(3)将s\=10;改为:
s/=10;
38.程序修改题
给定程序中,函数fun()的功能是:
删除字符串s中所有空白字符(包括Tab字符、回车符及换行符)。
输入字符串时用'#'结束输入。
答案:
将c[t]="\0";改为:
c[t]='\0';
39.程序修改题
在给定程序中,函数fun的功能是找出100~n(不大于1000)之间百位数字加十位数字等于个位数字的所有整数,把这些整数放在s所指的数组中,其个数作为函数值返回。
答案:
(1)将k=n;改为:
k=i;
(2)将s[j]=i;改为:
s[j++]=i;
40.程序修改题
下列给定程序中,函数fun()的功能是根据整型形参n,计算如下公式的值:
A1=1,A2=1/(1+A1),A3=1/(1+A2),…,
An=1/(1+A(n-1))
例如,若n=10,则应输出0.617977。
答案:
(1)将intfun(intn)改为:
floatfun(intn)
(2)将for(i=2;ifor(i=2;i<=n;i++)
41.程序修改题
下列给定程序中,函数fun()的功能是:
计算整数n的阶乘。
答案:
(1)将result*=--n;改为:
result*=n--;
(2)将return;改为:
returnresult;
42.程序修改题
给定程序中,函数fun()的功能是:
使数组中的元素的值增加10倍。
答案:
将printf("%3d",m[j]*10);改为:
printf("%3d",m[j]=m[j]*10);
43.程序修改题
在给定程序中,函数fun()的功能是:
从3个红球、5个白球、6个黑球中任意取出8个作为一组进行输出。
在每组中,可以没有黑球,但必须要有红球和白球。
组合数作为函数值返回。
正确的组合数应该是15。
程序中i的值代表红球数,j的值代表白球数,k的值代表黑球数。
答案:
(1)将for(i=0;i<=3;i++)改为:
for(i=1;i<=3;i++)
(2)将if(k>=1&&k<=6)改为:
if((k>=1&&k<=6)&&(i!
=0)&&(j!
=0)||(k==0))
44.程序修改题
下列给定程序中,函数fun的功能是:
从整数1到50之间,选出能被3整除且有一位上的数是5的数,并把这些数放在b所指的数组中,这些数的个数作为函数值返回。
规定,函数中a1放个位数,a2放十位数。
答案:
(1)将fun(int*b);改为:
intfun(int*b)
(2)将for(j=10;j<=50;j++)改为:
for(j=1;j<=50;j++)
(3)将returnj;改为:
returni;
45.程序修改题
在给定程序中,函数fun()的功能是,用下面的式子求π的近似值,直到最后一项的绝对值小于指定的数(参数num)为止:
π/4≈1-1/3+1/5-1/7+…
例如,程序运行后,输入0.0001,则程序输出3.1414。
答案:
(1)将while(t>=num)改为:
while(fabs(t)>=num)
(2)将t=s%n;改为:
t=s/n;
46.程序修改题
给定程序中,函数fun()的功能是:
求S的值。
设
S=(22/(1*3))*(42/(3*5))*(62/(5*7))*…*(2k)2/
((2k-1)*(2k+1))
例如,当k为10时,函数的值应为1.533852。
答案:
(1)将fun(intk)改为:
doublefun(intk)
(2)将returns改为:
returns;
47.程序修改题
下列给定程序中函数fun的功能是:
传入一个整数n,计算如下公式的值:
例如,若输入5,则应输出-0.283333。
答案:
(1)将s=1.0-1/i;改为:
s=s-1.0/i;
或:
s-=1.0/i;或:
s-=(double)1/i
(2)returns;
48.程序修改题
在给定程序中建立一个带头结点的单向链表,并用随机函数为各结点数据域赋值。
函数fun()的作用是求出单向链表结点(不包括头结点)数据域中的最大值,并且作为函数值返回。
答案:
(1)将fun(NODE*h)改为:
intfun(NODE*h)
(2)将p=h->next;改为:
p=p->next
49.程序修改题
下列给定程序中,函数fun()的作用是:
将字符串tt中的小写字母都改为对应的大写字母,其他字符不变。
例如,若输入“edS,dAd”,则输出“EDS,DAD”。
答案:
(1)将charfun(chartt[])改为:
char*fun(chartt[])
(2)将if((tt[i]>='A')&&(tt[i]<='Z'))改为:
if((tt[i]>='a')&&(tt[i]<='z'))
50.程序修改题
下列给定程序中,函数fun()的功能是,根据以下公式求π的值,并作为函数值返回。
π/2=1+1/3+1/3*2/5+1/3*2/5*3/7+1/3*2/5*3/7*4/9?
?
?
?
?
例如,给指定精度的变量eps输入0.0005时,应当输出Pi=3.140578。
答案:
(1)将t=1;改为:
t=1.0;
(2)将while(t>eps)改为:
while(t>=eps)
(3)将return(s);改为:
return(2*s);或return(s*2);
51.程序修改题
在给定程序中,函数fun()的功能是:
求出两个数的最大公约数,并作为函数值返回。
例如,若给num1和num2输入49和21,则输出的最大公约数为7;若给num1和num2分别输入27和81,则输出最大公约数为27。
答案:
(1)将{t=a;b=a;a=t;}改为:
{t=a;a=b;b=t;}
(2)将return(a);改为:
return(b);
52.程序修改题
下列给定程序中,函数fun的功能是:
计算n的5次方的值(规定2答案:
(1)将b=0;改为:
b=1;
(2)将c=1;改为:
c=0;(3)将c=c/10;改为:
b=b/10;
53.程序修改题
下列给定程序中函数fun()的功能是:
从n个学生的成