A-A+

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

2022-08-06 05:34:05 问答库 阅读 176 次

问题详情

若有定义: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”可以是字符数组名,也可以是字符串常量,不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。

考点:定义,程序