运算符

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

二、运算符
1)求余运算符:%两侧均应为整型数据。

并且求余运算符如果一个数字对2取余是1的话那么这个数是奇数,如果是0的化那么就是偶数。

求余运算的符号与被除数的符号相同。

如:-5%3=-2,5%-3=2。

2)除法运算符:/的运算得值和运算符两边数据类型的级别最高的相同,整数除整数结果为整数,如果浮点数和整数相除则结果也为浮点数据。

如果13/5结果应该是2,13.0/5则结果是2.6。

3)逗号运算符:整个逗号表达式的值是最后一个表达式的值((a=3*5,a*4),a+5)的值是20。

4)选择运算符:选择运算符的格式是<表达式1>?<表达式2>:<表达式3>,当表达式1的值为真的时候执行表达式2否则执行表达式3,注意有两个选择运算符的时候,分辨清楚运算的符号归哪个运算符所有。

x>3?1:0
5)自增、自减运算符:1、++i和--i遇到这种运算符在前的时候都要先自加或者自减,例如i=3;j=++i;则运算符在变量前面则应先自加1,i变成4然后把4赋给j,则j的值为4,;i++和i--遇到这种运算符在后的时候都要先赋值然后在自加或者自减,例如i=3;j=i++,则先赋值给j,j=3,然后在自加则i自加变成4。

而且输出语句和赋值语句他们的使用方法是相同的。

2、自加和自减它们的运算对象可以是char型变量、int型变量和float型变量而不可以是double变量。

6)逻辑运算符:1、&&、||两种运算符式子的意义以及在运算的时候两边的表达式不必要全都算出,如果第一个式子可以表示出这个表达式的值则第二个表达式不用计算,
例如0&& a 和1||b
则表达式a和b不用计算。

2、明确与和或的意思,与的意思是并且的意思,或的意思是或者的意思。

3、注意它们和关系运算符(>=和<=)一起连用所表达的含义。

!0 结果是真1
!1 假0
7)位运算符:1、>>、<<运算符是位运算运算符,向左移一位就是十进制数乘2,向右移一位就是十进制数除以2。

条件:不能把1移出去。

5转换为二进制的是:0000000000000101
3 :0000000000000011
8)强制类型转换的运算符:例如(int)x是对的,而不可以写成int(x).在强制类型转换的时,得到一个中间变量,原来的变量的类型没有发生变化。

(int)3.45=3
9)赋值语句考点:
赋值语句的一般形式:<变量><赋值运算符><表达式>;
1、赋值运算符左侧的变量称为“左值”,并不是任何对象都可以作为左值,变量可以作为左值,而复合表达式与常量就不可以作为左值(例如:a+3=3或者3=4就不是合法赋值语句,而(a=3*5)=4*3;是允许的它相当于先把15赋给a,然后再把12赋给a;a=3*5=4*3是错的不能把12赋值给3*5),每个语句结尾必须有分号,那么每个赋值表达式中间可以用逗号隔开。

2、赋值表达式的值是最后赋给变量的值,例如x=5则这个表达式的值就是5。

3、长整型数据的赋值一定要把后面的常量加上L,才能表示出赋值的数据是长整型。

3)当一个浮点型常量赋值给整型变量的时候去掉小数值只要整数部分;一个整型常量赋值给浮点型变量的时候一定要小数点后面加上一个0或者6个0。

例如int a=2.5;则a的数值就是2,如果float a=2;则实际输出的时候a的值为2.000000。

左值=右值
b=3
a=15; a=15+b;
10)优先级:运算符的运算优先级别。

11)各类数值型数据间的混合运算:1、表达式的最后类型为表达式中变量的数据类型级别最高的相符。

/******************************算术运算符*************************************/ (2003年4月6) 若有语句
int i=-19,j=i%4;
printf("%d\n",j);
则输出结果是【6】。

-3
(2004年4月17) 设有定义:float a=2,B =4,h=3;,以下C语言表达式与代数式计算结果不相符的是
A) (a+B) *h/2 B) (1/2)*(a+B) *h
C) (a+B) *h*1/2 D) h/2*(a+B)
B
(2006年4月14)表达式3.6-5/2+1.2+5%2的值是
A)4.3B)4.8
C)3.3 D)3.8
D
(2006年9月6) 设有定义:float x=123.4567;则执行以下语句后的输出结果是()。

printf(“%f\n”,(int)(x*100+0.5)/100.0);
123.460000
(2006年4月48)以下叙述中错误的是
A)C程序中的#include和#define行均不是C语句
B)除逗号运算符外,赋值运算符的优先级最低
C)C程序中,j++;是赋值语句j=j+1;
D)C程序中,+、-、*、/、%号是算术运算符,可用于整型和实型数的运算
D
/******************************算术运算符*************************************/
/******************************赋值运算符*************************************/ (2003年9月14)有以下程序
main()
{ int a; char c=10;
float f=100.0; double x;
a=f/=c*=(x=6.5);
printf("%d %d %3.1f %3.1f\n",a,c,f,x);
}
程序运行后的输出结果是
A)1 65 1 6.5 B)1 65 1.5 6.5
C)1 65 1.0 6.5 D)2 65 1.5 6.5
B
(2003年9月15)以下选项中非法的表达式是
A)0<=x<100 B)i=j==0
C)(char)(65+3) D)x+1=x+1
D
(2004年4月15) 若以下选项中的变量已正确定义,则正确的赋值语句是
A) x1=26.8%3 B) 1+2=x2 C) x3=0x12 D) x4=1+2=3;
C
(2005年9月9)以下程序运行后的输出结果是【9】。

