c语言基础题各位看看

img


这个是怎么看到呀。
看不懂
能不能讲讲怎么分的

凑字数(花 间 一 壶 酒 , 独 酌 无 相 亲 。
举 杯 邀 明 月 , 对 影 成 三 人 。
月 既 不 解 饮 , 影 徒 随 我 身 。
暂 伴 月 将 影 , 行 乐 须 及 春 。
我 歌 月 徘 徊 , 我 舞 影 零 乱 。)

i,j 两个全局变量,改变时全局都改变。

  • 主函数 i = 0 , i < 3 所以进入循环调用 p
  • p 函数 for循环
    第一次 i = 0 , ++j ,j 为3 打印 3,if 判断 i+1 =1 ; 1 % 2 == 0 不成立,继续;
    第二次 i = 1, ++j 为 4,打印 4;if 判断 2 % 2 == 0 成立,打印换行;
    第三次 i = 2; 打印 ++j ,结果为 5; if 判断 3 % 2 == 0 不成立,继续;
    第四次 i = 3,打印 ++j ,结果为 6; if 判断 4 % 2 == 0 成立,打印换行;
    i = 4, 4<3不成立,退出循环 进入主函数
  • 主函数 i++ , i 为 5; 5 < 3 不成立退出 for 循环,调用打印 i , i 为5
    所以 第一行 34 ,最后一行为 5
    完整打印为
    34
    56
    5
    

首先 i 和 j 是 全局变量

  • 主函数for循环 ,i = 0,
        调用 p函数 ,p函数里面  for循环开始遍历,i = 0; 打印 ++j ,结果为 3,
       if 判断  1 % 2 == 0 不成立,继续循环;i = 1,打印 ++j ,结果为 4;
       if 判断 2 % 2 == 0 成立,打印换行; 继续循环 i = 2; 打印 ++j ,结果为 5;
       if 判断 3 % 2 == 0 不成立,继续循环; i = 3,打印 ++j ,结果为 6;
       if 判断 4 % 2 == 0 成立,继续循环;i = 4, for循环条件不成立,退出循环;
    
  • 主函数 p函数调用返回,继续循环 ; i ++ , i = 5; 主函数for循环条件不成立,退出循环
  • 打印 i ,即 5

第一行 输出 34, 最后一行 输出 5