niusouti.com
参考答案和解析
正确答案:A
本题考查字符数组的初始化,B选项中赋值号右侧是赋值给一个字符串数组,而左边是一个字符数组,所以错误。C选项中字符串包含6个字符,所以不能赋值在左边只能放5个字符的字符串数组中。D选项gets函数中参数需要指定长度。所以选项A正确。
更多“ 以下选项中,能正确进行字符串赋值的是 ”相关问题
  • 第1题:

    以下语句或语句组中,能正确进行字符串赋值的是 ______。

    A.char*sp;*sp="right!";

    B.char s[10];s="right!";

    C.char s [10];*s="right!";

    D.char*sp="right!";


    正确答案:D
    解析:选项A定义了字符型的指针变量甲,则*sp存储的是第一个字符,而给它赋的是字符串,故错;
    选项B表示代表数组的首地址,而题中给它赋的是字符串,所以错误:
    选项C定义了一个字符型的数组s[10],再通过*s给数组元素赋初值,这时是与选项A相同的错误。

  • 第2题:

    下列能正确进行字符串赋值的是( )。A.

    B.

    C.

    D.

    A.A

    B.B

    C.C

    D.D


    正确答案:C
    选项A、B的空间不够;选项D中字符串存储要有结束符ˊ\0ˊ,且要占用一个空间,printf用来输出字符,不能输入字符串。

  • 第3题:

    以下能正确进行字符串赋值操作的是___

    A.char s[5]={"ABCDE"};

    B.char s[5]={'A', 'B', 'C', 'D', 'E'};

    C.char *s; s="ABCDE";

    D.char s="ABCDE";


    char *s ; s=”ABCDE” ;

  • 第4题:

    以下语句或语句组中,能正确进行字符串赋值的是( )。

    A.char *sp; *sp="right!";

    B.char s[10]; s="right!";

    C.char s[10]; *s="right!";

    D.char *sp="right!";


    正确答案:D
    解析:在选项A中,首先定义了一个字符指针sp,然后将个字符串赋给甲所指的地址,这是错误的。因为sp是一个未经初始化的野指针,不知其指向哪儿,往一个不确定的地址中写数据很容易让程序出错。选项B首先定义了一个字符数组,然后将一个字符串赋给数组名,这是错误的。因为数组名是一个指针常量,不可以被改变。选项C首先定义了—个字符数组,然后将—个字符串赋给数组的第一个元素,这也是错误的。因为字符串在表达式中相当于一个常字符指针,将一个指针值赋给一个字符型变量是行不通的。选项D是定义一个字符指针sp,同时使其指向一个字符串常量,即将个常字符型指针赋给sp。这是可行的。所以,4个选项中选项D符合题意。

  • 第5题:

    以下语句或语句组中,能正确进行字符串赋值的是

    A.char *sp; *sp="right!";

    B.char s[10]; s="right!";

    C.char s[10]; *s="right!";

    D.char *sp="right!";


    正确答案:D
    解析:本题考查了考生对字符串常量的理解。字符串常量是一段以双引号括起来的字符序列,它既可以出现在对字符数组的初始化中,也可以出现在表达式中。当它用于对字符数组的初始化时,应注意系统自动为其添加的结束标志'\0'。而当它出现在表达式中时,应该将其看作一个constchar*类型的指针常量。在选项A中,首先定义了一个字符指针sp,然后将一个字符串赋给甲所指的地址,这是错误的。因为sp是一个未经初始化的野指针,不知其指向哪儿,往一个不确定的地址中写数据很容易让程序出错。选项B首先定义了一个字符数组,然后将一个字符串赋给数组名,这是错误的。因为数组名是一个指针常量,不可以被改变。选项C首先定义了一个字符数组,然后将一个字符串赋给数组的第一个元素,这也是错误的。因为字符串在表达式中相当于一个常字符指针,将一个指针值赋给一个字符型变量是行不通的。选项D是定义一个字符指针sp,同时使其指向一个字符串常量,即将一个常字符型指针赋给sp。这是可行的。所以,4个选项中选项D符合题意。