下列程序执行后的输出结果是

下列程序执行后的输出结果是,第1张

#include<stdio.h>

void func1(int i)//函数的声明,为了调用函数

void func2(int i)

char st[]="hello,friend!"

void func1(int i)//通过man函数的调用给i赋值

{

printf("%c",st[i])//输出st[0]的值 即st[0]=h

if(i<3)

{

i+=2

func2(i)//调用函数func2,把值2的给i

}

}

void func2(int i)

{

printf("%c",st[i])//输出st[2]的值 即st[2]=l

if(i<3){

i+=2

func1(i)//嵌套调用函数func1(4),输出st[4]的值 即st[4]=o

}

}

main()

{ int i=0

func1(i)

printf("\n")

}

//故程序输出的结果为hlo

本程序输出的结果是:a = ‘A’, b = 'b'。

也就是说实参b的值加了1,而a的值则没变,为什么呢?

首先,我们说一下b的值为什么会加1:在函数fun中的第一个形参是一个指针变量,fun(&b,a)中&b的意思是取b的地址,而*c在这里其实就是b的值,这里的*c = *c+1是对b的值直接进行 *** 作的,因此,b的值会变。

而a的值不变,是因为在C语言中,实参向形参的数据传递方向是单向传递,也就是说,只由实参传给形参,而不能由形参传回给实参。除非我们加个返回值,如

int fun(char *c, int d)    //带返回值得函数

{

  *c = *c+1

  d = d + 1

  return d    //将加1后的d值返回

}

void main()

{

  char a='A',b='a'

  a = fun(&b,a)    //将返回的值赋给a

  printf("%c,%c\n",a,b)

}

这个程序关系到C语言的两个内容,1、指针  2、函数的参数和函数的值 ,建议找一本C语言程序设计的书阅读这两个章节,一切都迎刃而解。

user目录里的程序输出文件流程:

1、先判断给定的是不是一个合法的目录,如果不是,则提示给定错误。

2、如果是目录,那么使用File.listFile获得这个目录下文件名的数组。

3、循环遍历输出这个数组元素。

4、输出名称之后,接着判断这个元素是文件还是目录。

5、如果是目录,继续调用本方法来输出子目录。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11816858.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存