单选题
设有以下定义:
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相似,也是形式正确,但超过了数组的长度。
提交答案
关闭