天然金刚石图片:(43) 设已有定义: char *st="how are you"; 下列程序段中正确的是

来源:百度文库 编辑:高考问答 时间:2024/04/28 17:26:52
(43) 设已有定义: 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);
C错
继续

选A
strcpy(p=a+1,&st[4]);
从st[4]开始复制给p,最终p="are you"
B,a是字符数组名,是个常量,不能执行++a操作
C.因为*st="how are you";有11个字符,包括\0就有12个字符.
所以a[11]没有把\0复制过去.会有乱码.
D.a[]没有声明多大的数组.
补充:C不是有乱码的问题,是因为数组a[11]不够存放str.

A B D都错

C