作业题求助
1. 正确的数组定义语句是()。A. int n=5, x; B. intx={0,1,3,5,7,9};
C. charc1[ ]={′1′,′2′,′3′,′4′,′5′}; D. charc2[ 5]= "12345";
为啥感觉这道题ACD都是对的emmm C赋值时使用的不是单引号,D字符数组没有地方存放'\0'.
A、对支持C99的编译器而言,此题是对的。不支持C99的编译器,就不支持这种变长数组,这题就是错的
B、定义正确
C、定义错误,没有给出数组元素的个数
D、错误,给字符赋值,现有5个字符,数组长度也只有5个,最后的结束符,就没有单元放了。改为:charc2[ 6]= "12345"; 就正确了 A. int n=5, x; 错误,应该写为 int x;
B. intx={0,1,3,5,7,9}; 错误,数组长度为5,初始化了6个元素,溢出。
C. charc1[ ]={′1′,′2′,′3′,′4′,′5′}; 正确,数组没给定长度,初始化5个元素则确定了数组长度为5
D. charc2[ 5]= "12345"; 错误,数组长度为5,但字符串"12345"的长度为6,溢出。 这题只有C对。A不允许这么定义。你可以用C++的new来。但C语言不允许
B有六个数字,超出了定义的5个长度
D同样有六个位置,超出了5个长度。 A是错的,C语言中数组长度必须为常量
B是错的,超过定义的长度
C是对的
D是错的,同样也是超过了定义的长度,别忘了字符数组保存字符串还有个隐藏的'\0'
页:
[1]