南昌二十六中的校服:关于C语言

来源:百度文库 编辑:中科新闻网 时间:2024/04/29 08:30:05
#include"stdio.h"
void string()
{ char ch;
ch=getchar();
if(ch!='.')string();
putchar(ch);
}
当输入ABCDEFG.时程序是怎么运行的 请告诉我分析过程,谢谢!

是个递归过程
把ABCDEFG.输入后,先读取A,然后判断是不是“.”,如果不是再次调用自身,然后读取B……直到读到“.”,运行下一步,if,地址成立,在屏幕上输出“.”,退出最后一次调用。然后依次退出上次调用,输出GFEDCBA

最终输出.GFEDCBA,不知对否。像是个栈

子程序

void string()//定义一个无返回类型的函数string()
{ char ch;//定义一个char类型的变量ch
ch=getchar();//输入一个字符复值给ch
if(ch!='.')string();//如果输入的字符不是 . 调用

//string()函数-(递归调用)。
putchar(ch);//输出ch
}
main()
{
string();
}
如果加上main()运行 输出结果应该为你输入字符反顺序输出 例如:输入字符abcd.显示结果为.dcba
现在主要研究Java,c好长时间不用了有问题可以再探讨。

这是个低归
#include"stdio.h"
void string()
{ char ch;
ch=getchar();//获得字符
if(ch!='.') 派段是不是结束幅. 不是的话继续调用 string()函数;
string();
putchar(ch); 遇到.就结束 并开始用putchar(ch);函数 首先输出的是. 输入字符
}

就是一个栈的输入输出过程。没有调试就说不能输出,太不负责任了吧
VC6.0调试通过。main 函数自己加,这种问题没有意义

----------------------------------
char ch应该定义在string函数外面

要是这么改,就是设成全局变量就是输出........ 程序就全错了

这是一个递归函数,应该是定义栈的一个函数,情况是先输入的后输出!

1通过.char ch;
ch=getchar(); 定义了一个字符变量。
2 if(ch!='.')string();是个判断语句,当你输入ABCDE时它会进行逐个判断是否等于“。”。若不等则将其输出。
3依次循环2部。。