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

1、以下叙述中不正确的是

在C中,函数中的自动变量可以赋初值,每调用一次,赋一次初值

在C中,在调用函数时,实参和对应形参在类型上只需赋值兼容

在C中,外部变量的隐含类别是自动存储类别

在C中,函数形参可以说明为register变量

2、若有以下说明和语句,则输出结果是?
(strlen(s)为求字符串s的长度的函数)
char sp[]="\t\v\\\0will\n";
printf("%d",strlen(sp));

14

3

9

字符串中有非法字符

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

9

7

5

以上均不是

4、以下关于宏替换的叙述不正确的是:

宏替换只是字符替换

宏名无类型

宏替换不占用运行时间

宏替换不占用编译时间

5、以下c语言函数声明中,不正确的是:

void fun (int x, int y);

fun (int x, int y);

int fun (int x,y);

char *fun (char *s);

6、若执行以下程序时从键盘上输入9,
Main()
{ int n;
scanf("%d",&n);
if(n++<10) printf("%d\n",n);
else printf("%d\n",n--);
}
则输出结果是:

11

10

9

8

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

(*p).data.a

(*p).a

p->data.a

p.data.a

8、以下所列的各函数首部中,正确的是

void play(var :Integer,var b:Integer)

void play(int a,b)

void play(int a,int b)

Sub play(a as integer,b as integer)

9、若有以下的定义:
int a[]={1,2,3,4,5,6,7,8,9,10},*p=a
则值为3的表达式是

p+=2,*(p++)

p+=2,*++p

p+=3,*p++

p+=2,++*p

10、以下程序的输出结果是
fun(int x, int y, int z)
{ z=x*x+y*y; }
main()
{ int a=31;
fun(5,2,a);
printf("%d",a);
}

0

29

31

无定值