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

admin2020-11-27  34

问题 有以下程序:
   #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、Por

答案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://jikaoti.com/ti/5UD0FFFM
0

最新回复(0)