(1)
解:(A)
struct成员类型不可以是它自己,因为会递归定义。 理论上这样导致结构体的大小不能被计算(无限大小)。所以不能在结构体里的成员类型是结构体本身。 但是成员可以定义为该结构体的指针。就像你上面代码。因为指针的大小是已知的(随编译器和操作系统而定)。 所以可以定义为该结构体的指针,但不是该结构体。
(2)
(3)
解:
浮点型数据有两种表达方式,一种是我们常见的十进制小数,如1.0等,可以缺省小数点前后的数,比如 1.和.1也是合法的表达;
另一种就是指数型了,形如 aEn 的方式,其中a是一个十进制小数,诸如1.0 .123456或者1.都是合法的,中间的E和e也都合法,不区分大小写,最后一个n只能是整型常量,不能是表达式。a和n都不能缺省。
A 错在1e3.5 指数不能是3.5
B 正确,其中第二项中的 +5表示正数,完全正确
C e5错误
D 5.0e(1+4) 错误,不能是表达式
(4)
解
(5)
(6)
(7)
(7)
(8)
(9)
(10)
(11)
解
C
主要是 s = (int﹡) malloc(sizeof(int));,其实是将内存分配给了一个新的指针.改变值也只是改变这个新指针指向的值而已.所以原值不变,答案选C,若去掉这句话,则答案就是11.
(12)
解
(13)
(14)
(15)
解:
第一个循环值做两次,3是读取不到的;
(16)
(17)
(18)
(19)
(20)
(21)
(22)
(23)
注意:
p+3后还有defgh5个字符,而strcpy直接用ABCD覆盖后面5个字符
(24)
注意:
i=j=0是复制语句,不是==;
(25)
(26)
(27)
(28)
(29)
(30)
(31)
(32)
(33)
(34)
(35)
(36)
(37)
(38)
(39)
(40)
(41)
(42)
(43)
(44)
(45)
(46)
(47)
解释:
浮点型和“0”比较是和一个接近于“0”的数比较。
c中在i为9时发生数组越界f[10];
(48)
(49)
(50)