内容正文:
专题五 运算符与表达式(二)
1、 选择题
1.算术运算符、赋值运算符和自增自减运算符的运算优先级按从高到低依次为( )。
A.算术运算、赋值运算、自增自减运算
B.算术运算、自增自减运算、赋值运算
C.自增自减运算、赋值运算、算术运算
D.自增自减运算、算术运算、赋值运算
答案:D
解析:本题考察各种运算符的优先级。自增自减运算>算术运算>赋值运算
2.设f是实型变量,下列表达式中不是逗号表达式的是( )
A.f=3.2,1.0
B.f>0, f<10
C.f=2.0,f>0
D.f=(3.2,1.0)
答案:D
解析:选项D为赋值表达式。
3.在以下一组运算符中,优先级最低的运算符是( )
A.=
B.^
C.+
D.*
答案:A
解析:本题考察运算符的优先级”=”级别是14,”^”级别是9,”+”级别是4,”*”级别是4.
4. 有以下程序
main()
{ int a,b,d=25;
a=d/10;
b=a%(-9);
printf("%d,%d
",a,b);
}
程序运行后的输出结果是( )
A. 2,1
B. 2,2
C. 2,-2
D. 2,-1
答案:B
解析:模除运算符中,余数的符号是由%左侧运算对象的符号决定。
5.已知:char a=2, b=5, y ;
执行完y =a^b;语句后,y的值是( )
A.5
B.7
C.9
D.11
答案:B
解析:考查位运算符的使用。a^b 等价于 (00000010)^(00000101) ==(00000111)== 7
6.设int b=2;表达式(b<<2)/(b<<1)的值是( )
A.0
B.2
C.4
D.8
答案:C
解析:考查位运算符的使用。
b< < 2 (00000010)<< 2 = = 00001000==8,
b<<1 (00000010)<< 1 = = 00000100==4.
8/4= 2.
7. 有以下程序
main( )
{ int i, j = 0123;
i = 0x3a;
printf("%d, %d
", i, j );
}
程序运行后的输出结果是( )
A. 123,3a
B. 123,58
C. 83,58
D. 58,83
答案:D
解析:0123是八进制数,其等价的十进制数是83
0x3a是十六进制数,其等价的十进制数是58
2、 填空题
1.己有定义: float f=13.8;,则表达式:(int)f/3的值是 4 。
2.已有定义: double x=3.5;则表达式:x= (int)x+1的值是 4.000000 。
3.已有定义: int x=10,y=3,z;,则表达式:z=(x%y, x/y)的值是 3 。
4.已有定义: int x=0,y=0;,则计算表达式:(x=x+2,y=x+3/2,y+5)后,表达式的值是 8
_,变量x的值是 2 。
5. 若x,i,j和k都是int型变量,则执行表达式x=(i=4,j=16,k=32)后,x的值为 32 。
三、编程题
1. 从键盘上输入一个3位数,然后将它反向输出。例如,若输入123,则输出321.
答案:
#include <stdio.h>
main()
{ int a,b,c;
printf("请输入一个三位数:");
scanf("%d",&a);
b=a%10;
printf("%d",b);
a=a/10;
b=a%10;
printf("%d",b);
a=a/10;
printf("%d",b);
}
解析:根据题意,将输入的3位数(例如123)送入整型变量a中,只要将a除以10,将。
相除后的余数3输出)再除以10,再将余数2输出,最后将商1输出即可。
2.将华氏温度转换为摄氏温度和绝对温度的公式分别为:
c=(f-32) (摄氏温度)
k=273.16+c (绝对温度)
请编程序:当给出f时,求其相应摄氏温度和绝对温度。
测试数据:① f=34
② f=100
答案:
#include <stdio.h>
main( )
{ float c,f,k;
scanf("%f",&f);
c=5.0/9*(f-