2017-10-27 50页 doc 151KB 19阅读
is_833902
暂无简介
=n) a[j]=t; 6.给定程序MODI1.C中函数fun/***found***/ /***found***/ 44 44 44 44 {n++;p++;} return j; 的功能是:将字符串中的字符按错pt[i]=str[k][i];误 long s=0,错t=0误; while(*p) 55 55 55 55 /******/ 逆序输出,但不改变字符串中的15.给定程序MODI1.C中函数for (j=0;j=num误 函数值返回。 的数据,按列的顺序依次放到一int i,j; 错p=j;误 中的数对调。 {pi=pi+t;n=n+2;s=-s; /******/ 维数组中。例如,二维数组中的for(j=0;j =0&&a[i]<=9) b[0]+=1; 错p=i;误t=t/N; 55 55 55 55 else if(a[i]>=10&&a[i]<=19) 8.给定程序MODI1.C中函数funif(a[k]>a[m]) 错m=k误; 放在最后一个元素中。给定程序 for(i=0;i t)b[(*n)++]= a[i]; 44 55 33 44 55 33 44 else if(a[i]>=20&&a[i]<=29) 的所有空白字符(包括制表符、fun 的功能是:判断ch中的字计算数组元素中值为正数的平return t; 55 33 44 55。 b[2]+=1; 回车符及换行符)。输入字符串符是否与str所指串中的某个字均值(不包括0)。例如:数组/******/ /******/ else if(a[i]>=30&&a[i]<=39) 时用'#'结束输入。 符相同;若相同,什么也不做,中元素中的值依次为:39,-47,/***found***/ 若不同,则将其插在串的最后。 21,2,-8,15,0,则程序的运87.学生的记录由学号和成绩组int i,j; b[3]+=1; 成,N名学生的数据已在主函数for(j=0;j =40&&a [i]<=49) 错for(i=0,t=0; p[i]; i++)误 /***found***/ 行结果为:19.250000。 中放入结构体数组s中,请编写for(i=0;i =50&&a[i]<=59) /***found***/ {while (*str && *str != ch) 错double sum=0.0;误 ; 最低的学生数据放在b所指的*n=*n+1;} b[5]+=1; 错c[t]='\0'误str++; int c=0,i=0; 数组中,注意:分数最低的学生/******/ else if(a[i]>=60&&a[i]<=69) 9.给定程序MODI1.C中函数fun/***found***/ while (x[i] != 0) 可能不止一个,函数返回分数最94.请编写函数fun,函数的功能b[6]+=1; 的功能是:求出s所指字符串中if(错*str !=ch误) {if (x[i]>0){ 低的学生的人数。 是:将放在字符串数组中的Melse if(a[i]>=70&&a[i]<=79) 最后一次出现的t所指子字符串{str[0]=ch; sum+=x[i];c++;}i++;} /******/ 个字符串(每串的长度不超过b[7]+=1; 的地址,通过函数值返回,在主/***found***/ /***found***/ int i,j=0,min=a[0].s; N),按顺序合并组成一个新的else if(a[i]>=80&&a[i]<=89) 函数中输出从此地址开始的字错str[1]='\0'误; 错sum /=c误; for(i=0;i a[i].s) M个字符串为AAAA else if(a[i]>=90&&a[i]<=99) NULL。例如,当字符串中的内fun的功能是:计算整数n的阶fun 的功能是:计算并输出high{j=0;b[j++]=a[i];min=a[i].s;} BBBBBBB CC则合并后的字符b[9]+=1; 容为:"abcdabfabcdx",t中的内乘。 以内最大的10个素数之和。highelse if(min==a[i].s) 串的内容应是:else b[10]+=1; 容为:"ab"时,输出结果应是:/***found***/ 的值由主函数传给fun函数。若b[j++]=a[i];} AAAABBBBBBBCC。提示:/******/ abcdx。当字符串中的内容为:错result*=n--;误 high的值为:100,则函数的值return j; strcat(a,b)的功能是将字符串b100.请编写函数fun,函数的功"abcdabfabcdx",t中的内容为:/***found***/ 为:732。 /******/ 复制到字符串a的串尾上,成为能是:统计一行字符串中单词的"abd"时,则程序输出未找到信错result误_____; /***found***/ 88.函数fun的功能是:将a、b一个新串。 个数,作为函数值返回。一行字息:not be found!。 19.给定程序MODI1.C中 fun while 错((high >=2)&&(n<10))/******/ /***found***/ 中的两个两位正整数合并形成符串在主函数中输入,规定所有函数的功能是:将p所指字符串误) 一个新的整数放在c中。合并的int i,j,k=0; 单词由小写字母组成,单词之间a=错NULL误; 中每个单词的最后一个字母改{yes=1;for (j=2;j<=high/2;j++) 方式是:将a中的十位和个位数for(i=0;i ='a'&&s[i]<='z'&&s[i+1]的子串全部替换成t2所指字符/***found***/ SN+1大于q为止,q的值通过*c=(b%10)*1000+(a/10)*100+(b95.函数fun的功能是:移动一==' '||s[i+1]=='\0') 串,所形成的新串放在w所指错if(*p==' ')误 形参传入。例如,若q的值为:n++;} /10)*10+a%10; 维数组中的内容:若数组中有n的数组中。在此处,要求t1和{k=0; 50.0,则函数值为:49.394948。 /******/ 个整数,要求把下标从0到p(含return n; t2所指字符串的长度相同。例/***found***/ /***found***/ 89.学生的记录由学号和成绩组p,p小于等于n-1)的数组元素/******/ 如,当s所指字符串中的内容错*(p-1)=toupper(*(p-1));误}} 错s=s+(n+1.0/n)误; 成,N名学生的数据已在主函数平移到数组的最后。例如,一维 为:"abcdabfab",t1所指子串中20.给定程序MODI1.C中 fun n++;}printf("n=%d\n",n); 中放入结构体数组s中,请编写数组中的原始内容为:1,2,3,1.给定程序MODI1.C中函数fun的内容为:"ab",t2所指子串中函数的功能是:根据形参m,计/***found***/ 函数fun,它的功能是:把指定4,5,6,7,8,9,10:p的值为的功能是:先将在字符串s中的的内容为:"99"时,结果在w所算如下公式的值。例如,若输入错return t;误} 字符按正序存放到t串中,然后分数范围内的学生数据放在b3。移动后,一维数组中的内容指的数组中的内容应为5,则应输出 2.283333。 30.给定程序MODI1.C中函数 所指的数组中,分数范围内的学应为:5,6,7,8,9,10,1,把s中的字符按逆序连接到t串"99cd99f99"。 /***found***/ fun 的功能是:计算S = f(-n) + 生人数由函数值返回。例如,输2,3,4。 的后面。例如:当s中字符串为:/***found***/ 错t+=1.0/i;误 f(-n+1) +…+ f(0) + f(1) + f(2) 入的分数是60 69,则应当把/******/ "ABCDE"时,则t中字符串应错while(*r)误 /***found***/ +…+ f(n)的值。例如,当n为分数在60到69的学生数据进行int i, j=0, b[N]; 为:"ABCDEEDCBA"。 if(*r==*p){r++;p++;} 错return t;误} 5时,函数值应为:10.407143。输出,包含60分和69分的学生for(i=p+1;i =l&&a[i].s<=h)b[j++]=a96.请编写函数fun,功能是:移2.给定程序MODI1.C中函数fun与t所指字符串相同的子串的个/***found***/ else return (x +1)/(x-2);} [i]; 动字符串中的内容,移动的规则的功能是:从低位开始取出长整数作为函数值返回。例如,当s错if(('a'<=tt[i])&&(tt[i]<='z'))误 double fun(int n) return j; 如下:把第1到第m个字符,型变量s中奇数位上的数,依次所指字符串中的内容为:/***found***/ {int i; double s=0.0, y; /******/ 平移到字符串的最后,把第m+1构成一个新数放在t中。高位仍"abcdabfab",t所指字符串的内错tt[i]-=32误; for(i=-n;i<=n;i++) 90.N名学生的成绩已在主函数到最后的字符移到字符串的前在高位,低位仍在低位。例如,容为:"ab",则函数返回整数3。 22.给定程序MODI1.C中函数 {y=f(1.0*i);s+=y;} 中放入一个带头节点的链表结部。例如,字符串中原有的内容当s中的数为:7654321时,t/***found***/ fun 的功能是:用冒泡法对6个/***found***/ 构中,h指向链表的头节点。请为:ABCDEFGHIJK,m的值为中的数为:7531。 错r++; p++;误} 字符串按由小到大的顺序进行错return s;误} 编写函数fun,它的功能是:找3,则移动后,字符串中的内容/***found***/ else break; 排序。 31.给定程序MODI1.C中函数出学生的最高分,由函数值返应该是:DEFGHIJKABC。 void错fun (long s, long *t)误 /***found***/ /***found***/ fun的功能是:计算函数(x,y,回。 /******/ {long sl=10; 错if(*r=='\0')误 错for(j=i+1; j<6; j++)误 z)=(x+y)/(x-y)+(z+y)/(z-y)的值。/******/ int i; *t = s % 10;while (s > 0) 12.给定程序MODI1.C的功能{if(strcmp(*(pstr+i),*(pstr+j))>0) 其中x、y的值不等,z、y的值double max=h->s; for(i=0;i next; 97.请编写函数fun,函数的功能错sl=sl*10误;}} (即所有为素数的因子)。例如,错*(pstr+i)=*(pstr+j)误; 数值为 -3.50 while(p) 是:将M行N列的二维数组中3.给定程序MODI1.C中fun函若输入整数:2310,则应输出:23.给定程序MODI1.C中函数/***found***/ {if(p->s>max) 的字符数据,按列的顺序依次放数的功能是:将n个无序整数从2、3、5、7、11。 fun的功能是:根据整型形参m,#define 错FU(m,n) ((m)/(n))误 max=p->s;p=p->next; } 到一个字符串中。例如,二维数小到大排序。 /***found***/ 计算如下公式的值。例如,若mfloat fun(float a,float b,float c) return max; 组中的数据为: /***found***/ IsPrime (int n)错*删除分号*误 中的值为:5,则应输出:{float /******/ W W W W for (i=j+1; 错i a[i]) for(i=2;i 0)误 程序运行后 a 中的值为 3,b查找的基本算法是:每次查找前char *p=str; 是:删去一维数组中所有相同的/***found***/ return (k*fun(k-1)); 中的值为8。 先确定数组中待查的范围:lowwhile(*p) 数,使之只剩一个。数组中的数错if(d%2==0)误 /***found***/ /***found***/ 和high(low high,查找结束。 是:将M行N列的二维数组中int i,t,j=0,*p=a; 若输入:202,则输出应该是:0。 "abcCDEF"。 间)例如 a = 3,n = 6,则以上/***found***/ 的数据,按行的顺序依次放到一t=p[0]; {/***found***/ {/***found***/ 表达式为: s = 333333 - 33333 - 错int误 fun(int a[], int m) 维数组中,一维数组中数据的个for(i=0;i<=n;i++) 错long k=1误; 错int k, q, i;误 3333 - 333 - 33 - 3其值是:{int low=0,high=N-1,mid; 数存放在形参n所指的存储单if(t==p[i]); do{k*=num%10; for (k = 0; k < m; k++) 296298a 和 n 是 fun 函数的while(low<=high){mid=(low+hig元中。例如,二维数组中的数据else /***found***/ {q=strlen (str [k]); 形参,表达式的值作为函数值传h)/2; if(ma[mid]) /***found***/ 一般三角形函数返回1,若不能/***found***/ 误 for (k=1;k<=n;k++) 33.给定程序MODI1.C中函数void 错fun(int *a)误 构成三角形函数返回0。 错double fun(int n)误 {while (*s) {s=s+1.0*a/b; fun和funx的功能是:用二分法{int i,j,k,m; /***found***/ {int a,b,c,k;double s; {if (*s>='A'&&*s<='Z') /***found***/ 求方程2x3-4x2+3x-6=0的一个printf("Enter 4 number : "); 错int fun(int a,int b,int c)误 s=0.0;a=2;b=1; /***found***/ c=a;a+=b;错b=c误; {if(a+b>c && b+c>a && a+c>b) *a=*a+1误; 根,并要求绝对误差不超过for(i=0; i ='a'&&*s<='z') fun 的功能是:从n(形参)个给n输入90,则函数求得的一printf("\n\nThe result :\n\n"); if(a==b && b==c) return 3; s=s+错(double)误a/b; /***found***/ 学生的成绩中统计出低于平均个根值为2.000。 for(i=M;i>0;i--){k=a[M-1]; else if(a==b||b==c||a==c) 59.给定程序MODI1.C中函数 错*b=*b+1误; 分的学生人数,此人数由函数值/***found***/ for(j=M-1;j>0;j--) return 2; fun 的功能是:将s所指字符串67.给定程序MODI1.C中函数返回,平均分存放在形参aver错double r;误 /***found***/ /***found***/ 的正序和反序进行连接,形成一fun的功能是:先从键盘上输入所指的存储单元中。例如,若输; else return 1 错;误 r=(m+n)/2; 错a[j]=a[j-1]误个新串放在t所指的数组中。例一个3行3列矩阵的各个元素的入 8 名学生的成绩:80.5 60 /***found***/ 42.给定程序MODI1.C中函数50.给定程序MODI1.C中函数如,当s所指字符串为:"ABCD" 值,然后输出主对角线元素之72 90.5 98 51.5 88 64while(错fabs(n-m)>0.001误) fun的功能是:从3个红球,5fun的功能是:首先将大写字母时,则t所指字符串中的内容应和。 则低于平均分的学生人数为:434.给定程序MODI1.C中函数个白球,6个黑球中任意取出8转换为对应小写字母;若小写字为:"ABCDDCBA"。 /***found***/ (平均分为: fun的功能是:求出两个非零正个作为一组,进行输出。在每组母为a,u,则将其转换为其后/***found***/ 错sum=0误; 75.5625 )。 整数的最大公约数,并作为函数中,可以没有黑球,但必须要有的第5个字母;若小写字母为错void fun(char *s, char *t)误 printf("Input data:"); /***found***/ 值返回。例如,若给num1和红球和白球。组合数作为函数值v,z,使其值减21。转换后的{int i,d;d=strlen(s); for (i=0;i<3;i++) 错t+=s[k]误; num2分别输入49和21,则输返回。正确的组合数应该是15。小写字母作为函数值返回。例for (i=0;i ='a'&&c<='u') fun 的功能是:将s所指字符串值原为8,b中的值为3。程序fun 的功能是:由形参给定n个{a=b; b=r; r=a%b;} /***found***/ 中最后一次出现的与t1所指字运行后a中的值为3,b中的值实数,输出平均值,并统计在平/***found***/ /***found***/ if(错k误>=0 && 错k误<=6) 错c=c+5;误 符串相同的子串替换成t2所指为8。 均值以上(含平均值)的实数个return(错b误);} 43.给定程序MODI1.C中函数51.给定程序MODI1.C中函数字符串,所形成的新串放在w/***found***/ 数。例如,n=8时,输入:193.199,35.给定程序MODI1.C中函数fun的功能是:求整数x的y次fun的功能是:先将s所指字符所指的数组中。在此处,要求t1错void fun(int *x,int *y)误 195.673,195.757,196.051,196.0 {int t; fun的功能是:按以下递归公式方的低3位值。例如,整数5串中的字符按逆序存放到t所指和t2所指字符串的长度相同。92,196.596,196.579,196.763求函数值。例如,当给n输入5的6次方为15625,此值的低3字符串中,然后把s所指串中的例如,当s所指字符串中的内容/***found***/ 所得平均值为:195.838745,在时,函数值为18;当给n输入3位值为625。 字符按正序连接到t所指串的后为:"abcdabfabc",t1所指子串错t=*x;*x=*y;*y=t;误} 平均值以上的实数个数应为:5 时,函数值为14。 /***found***/ 面。例如:当s所指的字符串为:中的内容为:"ab",t2所指子串69.给定程序MODI1.C中函数 {/***found***/ /***found***/ for(i=1;错i<=y误;i++) "ABCDE"时,则t所指的字符串中的内容为:"99"时,结果,在fun 的功能是:将十进制正整数错int j,c=0;误 double xa=0.0; int 错fun(int n)误 t=t*x;*p=t; 应为:"EDCBAABCDE"。 w所指的数组中的内容应为:m转换成k(2?k?9)进制数,并for (j=0;j =误xa) 斐波拉契数列中第n项的值。从整数,把这些整数放在s所指数错t[i]=s[sl-i-1];误 错if(*r==*p)误 错aa[i]=m%k误; 78.给定程序MODI1.C中函数第1项起斐波拉契数列为:1、1、组中,个数作为函数值返回。 52.给定程序MODI1.C中函数61.给定程序MODI1.C中函数m/=k;}for(;i;i--) fun的功能是:计算小于形参k2、3、5、8、13、21、…例如,/***found***/ fun的功能是:从低位开始取出fun的功能是:首先把b所指字/***found***/ 的最大的10个能被13或17整若给n输入7,该项的斐波拉契符串中的字符按逆序存放,然后printf("%d",错aa[i-1]误错k=i误; 长整型变量s中偶数位上的数,); 除的自然数之和。k的值由主函数值为:13 a=k%10; k/=10; 依次构成一个新数放在t中。高将a所指字符串中的字符和b所70.给定程序MODI1.C中fun函数传入,若k的值为500,则函{/***found***/ b=k%10; k/=10; 位仍在高位,低位仍在低位。例指字符串中的字符,按排列的顺数的功能是:根据整型形参m,数值为4622。 switch(g)错*去掉;*误 /***found***/ 如,当s中的数为:7654321时,序交叉合并到c所指数组中,过计算如下公式的值。例如,若主{/***found***/ {case 0: return 0; 错c=k%10;误 t中的数为:642。 长的剩余字符接在c所指数组函数中输入5,则应输出 if (错(k%13)==0||(k%17==0)误) /***found***/ 45.给定程序MODI1.C中函数/***found***/ 的尾部。例如,当a所指字符串-0.283333。 {m=m+k;mc++;} 错case 1: return 1误; fun的功能是:计算n的5次方void fun (long s,错long*t误中的内容为"abcdefg",b所指字k--;}return m; ) /***found***/ 37.给定程序MODI1.C中函数的值(规定n的值大于2、小于{long sl=10; 符串中的内容为"1234"时,c所错t=t-1.0/i;误 /***found***/ fun的功能是:按顺序给s所指8),通过形参指针传回主函数;s/=10;*t=s%10; 指数组中的内容应该为/***found***/ 错}误 数组中的元素赋予从2开始的并计算该值的个位、十位、百位/***found***/ "a4b3c2d1efg";而当a所指字符错return t误;} 79.给定程序MODI1.C中函数偶数,然后再按顺序对每五个元上数字之和作为函数值返回。例串中的内容为"1234",错while(s>0)误 b所指字71.给定程序MODI1.C中函数 fun的功能是:求S的值。例如,素求一个平均值,并将这些值依如,7的5次方是16807,其低53.给定程序MODI1.C中函数符串中的内容为"abcdefg"时,cfun 的功能是:读入一个字符串当k为10时,函数值应为:次存放在w所指的数组中。若s3位数的和值是15。 fun的功能是:输出M行M列所指数组中的内容应该为(长度,20),将该字符串中的1.533852。 所指数组中元素的个数不是5/***found***/ 整数方阵,然后求两条对角线上"1g2f3e4dcba"。 所有字符按ASCII码升序排序/***found***/ 的倍数,多余部分忽略不计。例错d=1;s=0;误 元素之和,返回此和数。 /***found***/ 后输出。例如,若输入:edcba,错double fun(int k)误 如,s所指数组有14个元素,for(i=1;i<=5;i++) d=d*n; /***found***/ 错while(i t[j+1]误) /***found***/ {sum+=s[i]; 项都比前一项的值增5;给定程{for(j = 0; j < M; j++) 62.给定程序MODI1.C中函数72.给定程序MODI1.C中函数return s错;误} 序MODI1.C中函数fun的功能fun的功能是:根据整型形参m,/***found***/ /***found***/ fun的功能是:根据形参m的值80.已知一个数列从第0项开始错if( (i+1)%5==0)误 是:计算前n(4 0){d=s%10; n=10,则应输出:0.617977。 6 8 {double sum,s0,s1,s2,s;int k; /***found***/ for(k=3,i=0;i 1 && n < 170) 大写,然后输出此文本行(这里for (k=0;k 误 0.536389。 /***found***/ fun的功能是:将p所指字符串n=n/10;}while(n); 应输出2。 /***found***/ /***found***/ 错a2=k/10误; 中的所有字符复制到b中,要求/***found***/ /***found***/ 错upfst(char *p)误 for(i=2;错i<=m误;i++) a1=k-a2*10; 每复制三个字符之后插入一个错*zero=count;误 for(i=0错;误str[i]错;误i++) 65.给定程序MODI1.C中函数 /***found***/ if((k%3==0&&a2==5)||(k%3==0空格。例如,在调用fun函数之48.给定程序MODI1.C中函数for(j=i,k=0;substr[k]==str[j];k++,fun 的功能是:统计字符串中各错y-=1.0/(i*i;)误 &&a1==5)){b[i]=k; i++;}} 前给a输入字符串:fun的功能是:为一个偶数寻找j++) 元音字母(即:A、E、I、O、74.给定程序MODI1.C中函数/***found***/ ABCDEFGHIJK,调用函数之两个素数,这两个素数之和等于/***found***/ U)的个数。注意:字母不分大、fun的功能是:找出一个大于形错return i;误} 后,字符数组b中的内容则为:该偶数,并将这两个素数通过形错if误(substr[k+1]=='\0') 小写。例如:若输入:THIs is a 参m且紧随m的素数,并作为82.给定程序MODI1.C中函数ABC DEF GHI JK。 参指针传回主函数。 57.给定程序MODI1.C中函数 boot,则输出应该是:1、0、2、函数值返回 fun的功能是:逐个比较p、q/***found***/ /***found***/ fun 的功能是:判断一个整数是2、0。 /***found***/ 所指两个字符串对应位置中的错b[k]=*p误; 错y=1;误 否是素数,若是返回1,否则返/***found***/ if (错i%k==0误) 字符,把ASCII值大或相等的k++;p++;i++;}if(*p){ for(j=2;j<=sqrt((double)i);j++) 回0。在main()函数中,若fun错num[k]误=0; break ; 字符依次存放到c所指数组中,/***found***/ if(i%j==0) y=0; 返回1输出YES,若fun返回0for (;*s;s++){i=-1; /***found***/ 形成一个新的字符串。例如,若错b[k++]=' '误; if(y==1){ 输出NO!。 /***found***/ if(错k>=i误) 主函数中a字符串为:41.给定程序MODI1.C中函数/***found***/ /***found***/ 错switch(*s)误 75.给定程序MODI1.C中fun函aBCDeFgH,主函数中b字符串fun的功能是:给一维数组a输错d=a-i误; 错k++;误 66.给定程序MODI1.C中 fun 数的功能是:求出以下分数序列为:ABcd,则c中的字符串应入任意4个整数,并按下例的规49.给定程序MODI1.C中函数/***found***/ 函数的功能是:分别统计字符串的前n项之和。和值通过函数值为:aBcdeFgH。 律输出。例如输入1、2、3、4,fun的功能是:根据输入的三个if (错m==k误) 中大写字母和小写字母的个数。返回main函数。例如,若 n = 5,{/***found***/ 程序运行后将输出以下方阵。 边长(整型值),判断能否构成58.给定程序MODI1.C中函数 例如,给字符串 s 输入:则应输出:8.391667。 int 错k=0误; 4 1 2 3 三角形:构成的是等边三角形,fun 的功能是:求出以下分数序AAaaBBb123CCccccd,则应输/***found***/ /***found***/ 3 4 1 2 还是等腰三角形。若能构成等边列的前n项之和。和值通过函数出结果:upper = 6,lower = 8。 错double fun(int n)误 错while(*p||*q)误 83.给定程序MODI1.C中函数随机函数为各结点数据域赋值。1.给定程序的功能是调用fun函7.给定程序中已建立一个带有{int i; 参ss所指字符串数组中最长字fun的功能是:求三个数的最小函数fun的作用是求出单向链数建立班级通讯录。通讯录中记头结点的单向链表,链表中的各for(i=0; i<3; i++) 符串的长度,将其余字符串右边公倍数。例如,给主函数中的变表结点(不包括头结点)数据域录每位学生的编号、姓名和电话结点按数据域递增有序链接。函/***found***/ 用字符*补齐,使其与最长的字量x1、x2、x3分别输入15 11 中的最大值,并且作为函数值返号码。班级的人数和学生的信息数fun的功能是:删除链表中数ss->答score[i]案*=a;} 符串等长。ss所指字符串数组中2,则输出结果应当是:330。 回。 从键盘读入,每个人的信息作为据域值相同的结点,使之只保留main() 共有M个字符串,且串长 next误; myfile5.dat的二进制文件中。 /***found***/ std={ 1,"Zhanghua",76.5,78.0,82.n=strlen(答ss[i]案); {int j,t,n,m; while(p){if(p->data>max) /***found***/ free(答q案); 0 }; for(j=0; j data; int fun(答STYPE案*std) /***found***/ float a; /***found***/ while(t!=0||m!=0||n!=0) /***found***/ {/***found***/ q=p->答next案;} printf("\nThe original number ss[i][答n+j案]='*'; {j=j+1;t=j%x;m=j%y;n=j%z;} 错p=p->next误;} 答FILE案*fp; int i; else{p=q; and name and scores :\n"); /***found***/ /***found***/ 93.给定程序MODI1.C中函数if((fp=fopen("myfile5.dat","wb")/***found***/ show(std); ss[i][n+j+答1案]='\0';}} } )==NULL) q=q->答next案; 20.给定程序中,函数fun的功错return j;误fun的功能是:将s所指字符串printf("\nInput a number : "); 84.给定程序MODI1.C中函数中位于奇数位置的字符或return(0); 8.给定程序中,函数fun的功能scanf("%f",&a); 能是:求ss所指字符串数组中fun的功能是:根据以下公式求ASCII码为偶数的字符放入t所printf("\nOutput data to file !\n"); 是:在带有头结点的单向链表/***found***/ 长度最长的字符串所在行下标,π值,并作为函数值返回。例如,指数组中(第一个字符放在第0for(i=0; i eps) t[j++]=s[i]; 个字符),写到文件myfile4.txtwhile(p!=答0案) void fun(PERSON答*std案) *n) {s+=t;t=t*n/(2*n+1);n++;} /***found***/ 中,用-1作为字符串结束的标{n++; {/***found***/ {int i, k=0, len=0; /***found***/ 错t[j]='\0'误;} 志。然后将文件的内容读出显示/***found***/ 答PERSON案 temp; for(i=0; i data==ch) if(std[0].num>std[1].num) {len=strlen(ss[i]); 85.给定程序MODI1.C中函数fun的功能是:计算s所指字符函数ReadText和WriteText实return 答n案; {temp=std[0]; std[0]=std[1]; /***found***/ fun的功能是:从s所指字符串串中含有t所指字符串的数目,现。 else p=p->next;} std[1]=temp;} if(i==0) *n=答len案; 中删除所有小写字母"c"。 并作为函数值返回。 /***found***/ return 0;} if(std[0].num>std[2].num) if(len>*n) { /***found***/ /***found***/ void WriteText(FILE答*fw案) main() {temp=std[0]; std[0]=std[2]; /***found***/ 错s[j++]=s[i]误; 错r=t误; {char str[81]; {SLIST *head; int k; char ch; std[2]=temp;} 答*n=len案; char a[N]={'m','p','g', /***found***/ while(*r) printf("\nEnter string with -1 to if(std[1].num>std[2].num) 21.给定程序中,函数fun的功错s[j]='\0';误} if(*r==*p) {r++; p++;} end :\n");gets(str); 'a','w','x','r','d'}; {temp=std[1]; std[1]=std[2]; 能是:求ss所指字符串数组中86.给定程序MODI1.C中函数else break; while(strcmp(str,"-1")!=0) head=creatlist(a); std[2]=temp; } } 长度最短的字符串所在的行下fun的功能是:应用递归算法求/***found***/ {/***found***/ outlist(head); main() 标,作为函数值返回,并把其串形参a的平方根。求平方根的迭错if(*r==0)误 fputs(答str案,fw); printf("Enter a letter:"); {PERSON std[]={5,"Zhanghu", 长放在形参n所指变量中。ss代公式如下:例如,a为2时,95.给定程序MODI1.C中函数fputs("\n",fw); scanf("%c",&ch); 2,"WangLi",6,"LinMin" }; 所指字符串数组共有M个字符平方根值为:1.414214。 /***found***/ fun的功能是:将s所指字符串gets(str);}} int i; 串,串长 ='A'&&*s<='Z'||*s>='a'&while(!feof(fr)) /***found***/ 数值返回,并在main函数中输if(len 答<案 *n) if(fabs(x1-错x0误)>0.00001) &*s<='z') {/***found***/ 答*n案=0; 出。 {*n=len;k=i;}} 87.假定整数数列中的数不重p=h->next; /***found***/ {if(*s=='Z')*s='A'; printf("%s",答str案); /***found***/ 复,并存放在数组中。给定程序else if(*s=='z')*s='a'; 3.给定程序中,函数fun的功能while(p) max=答*std案; return(答k案);} MODI1.C中函数fun的功能是:else *s+=1;} 是:将自然数1,10以及它们的{(*n)++; for(i=1; i 答next案;}} if(max.age<答std[i].age案) 数字字符移到所有非数字字符/***found***/ 96.给定程序MODI1.C中函数示在屏幕上。 main() max=std[i]; 之后,并保持数字字符串和非数if(错p==n误fun的功能是:比较两个字符串,/***found***/ {SLIST *head; ) return -1; return max;} 字字符串原有的先后次序。例else{for(i=p;i 答data案; 学生的信息。函数fun的功能是for(i=0; i<答j案; i++) {int i;char *sp; 97.给定程序MODI1.C中函数到指定的目标文件中,复制成功/***found***/ 输出这位学生信息。 s[k+i]=t2[i];} sp=sq[0];for(i=0;i 答next案;} /***found***/ 23.给定程序中,函数fun的功if(strlen(sp) ='0'答&&案s[i]<='9') 将其放在第一个位置上;并将该fun的功能是:对N名学生的学案))==NULL) printf("\nsum=%d\n", fun(答/***found***/ {n=0; 字符前的原字符向后顺序移动。习成绩,按从高到低的顺序找出return 0; head案));} printf("%5.1f", 答tt.score[i]案); /***found***/ 例如,调用fun函数之前给字符前m(m?10)名学生来,并将这if((ft=fopen(target, 11.人员的记录由编号和出生printf("\n");} while(s[i+1+n]!=答0案)n++; 串输入:ABCDeFGH,调用后些学生数据存放在一个动态分"w"))==NULL) 年、月、日组成,N名人员的数main() for(j=i+n+1; j>i; j--) {STU std={ 1,"Zhanghua",'M' 字符串中的内容为:配的连续存储区中,此存储区的return 0; 据已在主函数中存入结构体数/***found***/ eABCDFGH。 首地址作为函数值返回。 printf("\nThe data in file :\n"); 组std中,且编号唯一。函数fun,1961,10,8,76.5,78.0, 82.0 }; s[j+1]= 答s[j]案; /***found***/ /***found***/ ch=fgetc(fs); 的功能是:找出指定编号人员的printf("\nA student data:\n"); 24.函数fun的功能是:统计形q=p+i错;误} t=(STU *)calloc(sizeof(STU),m)/***found***/ 数据,作为函数值返回,由主函/***found***/ 参s所指字符串中数字字符出i++;} 错;误 while(!feof(答fs案)) 数输出,若指定编号不存在,返show(答std案);} 现的次数,并存放在形参t所指/***found***/ for(i=0; i p)误 for(k=0; k b[j].s)j=i; 5.给定程序中已建立一个带有*num) 行排序。ss所指字符串数组中共为:4。 对字符串中的字符按从小到大/***found***/ 头结点的单向链表,链表中的各M个字符串,且串长 ='0'&&s[i]<= 答'9'案) 符插入到前两个字符中,插入后端加入n个*号,形成新串,并点并插入到链表中,插入后各结案,num)==0) if(n[k]>n[j]) 答k=j案; n++; 前三个字符依然有序;再把第四且覆盖原串。注意:字符串的长点数据域的值仍保持递增有序。 /***found***/ if(k!=i) /***found***/ 个字符插入到前三个字符度最长允许为79。 /***found***/ return (答std[i]案); {strcpy(t,ss[i]); 答*t=n案;} 中……。待排序的字符串已在主/***found***/ s->data=答x案; 12.人员的记录由编号和出生strcpy(ss[i],ss[k]); 25.给定程序中,函数fun的功函数中赋予。 错p=s;误 q=h; 年、月、日组成,N名人员的数/***found***/ 能是:把形参s所指字符串中下/***found***/ for(i=0;i next; 据已在主函数中存入结构体数strcpy(ss[k],答t案); 标为奇数的字符右移到下一个n=错strlen(aa)误; do {a[i]=*p;i++;} while(p!=NULL && x>p->data) 组std中。函数fun的功能是:18.给定程序中,函数fun的功奇数位置,最右边被移出字符串for(i=1;i next;} 由主函数输出,同时由函数值返字符串左边用字符*补齐,使其字符串的长度大于等于2)。例91.给定程序MODI1.C是建立数Creatlink的功能是创建带头s->next=p; 回满足指定条件的人数。 与最长的字符串等长。字符串数如,形参s所指的字符串为:一个带头结点的单向链表,并用结点的单向链表,并为各结点数/***found***/ /***found***/ 组中共有M个字符串,且串长abcdefgh,执行结果为:随机函数为各结点赋值。函数据域赋0到m-1的值。 q->next=答s案;} if(答std[i].year案==year) next=NULL; 用一次fun函数,输出链表尾部return (答n案);} if (i!=k) /***found***/ /***found***/ for(i=1;i<=n;i++) 结点中的数据,并释放该结点,13.给定程序通过定义并赋初值{m=n; c=答s[k]案; 错p=h->next误; {s=(NODE*)malloc(sizeof(NOD使链表缩短。 的方式,利用结构体变量存储了len=strlen(ss[i]); for(i=k-2; i>=1; i=i-2) while(p) E)); /***found***/ 一名学生的学号、姓名和3门课/***found***/ s[i+2]=s[i]; {if(p->data%2==0)sum+=p->dats->data=rand()%m;s->next=p->nt=t->答next案;} 的成绩。函数fun的功能是将该for(j=答len案; j>=0; j--) /***found***/ a; ext; /***found***/ 学生的各科成绩都乘以一个系ss[i][m--]=ss[i][j]; s[1]=答c案;} /***found***/ p->next=s;p=p->next;} printf(" %d ",答t->data案); 数a。 for(j=0; j next误;} /***found***/ s->next=NULL; /***found***/ /***found***/ 能是:对形参s所指字符串中下92.给定程序MODI1.C是建立错return h;误} /***found***/ void modify(答STU案*ss,float 答ss[i][j]案='*';}} 标为奇数的字符按ASCII码大一个带头结点的单向链表,并用 free(答t案);} a) 19.函数fun的功能是:求出形小递增排序,并将排序后下标为 奇数的字符取出,存入形参p/***found***/ 7,则按规则移动后,数据排列/***found***/ 数字之和为x(x为一正整数)所有字母字符顺序前移,其他字所指字符数组中,形成一个新void fun(int (*t)答[N]案) 为:9、1、8、2、7、3、6、4、f+=答t案;} 的整数,然后输出;符合条件的符顺序后移,处理后新字符串的5。形参n中存放a所指数组中46.函数fun的功能是:统计所整数个数作为函数值返回。例串。例如,形参s所指的字符串{int i, j; 首地址作为函数值返回。例如,为:baawrskjghzlicda,执行后pfor(i=1; i 2)的素数的个如,当x值为5时,100,999s所指字符串为:所指字符数组中的字符串应为:{for(j=0; js[j]) t=j; 能是:将N×N矩阵主对角线元px=pn=i; break; 1个。 for(i=0; i<答k案;i++)t[j+i]=p[i]; if(t!=i) 素中的值与反向对角线对应位/***found***/ /***found***/ /***found***/ /***found***/ ;j =i) while(t<=答999案){ t[j+k]=答0案; {x=s[i]; s[i]=s[t]; s[t]=x;}} 置上元素中的值进行交换。例for(j=答i+1案if(答j案for(i=1,j=0; i i; j--) s[j+1]=s[j]; 线元素和反向对角线元素之和,组元素中的值。例如:若a所指倍数;依此类推,直到所找的下54.给定程序中,函数fun的功个数的平均值(规定所有数均为/***found***/ 并作为函数值返回。注意:要求数组中的数据依次为:1、2、3、一个数等于n为止。这样会得到能是:将形参n中,各位上为偶正数),作为函数值返回;并将s[j+1]=答c案; 先累加主对角线元素中的值,然4、5、6、7、8、9,则逆置后依一个序列:2,3,5,7,11,13,数的数取出,并按原来从高位到大于平均值的数放在形参y所28.给定程序中,函数fun的功后累加反向对角线元素中的值。 次为:9、8、7、6、5、4、3、2、17,19,23,…函数fun用筛选低位相反的顺序组成一个新的指数组中,在主函数中输出。例1。形参n给出数组中数据的个数,并作为函数值返回。例如,能是:有N×N矩阵,根据给定例如,若N=3,有下列矩阵: 法找出所有小于等于n的素数,如,有10个正数:46 30 32 的m(m<=N)值,将每行元素 1 2 3 数。 并统计素数的个数作为函数值输入一个整数:27638496,函数40 6 17 45 15 48 26,中的值均右移m个位置,左边 4 5 6 /***found***/ 返回。 返回值为:64862。 平均值为:30.500000主函数中置为0。例如,N=3,m=2,有 7 8 9 for(i=0;i<答n/2案;i++) /***found***/ /***found***/ 输出:46 32 40 45 48 下列矩阵 fun函数首先累加1、5、9,然{t=a[i]; for(j=a[i]*2;j<=n; j+=答a[i]案) if(t%2==答0案) /***found***/ 1 2 3 后累加3、5、7,函数的返回值/***found***/ a[j]=0;i++; /***found***/ av=答0案; 4 5 6 为30。 a[i]=a[n-1-答i案]; /***found***/ x=答10*x案+t; /***found***/ 7 8 9 /***found***/ /***found***/ while(答a[i]案==0) /***found***/ for(i=0; i av) y[答j++案]= x[i]; /***found***/ for(i=0; i =0; j--) 持不变;并将转换后的结果作为 49.甲乙丙丁四人同时开始放鞭数的平均值(规定所有数均为正sum+= t[i][n-i-答1案]; n传回所指变量。例如,输入一/***found***/ 34.函数fun的功能是:把形参a函数值返回。 炮,甲每隔t1秒放一次,乙每个数:27638496,新的数:为数),平均值通过形参返回主函t[i][j+答m案]=t[i][j]; 所指数组中的奇数按原顺序依/***found***/ 隔t2秒放一次,丙每隔t3秒放739。 数,将小于平均值且最接近平均/***found***/ 次存放到a[0]、a[1]、a[2]、……答char案fun(char ch){ 一次,丁每隔t4秒放一次,每/***found***/ 值的数作为函数值返回,在主函/***found***/ 数中输出。例如,有10个正数:for(j=0; j<答m案; j++) 中,把偶数从数组中删除,奇数人各放n次。函数fun的功能是{t=*n%答10案; 29.给定程序中,函数fun的功个数通过函数值返回。例如:若if(ch>='0'&&答ch<=?9?案) 根据形参提供的值,求出总共听/***found***/ 46 30 32 40 6 17 45 能是:将N×N矩阵中元素的值a所指数组中的数据最初排列/***found***/ 到多少次鞭炮声作为函数值返if(t%2!=答0案) 15 48 26,平均值为:按列右移1个位置,右边被移出为:9、1、4、2、3、6、5、8、return '9'-(ch-答„0?案); 回。注意,当几个鞭炮同时炸响,{x=x+t*i; i=i*10;} 30.500000主函数中输出:矩阵的元素绕回左边。例如,7,删除偶数后a所指数组中的41.函数fun的功能是进行字母只算一次响声,第一次响声是在*n =*n /10;} m=30.0 N=3,有下列矩阵 数据为:9、1、3、5、7,返回转换。若形参ch中是小写英文第0秒。例如,若t1=7,/***found***/ /***found***/ 答 1 2 3 值为5。 字母,则转换成对应的大写英文t2=5,t3=6,t4=4,n=10,则总共*n=答x案;} *av案=s/N; 4 5 6 /***found***/ 字母;若ch中是大写英文字母,可听到28次鞭炮声。 56.给定程序中,函数fun的功d=32767;for(i=0; i ='a')答&&案(ch<='z')) int n) /***found***/ return 答x[j]案;} /***found***/ 35.函数fun的功能是:把形参areturn ch -'a' + 'A'; {int count, t , maxt=t1; s=答0案; 64.给定程序中,函数fun的功for(i=0; i<答N案;i++){ 所指数组中的偶数按原顺序依if (isupper(ch)) if (maxt < t2) maxt = t2; /***found***/ 能是:计算形参x所指数组中N/***found***/ 次存放到a[0]、a[1]、a[2]、……/***found***/ if (maxt < t3) maxt = t3; for(i=1;i<=答n案;i++)}{t=2.0*i; 个数的平均值(规定所有数均为x=t[i][答N-1案]; 中,把奇数从数组中删除,偶数return ch +'a'-答„A?案; if (maxt < t4) maxt = t4; /***found***/ 正数),将所指数组中大于平均for(j=N-1; j>=1; j--) 个数通过函数值返回。例如:若/***found***/ count=1; s=s+(2.0*i-1)*(2.0*i+1)/答(t*t)值的数据移至数组的前部,小于t[i][j]=t[i][j-1]; a所指数组中的数据最初排列return 答ch案;} /***found***/ 案;} 等于平均值的数据移至x所指/***found***/ 为:9、1、4、2、3、6、5、8、42.函数fun的功能是:计算for(t=1; t< maxt*(n-1); 答t++57.给定程序中,函数fun的功数组的后部,平均值作为函数值t[i][答0案]=x;}} 7,删除奇数后a所指数组中的*****的前n项之和。若x=2.5,案) 能是:计算下式前n项的和作为返回,在主函数中输出平均值和30.给定程序中,函数fun的功数据为:4、2、6、8,返回值为n=15时,函数值为:1.917914。 { if(OK(t,t1,n)||OK(t,t2,n)|| OK(t, 函数值返回。例如,当形参n移动后的数据。例如,有10个能是:有N×N矩阵,将矩阵的4。 /***found***/ t3, n) || OK(t, t4, n)) 的值为10时,函数返回:正数:46 30 32 40 6 17 外围元素顺时针旋转。操作顺序/***found***/ f=答1案; count++;} -0.204491。 45 15 48 26,平均值为:是:首先将第一行元素的值存入if(答a[i]%2案==0){ t=-1; /***found***/ /***found***/ 30.500000移动后输出为:46 临时数组r,然后使第一列成为/***found***/ for(i=1; i av){ 4 5 6 a[0]中,接着把形参a所指数组到 。若x=2.5,函数值为:t=(a>b)?(b>c?b:(a>c?c:答ak=k*答(-1)案;} /***found***/ 7 8 9 中的最大值放在a[1]元素中;再1.917915。 案)):((a>c)?答a案:((b>c)?c:答b58.给定程序中,函数fun的功y[答j++案]=x[i]; x[i]=-1;} 计算结果为 把a所指数组元素中的次小值/***found***/ 案)); 能是计算下式直到 ,并把计算for(i=0; i 案e) 值的数据移至数组的前部,大于/***found***/ a所指数组中数据的个数。 while(答fabs(t)案>=1e-6); 159、168、177、186、195、249、{s=s+k*x; 等于平均值的数据移至x所指for(j=N-1; j>=0;答j--案) /***found***/ 44.函数fun的功能是:计算的258、267、276、285、294、339、k=k*(-1);t=2*i; 数组的后部,平均值作为函数值t[N-1][N-1-j]=t[j][N-1]; max=min=答a[i]案; 前n项。若x=2.5,函数值为348、357、366、375、384、393、 /***found***/ 返回,在主函数中输出平均值和for(j=N-1; j>=0; j--) px = pn = i; 12.182340。 429、438、447、456、465、474、x=答(2*i+1)案/(t*t); 移动后的数据。例如,有10个/***found***/ for (j=i+1; j 答a[j]案) t*=x/答i案; while(t<=答x案) /***found***/ /***found***/ 上三角元素置为0。例如,若37.函数fun的功能是:把形参a45.函数fun的功能是:计算直{s1=t%10; s2=(t/10)%10; s=0; i=答0案; for(i=0;i e){ 案; 1 2 3 中,接着求出a所指数组中的最12.182494。 if(s1+s2+s3==15) /***found***/ for(i=j=0; i sno案 = 10004; 至尾的数据为:10、4、2、8、6,量,存储了学生的学号、姓名和b[i]=答a[0][i]案; k++;} tp=ps[i]; ps[i]=ps[k]; ps[k]=答tp/***found***/ 排序后链表结点数据域从头至3门课的成绩。所有学生数据均for(j=1; j name案, "LiJie"); } 尾的数据为:2、4、6、8、10。 以二进制方式输出到文件中。函a[%d][%d]=%d\n",i,c,a[i][c]); /***found***/ 81.给定程序中,函数fun的功main() /***found***/ 数fun的功能是从形参filenameif(b[i]答<案a[j][i]) b[i]=a[j][i];}} /***found***/ 能是:在形参ss所指字符串数{struct student t={10002, p=答h->next案; 所指的文件中读入学生数据,并main() 答i++案;} 组中查找与形参t所指字符串相"ZhangQi", 93, 85, 87};int i; while (p) { 按照学号从小到大排序后,再用{int x[N][N]={ {12,5,8,7}, 74.给定程序中,函数fun的功同的串,找到后返回该串在字符printf("\n\nThe original /***found***/ 二进制方式把排序后的学生数{6,1,9,3},{1,2,3,4},{2,8,4,3} },y[能是:把形参s所指字符串中最串数组中的位置(下标值),未data :\n"); q=答p->next案; 据输出到filename所指的文件N],i,j; 右边的n个字符复制到形参t所找到则返回-1。ss所指字符串数printf("\nNo: %ld while (q) { 中,覆盖原来的文件内容。 printf("\nThe matrix :\n"); 指字符数组中,形成一个新串。组中共有N个内容不同的字符Name: %s\nScores: ",t.sno, /***found***/ /***found***/ for(i=0;i data答>=案q->data) fp=fopen(filename,答“rb”案); {for(j=0;j 案s[j].sno) 能是建立一个main() 量,存储了学生的学号、姓名和/***found***/ {t= s[i]; s[i] = s[j]; s[j] = t;} N×N的矩阵。 矩if(n>=len)strcpy(答t,s案); 阵元素的构成规律是:最外层元else{ {char 3门课的成绩。函数fun的功能答NODE *案fun(NODE *h) fp = fopen(filename, "wb"); 素的值全部为1;从外向内第2/***found***/ ch[N][M]={"if","while","switch"是将形参a中的数据进行修改,{NODE *p, *q, *r; /***found***/ 层元素的值全部为2;第3层元for(i=len-n; i<=len-1; i++) ,"int","for"}, t[M]; 把修改后的数据作为函数值返p = h;if (p == NULL) return 答fwrite案(s, sizeof(STU), N, int n,i; 回主函数进行输出。例如:传给素的值全部为3,…依次类推。t[j++]=答s[i]案; NULL; fp); 例如,若N=5,生成的矩阵为: /***found***/ printf("\nThe original 形参a的数据中,学号、姓名、q = p->next;p->next = NULL; 100.程序通过定义学生结构体 1 1 1 1 1 t[j]=答0案;}} string\n\n"); 和三门课的成绩依次是:10001、while (q){ 变量,存储了学生的学号、姓名 1 2 2 2 1 75.给定程序中,函数fun的功for(i=0;i 答next案; 均以二进制方式输出到文件中。 1 2 2 2 1 否是"回文("Palindrome),若是,printf("\nEnter a string for search: 96、81、89。 q->next=p;p=q; 函数fun的功能是重写形参"); gets(t); 1 1 1 1 1 函数返回值为1;不是,函数返/***found***/ /***found***/ filename所指文件中最后一个void fun(int (*a)答[N]案 回值为0。"回文"是正读和反读n=fun(ch,t); 答struct案 fun(struct student a) q=答r案;} 学生的数据,即用新的学生数据/***found***/ 都一样的字符串(不区分大小写/***found***/ {int i;a.sno = 10002; 94.给定程序中,函数fun的功覆盖该学生原来的数据,其它学for(j=答i案;j 答next案; /***found***/ (规定N为奇数)的矩阵是否p)) && (lp