问题 单项选择题

有以下程序:
#include <string.h>
main()

char str[][20]="Hello","Beijing"*p=str;
printf("%\n",strlen(p+20));

程序运行后的输出结果是

A.0

B.5

C.7

D.20

答案

参考答案:C

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

单项选择题
单项选择题