niusouti.com
参考答案和解析
正确答案:D
解析:本题的考点是C语言的数组和指针。C的数组名是一个特殊类型的指针,固定指向数组第一个元素的位置,运行过程中不能再改变其指向。因此选项B、C都是错误的。指针可以指向任何单元,但选项A是错误的,因为赋值语句“*sp=”right!”;”是错误的,正确写法是“sp=”right!”;”。而对于选项D,由于“char*sp="right!";”是定义指针同时赋初值,因此是正确的。
更多“以下语句或语句组中,能正确进行字符串赋值的是( )。A.char*sp;*sp="right!";B.char s[10];s="righ ”相关问题
  • 第1题:

    以下选项中正确的语句组是( )。

    A.char*s;s={f.BOOK!”};

    B.char*s;s:”BOOK!”:

    C.chars[10];s=”BOOK!”;

    D.cbars[];s:”BOOK!n:


    正确答案:B
    ^选项去掉大括号就正确了;c选项和D|选项应在定义时赋初值。因此B选项正确。

  • 第2题:

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

    A.char s[5]:{'a','e','i','o','u'};

    B.char *s; s="good";

    C.char s[5]="good";

    D.char s[5]; s="good";


    正确答案:C

  • 第3题:

    以下选项中正确的语句组是()。

    A.char *s;s={"BOOK!"};

    B.char *s;s="BOOK!";

    C.char s[10];s="BOOK!";

    D.char s[];s="BOOK!";


    B A选项去掉大括号就正确了;c选项和D选项应在定义时赋初值。因此B选项正确。

  • 第4题:

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

    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符合题意。

  • 第5题:

    下面各语句行中,能正确进行字符串赋值操作的语句是:

    A.char *s;scanf("%s",s);

    B.char st[4][5]={"HELLO"};

    C.char s[5]={'H', 'E', 'L', 'L', 'O'};

    D.char * s;s="HELLO";


    C