问题 单项选择题

下列程序段的输出结果为( )。

#include<stdio.h>

main()

static char a[]="language";

char*p;

p=a;

for(p=a;p<a+8;p+=2)

putchar(*p);

A.language

B.lnug

C.有语法错误

D.lang

答案

参考答案:B

解析: 本程序首先定义了静态字符数组a,然后将指针p指向数组a的首地址。
第1次for循环,p=a,p指向数组的第1个元素,*p是取指针p所指地址的内容,输出1;第2次for循环, p=p+2,则p指向数组的第3个元素,*p是取指针p所指地址的内容,输出n;第3次for循环,p=p+2,则p指向数组的第5个元素,*p是取指针p所指地址的内容,输出u;第4次for循环,p=p+2,则p指向数组的第7个元素,*p是取指针p所指地址的内容,输出g,结束循环。

单项选择题
名词解释