指字符串中,然后把s所指串中的字符按正序连接到t所指串之后。
例如:当s所指的字符串为\时,t所指的字符串应为\。 【答案】【1】int i, s1; 【2】t[i]=s[s1-i-1];
【编程】函数fun的功能是:将a、b的两个两位正整数合并成一个新的整数放在c中。合并的方式是:将a中的十位和个位数依次放在变量c的百位和个位上,b中的十位和个位数依次放在变量c的千位和十位上。
例如,当a=45,b=12,调用该函数后c=1425。 【答案】
void fun(int a,int b,long *c)
{
*c=a+(b)*10+(a/10)*100+(b/10)*1000; }
45◆◆◆◆◆◆◆◆◆◆◆◆◆◆
【填空】下列给定程序中函数fun的功能是:在形参ss所指字符串数组中,将所有串长超过k的字符串中后面的字符删除,只保留前面的k个字符的。ss所指字符串数组中共有N个字符串,且串长小于M。 【答案】【1】[M]【2】N【3】′\\0′
【改错】下列给定程序中函数fun的功能是:根据以下公式求π值,并作为函数值返回。例如,当给指定精度的变量eps输入0.0005时,应输出Pi=3.140578。π/2=1+1/3+1/3×2/5+1/3×2/5×3/7+1/3×2/5×3/7×4/9+??
【答案】【1】t=1.0;【2】return(s*2);
【编程】规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:使字符串的前导*号不得多于n个,若多于n个,则删除多余的*号;若少于或等n个,则不做处理,字符串中间和尾部的*号不删除。
例如,字符串中的内容为:*******A*BC*DEF*G****,若n的值为4,删除后,字符串中的内容应当是:****A*BC*DEF*G****;若n的值为8,则字符串中的内容仍为:*******A*BC*DEF*G****。n的值在主函数中输入。 【答案】
void fun(char *a,int n ) {
int i=0, k=0; char *p, *t; p=t=a;
while(*t==′*′) {k++; t++;} if(k>n)
{ while(*p)
{a[i]=*(p+k-n); i++; p++;
}
a[i]=′\\0′; }
}
46◆◆◆◆◆◆◆◆◆◆◆◆◆◆ 【填空】下列给定程序中函数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。 【答案】 void fun(int a,int b,long *c) { *c=a/10+(b/10)*10+(a)*100+(b)*1000; } 47◆◆◆◆◆◆◆◆◆◆◆◆◆◆ 【填空】下列给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶数的数去掉,剩余的数按原来从高位到低位的顺序组成一个新数,并通过形参指针n传回所指变量。 例如,若输入一个数27638496,则新数为739。 【答案】【1】10 【2】0 【3】x 【改错】下列给定程序中函数fun的功能是:计算n!。 例如,给n输入5,则输出120.000000。 【答案】【1】if( n==0) 【2】result *=n--; 【编程】请编写函数fun,其功能是:将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。例如,若输入字符串\,则函数把它转换为整数值-1234。 【答案】 long fun(char *p) { long n=0; int flag=1; if(*p==′-′) else if(*p==′+′) p++; while(*p!=′\\0′) {n=n*10+*p-′0′; p++; } return n*flag; } 48◆◆◆◆◆◆◆◆◆◆◆◆◆◆ 【填空】下列给定程序中函数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】return t; 【编程】编写函数fun,其功能是:求Fibonacci数列中大于t的最小的数,结果由函数返回。Fibonacci数列F(n)的定义为: F(0)=0,F(1)=1 F(n)=F(n-1)+F(n-2) 例如,当t=1000时,函数值为1597。 【答案】 int fun(int t) { int f0=0, f1=1,f; do{ f=f0+f1; f0=f1; f1=f; }while(f } 49◆◆◆◆◆◆◆◆◆◆◆◆◆◆ 【填空】下列给定程序中函数fun的功能是:把形参a所指数组中的最大值放在a[0]中,接着求出a所指数组中的最小值放在a[1]中,再把a所指数组元素中的次大值放在a[2]中,把a数组元素中的次小值放在a[3]中,以此类推。例如,若a所指数组中的数据最初排列为:1、4、2、3、9、6、5、8、7,按规则移动后,数据排列为:9、1、8、2、7、3、6、4、5。形参n中存放a所指数组中数据的个数。 【答案】【1】a[] 【2】2 【3】i+1 【改错】下列程序中函数fun的功能是:按顺序给s所指数组中的元素赋予从2开始的偶数,然后再按顺序对每五个元素求一个平均值,并将这些值依次存放在w所指的数组中。若s所指数组中元素的个数不是5的倍数,则多余部分忽略不计。 例如,s所指数组有14个元素,则只对前10个元素进行处理,不对最后的4个元素求平均值。 【答案】【1】sum=0.0; 【2】if((i+1)%5==0) 【编程】学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun ,其功能是:把低于平均分的学生数据放入b所指的数组中,低于平均分的学生人数通过形参n传回,平均分通过函数值返回。 【答案】 double fun(STREC *a, STREC *b, int *n) { int i,j=0; double av=0.0; for(i=0;i for(i=0;i if(a[i].s } 50◆◆◆◆◆◆◆◆◆◆◆◆◆◆ 【填空】下列给定程序中函数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所指字符串中所有奇数位上的字母转换为大写(若该位置上不是字母,则不转换)。例如,若输入\,则应输出\。 【答案】 void fun(char *ss) { int i; for(i=0;ss[i]!=′\\0′;i++) if(i%2==1&&ss[i]>=′a′&&ss[i]<=′z′) ss[i]=ss[i]-32; } 51◆◆◆◆◆◆◆◆◆◆◆◆◆◆ 【填空】下列给定程序中函数fun的功能是:将形参n中,各位上为偶数的数取出,并按原来从高位到低位的顺序组成一个新数,作为函数值返回。 例如,从主函数输入一个整数27638496,则函数返回值为26846。 【答案】【1】 1【2】 s>0 【3】 i*10 【改错】下列给定程序中函数fun的功能是:输出M×M整数方阵,然后求两条对角线上元素之和,并作为函数值返回。 【答案】【1】int fun(int n,int xx[][M])【2】printf(\,xx[i][j]); 【编程】编写函数fun,其功能是:将a、b中的两个两位数正整数合并成一个新的整数放在 c中。合并的方式是:将a中的十位和个位数依次放在变量c的千位和十位上,b中的十位和个位数依次在变量c的个位和百位上。例如,当a=45,b=12,调用该函数后c=4251。 【答案】 void fun(int a,int b,long *c) { *c=b/10+(a)*10+(b)*100+(a/10)*1000; } 52◆◆◆◆◆◆◆◆◆◆◆◆◆◆ 【填空】下列给定程序中函数fun的功能是:把形参a所指数组中的偶数按原顺序依次存放到a[0]、a[1]、a[2]、??中,把奇数从数组中删除,偶数的个数通过函数值返回。 例如,若a所指数组中的数据最初排列列为:9、1、4、2、3、6、5、8、7,删除奇数后a所指数组中的数据为:4、2、6、8,返回值为4。 【答案】【1】a[i]%2 【2】a[j] 【3】 j 【改错】下列给定程序中函数fun的功能是:按以下递归公式求函数的值。 fun(n)= /10 (n=1) \\fun(n-1)+2 (n>1) 例如,当给n输入5时,函数值为18;当给n输入3时,函数值为14。 【答案】【1】int fun (int n) 【2】if (n==1) 【编程】规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:使字符串中尾部的*号不多于n个,若多于n个,则删除多余的*号;若少于或等于n个,则不做任何操作,字符串中间和前面的*号不删除。 例如,字符串中的内容为:****A*BC*DEF*G*******,若n的值为4,删除后,字符串中的内容应为:****A*BC*DEF*G****;若n的值为7,则字符串中的内容仍为:****A*BC*DEF*G*******。n的值在主函数中输入。 【答案】 void fun( char *a,int n ) { int i=0,k=0; char *p, *t; p=t=a; while(*t) t++; t--; while(*t==′*′) {k++;t--;} if(k>n) {while(*p&&p i++;p++; } a[i]=′\\0′; }