拓日新能诊股:c 语言中的问题

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/24 02:04:21
下面各语句行中,能正确进行赋字符串操作的语句行是
A) char st[4][5]={"ABCDE"}; B) char s[5]={'A','B','C','D','E'};
C) char *s; s="ABCDE"; D) char *s; scanf("%s",s);
请说明为什么

那位说的没错,这确实是个很基础的问题。
我试行过,c显示结果正确,b除了出现abcd后来还跟着其它字符。你给我解释一下?

B,D肯定是对的
C要是改为char *s = "ABCDE";
就是正确的.但是原来的题目是char *s; s="ABCDE";
s是字符型指针变量.只能存字符型变量的地址,也就是说你只能把地址或者是同一类型的指针变量赋给s,因此上面C的说法显然是错的,
A显然是错的.要是楼主还是不明白的话那就要去看看书了,这个是很基础的问题

a,b,c,d均能正确在vc下编译通过,
但d在运行时报错

char s[5]={'A','B','C','D','E'};
数组s从s[0]....[5]
所以B是对的

scanf("%s",s);
标准输入函数
也是对的

b d
但是,在B中,数组s 的下标是 0~4

B C and D are all right !You can have a try in TC2.0!! Do it yourself!!

int main()
{
char s[5]={'A','B','C','D','E'};
char *st = "ABCDE";
char *str;
printf(st);
printf("%c",s[0]);
scanf("%s",str);
printf(str);
getch();
}