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

1、下面哪一项是不正确的字符串赋值或赋初值的方式

char *str; str="string";

char str[7]={'s','t','r','i','n','g'};

char str1[10];str1="string";

char str1[]="string",str2[]="12345678";

2、以下程序输出的值为?
main()
{ int a[ ]={1,2,3,4,5,6,7,8,9,0},*p;
p=a;
printf("%d\n",*p+9);
}

1

9

10

0

3、若t为double类型,表达式t=1,t+5,t++的值是

1

6.0

2.0

1.0

4、执行下列语句中,sum变量的值是:
int sum=0
for(int i=0;i<10;i++,sum+=i);

45

55

0

编译错误

5、对于条件表达式(M)?(a++):(a--),其中的表达式M等价于

M = = 0

M = = 1

M ! = 0

M ! = 1

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

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

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

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

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

7、以下程序的输出结果是
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

无定值

8、假设指针p1已经指向了某个整型变量,要使指针p2也指向同一个变量,则下面各项中正确的是:

p2=**p1

p2=*&p1

p2=*p1

p2=&*p1

9、下列程序的输出结果是。
int a[5]={2,4,6,8,10},*p,**k;
p=a;  k=&p;
printf("%d",*(p++));
printf("%d\n",**k);

4 4

2 2

2 4

4 6

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

*p

a[10]

*a

a[p-a]