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

1、以下程序执行后sum的值是
main()
{ int i,sum;
for(i=1;i<6;i++) sum+=i;
printf("%d\n",sum);
}

15

14

不确定

0

2、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是

-3

9

-12

6

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

*p

a[10]

*a

a[p-a]

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

char *str; str="string";

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

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

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

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

p2=**p1

p2=*&p1

p2=*p1

p2=&*p1

6、若有定义:int a[3][4];不能表示数组元素a[1][1]的是

*(a[1]+1)

*(&a[1][1])

(*(a+1))[1]

*(a+5)

7、设有以下定义或语句,则输出的结果是?
(用small模式编译,指针变量占2个字节)
struct date
{long *cat;
struct date *next;
double dog;
}too;
printf("%d",sizeof(too));

20

16

14

12

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

M = = 0

M = = 1

M ! = 0

M ! = 1

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

9

7

5

以上均不是

10、以下关于typedef的叙述中错误的是:

用typedef可以增加新的类型

用typedef可以定义各种类型名,但不能用来定义变量

用typedef只是将已有的类型用新的标识符来代表

使用typedef有利于程序的通用和移植