设有以下定义:char *st="how are you";下列程序段中正确的是______。A.char a[11],*p;strcpy(p=a+

题目

设有以下定义: char *st="how are you";下列程序段中正确的是______。

A.char a[11],*p;strcpy(p=a+1,&st[4]);

B.char a[11];strcpy(++a,st);

C.char a[11];strcpy(a,st);

D.char a[],*p;srtcpy(p=&a[1],st+2);

参考答案和解析
正确答案:A
解析:选项A表示把st所指串的第5个字符开始的后面的元素赋值给数组a的第2个元素开始的后面元素,形式正确;选项B中出现对数组名进行自加运算,因此错误:选项C中st所指字符串有11个字符,再加上'\0',有12个字符,超过数组长度,所以也是错误的;选项D的情况和选项C相似,也是形式正确,但超过了数组的长度。
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

若有定义:char*st="how are you";下列程序段中正确的是

A.char a[11],*p;strcpy(p=a+1,&st[4]);

B.char a[11];strcpy(++a,st);

C.char a[11];strcpy(a,st);

D.char a[],*p;strcpy(p=&a[1],st+2);


正确答案:A
解析:本题综合考查字符数组的赋值和strcpy函数的用法。C语言不允许用赋值表达式对字符数组赋值,如下面的语句就是非法的:strl=“China”,如果想把“China”这5个字符放到数组strl中,除了逐个地输入外,还能使用strcpy函数,该函数的功能是将一个字符串复制到一字符数组中。例如:strcpy(strl,“China”);或strcpy(strl,str2);注意,不能企图用以下语句来实行赋值(将str2的值传给strl):strl=str2;不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。strcpy函数的结构是:strcpy(字符数组1,字符串2)其中,需要注意的是,字符数组1的长度不应小于字符串2的长度,“字符数组1”必须写成数组名形式,如(strl),“字符串2”可以是字符数组名,也可以是字符串常量,不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。

第2题:

若有定义:char *st="how are you";,下列程序段中正确的是

A.chara[11];*p;strcpy(p=a+1,&st[4]);

B.chara[11];strcpy(++a,st);

C.chara[11];strcpy(a,st);

D.chara[],*p;strcpy(p=&a[1],st+2);


正确答案:A
解析:本题综合考查字符数组的赋值和strcpy函数的用法。C语言不允许用赋值表达式对字符数组赋值,如下面的语句就是非法的:strl=“China”,如果想把“China”这5个字符放到数组strl中,除了逐个输入外,还能使用strcpy函数,该函数的功能是将一个字符串复制到一字符数组中。例如:strcpy(strl,“China”)或strcpy(str1,str2);注意,不能企图用以下语句来实行赋值(将str2的值传给str1):str1=str2;不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。
  strcpy函数的结构是:strcpy(字符数组1,字符串2)
  其中,需要注意的是,字符数组1的长度不应小于字符串2的长度,“字符数组1”必须写成数组名形式,如(str1),“字符串2”可以是字符数组名,也可以是字符串常量,不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。

第3题:

设已有定义:char*st="how are you";,下列程序段中正确的是______。

A.char a[11],*p;strcpy(p=a+1,&st[4]);

B.char a[11];strcpy (++a,st);

C.char a[11];strcpy (a,st);

D.char a[], *p;strcpy(p=&a[1],st+2);


正确答案:A

第4题:

若有定义:char *st= "how are you "; 下列程序段中正确的是A.char a[11], *p; strcpy(p=a+1,&

若有定义:char *st= "how are you "; 下列程序段中正确的是A.char a[11], *p; strcpy(p=a+1,&st[4]);B.char a[11]; strcpy(++a, st);C.char a[11]; strcpy(a, st);D.char a[], *p; strcpy(p=&a[1],st+2);


正确答案:A
本题综合考查字符数组的赋值和strcpy函数的用法。C语言不允许用赋值表达式对字符数组赋值,如下面的语句就是非法的:str1="China",如果想把“China”这5个字符放到数组str1中,除了逐个输入外,还能使用strcpy函数,该函数的功能是将一个字符串复制到一字符数组中。例如,strcpy(str1,"China");或strcpy(str1,str2);注意,不能企图用以下语句来实行赋值(将str2的值传给str1):str1=str2;不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。
strcpy函数的结构是:strcpy(字符数组1,字符串2)
其中,需要注意的是,字符数组1的长度不应小于字符串2的长度,“字符数组1”必须写成数组名形式,如(str1),“字符串2”可以是字符数组名,也可以是字符串常量,不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。

第5题:

下列程序段中,不能正确赋值的是

A.char * p,ch; p=&ch; scanf("%c,&p")

B.char * p; p=(char*)malloc(1) scanf("%c",p);

C.char *p *p=getchar( );

D.char *p,ch; p=&ch; *p=getchar( );


正确答案:C
解析:本题考查了字符的输入函数getchar和利用scanf函数输入一个字符。用scanf输入字符时,格式说明字符应该为%c。本题选项C)因为指针p没有赋初值,所以是一个不定值,不能直接将getchar读入的字符赋给指针p所指向的字符,所以选项C错误。

第6题:

若有定义:char*st="how are you";,下列程序段中正确的是

A.chara[11],*p;strcpy(p=a+1,&st[4]);

B.chara[11];strcpy(++a,st);

C.chara[11];strcpy(a,st);

D.chara[],*p;strcpy(p=&a[1],st+2);


正确答案:A
解析: 本题综合考查字符数组的赋值和strepy函数的用法。C语言不允许用赋值表达式对字符数组赋值,如下面的语句就是非法的:strl=“China”,如果想把“Chi- na”这5个字符放到数组strl中,除了逐个输入外,还能使用strepy函数,该函数的功能是将一个字符串复制到一字符数组中。例如:strepy(strl,“China”)或strcpy(strl,str2);注意,不能企图用以下语句来实行赋值(将str2的值传给strl):str1=str2;不能用赋值语句将一个字符串常量或字符数组直接给一个字

第7题:

若有定义:char *st="how are you";下列程序段中正确的是()。A.char a[11], *p; strcpy(p=a+1,&

若有定义:char *st="how are you";下列程序段中正确的是( )。

A.char a[11], *p; strcpy(p=a+1,&st[4]);

B.char a[11]; strcpy(++a, st);

C.char a[11]; strcpy(a, st);

D.char a[], *p; strcpy(p=&a[1],st+2);


正确答案:A
解析:C语言不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组,例如,已定义字符数组str1和str2,那么str1="China"和str1=str2都是错误的。通常使用strcpy函数进行字符串的赋值,例如:strcpy(str1,"China")或strcpy(str1,str2)。需要注意的是,字符数组str1的长度不应小于字符串“China”或字符数组str2的长度,函数strcpy的第一个参数必须用数组名的形式,如str1,第二个参数可以是字符数组名,也可以是字符串常量。

第8题:

若有定义: char *st= "how are you "; 下列程序段中正确的是

A.char a[11], *p; strcpy(p=a+1,&st[4]);

B.char a[11]; strcpy(++a, st);

C.char a[11]; strcpy(a, st);

D.char a[], *p; strcpy(p=&a[1],st+2);


正确答案:A

第9题:

若有定义: char *st= "how are you "; ,下列程序段中正确的是A.char a[11], *p; strcpy(p=a+1,&a

若有定义: char *st= "how are you "; ,下列程序段中正确的是

A.char a[11], *p; strcpy(p=a+1,&st[4]);

B.char a[11]; strcpy(++a, st);

C.char a[11]; strcpy(a, st);

D.char a[], *p; strcpy(p=&a[1],st+2);


正确答案:A
解析:本题综合考查字符数组的赋值和strcpy函数的用法。C语言不允许用赋值表达式对字符数组赋值,如下面的语句就是非法的:str1="China",如果想把"China"这5个字符放到数组str1中,除了逐个输入外,还能使用strcpy函数,该函数的功能是将一个字符串复制到一字符数组中。例如:strcpy(str1,"China")或strcpy(str1,str2);注意,不能企图用以下语句来实行赋值(将str2的值传给str1):str1=str2;不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。
strcpy函数的结构是:strcpy(字符数组1,字符串2)
其中,需要注意的是,字符数组1的长度不应小于字符串2的长度,"字符数组1"必须写成数组名形式,如(str1),"字符串2"可以是字符数组名,也可以是字符串常量,不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。