itgle.com

下面判断正确的是A.char *a="china";等价于 char *a;*a="china";B.char str[5]={"china"};等价于char str[]={"china"};C.char *s="china";等价于 char *s;s="china";D.char c[4]="abc",d[4]="abc";等价于char c[4]=d[4]="abc";

题目

下面判断正确的是

A.char *a="china";等价于 char *a;*a="china";

B.char str[5]={"china"};等价于char str[]={"china"};

C.char *s="china";等价于 char *s;s="china";

D.char c[4]="abc",d[4]="abc";等价于char c[4]=d[4]="abc";


相似考题
参考答案和解析
正确答案:C
解析:选项A)har *a;*a="china"应改为a=china;,选项B)应该是char str[6];D)项表述方法有错误。
更多“下面判断正确的是A.char *a="china";等价于 char *a;*a="china";B.char str[5]={"china"};等价于 ”相关问题
  • 第1题:

    下列判断正确的是( )。

    A.char a="ABCD";等价于char*a:*a="ABCD";

    B.char str[10]={"ABCD"};等价于char str[10];str[]={"ABCD"};

    C.char*s="ABCD";等价于char s;*s="ABCD";

    D.char c[5]="ABCD",d[5]="ABCD";等价于char c[5]=d[5]="ABCD";


    正确答案:D
    解析:a="ABCD"书写错误,因为“=”左边不能出现常量;数组名s是代表s数组首地址的地址常量,而不是变量;字符串只有在定义时维数可以省略。

  • 第2题:

    strcmp函数的功能是【9】 。

    正确答案: 1.(字符串的比较)

    (10)以下程序段中,错误的行号是【10】 。

    ① #include

    ② main ()

    ③ { char str [14];str []={" I love China"};

    ④printf ("%s",str);

    ⑤ }


    正确答案:
    3行

  • 第3题:

    下列语句中,不正确的是______。

    A.static char a[]={"China"};

    B.static char a[]="China";

    C.printf("%s",a[0]);

    D.scanf("%s",a);


    正确答案:C

  • 第4题:

    以下不能正确进行字符串赋值初值的语句是( )。

    A.char str[5]="good!";

    B.char str[]="good!";

    C.char*str="good!";

    D.char str[5]={'g','o','o','d'};


    正确答案:A

  • 第5题:

    以下选项中,合法的是( )。

    A.char str3[]={d,e,b,u,g,\0};

    B.char str4;str4="hello world";

    C.char name[10];name="china";

    D.char strl[5]="pass",str2[6];str2=strl;


    正确答案:A
    选项B不能把一个字符串赋值给一个字符变量,选项c和D犯了同样的错误是把字符串赋给了数组名。

  • 第6题:

    下面判断正确的是( )。

    A.char *a="china";等价于char *a;*a="ghina";

    B.char str[5]={"china"};等价于char str[]={"china"};

    C.char*s="china";等价于char*s;s="china";

    D.charc[4]="abc",d[4]="abc";等价于char c[4]=d[4]="abc";


    正确答案:C
    解析:选项A)char*a;*a="china"应改为char*a;a="china";选项B)应该将str[5]改为str[6];选项D)表述方法错误,c,d两个数组定义时不能连续赋值。

  • 第7题:

    下列语句中,正确的是______。

    A.static char str[]="China";

    B.static char str[];str="China";

    C.static char str1[5],str2[]={"China"};strl=str2;

    D.static char str1[],str2[];str2={"China"};strcpy(str1,str2);


    正确答案:A

  • 第8题:

    设有 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。

  • 第9题:

    以下不能正确进行字符串赋初值的语句是

    A.char str[5]="good!";

    B.char str[]="good!";

    C.char*srt="good!";

    D.char str[5]={ 'g', 'o', 'o', 'd'};


    正确答案:A
    解析:本题考核的知识点是字符数组和字符指针变量的初始化。选项A定义了一个字符数组str,具有5个元素,但赋初值的时候,初值个数却是6个(有一个'\0'),故选项A错误的;选项B定义了一个字符数组str并给它赋初值,由于省去了长度定义,长度由初值个数确定,相当于str[6],选项B正确;选项C定义了一个字符型指针变量并用一个字符串给它赋初值,使该字符型指针指向了该字符串,选项C正确;选项D是对字符型数组中单个元素依次赋初值,选项D正确。所以,4个选项中A为所选。

  • 第10题:

    下列判断正确的是( )。

    A.chara="ABCD";等价于char*a;*a="ABCD";

    B.char str[10]={"ABCD"};等价于char str[10];str[]={"ABCD"};

    C.char*s="ABCD";等价于char s;*s="ABCD";

    D.charc[5]="ABCD",d[5]="ABCD";等价于char c[5]=d[5]="ABCD";


    正确答案:D
    解析:a="ABCD"书写错误,因为“;”左边不能出现常量;数组名s是代表s数组首地址的地址常量,而不是变量;字符串只有在定义时维数可以省略。

  • 第11题:

    在下列语句中,正确的是( )

    A.static char str[]="China";

    B.static char str[];str="China";

    C.static char str1[5],str2[]={"China"};str1=str2;

    D.static char str1[],str2[];str2={"China"};strcpy(str1,str2);


    正确答案:A

  • 第12题:

    下面的说明中,错误的是()。

    • A、char a[10]= “china”;
    • B、char a[10], *p=a; p=“china”;
    • C、char *a; a=“china”;
    • D、char a[10], *p; p=a=“china”;

    正确答案:D

  • 第13题:

    下列能正确定义字符串的语句是( )。

    A.char str[]={'\64'};

    B.char str="kx43";

    C.char str=";

    D.char str[]="\0";


    正确答案:D
    解析:字符串常量是用一对双括号括起来的一串字符。它用字符数组来存放,不能用一对大括号对括起来。

  • 第14题:

    下列字符数组的初始化,正确的是( )。

    A.char ch[5]={"a","b","c","d","e"};

    B.char ch[]={'a','b'};

    C.char ch[15]={"welcome to china"};

    D.char ch[14]={"I am a student"};


    正确答案:B
    解析:选项A中一个数组元素存放一个字符,不能存放字符串;当把字符串整体赋给字符串时,字符数组的长度要比字符串长度大1,用来存放终结符,所以选项C和选项D都不正确。

  • 第15题:

    下面程序的输出结果是( )。 include main() {static char a[]="china"; char*ptr=a; whi

    下面程序的输出结果是( )。 include<stdio.h> main() {static char a[]="china"; char*ptr=a; while(*ptr) {printf("%c",*ptr-32); ptr++; } }


    正确答案:CHINA
    CHINA

  • 第16题:

    下面说明不正确的是( )。

    A.chara[10]="china";

    B.chara[10],*p=a;p="chiua";

    C.char*a;a="china";

    D.chara[10],*p;p=a="china";


    正确答案:D
    解析:C语言中操作一个字符串常量的方法有:①把字符串常量存放在一个字符数组之中。②用字符指针指向字符串,然后通过字符指针来访问字符串存储区域。当字符串常量在表达式中出现时,根据数组的类型转换规则,它被转换成字符指针。本题选项D)错误的关键是对数组初始化时,可以在变量定义时整体赋初值,但不能在赋值语句中整体赋值。

  • 第17题:

    下面关于数组的初始化正确的是( )。

    A.char str[]={’a’,’b’,’C’}

    B.char str[2]={’a’,’b’,’c’}

    C.char str[2][3]={{’a’,’b’},{’C’,’d’},{’e’,’f’}}

    D.char str={~a,~b,~C}


    正确答案:A
    本题考查的是字符数组的初始化。选项B中用3个庀素初始化大小为2的数组,越界了;选项c中应该是2行3列的数组,题中使用3行2列初始化;选项D中数组合后应用方括号。

  • 第18题:

    以下程序的输出结果是( )。 main {char str[]1-10]={"china","beijing"),*p=str; printf("%s\n",p+10); }

    A. China

    B.Beijing

    C.ng

    D.ing


    正确答案:B
    本题考查指针,由*p=str可知,指针P指向字符串数组的首地划。二维数组str为每个字符串分配的存储空间是10个字节,因此p+10指向str[1][0],输出的字符串就是数组中的第2个字符串。

  • 第19题:

    设有说明语句如下: static char str[]="Beijing"; 若执行下列输出语句: printf("%d\n",strlen(strcpy(str,"China")));则输出结果为( )。

    A.5

    B.7

    C.12

    D.14


    正确答案:A
    解析:本题考查求字符串的长度。数组str初始化的长度是7,使用strcpy函数将新字符串赋给str后,strlen函数返回的是新字符串的字符个数5。

  • 第20题:

    库函数strcpy用以复制字符串,若有以下定义和语句: char str1[]="china",str2[10],*str3,*str4="china"; 则对库函数strcpy的正确的调用是_______。

    A.strcpy(strl,"people");

    B.strcpy(str2,"people");

    C.strcpy(str3,"people");

    D.strcpy(str4,"people");


    正确答案:B
    解析:strcpy(字符数组1,字符串2)其作用是将字符串2复制到字符数组1中去。注: (1)字符数组1必须定义得足够大; (2)“字符数组1”必须写成数组名的形式; (3)复制时连同字符串后面的'\0'一起复制到字符数组1中。

  • 第21题:

    以下选项中有语法错误的是( )。

    A.char*str[]={"guest");

    B.char str[][lO]={"guest");

    C.char*str[3];str[t]="9uest";

    D.char str[3][lO];str[1]="guest";


    正确答案:D
    在D选项中,首先定义了一个二维数组str,str[1]="9uest,在赋值时"使用一个字符串进行赋值是错误的,所以答案选择D。

  • 第22题:

    有下面的程序段: char str[10],ch[]="China"; str=ch; printf("%s",str); 则运行时______。

    A.将输出China

    B.将输出Ch

    C.将输出Chi

    D.编译出错


    正确答案:D

  • 第23题:

    以下程序的输出结果是( )。

    main

    {char str[][10]={"china","beijing"),*p=str;

    printf("%s\n",p+10);

    }

    A.China

    B.Beijing

    C.ng

    D.ing


    正确答案:B
    本题考查指针,由*p=str可知,指针P指向字符串数组的首地划。二维数组str为每个字符串分配的存储空间是10个字节,因此p+10指向str[1][0],输出的字符串就是数组中的第2个字符串。

  • 第24题:

    下面判断正确的是()

    • A、char*a="china";等价于char*a;*a="china"
    • B、charstr[10]={"china"};等价于charstr[10];str[]={"china"};
    • C、char*s="china";等价于char*s;s="china";
    • D、charc[4]="abc",d[4]="abc";等价于charc[4]=d[4]="abc"

    正确答案:C