有以下程序#include <stdio.h>#include <string.h>main(){ char a[10]="abcd";printf("%d,%d\n",strlen(a),sizeof(a));}程序运行后的输出结果是A)7,4B)4,10C)8,8D)10,10

题目

有以下程序

#include <stdio.h>

#include <string.h>

main()

{ char a[10]="abcd";

printf("%d,%d\n",strlen(a),sizeof(a));

}

程序运行后的输出结果是

A)7,4

B)4,10

C)8,8

D)10,10


相似考题
更多“有以下程序#include &lt;stdio.h&gt;#include &lt;string.h&gt;main(){ char a[10]="abcd ”相关问题
  • 第1题:

    有以下程序: #include 〈iostream〉 using namespace std; #define M 10 #define B4 void setstar(char *a, int n) { int i; for (i=0; i

    A.AB C D E F G H I J

    B.AB C D * * * * * *

    C.AB C D E F * * * *

    D.* * * * * * A B C D


    正确答案:B
    解析:本题考查对指针作为函数形参的掌握程度。根据程序代码逐步分析:①第一个被调函数setstar()为void型。形参为一个char类型的指针变量a和一个整型变量n,函数体由for循环语句构成,给指针变量a所指的变量赋值,并对从a所指的存储单元开始的连续n个存储单元,进行赋值(*)。②函数arrout()也是void类型,形参也是两个,一个为char类型的指针,另一个是整型变量n。函数体也是由for循环语句构成,不过setstar()函数是给指针变量所指的存储单元赋值,:而arrout()函数是输出指针变量所指的存储单元中的值。③主函数中,程序首先定义并赋初值于数组c,调用setstar()函数,把实参数组元素c[4]的地址传递给setstar的形参变量a,并把M-B的值(即6)传递给n。这样最后的结果是数组元素c[0]、c[1]、c[2]和c[3]中的值不变,从c[4]开始以后的数组元素中的值都将被改变为字符'*'。调用函数arrout()输出改变后的数组c中的值。

  • 第2题:

    下面程序的运行结果是 ( ) include include main( ) { char * a="

    下面程序的运行结果是 ( ) # include<stdio.h> # include<string.h> main( ) { char * a="AbcdEf",* b="aBcD" a + +;b + +; printf("%d\n",strcmp(a,b)); }

    A.0

    B.负数

    C.正数

    D.无确定值


    正确答案:C

  • 第3题:

    有以下程序:include include main(){char *p[10]={"abc","aabdfg","dcdbe"

    有以下程序: #include <stdio.h> #include <string.h> main() { char *p[10]={"abc","aabdfg","dcdbe","abbd","cd"}; printf("%d\n",strlen(p[4])); } 执行后的输出结果是( )。

    A.2

    B.3

    C.4

    D.5


    正确答案:A
    解析:p是由10个指向字符型数据的指针元素组成的指针数组,其中前5个数组元素进行了初始化。p[4]="cd",strlen(str)是统计字符串str中字符的个数(不包括终止符'\0'),输出结果为2。

  • 第4题:

    以下程序:includeincludemain(){char str[]="abcd\n\123\xab";printf("%d"

    以下程序: #include<stdio.h> #include<string.h> main() {char str[]="abcd\n\123\xab"; printf("%d",(str)); } 运行后的输出结果是( )。

    A.10

    B.9

    C.7

    D.14


    正确答案:C

  • 第5题:

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

  • 第6题:

    以下程序的输出结果是【 】。includeincludechar*fun(char*t){ char *p=t;retur

    以下程序的输出结果是【 】。

    include <stdio.h>

    include <string.h>

    char *fun(char *t)

    { char *p=t;

    return (p+strlen(t)/2);

    }

    main()

    { char *str="abcdefgh";

    str=ftm(str);

    puts(str);

    }


    正确答案:
    efgh 解析:本题考查的知识点是:字符指针。题目中的fun()函数,通过strlen()库函数得到形参t所指字符串的长度。然后返回t所指字符串首地址值加上该长度值的一半。所以fun()函数的作用就是返回所给字符串的中间位置。故最后通过puts()输出的字符串为"efgh"。