我这有点C语言题 谁能帮做一下,给出答案,万分感谢

2024-11-25 07:09:33
推荐回答(3个)
回答1:

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个字符。

回答2:

第一个选D,题目要求是字符串而不是字符数组。
第二个选A,(x,10)是逗号运算,最后取值只有一个。
填空题第一个是:12,因为没有break语句,i+=1会运行两次。
其他和一楼一样

回答3:

D A B B
2. 13
3. 0
4. 1
5. 4

呵呵,要加强学习才行,错了这么多.