main()
{ char c; int n=100;
float f=10; double x;
x=f*=n/=(c=50);
printf("%d %f\n",n,x);
}
2 20.000000
/******************************赋值运算符*************************************/
/******************************逻辑运算符*************************************/ (2003年9月16)有以下程序
main()
{ int a=1,b=2,m=0,n=0,k;
k=(n=b>a)||(m=a<b);
printf("%d,%d\n",k,m);
}
程序运行后的输出结果是
A)0,0 B)0,1 C)1,0 D)1,1
C
2004年9月21.若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是
A)abs(x-y)<10 B)x-y>-10&& x-y<10
C)@(x-y)<-10||!(y-x)>10 D)(x-y)*(x-y)<100
C
(2005年4月20)有以下程序
main()
{ int a,b,d=25;
a=d/10%9;
b=a&&(-1);
printf("%d,%d\n",a,b);
}
程序运行后的输出结果是______。

A)6,1 B)2,1 C)6,0 D)2,0
B
2006年9月15.以下关于逻辑运算符两侧运算对象的叙述中正确的是________。

A)只能是整数0或1 B)只能是整数0或非0的整数
C)可以是结构体类型的数据D)可是任意合法的表达式
D
(2005年4月9)以下程序运行后的输出结果是【9】。

main()
{ int a,b,c;
a=10; b=20; c=(a%b<1)||(a/b>1);
printf("%d %d %d\n",a,b,c);
}
10 20 0
(2005年9月23)设有定义:int a=2,b=3,c=4;,则以下选项中值为0的表达式是
A)(!a==1)&&(!b==0) B)(a<b)&& !c||1
C)a && b D)a||(b+b)&&(c-a)
A
2006年9月16.若有定义int x,y;并已正确给变量赋值,则以下选项中与表达式(x-y)?(x++): (y++)中的条件表达式(x-y)等价的是________。

A)(x-y>0)B)(x-y<0) C)(x-y<0║x-y>0) D)(x-y==0)
C
/******************************逻辑运算符*************************************/
/******************************自增自减*************************************/ (2003年4月17) 下列关于单目运算符++、--的叙述中正确的是
A) 它们的运算对象可以是任何变量和常量
B) 它们的运算对象可以是char型变量和int型变量,但不能是float型变量
C) 它们的运算对象可以是int型变量,但不能是double型变量和float型变量
D) 它们的运算对象可以是char型变量、int型变量和float型变量
D
(2004年4月16) 设有以下定义
int a=0;
double b=1.25;
char c=’A’;
#define d 2
则下面语句中错误的是
A) a++; B) b++ C) c++; D) d++;
D
2004年9月16.有以下程序
main()
{ int m=3,n=4,x;
x=-m++;
x=x+8/++n;
printf("%d\n",x);
}
程序运行后的输出结果是
A)3 B)5 C)-1 D)-2
D
2004年9月17.有以下程序
main()
{ char a='a',b;
printf("%c,",++a);
printf("%c\n",b=a++);
程序运行后的输出结果是
A)b,b B)b,c C)a,b D)a,c
A
(2005年4月16)数字字符0的ASCII值为48,若有以下程序
main()
{ char a='1',b='2 ';
printf("%c,",b++);
printf("%d\n",b-a);
}
程序运行后的输出结果是______。

A) 3,2 B)50,2 C)2,2 D)2,50
C
(2005年4月17)有以下程序
main()
{ int m=12,n=34;
printf("%d%d",m++,++n);
printf("%d%d\n",n++,++m);
}
程序运行后的输出结果是______。

A)12353514 B)12353513 C)12343514 D)12343513
A
2006年9月14.若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是________。

A)++x,y=x-- B)x+1=y C)x=x+10=x+y D)double(x)/10
A
2006年9月17.有以下程序
main()
{int x,y,z;
x=y=1;
z=x++,y++,++y;
printf("%d,%d,%d\n",x,y,z);
}
程序运行后的输出结果是________。

A)2,3,3 B)2,3,2 C)2,3,1 D)2,2,1
C
/******************************自增自减*************************************/
/******************************条件运算*************************************/ (2003年9月6)以下程序运行后的输出结果是〖6〗。

main()
{ int p=30;
printf("%d\n",(p/3>0 ? p/10 : p%3));
}
3
(2005年4月22)若整型变量a、b、c、d中的值依次为:1、4、3、2。

则条件表达式a<b?a:c<d?c:d 的值是______。

A)1 B)2 C)3 D)4
A
(2005年9月24)有以下程序段
int k=0,a=1,b=2,c=3;
k=a<b ? b:a; k=k>c ? c:k;
执行该程序段后,k的值是
A)3 B)2 C)1 D)0
B
(2006年9月8) 以下程序运行后的输出结果是()。

main()
{
int x,a=1,b=2,c=3,d=4;
x=(a<b)?a:b; x=(x<c)?x:c; x=(d>x)?x:d;
printf(“%d”,x);
}
1
/******************************条件运算*************************************/
/*************************逗号与强制类型转换运算****************************/ (2003年9月18)设有如下程序段:
int x=2002, y=2003;
printf("%d\n",(x,y));
则以下叙述中正确的是
A)输出语句中格式说明符的个数少于输出项的个数,不能正确输出
B)运行时产生出错信息
C)输出值为2002 D)输出值为2003
D
*2004年9月15.有以下定义语句
double a,b; int w; long c;
若各变量已正确赋值,则下列选项中正确的表达式是
A)a=a+b=b++ B)w%((int) a+b)
C)(c+w)%(int)a D)w=a==b
C
(2005年9月22)设有定义:int k=1,m=2; float f=7;,则以下选项中错误的表达式是
A)k=k>=k B)-k++ C)k%int(f) D)k>=f>=m
C
/*************************逗号与强制类型转换运算****************************/。

相关文档
最新文档