有以下程序: main() { char a[ ]={’a’,’b’,’c’,’d’,’e’,’f’,’g’,’h’,’\0’}; int i,j; i=sizeof(a); j=strlen(a); printf("%d,

admin2010-01-10  23

问题 有以下程序:    main()    {  char  a[ ]={’a’,’b’,’c’,’d’,’e’,’f’,’g’,’h’,’\0’}; int i,j;    i=sizeof(a);   j=strlen(a);    printf("%d,%d\b",i,j);    }    程序运行后的输出结果是(  )。

选项 A、9,9
B、8,9
C、1,8
D、9,8

答案8

解析 本题首先定义了字符数组a,由于它的长度省略,所以其长度由初值个数确定,为9。接着将sizeof()函数返回的值赋给i(sizeof()函数的作用是返回运算对象占用的字符数),所以i值为9。然后将strlen()函数的返回值赋给j(strlen()函数的作用是返回字符串的长度,不包括字符串的结束标记’\0’),所以j值为8,故最后输出的i,j值为9,8。4个选项中D正确。
转载请注明原文地址:https://jikaoti.com/ti/BSI0FFFM
0

最新回复(0)