有以下程序: #include<stdio.h> main() { static char a[]="Program",*ptr; for(ptr=a;ptr<a+7;ptr+=2) putchar(*ptr): } 程序运行后的结果为(

admin2020-10-26  19

问题 有以下程序:
#include<stdio.h>
main()
{
  static char a[]="Program",*ptr;
  for(ptr=a;ptr<a+7;ptr+=2)
    putchar(*ptr):
}
程序运行后的结果为(    )。

选项 A、Prog
B、Porm
C、rga
D、Pot

答案B

解析 首先定义一个字符型数组a,并对a进行初始化,然后定义字符型指针变量p。执行for语句,ptr=a表示将数组a的地址赋给ptr;ptr<a+7代表循环条件,ptr+=2,即ptr=ptr+2。执行putchar(*ptr);即输出*pt所对应的字符。此时ptr指向数组中的第1个元素,即a[0],因此*ptr表示a[0]中的值,即P,此时输出P;然后执行ptr+=2,此时ptr指向数组中的第3个元素.即a[2],输出0;然后执行ptr+=2,此时ptr指向数组中的第5个元素,即a[4],输出r;然后执行ptr+=2,此时ptr指向故组中的第6个元素.即a[5],输出m;然后执行ptr+=2,得到ptr=a+8<a+7,即循环条件不成立,循环结束,最终输出结果为Porm。
转载请注明原文地址:https://kaotiyun.com/show/oC3p777K
0

最新回复(0)