问一道C++的选择题
有以下程序intk;char*s=“ABC”;for(k=10;k!=0;k--);printf("%d",k);while(*s++)putchar(*s);程序运行后...
有以下程序
int k ; char *s = “ABC”;
for(k=10; k != 0; k-- ) ;
printf ("%d", k );
while(*s++ ) putchar( *s );
程序运行后的输出结果是 。
A)0 AB B)-1 AB C)0 ABC D)0 BC
这道题的 while(*s++ ) putchar( *s );该怎么理解? 展开
int k ; char *s = “ABC”;
for(k=10; k != 0; k-- ) ;
printf ("%d", k );
while(*s++ ) putchar( *s );
程序运行后的输出结果是 。
A)0 AB B)-1 AB C)0 ABC D)0 BC
这道题的 while(*s++ ) putchar( *s );该怎么理解? 展开
3个回答
展开全部
楼上的回答是正解。赞一个。
另外++的优先级比较高,所以这句话相当于while(*(s++) ) putchar( *s );
而s是指向字符串的头指针,while语句执行一次后增加1,所以输出的是下一位的字符。
另外++的优先级比较高,所以这句话相当于while(*(s++) ) putchar( *s );
而s是指向字符串的头指针,while语句执行一次后增加1,所以输出的是下一位的字符。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
选D
k=0时退出循环
第一次*s++的值为'A',s指向'B',输出'B'
第二次*s++的值为'B',s指向'C',输出'C'
第三次*s++的值为'C',s指向'\0',输出不可见字符'\0'
第四次*s++的值为'\0',退出循环
k=0时退出循环
第一次*s++的值为'A',s指向'B',输出'B'
第二次*s++的值为'B',s指向'C',输出'C'
第三次*s++的值为'C',s指向'\0',输出不可见字符'\0'
第四次*s++的值为'\0',退出循环
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询