printf("\n");
}
这个程序我看得不太理解,请高手指教!
在给定程序中,读入一个英文文本行,将其中的每个单词的第一个字母改成大写,然后输出此文本,(这里的单词是指由空格隔开的字符串0
例如:
当输入:
Iamastudenttotaketheexamination
则应输出IAmAStudentToTakeTheExamination
#include//这里是什么意思
#include
/************found************/
#include
/************found************/
voidupfst(char*p)
{intk=0;//这里的k有什么具体含义
for(;*p;p++)//这里的循环条件*p有什么含义,为什么不是我们通常用的*p!
=’\0’呢
if(k)//这里是什么意思,是当k=0的时候就执行if后面的语句么
{if(*p=='')k=0;}
elseif(*p!
='')
{k=1;*p=toupper(*p);}//这里的toupper是什么意思
}//最后想问下这里的for语句是管到第一个if的花括号之后还是管到elseif后面的花括号之后呢
main()
{charchrstr[81];
printf("\nPleaseenteranEnglishtextline:
");gets(chrstr);
printf("\n\nBeforechanging:
\n%s",chrstr);
upfst(chrstr);
printf("\nAfterchanging:
\n%s\n",chrstr);
}
程序通过定义结构体变量,存储了学生的学号,姓名,和3门课的成绩。
函数fun的功能是将形参a所指的结构体变量s中的数据进行修改,把a中的地址作为函数值返回主函数,在主函数中输出修改后的数据。
例如,a指的s中的学号,姓名和3门成绩依次是“1001”,zhangsan,95、80、88,修改后输出t中的数据应为10002、“lisi”/96/、81、89
#include
#include
structstudent{
longsno;
charname[10];
floatscore[3];
};
/**********found**********/
structstudent*fun(structstudent*a)
{inti;
a->sno=10002;
strcpy(a->name,"LiSi");
/**********found**********/
for(i=0;i<3;i++)(*a).score[i]+=1;
/**********found**********/
returna;
}
main()
{structstudents={10001,"ZhangSan",95,80,88},*t;
inti;
printf("\n\nTheoriginaldata:
\n");
printf("\nNo:
%ldName:
%s\nScores:
",s.sno,s.name);
for(i=0;i<3;i++)printf("%6.2f",s.score[i]);
printf("\n");
t=fun(&s);
printf("\nThedataaftermodified:
\n");
printf("\nNo:
%ldName:
%s\nScores:
",(*t).sno,(*t).name);
for(i=0;i<3;i++)printf("%6.2f",(*t).score[i]);
printf("\n");
}
函数fun的功能是:
从N个字符串中找出最长的那个串,并将其地址作为函数值返回。
各字符串在主函数中输入,并放入一个字符串数组中。
#include
#include
#defineN5
#defineM81
/**********found**********/
char*fun(char(*sq)[M])
{inti;char*sp;
sp=sq[0];
for(i=0;iif(strlen(sp)sp=sq[i];
/**********found**********/
returnsp;
}
main()
{charstr[N][M],*longest;inti;
printf("Enter%dlines:
\n",N);
for(i=0;iprintf("\nTheNstring:
\n",N);
for(i=0;ilongest=fun(str);
printf("\nThelongeststring:
\n");puts(longest);}
请编写函数fun,函数的功能是:
将大于形参m且紧靠m的k个素数存入xx所指的数组中,例如,输入17,5则应输出19,23,29,31,37.
请勿改动主函数main和其它函数中的任何内容仅在函数fun的花括号内填入你所编写的若干语句。
#include
voidfun(intm,intk,intxx[])
{
inti,j,g=0;
for(i=m+1;i;i++)
{for(j=2;j<=i/2;j++)
if(i%j==0)
break;
if(j>i/2)
{xx[g]=i;
g++;}
if(g==k)
break;
}}
main()
{
intm,n,zz[1000];
printf("\nPleaseentertwointegers:
");
scanf("%d,%d",&m,&n);
fun(m,n,zz);
for(m=0;mprintf("%d",zz[m]);
printf("\n");
NONO();
}
NONO()
{/*本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。
*/
intm,n,zz[1000],i;
FILE*rf,*wf;
rf=fopen("D:
\\k01\\24010001\\in.dat","r");
wf=fopen("D:
\\k01\\24010001\\out.dat","w");
for(i=0;i<10;i++){
fscanf(rf,"%d%d",&m,&n);
fun(m,n,zz);
for(m=0;mfprintf(wf,"\n");
}
fclose(rf);
fclose(wf);
}
函数fun的功能是:
求出下列分数的前n项之和
2/1,3/2,5/3,8/5,13/8,21/13.。
。
。
。
。
。
。
和通过函数值返回main函数
例如输入n=5,则应输出8.391667
#include
/**************found**************/
doublefun(intn)
{inta=2,b=1,c,k;
doubles=0.0;
for(k=1;k<=n;k++)
{s=s+1.0*a/b;
/**************found**************/
c=a;a+=b;b=c;
}
return(s);
}
main()
{intn=5;
printf("\nThevalueoffunctionis:
%lf\n",fun(n));
}
在给定程序中函数fun的功能是:
判断形参s所指的字符串是否是回文。
若是,函数值返回1,若不是,函数值返回0,。
回文是正读和反读都相同的字符串
例如:
LEVEL和level是回文,而LEVLEV不是回文。
#include
#include
#include
intfun(char*s)
{char*lp,*rp;
/**********found**********/
lp=s;
rp=s+strlen(s)-1;
while((toupper(*lp)==toupper(*rp))&&(lp