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

admin2022-06-24  25

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

选项 A、Prog
B、Porto
C、rga
D、Por

答案B

解析 首先定义一个字符型数组a,并对a进行初始化,然后定义字符型指针变量ptr。执行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/GLkp777K
0

最新回复(0)