以下程序的输出结果是_____________。 #define PR(ar)printf(“ar=%d”,at) main() { intj,a[]={1,8,3,7,6,13,17,15),*p=a+5; for

admin2012-08-23  31

问题 以下程序的输出结果是_____________。
    #define PR(ar)printf(“ar=%d”,at)
    main()
    {  intj,a[]={1,8,3,7,6,13,17,15),*p=a+5;
       for(j=3;j;j--)
       switch(j)
      {  case 1:
         case 2:PR(*p++);break;
         case 3:PR(*(--p));
      }
    }

选项

答案ar=6 ar=6 ar=13

解析 通过*p=a+5将指针p指向a[5],第1次循环,j=3时,switch(3),执行case 3,*(--p)=a[4]=6,所以输出ar=6;第2次循环,j=2时,switch(2),执行case 2,(*p++)是先引用a[4]的值6,输出ar=6,再将指针p移位指向a[5];第3次循环,j=1时,switch(1),执行case1,case 1后没有break语句,接着执行case 2,(*p++)是先引用a[5]的值13,输出ar=13,再将指针p移位指向a[6]。
转载请注明原文地址:https://kaotiyun.com/show/tNPp777K
0

随机试题
最新回复(0)