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

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

sizeof(int)

sizeof(char)

sizeof(float)

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

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

1

3 0

1 -2

死循环

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

45

55

0

编译错误

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

无定值

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

x/y*z

x*(1/(y*z))

x/y*1/z

x/y/z

6、若有如下类定义:
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)等价

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

15

14

不确定

0

8、为表示关系x大于等于y大于等于z,应使用C语言表达式

(x>=Y)&&(Y>=z)

(x>=Y)AND(y>=z)

(x>=Y>=z)

(x>=Y)&(Y>=z)

9、若i、j已定义为int型,则以下程序段中内循环体的总的执行次数是
for(i=5;i>0;i--)
for(j=0;j<4;j++){…}

20

24

25

30

10、凡在函数中未指明存储类别的变量,其隐含的存储类别为

auto 型

static 型

extern 型

register 型