符号:+,-,*,/,%,++,–
由运算符与操作数组合而成的,如:a+b,c=3
运算符不能相邻,乘号不可以省略,可以用括号表示运算的次序
+(加),-(减),*(乘),/(除),%(取余),++(自加),–(自减)
/:若两侧的操作数是整形,则结果也取整形
%:两侧的操作数必须是整形
++:自增1
++x或x++都是x=x+1的一种写法
区分下面两个表达式
y=x++分解y=x -> x=x+1
y=++x分解x=x+1 -> y=x
自减与自加同理
(优先级最高)是括号里的先运算
(优先级非常低)赋值 =
先计算右边表达式的值,再将该值赋给左边的变量允许连续赋值
例
int a,b,c,d;
a=b=c=d=8;
允许赋值运算符出现在表达式中
int x,m,n;
x=(m=8)+(n=9);
+=,-=,=,/=,%=
说明:右结合性
例:a=b+5 相当于a=a*(b+5)
m+=8 相当于 m=m+8
先求表达式1,再求表达式2,依次求,知道最后一个表达式n,整个表达式的值是最后一个表达式的值
(优先级非常低)赋值运算符
(优先级最低)逗号运算符
int a;
a=3*5,a*4;
结果a=15
int a;
a=(a=3*5,a*4)
结果a=60
“真”:非0
“假”:0
<,>,<=,>=,==,!=
浮点型不推荐使用==和!=因为由误差
关系运算符优先级比算数运算符优先级低
例
x+5>y+7相当于(x+5)>(y+7)
!(非),&&(与),||(或)
例
x>1且x<9
表示 (x>!)&&(x<9)
x<0或x>10
表示 (x<0)||(x>10)
运算符表达式语句:如 x++;
赋值语句:如 a=5;
如 printf("%d",a);
如 for(;; )
如
if(a>b)
{
t=a;
a=b;
b=t;
}
结构化语句
顺序结构
分支结构(if,switch)
循环结构(for,while,do…while)
非结构化语句:特殊的跳转(break,continue)
1【单选题】若x、i、j、k都是int型变量,则计算下面表达式后,x的值为( )
x=(i=4,j=16,k=32) .
A、4
B、16
C、32
D、52
正确答案: C
2【单选题】int a;double b;float c;char k;则下面表达式a/b+c-k值的类型为( )。
A、int
B、double
C、float
D、char
正确答案: B
3【单选题】若变量已正确定义并赋值,下面符合C语言语法的表达式是()
A、m:=5
B、c=b=a=1
C、float 8%5
D、x+5=y+2
正确答案: B
4【单选题】下列程序运行的结果是( )。
main( )
{ float x;
int i;
x=3.6;
i=(int)x;
printf("x=%f,i=%d ",x,i);}
A、x=3.600000,i=3
B、x=3.6,i=3
C、x=3,i=3
D、x=3.600000,i=3.000000
正确答案: A
5【单选题】以下变量x,y,z均为double类型且已正确赋值,不能正确表示数学式子x÷y÷z的C语言表达式是( ).
A.x/yz B.x(1/(yz)) C.x/y1/z D.x/y/z
正确答案: A
6【单选题】以下选项中,与k=n++完全等价的表达式是( )
A、k=n,n=n+1
B、n=n+1,k=n
C、k=++n
D、k+=n+1
正确答案: A
7【单选题】若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是( )。
A、2.500000
B、2.750000
C、3.500000
D、0.000000
正确答案: A
8【单选题】
设有定义:int x=2,以下表达式中,值不为6的是 ( )。
A、x*=x+1
B、x*=(x+1)
C、x==6
D、x+=5
正确答案: D
9【单选题】程序的执行结果是( )
main()
{ int sum,pad;
sum=pad=5;
pad=sum++;
pad++;
++pad:
printf(“%d\n”,pad);
}
A、7
B、6
C、5
D、4
正确答案: A
10【单选题】设int a=2,b=2,则++a+b的结果是( )。
A、2
B、3
C、4
D、5
正确答案: D
11【单选题】设int n=3;则printf(“%d”,++n)的输出结果是( )。
A、2
B、3
C、4
D、5
正确答案: C
12【单选题】设n=10,i=4,则运算n%=i+1执行后,n的值是( )
A、0
B、3
C、2
D、1
正确答案: A
13【单选题】以下正确的C语言标识符是( )
A)%X B)a+c C)a123 D)TEST!
A、%X
B、a+c
C、a123
D、TEST!
正确答案: C
14【单选题】以下不正确的C语言标识符是( )
A、ABC
B、abc
C、a_bc
D、ab.c
正确答案: D
15【单选题】已知int k;float m=-3;执行语句k=m%2;后,变量k的值是()
A、-1
B、0
C、1
D、语句有错误
正确答案: D
16【单选题】已知:int x=3,y;执行下述3条命令后,结果为()
x++;
y=x++;
printf(“x=%d,y=%d”,x,y);
A、x=5,y=4
B、x=4,y=4
C、x=5,y=5
D、x=4,y=5
正确答案: A
17【单选题】已知:int x=3,y;执行下述3条命令后,结果为()
++x;
y=++x;
printf(“x=%d,y=%d”,x,y);
A、x=5,y=4
B、x=5,y=5
C、x=3,y=5
D、x=4,y=5
正确答案: B
18【单选题】已知:int x=4,y,执行下述2条命令后,结果为()
y=x++*2/3;
printf(“x=%d,y=%d”,x,y);
A、x=4,y=2
B、x=5,y=3
C、x=5,y=2
D、x=3,y=3
正确答案: C
19【单选题】
读下面的程序段,输出结果是( ).
int aa=2;
aa*=2;
b=aa++;
printf(“%d”,b);
A、3
B、4
C、5
D、6
正确答案: B
20【单选题】已知ch是字符型变量,下面不正确的赋值语句是( ).
A、ch=‘a+b‘
B、ch=‘\0’
C、ch=‘7’+‘9’
D、ch=5+9
正确答案: A
21【单选题】
以下叙述正确的是()
A、在C程序中,每行中只能写一条语句
B、若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数
C、在C程序中,无论是整数还是实数,都能被准确无误地表示
D、在C程序中,%是只能用于整数运算的运算符
正确答案: D
22【单选题】
设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是____
A、k++
B、k+=1
C、++k
D、k+1
正确答案: D
23【单选题】
若变量已经正确定义并赋值,下面符合C语言语法的表达式是( ).
A、 a:=b+1
B、a=b=c+2
C、int 18.5%3
D、a=a+7=c+b
正确答案: B