C语言 读程序 运行结果是什么,并请写出原因 谢谢!!!

C语言 读程序 运行结果是什么,并请写出原因 谢谢!!!,第1张

1.运行结果:wlo

分析如下:由main()

{ int i=0

func1(i)

printf("\n")

}

i=0;

执行fun(i)

printf("%c",st[i])输出w;

又:

i+=2

则i=2

执行func2(i)

输出:l;

接着: i+=2;

i=4

执行:func1(i)

输出:o;

最后输出:wlo

2.运行结果:22;

main函数执行f(a);

j=0

则i=0

执行s+=b[i][j]

s=1;

接着j=1

i=1

s=+=b[i][j]

s=1+6=7

i=3

s=7+11=18

接着j=3;

i=3;

执行i=3-j;

i=0;

s=18+4;

s=22;

分析完毕:

本题输出结果是:1#3#2

for循环共循环3次,i的值分别是9,10,11

当i=9,9/10等于0,所以执行case 0中的语句,这时m=1,n=1,k=0

当i=10,10/10等于1,没有case 1,就执行default下面的语句,执行完后,m=1,n=2,k=1

当i=11,11/10等于1,还是执行default里的语句,完成后m=1,n=3,k=2

完成循环,屏幕最终显示:1#3#2

首先void de(int a[],int x,int *m)函数:

void de(int a[],int x,int *m) // 函数形参为数组a[],整型x,整型指针*m

{ int i=x+1 //定义i=x+1

for(i<=*mi++) a[i-1]=a[i] //for循环,从i位置起,将后面的数组元素向前移动一个位置。

*m=*m-1 //*m-1,也就是数组长度减1

}

该函数的作用是将数组a[]从x位置起,把后面的元素向前移动,覆盖(删除)掉x位置的元素。

然后,主函数中static的意思:

static是将数组a[]声明为静态局部变量(main函数内),静态局部变量保存在全局数据区,而不是保存在栈中,每次的值保持到下一次调用,直到下次赋新值。这个具体的你得看看书,了解下,不过在这里可以无视掉,无特殊作用。

最后主函数:

第一层for循环中,读取第一个数组元素赋值给x。然后第二层for循环中,依次将x与比较后面的值比较,如果发现重复值,则利用de()函数将重复的元素删除。最后一个for循环输出。

另外需要说一下的是,de(a,j,&m)的意思,数组做实参时直接使用数组名即可,如a。j为普通的形参。而&m的意思是将变量m的地址作为形参,这是指针作为实参时的使用方法,地址为实参,作用是这样de()函数中便可直接对m值进行 *** 作。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存