2024年4月27日发(作者:)

单元3 拓展训练答案

一、单项选择题

1.表达式中各运算量不能自动从一种类型转换为另一种类型的是( D )。

A.char转换为int

B.short转换为int

C.unsigned char转换为unsigned int

D.unsigned char转换为unsigned short

2.定义int i;float a;double k;则下列表达式类型为double的是( C ).

A.i*10+a+'k'

C.i*10.0+a

A.1

B.i*10+a+(int)k

D.i*10+a+(float)k

C.3

B.1

D.0x1f

B.00011000

D.00011011

B.操作数除以2

D.操作数乘以4

B.c1&c2

D.c1|c2

C.0 D.8

D.0

3.若x=2,y=3,则x&y的结果是( B )。

B.2

4.表达式0x13&0x17的值是( C )。

A.0x17

C.0x13

5.设有char x=3,y=6,z;z=x^y<<2;则z的二进制值是( D )。

A.00010100

C.00011100

6.在位运算中,操作数每左移一位,其结果相当于是( A )。

A.操作数乘以2

C.操作数乘以4

A.c1^c2

C.~c2

A.4

达式是( D )。

A.x || y

( B )。

A.0 B.1

C.2 D.3

11.在系统中,函数调用时实参的求值顺序是( B )。

A.没有明确规定 B.自右向左

B.x | y C.x & y D.x ^ y

10.设有 int x=5;char z='a';则printf("%dn",(x&1)&&(z<'z'));输出的结果是

7.设有定义语句:char c1=92,c2=92;则以下表达式中值为零的是( A )。

8.设 int b=2;表达式(b>>2)/(b>>1)的值是( C )。

B.2

9.整型变量x和y的值相等、且为非0值,则以下选项中,结果为零的表

C.自左向右

( C )。

A.1 3

( A )。

A.1 3

D.都可以

12.若有定义:int a=1,b=2;则printf("%d %dn",a,++a+b);输出的结果为

B.1 4 C.2 4 D.2 3

13.若有定义:int a=1,b=2;则printf("%d %dn",a, a+++b);输出的结果为

B.1 4 C.2 4 D.2 3

14.以下程序段的输出结果是( C )。

int a=5,b=4,c=6,d;

printf("%dn",d=a>b?(a>c?a:c):(b));

A.5

A.2

B.4

B.0

C.6

C.1

D.不确定

D.3

15.设 int x=1,y=3;表达式(!x|y--)的值是( D )。

二、知识填空题

1.当一个运算符两端的运算量的类型不一致时,按 向高看齐 的原则对

较低 的类型进行提升。

2.一个量的左值是这个量存储空间的 地址 ,且该存储空间的 内容 是

可以改变的。

3.一个量的右值是一个量存储空间的 内容 ,也就是这个量的值。

4.按位与运算的特殊用途包括测试一个数的 某一位 状态、清零、取一

个数的 低位字节 的状态和保留一个数的 某些位 的状态。

5.按位或运算的特殊用途是把一个数a的 某些位 的状态置为1。

6.按位异或运算的特殊用途是保留一个数的 原值 、使 指定位翻转 和

不用中间变量, 交换 两个变量的值。

7.对一个非负整数 左移2位 ,相当于对该运算量乘以4。

8.对一个非负整数右移1位 ,相当于对该运算量 除以2 。

9.执行程序段 int x=1,y=2;x=x^y;y=y^x;x=x^y;后,x= 2 ,y= 1 。

10.执行程序段 unsigned char a,b;a=7^3;b=-4&3;后,a= 4 ,b= 0 。

11.系统采用的是 自右向左 的求值顺序,所以形参存储空间是 自右向

左 分配的。

12.在程序运行过程中,系统分配给实参和形参的存储空间是 不同的 存

储空间。

13.在对某一函数进行多次调用时,系统会对 自动变量 重新分配存储空

间。

14.已知:char c=48;int i=1,j=10;执行语句j=!(c>j)&&++i;则i和j的值分别

是 1 和 0 。