1、2. 改错题下列给定的程序中,fun()函数的功能是:将p所指字符串中每个单词的最后一个字母改成大写(这里的单词是指有空格隔开的字符串)。例如,若输入:I am a student to take the examination 则应输出:I aM A studenT tO takE thE examinatioN 请改正程序中的错误,使它能得出正确的结果。不要改动main函数,不得增行或删行,也不得更改程序的结构。conio.hctype.hvoid fun(char *p) int k=0; for ( ;*p;p+) if (k)/*found*/ if (p= ) k=0; *p=to
2、upper( *(p-1); /改*(p-1)=toupper( *(p-1); /*found*/ else k=1;char chrstr64; int d;nPlease enter an English sentence within 63 letters: gets(chrstr); d=strlen(chrstr); chrstrd=; chrstrd+1=0;nBofore changing:n %s,chrstr); fun(chrstr);nAfter changing:3. 编程题学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun()
3、,它的功能是:把分数最高的学生数据放在h所指的数组中。分数高的学生可能不只一个,函数返回分数最高学生的人数。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。#define N 16typedef struct char num10; int s ;STREC;int fun (STREC *a, STREC *b)main () STREC sN=GA005,85,GA003,76,GA002,69,GA004,85, GA001,91,GA007,72,GA008,64,GA006,87,GA015GA013GA012GA014,91,GA011,
4、66,GA017GA018GA016,72; STREC hN; int i, n; FILE *out; n=fun(s,h);The %d highest score :,n); for (i=0; in;%s %4dn ,hi.num,hi.s); /*输出最高分学生的学号和成绩*/ out=fopen(out15.dat, w fprintf(out, %dn for(i=0; i+);%4dn ,hi.s); fclose(out);请补充main函数,该函数的功能是:把一个字符串中的所有小写字母字符全部转换成大写字母字符,其他字符不变,结果保存原来的字符串中。例如:当strN=12
5、3 abcdef ABCDEF!,结果输出:123 ABCDEF ABCDEF!请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。#includevoid main() int j; char strN= 123abcdef ABCDEF! char *pf=str;*original string *n【1】 / 答案:j=0 while(*(pf+j) if(*(pf+j)=a&*(pf+j)void fun(char *p,char *q,char *c) int k=0; while(*p|*q) if (*p=*q ck=*q; els
6、e ck=*p; if(*p) p+; if(*q) q+ ; k+ /加 ;号 char a10=fshADfg,b10=sdAEdi,c80=0; fun(a,b,c);The string a: puts(a);The string b: puts(b);The result : puts(c);请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数个位和十位上,b数的十位和个位数依次放在c数的百位和千位上。例如,当a=16,b=35,调用该函数后,c=5361。void fun(int a ,int b,long
7、*c) int a,b; long c;Input a,b; scanf(%d%d,&a, &b); fun(a,b,&c);The result is:%ldn,c);请补充main函数,该函数的功能是求方程ax2+bx+c=0的两个实数根。方程的系数a、b、c从键盘输入,如果判别式(disc=b2-4ac)小于,则要求重新输入a、b、c的值。例如,当a=1,b=2,c=1时,方程的两个根分别是x1=-1.00, x2=-1.00。#include math.h float a,b,c, disc,x1,x2; do printf(Input a,b,c: scanf(%f,%f,%fa,&
8、b,& disc=b*b-4*a*c; if(disc0) printf(disc=%fn Input again!,disc); while(【1】);/答案:disc float a,b,c,disc,x1,x2,p,q; disc=b*b-4*a*c;*the result *n if(disc=0) x1=【1】; x2=(-b-sqrt(disc)/(2*a);x1=%6.2f,x2=%6.2fn p=【2】;/ p=(-b)/(2*a); q=【3】;/ q=sqrt(-disc)/(2*a);x1=%6.2f+%6.2f in,p,q);x2=%6.2f-%6.2f in下列给定
9、程序中,函数fun()的功能是根据整型形参m,计算如下公式的值。y=1-1/(22)+1/(33)-1/(44)+(-1)(m+1)/(mm)m中的值为5,则应输出0.838611。double fun(int m) double y=1.0; int j=1; for(i=2;=m; j=-1*j; y+=1/(i * i); /y+=j*1.0/(i*i); return(y); int n=5;nThe result is %lfn ,fun(n);请编一个函数void fun(int ttMN, int ppN), tt指向一个M行N列的二维数组,求出二维数组每列中最大元素,并依次放入
10、pp所指的一维数组中。二维数组中的数已在主函数中给出。#define M 3#define N 4void fun(int ttMN,int ppN) int tMN=68, 32, 54, 12,14, 24, 88, 58,42, 22, 44, 56; int pN,i,j,k;The riginal data is:iM;i+) for(j=0;jN;j+)%6d,tij); fun(t,p);nThe result is: for(k=0;k1 & n 170) result *=n+ ;/ result *=n- ; result=1/result; return result;I
11、nput N:n1/%d!=%lfn,n,fun(n);编写函数fun(),它的功能是求n以内(不包括n)同时能被5与11整除的所有自然数之和的平方根s,并作为函数值返回。n为1000时,函数值应为s=96.979379。double fun(int n)clrscr();printf(s=%fn, fun(1000);2.下列给定程序中函数fun()的功能是计算正整数num的各位上的数字之平方和。输入352,则输出应该是38;若输入328,则输出应该是77。long fun(long num) long k=1;/k=0; do k+=(num%10)*(num%10); num/=10;/*found*
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1