niusouti.com
更多“下列程序在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);}”相关问题
  • 第1题:

    有以下程序:includemain(){ char str[][20]={"Hello","Beijing"),*p=str[0];printf("

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

    A.0

    B.5

    C.7

    D.20


    正确答案:C
    解析:主函数中定义了一个二维字符数组并初始化,初始化后的结果为str[0]="Hello"、str[1]="Beijng",然后定义一个字符指针变量p并让它指向str[0],即指向数组的首地址,而在C语言中无论是一维还是多维数组,其元素在内存中都是顺序存放的,故p+20后指针指向str[1],所以strlen(p+20);返回的是str[1]中字符串的长度,即"Beijng"的长度7,故4个选项中选项C符合题意。

  • 第2题:

    下列程序段的运行结果是()。 include void main() {char str[]="ABC",*p=str; printf("

    下列程序段的运行结果是( )。

    #include<stdio.h>

    void main()

    { char str[]="ABC",*p=str;

    printf("%d\n",*(p+3) );

    }

    A.67

    B.0

    C.字符'C'的地址

    D.字符'C'


    正确答案:B
    解析:先定义了一个指向字符型数组str的指针p,指针p指向数组str的首地址,p+3将指针指向str[3],又因为字符型数组在存放字符串时会自动在末尾加上'\0',所以*(p+3)=0。

  • 第3题:

    有以下程序includemain(){charstr[][20]={"Hello","Beijing"},*p=str;printf("%d\n",

    有以下程序 #include <string.h> main() {char str[][20]={"Hello","Beijing"},*p=str; printf("%d\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题:

    以下程序的输出结果是()。includeinclude main(){char str[12]={'s','t','r

    以下程序的输出结果是( )。 #include <stdio.h> #include <string.h> main() { char str[12]={'s','t','r','i','n','g'}; printf("%d\n",strlen(str) ); }

    A.6

    B.7

    C.11

    D.12


    正确答案:A
    解析:本题考查求字符串的长度。程序中定义字符串str时中请了12个字节的内存空间,对它赋初值后,函数strlen在求串长度时,以'\0'作为串结束符,所以,strlen(str)的值为6。

  • 第5题:

    char str[ ]= "Hello";

    char *p=str;

    int n=10;

    sizeof(str)=( )

    sizeof(p)=( )

    sizeof(n)=( )

    void func(char str[100])

    { }

    sizeof(str)=( )


    正确答案:
     

  • 第6题:

    以下为 Windows NT 下的 32位 C++程序,请计算 sizeof的值

    char str[] = “Hello” ; char *p = str ;int n = 10;请计算 sizeof (str )

    = sizeof ( p ) = sizeof ( n ) = void Func (

    char str[100]){请计算 sizeof( str ) = }

    void *p = malloc( 100 );请计算 sizeof ( p ) =


    正确答案:
     

  • 第7题:

    设有 static char str[]="Beijing"; 则执行 printf("%d\n",strlen(strcpy(str,"China"))); 后的输出结果为_______。

    A.5

    B.7

    C.12

    D.14


    正确答案:A
    解析:在执行printf()函数前,数组str的长度是7,但是当使用strcpy()函数将新的值赋给str后,strlen()函数返回的应当是现在的str字符串的字符个数,即是5。

  • 第8题:

    以下程序片段的输出结果是______。 char str[]="abc\n\012\\\""; printf("%d",strlen(str));

    A.4

    B.5

    C.6

    D.7


    正确答案:D
    解析:abc后的四个字符都是由反斜线引出的转义字符,\n是换行符,\012也是换行符,\\表示反斜线本身,\"表示双引号,因此,一共是7个字符。

  • 第9题:

    有以下程序:includeincludemain(){char str[][20]={"Hello","Beijing"},*P

    有以下程序: #include <stdio.h> #include <string.h> main() { char str[][20]={"Hello","Beijing"},*P=str[0]; printf("%d\n",strlen(p+20)); } 程序运行后的输出结果是( )。

    A.0

    B.5

    C.7

    D.20


    正确答案:C
    解析:本题考查字符数组和指针的运用。strlen是测试字符串长度的函数,函数的值为字符串的实际长度,不包括'/0'在内。str[][20]={"Hello","Beijing"}定义了一个2行20列的数组,数组的首地址是&str[0][0],p+20是从首地址向后移了20位,指针指向了str[1][0]处,此时求字符串的长度,是从str[1][0]开始的,即“Beijing”的长度,所以输出结果是7。

  • 第10题:

    以下程序的输出结果是()  #include      #include      main( )  {char str[12]={‘8’,‘t’,‘r’,‘i’, ‘n’,‘g’,‘、0’,‘a’};      printf(“%d/n”,strlen(str));} 

    • A、6
    • B、7
    • C、8
    • D、12

    正确答案:D

  • 第11题:

    单选题
    有如下程序:#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选项。

  • 第12题:

    单选题
    有以下程序:#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选项。

  • 第13题:

    下列程序段的运行结果是()。includevoid main(){char str[]="ABC",*p=str;printf("%d\n

    下列程序段的运行结果是( )。 #include<stdio.h> void main() { char str[]="ABC",*p=str; printf("%d\n",*(p+3)); }

    A.67

    B.0

    C.字符'C'的地址

    D.字符'C'


    正确答案:B
    解析: 先定义了一个指向字符型数组str的指针p,指针p旨向数组str的首地址,p+3将指针指向str[3],又因为字符型数组在存放字符串时会自动在末尾加上'\0',所以*(p+3)=0。

  • 第14题:

    有以下程序:includemain(){charstr[][20]={"Hello","Beijing"}*p=str;printf("%\n",s

    有以下程序: #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符合题意。

  • 第15题:

    以下程序的输出结果,是_______。 main() { char str[12]={'s','t','r','i','n','g'}; printf("%d\n",strlen(str)); }

    A.6

    B.7

    C.11

    D.12


    正确答案:A
    解析:在C语言中,字符串的长度是其首字符到NULL(不含)字符的总字符个数。本题定义字符数组str的同时,对第7个元素,由系统自动加上“\0”,故字符串的长度为6。

  • 第16题:

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

    func(char *str)

    {

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

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

    }

    main()

    {

    char a[]="123456789";

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

    func(a);

    }


    正确答案:

     

    10 4 9

  • 第17题:

    以下程序的输出结果是( )。 char str[15]=”hello!”; printf(“%d\n”,strlen(str)); A.15

    以下程序的输出结果是( )。 char str[15]=”hello!”; printf(“%d\n”,strlen(str));

    A.15

    B.14

    C.7

    D.6


    正确答案:D

  • 第18题:

    以下程序的输出结果是______。 main() { char str[12]={'s','t','r','i','n','g'}; printf("%d\n",strlen(str)); }

    A.6

    B.7

    C.11

    D.12


    正确答案:A
    解析:在C语言中,字符串的长度是其首字符到NULL(不含)字符的总字符个数。本题定义字符数组str的同时,对第7个元素,由系统自动添加上“\0”,故字符串的长度为6。

  • 第19题:

    下列程序段的运行结果是()。includevoid main(){ char str[]="ABC",*p=str;printf("%d\

    下列程序段的运行结果是( )。#include<stdio.h>void main(){ char str[]="ABC",*p=str; printf("%d\n",*(p+3));}

    A.67

    B.0

    C.字符'C'的地址

    D.字符'C'


    正确答案:B
    解析:先定义了一个指向字符型数组str的指针p,指针p指向数组str的首地址,p+3将指针指向str[3],又因为字符型数组在存放字符串时会自动在末尾加上'\0',所以*(p+3)=0。

  • 第20题:

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

  • 第21题:

    当运行以下程序时,输入abcd,程序的输出结果是:( )。

    insert(char str[])

    {int i;

    i=strlen(str);

    while(i>0)

    {str[2*i]=str[i];str[2*i-1]='*';i--;}

    printf("%s\n",str);

    }

    main()

    {char str[40];

    scanf("%s",str);insert(str);

    }


    正确答案:a*b*c*d*
    a*b*c*d* 解析:字符处理函数strlen()测试字符串常量的长度,不包括‘\0’在内。因此,函数insert()实现了将字符数组中每个非‘\0’的字符后插入字符‘*’的功能。故输出结果是a*b*c*d*。

  • 第22题:

    单选题
    有以下程序:#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选项。

  • 第23题:

    单选题
    以下程序的输出结果是()  #include      #include      main( )  {char str[12]={‘8’,‘t’,‘r’,‘i’, ‘n’,‘g’,‘、0’,‘a’};      printf(“%d/n”,strlen(str));}
    A

    6

    B

    7

    C

    8

    D

    12


    正确答案: A
    解析: 暂无解析