C语言题疑问,下题答案为什么是B和C?

若有以下说明,则对strcpy库函数的调用不正确的有_______。char*str1=“copy”,str2[10],*str3=“abcde”,*str4,*str5... 若有以下说明,则对strcpy库函数的调用不正确的有_______。
char *str1=“copy”,str2[10],*str3=“abcde”,*str4,*str5=“hijk”;
A)strcpy(str2,str1); B)strcpy(str3,str1);
C)strcpy(str4,str1); D)strcpy(str5 ,str1);

多选,答案是BC,
展开
 我来答
千里冰封223
2011-09-16 · TA获得超过272个赞
知道答主
回答量:139
采纳率:0%
帮助的人:62.5万
展开全部

选项c错误,这个应该知道。而选项B完全正确 ,有证明 :

代码 

#include"string.h" 

main()

{   char *str1=“copy”,*str3=“abcde”;

  strcpy(str3,str1);

 printf("%s",str3);

}

 运行结果图是

一蜉蝣
2011-09-16 · TA获得超过1319个赞
知道小有建树答主
回答量:89
采纳率:0%
帮助的人:95.7万
展开全部
c肯定不可以;因为题目中只定义了str4为指向字符型数据的指针变量,而没有向它赋值,在程序中如果指针变量没有明确指出指向的时候,是不能够向他所指向的单元赋值的,因为此时的指针可能指向内存中很重要的数据区,如果强制赋值的话,可能还会导致计算机崩溃。B项我实在看不出来错在哪里
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
terranlong
2011-09-16 · TA获得超过7293个赞
知道大有可为答主
回答量:2660
采纳率:0%
帮助的人:3950万
展开全部
答案是BCD
str3指向的是一个常量地址,不能修改它
str4没有分配内存,不能修改它
str5跟str3一样
除非str5[] = "hijk",而且要比str1长,否则出错,如str5[] = "hijkdddd"
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yangmo091
2011-09-16 · TA获得超过478个赞
知道答主
回答量:63
采纳率:0%
帮助的人:51.7万
展开全部
strcopy的作用是将str1复制给str2.
但是,它有一个前提,就是,2的长度必须比1长。不然,就会溢出,得不到答案或者错误的提示。
C中,就范了这样的错误。
但是,我看B 是对的呀。O(∩_∩)O~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jasonwyatking
2011-09-16 · TA获得超过357个赞
知道小有建树答主
回答量:288
采纳率:0%
帮助的人:245万
展开全部
str1 str3 str5 都是指向常量的指针
常量值不可以改变,如果进行strcpy会出现错误
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式