首页 > 试题广场 >

以下程序的输出结果为( )

[单选题]
以下程序的输出结果为(
#include <stdio.h>

int i;

void prt()
{
    for (i = 5; i < 8; i++)
        printf("%c", '*');

    printf("\t");
}

main()
{
    for (i = 5; i <= 8; i++)
        prt();
}

  • ***
  • ***    ***    ***    ***
  • ***     ***
  • *    *    *
全局变量 i main()中修改为i=5;
在 prt() 中执行循环后 修改后 i=8;
在main()中再次调用prt()时执行一次print("\t"),然后修改后 i=9;

编辑于 2017-10-12 08:24:52 回复(1)
i为全局变量,所以main函数中只完成一次循环(i=8)。
发表于 2017-05-22 19:15:17 回复(5)
发表于 2017-08-05 17:33:25 回复(2)
是选择a,因为i是全局变量,所以执行完调用的函数后变为8,在主函数循环中再++就是9,然后判断则不满足条件于是退出循环,所以只执行一次主循环。
发表于 2017-08-20 09:08:13 回复(0)
从main函数开始,i=5,调用函数prt(),输出***   ,函数调用完后i=8,返回主函数循环,i的值再加1,此时i=9,判断i<=8不成立,结束运行。
发表于 2019-02-27 17:31:44 回复(0)
原来i是全局变量,粗心了。。。
发表于 2017-08-06 15:42:42 回复(1)
选D的是因为误看到for循环有大括号将他们都括了起来其实for只执行第一个printf,循环结束在执行\t
发表于 2020-01-15 13:00:18 回复(0)
i是全局变量,在主函数开始时 i = 5,执行prt()结束后,最后一次i++之后 i = 8,然后在主函数的for循环里面最后一步 i++ ,i = 9,于是主函数中的for循环只执行了一次,所以选A
发表于 2019-07-26 15:45:03 回复(0)
这个题,间接考查了变量的作用域问题。
发表于 2017-09-26 14:34:04 回复(0)
在Main中,i=5进入循环,从而进入ptr函数,i=5,i=6,i=7循环三次,i=8不符合循环条件退出,最终打印三个#。ptr函数调用完,回到主函数中,此时i=8,再进入for 满足<=8的条件,再进入ptr中,i=8不符合循环条件退出,啥都不打印,回到main中,结束for,退出程序
发表于 2022-08-11 10:39:47 回复(1)

 main( )

{  for(i=5;i<=8;i++) 
    prt( ); /*这里的i为8*/
    //由于这层for循环,i++,i = 9
} 
只能执行一次 打印


发表于 2019-09-03 09:18:45 回复(0)
增量在执行完循环体后进行
发表于 2023-11-30 15:58:48 回复(0)
i是全局变量,i的作用域是整个程序,所有i从ptr出来后的数值为8,不再进入ptr函数,主函数内的循环只执行一次。
发表于 2023-11-20 21:29:06 回复(0)
考大家的眼力😅
发表于 2023-09-05 18:50:24 回复(0)
全局变量,i变成9了,所以主函数循环只执行了一次
发表于 2023-08-26 16:20:06 回复(0)
i为全局变量
发表于 2023-01-28 13:17:13 回复(0)
考了个全局变量
发表于 2022-11-24 11:34:42 回复(0)
i是全局变量了!
发表于 2022-10-23 20:24:41 回复(0)
i是全局变量
发表于 2022-10-21 15:34:50 回复(0)
好吧,i++,外层循环完了是9、
发表于 2022-09-30 23:32:35 回复(0)