第三章 练习题之 运算符和表达式
一、选择题:
1、以下运算符中,优先级最高的运算符是( ) A. = B. != C. *(乘号) D. ()
2、若有以下定义,则能使值为3的表达式是( ) int k=7, x=12;
A. x%=(k%=5) B. x%=(k-k%5) C. x%=k-k%5 D. (x%=k)-(k%=5)
3、设在tc2.0中有整型变量x,y,z均为3,表达式(x++)+(y++)+(z++)的值是 ( ) A. 6 B. 7 C. 8 D. 9
4、有以下程序运行后的输出结果是: ( ) ?? main()
?? { char a='A',b; ?? print(\?? printf(\?? }
??
A. B,B B. B,C C. A,B D. A,C 5、有以下程序运行后的输出结果是 :( ) ?? main()
?? { char a='a';
?? printf (\?? printf(\?? }
A)b,b B)b,c C)a,b D)a,c
6、设a=6,b=4,则表达式b*=a+3的值为 : ( ) A)3 B)18 C)27 D)36
7、有如下程序段,其输出结果是: ( )
int a=3;
float b=15.6,f=1.5;
printf(“%d”,a+(int)b/2+(int)f%3); A)10 B)11 C)12 D)13
8、以下程序的输出结果是: ( ) main( ) {int a=3 ;
printf ( \
A. 4 3 B. 4 4 C. 5 3 D. 5 4
9、以下程序的输出结果是( )。
main( ) {
int a=10;
printf ( \ }
(A)11 10 (B)11 11 (C)12 20 (D)12 11
10、若有定义:int a=8,b=5,c;执行语句c=a / b+0.4 ; 后c的值为( )。
(A)1.4 (B)1 (C)2.0 (D)2
11、若x,i,j和k都是int型变量, 则执行下面表达式x = (i = 4, j = 16, k = 32)后x的值为( )
A) 4 B) 16 C) 32 D) 52
12、若有代数式3ae/bc,则不正确的C语言表达式是: ( ) A) a / b / c * e * 3 B) 3 * a * e / b / c C) 3 * a * e / b * c D) a * e / c / b * 3
13、以下不正确的叙述是:( )
A)在C程序中,逗号运算符的优先级最低 B)在C程序中,APH和aph是两个不同的变量
C)若a和b类型相同,在执行了赋值表达式a=b后b中的值将放人a中,而b中的值不变。 D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值。
14、已知各变量的类型说明如下: ( ) int i = 8, k, a, b; unsigned long w = 5;
double x = 1.42, y = 5.2;
则以下符合C语言语法的表达式是:
A) a += a -= (b = 4) * (a = 3) B) a = a * 3 = 2 C) x % (-3) D) y = f1oat(i)
15、若有定义:int a = 7; float x = 2.5, y = 4.7; 则表达式x + a % 3 * (int)(x + y) % 2 / 4的值是:( )
A) 2.500000 B) 2.7500OO C) 3.500000 D) 0.000000。
16、若x,i,j和k都是int型变量,则执行下面表达式后x的值为:( ) x = (i = 4, j = 16, k = 32) A) 4 B) 16 C) 32 D) 52
17、假设所有变量均为整型,则表达式(a = 2, b = 5, b ++, a + b)的值是: ( ) A) 7 B) 8 C) 6 D) 2
18、若有代数式3ae/bc,则不正确的C语言表达式是: ( ) A) a / b / c * e * 3 B) 3 * a * e / b / c C) 3 * a * e / b * c D) a * e / c / b * 3
19.在C语言中运算对象必须是整型的运算符是:( ) A. % B. / C. = = D. <=
20.若有以下定义:int x=10,y=3,z; 则语句:printf(“%d\\n”,z=(x%y, x/y));的输出结果为 ( ) A. 1 B. 0 C. 2 D. 3
21.下列哪一个表达式的值是整数类型( )。 A. 15/2 B. 15/2+2.0 C. 25/5.0 D. 0.5*10
22.若double x=2,y;则执行y=x+3/2;后,y的值是( )。 A. 3.500000 B. 3.000000 C. 2.000000 D. 3
23、以下运算符中优先级最低的是 ( )
A) && B) & C) || D) |
24、设以下变量均为int类型,则值不等于7的表达式是( ) A) (x=y=6,x+y,x+1) B) (x=y=6,x+y,y+1) C) (x=6,x+1,y=6,x+y) D) (y=6,y+1,x=y,x+1) 25.设有以下定义
int a=0; double b=1.25; char c=’A’; #define d 2
则下面语句中错误的是: ( ) (A) a++; (B) b++ (C) c++; (D) d++;
26.若有定义:int a=8,b=5,C;,执行语句C=a/b+0.4;后,c的值为: ( )
(A) 1.4 (B) 1 (C) 2.0 (D) 2
27.若有以下程序:
main()
{int k=2,i=2,m;
m=(k+=i*=k); printf(\}
执行后的输出结果是: ( ) (A) 8,6 (B) 8,3 (C) 6,4 (D) 7,4
28.表达式b*=(b=3)+(a=10)的值为: ( )
(A)3 (B)19 (C)27 (D)36
二、填空题:
1、若有以下定义int m=5,y=2;则计算表达式y+=y-=m*=y后的y值是 。
2、若a为int型变量,则下面表达式的值为 。 (a = 4 * 5, a * 2), a + 6
3、若a是int型变量,则执行表达式\后,a的值为 。 4、s=3,s++,s; 这个语句执行完后,s的值为 。
5、C语言中的标识符只能由三种字符组成,他们是字母、数字和 。 6、已知 i=5;写出语句 a= -- i, 执行后整型变量 a 的值是 。 7、设 x 的值为15,n 的值为2,则表达式 x*=n+3 运算后 x 的值是 。 8、int x=2;x*=y=z=4; 则x的值为 。 9、表达式 i++ 相当于表达式i= 。
10、若s是unsigned int型变量,则下面表达式的值是________。
s%2+(s+1)%2 11、程序段执行后c3的值是_______。
int c1=1,c2=2; float c3; c3=1/c2*c1;
12、已知’a’的ASCII码为97,printf(“\\\n”,’e’)的输出是______;
printf(“]\\n”,’e’)的输出是___________。 13、表达式:5%2=__________,2/3=__________。
14、在C语言中,单目运算符的结合方向(运算方向)是_____________;唯一的一个三目运算符是_____________。
15、设a,b,t 为整型变量,初值为a=7,b=9,执行完语句t=(a>b)?a:b后,t 的值是 。
16、算术表达式 a=b+3 中, a、b 称为_________, 3 称为________,=、+称为_________。
17、若有定义:int b = 7;float a = 2.5,c = 4.7;
则表达式a + (int)(b / 3 * (int)(a + c) / 2) % 4的值为 。 18.C语言中为了简化程序,提高程序的编译效率,在赋值运算符前面加上其他运算符号构成复合运算符。例如:x=x+5 用复合运算符可以写成 。
19、表达式1/4+2.75的值是 。
20、若a是int型变量,且a的初值为6,则计算表达式“a+=a-=a*a”后a的值为 21、若s是int型变量,且s=6,则表达式“s%2+(s+1)%2”的值为 。 22、若x是int型变量,则执行表达式“x=(a=4,6*2)”后,x的值为 。 23、若x和n均是int型变量,且x的初值为12,n的初值为5,
则执行表达式“x%=(n%=2)”后,x的值为 。
24、设 int x=1/4;则x的值为 。
25、若 char w,int x,float y,double z;则表达式w*x+z-y的结果为 类型。 26、设 x 的值为15,n 的值为2,则表达式 x*=n+3 运算后 x 的值是 。 27、假设有条件 int x=1,y=2,z=3;则表达式z+=x>y?++x:++y的值是 。 28、int a = 2, b = 3; 表达式 a > b ? a ++ : ++ b的值为 。
29、执行语句\后,变量a、c的值依次为 、 。 30、表达式a = 3, a ++, - -a的值为 。
31、设a、b、c为整型数,且a = 3,b = 5,c = 2,则执行完以下语句:
a *= 16 + (b ++) - (++ c);后a的值是 。
32、以下程序运行后的输出结果是 main( )
{ int a=1,b=4,c=2; a=(a+b)/c;
printf(“%d \\n”,--a); }
运行结果 ;
33、设int a=3,b=5;float x=7.5,y=3.5;则表达式
(float)a+b/2+(int)x%(int)y; 的值是 34、在C语言的表达式中,x=x+5 用复合运算符可以写成 。 35、设a=12,表达式a/=a+a 运算后,a的值是 。 36.若定义:char c=‘\\010’;则变量c中包含的字符个数是 。 37.赋值语句是由 加上一个分号构成。 38.a=12,n=5,表达式a%=(n%=2)值是 。 三、看程序写结果:
1、写出以下程序运行的结果________。 main ( ) {
int i,j,m,n; i=8; j=10; m=++i; n=j++;
printf(“%d,%d,%d,%d”,i,j,m,n); }
2、阅读下列程序,写出运行结果 #include