参考答案和解析
正确答案:C
解析:选项A中定义了一个字符型数组并赋初值;选项B定义了一个字符型数组t并初始化,然后定义了一个指针变量s并让它指向t;选项C先定义了一个长度为 10的字符型数组,然后再给它赋值,这时应该分别给数组中的每个元素赋值;选项D中先定义了一个长度为10的字符型数组s,然后通过字符串拷贝函数将字符串“abcdefs”赋值给它。
更多“以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是:A.char s[10]="abcdefg";B.char t[]= ”相关问题
  • 第1题:

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

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

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

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

    D.char*s;printf("%s",s);


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

  • 第2题:

    以下能将字符串“good!”正确地存放在字符数组s中,或使指针;能指向这个字符串的是(33)。

    A.char s[4]={'g','o','o','d','!')

    B.char s[5];s="good!";

    C.int s[5]="good!";

    D.char *s;s="good!:;


    正确答案:D
    解析:选项A是逐个字符赋值,字符数组末尾无“'\0'”结束符,因此不是字符串。选项A应更正为:chars[5]={'g','o','o','d','!','\0'}。选项B的错误在于,在赋值语句中对字符数组进行整体赋值。通常,在定义时可以对字符数组进行字符串的整体赋值。chars[5]="good!";是对选项B的更正。选项C存在语法错误。数组类型为int型,不是char型,不能进行初始化。chars[5]="good!";是对选项C的更正。选项D的“char*s;s="good!";”,是通过指针s指向字符串"good!"。

  • 第3题:

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

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

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

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

    D.char*s;char a;scanf("%s",&s);


    正确答案:C
    解析:如果一个字符数组用来存储字符串,那么在定义该字符数组时,数组的大小应该比它将要实际存放的字符串长度大1,所以选项A)和B)错。选项D)e本身就是一个字符指针,不需再取地址。

  • 第4题:

    以下选项中,不能正确赋值的是 ( )

    A.char sl [10];sl="Ctest";

    B.char s2 []={'C','t','e','s','t',}

    C.char s3[20]="Ctest";

    D.char * s[4]="Ctest\n";


    正确答案:A

  • 第5题:

    下面各语句行中,能正确地给字符串赋值的语句行是( )。

    A.char st[4]={"ABCDE"};

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

    C.char *s="ABCDE";

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


    正确答案:C
    解析:选项A)字符串的赋值产生越界错误,不正确;选项B)是字符数组的赋值,而不是字符串的赋值;选项D)中scanf的列表项必须为变量的地址。

  • 第6题:

    下列各个选项中对字符数组赋字符串的语句中,错误的是( )。

    A.char s[10];s="program";

    B.char s[]="program";

    C.char s[10]="program";

    D.char s[10]; strcpy(s,"program");


    正确答案:A

  • 第7题:

    以下程序段十,不能正确赋字符串(编译时系统会提示错误)的是( )。

    A.chars[10]="abedefg";

    B.char t[]="abcdefS",*s=t;

    C.chars[10];s="abcdefg";

    D.chars[10];strcpy(s,"abcdefg");


    正确答案:C
    解析:选项A中定义了一个字符型数组并赋初值,故选项A正确;选项B定义了一个字符型数组t并初始化,然后定义了一个指针变量s并让它指向t,故选项B正确;选项C先定义了一个长度为10的字符型数组,然后在给它赋值,这时应该分别给数组中的每个元素赋值,故选项c不正确:选项D中先定义了一个长度为10的字符型数组s,然后通过字符串拷贝函数将字符串“abcdefs”赋值给它,选项D正确。所以,4个选项中选项C符合题意。

  • 第8题:

    有以下定义语句,编译时会出现编译错误的是

    A.char a=‘a’;

    B.char a=‘\n’;

    C.char a=‘aa’;

    D.char a=‘\x2d’;


    正确答案:C
    解析:aa是字符串,不用加上单引号。

  • 第9题:

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

    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选项正确。

  • 第10题:

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

    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为所选。

  • 第11题:

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

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

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

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

    D.char*s;printf("%《",s);


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

  • 第12题:

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

    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

  • 第13题:

    以下选项中,不能确定赋值的是______。

    A.char s1[10];s1="chest";

    B.char s2[]={'C','t','e','s','t'};

    C.char s3[20]="Chest";

    D.char *s4="Ctest\n"


    正确答案:A
    解析:C语言中不能将字符串常量直接赋给数组。但在赋初值时可以。

  • 第14题:

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

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

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

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

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


    正确答案:C

  • 第15题:

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

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

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

    C.char*str="good!";

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


    正确答案:A

  • 第16题:

    不能把字符串"Hello!"赋给数组b的语句是______。

    A.char b[10]={'H', 'e',' l',' l', 'o','!'};

    B.char b[10]={'h', 'e', 'l', 'l', 'o','!'};

    C.char b[10];strcpy (b, "Hello!"};

    D.char b[10]="Hello!";


    正确答案:B
    解析:在C语言中,大写字母和小写字母被认为是两个不同的字符,因此,“hello!”和“Hello!”是两个不同的字符串。

  • 第17题:

    不能把字符串“Hello!”赋给数组的语是 ______。

    A.char b[10]={'H' ,' e' ,'1', '1', 'o' ,' !'};

    B.char b[10];b=" Hello!" ;

    C.char b[10];strcpy(b,"Hello!");

    D.char b[10]="Hello!"


    正确答案:B

  • 第18题:

    以下选项中,不能正确赋值的是 ______。

    A.char s1[10];s1="chest";

    B.char s2[]={'C','t','e','s','t'};

    C.char s3 [20]="Chest";

    D.char * s4="Cest\n"


    正确答案:A
    解析:C语言中不能将字符串常量直接赋给数组。但在赋初值时可以。

  • 第19题:

    以下程序段中,不能正确给字符串赋值(编译时系统会提示错误)的是:( )


    正确答案:C
    字符串赋初值对于字符数组只能在定义时进行。因此选项A的赋初值是正确的。因为数组名是一个固定指针,不能再让其指向其他内存单元。选项C的赋初值是错误的。但选项D是用strcpy函数将字符串“abcdefg”复制到S数组的内存中,是正确的。选项B的tel=”abcdefg”,是利用字符串的长度决定数组长度(串长加1)并同时赋初值。对于字符指针,可以在定义时就指向别的内存单元,*s=t,也是正确的。所以只有C项不正确。

  • 第20题:

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

    A.char s[]; s="HELLO!";

    B.char *s; s={"HELLO!"};

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

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


    正确答案:D

  • 第21题:

    在下面的字符数组定义中,哪一个有语法错误(43)。

    A.char a[20]=“abcdefg”;

    B.char a[]=“x+y=55.”;

    C.chara[15];

    D.char a[10]=‘5’;


    正确答案:D
    解析:选项D的定义右语法错误。赋值号右边的字符应该是用双引号括起来。

  • 第22题:

    有以下定义语句,编译时会出现编译错误的是( )。

    A.char a=a;

    B.char a=\n

    C.char a=aa;

    D.char a=\x2d;


    正确答案:C
    char类型用于存储单个字符的简单变量类型,它可以被指定为一个字符常量或一个整数。

  • 第23题:

    以下涉及字符串数组、字符指针的程序段,没有编译错误的是


    正确答案:B
    A选项中,不能对字符数组直接赋值;在C选项中.变量line没有定义,D选项中,变量str2,strl都没有定义,所以选项A、C、D错误,答案为B选项。

  • 第24题:

    以下能将字符串,you are luck!正确读入的语句组是( )

    A.char s[80]; scanf("%s",s);

    B.char *s: scanf("%s",s);

    C.char s[80]; gets(s);

    D.char *s; gets(3);


    正确答案:C