av=av+a[i];
return(av/n);
}
6◆◆◆◆◆◆◆◆◆◆◆◆◆◆
【填空】下列给定程序中,函数fun的功能是:
把形参s所指字符串中下标为奇数的字符右移到下一个奇数位置,最右边被移出字符串的字符绕回放到第一个奇数位置,下标为偶数的字符不动(注:
字符串的长度大于等于2)。
例如,形参s所指字符串为abcdefgh,执行结果为ahcbedgf。
【答案】【1】1【1】s[k]【1】c
【改错】下列给定程序中fun函数的功能是:
求表达式s=aa…aa-…-aaa-aa-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函数。
【答案】
【1】longs=0,t=0;【1】t=t/10;
【编程】编写函数voidfun(char*tt,intpp[]),统计在tt所指的字符串中'a'到'z'26个小写字母各自出现的次数,并依次放在pp所指的数组中。
例如,当输入字符串abcdefgabcdeabc后,程序的输出结果应该是:
33322110000000000000000000
【答案】
voidfun(char*tt,intpp[])
{
inti;
for(i=0;i<26;i++)
pp[i]=0;
if(*tt>=′a′&&*tt<=′z′)
pp[*tt-′a′]++;
}
7◆◆◆◆◆◆◆◆◆◆◆◆◆◆
【填空】下列给定程序中已建立了一个带头结点的单向链表,在main函数中将多次调用fun函数,每调用一次,输出链表尾部结点中的数据,并释放该结点,使链表缩短。
【答案】
【1】next【2】t->data 【3】t
【改错】下列给定程序中函数fun的功能是:
将字符串中的字符逆序输出,但不改变字符串中的内容。
例如,若字符串为abcd,则应输出:
dcba。
【答案】【1】voidfun(char*a)
【2】printf("%c",*a);
【编程】编写函数fun,其功能是:
比较字符串的长度,(不得使用C语言提供的求字符串长度的函数),函数返回较长的字符串。
若两个字符长度相同,则返回第一个字符串。
例如,输入beijingshanghai(为回车键),函数将返回shanghai。
【答案】
char*fun(char*s,char*t)
{
inti,j;
for(i=0;s[i]!
=′\0′;i++);
for(j=0;t[j]!
=′\0′;j++);
if(i>=j)
returns;
else
【2】yes=0;break;
【编程】编写函数fun,其功能是:
利用下面的简单迭代方法求方程cos(x)-x=0的一个实根。
xn+1=cos(xn)
迭代步骤如下:
(1)取x1初值为0.0;
(2)x0=x1,将x1的值赋给x0;
(3)x1=cos(x0),求出一个新的x1;
(4)若x0-x1的绝对值小于0.000001,执行步聚(5),否则执行步聚
(2);
(5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。
程序将输出结果Root=0.739086。
【答案】
floatfun()
{
floatx1=0.0,x0;
do
{
x0=x1;
x1=cos(x0);
}
while(fabs(x0-x1)>=1e-6);
returnx1;
}
10◆◆◆◆◆◆◆◆◆◆◆◆◆◆
【填空】下列给定程序的功能是:
从键盘输入若干行字符串(每行不超过80个字符),写入文件myfile4.txt中,用-1作字符串输入结束的标志,然后将文件的内容显示在屏幕上。
文件的读写分别由函数ReadText和WriteText实现。
【答案】【1】*fw【2】str【3】str
【改错】下列给定程序中函数fun的功能是:
从低位开始依次取出长整型变量s中奇数位上的数,构成一个新数存放在t中。
高位仍在高位,低位仍在低位。
例如,当s中的数为7654321时,t中的数为7531。
【答案】
【1】voidfun(longs,long*t)
【2】s1=s1*10
【编程】编写函数fun,其功能是:
将两个两位数的正整数a、b合并成一个整数放在c中。
合并的方式是:
将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的千位和十位上。
例如,当a=45,b=12时,调用该函数后,c=1524。
【答案】
voidfun(inta,intb,long*c)
{
*c=a/10+(b%10)*10+(a%10)*100+(b/10)*1000;
}
11◆◆◆◆◆◆◆◆◆◆◆◆◆◆
【填空】下列给定程序中函数fun的功能是:
有N×N矩阵,将矩阵的外围元素做顺时针旋转。
操作顺序是:
首先将第一行元素的值存入临时数组r,然后使第一列成为第一行,最后一行成为第一列,最后一列成为最后一行,再使临时数组中的元素成为最后一列。
例如,若N=3,有下列矩阵:
1 2 3
4 5 6
7 8 9
操作后应为:
7 4 1
8 5 2
9 6 3
【答案】【1】0【2】j--【3】j
【改错】下列给定程序中函数fun的功能是:
计算S=f(-n)+f(-n+1)+…+f(0)+f
(1)+f
(2)+…+f(n)的值。
例如,当n的值为5时,函数值应为10.407143。
f(x)函数定义如下:
f(x)=(x+1)/(x-2) x>0且x≠2
f(x)0 x=0或x=2
(x-1)/(x-2) x<0
【答案】【1】doublef(doublex)
【2】returns;
【编程】编写函数fun,其功能是计算:
s作为函数值返回。
在C语言中可调用log(n)函数求ln(n)。
log函数的引用说明为:
doublelog(doublex)。
例如,若m的值为20,则fun函数值为6.506583。
【答案】
doublefun(intm)
{
inti;
doubles=0.0;
for(i=1;i<=m;i++)
s=s+log(i);
returnsqrt(s);
}
12◆◆◆◆◆◆◆◆◆◆◆◆◆◆
【填空】下列给定程序中已建立了一个带头结点的单向链表,链表中的各结点按数据域递增有序链接。
函数fun的功能是:
删除链表中数据域值相同的结点,使之只保留一个。
【答案】【1】q【2】next【3】next
【改错】下列给定程序中函数fun的功能是:
用选择法对数组中的n个元素进行升序排列。
【答案】【1】p=j;【2】p=i;
【编程】编写函数fun,其功能是:
将1到m之间(含m)能被7或11整除的所有整数放在数组a中,并通过n返回这些数的个数。
例如,若传给m的值为50,则程序输出:
7 11 14 21 22 28 33 35 42 44 49
【答案】
voidfun(intm,int*a,int*n)
{
inti,j=0;
for(i=1;i<=m;i++)
if(i%7==0||i%11==0)
a[j++]=i;
*n=j;
}
13◆◆◆◆◆◆◆◆◆◆◆◆◆◆
【填空】下列给定程序中函数fun的功能是计算下式
直到,并将计算结果作为函数值返回。
例如,若形参e的值为1e-3,函数的返回值为2.985678。
【答案】【1】0【2】i++【3】2.0*i
【改错】下列给定程序中函数fun的功能是:
将s所指字符串的正序和反序进行连接,形成的新串放在t所指的数组中。
例如,当s所指字符串为:
"ABCD"时,t所指字符串中的内容应为:
"ABCDDCBA"。
【答案】
【1】voidfun(char*s,char*t)【2】t[d+i]=0;
【编程】编写函数fun,其功能是:
将s所指字符串中除了下标为奇数同时ASCII值也为奇数的字符之外,其余的所有字符全部删除,串中剩余字符所形成的一个新串放在t所指的数组中。
例如,若s所指字符串的内容为:
"ABCDEFG12345",其中字符A的ASCII码值为奇数,但所在元素的下标为偶数,因此需要删除;而字符1的ASCII码值为奇数,所在数组中的下标也为奇数,因此不应当删除,其它依此类推。
最后t所指数组中的内容应为:
"135"。
【答案】
voidfun(char*s,chart[])
{
inti,j=0,n;
n=strlen(s);
for(i=0;iif(i%2!
=0&&s[i]%2!
=0)
{
t[j]=s[i];
j++;
}
t[j]=′\0′;
}
14◆◆◆◆◆◆◆◆◆◆◆◆◆◆
【填空】下列给定程序中函数fun的功能是:
在形参s所指字符串中的每个数字字符之后插入一个*号。
例如,形参s所指的字符串为def35adh3kjsdf7,执行后结果为def3]
【答案】【1】&&【2】0【3】s[j]
【改错】下列给定程序中函数fun的功能是:
根据整型形参m,计算如下公式的值。
例如,若m的值为5,则应输出1.463611。
【答案】
【1】for(i=2;i<=m;i++)
【2】y+=1.0/(i*i);
【编程】编写函数fun,其功能是:
实现B=A+A',即将矩阵A加上A的转置,存放在矩阵B中。
计算结果在main函数中输出。
例如,输入下面的矩阵:
其转置矩阵为:
程序输出:
2 6 10
6 10 14
10 14 18
【答案】
voidfun(inta[3][3],intb[3][3])
{
inti,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
b[i][j]=a[i][j]+a[j][i];
}
15◆◆◆◆◆◆◆◆◆◆◆◆◆◆
【填空】下列给定程序中函数fun的功能是:
将形参s所指字符串中下标为奇数的字符取出,并按ASCII码大小递增排序,将排序后的字符存入形参p所指字符数组中,形成一个新串。
例如,形参s所指的字符为:
baawrskjghzlicda,执行后p所指字符数组中的字符串应为:
aachjlsw。
【答案】【1】t=i【2】I【3】0
【改错】下列给定程序中函数fun的功能是:
用下面的公式求π的近似值,直到最后一项的绝对值小于指定的数(参数num)为止。
例如,程序运行后,输入0.0001,则程序输出3.1414。
【答案】【1】while(fabs(t)>=num)
【2】t=s/n;
【编程】编写函数fun,其功能是:
删除一个字符串中指定下标的字符。
其中,a指向原字符串,删除指定字符后的字符串存放在b所指的数组中,n中存指定的下标。
例如,输入一个字符串world,然后输入3,则调用该函数后的结果为word。
【答案】
voidfun(chara(),charb(),intn)
{
inti,k=0;
for(i=0;a[i]!
=′\0′;i++)
if(i!
=n)
b[k++]=a[i];
b[k]=′\0′;
}
16◆◆◆◆◆◆◆◆◆◆◆◆◆◆
【填空】下列给定程序中函数fun的功能是:
将形参s所指字符串中的所有字母字符顺序前移,其他字符顺序后移,处理后将新字符串的首地址作为函数值返回。
例如,若s所指字符串为:
asd123fgh543df,处理后新字符串为:
asdfghdf123543。
【答案】【1】s[i]【2】k【3】0
【改错】下列给定程序中函数fun的功能是:
将s所指字符串中最后一次出现的与t1所指字符串相同的子串替换成t2所指字符串,所形成的新串放在w所指的数组中。
要求t1和t2所指字符串的长度相同。
例如,当s所指字符串中的内容为:
"abcdabfabc",t1所指串中的内容为"ab",t2所指子串中的内容为"99"时,结果在w所指的数组中的内容应为"abcdabf99c"。
【答案】【1】while(*w)
【2】if(*r==*p)
【编程】编写函数fun,其功能是:
将s所指字符串中ASCII值为奇数的字符删除,剩余字符形成的新串放在t所指数组中。
例如,若s所指字符串中的内容为:
"ABCDEFG12345",其中字符A的ASCII码值为奇数、…、字符1的ASCII码值也为奇数、…都应当删除,其它依此类推。
最后t所指的数组中的内容应是:
"BDF24"。
【答案】
voidfun(char*s,chart[])
{
inti,j=0,n;
n=strlen(s);
for(i=0;i if(s[i]%2==0)
{
t[j]=s[i];
j++;
}
t[j]=′\0′;
}
17◆◆◆◆◆◆◆◆◆◆◆◆◆◆
【填空】下列给定程序中函数fun的功能是:
将自然数1~10及其平方根写到名为myfile3.txt的文本文件中,然后再顺序读出显示在屏幕上。
【答案】【1】fp【2】fclose(fp) 【3】fname
【改错】下列给定程序中fun函数功能是:
将n个无序整数从小到大排序。
【答案】【1】for(i=j+1;i【编程】编写函数fun,其功能是:
将两个两位数的正整数a、b合并成一个整数放在c中。
合并的方式是:
将a数的十位和个位数依次在c数的个位和百位上,b数的十位和个位数依次放在c数的十位和千位上。
例如,当a=45,b=12时,调用该函数后c=2514。
【答案】
voidfun(inta,intb,long*c)
{
*c=a/10+(b/10)*10+(a%10)*100+(b%10)*1000;
}
18◆◆◆◆◆◆◆◆◆◆◆◆◆◆
【填空】下列给定程序中函数fun的功能是:
将N×N矩阵中元素的值按列向右移动1个位置,右边被移出矩阵的元素绕回左边第1列。
例如,N=3,有下列矩阵
1 2 3
4 5 6
7 8 9
计算结果为
3 1 2
6 4 5
9 7 8
【答案】【1】N【2】N-1【3】0
【改错】下列给定程序中函数fun的功能是:
计算并输出下列级数的前N项和SN,直到SN+1的值大于q为止,q的值通过形参传入。
例如,若q的值为50.0,则函数值应为49.394948。
【答案】【1】s=s+(double)(n+1)/n;【2】returnt;
【编程】编写函数fun,其功能是:
求Fibonacci数列中大于t的最小的数,结果由函数返回。
Fibonacci数列F(n)的定义为:
F(0)=0,F
(1)=1
F(n)=F(n-1)+F(n-2)
例如,当t=1000时,函数值为1597。
【答案】
intfun(intt)
{
intf0=0,f1=1,f;
do{
f=f0+f1;
f0=f1;f1=f;
}while(freturnf;
}
19◆◆◆◆◆◆◆◆◆◆◆◆◆◆
【填空】下列给定程序中函数fun的功能是:
在带头结点的单向链表中,查找数据域中值为ch的结点。
找到后通过函数值返回该结点在链表中所处的顺序号;若不存在值为ch的结点,函数返回0值。
【答案】【1】NULL【2】n
【3】head,ch
【改错】下列给定程序中函数fun的功能是:
删除指针p所指字符串中的所有空白字符(包括制表符、回车符及换行符)。
输入字符串时用’#’结束输入。
【答案】
【1】for(i=0,t=0;p[i];i++)
【2】c[t]=′\0′;
【编程】编写函数fun,其功能是:
将ss所指字符串中所有奇数位上的字母转换为大写(若该位置上不是字母,则不转换)。
例如,若输入"abc4EFg",则应输出"aBc4EFg"。
【答案】
voidfun(char*ss)
{
inti;
for(i=0;ss[i]!
=′\0′;i++)
if(i%2==1&&ss[i]>=′a′&&ss[i]<=′z′)
ss[i]=ss[i]-32;
}
20◆◆◆◆◆◆◆◆◆◆◆◆◆◆
【填空】下列给定程序中函数fun的功能是:
将形参n中,各位上为偶数的数取出,并按原来从高位到低位的顺序组成一个新数,作为函数值返回。
例如,从主函数输入一个整数27638496,则函数返回值为26846。
【答案】【1】1【2】s>0 【3】i*10
【改错】下列给定程序中函数fun的功能是:
输出M×M整数方阵,然后求两条对角线上元素之和,并作为函数值返回。
【答案】【1】intfun(intn,intxx[][M])【2】printf("%d",xx[i][j]);
【编程】编写函数fun,其功能是:
将a、b中的两个两位数正整数合并成一个新的整数放在c中。
合并的方式是:
将a中的十位和个位数依次放在变量c的千位和十位上,b中的十位和个位数依次在变量c的个位和百位上。
例如,当a=45,b=12,调用该函数后c=4251。
【答案】
voidfun(inta,intb,long*c)
{
*c=b/10+(a%10)*10+(b%10)*100+(a/10)*1000;
}
21◆◆◆◆◆◆◆◆◆◆◆◆◆◆
【填空】下列给定程序中函数fun()的功能是:
按顺序给s所指数组中的元素赋予从2开始的偶数,然后再按顺序对每5个元素求一个平均值,并将这些值依次存放在w所指的数组中。
若s所指数组中元素的个数不是5的倍数,多余部分忽略不计。
例如,s所指数组有14个元素,则只对前10个元素进行处理,不对最后的4个元素求平均值。
【答案】【1】%【2】return【3】b[i]
【改错】下列给定程序中,函数fun()的功能是逐个比较a,b两个字符串对应位置中的字符,把ASCII值大或相等的字符依次存放到c数组中,形成一个新的字符串。
例如:
a中的字符串为aBCDeFgH,b中的字符串为ABcd,则c中的字符串应为aBcdeFgH。
【答案】【1】intk=0;【2】while(*p||*q)
【编程】编写函数fun(),它的功能是利用以下所示的简单迭代方法求方程cos(x)-x=0的一个实根。
xn+1=cos(xn),迭代步骤如下:
(1)取x1初值为0.0。
(2)x0=x1,把x1的值赋给x0。
(3)x1=cos(x0),求出一个新的x1。
(4)若x0-x1的绝对值小于0.000001,则执行步骤(5),否则执行步骤
(2)。
(5)所求x1就是方程cos(x)-x=0的一个实根,做为函数值返回。
程序输出结果Root=0.739085。
【答案】
floatfun()
{floatx1=0.0,x0;
do
{x0=x1;x1=cos(x0);
}
returnx1;
}
下下请
22◆◆◆◆◆◆◆◆◆◆◆◆◆◆
【填空】下列给定程序中,函数fun的功能是计算如下公式。
直到,并且把计算结果作为函数值返回。
例如,若形参e的值为1e-3,则函数返回值为0.551690。
【答案】【1】3.0【2】>【3】(t+1)
【改错】下列给定程序中函数fun的功能是:
求出如下分数序列的前n项之和。
和值通过