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

2025-05-20 04:40:49
推荐回答(5个)
回答1:

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

代码 

#include"string.h" 

main()

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

  strcpy(str3,str1);

 printf("%s",str3);

}

 运行结果图是

回答2:

c肯定不可以;因为题目中只定义了str4为指向字符型数据的指针变量,而没有向它赋值,在程序中如果指针变量没有明确指出指向的时候,是不能够向他所指向的单元赋值的,因为此时的指针可能指向内存中很重要的数据区,如果强制赋值的话,可能还会导致计算机崩溃。B项我实在看不出来错在哪里

回答3:

答案是BCD
str3指向的是一个常量地址,不能修改它
str4没有分配内存,不能修改它
str5跟str3一样
除非str5[] = "hijk",而且要比str1长,否则出错,如str5[] = "hijkdddd"

回答4:

strcopy的作用是将str1复制给str2.
但是,它有一个前提,就是,2的长度必须比1长。不然,就会溢出,得不到答案或者错误的提示。
C中,就范了这样的错误。
但是,我看B 是对的呀。O(∩_∩)O~

回答5:

str1 str3 str5 都是指向常量的指针
常量值不可以改变,如果进行strcpy会出现错误