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

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

-3

9

-12

6

2、有以下程序段
int x=3
do
{ printf("%d",x-=2); }
while (!(--x));
其输出结果是

1

3 0

1 -2

死循环

3、已知有共用体变量data1定义如下:
union data
{ int i;
char ch;
float f;
} data1;
则变量data1所占的内存存储空间可表示为:

sizeof(int)

sizeof(char)

sizeof(float)

sizeof(int)+sizeof(char)+sizeof(float)

4、若有如下类定义:
class Sample
{  public:
Sample() {value=0;}
Set(int k) {value=k;}
   private:
int value;
};
Sample *p, obj;
p=&obj;
则对下列语句序列正确的描述是:

语句p=&obj;是把对象obj赋值给指针变量p

语句Sample *p, obj;会调用两次类Sample的构造函数

对语句*p.Set(5)的调用是正确的

语句p->Set(5)与语句obj.Set(5)等价

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

char *str; str="string";

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

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

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

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

无定值

7、以下变量x、y、z均为double类型且已正确赋值,不能正确表示数学式子的C语言表达式是

x/y*z

x*(1/(y*z))

x/y*1/z

x/y/z

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

9、当调用函数时,实参是一个数组名,则向函数传送的是

数组的长度

数组的首地址

数组每一个元素的地址

数组每个元素中的值

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

11

10

9

8