有以下程序: 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,9B.8,9C.1,8D.9,8

题目

有以下程序: 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


相似考题
更多“有以下程序:main(){chara[ ]={'a','b','c','d','e','f','g','h','\0'}; int i,j;i=sizeof(a); j= ”相关问题
  • 第1题:

    有以下程序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


    正确答案:D
    在本题中,程序首先定义一个字符数组,并对其进行了初始化,在初始化的最后添加了一个字符串结束标志,表示前面的各字符可以被当做一个字符串操作。从这个初始化的操作我们也可以看出数组的长度为9。
    然后定义两个整型变量,分别用于保存计算结果,sizeof(a)是计算数组a所占的存储空间字节数,由于数组a是大小为9的字符型数组,那么占用的存储空间是1´9=9个字节,将结果保存至变量i中。
    strlen(a)是计算数组a中字符的个数,虽然数组a中有9个字符,但结合上面的分析我们可以知道,其中’\0’是字符串结束标志符,不能作为字符串中的字符,因此返回的结果是8,并将该结果保存至变量j中。
    最后,程序执行输出语句,分别输出变量i和j的值,从上面的分析我们可以知道,输出的结果是9,8,因此本题正确答案是D。

  • 第2题:

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

    A.9,9

    B.8,9

    C.1,8

    D.9,8


    正确答案:D
    解析:sizeof( )函数返回字符串所占字节数,strlen函数返回字符串的长度,其中'\0'是一个转义字符,

  • 第3题:

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

    A.9,9

    B.8,9

    C.1,8

    D.9,8


    正确答案:D
    解析:本题中首先定义了字符数组a,由于它的长度省略,所以其长度由初值个数确定,为9。接着将sizeof()函数返回的值赋给i(SIZeof()函数的作用是返回运算对象占用的字符数),所以i值为9。然后将strlen()函数的返回值赋给j(strlen()函数的作用是返回字符串的长度,不包括字符串的结束标记'\0'),所以j值为8,所以最后输出的i,j的值为9,8。所以4个选项中D正确。

  • 第4题:

    有以下程序:includeincludemain(){char a[]={'a','b','c','d','e','f','g'

    有以下程序: #include<stdio.h> #include<string.h> 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


    正确答案:D
    解析:本题考查了求数据类型长度的运算符sizeof和求字符串长度的函数strlen的区别。strlen计算的是一个字符串的实际字符个数,如果字符串放在字符数组中,则函数strlen的值为'\0'之前的全部字符个数。而sizeof求出的是数据占据存储空间的字节数,当然也要包括字符串的结束标志符'\0'。

  • 第5题:

    有以下程序 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


    正确答案:D
    解析:sizeof是求字节的函数,在字符数组a中,'\0'也作为字节保存,是a数组的一个成员,所以sizeof(a)的值应为9。strlen是测试字符串长度的函数,函数的值为字符串中的实际长度,不包括‘\0’在内所以strlen(a)的值为8。