求教C语言题

(74)下列选项中正确的语句组是
char s[8]; s={"Beijing"}; B)char *s; s={"Beijing"};
C)char s[8]; s="Beijing"; D)char *s; s="Beijing";

(75) 以下不能正确进行字符串赋初值的语句是
A)char str[5]="good!"; B) char str[]="good!";
C) char *str="good!"; D) char str[5]={'g','o','o','d'};
答案是D A 帮忙分析下选项

74:赋值时不要有{},排除A和B,C中s定义为数组,不能s="Beijing"这样赋值,应该用for循环赋值。D是指针,指针会自动向下移,自己会找到下址存储相应的字符。

75:good!一共有5个字符,数组赋值时还要有“/n”所以加起来应该是6个字符,str[6]才能完全装得下“good!”,所以A错误!
B的赋值大小交给计算机自己去定,允许不输入大小。C是基本定义方式,无异议。D也是基本定义方式,并且good一共四个字符,再加上“/n”共计5个字符,与str[5]的大小一致,允许。

所以答案是D和A
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-01-05
第一题:
char s[8];声明以后,s代表的是指向这个数组的指针
然而,它与普通指针不同的是,不能修改s指向别的位置
因此,A C都是错误的
B是不合语法的。数组的括号里面不能出现字符串。因为一个字符串不是单个变量。

第二题:
对于A,char str[5]是一个普通的字符数组。给一个数组赋值当然不能用一个字符串,而必须用D那种形式。
B这种字符数组初始化方式是允许的,也只有这种形式是允许的。只是这种写法必须用在全局变量中。
C是比较常规的方式。本回答被提问者采纳
第2个回答  2008-01-05
(74)char赋值后 s代表指针
故选C
(75)数组怎么能给表达式呢
编译系统编译不了的~
仅限个人观点还是找老师问比较好:)
相似回答