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

题目

以下能将字符串“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!:;

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

指向4个字符串的指针数组的正确的定义是()。

A.char (*p)[ ]

B.char *p[4]

C.char *(p[])

D.char (*p)[4]


char *p[4]

第2题:

25、关于指针和字符串的说法中,正确的有________。

A.字面字符串实质上是常量字符数组

B.字符数组的名字是一个指针常量,它只能指向分配给它的那块内存空间,不能指向其它字符串或数组

C.字符数组被分配数组类型存储空间,该空间可以保存一个字符串

D.指针与字符串没有区别


字面字符串实质上是常量字符数组;字符数组的名字是一个指针常量,它只能指向分配给它的那块内存空间,不能指向其它字符串或数组;字符数组被分配数组类型存储空间,该空间可以保存一个字符串

第3题:

假定s被定义为指针类型char *的变量,初始指向的字符串为"Hello world!",若要使变量p指向s所指向的字符串,则p应定义为()。

Achar *p=s;

Bchar *p=&s;

Cchar *p;p=*s;

Dchar *p; p=&s;


A

第4题:

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

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

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

第6题:

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

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

第7题:

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

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相同的错误。

第8题:

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

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

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

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

D.char*sp=:right!";


正确答案:D
解析:C语言中不允许通过赋值语句给字符数组赋值,所以选项A、B、C都不对。

第9题:

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

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

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

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

D.char*sp="right!";


正确答案:D
解析:本题的考点是C语言的数组和指针。C的数组名是一个特殊类型的指针,固定指向数组第一个元素的位置,运行过程中不能再改变其指向。因此选项B、C都是错误的。指针可以指向任何单元,但选项A是错误的,因为赋值语句“*sp=”right!”;”是错误的,正确写法是“sp=”right!”;”。而对于选项D,由于“char*sp="right!";”是定义指针同时赋初值,因此是正确的。