3.D
对于字符串,系统自动在字符串尾部加上'\0'表示结束
A,应该定义长度为6。char s[6]={“ABCDE”};这就对了
B、char s[5]={‘a’,’b’,’c’,’d’,’e’};这只能称为字符数组
C char s[6]={”a,b,c,d,e”};逗号也算字符,长度应该为10
6.A
fun1(x,10,(x,10),fun2(y,10,(y,10)));
x算一个,10算一个。(x,10)算一个,这是逗号表达式,其值取最后一项,就是10。fun2(y,10,(y,10))算一个,这是把函数的返回值作参数。
总共4个
7.B 根据运算符的优先级
a||b+c&&b-c等价于a||(b+c)&&(b-c)
就是3||9&&(-1) 只要表达式不为0 就认为是真 而真的值是1
3||9&&(-1)是真,那得到的结果就是1
8.B printf(“%s”,a);打印字符串时,遇见第一个'\0'就认为结束。
2. i= 13
switch(i){case 9:i+=1;
case 10:i+=1;
case 11:i+=1;
default :i+=1;
}
i=10 遇见case 10: 时就会执行i+=1。注意,此后会不加判断的直接执行之后的 ":"后面的语句
所以得13。这也就是为什么要求在case之后加break;的原因了。
3.0 (a+b+c)是真,那!(a+b+c)是假,也就是0
4.1 98&&7&&1 98 7 1都是真,那整个表达式也是真,就是1
5.对于字符串,系统自动在字符串尾部加上'\0'表示结束
所以"ABC"其实是"ABC\0" 4个字符。
第一个选D,题目要求是字符串而不是字符数组。
第二个选A,(x,10)是逗号运算,最后取值只有一个。
填空题第一个是:12,因为没有break语句,i+=1会运行两次。
其他和一楼一样
D A B B
2. 13
3. 0
4. 1
5. 4
呵呵,要加强学习才行,错了这么多.