两题C语言选择题

来源:百度知道 编辑:UC知道 时间:2024/06/01 21:27:33
11.声明语句为“int b[3][4];”,下列表达式中与b[2][1]等价的是________。
A)*(b[2]+1) B)b[3] C)*(b[1]+2) D)*(*(b+2))
14.以下if语句错误的是________。
A)if (x<y) x++; y++; else x--; y--;
B)if (x) x+=y;
C)if (x<y);
D)if (x!=y) scanf (" %d",&x) ; else x++;
答案分别是A A(第一题A的答案是什么意思啊?第二题为什么不是选C?)

第一题、指针指向b数组的第二排第2个数的位置(*b[2]表示指向数组第二排的第一个数,再加1表示指向第二个数)即b[2][1](b[2][0]是第一个数)
第二题、A应该是这样写if (x<y) {x++; y++; }else {x--; y--;}
if……else语句后加两个语句以上的语得加大括号,表示当作一个语句。
而C没错是因为if (x<y)则执行空语句,在C语言里是允许的