(2)if ( *r == *p )
3.编写函数fun,其功能是:将s所指字符串中ASCII值为奇数的字符删除,剩余字符形成的新串放在t所指数组中。 例如,若s所指字符串中的内容为:\,其中字符A的ASCII码值为奇数、…、字符1的ASCII码值也为奇数、…都应当删除,其它依此类推。最后t所指的数组中的内容应是:\。
void fun(char *s,char t[]) {
int i,j=0,n; n=strlen(s);
for(i=0;i t[j]=s[i]; j++; } t[j]=′\\0′; } 第四十二套 1.请补充main函数,该函数的功能是:从键盘输入一个字符串及一个指定字符,然后把这个字符及其后面的所有字符全部删除。 例如,输入\,指定字符为\,则输出\。 1) break; (2) i++或++i或i+=1或i=i+1 (3) ′\\0′ 2.下列给定程序中,函数fun的功能是:将大写字母转换为对应小写字母之后的第5个字母;若小写字母为v~z,使小写字母的值减21。转换后的小写字母作为函数值返回。例如,若形参是字母A,则转换为小写字母f。形参是字母W,则转换为小写字母b。 请改正函数fun中的错误,使它能得出正确的结果。 1)c=c+32; (2)c=c+5; 3.下列程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][N]),该函数的功能是:将数组左下半三角元素中的值全部置成0。例如a数组中的值为: a=1 9 7 2 3 8 4 5 6 则返回主程序后a数组中的值应为: 0 9 7 0 0 8 0 0 0 第四十三套 1.下列给定程序中,函数fun的功能是:计算N×N矩阵的主对角线元素和反向对角线元素 之和,并作为函数值返回。要求先累加主对角线元素中的值,再累加反向对角线元素中的值。 例如,若N=3,有下列矩阵: 1 2 3 4 5 6 7 8 9 首先累加1、5、9,然后累加3、5、7,函数返回值为30。 请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 1) sum=0 (2) t[i][i] (3) 1 2.下列给定程序中函数fun和funx的功能是:用二分法求方程2x3-4x2+3x-6=0的一个根,并要求绝对误差不超过0.001。 例如,若给m输入-100,n输入90,则函数求得的一个根为2.000。 1)double r ; (2)while (fabs(n-m) >0.001) 3.规定输入的字符串中只包含字母和*号。编写函数fun,其功能是:除了字符串前导和尾部的*号外,将串中其它的*号全部删除。形参h已指向字符串中第一个字母,形参p指向字符串的中最后一个字母。在编写函数时,不得使用C语言提供的字符串函数。 例如,若字符串中的内容为****A*BC*DEF*G*******,删除后,字符串中的内容应当是:****ABCDEFG********。在编写函数时,不得使用C语言提供的字符串函数。 void fun(char *a,char *h,char *p) { int i=0; char *q=a; while (q a[i]=*q;q++;i++; } while (q a[i]=*q;i++; } q++; } while (*q) { a[i]=*q;i++;q++; } a[i]=′\\0′; } 第四十四套 1.下列给定程序中,函数fun的功能是:找出100到x(x≤999)之间各位上的数字之和为15 的所有整数,并在屏幕输出;将符合条件的整数的个数作为函数值返回。 例如,当n值为500时,各位数字之和为15的整数有:159、168、177、186、195、249、258、267、285、294、339、348、357、366、375、384、393、429、438、447、456、465、474、483、492。共有26个。 请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 (1) 0 (2) x (3) t++ 2.下列给定程序中函数fun的功能是:先将s所指字符串中的字符按逆序存放到t所指字符串中,然后把s所指串中的字符按正序连接到t所指串之后。 例如:当s所指的字符串为\时,t所指的字符串应为\。 请改正程序中的错误,使它能得出正确的结果。 (1)int iv, s1; (2)t[i]=s[s1-i-1]; 3.函数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; } 四十五套 1.下列给定程序中,函数fun的功能是:在形参ss所指字符串数组中,将所有串长超过k的字符串中后面的字符删除,只保留前面的k个字符的。ss所指字符串数组中共有N个字符串,且串长小于M。 请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 (1) [M] (2) N (3) ′\\0′ 2.下列给定程序中函数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); 3.规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:使字符串的前导*号不得多于n个,若多于n个,则删除多余的*号;若少于或等n个,则不做处理,字符串中间和尾部的*号不删除。 例如,字符串中的内容为:*******A*BC*DEF*G****,若n的值为4,删除后,字符串中的内容应当是:****A*BC*DEF*G****;若n的值为8,则字符串中的内容仍为:*******A*BC*DEF*G****。n的值在主函数中输入。在编写函数时,不得使用C语言提供的字符串函数。 oid fun(char *a,int n ) { int i=0, k=0; char *p, *t; p=t=a; /*开始时,p与t同时指向数组的首地址*/ while(*t==′*′) /*用k来统计前部星号的个数*/ {k++; t++;} if(k>n) /*如果k大于n,则使p的前部保留n个星号,其后的字符依次存入数组a中*/ { while(*p) {a[i]=*(p+k-n); i++; p++; } a[i]=′\\0′; /*在字符串最后加上结束标识位*/ } } 四十六套 1.下列给定程序中,函数fun的功能是:将自然数1~10及其平方根写到名为myfile3.txt的文本文件中,然后再顺序读出显示在屏幕上。 请在程序下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 (1) fp (2) fclose(fp) (3) fname 2. 下列给定程序中fun函数功能是:将n个无序整数从小到大排序。 请改正程序中的错误,使它能得出正确的结果。 (1)for(i=j+1;i 3.编写函数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; } 四十七套 1。下列给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶数的数去掉,剩余的数按原来从高位到低位的顺序组成一个新数,并通过形参指针n传回所指变量。 例如,若输入一个数27638496,则新数为739。 请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 (1) 10 (2) 0 (3) x 2.下列给定程序中函数fun的功能是:计算n!。 例如,给n输入5,则输出120.000000。 请改正程序中的错误,使它能得出正确的结果。 (1)正确:if( n==0) (2)正确:result *=n--;或{result *=n; n--;} 3.请编写函数fun,其功能是:将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。例如,若输入字符串\-1234\,则函数把它转换为整数值-1234。 long fun(char *p) { long n=0; int flag=1; if(*p==′-′) /*负数时置flag为-1]+;flag= -1;} else if(*p==′+′) /*正数时置flag为1] p++; while(*p!=′\\0′) {n=n*10+*p-′0′; /*将字符串转成相应的整数*/ p++; } return n*flag; } 四十八套 1.下列给定程序中,函数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 2.下列给定程序中函数fun的功能是:计算并输出下列级数的前N项和SN,直到SN+1的值大于q为止,q的值通过形参传入。 例如,若q的值为50.0,则函数值应为49.394948。 请改正程序中的错误,使程序能输出正确的结果。 (1)s=s + (double)(n+1)/n; (2)return t; 3.编写函数fun,其功能是:求Fibonacci数列中大于t的最小的数,结果由函数返回。Fibonacci