第一题
A:(!E == 0)
C:(E == 0)
D:(E != 0)
答案及解析 C
所以E == 0,为假;E != 0 为真
A:!(E == 0),E等于0的时候,!(E==0) = !(1) = 0,为假,跟原来的一样,E==0为假
C:在C这里E==0的时候,为真,成立,不是等价的;因为我们需要的是E==0为假
D:当E==0的时候,为假,成立,等价
第二题
int main()
{
char c;
scanf("%c", &c);
switch(c)
{
case '1':
printf("1");
case '2':
printf("2")
case '3':
printf("3")
default:
printf("error");
}
}
A:1
B:2
C:3
D:123error
答案及解析 D
switch语句有个规则,只要符合case后面的值,就会执行下面语句,如果case里面没有break,就会依次执行这个case下面的每一个case后面的语句,当然也包括default;
第三题
答案及解析 D
A:正确,对地址的取值就是解引用,对空指针和野指针的解引用是非法的,禁止对空指针和野指针解引用!
B:正确,空指针是指向的空,地址为0x0的,任何对象和函数的地址肯定不是空地址;野指针是未初始化的指针,指向的地址是随机的
C:正确,同B
第四题
答案及解析 B
那相反表达式 x <= 0为真, y != 5为真,中间的逻辑符是与还是或呢?
答案是与
如果是或,x <= 0 || y != 5,那就是x = -1 ,y = 5也成立,跟我们的原来的并不是相反表达式;
所以我们必须为与,只有满足x 小于等于0,同时还满足y不为5才行
也就是B
第五题
5. 定义 int a[ 3 ][ 5 ], i, j; (且 0 ≤ i < 3, 0 ≤ j < 5),则 a [ i ] [ j ] 不正确的地址表示是()
B:a[ i ] + j
C:*(a + i) + j
D:*(*(a + i) + j)
答案及解析 D
B:正确,a[ i ]表示的是第i行的首元素地址,+j就移动到a[ i ][ j ]的位置
C:正确,*(a + i) 等价于 a[ i ]
D:错误,取到的是a[ i ][ j ]这个元素
原文地址:https://blog.csdn.net/2302_76941579/article/details/134758494
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_36892.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!