答案
21.D 22.D 23.A 24.B 25.C
26.D 27.A 28.B 29.C 30.B
24
对于数组a来说,sizeof(a) 就是数组的大小,在声明时就确定了。而 strlen(a)就是字符串的长度,在第1个'\0'之前的所有字符数。
因为字符串数组的最后一个字符 '\0' 是不认为
1 2 3 4 5 6 7 8 9 | #include <stdio.h> int main(int argc, char *argv[]) { char *p="123"; int c; c=sizeof(p); printf("%d\n", c); return 0; } |
在不同的环境下,p的值是不一样的。目前的PC机都是32位的,所以指针变量是4个字节。
1 2 3 4 5 6 7 8 9 10 11 | #include <stdio.h> int main(int argc, char *argv[]) { char a[]="1234567"; char *p = a; printf("sizeof(p)=%d\n",sizeof(p)); printf("sizeof(a)=%d\n",sizeof(a)); printf("string a length=%d\n",strlen(a)); return 0; } |
28
x = 3.89
n = 3 n是整数
y = n = 3,由于 y 是浮点数,所以 y = 3.0
29
c=(a||(b-=a)) 等价于 c=(a||(b=b-a))
如果条件 (a||(b-=a)) 满足,则 c = 1。
在本题中 a不等于0,所以 c = 1。另外,根据C语言的条件表达式的短路特性,b=b-a 根本就执行不到,所以 b 还是 15