参考答案和解析
正确答案:A
sizeof()是运算符,在头文件中typedef为unsignedint,其值在编译时即计算好了,参数可以是数组、指针、对象、函数等。它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。strlen(·char)函数,要在运行时才能计算,参数必须是字符型指针(char·),当数组名作为参数传人时,实际上数组就退化成指针了,它的功能是:返回字符串的长度。该字符串可能是自己定义的,也可能是内存中随机的,该函数实际完成的功能是从代表该字符串的第一个地址开始遍历,直到遇到结束符NULL,返回的长度大小不包括NULL。sizeof(a)求数组a所占空间的大小,包括字符串最后的’、0’,所以sizeof(a)=5,strlen()遇到’、0’就结束,strlen(a)=4。strlen(b)是指针指向的字符串长度,sizeof(b)是指针的大小。strlen(c)是字符串的长度,sizeof(c)是数组的长度。因此,输出4,5,2,4,l,3。故答案为A选项。
更多“ 有以下程序:程序运行后的输出结果是( )。A.4,5,2,4,1,3,B.4,4,2,2,1,1,C.5,5,3,3,2,2,D.4,4,2,2,1,3 ”相关问题
  • 第1题:

    有以下程序 程序运行后的输出结果是( )。A.程序错无输出结果B.31.5C.7.5SXB

    有以下程序

    程序运行后的输出结果是( )。

    A.程序错无输出结果

    B.31.5

    C.7.5

    D.14.0


    正确答案:A
    宏定义不是c语句,末尾不需要有分号。因此语句“printf(”%4.1f\n”。S(a+b));”展开后为“prinff(”%4.1tXn",3.5;+a+b}a+b;);”,所以程序会出现语法错误。

  • 第2题:

    有以下程序:

    程序运行后的输出结果是( )。


    正确答案:B
    第一次执行外循环,i的值为3,第一次执行内循环j的值为1,j<=2条件成立,打印i+j的值,即4;第二次执行内循环J的值为2,j<=2条件成立,打印i+j的值,即5;再判断条件不成立,打印回车换行符,跳出内循环。第二次执行外循环,i的值为2,内循环的执行同第一次一样,所以打印3和4,打印回车换行,结束内循环。第三次执行外循环i的值为1,同理内循环中打印2和3,打印回车换行符,结束内循环。

  • 第3题:

    有以下程序: 程序运行后的输出结果是( )。 A.zB.0C.元素eh[5]的地址SXB

    有以下程序:程序运行后的输出结果是( )。

    A.z

    B.0

    C.元素eh[5]的地址

    D.字符Y的地址


    正确答案:A
    本题考查的是指向数组的指针。本题中定义了一个字符串数组和指针,并将指针pc指向该数组的首地址,执行输出语句printf(”%c\n”,*(pc+5));。语句中的*(pc+5)指的就是pc[5]的值,所以最后输出的结果为z。

  • 第4题:

    有以下程序(注:字符a的ASCIl码值为97) } 程序运行后的输出结果是( )。A.789B.abcSXB

    有以下程序(注:字符a的ASCIl码值为97)

    }

    程序运行后的输出结果是( )。

    A.789

    B.abc

    C.7890

    D.979899


    正确答案:A
    因为小写字符a,b,c的ASCIl码的值分别为97,98,99,而在d0…while循环语句中,每次对字符的ASCIl码的值取余数并输出,所以分别输出7,8,9,选项A)正确。

  • 第5题:

    有以下程序:

    程序运行后的结果是( )。

    A.有运行错误

    B.输出ll.10

    C.输出l2.10

    D.输出21.10


    正确答案:A
    calloe(n,sizeof(type))在内存的动态存储区中分配n个长度为size的连续空间,函数返回一个指向分配起始地址的指针,如果分配不成功,返回NULL。s在函数fun()申请了内存空间,但是在调用fun()函数后会释放掉,因此,最后q指向NULL,因此运行是打印出错。答案为A选项。