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 。
发布评论