如题目或答案有误,请通过BUG反馈告知我们修正,谢谢!

1、执行下列语句后,a的值为:
int a;
#define M(x,y) (x*y)
a=M(1+2,3);

9

7

5

以上均不是

2、设有以下定义:
int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};
int (*prt)[3]=a, * p=a[0];
则下列能够正确表示数组元素a[1][2]的表达式是

*((*prt+1)[2])

*(*(p+5))

(*prt+1)+2

*(*(a+1)+2)

3、设有定义:struct sk
{int a;float b;}data,*p;
若有p=&data;,则对data中的a域的正确引用是

(*p).data.a

(*p).a

p->data.a

p.data.a

4、以下对枚举类型名的定义中正确的是:

enum s={a,b,c}

enum s {a=9,b=2,c}

enum s={'a', 'b', 'c'}

enum s {'a', 'b', 'c'}

5、若有以下定义和语句:
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
则不能表示a数组元素的表达式是

*p

a[10]

*a

a[p-a]

6、设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为

不定值

4

3

1

7、以下对C语言函数的有关描述中,正确的是

在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参

C函数既可以嵌套定义又可以递归调用

函数必须有返回值,否则不能使用函数

C程序中有调用关系的所有函数必须放在同一个源程序文件中

8、以下运算符中,运算对象必须是整型的是:

/

%=

!=

〈=

9、假定所有变量均已正确说明,下列是程序段运行后x的值是?
a=b=c=0;x=35;
if(!a) x--;
else if(b);
if(c) x=3;
else x=4;

34

4

35

3

10、以下程序的输入结果是
main( )
{  int i=010,j=10,k=x10;
  printf("%d,%d,%d ",i,j,k);
}

8,10,16

8,10,10

10,10,10

10,10,16