return语句是不是直接跳去该函数呀?还执行后边的语句吗?

voidmain(){intchang(char*c,inta);charc;intflag=1;do{c=getchar();flag=chang(&c,flag);p... void main()
{
int chang(char *c,int a);
char c;
int flag=1;
do
{
c=getchar();
flag=chang(&c,flag);
putchar(c);
}
while(c!='\n');
}
chang(char *c,int a)
{
if(*c==' ')
return 1;
else if(a&&*c>='a'&&*c<='z')
*c-='a'-'A';
return 0;
}
这个程序的作用是把空格后的字母编程大写,本人对被掉函数不太理解麻烦解释下谢谢了
展开
 我来答
lhzrzb
2009-04-06 · TA获得超过615个赞
知道小有建树答主
回答量:303
采纳率:0%
帮助的人:304万
展开全部
void main()
{
int chang(char *c,int a); //声明chang函数,两个形参中,c为要判断的字符,a其实是个标志,当为1时转换大写,为0时不转换,是用来控制遇见空格变大写的。
char c;
int flag=1;
do
{
c=getchar();
flag=chang(&c,flag); //调用函数
putchar(c); //输出转换后的字符串
}
while(c!='\n');
}
chang(char *c,int a)
{
if(*c==' ') //如果遇见空格,返回1,即将标志设为1,则下一个字符变大写
return 1;
else if(a&&*c>='a'&&*c<='z') //如果不是空格,且a=1即是空格后第一个字符,且该字符是小写字符
*c-='a'-'A'; //转换为大写(具体转换应该知道吧,参看ASCII表)
return 0; //返回0.即将标志设为0,也就是在变完空格后第一个字符后将标志设为0后面的字母不变了。
}
该程序是通过chang函数的第二个形参数 int a,(对应的实参是flag)来控制是否变为大写字母的。当遇到空格时,函数返回1,并赋予实参flag。将空格后第一个字母变完后,返回0,并赋予flag,这样就保正只变空格后第一个字符了。

return是函数范围值,当程序执行到return时,该函数就停止,返回return后的值,函数体内return后面的语句就不运行了。注意这里只是终止该函数体,而整个程序还是要运行完的。除非是main函数里遇到了return。
另外,还有exit()函数,他也是终止程序,与return不同的是,遇到exit,整个程序就终止了。
百度网友3588a6a0dc
2015-10-29 · TA获得超过2.5万个赞
知道大有可为答主
回答量:5218
采纳率:86%
帮助的人:335万
展开全部
return只能退出当前函数,如果多个函数嵌套就不行了,要想整个退出用exit
例如:
fun1(){
return;
printf("fun1") ;
}

fun2(){
fun1();
printf("fun2") ;
}
main(){
fun2();
}
此时main函数调用fun2,然后fun2调用fun1,fun1直接return了,fun1没有打印,但是fun2打印了,如果想不打印fun2,把fun1里面的return改为exit就好了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天河流纹石
2009-04-06 · TA获得超过1.3万个赞
知道大有可为答主
回答量:7624
采纳率:76%
帮助的人:4076万
展开全部
reutrn 是从 chang 这个函数里返回到主程序。
继续执行 flag=chang(&c,flag); 之后的语句,也就是 putchar(c)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
21824583
2009-04-06 · TA获得超过410个赞
知道小有建树答主
回答量:1089
采纳率:0%
帮助的人:750万
展开全部
renturn 就不执行下面的函数语句了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhangyafei3020
2009-04-06 · TA获得超过418个赞
知道小有建树答主
回答量:474
采纳率:0%
帮助的人:0
展开全部
//欢迎在线讨论
#include <stdio.h>
#include <ctype.h>

void main()
{
char c;
int flag=0;
do
{
if(c==' ')
flag=1;
c=getchar();
if(flag==1)
c=toupper(c);
putchar(c);
flag=0;
}
while(c!='\n');
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式