A-A+

有以下程序: #include <string.h> main() { char str[]

2022-08-06 02:41:32 问答库 阅读 175 次

问题详情

有以下程序: #include <string.h> main() { char str[][20]={"Hello","beijing"},*p=str; ptintf("%n",strlen(p+20)); } 程序运行后的输出结果是()。
A.0
B.5
C.7
D.20请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案:C
解析:主函数中定义了一个二维字符数组并初始化,初始化后的结果为str[0]="Hello"、str[1]="Beijing",然后定义一个字符指针变量p并让它指向数组的首地址,即指向str[0],而在C语言中无论是一维还是多维数组,其元素在内存中都是顺序存放的,故p+20后指针指向str[1],所以strlen(p+20);返回的是str[1]中的字符串的长度,即Beijing的长度为7,所以最后输出的值为7,所以,4个选项中选项C符合题意。

考点:程序