有如下程序 #include<stdio.h> #include<string.h> main() { char a[4]=’’23’’,*b=’’10\0’’; printf(’’%d\n’’,strlen

admin2019-01-11  18

问题 有如下程序
    #include<stdio.h>
    #include<string.h>
    main()
    {
    char a[4]=’’23’’,*b=’’10\0’’;
    printf(’’%d\n’’,strlen(a)+sizeof(a)+strlen(b)+sizeof(b));
    }
    程序运行后的输出结果是(    )。

选项 A、17
B、15
C、12
D、18

答案C

解析 strlen()函数的功能为计算字符串的长度,sizeof()函数的功能为返回一个对象或者类型所占的内存字节数,一个字符型数据所占用的内存字节数为1,字符数组占用的内存字节数为字符数乘以1。因为字符数组a[4]中只有一个字符串’’23’’,strlen(a)的值为2;sizeof(a)的值为4;’\0’为转义字符为字符串的结束标志,不计入字符串长度,但是会计入内存字节数。语句“b =’’10\0’’”,赋值时系统在字符串结尾处自动加上’\0’,所以strlen(b)的值为2;sizeof(b)的值为4;选项A、B、D错误,选项C正确;本题答案为C。
转载请注明原文地址:https://kaotiyun.com/show/Raxp777K
0

最新回复(0)