c语言程序解读

求全部解析... 求全部解析 展开
 我来答
苦中作乐香蕉
2019-02-24
知道答主
回答量:28
采纳率:100%
帮助的人:4.9万
展开全部
#include"stdio.h"//printf的头文件 
void func1(int i);//对于函数1的提前声明
void func2(int i);//对于函数2的提前声明
char st[]="hello,friend";//定义一个长度为12的字符数组
//c++里所有的数组都是从0开始计数的哦
void func1(int i) { //其实如果提前声明了↑↑(第2行),这个函数还可以写在主函数(main)的后面
printf("%c",st[i]);//等于putchar(st[i]); 作用:输出一个字符
if(i<3) {//等于i<=2 判断i是否小于3
i+=2;//等于i=i+2,表示i自增2
func2(i);//调用func2函数
}
}
void func2(int i) {
printf("%c",st[i]);//一样的
if(i<3) {//还是一样的
i+=2;//...
func1(i);//再调用func1函数
}
}
main() {//主函数可以不写"int main()",但在一些比赛中是不允许的。 
int i;//定义一个局部变量 
i=0;//把i的值设为0
func1(i);//调用func1(0)
printf("\n");//输出换行  
//其实最好要再写一个"return 0;"结束程序 
}
/*
程序流程: 
主函数内调用func1(0):
输出st[0]->h 
i<3? (i=0) -> i<3
i+2 i=2 调用func2(2):
输出st[2]->l
i<3? (i=2) -> i<3
i+2 i=4 调用func1(4):
  输出st[4]->o
  i<3? (i=4) -> i>3
返回! 
返回!
返回!
返回!
返回!
返回!
返回!
输出换行
结束程序 
*/
wdbzhd
2019-01-24 · TA获得超过544个赞
知道小有建树答主
回答量:199
采纳率:79%
帮助的人:81.1万
展开全部
先从主函数main开始,i初始值为0,调用func1,将i值0作为参数传入
在func1中,首先打印st[i],即st[0],即字符串的第一个字符h,向下执行到if条件句,当前i小于3,则执行i+=2, 相当于i=i+2 => i=0+2 => i=2,接着调用func2函数,此时i为2,作为参数传入
在func2中,先打印st[2],即字符串中的第三个字符l,接下来判断if条件,当前i为2小于3满足条件,执行i+=2得到i为4,接着调用func1,将4作为参数传入
在func1中,首先打印st[i],即st[4],即字符串的第5个字符o, 判断if条件,发现此时i大于3不满足条件,不再执行下面的语句。
回到主函数main中,打印换行符后程序结束
最后结果为hlo
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
听不清啊
高粉答主

2019-01-02 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部
从main()开始执行,调用fun1(0)
先输出h,然后i变为2,再调用fun2(2)
在fun2中,输出l,然后i变为4,再调用fun1(4),输出o后,直接返回
全部的输出就是:
hlo
更多追问追答
追问
能解释一下为什么输出h,l这些吗?就是这里不懂
哦,在char st中是从零开始计数的是吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
早睡是谎言
2019-01-02 · 超过27用户采纳过TA的回答
知道答主
回答量:98
采纳率:62%
帮助的人:12.1万
展开全部


就这样:)

追问
感谢感谢,我两个贴分别采纳你们的好吗?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
伽罗林克
2019-01-03 · TA获得超过2632个赞
知道小有建树答主
回答量:931
采纳率:0%
帮助的人:1185万
展开全部
  1.  t=t*p%c; %号优先级最高,

    i = 1 时 t = t * 2 %2009 = 1*2 =2

  2. s=(s+t)%c; ()优先级最高

    以此类推

    所以结果如下:

    11 2

    i=1 t=2

    j=1 s=2

     

    i=2 t=4j=1 s=6   j=2 s=10

    i=3 t=8j=1 s=18   j=2 s=26   j=3 s=34

    i=4 t=16j=1 s=50   j=2 s=66   j=3 s=82   j=4 s=98

    i=5 t=32j=1 s=130   j=2 s=162   j=3 s=194   j=4 s=226   j=5 s=258

    i=6 t=64j=1 s=322   j=2 s=386   j=3 s=450   j=4 s=514   j=5 s=578   j=6 s=642

    i=7 t=128

    j=1 s=770   j=2 s=898   j=3 s=1026   j=4 s=1154   j=5 s=1282   j=6 s=1410   j=7

    s=1538

     

    i=8 t=256

    j=1 s=1794   j=2 s=41   j=3 s=297   j=4 s=553   j=5 s=809   j=6 s=1065   j=7 s=1

    321   j=8 s=1577

     

    i=9 t=512

    j=1 s=80   j=2 s=592   j=3 s=1104   j=4 s=1616   j=5 s=119   j=6 s=631   j=7 s=1

    143   j=8 s=1655   j=9 s=158

     

    i=10 t=1024

    j=1 s=1182   j=2 s=197   j=3 s=1221   j=4 s=236   j=5 s=1260   j=6 s=275   j=7 s

    =1299   j=8 s=314   j=9 s=1338   j=10 s=353

     

    i=11 t=39

    j=1 s=392   j=2 s=431   j=3 s=470   j=4 s=509   j=5 s=548   j=6 s=587   j=7 s=62

    6   j=8 s=665   j=9 s=704   j=10 s=743   j=11 s=782   782

     

     

     

     

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式