试题与答案

以下程序的输出结果是______。 #include<stdio.h> main

题型:填空题

题目:

以下程序的输出结果是______。
#include<stdio.h>
main( )
int j,a[]=1,3,5,7,9,11,13,15,*p=a+5;
for(j=3;j;j--)
switch (j)
case 1:
case 2: printf("%d",*p++);break;
case 3: printf("%d",*(--p));

答案:

参考答案:9
9
11

解析: 指针变量p,首先指向a[5]。当j=3时,从case3入口,执行printf("%d",*(--p));,其含义为先--p,p指向a[4],输出a[4]的值9;当j=2时,从case 2入口,执行printf("%d",*p++);break;,其含义为先*p,p指向a[4],输出a[4]的值9,再p++,此时p指向a[5],执行break语句,跳出switch语句;当j=1时,从case 1入口,顺序执行printf("%d",*p++);break;,其含义为先*p,p指向a[5],输出a[5]的值11,再p++,此时p指向a[6],执行break语句,跳出switch语句;循环判断,循环结束,退出循环结构。

试题推荐
微信公众账号搜索答案