单选题有如下程序:#include #include main(){ char a[]=THIS, *b=OK; printf(%d,%d,%d,%d, strlen(a), sizeof(a), strlen(b), sizeof(b));}程序运行后的输出结果是(  )。A 4,5,2,4B 4,4,2,1C 5,5,3,3D 4,5,2,3

题目
单选题
有如下程序:#include #include main(){ char a[]=THIS, *b=OK; printf(%d,%d,%d,%d, strlen(a), sizeof(a), strlen(b), sizeof(b));}程序运行后的输出结果是(  )。
A

4,5,2,4

B

4,4,2,1

C

5,5,3,3

D

4,5,2,3


相似考题
更多“单选题有如下程序:#include #include main(){ char a[]=THIS, *b=OK; printf(%d,%d,%d,%d, strlen(a), sizeof(a), strlen(b), sizeof(b));}程序运行后的输出结果是(  )。A 4,5,2,4B 4,4,2,1C 5,5,3,3D 4,5,2,3”相关问题
  • 第1题:

    有以下程序: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\n",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。

  • 第2题:

    有以下程序:includemain(){char *p="abcde\Ofghjik\0";printf("%d\n",strlen(p));}程

    有以下程序: #include <string.h> main() {char *p="abcde\Ofghjik\0"; printf("%d\n",strlen(p)); } 程序运行后的输出结果是( )。

    A.12

    B.15

    C.6

    D.5


    正确答案:D
    解析:本题首先定义了一个字符型指针变量p,并用一个字符串给它赋值,然后调用printf()函数输出p所指向的字符串的长度。由于字符串的结束标记为、0,其长度为第1个\0前的字符个数,故长度为5。所以4个选项中D正确。

  • 第3题:

    下列程序的输出结果是()。includeincludemain(){char a[]="\n123\\";printf

    下列程序的输出结果是( )。 #include<stdio.h> #include<string.h> main() { char a[]="\n123\\"; printf("%d,%d\n",strlen(a),sizeof(a)); }

    A.5,6

    B.5,5

    C.6,6

    D.6,5


    正确答案:A
    解析: 转义字符'\n'表示换行,'\\'表示反斜杠,函数strlen()是计算字符串的长度,不包括文件结束标志('\0'),函数sizeof()统计字符串所占的字节数。

  • 第4题:

    下列程序的输出结果是()。includeincludemain(){ char a[]="\n123\\";print

    下列程序的输出结果是( )。#include<stdio.h>#include<string.h>main(){ char a[]="\n123\\"; printf("%d,%d\n",strlen(A) ,sizeof(A) );}

    A.5,6

    B.5,5

    C.6,6

    D.6,5


    正确答案:A
    解析:转义字符,'\n'表示换行,'\\'表示反斜杠,函数strlen()是计算字符串的长度,不包括文件结束标志('\0'),函数sizeof()统计字符串所占的字节数。

  • 第5题:

    有以下程序:include main( ){char P[] = {'a','b','c'} ,q[]: "abc";printf( "% d % d

    有以下程序:#include <stdio.h>main( ){ char P[] = {'a','b','c'} ,q[]: "abc"; printf( "% d % d \ n", sizeof(p), sizeof(q) );}程序运行后的输出结果是( )。

    A.44

    B.33

    C.34

    D.43


    正确答案:C
    解析:sizeof运算符是计算变量或数组所分配到的内存空间的大小,p[]={'a','b','c'}使数组的长度等于字符的个数3;q[]="abc"使数组的长度等于字符个数加上1个串结束符,'\0',共4个字符,其中,'\0',占用一个存储空间。故本题的输出结果是34。

  • 第6题:

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

  • 第7题:

    阅读以下程序,写出程序运行后的输出结果是 ______。includevoid main(){ char a[]={

    阅读以下程序,写出程序运行后的输出结果是 ______。 #include<iostream.h> void main(){ char a[]={'H','e','r','1',‘o’,'\0'}; int i, j; i=sizeof(a)/sizeof(char); j=strlen(a) cout<<i<<' '<<j; }

    A.6 6

    B.5 6

    C.1 5

    D.6 5


    正确答案:D

  • 第8题:

    ● 下面程序运行后的输出结果是 (59) 。

    #include <stdio.h>

    #include <string.h>

    void main()

    {

    char a[7] = "china";

    int i, j;

    i = sizeof(a); j = strlen(a);

    printf("%d, %d\n", i, j);

    }

    (59)

    A. 5, 5

    B. 6, 6

    C. 7, 5

    D. 7, 6


    正确答案:C

  • 第9题:

    单选题
    有如下程序:#include #include main(){ char name[10]=c-book; char *str=name; printf(%d,%d,%d,%d, sizeof(name), strlen(name), sizeof(str), strlen(str));}程序运行后的输出结果是(  )。
    A

    10,6,4,6

    B

    11,6,11,6

    C

    11,6,1,6

    D

    10,7,1,7


    正确答案: B
    解析:
    由一维数组初始化的知识可知,name[10] = "c-book",即name[10]="c-book\0\0\0\0"。sizeof函数用来获取类型或数据对象的长度,也即是一个这种数据类型的变量在内存中所占字节数。strlen函数统计字符串长度,遇到'\0'统计结束。字符指针变量和字符数组在内存中的存储情形不同,数组指的是按照数组长度分配的若干存储空间,在内存中字符类型变量占1个字节;而指针只是一个存储字符串首地址的存储空间,指针占4个字节。所以sizeof(name)=1×10=10,strlen(name)=6,sizeof(str)=4,strlen(str)=6。答案选择A选项。

  • 第10题:

    单选题
    有如下程序:#include #include main(){ char a[]=THIS, *b=OK; printf(%d,%d,%d,%d, strlen(a), sizeof(a), strlen(b), sizeof(b));}程序运行后的输出结果是(  )。
    A

    4,5,2,4

    B

    4,4,2,1

    C

    5,5,3,3

    D

    4,5,2,3


    正确答案: D
    解析:
    strlen函数统计字符串长度,遇到'\0'统计结束。sizeof用来获取类型或数据对象的长度,也即是一个这种数据类型的变量在内存中所占字节数。a数组'\0'之前有效字符有4个,由于字符串有效字符之后有一个'\0'也会被放入数组,char类型占一个字节,所以数组a所占字节数为1*5=5。b为指向字符串的指针,字符串长度为2,指针类型变量所占字节数为4。答案选择A选项。

  • 第11题:

    单选题
    有以下程序:#include #include main(){ char name[9]=c##line; char *str=name;  printf(%d,%d,%d,%d, sizeof(name), strlen(name), sizeof(str), strlen(str)); }程序运行后的输出结果是(  )。
    A

    9,7,4,7

    B

    8,6,9,6

    C

    8,6,3,6

    D

    10,8,5,8


    正确答案: D
    解析:
    由于name是一个长度为9的一维数组,故在内存中占用9字节长度,而其中字符串"c##line"只有7个字符,strlen函数返回的是该字符串的长度,不包含结束符,str是一个指针变量,占用4字节长度,但是由于name首地址赋给了str指针变量,在调用strlen函数时,返回的是指针对应地址单元的字符串的长度7,答案选择A选项。

  • 第12题:

    单选题
    有如下程序:#include #include main(){ printf(%d,strlen(0\tA011\1));}程序运行后的输出结果是(  )。
    A

    8

    B

    9

    C

    7

    D

    10


    正确答案: B
    解析:
    strlen是求字符串长度的函数,"0\tA011\1"是一个长度为8的字符串,其中\t、、\1均为转义字符常量,但是长度也是1,因此输出结果是8,答案选择A选项。

  • 第13题:

    有以下程序:include include main( ) {char a[ 7 ] = "a0 \0a0 \0";int i,

    有以下程序:#include <stdio.h>#include <string.h>main( ) { char a[ 7 ] = "a0 \0a0 \0"; int i,j; i = sizeof(a); j = strlen(a); printf(" % d %d \n" ,i,j); }程序运行后的输出结果是( )。

    A.22

    B.76

    C.72

    D.62


    正确答案:C
    解析:C语言.中以,'\0'作为字符串的结束符,且strlen函数计算的是,'\0',字符前的所有字符的个数,故本题中strlen(a)应为2。数组定义以后系统就为其分配相应大小的内存空间,而不论其中有没有内容。sizeof运算符是计算变量或数组所分配到的内存空间的大小,所以本题的sizeof(a)为7。

  • 第14题:

    下列程序在32位linux或unix中的结果是什么?

    func(char *str)

    {

    printf(" %d",sizeof(str));

    printf(" %d",strlen(str));

    }

    main()

    {

    char a[]="123456789";

    printf(" %d",sizeof(a));

    printf(" %d",strlen(a));

    func(a);

    }


    正确答案:

     

    10 9 4 9

  • 第15题:

    若有如下程序; main() {char a[]="china\0name\0"; printf("%d,",strlen(A) ); printf("%d\n",sizeof(A) ); } 则程序运行后的输出结果是( )

    A.5,11

    B.5,12

    C.11,11

    D.12,12


    正确答案:B

  • 第16题:

    下列程序的输出结果是()。 include main() { char a[]= {'a','b','c','d','e','f,'\0'}

    下列程序的输出结果是( )。 #include<stdio.h> main() { char a[]= {'a','b','c','d','e','f,'\0'}; int i,j; i=sizeof(a); j=strlen(a); printf("%d,%d",i,j); }

    A.7,7

    B.7,6

    C.6,6

    D.6,7


    正确答案:B
    解析:sizeof()函数的功能是返回字符串所占的字节数,strlen()函数的功能是返回字符串的长度,其中,'\0'是一个转义字符,它占存储空间,但不计入串的长度。

  • 第17题:

    有以下程序include.main(){char*p="abcde\ofghjik\0";printf("%d\n",strlen(p));} 程

    有以下程序 #include.<string.h> main() { char *p="abcde\ofghjik\0"; printf("%d\n",strlen(p)); } 程序运行后的输出结果是

    A.12

    B.15

    C.6

    D.5


    正确答案:D
    解析:本题首先定义了一个字符型指针变量p,并用一个宇符串给它赋值,然后调用printf()函数输出p所指向的字符串的长度。字符串的结束标记为“\0”,其长度为“\0”前的字符个数,故长度为5。所以4个选项中D正确。

  • 第18题:

    下列程序的输出结果是()。 include include main() {char a[]="\n123\\";pr

    下列程序的输出结果是( )。 #include<stdio.h> #include<string.h> main() { char a[]="\n123\\"; printf ("%d,%d\n",strlen(a),sizeof(a)); }

    A.5,6

    B.5,5

    C.6,6

    D.6,5


    正确答案:A
    解析:转义字符'\n'表示换行,'\\'表示反斜杠,函数strlen()是计算字符串的长度,不包括文件结束标志('\0'),函数sizeof()统计字符串所占的字节数。

  • 第19题:

    有以下程序: include include main() { char str[ ]={"Hello,Beijing"}; printf("%d,%d\n",strlen(str),sizeof(str)); } 程序的运行结果是( )。

    A.13,13

    B.13,14

    C.13,15

    D.14,15


    答案:B
    解析:strlen返回字符串的长度,不包含字符串末尾的结束字符′\0′,结果为13;sizeof返回字符串所占存储空间的大小,由于字符串最后要加上一个′\0′,所以结果为13+1=14。

  • 第20题:

    单选题
    有以下程序:#include #include main(){ char str[12]={'s', 't', 'r', 'I', 'n', 'g'}; printf(%d,strlen(str));}程序运行后的输出结果是(  )。
    A

    6

    B

    7

    C

    11

    D

    12


    正确答案: B
    解析:
    str[12]是字符数组,初始化时未赋初始值的自动赋值'\0',即str[12]={'s', 't', 'r', 'i', 'n', 'g', '\0', '\0', '\0', '\0', '\0', '\0'}。strlen函数求字符串长度,统计长度时以'\0'结束,即统计到长度为6时结束,strlen函数返回值为6。答案选择A选项。

  • 第21题:

    单选题
    有以下程序#include #include main(){ char p[20]= {'a','b','c','d'}, q[]=abc, r[]=abcde; strcat(p,r); strcpy(p+strlen(q),q); printf(%d,strlen(p));}程序运行后的输出结果是(  )。
    A

    6

    B

    9

    C

    11

    D

    7


    正确答案: A
    解析:
    首先定义了3个字符数组p、q、r,并分别被初始化。数组p指定的大小为20,初始化列表为{'a','b','c','d'},即只指定了前4个元素的内容,根据C语言的规定,初始化列表不足时,其余元素均自动初始化为0。然后通过strcat函数,将字符串r连接到字符串p之后,即执行后p中的内容为"abcdabcde"。"strlen(q)"表示求字符串q的长度,不包括最后的字符串结束符,得到3,所以语句"strcpy(p+strlen(q),q); "的作用就是:将字符串q复制到数组p的第4个元素位置处,数组p变成{'a','b','c', 'a','b','c'},所以字符串p的长度是6。答案选择A选项。

  • 第22题:

    单选题
    有以下程序:#include #include main(){ char x[]=STRING;  x[0]=0; x[1]='\0'; x[2]='0';  printf(%d %d,sizeof(x),strlen(x)); }程序运行后的输出结果是(  )。
    A

    6 1

    B

    7 0

    C

    6 3

    D

    7 1


    正确答案: C
    解析:
    sizeof是返回字符串在内存中所占用的空间,是字符数组真正的长度。strlen是返回字符串的长度,strlen遇到'\0'(ASCII码值为0)就结束,而且不包括'\0'。题目中数组x初始化为字符串"STRING",6个字符加上字符串结束符共占用7个字节长度,所以sizeof(x)返回值为7。数组x在初始化后,又重新赋值x[0] = 0,即x[0] = '\0',所以strlen(x)返回值为0。答案选择B选项。

  • 第23题:

    单选题
    有以下程序:#include#includemain(){ char a[10]= abcd; printf(%d,%d,strlen(a),sizeof(a));}程序运行后的输出结果是(  )。
    A

    7,4

    B

    4,10

    C

    8,8

    D

    10,10


    正确答案: D
    解析:
    在C语言中,strlen()用来统计字符串中字符的个数(不包含字符串结束标志'\0'),sizeof()用来求分配给数组的存储空间大小。题目中字符串a中字符个数为4,但由于数组a定义含有10个字符,所以所占空间大小为10。所以答案选择B选项。

  • 第24题:

    单选题
    有以下程序:#include #include main(){ char str[]={Hello,Beijing}; printf(%d,%d,strlen(str),sizeof(str));}程序的运行结果是(  )。
    A

    13,13

    B

    13,14

    C

    13,15

    D

    14,15


    正确答案: B
    解析:
    strlen返回字符串的长度,不包含字符串末尾的结束字符'\0',结果为13;sizeof返回字符串所占存储空间的大小,由于字符串最后要加上一个'\0',所以结果为13+1=14。答案选择B选项。