万能百科  > 所属分类  > 

有以下程序main(){ char str[]="xyz",*ps=str; while(*ps) ps++; for(ps--; ps-str>=0;

有以下程序main(){ char str[]="xyz",*ps=str; while(*ps) ps++; for(ps--; ps-str>=0; ps--) puts(ps);} 程序的运行结果是A.yz B.z C.z D.x xyz yz yz xy xyz xyz

正确答案:

B本题主要考查循环结构和字符串的存储结构。在C语言中,为了方便确定字符串的长度,编译系统在字符串后增加了一个结束标识‘\0’,即ASCII码的0。在程序中,首先定义了一个字符型数组str,并赋初值,然后定义一个同类型的指针变量ps,并使ps指向字符数组str。在while循环中,循环结束的条件是*ps的值为0,由于循环开始前,指针变量ps是指向数组的第一个元素,即*ps等价于str[0],值为x,其ASCII码值不为0,循环继续,使ps指向数组的第二个元素,很明显,结果不为0,第三个元素也不为0,而第四

词条内容仅供参考,如果您需要解决具体问题
(尤其在法律、医学等领域),建议您咨询相关领域专业人士。

标签